+
    
\ÀjB  ã            	       ó(  € ^ RI HtHtHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtHtHtHt ^ R	It]! ]! ]! R
R4      4      .R7      t]P6                  P9                  ]P6                  P9                  ]P6                  P9                  ]P6                  P;                  ]4      4      4      4      t]! ]P6                  PA                  ]R4      R7      t!R R lt"]PG                  R]R7      ]! ]4      3R R ll4       t$R	# )é    )Ú	APIRouterÚRequestÚDepends)ÚHTMLResponse)ÚJinja2Templates)ÚAsyncSession)ÚselectÚfuncÚcase)Úget_db)Úrequire_roles)ÚCustomerÚInvoiceÚPaymentÚVoucherÚVoucherArchiveÚVoucherAgentNÚsuper_adminÚadmin_cs)Údependencieszapp/templates)Ú	directoryc                ó0   € V ^8„  d   QhR\         R\        /# )é   ÚdbÚreturn)r   Údict)Úformats   "Ú+/var/www/html/bestweb/app/routes/reports.pyÚ__annotate__r      s   € ÷ kñ kœ|ð k´ñ kó    c              ƒ  ó(  "  € V P                  \        \        P                  ! \        P
                  4      4      P                  \        P                  R8H  4      4      G Rj  x€L
 pV P                  \        \        P                  ! \        P
                  4      4      P                  \        P                  R8H  \        P                  R8H  4      4      G Rj  x€L
 pV P                  \        \        P                  ! \        P
                  4      4      P                  \        P                  R8H  4      4      G Rj  x€L
 pV P                  \        \        P                  ! \        P                  ! \        P                  4      ^ 4      4      P                  \        P                  R8H  4      4      G Rj  x€L
 pV P                  \        \        P                  \        P                  \         P                  \         P"                  \         P$                  \         P                  \         P&                  4      P)                  \         4      P+                  \        \        P
                  \         P,                  8H  4      P/                  \         P&                  P1                  4       4      4      G Rj  x€L
 P3                  4       p\        R V 4       4      p/ pV Fr  w  r‰r«rÍpT;'       g    RpVP5                  VRVRV	R	^ R
^ /4      pVR,          f   V	VR&   TR	;;,          T
;'       g    ^ ,          uu&   VR
;;,          ^,          uu&   Kt  	  / pV Fj  w  ppr«pppTP5                  T;'       g    RRT;'       g    RR	^ R
^ /4      pTR	;;,          T
;'       g    ^ ,          uu&   VR
;;,          ^,          uu&   Kl  	  / pV Fq  w  ppp
ppppT;'       g    RP7                  4       pVP5                  VRVR	^ R
^ /4      pTR	;;,          T
;'       g    ^ ,          uu&   VR
;;,          ^,          uu&   Ks  	  \        R V 4       4      pV P                  \        \        P                  ! \8        P
                  4      4      P                  \8        P                  R8H  4      4      G Rj  x€L
 pV P                  \        \        P                  ! \8        P
                  4      4      P                  \8        P                  R8H  4      4      G Rj  x€L
 pV P                  \        \        P                  ! \8        P
                  4      4      P                  \8        P                  R8H  4      4      G Rj  x€L
 pV P                  \        \:        P<                  \:        P>                  \:        P@                  \:        P                  \:        PB                  \:        PD                  \:        PF                  \:        PH                  \:        PJ                  \L        P                  \L        PN                  \L        PP                  4      P)                  \:        4      P+                  \L        \L        P
                  \:        PJ                  8H  4      P/                  \:        PH                  P1                  4       4      4      G Rj  x€L
 P3                  4       p\        R V 4       4      p/ pV FÝ  w  p pp!pp"p#p$p%p&p'p(p)T';'       g    RpTP5                  TRTRT(;'       g    RRT);'       g    ^ R^ R^ R^ /4      pVR,          R8X  d   V('       d   V(VR&   VR;;,          ^,          uu&   TR;;,          T!;'       g    ^ ,          uu&   TR;;,          \S        T!;'       g    ^ T);'       g    ^ ,          ^d,          4      ,          uu&   Kß  	  VPU                  4        F  pVR,          VR,          ,
          VR&   K  	  / p*V Fd  vp p+p!pp,p#p$p%p-T+;'       g    RpV*P5                  VRVR^ R^ /4      pVR;;,          ^,          uu&   TR;;,          T!;'       g    ^ ,          uu&   Kf  	  RRRRRR /p./ p/V Fr  vp pp!pp"p-T";'       g    RpV/P5                  VR!VR"V.PW                  Wÿ4      R^ R^ /4      pVR;;,          ^,          uu&   TR;;,          T!;'       g    ^ ,          uu&   Kt  	  \        R# VPU                  4        4       4      p0/ R$VbR%VbR&VbR'VbR(VbR)VbR*VbR+VbR,VbR-\Y        VPU                  4       R. R/7      bR0\Y        VPU                  4       R1 R2R37      bR4\Y        VPU                  4       R5 R/7      bR6VbR7VbR8\[        V4      bR9\Y        VPU                  4       R: R/7      bR;\Y        V*PU                  4       R< R/7      bR=\Y        V/PU                  4       R> R/7      R?V0R@VV0,
          RAVV,           RBV/C#  E	L• E	L" ELÁ ELK ELS EL[ ELú EL™ ELV5i)Cz6Build every figure the reports page needs in one pass.FNÚactiveÚunpaidc              3   óL   "  € T F  qP                   ;'       g    ^ x € K  	  R# 5i©r   N)Úamount©Ú.0Úrs   & r   Ú	<genexpr>Ú#_collect_reports.<locals>.<genexpr>4   s   é € Ð=±¨1Ÿ™Ÿ˜ Qœ³ùs   ‚$™$z(Tanpa Pelanggan)ÚnameÚmodeÚtotalÚcountÚ-ÚperiodÚmethodc              3   óF   "  € T F  q^ ,          '       d   K  ^x € K  	  R# 5ir%   © r'   s   & r   r*   r+   O   s   é € Ð>¡\ ¸1¿¹Ÿ!š!£\ùs   ‚!—
