
    @Ճh                         d dl Z d dlmZmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZmZ d dlmZmZ d dlmZ d d	lmZ d dlZ G d
 d      Zy)    N)DteModelBranchOfficeModelCustomerModelSupplierModelCommuneModel)descmysql)HelperClass)castDatefuncdatetime	timedelta)or_)relativedeltac                       e Zd Zd Zd Zd ZddZ	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 ddZd	 Z	dd
Z
d Zd Zd Zd Zd Zd ZddlmZmZ d Zd Zd Zd Zd Zd ZdefdZy)DteClassc                     || _         y )N)db)selfr   s     I/var/www/intrajisbackend.com/public_html/app/backend/classes/dte_class.py__init__zDteClass.__init__   s	        c                 x   	 | j                   j                  t              j                  t        j                  |k(        j                  t        j
                  |k(        j                  t        j                  |k(        j                         }|dkD  ryy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)N   r   Error: )
r   queryr   filterfoliorutdte_version_idcount	Exceptionstr)r   r!   r"   r#   folio_counteerror_messages          r   validate_old_dtezDteClass.validate_old_dte   s    	-''--18859PQXXYaYeYeilYlmttu}  vM  vM  Q_  v_  `  f  f  hKQ 	-FM]O,,	-s   BB 	B9B4.B94B9c                    	  | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                        j                  t        t        j                  t        j                  k(        j                  t         j                  t!        t        j                        t!        t        j                        t!        t        j                              }t"        dkD  r[|j%                         }t'        |j(                  j+                  t-        j.                         ddi             |t0        z   dz
  t0        z  }t'        |       t"        dk  s	t"        |kD  rdddS |j3                  t"        dz
  t0        z        j5                  t0              j7                         }|sdd	dS |D cg c]z  }|j                  |j                  |j
                  |j                  |j                  |j                  |j                  r|j                  j9                  d
      nd |j                  d| }}||t"        t0        |dS |j7                         }|D cg c]z  }|j                  |j                  |j
                  |j                  |j                  |j                  |j                  r|j                  j9                  d
      nd |j                  d| }}|S c c}w c c}w # t:        $ r}t=        |      }d|dcY d }~S d }~ww xY w)Nr   literal_bindsTdialectcompile_kwargsr   errorInvalid page numberstatusmessageNo data found%d-%m-%Yidbranch_office_idr!   totalentrance_hour	exit_hour
added_datebranch_officetotal_itemstotal_pagescurrent_pageitems_per_pagedata)r   r   r   r8   r9   r!   r:   r;   r<   r=   r   r>   	outerjoinr    filtersorder_byr   pager$   print	statementcompiler
   r.   rC   offsetlimitallstrftimer%   r&   )	r   r   r@   rA   rD   dteserialized_datar(   r)   s	            r   get_old_dteszDteClass.get_old_dtes   s   N	ADGGMM))&&""##!//	 i!#4#7#78;T;T#Tf hX(()X++,X''( ( ax#kkmeoo--emmoWfhlVm-no*^;a?NRk"!8tk1&-:OPP ||TAX$?@FF~VZZ\&-/JJ "	##  &&(+(<(< YY YY%(%6%6!$IL#.."9"9*"E]a%(%6%6	$ 	## 	## $/#.$(&4+  yy{ "	##  &&(+(<(< YY YY%(%6%6!$IL#.."9"9*"E]a%(%6%6	$ 	## 	## '&G	##0	##  	AFM%-@@	AsQ   F4L4 7AL4 >L4 A?L*L4 L4 'A?L/&L4 *
L4 4	M=MMMNr   c                 	   	 g }|"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |2|j                  t        j
                  j                  d| d             |"|j                  t        j                  |k\         |"|j                  t        j                  |k         |"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |	"|j                  t        j                  |	k(          | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t         j"                        j%                  t         t         j                  t        j                  k(        j&                  | j)                  t+        t        j                        t+        t        j                        t+        t        j                              }|
dkD  r7|j-                         }t/        |j0                  j3                  t5        j6                         ddi             ||z   dz
  |z  }t/        |       |
dk  s|
|kD  rddd	S |j9                  |
dz
  |z        j;                  |      j=                         }|sdd
