
    Ց,h                         d dl m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 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 d dlZd dlZd dlZd dlZd dlmZ  G d d      Zy)    )Session)DteModelCustomerModelBranchOfficeModel	UserModelExpenseTypeModel)CustomerClass)WhatsappClass)HelperClass)	FileClass)desc)mysql)or_)datetime)HTTPExceptionN)funcc                   |    e Zd ZdefdZddZddZd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)CustomerTicketClassdbc                 2    || _         t        |      | _        y )N)r   r   
file_class)selfr   s     ^C:\Users\jesus\OneDrive\Desktop\escritorio\newerp\app\backend\classes\customer_ticket_class.py__init__zCustomerTicketClass.__init__   s    #B-    Nc                     	 g }|j                  t        j                  dk(         |j                  t        j                  dk(         |j                  t        j                  d k7         |dk(  rt        d       |j                  t        t        j                  dk(  t        j                  dk(  t        j                  dk(               t        j                         j                  d      }|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.                  
      j1                  t,        t,        j                  t        j                  k(        j1                  t(        t(        j                  t        j                  k(        j2                  | j5                  t7        t        j                              }n|j                  t        t        j                  dk(  t        j                  dk(                | j                  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                  t7        t        j                               }|d	kD  rM|j9                         }t        |j:                  j=                  t?        j@                         d
di             ||z   dz
  |z  }	t        |	       |dk  s||	kD  rdddS |jC                  |dz
  |z        jE                  |      jG                         }
|
sdddS |
D cg c]  }|j                  |j                  |j                  |j*                  |j&                  |j                   |j"                  |j                  |j$                  r|j$                  j                  d      nd |j.                  d
 }}||	|||dS |jG                         }
|
D cg c]  }|j                  |j                  |j                  |j*                  |j&                  |j                   |j"                  |j$                  r|j$                  j                  d      nd |j.                  |j                  d
 }}|S c c}w c c}w # tH        $ r}tK        |      }d|dcY d }~S d }~ww xY w)N   '            %m-%Y      r   literal_bindsTdialectcompile_kwargserrorInvalid page numberstatusmessageNo data foundz%Y-%m-%d
idrutbranch_office_idcustomerchip_idfoliototal	status_id
added_datebranch_officetotal_itemstotal_pagescurrent_pageitems_per_pagedata)
r0   r1   r2   r3   r4   r5   r6   r8   r9   r7   )&appendr   dte_version_iddte_type_idr1   printr   r7   r   nowstrftimeperiodr   queryr0   r2   r5   r6   r8   r4   r   r3   r   r9   	outerjoinfilterorder_byr   count	statementcompiler   r'   offsetlimitall	Exceptionstr)r   grouppager>   rF   filterscurrent_periodrG   r;   r<   r?   dteserialized_dataeerror_messages                  r   get_allzCustomerTicketClass.get_all   s   z	AGNN822a78NN8//256NN8<<4/0zc
s8#5#5#:H<N<NRS<SU]UgUgklUlmn!)!8!8!Ax.@AKK--NNNN''LL&&$$!**%33 )%'8';';x?X?X'X)!=#4#4#D&!" (++,# * s8#5#5#:H<N<NRS<STUKK--NNNN''LL&&$$!**%33 )%'8';';x?X?X'X)!=#4#4#D&!" ((# , ax#kkmeoo--emmoWfhlVm-no*^;a?NRk"!8tk1&-:OPP ||TAX$?@FF~VZZ\&-/JJ "##  &&77(+(<(< #"{{ YY YY!$IL#.."9"9*"E]a%(%6%6$ ## ## $/#.$(&4+  yy{ "##  &&77(+(<(< #"{{ YY YYIL#.."9"9*"E]a%(%6%6!$$ ## ## '&O##4##  	AFM%-@@	AsP   QW* :W* W* BW )	W* 3W* BW%W*  
W* *	X3XXXc                 r   	 g }|d k7  r"|j                  t        j                  |k(         |d k7  r'|dk7  r"|j                  t        j                  |k(         |2|j                  t        j
                  j                  d| d             |d k7  r"|j                  t        j                  |k(         |j                  t        j                  dk(         |j                  t        j                  dk         |j                  t        j                  dk(         |j                  t        j                  d k7         |d k7  r~ | j                  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'                  t        t        j                  t        j                  k(        j,                  | j/                  t1        t        j                              }	nI | j                  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/                  t1        t        j                              }	|dkD  rM|	j3                         }
t5        |	j6                  j9                  t;        j<                         ddi	             |
|z   dz
  |z  }t5        |       |dk  s||kD  rd