!Ú	availableÚsoldÚusedc              3   óF   "  € T F  q^,          ;'       g    ^ x € K  	  R# 5i)r   Nr4   r'   s   & r   r*   r+   o   s   é € Ð:©\¨˜A�$Ÿ)˜) !œ)«\ùs   ‚!–!zDirect / Tanpa AgenÚareaÚrateÚqtyÚgrossÚ
commissionÚnetÚprofileÚexpiredzMasa Berlaku HabisÚduration_exhaustedzJatah Waktu HabisÚgone_from_devicezLepas dari PerangkatÚreasonÚlabelc              3   ó2   "  € T F  qR ,          x € K  	  R# 5i)r=   Nr4   r'   s   & r   r*   r+   Ÿ   s   é € ÐGÑ4F¨q˜\Ÿ?š?Ó4Fùs   ‚Ú	customersÚactive_customersÚunpaid_invoicesÚvoucher_availableÚvoucher_soldÚvoucher_usedÚinvoice_totalÚpayments_totalÚpayment_rowsÚper_customerc                 ó   € V R ,          ) # ©r.   r4   ©r)   s   &r   Ú<lambda>Ú"_collect_reports.<locals>.<lambda>­   s
   € ÀQÀwÅZÁKr    )ÚkeyÚ
per_periodc                 ó&   € \        V R ,          4      # )r1   )ÚstrrR   s   &r   rS   rT   ®   s   € ÄÀAÀhÅKÔ@Pr    T)rU   ÚreverseÚ
per_methodc                 ó   € V R ,          ) # rQ   r4   rR   s   &r   rS   rT   ¯   ó
   € ÀÀ7ÅÁr    Úorphan_paymentsÚvoucher_revenueÚvoucher_archive_countÚ	per_agentc                 ó   € V R ,          ) # ©r<   r4   rR   s   &r   rS   rT   ´   s
   € ¸qÀ½z¹kr    Úper_profilec                 ó   € V R ,          ) # rb   r4   rR   s   &r   rS   rT   µ   s
   € À1ÀWÅ:Á+r    Ú
per_reasonc                 ó   € V R ,          ) # rb   r4   rR   s   &r   rS   rT   ¶   r\   r    Útotal_commissionÚvoucher_netÚgrand_totalÚarchive_rows).Úscalarr	   r
   r/   r   ÚidÚwhereÚis_archivedÚstatusr   ÚcoalesceÚsumr&   Úexecuter,   Úservice_moder   r1   r2   Úpaid_atÚselect_fromÚ	outerjoinÚcustomer_idÚorder_byÚdescÚallÚ
