§
    U­h�E  ã                   ó&  — d dl mZmZmZmZmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ  ed	e¦  «        Ze                     d
dg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         ZdS )é    )Ú	BlueprintÚrequestÚjsonifyÚsessionÚmake_response)ÚdatetimeÚdate)ÚdbÚUser)ÚCompany)ÚInvoice)ÚExpenseType)Úrequire_auth)ÚReport606ServiceÚreportsz/reports/606ÚPOST)Úmethodsc                  ór  — 	 t          j        d¦  «        } t          j        d¦  «        }| dvrt          ddi¦  «        dfS t          j        ¦   «         }|                     d¦  «        r|                     d¦  «        st          dd	i¦  «        d
fS t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        }|                     d|¦  «        }|                     dd¦  «        }d|cxk    rdk    sn t          ddi¦  «        d
fS d|cxk    rdk    sn t          ddi¦  «        d
fS | dk    r||k    rt          ddi¦  «        dfS t          ¦   «         }|                     ||||¦  «        }|d         s't          d|                     dd¦  «        i¦  «        d
fS t          |¦  «        dfS # t          $ r-}	t          ddt          |	¦  «        › �i¦  «        d
fcY d}	~	S d}	~	wt          $ r-}	t          ddt          |	¦  «        › �i¦  «        dfcY d}	~	S d}	~	ww xY w)z)Generar reporte en formato 606 de la DGIIÚ	user_roleÚ
company_id©Ú
accountantÚsuper_adminÚerrorz'No autorizado para generar reportes 606é“  ÚyearÚmonthu   AÃ±o y mes son requeridosé�  Úinclude_pendingFiä  iî  u!   AÃ±o debe estar entre 2020 y 2030é   é   zMes debe estar entre 1 y 12r   z3No autorizado para generar reportes de esta empresaÚsuccessÚmessageúError al generar reporteéÈ   zError en datos: NúError interno del servidor: éô  )r   Úgetr   r   Úget_jsonÚintr   Úgenerate_606_reportÚ
ValueErrorÚstrÚ	Exception©
r   Úuser_company_idÚdatar   r   r   r   Úreport_serviceÚresultÚes
             ú6/home/ubuntu/invoice-606-backend/src/routes/reports.pyr+   r+      sè  € ð)PÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆàÐ9Ð9ð 	VÝ˜GÐ%NÐOÑPÔPÐRUÐUÐUåÔÑ!Ô!ˆð �xŠx˜ÑÔð 	H t§x¢x°Ñ'8Ô'8ð 	HÝ˜GÐ%@ÐAÑBÔBÀCÐGÐGå�4—8’8˜FÑ#Ô#Ñ$Ô$ˆÝ�D—H’H˜WÑ%Ô%Ñ&Ô&ˆØ—X’X˜l¨OÑ<Ô<ˆ