ddS |	j?                  |dz
  |z        jA                  |      jC                         }|sd
ddS |D cg c]  }|j                  |j                  |j                  |j
                  |j                   |j                  |j                  |j                  |j                  r|j                  jE                  d      nd |j$                  d
 }}|
||||dS |	jC                         }|D cg c]  }|j                  |j                  |j                  |j
                  |j                  |j                   |j                  |j                  r|j                  jE                  d      nd |j$                  |j                  d
 }}d|iS c c}w c c}w # tF        $ r}tI        |      }d
|dcY d }~S d }~ww xY w)N %r   r#   r   r   r%   Tr&   r)   r*   r+   r.   %d-%m-%Yr/   r:   )
r0   r1   r2   r3   r5   r4   r6   r8   r9   r7   r?   )%r@   r   r2   r1   r   r3   liker7   rA   rB   r   rG   r0   r5   r6   r8   r4   r   r9   rH   r   principal_supervisorrI   rJ   r   rK   rC   rL   rM   r   r'   rN   rO   rP   rE   rQ   rR   )r   r2   r1   r3   r7   supervisor_idrT   r>   rU   rG   r;   r<   r?   rW   rX   rY   rZ   s                    r   searchzCustomerTicketClass.search   s   @	AG4'x88<LLMd{sbyx||s23#}55::Qxj?KLD x11Y>?NN822a78NN8--12NN8//256NN8<<4/0$KK--NNNN''LL&&$$!**%33 )%'8';';x?X?X'X)y}}0A0V0VV)!=#4#4#D&%& ((' 0KK--NNNN''LL&&$$!**%33 )%'8';';x?X?X'X)!=#4#4#D&!" ((# , ax#kkmeoo--emmoWfhlVm-no*^;a?NRk"!8tk1&-:OPP ||TAX$?@FF~VZZ\&-/JJ "##  &&77(+(<(< #"{{ YY YY!$IL#.."9"9*"E]a%(%6%6$ ## ## $/#.$(&4+  yy{ "##  &&77(+(<(< # YY"{{ YYIL#.."9"9*"E]a%(%6%6!$$ ## ## O O##4##"  	AFM%-@@	AsP   Q9X <:X 7X ;BX		X X .BXX 	
X 	X6X1+X61X6c                    | j                   j                  t              j                  t        j                  |j                  k(        j                         }|st        dd      |j                  |_        |j                  |_        |j                  dk(  r|j                  dz   n|j                  |_        |j                  dk(  rt        |j                  dz   dz        nt        |j                  dz        |_        |j                  dk(  r+|j                  dz   t        |j                  dz   dz        z
  n$|j                  t        |j                  dz        z
  |_        d|_        |j                  dk(  r|j                  dz   n|j                  |_        |j                  |_	        d|_        | j                   j%                          | j                   j'                  |       y )	N  Dte no encontradostatus_codedetailr     
ףp=
?r   r    )r   rG   r   rI   r0   firstr   r2   r1   r4   amountcash_amountroundsubtotaltaxdiscountr6   r7   commitrefresh)r   	form_datarW   s      r   updatezCustomerTicketClass.update  s   ggmmH%,,X[[ILL-HIOOQC8KLL(99--5>5F5F!5K)**T1QZQaQa@I@Q@QUV@Vui..5t;<\aclcscsuyby\zW`WhWhlmWm9##d*eY5E5E5Ld4R.SSs|  tD  tD  GL  NW  N^  N^  `d  Md  Ge  te/8/@/@A/EI$$t+9K[K[	''r   c                 N   | j                   j                  t              j                  t        j                  |j                  k(        j                         }|st        dd      |j                  |_        |j                  |_        |j                  |_	        |j                  j                  d      }|d   dz   |d   z   |_        |j                  |_        d|_        | j                   j                          | j                   j                  |       | j!                  |       y )Nre   rf   rg   -r   r   r$   )r   rG   r   rI   r0   rl   r   expense_type_idpayment_type_idpayment_datesplitrF   commentr7   rs   rt   create_account_asset)r   ru   rW   rF   s       r   change_statusz!CustomerTicketClass.change_status)  s    ggmmH%,,X[[ILL-HIOOQC8KLL'77'77$11''--c2AY_vay0
''!!#&r   c                 4   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      d|_        | j                   j                          | j                   j                  |       y )Nre   rf   rg   r!   
r   rG   r   rI   r0   rl   r   r7   rs   rt   r   r0   rW   s      r   rejectzCustomerTicketClass.reject;  sg    ggmmH%,,X[[B->?EEGC8KLLr   c                    	 | 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                   t        j"                  t        j$                  t        j&                  t(        j*                        j-                  t(        t(        j                  t        j
                  k(        j-                  t        t        j                  t        j                  k(        j/                  t        j                  |k(        j1                         }|r
i d|j                  d|j                  d|j
                  d|j                  d|j                  d|j                  d|j                   d|j"                  d	|j                  d
|j                  d|j                  d|j                  d|j                  d|j$                  d|j&                  r|j&                  j3                  d      nd d|j*                  }d|i}t5        j6                  |      }|S y# t8        $ r}t;        |      }d| cY d }~S d }~ww xY w)Nr0   r1   r2   r3   emailphoner4   r5   activity	region_id
commune_idaddressr6   r7   r8   r_   r9   customer_ticket_dataz3No se encontraron datos para el campo especificado.Error: )r   rG   r   r0   r1   r2   r6   r   r   rn   r3   r   r   r   r   r   r4   r5   r7   r8   r   r9   rH   rI   rl   rE   jsondumpsrQ   rR   )r   r0   
data_queryr   resultserialized_resultrY   rZ   s           r   getzCustomerTicketClass.getE  s)   )	-x{{HLL(B[B[]e]k]kmz  nC  nC  EM  EY  EY  [h  [q  [q  s@  sJ  sJ  LY  Ld  Ld  fs  f|  f|  ~K  ~Q  ~Q  S`  Sf  Sf  hp  hx  hx  zB  zH  zH  JR  J\  J\  ^f  ^q  ^q  sD  sR  sR  S!	"35F5I5IXMfMf5fg!	-1B1Bhll1RSx{{b01	  (*--(:>>( '
(C(C( 
 3 3	(
 Z--( Z--( z11( Z--( 
 3 3(  !5!5( !*"7"7( z11( Z--(  !5!5( !PZPePe*"7"7"@"@"Lko(  $Z%=%=!($( +,@ %)JJv$6!(( M 	-FM]O,,	-s   J9J= =	K KK K c                    t        | j                        j                  |j                        }t	        j
                  |      }| j                  ||      }||dk(  ry| j                  |d   d   |      }|j                  dk(  r>d k7  r7t               }t        j                         j                  d      }|j                  |_        d|_        d|_        d|_        d	|_        |j$                  |_        |j                  |_        ||_        |j$                  dk(  r|j(                  d
z   n|j(                  |_        d|_        |j$                  dk(  rt/        |j(                  d
z   dz        nt/        |j(                  dz        |_        |j$                  dk(  r+|j(                  d
z   t/        |j(                  d
z   dz        z
  n$|j(                  t/        |j(                  dz        z
  |_        d|_        |j$                  dk(  r|j(                  d
z   n|j(                  |_        ||_        t        j                         j;                  dddd      |_        | j                  j?                  |       	 | j                  jA                          tC        | j                        jE                  ||j                         dddS yd k7  r| j                  jM                  t              jO                  t        jP                  |jP                  k(        jS                         }||_        d	|_        | j                  j?                  |       	 | j                  jA                          dddS y# tF        $ r5}| j                  jI                          ddtK        |       dcY d }~S d }~ww xY w# tF        $ r5}| j                  jI                          ddtK        |       dcY d }~S d }~ww xY w)N  LibreDTE payment requiredcustomer_datar1   r   r"   r   r   r#   rj   rk   hourminutesecondmicrosecondsuccesszDte saved successfullyr+   r)   r   )*r	   r   
get_by_rutr1   r   loadspre_generate_ticketgenerate_ticket	will_saver   r   rD   rE   r2   
cashier_idrB   rA   r7   r4   r5   rm   rn   card_amountro   rp   rq   rr   r6   rF   replacer8   addrs   r
   sendrQ   rollbackrR   rG   rI   r0   rl   )	r   ru   r3   r   coder5   rW   rF   rY   s	            r   storezCustomerTicketClass.storeq  s    )44Y]]C

8,''yAs{2(()G)NPTUE!#}j!009 (1'A'A$!""$%&" !'//#--!	=F=N=NRS=S)"2"2T"9YbYiYi"#HQHYHY]^H^ui&6&6&=t%CDdiktk{k{  ~B  kB  eC_h_p_ptu_u9++d2eY=M=MPT=TVZ<Z6[[  |E  |L  |L  OT  V_  Vf  Vf  hl  Ul  Om  |m 7@7H7HA7MI,,t3S\ScSc	#
!)!7!7QqQR`a!7!bC NGGNN$!$''*//Y]]C&/<TUU
 }ggmmH-44X[[ILL5PQWWY!	 !C NGGNN$&/<TUU
 ' ! NGG$$&&-GCF8:LMMN ! NGG$$&&-GCF8:LMMNs=   5AM* 
N+ *	N(3*N#N(#N(+	O)4*O$O)$O)c                    d}|j                   dk(  r|j                  dz   }t        j                  |      }| j                  j                  t              j                  t        j                  |j                  k(        j                         }| j                  j                  t              j                  t        j                  |j                  k(        j                         }|j                  dz   |j                  z   dz   |z   dz   t        |j                        z   dz   t        |j                         z   }|j"                  }||d|i|j                  j%                         t'        |dz        dt'        ||dz  z
        id	d
d|j                   |j                   dgid}	n|j                  dz   }t        j                  |      }| j                  j                  t              j                  t        j                  |j                  k(        j                         }| j                  j                  t              j                  t        j                  |j                  k(        j                         }|j                  dz   |j                  z   dz   |z   dz   t        |j                        z   dz   t        |j                         z   }|j"                  }|||j                  j%                         t'        |dz        dt'        ||dz  z
        id|id	d
d|j                   |j                   dgid}		 ddz   }
t)        j*                  |
|	d| dd      }|j,                  dk(  rydS # t.        $ r}t1        d|       Y d }~y d }~ww xY w)N JXou3uyrc7sNnP2ewOCX38tWZ6BTm4D1r   z-01__BoletaElectronica_	111000102rk   	221000226)debehaberIemitidos)rW   r5   )fechaglosadetalle	operacion
documentos_NotaCredito_z/https://libredte.cl/api/lce/lce_asientos/crear/76063822Bearer application/jsonAuthorizationzContent-Typer   headers   z%Accounting entry created successfullyz!Accounting entry creation failed.Error al conectarse a la API:)rB   rF   r   convert_to_utf8r   rG   r   rI   r0   ry   rl   r   r2   r9   accounting_accountrR   r5   r6   stripro   requestspostrh   rQ   rC   )r   ru   TOKENamerican_date	utf8_dateexpense_typer9   glossrm   r?   urlresponserY   s                r   r~   z(CustomerTicketClass.create_account_asset  s   2  B&%,,u4M#33MBI77==)9:AA ##y'@'@@eg  !GGMM*;<CC!$$	(B(BBeg 
 ++112  	
 (( ill#$  ioo&'  __F ' $V %77==?vPT}AU#U6Vd]+C%D	 !#,#8#8%.__!D. &,,u4M#33MBI77==)9:AA ##y'@'@@eg  !GGMM*;<CC!$$	(B(BBeg 
 ++112  	
 "" ill#$  ioo&'  __F ' %77==?vPT}AU#U6Vd]+C%D
 $V !#,#8#8%.__!D.	CzQC}}'.ug%6$6H ##s*>:; 	115	s   62M+ )M+ +	N
4NN
c                    | j                   j                  t              j                  t        j                  |j                  k(        j                         }t        | j                         j                  |j                        }t        j                  |      }| j                  |j                        }| j                  ||j                  |j                  |      }d }||dk(  ry| j                  |d   d   |      }|d k7  rd|_        |j"                  |_        dt%        |      z   |_        | j                   j)                  |       | j                   j+                          t               }|j,                  |_        |j.                  |_        d|_        d|_        d|_        d	|_        |d   d   |_        ||_        |j                  |_        d	|_        t9        |j                  d
z        |_        |j                  t9        |j                  d
z        z
  |_        d	|_        |j                  |_         tC        jD                         jG                  d	d	d	d	      |_$        | j                   j)                  |       	 | j                   j+                          | jK                  |       dddS y# tL        $ r5}	| j                   jO                          ddt%        |	       dcY d }	~	S d }	~	ww xY w)Nr   r   r   r1   r$   u+   Código de autorización: Nota de Crédito =   r   r   rk   r   r   zCredit Note saved successfullyr+   r)   r   zCreditnote was not created)(r   rG   r   rI   r0   rl   r	   r   r1   r   r   get_dte_dater5   pre_generate_credit_note_ticketrn   generate_credit_note_ticketr7   	reason_idrR   r}   r   rs   r2   r   rB   rA   r4   r   ro   rp   rq   rr   r6   r   rD   r   r8   r~   rQ   r   )
