
    VqhP                         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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)DteClass)HelperClass)	FileClass)desc)mysql)or_)datetime	timedelta)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d Zd Zd Zd Zy)CustomerTicketClassdbc                 2    || _         t        |      | _        y )N)r   r   
file_class)selfr   s     U/var/www/intrajisbackend.com/public_html/app/backend/classes/customer_ticket_class.py__init__zCustomerTicketClass.__init__   s    #B-    Nc                 V   	 |dk(  s|dk(  rg }|j                  t        j                  dk(         |j                  t        j                  dk(         |j                  t        j                  d k7         |dk(  r|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,                  
      j/                  t*        t*        j                  t        j                  k(        j/                  t&        t&        j                  t        j                  k(        j0                  | j3                  t5        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,                  
      j/                  t*        t*        j                  t        j                  k(        j/                  t&        t&        j                  t        j                  k(        j0                  | j3                  t5        t        j                              }	n|dk(  rg }|j                  t        j                  dk(         |j                  t        j                  dk(         |j                  t        j                  d k7         |dk(  r|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,                  
      j/                  t*        t*        j                  t        j                  k(        j/                  t&        t&        j                  t        j                  k(        j1                  t*        j6                  |k(        j0                  | j3                  t5        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,                  
      j/                  t*        t*        j                  t        j                  k(        j/                  t&        t&        j                  t        j                  k(        j1                  t*        j6                  |k(        j0                  | j3                  t5        t        j                              }	|dkD  rM	j9                         }
t;        |	j<                  j?                  tA        jB                         d	d
i             |
|z   dz
  |z  }t;        |       |dk  s||kD  rdddS |	jE                  |dz
  |z        jG                  |      jI                         }|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 	jI                         }|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 # tJ        $ r}tM        |      }d|dcY d }~S d }~ww xY w)N      '      %Y-%m      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)
r1   r2   r3   r4   r5   r6   r7   r9   r:   r8   )'appendr   dte_version_iddte_type_idr2   r   r8   r   nowstrftimeperiodr   queryr1   r3   r6   r7   r9   r5   r   r4   r   r:   	outerjoinfilterorder_byr   principal_supervisorcountprint	statementcompiler   r(   offsetlimitall	Exceptionstr)r   rol_idr2   grouppager?   rF   filterscurrent_periodrG   r<   r=   r@   dteserialized_dataeerror_messages                    r   get_allzCustomerTicketClass.get_all   sh   y	A{fkx66!;<x33r9:x||t34A:NN3x'9'9Q'>@R@RVW@WYaYkYkopYp#qr%-\\^%<%<W%ENNN8??n#DEDGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i%}'8'8HLL'Hf !" hX//0# * NN3x'9'9Q'>@R@RVW@W#XYDGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i%}'8'8HLL'Hf !" hX^^,# ( 1x66!;<x33r9:x||t34A:NN3x'9'9Q'>@R@RVW@WYaYkYkopYp#qr%-\\^%<%<W%ENNN8??n#DEDGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i%}'8'8HLL'Hf)>>#Ef %& hX//0' . NN3x'9'9Q'>@R@RVW@W#XYDGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i%}'8'8HLL'Hf)>>#Ef %& hX^^,' 0 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   a-h 0:h +h /Bg;	h h "Bh 7h ;
h 	h(h#h(#h(c
                    	 |dk(  s|dk(  rhg }
|d k7  r'|dk7  r"|
j                  t        j                  |k(         |d k7  r,|dk7  r'|dk7  r"|
j                  t        j                  |k(         |7|dk7  r2|
j                  t        j
                  j                  d| d             |d k7  r'|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         |
j                  t        j                  t        j                         j                  d      k(         |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/                  t0        t0        j                  t*        j2                  k(        j/                  t        t        j                  t        j                  k(        j4                  |
 j7                  t        j"                  j9                               }nN | 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(        j4                  |
 j7                  t        j"                  j9                               }|dkD  rM|j;                         }t=        |j>                  jA                  tC        jD                         d	d
i             ||	z   dz
  |	z  }t=        |       |dk  s||kD  rdddS |jG                  |dz
  |	z        jI                  |	      jK                         }|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 |jK                         }|D cg c]  }|j                   |j                  |j                  |j
                  |j"                  |j(                  |j$                  |j&                  r|j&                  j                  d      nd |j,                  |j                  d
 }}d|iS |dk(  rg }
|d k7  r'|dk7  r"|
j                  t        j                  |k(         |d k7  r,|dk7  r'|dk7  r"|
j                  t        j                  |k(         |7|dk7  r2|
j                  t        j
                  j                  d| d             |d k7  r'|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         |
j                  t        j                  t        j                         j                  d      k(         |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/                  t0        t0        j                  t*        j2                  k(        j/                  t        t        j                  t        j                  k(        j5                  t*        j2                  |k(        j4                  |
 j7                  t        j"                  j9                               }nn | 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(        j5                  t*        j2                  |k(        j4                  |
 j7                  t        j"                  j9                               }|dkD  rM|j;                         }t=        |j>                  jA                  tC        jD                         d	d
i             ||	z   dz
  |	z  }t=        |       |dk  s||kD  rdddS |jG                  |dz
  |	z        jI                  |	      jK                         }|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 |jK                         }|D cg c]  }|j                   |j                  |j                  |j
                  |j"                  |j(                  |j$                  |j&                  r|j&                  j                  d      nd |j,                  |j                  d
 }}d|iS y c c}w c c}w c c}w c c}w # tL        $ r}tO        |      }d|dcY d }~S d }~ww xY w)Nr   r     %r$   r!   r#   r   r&   Tr'   r*   r+   r,   r/   %d-%m-%Yr0   r;   )
r1   r2   r3   r4   r6   r5   r7   r9   r:   r8   r@   )(rA   r   r3   r2   r   r4   liker8   rB   rC   rF   r   rD   rE   r   rG   r1   r6   r7   r9   r5   r   r:   rH   r   rK   rI   rJ   r   rL   rM   rN   rO   r   r(   rP   rQ   rR   rS   rT   )r   rU   supervisor_rutr3   r2   r4   r8   supervisor_idrW   r?   rX   rG   r<   r=   r@   rZ   r[   r\   r]   s                      r   searchzCustomerTicketClass.search   s]
   C	A{fk#t+0@B0FNN8#<#<@P#PQ$;3"9NN8<<3#67'HNNN=#9#9#>#>8*A#OP$bNN8#5#5#BCx66!;<x11A56x33r9:x||t34x(,,.2I2I'2RRS D(DGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i!9==4E4Z4Z#Zi%}'8'8HLL'Hf %& h ++-' 0DGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i%}'8'8HLL'Hf !" h ++-# , !8"'++-K%//11%--/[jlpZq1rs#.#?!#C"VK+&ax4+#5*1>STT !<<^(CDJJ>Z^^`D*1oNN "&''  "ff"ww,/,@,@$'LL#&;;!$!$%(]]MP^^cnn&=&=j&Iae),):):( ''O '' (3'2(,*8 /  !99;D "&''  "ff"ww,/,@,@$'LL!$#&;;!$MP^^cnn&=&=j&Iae),):):%(]]( ''O ''   1#t+0@B0FNN8#<#<@P#PQ$;3"9NN8<<3#67'HNNN=#9#9#>#>8*A#OP$bNN8#5#5#BCx66!;<x11A56x33r9:x||t34x(,,.2I2I'2RRS D(DGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i!9==4E4Z4Z#Zi%}'8'8HLL'Hf)>>.Pf )* h ++-+ 4DGGMM  11   ++  ** ((%..)77  i)+<+?+?8C\C\+\i%}'8'8HLL'Hf)>>.Pf %& h ++-' 0 !8"'++-K%//11%--/[jlpZq1rs#.#?!#C"VK+&ax4+#5*1>STT !<<^(CDJJ>Z^^`D*1oNN "&''  "ff"ww,/,@,@$'LL#&;;!$!$%(]]MP^^cnn&=&=j&Iae),):):( ''O '' (3'2(,*8 /  !99;D "&''  "ff"ww,/,@,@$'LL!$#&;;!$MP^^cnn&=&=j&Iae),):):%(]]( ''O ''   U''4''P''4''   	AFM%-@@	As   S%t8 (:t8 #t8 'Bt$<	t8 t8 Bt)/t8 5T t8 :t8 t8 Bt.*	t8 4t8 Bt3t8 $t8 8	uuuu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   r1   firstr   r3   r2   r5   amountcash_amountroundsubtotaltaxdiscountr7   r8   commitrefresh)r   	form_datarZ   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 )Nrh   ri   rj   -r   r   r%   )r   rG   r   rI   r1   ro   r   expense_type_idpayment_type_idpayment_datesplitrF   commentr8   rv   rw   create_account_asset)r   rx   rZ   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 )Nrh   ri   rj   r"   
r   rG   r   rI   r1   ro   r   r8   rv   rw   r   r1   rZ   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)Nr1   r2   r3   r4   emailphoner5   r6   activity	region_id
commune_idaddressr7   r8   r9   rb   r:   customer_ticket_dataz3No se encontraron datos para el campo especificado.Error: )r   rG   r   r1   r2   r3   r7   r   r   rq   r4   r   r   r   r   r   r5   r6   r8   r9   r   r:   rH   rI   ro   rE   jsondumpsrS   rT   )r   r1   
data_queryr   resultserialized_resultr\   r]   s           r   getzCustomerTicketClass.get  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                 r   |}d}d}d}d| d| d| d}dd| d	}t        j                  ||
      }|j                  dk7  r&t        d|j                   d|j                          y t        d| dd      5 }|j                  |j                         d d d        t        d| d       y # 1 sw Y   xY w)Nr!   76063822 JXou3uyrc7sNnP2ewOCX38tWZ6BTm4D1z-https://libredte.cl/api/dte/dte_emitidos/pdf//ze?formato=general&papelContinuo=0&copias_tributarias=1&copias_cedibles=1&cedible=0&compress=0&base64=0application/jsonBearer )AcceptAuthorizationheaders   zError z: zfiles/.pdfwbzPDF guardado como )requestsr   rk   rM   textopenwritecontent)	r   r6   tipo_dte
