
    h<                         d dl mZmZmZmZ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Zd dlZd dlmZ  G d	 d
      Zy)    )
HonoraryModelEmployeeModelEmployeeLaborDatumModel	UserModelBranchOfficeModelSupervisorModel	BankModelRegionModelCommuneModelHonoraryReasonModel)desc)datetime)SettingClass)CommuneClass)HelperClassN)funcc                   D    e Zd Zd ZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zy)HonoraryClassc                     || _         y )N)db)selfr   s     WC:\Users\jesus\OneDrive\Desktop\escritorio\newerp\app\backend\classes\honorary_class.py__init__zHonoraryClass.__init__   s	        Nc                 	   	 g }|"|j                  t        j                  |k(         |'|dk7  r"|j                  t        j                  |k(         |dk(  s|dk(  r | j                  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)                  t        j                  j+                               }|j-                  |dz
  |z        j/                  |      j1                         }	|j3                         }
|
|z   dz
  |z  }|dk  s||kD  ry|	sy|	D cg c]R  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  dT }}n. | j                  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'                  t        j$                  |k(        j&                  | j)                  t        j                  j+                               }|j-                  |dz
  |z        j/                  |      j1                         }	|j3                         }
|
|z   dz
  |z  }|dk  s||kD  ry|	sy|	D cg c]R  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  dT }}|