d	S |D cg c]z  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  r|j                  j?                  d      nd |j"                  d| }}|||
||dS |j=                         }|D cg c]z  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  r|j                  j?                  d      nd |j"                  d| }}|S c c}w c c}w # t@        $ r}tC        |      }d|d	cY d }~S d }~ww xY w)N%r   r,   Tr-   r   r0   r1   r2   r5   r6   r7   r?   )"appendr   r!   r9   r"   customerliker=   r:   supervisor_id	status_idr   r   r8   r;   r<   r   r>   rE   r    rG   r   r$   rI   rJ   rK   r
   r.   rL   rM   rN   rO   r%   r&   )r   r!   r9   r"   rV   sinceuntilamountrX   rY   rH   rC   rF   r   r@   rA   rD   rP   rQ   r(   r)   s                        r   get_allzDteClass.get_allp   s   c	AG x~~67+x88<LLMx||s23#x0055(1oFG x22e;< x22e;<!x~~78(x55FG$x11Y>?DGGMM))&&""##!//	 i!#4#7#78;T;T#Tf hX(()X++,X''( ( ax#kkmeoo--emmoWfhlVm-no*^;a?NRk"!8tk1&-:OPP ||TAX$?@FF~VZZ\&-/JJ "	##  &&(+(<(< YY YY%(%6%6!$IL#.."9"9*"E]a%(%6%6	$ 	## 	## $/#.$(&4+  yy{ "	##  &&(+(<(< YY YY%(%6%6!$IL#.."9"9*"E]a%(%6%6	$ 	## 	## '&G	##0	##  	AFM%-@@	AsP   K2Q 5:Q 0Q 4A?Q3	Q =Q A?QQ 
Q 	R'Q<6R<Rc                 	   	 g }|r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r2|j                  t
        j                  j                  d| d             |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |j                  t        j                  d k7         |	"|j                  t        j                  |	k(         |j                  t        j                  j                  ddg              | j                  j                  t        j                   t        j                  t        j                  t        j                  t        j"                  t        j$                  t        j                  t        j&                  t
        j                  t
        j                  t        j(                  t        j*                  t,        j.                        j1                  t,        t,        j                   t        j                  k(        j1                  t
        t
        j                  t        j                  k(        j2                  | j5                  t        j                   j7                               }|j9                         }|dk(  r	ddg dd|
dS ||z   dz
  |z  }|
dk  s|
|kD  rd	d
dS |
dz
  |z  }|j;                  |      j=                  |      j?                         }ddl m!} tE        |jF                  jI                   |jJ                         ddi             |dz   }tM        ||z   |      }tE        d| d| d|        |D cg c]  }|j                   |j                  |j                  |j(                  |j                  |j                  |j                  |j"                  |j&                  |j                  |j$                  |j*                  r|j*                  jO                  d      nd |j.                  d }}d|||
||||dS c c}w # tP        $ r}d	tS        |      dcY d }~S d }~ww xY w)NrT         r   okr5   r3   r4   rD   r@   rA   rB   r   r0   r1   r2   r	   r,   Tr-   Mostrando resultados del  al  de r6   r8   r9   r!   dte_type_idr:   rV   r"   r;   payment_daterY   r<   r=   r>   r3   r@   rA   rB   rC   	from_itemto_itemrD   *rU   r   r!   r9   r"   r   rV   rW   periodr:   rX   rY   r#   in_r   r   r8   r;   r<   rh   rg   r=   r   r>   rE   r    rG   r   r$   rL   rM   rN   sqlalchemy.dialectsr
   rI   rJ   rK   r.   minrO   r%   r&   r   r!   r9   r"   rV   rm   r\   rX   rY   r#   rH   rC   rF   r   r@   rA   rL   rD   r
   
