
    Xhz<                         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     N/var/www/intrajisbackend.com/public_html/app/backend/classes/honorary_class.py__init__zHonoraryClass.__init__   s	        Nc                 	   	 g }|"|j                  t        j                  |k(         |'|dk7  r"|j                  t        j                  |k(         t	        |       |dk(  s|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        j1                  |      j3                         }	|j5                         }
|
|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        j1                  |      j3                         }	|j5                         }
|
|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 # t6        $ r}t9        |      }d	| cY d }~S d }~ww xY w)
N          zInvalid page numberNo data found)	status_ididrequested_byhonorary_reasonreplacement_employee_rutreplacement_employee_full_name
added_date)total_itemstotal_pagescurrent_pageitems_per_pagedataError: )appendr   branch_office_idr%   printr   queryr!   r"   r   	full_namer   r$   r&   r'   	outerjoinr   honorary_reason_idrutr#   filterorder_byr   offsetlimitallcount	Exceptionstr)r   search_branch_office_id
search_rutr5   rol_idpager+   filters
data_queryr,   r(   r)   honoraryserialized_dataeerror_messages                   r   get_allzHonoraryClass.get_all   sd   P	-G&2}==AXXY%**:}EEST&M{fkVq[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'/'?'?080Q0Q6>6]6]"*"5"5$ #( #(  +* $"0' S#(>#($  	-FM]O,,	-sW   HR< R< R< !AR28GR< 
R< R< AR7(	R< 2
R< <	S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
|j                  dt!        |j"                        dt!        |j$                        d|j&                  dt!        |j(                        dt!        |j*                        dt!        |j,                        dt!        |j.                        t!        |j0                        t!        |j2                        d}t5        j6                  |      S # t8        $ r}t!        |      }d| cY d }~S d }~ww xY w)Nr4   r/   foreigner_idbank_idaccount_type_idschedule_id	region_id
commune_idr#   r!   employee_to_replacer%   r&   addressaccount_number
start_dateend_date)amountobservationr-   )r   r1   r   r6   getattrfirstr4   r/   rJ   rK   rL   rM   rN   rO   r#   r!   r=   rP   r%   r&   rQ   rR   rS   rT   rU   rV   jsondumpsr<   )r   fieldvaluer,   rE   rF   rG   s          r   getzHonoraryClass.getd   s   	-77==/66w}e7TX]7]^ddfD$d&=&="D$9$9  1 1 4<<	
 "4#7#7 t// T^^ doo  1 1 T^^ &s4+C+C'D +C0M0M,N 1$2U2U 3t||, !#d&9&9":  c$//2!" C.#$ dkk*"4#3#34'O, ::o.. 	-FM]O,,	-s   F!F$ $	G-G<GGc                 
   	 t               }|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)        j*                         |_        t)        j*                         |_        | j0                  j3                  |       | j0                  j5                          y# t6        $ r}t9        |      }d| cY d }~S d }~ww xY w)N   Noner   r-   )r   r4   r/   rJ   rK   rM   rN   rO   rL   r#   r!   rP   r%   r&   rQ   rR   rS   rT   rV   rU   r   nowr'   updated_dater   addcommitr<   r=   )r   r#   honorary_inputsrD   rF   rG   s         r   storezHonoraryClass.store   s   	-$H*9*L*LH'(7(H(HH%$3$@$@H!.66H#2#>#>H !0!:!:H"1"<"<H'6'F'FH$$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 	H(G=7H=Hc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|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.                  |_        t1        j2                         |_        t1        j2                         |_        | j                   j9                  |       | j                   j;                          |j                  dk(  r| j=                  |       y# t>        $ r}tA        |      }d| cY d }~S d }~ww xY w)Nr   r`   r   r-   )!r   r1   r   r6   r"   rX   r4   r/   rJ   rK   rM   rN   rO   rL   r!   rP   r%   r&   rQ   rR   rS   rT   rV   rU   r   ra   r'   rb   rc   rd   sendr<   r=   )r   r"   re   rD   rF   rG   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'6'F'FH$!"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   H8H; ;	I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   r1   r   r6   r"   rX   deleterd   r<   r=   )r   r"   r,   rF   rG   s        r   rk   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   r1   r   r6   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)rY   headers   z%Accounting entry created successfully)r   r1   r   r6   r"   rX   r   r]   periodr   convert_to_utf8r   r/   branch_officer=   remove_from_stringrU   roundintfloatrequestspostr!   r   ra   rb   rc   rd   )r   	form_dataTOKENrD   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"   ru   rv   rw   z4https://apigateway.cl/api/v1/sii/bte/emitidas/emitirpassz
76063822-6JYM1)r5   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   rO   r   get_time_Y_m_dr   r=   rU   r   r   r   rY   rZ   r%   r&   rQ   communer   requestr0   text)
r   r,   r   r   current_daterU   r   payloadr   r   s
             r   rh   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   rm   )__name__
__module____qualname__r   rH   r]   rf   ri   rk   ro   r   rh    r   r   r   r      s6    R-j-@ -D#-J-
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   rY   r   r   r   r   r   <module>r      s;    B  B  B   : : 8   M Mr   