
    h;                         d dl mZ d dlmZ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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SupplierModel)CustomerClass)HelperClass)	FileClass)desc)mysql)or_)datetime)HTTPExceptionN)funcc                   ~    e Zd ZdefdZd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y)CustomerTicketBillClassdbc                 2    || _         t        |      | _        y )N)r   r   
file_class)selfr   s     Z/var/www/intrajisbackend.com/public_html/app/backend/classes/customer_ticket_bill_class.py__init__z CustomerTicketBillClass.__init__   s    #B-    Nc                    	 |dk(  s|dk(  rfg }|j                  t        j                  dk(         |j                  t        j                  dkD         |j                  t        j                  dk         |j                  t        j                  d k7         |j                  t        j                  dk7         |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                  t         j"                  t$        j&                  j)                  d            j+                  t         t         j                  t        j                  k(        j+                  t$        t$        j                  t        j                  k(        j,                  | j/                  t        j                  j1                               }n|d	k(  rg }|j                  t        j                  dk(         |j                  t        j                  dkD         |j                  t        j                  dk         |j                  t        j                  d k7         |j                  t        j                  dk7         |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                  t         j"                  t$        j&                  j)                  d            j+                  t         t         j                  t        j                  k(        j+                  t$        t$        j                  t        j                  k(        j-                  t         j2                  |k(        j,                  | j/                  t        j                  j1                               }|d
kD  rj5                         }||z   dz
  |z  }|dk  s||kD  rdddS |j7                  |dz
  |z        j9                  |      j;                         }	|	sdddS |	D 