start_itemend_itemrP   rQ   r(   s                           r   get_all_with_customerzDteClass.get_all_with_customer   s   p	:Gx~~67x88<LLMx||s23}55::Qxj?KLx&89x~~78x55FGx11Y>?NN8<<4/0)x66.HI NN8--111a&9:DGGMM))&&""""%%!!&&$$##!// i!#4#7#78;T;T#Ti}00HLL@f'( h  ") 2  ++-Ka".#$#$$(  '7!;NKax4+-")6KLLQh.0F<<'--n=AACD 2%//))-%--/SbdhRi)jk  !J6N2K@H-j\hZtK=YZ"   ff$'$8$8"LLww!$!2!2 # 0 0 ]] ]]EH^^cnn55jAY]!$!2!2  O " ** $"0'#'	 	!6  	:%#a&99	:s>   M S S BS <B6R?2S ?S 	S%S S% S%c                 	   	 g }|r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r2|j                  t
        j                  j                  d| d             |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |r"|j                  t        j                  |k(         |j                  t        j                  d k7         |	"|j                  t        j                  |	k(         |j                  t        j                  j                  dg              | j                  j                  t        j                   t        j                  t        j                  t        j                  t        j"                  t        j$                  t        j                  t        j&                  t
        j                  t
        j                  t        j(                  t        j*                  t,        j.                        j1                  t,        t,        j                   t        j                  k(        j1                  t
        t
        j                  t        j                  k(        j2                  | j5                  t        j                   j7                               }|j9                         }|dk(  r	ddg dd|
dS ||z   dz
  |z  }|
dk  s|
|kD  rdd	d
S |
dz
  |z  }|j;                  |      j=                  |      j?                         }ddl m!} tE        |jF                  jI                   |jJ                         ddi             |dz   }tM        ||z   |      }tE        d| d| d|        |D cg c]  }|j                   |j                  |j                  |j(                  |j                  |j                  |j                  |j"                  |j&                  |j                  |j$                  |j*                  r|j*                  jO                  d      nd |j.                  d }}d|||
||||dS c c}w # tP        $ r}dtS        |      d
cY d }~S d }~ww xY w)NrT      r   ra   r5   rb   r   r0   r1   r2   r	   r,   Tr-   rc   rd   re   r6   rf   ri   rl   rq   s                           r   get_all_with_customer_to_reviewz(DteClass.get_all_with_customer_to_reviewW  s   p	:Gx~~67x88<LLMx||s23}55::Qxj?KLx&89x~~78x55FGx11Y>?NN8<<4/0)x66.HI NN8--112$78DGGMM))&&""""%%!!&&$$##!// i!#4#7#78;T;T#Ti}00HLL@f'( h  ") 2  ++-Ka".#$#$$(  '7!;NKax4+-")6KLLQh.0F<<'--n=AACD 2%//))-%--/SbdhRi)jk  !J6N2K@H-j\hZtK=YZ"   ff$'$8$8"LLww!$!2!2 # 0 0 ]] ]]EH^^cnn55jAY]!$!2!2  O " ** $"0'#'	 	!6  	:%#a&99	:s>   L?S S BS ;B6R>1S >S 	S$SS$S$c                 L   | j                   j                  t              j                  t        j                  |j
                  k(        j                         }d|_        |j                  |_        |j                  |_
        |j                  |_        |j                  |_        ||_        	 | j                   j                          | j                   j!                  |       dddS # t"        $ r5}| j                   j%                          ddt'        |       dcY d }~S d }~ww xY w)Nrv   successzDte updated successfullyr2   r0   r   )r   r   r   r    r8   dte_idfirstrY   payment_type_iddeposited_amountpayment_amountpayment_numberdeposit_daterh   supportcommitrefreshr%   rollbackr&   )r   	form_datar   rP   r(   s        r   upload_deposit_transferz DteClass.upload_deposit_transfer  s    ggmmH%,,X[[I<L<L-LMSSU'77&77&55$11	FGGNNGGOOC '4NOO 	FGG%GCF82DEE	Fs   +9C% %	D#.*DD#D#c                 6	   	 g }|"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |2|j                  t
        j                  j                  d| d             |"|j                  t        j                  |k         |"|j                  t        j                  |k\         |"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |	"|j                  t        j                  |	k(         |j                  t        j                  d k7         |j                  t        j                  |k(          | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  t        j                  t
        j                  t
        j                  t        j                  t$        j&                        j)                  t$        t$        j                  t        j                  k(        j)                  t
        t
        j                  t        j                  k(        j*                  | j-                  t        j                  j/                               }t1        |j2                  j5                  t7        j8                         ddi            }|j;                  dd      }t=        d|       |dz
  |z  }| j                  j?                  |j2                  jA                  |      jC                  |            jE                         }tG        |      }||z   dz
  |z  }|}|D cg c]  }|j                  |j                  |j                  |j                  |j                  |j                  |j                   |j                  |j"                  |j                  r|j                  jI                  d      nd |j&                  d	 }}|||||d