ØŸ(š(Ð#4°eÑ<Ô<ˆð ˜ð 	Pð 	Pò 	Pð 	P ò 	Pð 	Pð 	Pð 	PÝ˜GÐ%HÐIÑJÔJÈCÐOÐOà�Uð 	Jð 	Jò 	Jð 	J˜bò 	Jð 	Jð 	Jð 	JÝ˜GÐ%BÐCÑDÔDÀcÐIÐIð ˜Ò$ð 	b¨°Ò)Fð 	bÝ˜GÐ%ZÐ[Ñ\Ô\Ð^aÐaÐaõ *Ñ+Ô+ˆØ×3Ò3°JÀÀeÈ_Ñ]Ô]ˆà�iÔ ð 	^Ý˜G V§Z¢Z°	Ð;UÑ%VÔ%VÐWÑXÔXÐZ]Ð]Ð]å�v‰Œ Ð#Ð#øåð Dð Dð DÝ˜Ð!<µC¸±F´FÐ!<Ð!<Ð=Ñ>Ô>ÀÐCÐCÐCÐCÐCÐCÐCøøøøÝð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøsV   ‚>G
 ÁAG
 ÂBG
 Ä#!G
 ÅG
 Å$AG
 Æ9G
 Ç

H6Ç"G<Ç6H6Ç<H6È	"H1È+H6È1H6z/reports/606/downloadc                  óN  — 	 t          j        d¦  «        } t          j        d¦  «        }| dvrt          ddi¦  «        dfS t          j        ¦   «         }t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        }|                     d|¦  «        }|                     d	d
¦  «        }| dk    r||k    rt          ddi¦  «        dfS t          ¦   «         }|                     ||||¦  «        }|d         s't          d|                     dd¦  «        i¦  «        dfS t          |d         ¦  «        }	d|	j	        d<   d|d         › d�|	j	        d<   |	S # t          $ r-}
t          ddt          |
¦  «        › �i¦  «        dfcY d}
~
S d}
~
ww xY w)z&Descargar reporte 606 como archivo TXTr   r   r   r   z)No autorizado para descargar reportes 606r   r   r   r   Fr   úNo autorizador"   r#   r$   r   Úcontentztext/plain; charset=utf-8úContent-Typeúattachment; filename="Úfilenameú"úContent-Dispositionr&   r'   N)r   r(   r   r   r)   r*   r   r+   r   Úheadersr.   r-   ©r   r0   r1   r   r   r   r   r2   r3   Úresponser4   s              r5   Údownload_606_reportrA   ;   sã  € ð!PÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆàÐ9Ð9ð 	XÝ˜GÐ%PÐQÑRÔRÐTWÐWÐWåÔÑ!Ô!ˆå�4—8’8˜FÑ#Ô#Ñ$Ô$ˆÝ�D—H’H˜WÑ%Ô%Ñ&Ô&ˆØ—X’X˜l¨OÑ<Ô<ˆ
ØŸ(š(Ð#4°eÑ<Ô<ˆð ˜Ò$ð 	<¨°Ò)Fð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;õ *Ñ+Ô+ˆØ×3Ò3°JÀÀeÈ_Ñ]Ô]ˆà�iÔ ð 	^Ý˜G V§Z¢Z°	Ð;UÑ%VÔ%VÐWÑXÔXÐZ]Ð]Ð]õ ! ¨	Ô!2Ñ3Ô3ˆØ+FˆÔ˜Ñ(Ø2`È6ÐR\ÔK]Ð2`Ð2`Ð2`ˆÔÐ.Ñ/àˆøåð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs1   ‚>E- ÁB!E- Ã#AE- Ä84E- Å-
F$Å7"FÆF$ÆF$z/reports/csvc                  ó
  — 	 t          j        d¦  «        } t          j        d¦  «        }t          j        ¦   «         }t	          |                     d¦  «        ¦  «        }t	          |                     d¦  «        ¦  «        }|                     d|¦  «        }|                     dd¦  «        }| dk    r||k    rt          dd	i¦  «        d
fS | dk    rt          ddi¦  «        d
fS t          ¦   «         }|                     ||||¦  «        }|d         s't          d|                     dd¦  «        i¦  «        dfS t          |¦  «        dfS # t          $ r-}	t          ddt          |	¦  «        › �i¦  «        dfcY d}	~	S d}	~	ww xY w)zGenerar reporte en formato CSVr   r   r   r   r   Fr   r   r7   r   Úemployeez#No autorizado para generar reportesr"   r#   r$   r   r%   r&   r'   N)
r   r(   r   r)   r*   r   r   Úgenerate_csv_reportr.   r-   r/   s
             r5   rD   rD   b   s¯  € ðPÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆåÔÑ!Ô!ˆå�4—8’8˜FÑ#Ô#Ñ$Ô$ˆÝ�D—H’H˜WÑ%Ô%Ñ&Ô&ˆØ—X’X˜l¨OÑ<Ô<ˆ