||||d	S c c}w c c}w # t4        $ r}t7        |      }d
| cY d }~S d }~ww xY w)N 12   zInvalid page numberNo data found)	status_ididrequested_byhonorary_reasonreplacement_employee_rutreplacement_employee_full_name
added_date)r!   r"   r#   r$   rut	full_namer'   )total_itemstotal_pagescurrent_pageitems_per_pagedataError: )appendr   branch_office_idr%   r   queryr!   r"   r   r)   r   r$   r&   r'   	outerjoinr   honorary_reason_idr(   r#   filterorder_byr   offsetlimitallcount	Exceptionstr)r   search_branch_office_id
search_rutr(   rol_idpager-   filters
data_queryr.   r*   r+   honoraryserialized_dataeerror_messages                   r   get_allzHonoraryClass.get_all   sW   N	-G&2}==AXXY%**:}EEST}#TWW]]=+B+BMDTDTV_ViVik~  lO  lO  Q^  Qw  Qw  yF  ye  ye  gt  g  g  @I/1B1E1EIgIg1ghI13F3I3I]MmMm3mnIi-:T:T)TUF  h}77<<>?  "(($(n)DEKKN[__a(..0*^;a?NR!8tk10* #'#(  "*!3!3"++$,$6$6'/'?'?080Q0Q6>6]6]"*"5"5$ #( #(TWW]]=+B+BMDTDTV_ViVik~  lO  lO  Q^  Qw  Qw  yF  ye  ye  gt  g  g  @I/1B1E1EIgIg1ghI13F3I3I]MmMm3mnIi-:T:T)TUF=55<=F  h}77<<>?  "(($(n)DEKKN[__a(..0*^;a?NR!8tk10* #'#(  "*!3!3"++$,$6$6'/'?'?#<<!)!H!H"*"5"5$ #( #(  +* $"0' S#(>#($  	-FM]O,,	-sW   HR, 
R, R, AR"(GR, :R, =R, AR'	R, "
R, ,	S5S
S
Sc                 ~   	 | j                   j                  t              j                  t	        t        |      |k(        j                         }i d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d	|j                  d
t        |j                         dt        |j"                        d|j$                  dt        |j&                        dt        |j(                        dt        |j*                        dt        |j,                        dt        |j.                        dt        |j0                        i}t3        j4                  |      S # t6        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr4   r1   foreigner_idbank_idschedule_id	region_id
commune_idr#   r!   employee_to_replacer%   r&   addressaccount_number
start_dateend_dateamountobservationr/   )r   r2   r   r5   getattrfirstr4   r1   rI   rJ   rK   rL   rM   r#   r!   r<   rN   r%   r&   rO   rP   rQ   rR   rS   rT   jsondumpsr;   )r   fieldvaluer.   rD   rE   rF   s          r   getzHonoraryClass.getb   s   	-77==/66w}e7TX]7]^ddfD$d&=&="D$9$9  1 1 4<<	
 t// T^^ doo  1 1 T^^ &s4+C+C'D +C0M0M,N 1$2U2U 3t||, !#d&9&9": c$//2  C.!" #dkk*#$ s4#3#34%O* ::o.. 	-FM]O,,	-s   FF 	F<"F71F<7F<c                    	 t               }|j                  |_        |j                  |_        |j                  |_        |j                  |_        |j
                  |_        |j                  |_        |j                  |_        ||_        d|_	        |j                  |_
        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                  dk7  r |j                  d k7  r|j                  |_        |j                   dk7  r |j                   d k7  r|j                   |_        |j"                  |_        |j$                  |_        t'        j(                         |_        t'        j(                         |_        | j.                  j1                  |       | j.                  j3                          y# t4        $ r}t7        |      }d| cY d }~S d }~ww xY w)N   Noner   r/   )r   r4   r1   rI   rJ   rK   rL   rM   r#   r!   rN   r%   r&   rO   rP   rQ   rR   rT   rS   r   nowr'   updated_dater   addcommitr;   r<   )r   r#   honorary_inputsrC   rE   rF   s         r   storezHonoraryClass.store   s   	-$H*9*L*LH'(7(H(HH%$3$@$@H!.66H#2#>#>H !0!:!:H"1"<"<H$0H!!#H+:+N+NH(0?0X0XH-6E6d6dH3.66H&5&D&DH#))V38R8RVZ8Z&5&@&@#''61o6N6NRV6V$3$<$<!#2#>#>H -44HO"*,,.H$,LLNH!GGKK!GGNN 	-FM]O,,	-s   GG 	G1G,&G1,G1c                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|j                  |_        |j                  |_        |j                  |_        |j                  |_	        |j                  |_
        |j                  |_        |j                  |_        d|_        |j                  |_        |j                  |_        |j                   |_        |j"                  |_        |j$                  |_        |j&                  dk7  r |j&                  d k7  r|j&                  |_        |j(                  dk7  r |j(                  d k7  r|j(                  |_        |j*                  |_        |j,                  |_        t/        j0                         |_        t/        j0                         |_        | j                   j7                  |       | j                   j9                          |j                  dk(  r| j;                  |       y# t<        $ r}t?        |      }d| cY d }~S d }~ww xY w)N   r^   r   r/   ) r   r2   r   r5   r"   rV   r4   r1   rI   rJ   rK   rL   rM   r!   rN   r%   r&   rO   rP   rQ   rR   rT   rS   r   r_   r'   r`   ra   rb   sendr;   r<   )r   r"   rc   rC   rE   rF   s         r   generatezHonoraryClass.generate   s   !	-ww}}]3::=;K;Kr;QRXXZH*9*L*LH'(7(H(HH%$3$@$@H!.66H#2#>#>H !0!:!:H"1"<"<H!"H+:+N+NH(0?0X0XH-6E6d6dH3.66H&5&D&DH#))V38R8RVZ8Z&5&@&@#''61o6N6NRV6V$3$<$<!#2#>#>H -44HO"*,,.H$,LLNH!GGKK!GGNN++q0		/* 	-FM]O,,	-s   H'H* *	I3IIIc                 \   	 | j                   j                  t              j                  t        j                  |k(        j                         }|r6| j                   j                  |       | j                   j                          yy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr   r    r/   )
r   r2   r   r5   r"   rV   deleterb   r;   r<   )r   r"   r.   rE   rF   s        r   rj   zHonoraryClass.delete   s    
	-77==/66}7G7G27MNTTVDt$ & 	-FM]O,,	-s   BB 	B+B& B+&B+c                 F   | j                   j                  t              j                  t        j                  |j                  k(        j                  t        j                  t        j                        t        |j                        d d k(        j                         }|S )N
   )