rut_emisorTOKENurlr   responsefs	            r   save_pdf_ticketz#CustomerTicketClass.save_pdf_ticket4  s    
2 >hZqqQ[P\  ]B  C )&ug.
 <<W5 3&F8//08==/BC ugT*D1 *Q(()*&ugT23* *s   9B--B6c                     | j                   j                  t              j                  t        j                  |j                  k(  t        j
                  |j
                  k(  t        j                  |j                  dk(  r|j                  dz   n|j                  k(  t        j                  dk(  t        j                  dk(  t        j                  dk(  t        j                  t        j                         j                  d      k(        j!                         }|dk(  r-t#        | j                         j%                  |j
                        }t'        j(                  |      }| j+                  ||      }|/|dk(  ry| j-                  |d	   d
   |      }| j/                  |       d k7  r| j                   j                  t              j                  t        j                  |j                  k(  t        j
                  |j
                  k(  t        j                  |j                  dk(  r|j                  dz   n|j                  k(  t        j                  dk(  t        j                  dk(  t        j                  dk(  t        j                  t        j                         j                  d      k(        j1                         }|r||_        d|_        	 | j                   j5                          | j                   j7                  |       t9        d       t;        | j                         j=                  ||j
                         dddS dddS ydddS # t>        $ r5}| j                   jA                          ddtC        |       dcY d }~S d }~ww xY w)Nr   rm   r!   r$   r#   r     LibreDTE payment requiredcustomer_datar2   r    zEmpieza envio de whatsappsuccessDte saved successfullyr,   r*   r   zDte not found after generationz5Dte already exists for this RUT in the current period)"r   rG   r   rI   r3   r2   r7   r5   rp   rC   rB   r8   rF   r   rD   rE   rL   r	   
get_by_rutr   loadspre_generate_ticketgenerate_ticketr   ro   r6   rv   rw   rM   r
   sendrS   rollbackrT   )	r   rx   check_dte_existencer4   r   coder6   rZ   r\   s	            r   generatezCustomerTicketClass.generateO  s   "ggmmH5<<%%)C)CCLLIMM)NN):K:Kq:Py//$6V_VfVfg  B&##q(!#OOx||~66w??
 %' 	 !#$TWW-88GH JJx0M++M9ED3;6,,]?-KE-RTXY$$U+ }ggmmH-44$559S9SS$LLIMM9$NN)J[J[_`J`y/?/?$/Ffofvfvw$00B6$33q8$..!3$OOx||~/F/Fw/OO eg   %CI$%CMR(,9:%dgg.33CG*3@XYY
 '.:Z[[%2ijj % R((**1Ax>PQQRs   A3M 	N*NNNc                    |j                   dk(  rt               }t        j                         j	                  d      }|dk(  s|dk(  rd}n|dk(  rd}|j
                  |_        d|_        d|_        d|_        |_	        |j                  |_
        |j                  |_        d|_        |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	      |_        | j0                  j3                  |       	 | j0                  j5                          d
ddS y# t6        $ r5}| j0                  j9                          ddt;        |       dcY d }~S d }~ww xY w)Nr   r#   r    r$   r   r!   rm   rn   hourminutesecondmicrosecondr   r   r,   r*   r   )	will_saver   r   rD   rE   r3   
cashier_idrC   rB   r8   r5   r2   r6   rp   rq   card_amountrr   rs   rt   ru   r7   rF   replacer9   r   addrv   rS   r   rT   )r   rx   rU   rZ   rF   r8   r\   s          r   storezCustomerTicketClass.store  sS   !#*C\\^,,W5F{fk	1	 $-#=#=C CN CO!"C%CM#++CKmmCGCI9B9J9Ja9Oi..5U^UeUeCOCODMDUDUYZDZ5)"2"2T"94!?@`egpgwgwy}f}`~CL[d[l[lpq[qy''$.%9I9ID9PRV8V2WW  xA  xH  xH  KP  R[  Rb  Rb  dh  Qh  Ki  xiCGCL3<3D3D3I	((4/yO_O_CICJ%\\^331Q\]3^CNGGKKJ "+8PQQ
 	  J  "")Ax6HIIJs   H. .	I,7*I'!I,'I,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)Nr   r!   z-01__BoletaElectronica_	111000102rn   	221000226)debehaberIemitidos)rZ   r6   )fechaglosadetalle	operacion
documentos_NotaCredito_z/https://libredte.cl/api/lce/lce_asientos/crear/r   r   r   r   zContent-Typer   r   r   z%Accounting entry created successfullyz!Accounting entry creation failed.Error al conectarse a la API:)rC   rF   r   convert_to_utf8r   rG   r   rI   r1   r|   ro   r   r3   r:   accounting_accountrT   r6   r7   striprr   r   postrk   rS   rM   )r   rx   r   american_date	utf8_dateexpense_typer:   glossrp   r@   r   r   r\   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   r2   r%   u+   Código de autorización: Nota de Crédito =   r   r   rn   r   r   zCredit Note saved successfullyr,   r*   r   zCreditnote was not created)(r   rG   r   rI   r1   ro   r	   r   r2   r   r   get_dte_dater6   pre_generate_credit_note_ticketrq   generate_credit_note_ticketr8   	reason_idrT   r   r   rv   r3   r   rC   rB   r5   r   rr   rs   rt   ru   r7   r   rD   r   r9   r   rS   r   )
r   rx   rZ   r4   r   dte_dater   r6   credit_note_dter\   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           
      R   | 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t        j                         j                  d      z   d|dddddgd}n}ddid|j                  d	|d
   d   |d
   d   |d
   d   |d
   d   |d
   d   |d
   d   |d
   d   dddt        j                         j                  d      z   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`   rm   TipoDTEr!   
76063822-6)	RUTEmisorCdgSIISucurr   r2   r4   r   regioncommuner   )RUTRecepRznSocRecep	GiroRecepDirRecep	CmnaRecepContactoCorreoRecepIdDocEmisorReceptoru(    Prestación de estacionamientos. Fecha:rb   )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   r1   r3   ro   r5   r   rp   dte_coder   rD   rE   r   r   rk   r   r   rS   rM   )r   r   rx   branch_office_datar   rp   r@   r   r   dte_datar   r\   s               r   r   z'CustomerTicketClass.pre_generate_ticketa  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!( $NPXP\P\P^PgPghrPs#s#$#) $*#$#''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!( $NPXP\P\P^PgPghrPs#s#$#,#3#3'D8	kC  }}'.ug%6$6H ##s*#==?||H-+++ 	115	s   )AH ;H 	H&H!!H&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   )rT   r   r   r   )r   r6   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   rn   61r   r   1)r   FolioFchEmisTpoTranVentaFmaPagor   r   r   r2   r4   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   )rr   r   r   rk   r   r   rS   rM   )r   r   r6   rq   r9   r   rp   r@   r   r   r	  r   r\   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receptorrZ   r  Vhttps://libredte.cl/api/dte/documentos/generar?getXML=0&links=0&email=1&retry=1&gzip=0r   r   r   r   r   r6   Error al generar el DTE:r   )r   r   rk   r   r   rM   rS   
r   customer_rutr   r   r@   r   r   r	  r6   r\   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   r6   r  r   )r   r   rM   rk   r   r   rS   r   s
             r   r   z/CustomerTicketClass.generate_credit_note_ticketB  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   r   zutf-8)	file_name	file_data)r   rG   r   rI   r1   ro   rT   r6   r   r   rk   r   r   rD   rE   uuiduuid4hexr   temporal_uploaddownloadbase64	b64encodedecodedelete)r   r1   rZ   r   r   r   pdf_content	timestamp	unique_idunique_filenameremote_pathfile_contentsencoded_files                r   r+  zCustomerTicketClass.downloadk  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 Nrh   ri   rj   r    r   r   s      r   verifyzCustomerTicketClass.verify  i    ggmmH%,,X[[B->?EEGC8KLL r   c                 4   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      d|_        | j                   j                          | j                   j                  |       y r8  r   r   s      r   
pre_acceptzCustomerTicketClass.pre_accept  r:  r   c                    | j                   j                  t              j                  t        j                  dk(        j                  t        j
                  dk(        j                  t        j                  dk(        j                         }d}|D ]`  }t        |j                         d|j                  i}d}t        j                  ||d| dd	
      }t        |j                         |j                  dk(  slt        j                  |j                        }|D ]  }|j!                  d      }|j!                  d      }	|j!                  d      }