ØŸ(š(Ð#4°eÑ<Ô<ˆð ˜Ò$ð 	R¨°Ò)Fð 	RÝ˜G _Ð5Ñ6Ô6¸Ð;Ð;Ø˜*Ò$ð 	RÝ˜GÐ%JÐKÑLÔLÈcÐQÐQõ *Ñ+Ô+ˆØ×3Ò3°JÀÀeÈ_Ñ]Ô]ˆà�iÔ ð 	^Ý˜G V§Z¢Z°	Ð;UÑ%VÔ%VÐWÑXÔXÐZ]Ð]Ð]å�v‰Œ Ð#Ð#øåð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs1   ‚C	E ÃE Ã%AE Ä:E Å
FÅ"E=Å7FÅ=Fz/reports/csv/downloadc                  óR  — 	 t          j        d¦  «        } t          j        d¦  «        }t          j        ¦   «         }t	          |                     d¦  «        ¦  «        }t	          |                     d¦  «        ¦  «        }|                     d|¦  «        }|                     dd¦  «        }| dk    r||k    rt          dd	i¦  «        d
fS | dk    rt          dd	i¦  «        d
fS t          ¦   «         }|                     ||||¦  «        }|d         s't          d|                     dd¦  «        i¦  «        dfS t          |d         ¦  «        }	d|	j	        d<   d|d         › d�|	j	        d<   |	S # t          $ r-}
t          ddt          |
¦  «        › �i¦  «        dfcY d}
~
S d}
~
ww xY w)zDescargar reporte CSVr   r   r   r   r   Fr   r   r7   r   rC   r"   r#   r$   r   r8   ztext/csv; charset=utf-8r9   r:   r;   r<   r=   r&   r'   N)r   r(   r   r)   r*   r   r   rD   r   r>   r.   r-   r?   s              r5   Údownload_csv_reportrF   ƒ   sß  € ð PÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆåÔÑ!Ô!ˆå�4—8’8˜FÑ#Ô#Ñ$Ô$ˆÝ�D—H’H˜WÑ%Ô%Ñ&Ô&ˆØ—X’X˜l¨OÑ<Ô<ˆ
ØŸ(š(Ð#4°eÑ<Ô<ˆð ˜Ò$ð 	<¨°Ò)Fð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;Ø˜*Ò$ð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;õ *Ñ+Ô+ˆØ×3Ò3°JÀÀeÈ_Ñ]Ô]ˆà�iÔ ð 	^Ý˜G V§Z¢Z°	Ð;UÑ%VÔ%VÐWÑXÔXÐZ]Ð]Ð]õ ! ¨	Ô!2Ñ3Ô3ˆØ+DˆÔ˜Ñ(Ø2`È6ÐR\ÔK]Ð2`Ð2`Ð2`ˆÔÐ.Ñ/àˆøåð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs1   ‚C	E/ ÃE/ Ã%AE/ Ä:4E/ Å/
F&Å9"F!ÆF&Æ!F&z/reports/summaryÚGETc                  óD  — 	 t          j        d¦  «        } t          j        d¦  «        }t          j                             dt	          j        ¦   «         j        t          ¬¦  «        }t          j                             dt	          j        ¦   «         j        t          ¬¦  «        }t          j                             d|t          ¬¦  «        }| dk    r||k    rt          ddi¦  «        d	fS | d
k    rt          ddi¦  «        d	fS t          ¦   «         }|                     |||¦  «        }|d         s't          d|                     dd¦  «        i¦  «        dfS t          |¦  «        dfS # t          $ r-}t          ddt          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)u0   Obtener resumen de un perÃ­odo para el dashboardr   r   r   ©Útyper   r   r   r7   r   rC   u!   No autorizado para ver resÃºmenesr"   zError al obtener resumenr   r%   r&   r'   N)r   r(   r   Úargsr   Únowr   r*   r   r   r   Úget_period_summaryr.   r-   )r   r0   r   r   r   r2   r3   r4   s           r5   rM   rM   ©   s¬  € ðPÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆåŒ|×Ò ­¬©¬Ô(;Å#ÐÑFÔFˆÝ”× Ò  ­(¬,©.¬.Ô*>ÅSÐ ÑIÔIˆÝ”\×%Ò% l°OÍ#Ð%ÑNÔNˆ
ð ˜Ò$ð 	P¨°Ò)Fð 	PÝ˜G _Ð5Ñ6Ô6¸Ð;Ð;Ø˜*Ò$ð 	PÝ˜GÐ%HÐIÑJÔJÈCÐOÐOõ *Ñ+Ô+ˆØ×2Ò2°:¸tÀUÑKÔKˆà�iÔ ð 	\Ý˜G V§Z¢Z°Ð9SÑ%TÔ%TÐUÑVÔVÐX[Ð[Ð[å�v‰Œ Ð#Ð#øåð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs1   ‚C'E( Ã*E( ÄAE( ÅE( Å(
FÅ2"FÆFÆFz/reports/dashboardc                  ór  — 	 t          j        d¦  «        } t          j        d¦  «        }t          j        d¦  «        }t          j                             d|t          ¬¦  «        }| dk    r||k    rt          ddi¦  «        dfS t          j        }| d	k    r|r|                     |¬
¦  «        }n3| dk    r|                     |¬
¦  «        }n|                     |¬¦  «        }| 	                    ¦   «         }|                     d¬¦  «         	                    ¦   «         }|                     d¬¦  «         	                    ¦   «         }|                     d¬¦  «         	                    ¦   «         }|                     d¬¦  «        }	t          j                              t          j                             t          j        ¦  «        ¦  «                             t          j                             |	                     t          j        ¦  «        ¦  «        ¦  «                             ¦   «         pd}
t          j                              t          j                             t          j        ¦  «        ¦  «                             t          j                             |	                     t          j        ¦  «        ¦  «        ¦  «                             ¦   «         pd}|                     t          j                             ¦   «         ¦  «                             d¦  «                             ¦   «         }t          j                              t          j        t          j        t          j         	                    t          j        ¦  «                             d¦  «        t          j                             t          j        ¦  «                             d¦  «        ¦  «                             t          j                             |	                     t          j        ¦  «        ¦  «        ¦  «                             t          j        t          j        ¦  «                             ¦   «         }d„ |D ¦   «         }t;          j        ¦   «         j        }t;          j        ¦   «         j         }|	                     t          j!        dt          j"        ¦  «        |k    t          j!        dt          j"        ¦  «        |k    ¦  «        }| 	                    ¦   «         }t          j                              t          j                             t          j        ¦  «        ¦  «                             t          j                             |                     t          j        ¦  «        ¦  «        ¦  «                             ¦   «         pd}t          d||||tG          |
¦  «        tG          |¦  «        |tG          |¦  «        dœd„ |D ¦   «         ||d›d|› �dœ¦  «        dfS # tH          $ r-}t          ddtK          |¦  «        › �i¦  «        dfcY d }~S d }~ww xY w)!z)Obtener datos para el dashboard principalr   r   Úuser_idrI   r   r   r7   r   r   ©r   )Úcreated_by_user_idÚpending©ÚstatusÚapprovedÚrejectedr   é
   ÚcountÚtotal_amountc                 ób   — g | ],}|j         |j        |j        t          |j        pd ¦  «        dœ‘Œ-S )r   )rJ   ÚdescriptionrX   Úamount)Úexpense_typeÚexpense_descriptionrX   ÚfloatrY   )Ú.0Úexps     r5   ú