cg c]  }
|
j                  |
j                  |
j                  |
j                  |
j&                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  r|
j                  j=                  d      nd |
j"                  d }}
|||||dS j;                         }	|	D 
cg c]  }
|
j                  |
j                  |
j                  |
j&                  |
j                  |
j                  |
j                  |
j                  r|
j                  j=                  d      nd |
j                  |
j"                  |
j                  d }}
|S c c}
w c c}
w # t>        $ r}tA        |      }d|dcY d }~S d }~ww xY w)N            
66666666-6!   '   customer   r   errorInvalid page numberstatusmessageNo data found%d-%m-%Yidrutbranch_office_iddte_type_idr$   chip_idfoliototalpayment_date	status_id
added_datebranch_officetotal_itemstotal_pagescurrent_pageitems_per_pagedatar.   r/   r0   r$   r2   r3   r4   r7   r5   r8   r6   !appendr   dte_version_idr6   r/   r   r1   r   queryr.   r0   r3   r4   r7   r2   r5   r   r8   r   r$   label	outerjoinfilterorder_byr   principal_supervisorcountoffsetlimitallstrftime	Exceptionstrr   rol_idr/   pager=   filtersrC   r:   r;   r>   dteserialized_dataeerror_messages                 r   get_allzCustomerTicketBillClass.get_all   sV   F	A{fkx66!;<x11A56x11B67x||t34x|||;<s8#7#72#=x?S?SWY?YZ[  11 ,,   ++  ** (( --)77%..44Z@ )%'8';';x?X?X'X)!=#4#4#D&%& ('',,.' , 1x66!;<x11A56x11B67x||t34x|||;<s8#7#72#=x?S?SWY?YZ[  11 ,,   ++  ** -- (()77%..44Z@ )%'8';';x?X?X'X)!=#4#4#D&%::cA&)* ('',,.+ 4 ax#kkm*^;a?NR!8tk1&-:OPP ||TAX$?@FF~VZZ\&-/JJ  "##  &&77(+(<(<#&?? #"{{ YY YY$'$4$4!$IL#.."9"9*"E]a%(%6%6$ ## ##  $/#.$(&4+  yy{ "##  &&77(+(<(< #"{{ YY YYIL#.."9"9*"E]a$'$4$4%(%6%6!$$ ## ## '&U##8##   	AFM%-@@	AsP   T*[# -:[# ([# ,B+[	[# ![# 5B [[# 
[# #	\,\;\\c                    	 g }|d k7  r'|dk7  r"|j                  t        j                  |k(         |d k7  r'|dk7  r"|j                  t        j                  |k(         |d k7  r'|dk7  r"|j                  t        j                  |k(         |d k7  r'|dk7  r"|j                  t
        j                  |k(         |j                  t        j                  dk(         |j                  t        j                  dkD         |j                  t        j                  d k7         |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"                  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                              }nX | 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/                  t1        t        j                              }|dkD  rX|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                  |j                  r|j                  jE                  d      nd |j&                  d }}|	|
|||dS |jC                         }|D cg c]  }|j                  |j                  |j                  |j"                  |j                  |j                  |j                  |j                  |j                  r|j                  jE                  d      nd |j&                  |j                  d }}|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   literal_bindsT)dialectcompile_kwargsr&   r'   r(   r+   r,   )r.   r/   r0   r5   r$   r2   r3   r4   r6   r7   r8   r9   )r.   r/   r0   r$   r5   r3   r2   r4   r7   r8   r6   )%rA   r   r0   r/   r6   r   supervisor_idrB   r   rC   r.   r3   r4   r7   r2   r5   r   r$   r   r8   rE   rH   rF   rG   r   rI   print	statementcompiler   r\   rJ   rK   rL   rM   rN   rO   )r   r0   r/   r6   r^   rR   r=   rS   rC   r:   r;   r>   rT   rU   rV   rW   s                   r   searchzCustomerTicketBillClass.search   s   B	AG4',<,Bx88<LLMd{sbyx||s23D Y"_x11Y>?$")<y66-GHNN822a78NN8--12NN8<<4/0NN8<<<78$KK--NNNN''LL&&$$))!**%33 )%'8';';x?X?X'X)y}}0A0V0VV)!=#4#4#D&'( (() 2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(+(<(<$'$4$4 #"{{ YY YY!$IL#.."9"9*"E]a%(%6%6$ ## ## $/#.$(&4+  yy{ "##  &&77(+(<(< #$'$4$4 YY"{{ YYIL#.."9"9*"E]a%(%6%6!$$ ## ## '&S##6##   	AFM%-@@	AsP   RY :Y Y B X=;	Y Y B Y9Y =
Y 	Y*Y%Y*%Y*c                    	 |dk(  s|dk(  rDg }|j                  t        j                  dk(         |j                  t        j                  dk(         |j                  t        j                  d k7         |j                  t        j                  dk7         |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                  t         j"                  t$        j&                  j)                  d            j+                  t         t         j                  t        j                  k(        j+                  t$        t$        j                  t        j                  k(        j,                  | j/                  t        j                  j1                               }nh|dk(  rbg }|j                  t        j                  dk(         |j                  t        j                  dk(         |j                  t        j                  d k7         |j                  t        j                  dk7         |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                  t         j"                  t$        j&                  j)                  d            j+                  t         t         j                  t        j                  k(        j+                  t$        t$        j                  t        j                  k(        j-                  t         j2                  |k(        j,                  | j/                  t        j                  j1                               }|d	kD  rj5                         }||z   dz
  |z  }|dk  s||kD  rd
ddS |j7                  |dz
  |z        j9                  |      j;                         }	|	sd
ddS |	D 
cg c]  }
|
j                  |
j                  |
j                  |
j                  |
j&                  |
j                  |
j                  |
j                  |
j                  |
j                  |
j                  r|
j                  j=                  d      nd |
j"                  d }}
|||||dS j;                         }	|	D 
cg c]  }
|
j                  |
j                  |
j                  |
j&                  |
j                  |
j                  |
j                  |
j                  r|
j                  j=                  d      nd |
j                  |
j"                  |
j                  d }}
|S c c}
w c c}
w # t>        $ r}tA        |      }d
|dcY d }~S d }~ww xY w)Nr   r   r    r!   r"   r#   r$   r%   r   r&   r'   r(   r+   r,   r-   r9   r?   r@   rP   s                 r   get_all_to_reviewz)CustomerTicketBillClass.get_all_to_review$  s(   C	A{fkx66!;<x11R78x||t34x|||;<s8#7#72#=x?S?SWY?YZ[  11 ,,   ++  ** (( --)77%..44Z@ )%'8';';x?X?X'X)!=#4#4#D&%& ('',,.' , 1x66!;<x11R78x||t34x|||;<s8#7#72#=x?S?SWY?YZ[  11 ,,   ++  ** -- (()77%..44Z@ )%'8';';x?X?X'X)!=#4#4#D&%::cA&)* ('',,.+ 4 ax#kkm*^;a?NR!8tk1&-:OPP ||TAX$?@FF~VZZ\&-/JJ  "##  &&77(+(<(<#&?? #"{{ YY YY$'$4$4!$IL#.."9"9*"E]a%(%6%6$ ## ##  $/#.$(&4+  yy{ "##  &&77(+(<(< #"{{ YY YYIL#.."9"9*"E]a$'$4$4%(%6%6!$$ ## ## '&U##8##   	AFM%-@@	AsP   S&Z ):Z $Z (B+Z	Z Z 1B ZZ 
Z 	[(Z=7[=[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	)
H
        Actualiza los datos de la patente en la base de datos.
          Dte no encontradostatus_codedetailr   i  
ףp=
?r   r   N)r   rC   r   rF   r.   firstr   r0   r/   r2   amountcash_amountroundsubtotaltaxdiscountr4   r6   commitrefresh)r   	form_datarT   s      r   updatezCustomerTicketBillClass.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                 4   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      d|_        | j                   j                          | j                   j                  |       y)rf   rg   rh   ri      N
r   rC   r   rF   r.   rm   r   r6   rt   ru   r   r.   rT   s      r   accept_dte_paymentz*CustomerTicketBillClass.accept_dte_payment  sk     ggmmH%,,X[[B->?EEGC8KLL r   c                 z   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      d|_        d|_        d|_	        d|_
        d|_        d|_        | j                   j                          | j                   j                  |       y)rf   rg   rh   ri   Nr%   )r   rC   r   rF   r.   rm   r   payment_type_idr5   payment_amountpayment_numbersupportr6   rt   ru   r{   s      r   reject_dte_paymentz*CustomerTicketBillClass.reject_dte_payment  s     ggmmH%,,X[[B->?EEGC8KLL #!!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)	rf   rg   rh   ri   -r   r   ry   N)r   rC   r   rF   r.   rm   r   expense_type_idr~   r5   splitperiodcommentr6   rt   ru   create_account_asset)r   rv   rT   r   s       r   change_statusz%CustomerTicketBillClass.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 )Nrg   rh   ri   r   rz   r{   s      r   rejectzCustomerTicketBillClass.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(                  t        j*                  t        j,                  t        j.                  t        j0                  t        j2                  t4        j6                        j9                  t4        t4        j                  t        j                  k(        j9                  t        t        j                  t        j                  k(        j;                  t        j                  |k(        j=                         }|rQi 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|j0                  d|j                  d|j2                  r|j2                  j?                  d      nd d|j6                  |j                  |j
                  |j                  |j                  |j                  d}d|i}tA        jB                  |      }|S y# tD        $ r}tG        |      }d| cY d }~S d }~ww xY w)Nr.   r/   r0   r$   emailphoner2   r3   activity	region_id