|j!                  d      }|
d k7  sNt        d       | j                   j                  t              j                  t        j                  |k(        j#                         }|st%        dd      |j                  dk(  st        d       d|_        d|_        ||_        |	|_        d|_        t/        j0                         j3                  dddd      |_        | j                   j7                          | j                   j9                  |       t;        | j                         j=                  |j                        }t        dt?        |j                        z          tA        | j                         jC                  |j                          c y )Nr$   r!   r   r   r6   z4https://libredte.cl/api/pagos/cobros/buscar/76063822r   r   r   r   r   r   pagadomontozEjecutando paso 1.rh   ri   rj   zEjecutando paso 2.   r    r%   r   r   zDte actualizado correctamente: )"r   rG   r   rI   r8   rC   rB   rR   rM   r6   r   r   r   rk   r   r   r   ro   r   r|   r}   r   r~   r   rD   r   updated_daterv   rw   r   get_dte_authorization_coderT   r
   notify_paymeent)r   dtesr   rZ   r@   r   r   itemr6   r~   payment_statusrp   authorization_code_responses                r   check_paymentsz"CustomerTicketClass.check_payments  sv   ww}}X&--h.@.@A.EFMMhNbNbgiNijqqrz  sJ  sJ  NO  sO  P  T  T  V2 1	NC#))D IC}}'.ug%6$6H (-- ##s*zz(--0  ND HHW-E#'88G#4L%)XXh%7N!XXg.F%-23"ggmmH5<<X^^u=TU[[]""/CH["\\==A-!"6724C/23C/.4CO/;C,,-CM/7||~/E/E1UV_`no/E/pC, GGNN, GGOOC0:B477:K:f:fgjgpgp:q7!"Cc#))n"TU)$''2BB399M9N+1	Nr   )NNr   r   
   N)	NNNNNNNr   rI  )__name__
__module____qualname__r   r   r^   rf   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r+  r9  r<  rH   r   r   r   r      s    (7 (zAxDAL$'$*-X46:kx'Rqf80taF&&CJ$L'R,\6N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.dte_classr    app.backend.classes.helper_classr   app.backend.classes.file_classr   
sqlalchemyr   sqlalchemy.dialectsr   r   r   r   fastapir   r   r   r,  r'  sqlalchemy.sqlr   r   rM  r   r   <module>rY     sI    " i i < < 2 8 4  %  ( !     PN PNr   