setdefaultÚupperr   r   Úcoder?   ÚpricerC   Úused_secondsÚused_atÚ
deleted_atÚagent_idr   r9   Úcommission_rateÚintÚvaluesÚgetÚsortedÚlen)1r   rF   rG   rH   rL   rN   rM   rO   r,   r-   r&   r1   r2   ro   rt   rU   ÚrowrV   Ú_nÚ_mÚ_meÚ_sÚ_prZ   Ú_per]   rI   rJ   rK   rj   r^   r`   Ú_cr~   rC   Ú_usÚ_uaÚ_daÚ_aidÚ
agent_namer9   r:   rc   r?   Ú_rÚ_restÚreason_labelsre   rg   s1   &                                                r   Ú_collect_reportsr™      s¤  é € ð —i‘i¤¤t§z¢z´(·+±+Ó'>Ó ?× EÑ EÄh×FZÑFZÐ^cÑFcÓ dÓe×e€IØŸY™YÜŒt�zŠzœ(Ÿ+™+Ó&Ó'×-Ñ-¬h¯o©oÀÑ.IÌ8×K_ÑK_ÐchÑKhÓió÷ Ðð
 ŸI™IÜŒt�zŠzœ'Ÿ*™*Ó%Ó&×,Ñ,¬W¯^©^¸xÑ-GÓHó÷ €Oð Ÿ)™)ÜŒt�}Š}œTŸXšX¤g§n¡nÓ5°qÓ9Ó:×@Ñ@ÄÇÁÐS[ÑA[Ó\ó÷ €Mð �j‰jÜÜ—‘Ü×%Ñ%Ü—‘Ü—‘Ü—‘Ü—‘Ü—‘ó÷ ‰[œÓ!ß‰Y”x¤§¡´×0CÑ0CÑ!CÓDß‰X”g—o‘o×*Ñ*Ó,Ó-ó
÷ 	
÷ 
�cƒeð ô" Ñ=±Ó=Ó=€Nð %'€LÛ?KÑ;ˆ�F F°GØ×)Ð)Ð)ˆØ×%Ñ% c¨F°C¸ÀÀwÐPQÐSZÐ\]Ð+^Ó_ˆØˆv�;ÒØˆC�‰KØˆG�˜Ÿ˜ !Õ#‹ØˆG�˜Õ�ñ @Lð #%€JÛ/;Ñ+ˆˆB�  R¨Ø×#Ñ# F§M M¨c°H¸f¿m¸mÈÈWÐVWÐY`ÐbcÐ3dÓeˆØˆG�˜Ÿ˜ !Õ#‹ØˆG�˜Õ�ñ 0<ð #%€JÛ/;Ñ+ˆˆB�˜˜V R¨Ø�}ˆ}˜×#Ñ#Ó%ˆØ×#Ñ# C¨(°C¸À!ÀWÈaÐ)PÓQˆØˆG�˜Ÿ˜ !Õ#‹ØˆG�˜Õ�ñ	 0<ô Ñ>¡\Ó>Ó>€Oð !Ÿi™iÜŒt�zŠzœ'Ÿ*™*Ó%Ó&×,Ñ,¬W¯^©^¸{Ñ-JÓKó÷ Ðð Ÿ™¤6¬$¯*ª*´W·Z±ZÓ*@Ó#A×#GÑ#GÌÏÉÐZ`ÑH`Ó#aÓb×b€LØŸ™¤6¬$¯*ª*´W·Z±ZÓ*@Ó#A×#GÑ#GÌÏÉÐZ`ÑH`Ó#aÓb×b€Lð �j‰jÜÜ×#Ñ#Ü×&Ñ&Ü×$Ñ$Ü×%Ñ%Ü×%Ñ%Ü×+Ñ+Ü×&Ñ&Ü×)Ñ)Ü×'Ñ'Ü×!Ñ!Ü×!Ñ!Ü×,Ñ,ó÷ ‰[œÓ(ß‰Y”|¤\§_¡_¼×8OÑ8OÑ%OÓPß‰X”n×/Ñ/×4Ñ4Ó6Ó7ó#
÷ 	
÷& 
�cƒeð) ô, Ñ:©\Ó:Ó:€Oð "$€IÛR^ÑNˆˆB��r˜6 3¨¨S°$¸
ÀDÈ$Ø×1Ð1Ð1ˆØ×"Ñ"Øà˜Ø˜Ÿ˜ Ø˜Ÿ	˜	 Ø�qØ˜Ø˜aðó