S c c}w # tJ        $ r}t1        |      }d|dcY d }~S d }~ww xY w)NrT   r,   Tr-   z%%zConsulta SQL corregida:r   r6   )r8   r9   r!   r:   supplierr"   r;   rY   r<   r=   r>   r?   r0   r2   )&rU   r   r!   r9   r"   r   r   rW   r=   r:   rX   rY   r#   r   r   r8   r;   r<   r   r>   rE   r    rG   r   r&   rJ   rK   r
   r.   replacerI   executerL   rM   fetchalllenrO   r%   )r   r!   r9   r"   r   rZ   r[   r\   rX   rY   rg   r#   rH   rC   rF   r   	query_sqlrL   rD   r@   rA   data_paginatedrP   rQ   r(   r)   s                             r    get_received_tributary_documentsz)DteClass.get_received_tributary_documents  s   ]	AG x~~67+x88<LLMx||s23#}55::Qxj?KL x22e;< x22e;<!x~~78(x55FG$x11Y>?NN8<<4/0NN822nDEDGGMM))&&""""!!&&##!// i!#4#7#78;T;T#Ti}00HLL@f#$ h  "% . EOO33EMMO]lnr\s3tuI "))$4I +Y7 Qh.0F 77??5??#9#9&#A#G#G#WXaacD d)K&7!;NK!N ()  ff$'$8$8LLww!$!2!2 ]] ]]EH^^cnn55jAY]!$!2!2  )O )  +* $"0' ),  	AFM%-@@	As1   OQ5 B Q0&	Q5 0Q5 5	R>RRRc                    d}d}t        j                  |t        j                         j	                  d      d      }dd| d}t        j                  |||      }	 |j                         }t        d	|       t        |t              r|}n&t        |t              r
d
|v r|d
   }nt        d       y |st        d       y t        dt        |       d| d       |D ]  }	| j                  j                  t              j                  t        j                   |k(        j#                         }
|
sdt%        |      z   }i }t        j&                  d|||      }t        |j(                         |j                         }t        d       t        d|j+                  d       d|j+                  d              t        d|j+                  d              t        d|j+                  d              t        d|j+                  d              t        d|j+                  d              t        d|j+                  d               t        d!|j+                  d"              t        d#|j+                  d$       d%|j+                  d&       d'       t        d(|j+                  d)              |j+                  dd*      }|j-                  d+d*      j-                  d,d*      j/                         }| j                  j                  t0              j                  t3        j4                  t0        j6                        j9                  d-|j+                  d&d*      j5                          d-            j#                         }t        ||j:                  |j<                  |j+                  d      |j+                  d"      |j+                  dd*      ||j+                  d       t        j                         .	      }| j                  j?                  |       	 | j                  jA                          t        d/|	j+                  dd0       d1       t        d4|	j+                  d5       d6|	j+                  d7       d8|	j+                  d       d9|	j+                  d:       d;|	j+                  d<       d=|	j+                  d>       d?|	j+                  d@       dA|	j+                  dB       dC|	j+                  dD      rdEndF dG       | j                  j                  tD              j                  tD        jF                  |	j+                  d7      k(        j                  tD        jH                  dHk(        jK                         }|dIk(  r&|	j+                  d5      dJk(  rdK}n-|	j+                  d5      dLk(  rdM}n|	j+                  d5      dNk(  rdO}| j                  j                  tL              j                  tL        jN                  |	j+                  dP      k(        j#                         }| j                  j                  tD              j                  tD        j                   |k(  tD        jP                  k(  tD        jH                  dHk(  tD        jR                  t        j                         j	                  dQ      k(  tD        jF                  |	j+                  d7      k(        jK                         }| j                  j                  tL              j                  tL        jN                  |	j+                  dP      k(        jK                         }|dIk(  r$|dIkD  rtE        doi dR|j<                  dSdIdT|dUdHdVdWd7|	j+                  d7      d|dX|	j+                  d<      dYdIdZtU        |	j+                  d<      d[z        d\|	j+                  d<      tU        |	j+                  d<      d[z        z
  d]dId<|	j+                  d<      d^dId_dId`dIdadIdbdIdcdIdddIdedIdfd*dgd*dht        j                         j	                  dQ      di|	j+                  d:      }| j                  j?                  |       	 | j                  jA                          t        dj|	j+                  d7       d1       t        dl|	j+                  d7       dm        y # tB        $ r7}t%        |      }t        d2|	j+                  dd0       d3|        Y d }~d }~ww xY w# tB        $ r6}t%        |      }t        dk|	j+                  d7       d3|        Y d }~ld }~ww xY w# t         jV                  $ r# t        dn       t        |j(                         Y y w xY w)pN8https://libredte.cl/api/dte/dte_emitidos/buscar/76063822 JXou3uyrc7sNnP2ewOCX38tWZ6BTm4D1%Y-%m-01receptorfecha_desdeapplication/jsonBearer AcceptAuthorizationheadersrD   Respuesta recibida:dtes2No se encontraron documentos o formato inesperado.*No se encontraron documentos para ese RUT.Se encontraron  documentos para el RUT :
0https://libredte.cl/api/dte/contribuyentes/info/GET   Información del contribuyente:RUT: r"   -dv   Razón Social: razon_socialGiro: giro   Actividad Económica: actividad_economica   Teléfono: telefonoEmail: email   Dirección: 	direccionComuna: comuna (comuna_glosa)u   Última Modificación: 
modificado +56 rT   	r"   	region_id
commune_idrV   addressactivityphoner   r=   Cliente Cliente Desconocido guardado correctamente.zError al guardar el cliente : z
                    Tipo: tipoz
                    Folio: r!   u$   
                    Razón Social: z
                    Fecha: fechaz
                    Total: r:   z
                    Estado: estadoz
                    Track ID: track_idz
                    Usuario: usuariou#   
                    ¿Tiene XML?: has_xml   SíNozW
                    -----------------------------
                                    r   r      Factura electrónica!      Boleta electrónica'      Nota de crédito electrónica=   sucursal_sii%Y-%mr9   
cashier_idrg   r#   rY   r_   cash_amountcard_amountsubtotal
ףp=
?taxdiscountticket_serial_numberticket_hourticket_transaction_numberticket_dispenser_numberticket_numberticket_station_number	ticket_saticket_correlativer;   r<   rm   r=   DTE con folio "Error al guardar el DTE con folio El DTE con folio  ya existe en la base de datos.#   La respuesta no es un JSON válido: ),jsondumpsr   nowrO   requestspostrI   
isinstancelistdictr   r   r   r   r    r"   r{   r&   requesttextgetr   stripr   r   lowercommunerW   r   r8   addr   r%   r   r!   r#   r$   r   dte_coderg   rm   roundJSONDecodeError)r   r"   urltokenpayloadr   responserD   r   rP   rV   	raw_phonecleaned_phonecommune_datastore_customerr(   r)   dte_qtyrg   r>   validate_dte_existencebranch_office_qty	store_dtes                          r   import_by_rutzDteClass.import_by_rutI  s   H2**#<<>22:>
  )&ug.

 ==gGDX	!==?D'. $%D$'FdNF|JKBCOCI;.Fse3OP Aa77==7>>}?P?PTW?WX^^`LsSVxWCG'//sGRYZH(--(#==?D;<E$((5/!2!DHHTN3CDEODHH^,D+EFGF488F#3"4562488<Q3R2STUK(<'=>?GDHHW$5#678L+)>(?@AHTXXh%7$8488N;S:TTUVW3DHH\4J3KLM $R 8I$-$5$5eR$@$H$Hb$Q$W$W$YM#'77==#>#E#E$(JJ|/C/C$D$I$IAdhhWegiNjNpNpNrMsstJu$v$""'%' ! &3"."8"8#/??!%.!9 $ 5!%&"!5+"hhw/#+<<>
&N GGKK/@(AV)W(XXpqr
  776?+ ,GGG,- .$$'GGN$;#< =GGG,- .GGG,- . WWX./ 0"wwz23 4!ggi01 2#,/GGI,>5D"I J%( ) ''--188377SZK[9[\ccdld{d{  @A  eA  B  H  H  Ja<wwv*@@&(,AA&(,KK&($(GGMM2C$D$K$K-66#''.:QQ%%' " .2WW]]8-D-K-K$LLC/$00K?$33q8$OOx||~/F/Fw/OO$NNcggg.>>.  %' + )-6G(H(O(O-66#''.:QQ)%' & .27H17L$, %-:-=-=%'(% )4% ,-	%
 '(% #&'''"2% !$% ),(8% )*% &+3777+;D+@%A% !$ 059I$9N3O O% &'% #&'''"2% 23% )*%  78!%" 56#%$ +,%%& 34'%( '()%* 01+%, +--%. ')/%0 $,<<>#:#:7#C1%2 (+www'73%	8 I.h(swww/?.@@XYZ
 -cggg.>-??^_`CAa` % @(+A <SWW^Uj=k<llno|n}~@Z % h(+A B3777CSBTTVWdVefggh ## 	!78(-- 	!su   Ae 4e Me 9cPe 28d*#e 	d,d	e 	de 	e+ee ee 3f	f	c                    | j                   j                  t              j                  t        j                  dk7        j                         }|D ]  }t        |j                         |j                  }d}d}t        j                  |t        j                         j                  d      d      }dd| d}t        j                  |||	      }	 |j                         }	t        d
|	       d }
t        |	t              r|	}
n%t        |	t               r
d|	v r|	d   }
nt        d       |
st        d       t        dt#        |
       d| d       |
D ]~  }| j                   j                  t              j                  t        j                  |k(        j%                         }|sdt'        |      z   }t        j(                  ||      }|j                         }	t        d       t        d|	j)                  d       d|	j)                  d              t        d|	j)                  d              t        d|	j)                  d              t        d|	j)                  d              t        d|	j)                  d              t        d |	j)                  d!              t        d"|	j)                  d#              t        d$|	j)                  d%       d&|	j)                  d'       d(       |	j)                  dd)      }|j+                  d*d)      j+                  d+d)      j-                         }| j                   j                  t.              j                  t1        j2                  t.        j4                        j7                  d,|	j)                  d'd)      j3                          d,            j%                         }t        ||r|j8                  nd |r|j:                  nd |	j)                  d      |	j)                  d#      |	j)                  dd)      ||	j)                  d!      t        j                         -	      }| j                   j=                  |       	 | j                   j?                          t        d.|j)                  dd/       d0       t        d2|j)                  d3       d4|j)                  d5       d6|j)                  d       d7|j)                  d8       d9|j)                  d:       d;|j)                  d<       d=|j)                  d>       d?|j)                  d@       dA|j)                  dB      rdCndD dE       | j                   j                  tB              j                  tB        jD                  |j)                  d5      k(        jG                         }|dFk(  r|j)                  d3      dGk(  rdH}n0|j)                  d3      dIk(  rdJ}n|j)                  d3      dKk(  rdL}n| j                   j                  tH              j                  tH        jJ                  |j)                  dM      k(        j%                         }| j                   j                  tB              j                  tB        j                  |k(  tB        jL                  |k(  tB        jN                  dNk(  tB        jP                  t        j                         j                  dO      k(        jG                         }| j                   j                  tH              j                  tH        jJ                  |j)                  dM      k(        jG                         }|dFk(  r$|dFkD  rtC        dni dP|j:                  dQdFdR|dSdNdTdUd5|j)                  d5      d|dV|j)                  d:      dWdFdXtS        |j)                  d:      dYz        dZ|j)                  d:      tS        |j)                  d:      dYz        z
  d[dFd:|j)                  d:      d\dFd]dFd^dFd_dFd`dFdadFdbdFdcdFddt        j                         j                  dO      ded)dfd)dg|j)                  d8      }| j                   j=                  |       	 | j                   j?                          t        dh|j)                  d5       d0       at        dk|j)                  d5       dl         y # t@        $ r"}t        d1t'        |              Y d }~gd }~ww xY w# t@        $ r4}t        di|j)                  d5       djt'        |              Y d }~d }~ww xY w# t        jT                  $ r$ t        dm       t        |jV                         Y 	.w xY w)oN
66666666-6r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rT   r   r   r   r   zError al guardar el cliente: z
    Tipo: r   z
    Folio: r!   u   
    Razón Social: z
    Fecha: r   z
    Total: r:   z
    Estado: r   z
    Track ID: r   z
    Usuario: r   u   
    ¿Tiene XML?: r   r   r   z'
    -----------------------------
    r   r   r   r   r   r   r   r   r   r   r9   r   rg   r#   rY   r_   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rm   r;   r<   r=   r   r   r   r   r   r   r   ),r   r   r   r    r"   rN   rI   r   r   r   r   rO   r   r   r   r   r   r   r{   r&   r   r   r   r   r   r   r   rW   r   r8   r   r   r%   r   r!   r$   r   r   rg   r#   rm   r   r   r   )r   	customersrV   r"   r  r  r  r   r  rD   r   rP   info_urlr  r  r  r  r(   r	  rg   r>   r
  r  r  s                           r   refresh_import_by_rutzDteClass.refresh_import_by_rut  s   GGMM-0778I8I\8YZ^^`	! ^	%H(,,,,CLC6Ejj'||~66zB" G -#*5'!2G
  }}S'HHL%}}+T2dD)Dd+$<DNOFGD	{2J3%sST weC#ww}}];BB=CTCTX[C[\bbdH##UX[\_X`#`#+<<'#J'}}?@dhhuo%6a7GHI0H/IJKtxx'7&89: 6txx@U7V6WXYDHHZ,@+ABC(9':;<TXXk-B,CDE();(<Btxx?W>XXYZ[$(HHZ$<	(1(9(9%(D(L(LSRT(U([([(]'+ww}}\'B'I'I JJ|';';<AAAdhh~_aFbFhFhFjEkklBmn(%' % *7 #@Ll&<&<RV:F|D%)XXn%=$(HH[$9%)XXfb%9"/"&((7"3'/||~
* N3L GGNN,!HSWW^EZ-[,\\t"uv  776?
 GGG GGN+, -GGG GGG WWX  wwz"# $ggi ! "GGI.5D9 : 	 #ggmmH5<<X^^swwW^O_=_`ffhG!|776?.DD*,K WWV_0EE*,K WWV_0OO*,K$(,6G(H(O(O-66#''.:QQ)%' & 26x1H1O1O$LLC/$00K?$33q8$OOx||~/F/Fw/OO	2
  %' / -1GGMM:K,L,S,S-66#''.:QQ-%' * 2Q6;Lq;P(0 )1>1A1A)+,) -8) 01	)
 +,) '*ggg&6) %() -0GGG,<) -.) */swww/?$/F)G) %(GGG$4uSWWW=MPT=T7U$U) *+) '*ggg&6) 67) -.)  ;<!)" 9:#)$ /0%)& 78')( +,))* 45+), *2)@)@)I-). /1/)0 +-1)2 ,/777+;3)I8 !GGKK	2e GGNN,!N37773C2DD\"]^  1#'''2B1CCbcdoweI^	%Z  ) L!$A#a&"JKKLV  ) e!$FswwwGWFXXZ[^_`[aZb"cdde '' %;<hmm$%so   A#e7L(e 9cO!e;8d3#e	d#d :e de	e)e :e ee3e?>e?c                    | d   dk(  s| d   dk(  rd| d<   | d   dk(  rd| d<   dt        | d         z   dz   t        | d         z   d	z   t        | d
         z   dz   }i }i }t        j                  d|||      }|j                  S Nrol_idr_   r`   r      z*https://jisparking.com/api/dte/receivable//r"   z?api_token=	api_tokenr   POSTr   r&   r   r   r   user_inputsr  r  r   r  s        r   get_total_quantityzDteClass.get_total_quantity      x A%X)>!)C$%K!x A%$%K!:CH@U<VVX[[]`almras]tt  wD  D  FI  JU  Va  Jb  Fc  c  eg  g##FCwO}}r   c                    | d   dk(  s| d   dk(  rd| d<   | d   dk(  rd| d<   dt        | d         z   dz   t        | d         z   d	z   t        | d
         z   dz   }i }i }t        j                  d|||      }|j                  S r  r  r  s        r   get_total_amountzDteClass.get_total_amount  r  r   c                 |   | j                   j                  t              j                  t        j                  |d   k(        j                         }|dk(  rt        di d|d   d|d   d|d   d|d   ddd|d   d	|d	   d
|d
   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   d|d   }| j                   j                  |       	 | j                   j                          yy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr!   r   r9   r   rg   r"   r  r   r   r   r   r   r:   r   r   r   r   r   r   r   r   r;   r<   r=   r   r      r   )
r   r   r   r    r!   r$   r   r   r%   r&   )r   
dte_inputs	dte_countrP   r(   r)   s         r   storezDteClass.store  s   GGMM(+228>>ZPWEX3XY__a	> !+,>!?%l3 '}5 !)	
 ! '}5 '}5 $J/ u% $J/ !) &00F%G '}5 +55P*Q )33L(M  )9!" '11H&I#$ %[1%& $..B#C'( )9)* %[1+, &l3-C2 GGKK1 
 	  1 #A 001s   <D 	D;!D60D;6D;c                     | j                   j                  t              j                  t        j                  |k(        j                         }|dkD  ryy)Nr   r   )r   r   r   r    r!   r$   )r   r!   check_existences      r   	existencezDteClass.existence  sA    ''--1#VHNNe$;<"UW 	 Qr   r   c                 8   t        j                  |d      j                         }t        j                  |t         j                  j                               }|t        d      z   }| j                  j                  t              j                  t        j                  |k(        j                  t        j                  |k(        j                  t        j                  |k\        j                  t        j                  |k        j                         }||k(  rdS dS )Nz%Y-%m-%dr   )daysr   )r   strptimedatecombinerp   timer   r   r   r   r    r9   r   r=   r$   )	r   total_machine_ticketr9   r   r=   added_date_obj
start_dateend_datequantitys	            r   validate_quantity_ticketsz"DteClass.validate_quantity_tickets  s    !**:zBGGI%%nhll6G6G6IJ
	q 1177==*VH--1AABVH'':56VH'':56VH''(23UW 	  44q;!;r   c                    | j                   j                  t        j                  t        j
                              j                  t        j                  |k(        j                  t        j                  |k(        j                  t        j                  dk(        j                  t        t        j                  t              |k(        j                         }|xs dS )Nr`   r   )r   r   r   sumr   r   r    r9   r   rY   r   r=   r   scalar)r   r9   r   r=   r\   s        r   verifiy_credit_note_amountz#DteClass.verifiy_credit_note_amount  s    txx(<(<=>VH--1AABVH'':56VH&&!+,VD,,d3zABVX 	 {r   c                 F   |dk(  r	 | j                   j                  t              j                  t        j                  |k(        j                  t        j
                  |k(        j                  t        t        j                  t              |k(        j                  t        j                  |k(        j                         }|r6| j                   j                  |       | j                   j                          yy	 | j                   j                  t              j                  t        j                  |k(        j                  t        j
                  |k(        j                  t        t        j                  t              |k(        j                         }|r=|D ]  }	| j                   j                  |	        | j                   j                          yy# t        $ r}t        |      }d| cY d }~S d }~ww xY w# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr   r5   r   )r   r   r   r    r9   r   r   r=   r   r!   r{   deleter   r%   r&   rN   )
r   r!   r9   r   r=   singlerD   r(   r)   records
             r   r;  zDteClass.delete  s   Q;1ww}}X.#VH$=$=AQ$QR#VH$7$7:$EF#VD)<)<d$Cz$QR#VHNNe$;<"UW  GGNN4(GGNN$*
1ww}}X.#VH$=$=AQ$QR#VH$7$7:$EF#VD)<)<d$Cz$QR SU	  "& /v./GGNN$*'  1 #A 001(  1 #A 001s=   C2G <CG= 	G: G5/G:5G:=	H HH H c                    t        j                  |      }t        j                  |      }| j                  j	                  t
              j                  t
        j                  |k(        j                  t
        j                  dk(        j                  t
        j                  dk(        j                  t
        j                  j                  ddg            j                         }|r|D ]  }g d}|j                  |v st        j                  |      }t        |j                  |j                  d|j                  ddd|j                   d|j"                  |j$                  d|j&                  ||      }| j                  j)                  |       | j                  j+                           	 yy
# t,        $ r}	t/        |	      }
d	|
 cY d }	~	S d }	~	ww xY w)Nr`   r   r   r   )   
         rv         r   "   r   )   -   0   2   4   9   <   r   G   L   N   Q   Z   f   j   p   r   )r"   r9   r   rg   r#   chip_idrY   r   r   r   r   r   r:   rm   r=   zOpened period successfullyr   r5   )r   fix_current_dte_periodfix_last_dte_periodr   r   r   r    rm   rY   r#   rg   rn   rN   r9   create_period_dater"   r   r   r   r:   r   r   r%   r&   )r   rm   current_periodlast_perioddte_data	dte_datumvalid_branch_idsr=   rP   r(   r)   s              r   open_customer_billing_periodz%DteClass.open_customer_billing_period0  s   $;;FC!55f=77==*!';(F!G!'(:(:a(?!@!'(?(?1(D!E!'(<(<(@(@"b(J!K!$ 	 % %	 $N --1AA!,!?!?!GJ"%MM)2)C)C#$$-$9$9'( !"#$-$9$9$%!*!3!3%MM!"'oo-#-C& GGKK$GGNN$7%:13 #  1 #A 001s   /	G8GGGc           	         | j                   j                  t              j                  t        j                  |k(        j                         }dt        |j                        z   dz   t        |j                        z   dz   }d}t        j                  |d d dddd      }dd	| d
}t        j                  d|||      }t        |j                         y )Nz6https://libredte.cl/api/dte/dte_emitidos/enviar_email/r  z	/76063822r   Fr   )emailsasuntomensajepdfcediblepapelContinuor   r   r   r  r   )r   r   r   r    r8   r{   r&   rg   r!   r   r   r   r   rI   r   )	r   rz   r   rP   r  r  r  r   r  s	            r   resendzDteClass.resendc  s    ggmmH%,,X[[F-BCIIKFCOOH\\^aacfgjgpgpcqqs~~2**
  )&ug.

 ##FCwOhmmr   c           
         t        j                         j                  d      }| j                  j	                  t
              j                  t
        j                  dk(        j                  t
        j                  dk(        j                  t
        j                  dk(        j                  t
        j                  |k(        j                  t
        j                  j                  d             j                         }d}d}d}dd	| d
}|D ]  }t        d|j                         i dd dd dd dd dd dd dd dd d|j                  dd dd dd dd dd dd dd dd d d d}	 t!        j"                  |||      }	|	j%                          |	j'                         }
|
r`|
d   j)                  d      }t        d |       d!}| d"| d"| d#}dd	| d
}t!        j(                  ||$      }|j%                          |j'                         }|j)                  d%i       j)                  d&i       j)                  d'      }t        d(|       | j                  j	                  t
              j                  t
        j                  |j                  k(        j                  t
        j                  dk(        j+                         }d)| |_        | j                  j-                          | j                  j/                  |       nt        d*        y-# t0        $ r/}t        d+|j                   d,t3        |              Y d }~<d }~ww xY w).Nr   r`   r#  r   r   4https://libredte.cl/api/pagos/cobros/buscar/76063822)https://libredte.cl/api/pagos/cobros/infor   r   r   Folio:codigovencidos
vencen_hoyvigentessin_vencimientodte_emitidosr   rP   r!   r   fecha_hastapagadopagado_desdepagado_hastar:   total_desdetotal_hastamediosucursalr   r   r      Código extraído:
76063822-6r  '?getDocumento=0&getDetalle=0&getLinks=0r  datosdetailOutputauthorizationCodeAuthorization Code:   Código de autorización: z!No hay resultados para este folioError al procesar folio r   Listo)r   r   rO   r   r   r   r    rY   r|   r#   rm   commentis_rN   rI   r!   r   r   raise_for_statusr   r   r{   r   r   r%   r&   )r   rm   r[  r  
search_urlbase_info_urlr   rP   r  r  rD   rk  
rut_emisorr  info_headersinfo_response	info_dataauthorization_code
dte_recordr(   s                       r   get_massive_codeszDteClass.get_massive_codes}  s}   ((1 GGMM(#VH&&!+,VH,,12VH++q01VHOOv-.VH$$((./SU 	 3K
C )&ug.

  J	HC(CII&$D d D	
 "4  D t  t t $     t!" t#$  'G,1H#==W7S))+}}!!W[[2F.7 ".J"/&:,FmnH #5+25'):$L
 %-LL<$PM!224 - 2 2 4I "Wb)^R001	 ' /1CD h/#)) ;< 7 71 <=	  ,FFXEY)ZJ&GGNN$GGOOJ/ =>OJ	HX   H02c!fXFGGHs   ,F&L	M$M		Mr!   c           	         d}d}d}dd| d}| j                   j                  t              j                  t        j                  |k(        j                  t        j
                  dk(        j                         }|st        d|        y	t        d
|j                         i dd dd dd dd dd dd dd dd d|j                  dd dd dd dd dd dd dd dd d d d}	 t        j                  |||      }|j                          |j                         }	|	r|	d   j                  d      }
t        d|
       d }| d!|
 d!| d"}t        j                  ||#      }|j                          |j                         }|j                  d$i       j                  d%i       j                  d&      }t        d'|       |r@d(| |_        | j                   j                          | j                   j                  |       yt        d)       y	# t         $ r.}t        d*|j                   d+t#        |              Y d }~y	d }~ww xY w),Nr   rh  ri  r   r   r   r   u!   No se encontró el DTE con folio r#  rj  rk  rl  rm  rn  ro  rp  r   rP   r!   r   rq  rr  rs  rt  r:   ru  rv  rw  rz  r   r{  r|  r  r}  r  r~  r  r  r  r  u(   No se obtuvo código o authorizationCoder  r   )r   r   r   r    r!   r#   r{   rI   r   r   r  r   r   r  r   r   r%   r&   )r   r!   r  r  r  r   rP   r  r  rD   rk  r  r  r  r  r  r(   s                    r   get_dte_authorization_codez#DteClass.get_dte_authorization_code  s   2K
C )&ug.
 GGMM(#VHNNe+,VH++q01UW	 	 5eW=>h		"
d

 $
 	

 t
 D
 
 4
 SYY
 4
 4
 d
 D
 D
 T
  4!
" 4#
$ '
,(	}}ZwOH%%'==?DaX.*F3 *
+_AfXQzlBij (Xw G..0)..0	 S"%S,S,-	 # +-?@%$>?Q>R"SCKGGNN$GGOOC(<= 	,SYYKr#a&BC	s   (DH H 	I$II)NNNNNNNNNr   r@  )NNNNNNNNNNNr   r@  )__name__
__module____qualname__r   r*   rR   r]   rt   rw   r   r   r  r  r  r!  r&  r)  r   r   r5  r9  r;  r^  rf  r  intr  r   r   r   r   r      s    -OAddAP ~:F ~:@F$^A@h!T`%D""&P	 -<"'1R1#f4bHU Ur   r   )r   app.backend.db.modelsr   r   r   r   r   
sqlalchemyr   ro   r
    app.backend.classes.helper_classr   r   r   r   r   r   r   dateutil.relativedeltar   r   r   r   r   r   <module>r     s5     i i  % 8 ' ' (  0 j jr   