<listcomp>z&get_dashboard_data.<locals>.<listcomp>ÿ   sU   € ð 
ð 
ð 
ð ð Ô(Ø"Ô6ØœÝ Ô 0Ð 5°AÑ6Ô6ð	ð ð
ð 
ð 
ó    r   r   T)Útotal_invoicesÚpending_invoicesÚapproved_invoicesÚrejected_invoicesrY   Útotal_itbisÚmonthly_countÚmonthly_amountc                 ó6   — g | ]}|                      ¦   «         ‘ŒS © )Úto_dict)r`   Úinvoices     r5   rb   z&get_dashboard_data.<locals>.<listcomp>#  s"   € ÐQÐQÐQ°g §¢Ñ 1Ô 1ÐQÐQÐQrc   Ú02dú/)r"   Ú
statisticsÚrecent_invoicesÚexpense_summaryÚperiodr%   r&   r'   N)&r   r(   r   rK   r*   r   r   ÚqueryÚ	filter_byrX   r
   ÚfuncÚsumÚinvoiced_amountÚfilterÚidÚin_Úwith_entitiesÚscalarÚitbis_invoicedÚorder_byÚ
created_atÚdescÚlimitÚallr]   r^   ÚlabelÚgroup_byr   rL   r   r   ÚextractÚinvoice_dater_   r.   r-   )r   r0   rO   r   ru   rd   re   rf   rg   Úapproved_queryrY   rh   rr   rs   Úexpense_dataÚcurrent_monthÚcurrent_yearÚmonthly_queryri   rj   r4   s                        r5   Úget_dashboard_datarŽ   Ç   s,  € ð^PÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆÝ”+˜iÑ(Ô(ˆõ ”\×%Ò% l°OÍ#Ð%ÑNÔNˆ
ð ˜Ò$ð 	<¨°Ò)Fð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;õ ”ˆà˜Ò%ð 	@Øð ?ØŸš°:˜Ñ>Ô>�øØ˜,Ò&ð 	@Ø—O’O¨�OÑ?Ô?ˆEˆEà—O’O°w�OÑ?Ô?ˆEð Ÿš™œˆØ Ÿ?š?°)˜?Ñ<Ô<×BÒBÑDÔDÐØ!ŸOšO°:˜OÑ>Ô>×DÒDÑFÔFÐØ!ŸOšO°:˜OÑ>Ô>×DÒDÑFÔFÐð Ÿš°
˜Ñ;Ô;ˆÝ”z×'Ò'­¬¯ªµGÔ4KÑ(LÔ(LÑMÔM×TÒTÝŒJ�NŠN˜>×7Ò7½¼
ÑCÔCÑDÔDñ
ô 
ç
Š&‰(Œ(ðàð 	õ ”j×&Ò&¥r¤w§{¢{µ7Ô3IÑ'JÔ'JÑKÔK×RÒRÝŒJ�NŠN˜>×7Ò7½¼
ÑCÔCÑDÔDñ
ô 
ç
Š&‰(Œ(ðàð 	ð
  Ÿ.š.­Ô);×)@Ò)@Ñ)BÔ)BÑCÔC×IÒIÈ"ÑMÔM×QÒQÑSÔSˆõ œ*×*Ò*ÝÔ ÝÔ'ÝŒG�MŠM�'œ*Ñ%Ô%×+Ò+¨GÑ4Ô4ÝŒG�KŠK�Ô/Ñ0Ô0×6Ò6°~ÑFÔFñ	
ô 
÷
 Š&ÝŒJ�NŠN˜>×7Ò7½¼
ÑCÔCÑDÔDñ
ô 
ç
Š(•7Ô'­Ô)DÑ
EÔ
EÇcÂcÁeÄeð 	ð
ð 
ð 'ð
ñ 
ô 
ˆõ !œ™œÔ,ˆÝ”|‘~”~Ô*ˆà&×-Ò-ÝŒJ�v�wÔ3Ñ4Ô4¸ÒDÝŒJ�w¥Ô 4Ñ5Ô5¸ÒFñ
ô 
ˆð
 &×+Ò+Ñ-Ô-ˆÝœ×)Ò)­"¬'¯+ª+µgÔ6MÑ*NÔ*NÑOÔO×VÒVÝŒJ�NŠN˜=×6Ò6µw´zÑBÔBÑCÔCñ
ô 
ç
Š&‰(Œ(ðàð 	õ Øà"0Ø$4Ø%6Ø%6Ý % lÑ 3Ô 3Ý$ [Ñ1Ô1Ø!.Ý"'¨Ñ"7Ô"7ð	ð 	ð  RÐQÀÐQÑQÔQØ+Ø&Ð;Ð;Ð;¨\Ð;Ð;ð
ð 
ñ ô ð ðð 	øõ" ð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs%   ‚BW? ÂU:W? ×?
X6Ø	"X1Ø+X6Ø1X6z/reports/suppliersc            
      ó’  — 	 t          j        d¦  «        } t          j        d¦  «        }t          j        d¦  «        }t          j                             d|t          ¬¦  «        }t          j                             dt          ¬¦  «        }t          j                             dt          ¬¦  «        }t          j                             ddt          ¬¦  «        }| d	k    r||k    rt          d
di¦  «        dfS | dk    rt          d
di¦  «        dfS t          j                             d¬¦  «        }| dk    r|r|                     |¬¦  «        }n|                     |¬¦  «        }|r6| 	                    t          j        dt          j        ¦  «        |k    ¦  «        }|r6| 	                    t          j        dt          j        ¦  «        |k    ¦  «        }t          j                              t          j        t          j        t          j                             t          j        ¦  «                             d¦  «        t          j                             t          j        ¦  «                             d¦  «        t          j                             t          j        ¦  «                             d¦  «        t          j                             t          j        ¦  «                             d¦  «        ¦  «         	                    t          j                             |                     t          j        ¦  «        ¦  «        ¦  «                             t          j        t          j        ¦  «                             t          j                             t          j        ¦  «                             ¦   «         ¦  «                             |¦  «                             ¦   «         }d„ |D ¦   «         }	t          d|	t=          |	¦  «        ||||dœdœ¦  «        dfS # t>          $ r-}
t          d
dtA          |
¦  «        › �i¦  «        dfcY d}
~
S d}
~
ww xY w)z'Obtener reporte de gastos por proveedorr   r   rO   rI   r   r   rƒ   é   r   r   r7   r   rC   rU   rS   r   rP   Úinvoice_countrY   rh   Úlast_invoice_datec           
      óØ   — g | ]g}|j         pd |j        pd|j        t          |j        pd¦  «        t          |j        pd¦  «        |j        r|j                             d¦  «        nddœ‘ŒhS )z
Sin nombrezSin RNCr   z%Y-%m-%dN)Úsupplier_nameÚsupplier_rncr‘   rY   rh   r’   )r”   r•   r‘   r_   rY   rh   r’   Ústrftime)r`   Úsuppliers     r5   rb   z(get_suppliers_report.<locals>.<listcomp>_  s•   € ð 

ð 

ð 

ð ð "*Ô!7Ð!G¸<Ø (Ô 5Ð B¸Ø!)Ô!7Ý % hÔ&;Ð&@¸qÑ AÔ AÝ$ XÔ%9Ð%>¸QÑ?Ô?ØX`ÔXrÐ%| XÔ%?×%HÒ%HÈÑ%TÔ%TÐ%TÐx|ðð ð

ð 

ð 

rc   T)r   r   r   rƒ   )r"   Ú	suppliersÚtotal_suppliersÚfiltersr%   r&   r'   N)!r   r(   r   rK   r*   r   r   ru   rv   rz   r
   r‡   rˆ   r”   r•   rw   rX   r{   r…   rx   ry   r   Úmaxr|   r}   r†   r€   r‚   rƒ   r„   Úlenr.   r-   )r   r0   rO   r   r   r   rƒ   ru   Úsuppliers_dataÚsuppliers_reportr4   s              r5   Úget_suppliers_reportrŸ   +  s»  € ðIPÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆÝ”+˜iÑ(Ô(ˆõ ”\×%Ò% l°OÍ#Ð%ÑNÔNˆ
ÝŒ|×Ò ­SÐÑ1Ô1ˆÝ”× Ò  ­sÐ Ñ3Ô3ˆÝ”× Ò  ¨"µ3Ð Ñ7Ô7ˆð ˜Ò$ð 	<¨°Ò)Fð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;Ø˜*Ò$ð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;õ ”×'Ò'¨zÐ'Ñ:Ô:ˆà˜Ò%ð 	@Øð ?ØŸš°:˜Ñ>Ô>�øà—O’O¨�OÑ?Ô?ˆEð ð 	SØ—L’L¥¤¨FµGÔ4HÑ!IÔ!IÈTÒ!QÑRÔRˆEØð 	UØ—L’L¥¤¨GµWÔ5IÑ!JÔ!JÈeÒ!SÑTÔTˆEõ œ×)Ò)ÝÔ!ÝÔ ÝŒG�MŠM�'œ*Ñ%Ô%×+Ò+¨OÑ<Ô<ÝŒG�KŠK�Ô/Ñ0Ô0×6Ò6°~ÑFÔFÝŒG�KŠK�Ô.Ñ/Ô/×5Ò5°mÑDÔDÝŒG�KŠK�Ô,Ñ-Ô-×3Ò3Ð4GÑHÔHñ
ô 
÷ Š&ÝŒJ�NŠN˜5×.Ò.­w¬zÑ:Ô:Ñ;Ô;ñ
ô 
ç
Š(ÝÔ!¥7Ô#7ñ
ô 
ç
Š(ÝŒG�KŠK�Ô/Ñ0Ô0×5Ò5Ñ7Ô7ñ
ô 
ç
Š%�‰,Œ,—s’s‘u”uð 	ð

ð 

ð +ð

ñ 

ô 

Ðõ ØØ)Ý"Ð#3Ñ4Ô4à(ØØØð	ð ð	

ð 

ñ 
ô 
ð ð
ð 
	øõ ð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs+   ‚C4P Ã7P ÄK>P Ð
QÐ"QÐ;QÑQz/reports/expense-typesc            	      ób  — 	 t          j        d¦  «        } t          j        d¦  «        }t          j                             d|t          ¬¦  «        }t          j                             dt          ¬¦  «        }t          j                             dt          ¬¦  «        }| dk    r||k    rt          ddi¦  «        d	fS | d
k    rt          ddi¦  «        d	fS t          j                             d¬¦  «        }| dk    r|r|                     |¬¦  «        }n|                     |¬¦  «        }|r6| 	                    t          j        dt          j        ¦  «        |k    ¦  «        }|r6| 	                    t          j        dt          j        ¦  «        |k    ¦  «        }t          j                              t          j        t          j        t          j                             t          j        ¦  «                             d¦  «        t          j                             t          j        ¦  «                             d¦  «        t          j                             t          j        ¦  «                             d¦  «        ¦  «         	                    t          j                             |                     t          j        ¦  «        ¦  «        ¦  «                             t          j        t          j        ¦  «                             t          j                             t          j        ¦  «                             ¦   «         ¦  «                             ¦   «         }d„ |D ¦   «         }t          d||||dœdœ¦  «        dfS # t8          $ r-}t          ddt;          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)z"Obtener reporte de gastos por tipor   r   rI   r   r   r   r   r7   r   rC   rU   rS   r   rP   r‘   rY   rh   c           	      ó”   — g | ]E}|j         pd |j        pd|j        t          |j        pd¦  «        t          |j        pd¦  «        dœ‘ŒFS )Ú06u   Sin descripciÃ³nr   )r]   r^   r‘   rY   rh   )r]   r^   r‘   r_   rY   rh   )r`   Úexpenses     r5   rb   z,get_expense_types_report.<locals>.<listcomp>«  st   € ð 	
ð 	
ð 	
ð ð !(Ô 4Ð <¸Ø'.Ô'BÐ'XÐFXØ!(Ô!6Ý % gÔ&:Ð&?¸aÑ @Ô @Ý$ WÔ%8Ð%=¸AÑ>Ô>ðð ð	
ð 	
ð 	
rc   T)r   r   r   )r"   Úexpense_typesrš   r%   r&   r'   N)r   r(   r   rK   r*   r   r   ru   rv   rz   r
   r‡   rˆ   r]   r^   rw   rX   r{   r…   rx   ry   r   r|   r}   r†   r€   r‚   r„   r.   r-   )	r   r0   r   r   r   ru   rŠ   Úexpense_reportr4   s	            r5   Úget_expense_types_reportr¦   z  sS  € ðCPÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆõ ”\×%Ò% l°OÍ#Ð%ÑNÔNˆ