commune_idaddressr4   r6   r   r7   r,   r8   )r~   r5   r   r   r   customer_ticket_bill_dataz3No se encontraron datos para el campo especificado.zError: )$r   rC   r   r.   r~   r5   r   r   r   r   r/   r0   r4   r   r   ro   r$   r   r   r   r   r   r2   r3   r6   r7   r   r8   rE   rF   rm   rM   jsondumpsrN   rO   )r   r.   
data_querycustomer_ticket_dataresultserialized_resultrV   rW   s           r   getzCustomerTicketBillClass.get  s   1	-x{{H4L4LhNcNceme|e|  G  V  V  X`  Xh  Xh  jr  jy  jy  {C  {G  {G  IQ  Ib  Ib  dl  dr  dr  tA  tI  tI  KS  K_  K_  an  aw  aw  yF  yP  yP  R_  Rj  Rj  ly  lB  lB  DQ  DW  DW  Yf  Yl  Yl  nv  n~  n~  @H  @N  @N  PX  Pb  Pb  dl  dw  dw  yJ  yX  yX  Y!	"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( j//(  !PZPePe*"7"7"@"@"Lko!(" $Z%=%=#($ (2'A'A$.$;$;&0&?&?&0&?&?)11-($6 01E
 %)JJv$6!(( M 	-FM]O,,	-s   MM 	N'M<6N<Nc                    d}|j                   dz   }t        j                  |      }d}| j                  j	                  t
              j                  t
        j                  |j                  k(        j                         }|j                  dz   |z   dz   |z   dz   t        |j                        z   dz   t        |j                        z   }|j                  }|||t        t        |      dz        dt        t        |      t        |      dz  z
        idt        |      id	d
d|j                   |j                  dgid}	ddz   }
t#        j$                  |
|	d| dd      }|j&                  dk(  ryy)N JXou3uyrc7sNnP2ewOCX38tWZ6BTm4D1z-01	441000102__NotaCredito_rl   	221000226	111000102)debehaberIemitidos)rT   r3   )fechaglosadetalle	operacion
documentosz/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.)r   r   convert_to_utf8r   rC   r   rF   r.   r0   rm   r8   rO   r3   r4   rp   intr1   requestspostrj   )r   rv   TOKENamerican_date	utf8_dateexpense_typer8   glossrn   r>   urlresponses               r   r   z,CustomerTicketBillClass.create_account_asset5  s   2!((50//>	"&78??  I$>$>>

%' 	
 ++  	
 "" ill#$  ioo&' 	  ' %eCK,<&=#U3v;#f+d:J+K%L
 $S[ !#,#8#8%.__!. @:M=='.ug%6$6 3&:7r   c                    | j                   j                  t              j                  t        j                  |j                  k(        j                         }t        | j                         j                  |j                        }t        j                  |      }| j                  |j                  |j                        }| j                  ||j                  |j                  |j                  |      }t!        |       d }|)|dk(  ry| j#                  |d   d   ||j                        }|d k7  rd|_        |j&                  |_        dt)        |      z   |_        | j                   j-                  |       | j                   j/                          |}|j1                  d      }	|	d   j1                  d	      }	|	d   d	z   |	d
   z   }	t               }
|j2                  |
_        d|
_        d|
_        d
|
_        d|
_        d|
_        |d   d   |
_        ||
_        t;        t=        |j                               |
_        d|
_        t;        tA        t=        |j                        dz               |
_!        t;        t=        |j                        tA        t=        |j                        dz        z
         |
_"        d|
_#        t;        t=        |j                               |
_$        |	|
_%        |jL                  |
_&        | j                   j-                  |
       | j                   j/                          | jO                  |
       | j                   j                  t              j                  t        j                  |j                  k(        j                         }d|_        | j                   j-                  |       | j                   j/                          y y)Ni  zLibreDTE payment requiredcustomer_datar/   ry   u+   Código de autorización: Nota de Crédito  r   r   r   =   rl   zCreditnote was not created)(r   rC   r   rF   r.   rm   r
   
get_by_rutr/   r   loadsget_dte_dater1   r3   pre_generate_credit_note_ticketro   r_   generate_credit_note_ticketr6   	reason_idrO   r   addrt   r   r0   
cashier_idrB   r2   absr   card_amountrp   rq   rr   rs   r4   r   r7   r   )r   rv   rT   r$   r   dte_datecoder3   r7   r   credit_note_dte
update_dtes               r   store_credit_notez)CustomerTicketBillClass.store_credit_notes  s   ggmmH%,,X[[ILL-HIOOQ )44SWW=

8,$$S__cii@33M3??TWT]T]_b_n_npxyds{244]?5STY5Z\`bebqbqrED=CM%//CMG#d)SCKGGKKGGNN!J%%c*FAY__S)FAY_vay0F&jO 03/C/CO,)*O&*,O'-.O*()O%&'O#"/"@"GO$)O!+.s3??/C+D*DO'*+O'(+E#coo2Ft2K,L(M'MO$#&s3??';eCDXY]D]>^'^#_"_O'(O$%(S__)=%>$>O!%+O"),O&GGKK(GGNN%%o6x077#))8STZZ\J#$J GGKK
#GGNN/r   c                     d}dt        |      z   dz   t        |      z   dz   }t        j                  |d| dd      }|j                         }|d	   S )
Nr   z.https://libredte.cl/api/dte/dte_emitidos/info//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   )rO   r   r   r   )r   r1   r3   r   r   r   response_datas          r   r   z$CustomerTicketBillClass.get_dte_date  st    2 ?[AQQSVVY\]bYcc  gv  v <<#*5'!2 2
 !W%%r   c                    d}t        t        |      dz        }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gd}t        |       	 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   rl   r   r   1)TipoDTEFchEmisTpoTranVentaFmaPago	RUTEmisor
76063822-6r   r/   r$   r   regioncommune)RUTRecepRznSocRecep	GiroRecepDirRecep	CmnaRecep)IdDocEmisorReceptoru   Nota de Crédito de Venta)NmbItemQtyItemPrcItem	MontoItemzAnula factura o boleta)	TpoDocRefFolioRefFchRefCodRefRazonRef)
EncabezadoDetalle
ReferenciazWhttps://libredte.cl/api/dte/documentos/emitir?normalizar=1&formato=json&links=0&email=0r   r   r   r   r   codigoError al conectarse a la API:)	rp   r   r_   r   r   rj   r   r   rN   )r   r   r1   r3   ro   r7   r   rn   r>   r   r   dte_datar   rV   s                 r   r   z7CustomerTicketBillClass.pre_generate_credit_note_ticket  sU   2s;',-
 $&#-()#&	 $\ %2/$B5$I'4_'Ej'Q%2?%CJ%O$1/$B8$L%2?%CI%N!( $?#$#)%+	 "- %( 8! 7"H 	d	kC  }}'.ug%6$6H ##s*#==?||H-+++ 	115	s   (AC :C 	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receptorrT   r   zVhttps://libredte.cl/api/dte/documentos/generar?getXML=0&links=0&email=1&retry=1&gzip=0r   r   r   r   r   r3   zError al generar el DTE:r   )r   r   rj   r   r   r_   rN   )r   customer_rutr   r1   r   r>   r   r   r   r3   rV   s              r   r   z3CustomerTicketBillClass.generate_credit_note_ticket  s    2 #$	
	jC  }}'.ug%6$6H ##s*#==? W-01h**HMMO< 	115	s   AB /B 	B,B''B,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   rC   r   rF   r.   rm   rO   r3   r   r   rj   contentr   nowrM   uuiduuid4hexr   temporal_uploaddownloadbase64	b64encodedecodedelete)r   r.   rT   r   r   r   pdf_content	timestamp	unique_idunique_filenameremote_pathfile_contentsencoded_files                r   r  z CustomerTicketBillClass.download1  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)rf   rg   rh   ri   r   Nrz   r{   s      r   verifyzCustomerTicketBillClass.verify_  sk     ggmmH%,,X[[B->?EEGC8KLL r   )NNr   
   )NNNNr   r  )__name__
__module____qualname__r   r   rX   rb   rd   rw   r|   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r      sn    (7 (GARCAJDAL,&',2-h<8|=0~&&DL$L,\r   r   )sqlalchemy.ormr   app.backend.db.modelsr   r   r   r   r   r	   "app.backend.classes.customer_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>r!     sA    " x x < 8 4  %   !     Y Yr   