r   ru   rW   r3   r   dte_dater   r5   credit_note_dterY   s
             r   store_credit_notez%CustomerTicketClass.store_credit_note%  sj   ggmmH%,,X[[ILL-HIOOQ )44SWW=

8,$$SYY/33M399coo_ghs{244]?5STY5Z\`aED=CM%//CMG#d)SCKGGKKGGNN&jO 03/C/CO,),O&*,O'-.O*()O%&'O#"/"@"GO$)O!*-//O'*+O'',S__T-A'BO$#&??eS__d<R6S"SO'(O$$'OOO!)1)?)?QqYZhi)?)jO&GGKK(J ))/:"+8XYY
 0	  J  "")Ax6HIIJs   /J2 2	K0;*K+%K0+K0c           
         | j                   j                  t              j                  t        j                  |j
                  k(        j                         }d}|j                  dk(  r|j                  dk(  s|j                  d k(  s|j                  dk(  r|j                  dz
  }n|j                  }ddid|j                  d	|d
   d   |d
   d   |d
   d   |d
   d   |d
   d   |d
   d   |d
   d   dddd|dddddgd}nYddid|j                  d	|d
   d   |d
   d   |d
   d   |d
   d   |d
   d   |d
   d   |d
   d   dddd|j                  dgd}	 d}t        j                  ||d| dd      }|j                  dk(  r#|j                         }	|	j                  d      }
|
S |j                  S # t         $ r}t#        d|       Y d }~y d }~ww xY w)Nr   r   r   r]   rj   TipoDTEr   
76063822-6)	RUTEmisorCdgSIISucurr   r1   r3   r   regioncommuner   )RUTRecepRznSocRecep	GiroRecepDirRecep	CmnaRecepContactoCorreoRecepIdDocEmisorReceptorVenta)NmbItemQtyItemPrcItemChip)
EncabezadoDetalleWhttps://libredte.cl/api/dte/documentos/emitir?normalizar=1&formato=json&links=0&email=0r   r   r   r   r   codigor   )r   rG   r   rI   r0   r2   rl   r4   r   rm   dte_coder   r   rh   r   r   rQ   rC   )r   r   ru   branch_office_datar   rm   r?   r   r   dte_datar   rY   s               r   r   z'CustomerTicketClass.pre_generate_ticket_  s|   !WW]]+<=DDEVEYEY]f]w]wEwx~~  A2!""a'9+>+>$+F)J]J]acJc"))D0"))
 "2 &2'9'B'B
 %2/$B5$I'4_'Ej'Q%2?%CJ%O$1/$B8$L%2?%CI%N$1/$B7$K'4_'Eg'N!( $+#$#) $*#$#''DH "2 &2'9'B'B
 %2/$B5$I'4_'Ej'Q%2?%CJ%O$1/$B8$L%2?%CI%N$1/$B7$K'4_'Eg'N!( $+#$#,#3#3'D8	kC  }}'.ug%6$6H ##s*#==?||H-+++ 	115	s   !AF? 3F? ?	GGGc                     d}dt        |      z   dz   }t        j                  |d| dd      }|j                         }|d   S )	Nr   z1https://libredte.cl/api/dte/dte_emitidos/info/39/z/76063822?getXML=0&getDetalle=0&getDatosDte=0&getTed=0&getResolucion=0&getEmailEnviados=0&getLinks=0&getReceptor=0&getSucursal=0&getUsuario=0r   r   r   r   r   )rR   r   r   r   )r   r5   r   r   r   response_datas         r   r   z CustomerTicketClass.get_dte_date  sb    2 BSZO  Sb  b <<#*5'!2 2
 !W%%r   c                    d}t        |dz        }dd|ddddd	i|d
   d   |d
   d   |d
   d   |d
   d   |d
   d   dddd||dgd||dddgd}	 d}t        j                  ||d| dd      }	|	j                  dk(  r#|	j	                         }
|
j                  d      }|S |	j                  S # t        $ r}t        d|       Y d }~y d }~ww xY w) Nr   rk   61r   r   1)r   FolioFchEmisTpoTranVentaFmaPagor   r   r   r1   r3   r   r   r   )r   r   r   r   r   r   u   Nota de Crédito de Venta)r   r   r   	MontoItemr   zAnula factura o boleta)	TpoDocRefFolioRefFchRefCodRefRazonRef)r   r   
Referenciar   r   r   r   r   r   r   r   )ro   r   r   rh   r   r   rQ   rC   )r   r   r5   rn   r8   r   rm   r?   r   r   r   r   rY   s                r   r   z3CustomerTicketClass.pre_generate_credit_note_ticket  sJ   2{4'(
 $(!"#-()#& $\ %2/$B5$I'4_'Ej'Q%2?%CJ%O$1/$B8$L%2?%CI%N!* $?#$#)%+	 "$ %( 8! 9#J	kC  }}'.ug%6$6H ##s*#==?||H-+++ 	115	s   AB3 'B3 3	C<CCc                 ^   d}d|d|d}	 d}t        j                  ||d| dd	      }|j                  d
k(  r#|j                         }|j	                  d      }|S t        d       t        |j                  |j                                y # t        $ r}	t        d|	       Y d }	~	y d }	~	ww xY w)Nr   r   r   emisorreceptorrW   r   Vhttps://libredte.cl/api/dte/documentos/generar?getXML=0&links=0&email=1&retry=1&gzip=0r   r   r   r   r   r5   Error al generar el DTE:r   )r   r   rh   r   r   rC   rQ   
r   customer_rutr   r   r?   r   r   r   r5   rY   s
             r   r   z#CustomerTicketClass.generate_ticket  s    2 #$	
	jC  }}'.ug%6$6H ##s*#==? W-01h**HMMO< 	115	s   AB /B 	B,B''B,c                 t   d}d|d|d}	 d}t        j                  ||d| dd	      }t        |       |j                  d
k(  r#|j	                         }|j                  d      }|S t        d       t        |j                  |j	                                y # t        $ r}	t        d|	       Y d }	~	y d }	~	ww xY w)Nr   r   r   r  r  r   r   r   r   r   r5   r  r   )r   r   rC   rh   r   r   rQ   r  s
             r   r   z/CustomerTicketClass.generate_credit_note_ticket@  s    2 #$	
	jC  }}'.ug%6$6H (O##s*#==? W-01h**HMMO< 	115	s   AB (/B 	B7!B22B7c                    | j                   j                  t              j                  t        j                  |k(        j                         }|r d}dt        |j                        z   dz   }t        j                  |d| dd      }|j                  dk(  r|j                  }t        j                         j                  d	      }t        j                          j"                  d d
 }| d| d}	|	 }
| j$                  j'                  ||
       | j$                  j)                  |
      }t+        j,                  |      j/                  d      }| j$                  j1                  |
       |	|dS y y )Nr   z0https://libredte.cl/api/dte/dte_emitidos/pdf/39/zp/76063822-6?formato=general&papelContinuo=0&copias_tributarias=1&copias_cedibles=1&cedible=0&compress=0&base64=0r   r   r   r   r   z%Y_%m_%d_%H_%M_%S   r   z.pdfzutf-8)	file_name	file_data)r   rG   r   rI   r0   rl   rR   r5   r   r   rh   contentr   rD   rE   uuiduuid4hexr   temporal_uploaddownloadbase64	b64encodedecodedelete)r   r0   rW   r   r   r   pdf_content	timestamp	unique_idunique_filenameremote_pathfile_contentsencoded_files                r   r  zCustomerTicketClass.downloadi  s\   ggmmH%,,X[[B->?EEG6E Es399~U  XJ  JC  }}'.ug%6$6H ##s*&..$LLN334GH	 JJL,,Ra0	%.Kq4"@ "1 1//[I !% 8 8 E  &//>EEgN&&{3 "1!- 
 S r   c                 4   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      d|_        | j                   j                          | j                   j                  |       y)zH
        Actualiza los datos de la patente en la base de datos.
        re   rf   rg   r    Nr   r   s      r   verifyzCustomerTicketClass.verify  sk     ggmmH%,,X[[B->?EEGC8KLL r   )r   r   
   N)NNNNNr   r'  )__name__
__module____qualname__r   r   r[   rc   rv   r   r   r   r   r~   r   r   r   r   r   r   r  r&   r   r   r   r      sp    (7 ({AzAAF$'$*-X?Bqf80taF&&CJ$L'R,\r   r   )sqlalchemy.ormr   app.backend.db.modelsr   r   r   r   r   "app.backend.classes.customer_classr	   "app.backend.classes.whatsapp_classr
    app.backend.classes.helper_classr   app.backend.classes.file_classr   
sqlalchemyr   sqlalchemy.dialectsr   r   r   fastapir   r   r   r  r  sqlalchemy.sqlr   r   r+  r   r   <module>r6     sD    " i i < < 8 4  %   !     P Pr   