ÝŒ|×Ò ­SÐÑ1Ô1ˆÝ”× Ò  ­sÐ Ñ3Ô3ˆð ˜Ò$ð 	<¨°Ò)Fð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;Ø˜*Ò$ð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;õ ”×'Ò'¨zÐ'Ñ:Ô:ˆà˜Ò%ð 	@Øð ?ØŸš°:˜Ñ>Ô>�øà—O’O¨�OÑ?Ô?ˆEð ð 	SØ—L’L¥¤¨FµGÔ4HÑ!IÔ!IÈTÒ!QÑRÔRˆEØð 	UØ—L’L¥¤¨GµWÔ5IÑ!JÔ!JÈeÒ!SÑTÔTˆEõ ”z×'Ò'ÝÔ ÝÔ'ÝŒG�MŠM�'œ*Ñ%Ô%×+Ò+¨OÑ<Ô<ÝŒG�KŠK�Ô/Ñ0Ô0×6Ò6°~ÑFÔFÝŒG�KŠK�Ô.Ñ/Ô/×5Ò5°mÑDÔDñ
ô 
÷ Š&ÝŒJ�NŠN˜5×.Ò.­w¬zÑ:Ô:Ñ;Ô;ñ
ô 
ç
Š(ÝÔ ¥'Ô"=ñ
ô 
ç
Š(ÝŒG�KŠK�Ô/Ñ0Ô0×5Ò5Ñ7Ô7ñ
ô 
ç
Š#‰%Œ%ð 	ð	
ð 	
ð (ð	
ñ 	
ô 	
ˆõ ØØ+à(ØØðð ð
ð 
ñ ô ð ðð 	øõ ð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs+   ‚B9M7 Â<M7 ÃJ!M7 Í7
N.Î"N)Î#N.Î)N.N) Úflaskr   r   r   r   r   r   r	   Úsrc.models.userr
   r   Úsrc.models.companyr   Úsrc.models.invoicer   Úsrc.models.expense_typer   Úsrc.routes.authr   Úsrc.services.report_606_servicer   Ú__name__Ú
reports_bpÚrouter+   rA   rD   rF   rM   rŽ   rŸ   r¦   rl   rc   r5   ú<module>r±      sÚ  ðØ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø &Ð &Ð &Ð &Ð &Ð &Ø &Ð &Ð &Ð &Ð &Ð &Ø /Ð /Ð /Ð /Ð /Ð /Ø (Ð (Ð (Ð (Ð (Ð (Ø <Ð <Ð <Ð <Ð <Ð <àˆY�y (Ñ+Ô+€
à×Ò�.¨6¨(ÐÑ3Ô3Øð+Pð +Pñ „ñ 4Ô3ð+PðZ ×ÒÐ)°F°8ÐÑ<Ô<Øð#Pð #Pñ „ñ =Ô<ð#PðJ ×Ò�.¨6¨(ÐÑ3Ô3ØðPð Pñ „ñ 4Ô3ðPð> ×ÒÐ)°F°8ÐÑ<Ô<Øð"Pð "Pñ „ñ =Ô<ð"PðH ×ÒÐ$¨u¨gÐÑ6Ô6ØðPð Pñ „ñ 7Ô6ðPð8 ×ÒÐ&°°ÐÑ8Ô8Øð`Pð `Pñ „ñ 9Ô8ð`PðD ×ÒÐ&°°ÐÑ8Ô8ØðKPð KPñ „ñ 9Ô8ðKPðZ ×ÒÐ*°U°GÐÑ<Ô<ØðEPð EPñ „ñ =Ô<ðEPð EPð EPrc   