r   r2   r   r5   r%   r   dater'   r<   r:   )r   r.   s     r   validatezHonoraryClass.validate   s    ww}}]+22=3Y3Y]a]z]z3z{  C  C  DH  DM  DM  N[  Nf  Nf  Dg  kn  os  o~  o~  k  @C  AC  kD  DD  E  K  K  Mr   c                 (   d}| j                   j                  t              j                  t        j                  |j                  k(        j                         }t        | j                         j                         }|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   }	t               j                  dt        |j                               }
t#        t%        |
      t'        |d   d         z        }
t%        |
      t%        |j                         z
  }t#        |
|z
        }||	d	|
i||d
|iddddddgid}ddz   }t)        j*                  ||d| dd      }| j                   j                  t              j                  t        j                  |j                  k(        j                         }d|_        t/        j0                         |_        | j                   j5                  |       | j                   j7                          y)N JXou3uyrc7sNnP2ewOCX38tWZ6BTm4D1z-01	443000344__Honorario_.setting_datapercentage_honorary_billi&	221000223)debehaberIemitidosr   )dtefolio)fechaglosadetalle	operacion
documentosz/https://libredte.cl/api/lce/lce_asientos/crear/76063822Bearer application/jsonAuthorizationzContent-Type)rW   headers   z%Accounting entry created successfully)r   r2   r   r5   r"   rV   r   r[   periodr   convert_to_utf8r   r1   branch_officer<   remove_from_stringrS   roundintfloatrequestspostr!   r   r_   r`   ra   rb   )r   	form_dataTOKENrC   settingsamerican_date	utf8_dateexpense_typer   glossgross_amounttax
net_amountr.   urlresponses                   r   imputezHonoraryClass.impute   s^   277==/66}7G7G9<<7WX^^`(,,.!((50//>	"&78??  H$=$==

%' 	
 ++  	
    ill#$ 	 #}77S=QRS.x7OPj7k1llm,#hoo"66<#-.
 ' "< %j#S	 !#%%'!. @:M=='.ug%6$6 77==/66}7G7G9<<7WX^^` (H6r   c           
         t        | j                        j                         }t        | j                        j                  d|j                        }t               j                         }t               j                  dt        |j                              }t        t        |      t        |d   d         z        }d}t        j                  dddd	id
|iddi|j                  |j                   |j"                  |j$                  ddd|j                   z   |dgdd      }dt        |d   d         z   dd}t'        j(                  d|||      }	t+        |	j,                         y)Nr"   rt   ru   rv   z4https://apigateway.cl/api/v1/sii/bte/emitidas/emitirpassz
76063822-6JYM1)r(   claveFchEmis	RUTEmisor)RUTRecepRznSocRecepDirRecep	CmnaRecep)IdDocEmisorReceptorzBoleta de Honorarios para )NmbItem	MontoItem)
EncabezadoDetalle)authboletar   apigetaway_tokenr   r   POST)r   r.   r   )r   r   r[   r   rM   r   get_time_Y_m_dr   r<   rS   r   r   r   rW   rX   r%   r&   rO   communer   requestprinttext)
r   r.   r   r   current_daterS   r   payloadr   r   s
             r   rg   zHonoraryClass.send  sg   (,,.tww'++D$//B"}33511#s4;;7GHs6{U8N+CD^+_%``aD**$*+7-3-&)" -6|2* -83* 9=8U8U;?;^;^8<9@	5*3&  8TVZVyVy7y9?)*0&!+" B 'Xn-EFX-Y)ZZ.

 ##FCwOhmmr   )NNNNr   rl   )__name__
__module____qualname__r   rG   r[   rd   rh   rj   rn   r   rg    r   r   r   r      s5    P-f->-B"-H-
D7N4r   r   )app.backend.db.modelsr   r   r   r   r   r   r	   r
   r   r   
sqlalchemyr   r   !app.backend.classes.setting_classr   !app.backend.classes.commune_classr    app.backend.classes.helper_classr   r   rW   r   r   r   r   r   <module>r      s;    B  B  B   : : 8   H Hr   