ˆð ˆv�;˜#Ô§$ØˆC�‰KØˆE�
�a�‹
ØˆG�˜Ÿ
˜
 Õ"‹ØˆL×œS %§* *¨1°·°¸Õ!;¸cÕ!AÓBÕBÕñ# S_ð$ ×ÑÖ!ˆØ˜•\ C¨Õ$5Õ5ˆˆE‹
ñ "ð $&€KÛ=IÐ9ˆˆG�U˜B  C¨¨c°EØ�nˆn˜ˆØ×$Ñ$ S¨9°c¸5À!ÀWÈaÐ*PÓQˆØˆE�
�a�‹
ØˆG�˜Ÿ
˜
 Õ"�ñ	 >Jð 	Ð'ØÐ1ØÐ2ð€Mð
 #%€JÛ-9Ð)ˆˆB��r˜6 EØ�mˆm˜ˆØ×#Ñ#Ø�(˜C ¨-×*;Ñ*;¸CÓ*EÀuÈaÐQXÐZ[Ð\ó
ˆð 	ˆE�
�a�‹
ØˆG�˜Ÿ
˜
 Õ"�ñ .:ô ÑG°I×4DÑ4DÔ4FÓGÓGÐðà�Yðð 	Ð,ðð 	˜?ð	ð
 	Ð.ðð 	˜ðð 	˜ðð 	˜ðð 	˜.ðð 	˜ðð 	œ˜|×2Ñ2Ó4Ñ:OÔPðð 	”f˜Z×.Ñ.Ó0Ñ6PÐZ^Ô_ðð 	”f˜Z×.Ñ.Ó0Ñ6KÔLðð 	˜?ðð" 	˜?ð#ð$ 	 ¤ \Ó!2ð%ð& 	”V˜I×,Ñ,Ó.Ñ4IÔJð'ð( 	”v˜k×0Ñ0Ó2Ñ8MÔNð)ð* 	”f˜Z×.Ñ.Ó0Ñ6KÔLØÐ,Ø�Ð)9Õ9Ø�~¨Õ7Ø˜ñ3ð ò] fòò
òò	
ò\ò cÚbò	
ùs  ‚A hÁ"g7Á#A5hÃg:ÃA#hÄ<g=Ä=A8hÆ5h Æ6C:hÊ0hÊ1A8hÌ*AhÍ1hÍ=hÎ<hÏ;hÐBhÒ+hÒ,A#hÔh	ÔA#hÕ3hÕ4EhÚ9hÚ:A hÛ;hÜhÜ"#hÝ,hÝ3#hÞ
hÞ"A*hàAhá-há>AhãD&hç:hç=hè hèhèhè	hèhèhz/reports)Úresponse_classc                ó0   € V ^8„  d   QhR\         R\        /# )r   Úrequestr   )r   r   )r   s   "r   r   r   ¿   s   € ÷ dñ d¤ð d¬\ñ dr    c              ƒ   óh   "  € \        V4      G R j  x€L
 p\        P                  V RRV/R7      #  L5i)Nzreports.htmlÚdata)rœ   r,   Úcontext)r™   Ú	templatesÚTemplateResponse)rœ   r   rž   s   && r   Úreports_pager¢   ¾   s6   é € ä! "Ó%×%€DÜ×%Ñ%¨g¸NÐU[Ð]aÐTbÐ%ÓcÐcñ &ùs   ‚2‘0’2)%Úfastapir   r   r   Úfastapi.responsesr   Úfastapi.templatingr   Úsqlalchemy.ext.asyncior   Ú
sqlalchemyr	   r
   r   Úapp.core.databaser   Úapp.core.securityr   Úapp.models.modelsr   r   r   r   r   r   ÚosÚrouterÚpathÚdirnameÚabspathÚ__file__ÚBASE_DIRÚjoinr    r™   r†   r¢   r4   r    r   Ú<module>r³      sÅ   ðß /Ñ /Ý *Ý .Ý /ß )Ñ )Ý $Ý +ß _× _Û 	á	¡©°}ÀjÓ)QÓ!RÐ SÔ	T€Ø�7‰7�?‰?˜2Ÿ7™7Ÿ?™?¨2¯7©7¯?©?¸2¿7¹7¿?¹?È8Ó;TÓ+UÓVÓW€Ù b§g¡g§l¡l°8¸_Ó&MÔN€	õkð\ ‡�ˆJ |€Ó4Ù<CÀF»Oö dó 5òdr    