
    XhD                     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Z G d d      Zy)    )
EmployeeLaborDatumModelHealthModelContractTypeModelPentionModelEmployeeModelCommuneModelRegionModelCivilStateModelJobPositionModelBranchOfficeModel)datetime)HelperClassNc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)EmployeeLaborDatumClassc                     || _         y N)db)selfr   s     Z/var/www/intrajisbackend.com/public_html/app/backend/classes/employee_labor_datum_class.py__init__z EmployeeLaborDatumClass.__init__   s	        c                     	 | j                   j                  t              j                  t        j                        j                         }|sy|S # t        $ r}t        |      }d| cY d }~S d }~ww xY wNNo data foundError: )r   queryr   order_byidall	Exceptionstr)r   dataeerror_messages       r   get_allzEmployeeLaborDatumClass.get_all   sf    	-77==!89BBCZC]C]^bbdD&K 	-FM]O,,	-s$   AA A 	A4A/)A4/A4c                    	 | j                   j                  t        t        j                        j                  t        t        j                  t        j                  k(        j                  t        j                  |k(        j                  t        j                        j                         }|syg }|D ]  \  }}||_        |j                  |        |S # t        $ r}t        |      }d| cY d }~S d }~ww xY wr   )r   r   r   r   employee_type_id	outerjoinrutfilterbranch_office_idr   r   r   appendr    r!   )r   r+   resultsr"   employeer'   r#   r$   s           r   get_all_by_branch_officez0EmployeeLaborDatumClass.get_all_by_branch_office   s    	-ggmmM3J3[3[\	13J3N3NR_RcRc3cd.??CSST))*335  &D.5 &**,<)H%& K 	-FM]O,,	-s$   B.C 1%C 	C: C5/C:5C:c                 J   	 | j                   j                  t        t        t        t
        t        t        t        t        t        	      j                  t        t        j                  t        j                  k(        j                  t
        t
        j                  t        j                  k(        j                  t        t        j                  t        j                  k(        j                  t        t        j                  t        j                   k(        j                  t        t        j                  t        j"                  k(        j                  t        t        j                  t        j$                  k(        j                  t        t        j                  t        j&                  k(        j                  t        t        j                  t        j(                  k(        j+                  t-        t        |      |k(        j/                         }|rl|d   }|d   }|d   }|d   }|d   }|d   }	|d   }
|d   }|d	   }|j                  |j0                  |j2                  d
}|j                  |j4                  |j6                  |j8                  |j:                  d}|j                  |j                  |j<                  d}|j                  |j>                  d}|	j                  |	j@                  |	jB                  d}|
j                  |
jD                  |
jF                  |
j                  |
j                  |
jH                  |
jJ                  |
jL                  |
jN                  |
jP                  |
jR                  |
jT                  d}|j                  |jV                  |jX                  |j8                  |jZ                  |j\                  d}|j                  |j^                  d}|j`                  }|jb                  }|jd                  }|r@|dk7  r;|d k7  r6tg        jh                  |d      jk                         }|jm                  d      }nd }d }|r;|dk7  r6tg        jh                  |d      jk                         }|jm                  d      }nd }d }|r;|dk7  r6tg        jh                  |d      jk                         }|jm                  d      }nd }d }i d|j                  d|j8                  d|j(                  d|j"                  d|jF                  d|r|j                  nd d|r|j0                  nd d|r|j                  nd d|r|j<                  nd d|r|j                  nd d|r|j>                  nd d|r|j                  nd d |r|j6                  nd d!|r|j                  nd d"|r|jV                  nd d#|	r|	j                  nd d$|	r|	j@                  nd |jn                  |jp                  |jr                  |jN                  |jt                  ||||jv                  |jx                  |jz                  |j|                  |j~                  |j                  d%}t        j                  |||||||||d&	      }|S y'# t        $ r} t        |       }!d(|! cY d } ~ S d } ~ ww xY w))Nr                           )r   regionregion_remuneration_code)r   health_remuneration_codehealthr)   
social_law)r   	region_idcommune)r   civil_state)r   job_position	functions)r   branch_officeaddressr>   
commune_id
segment_idzone_idprincipal_id	status_idvisibility_idopening_datedte_code)r   pentionr=   r)   amountprevired_code)r   contract_typez
0000-00-00z%Y-%m-%dr   r)   contract_type_idr+   rD   r>   region_namerE   commune_namecivil_state_idcivil_state_name	health_idhealth_name
pention_idpention_namejob_position_idjob_position_name)extra_health_payment_type_idr'   	regime_idrI   health_payment_identrance_pentionentrance_companyentrance_healthsalary	collation
locomotionextra_health_amountapv_payment_type_id
apv_amount)	r   r	   r   r   r
   r   r   r   r   z3No se encontraron datos para el campo especificado.r   )Er   r   r   r	   r   r   r
   r   r   r   r   r(   r   r>   rE   rT   rZ   r+   rX   rV   rQ   r*   getattrfirstr9   r:   r;   r<   r)   r=   r?   r@   rA   rB   rC   rD   rF   rG   rH   rI   rJ   rK   rL   rM   social_law_coderN   rO   rP   r_   r`   ra   r   strptimedatestrftimer\   r'   r]   r^   rb   rc   rd   re   rf   rg   jsondumpsr    r!   )"r   fieldvaluer"   employee_labor_datar9   r<   r?   r@   rA   rC   rM   rP   serialized_regionserialized_healthserialized_communeserialized_civil_stateserialized_job_positionserialized_branch_officeserialized_pentionserialized_contract_typer_   r`   ra   formatted_entrance_pentionformatted_entrance_pention_strformatted_entrance_companyformatted_entrance_company_strformatted_entrance_healthformatted_entrance_health_strserialized_employee_labor_dataserialized_resultr#   r$   s"                                     r   getzEmployeeLaborDatumClass.get(   sT   d	-77==!8+{T`bq  tD  FW  Ye  gx  y	+{~~9P9Z9Z'Z[	,;R;];](]^	/?+=+=AXAgAg+gh	*,<,?,?CZCjCj,jk	+->-A-AE\EmEm-mn	,;R;];](]^	+{~~9P9Z9Z'Z[	+->-A-AE\EmEm-mnw6>%GH  &*1g#aaq'"1g#Aw $Qq' $Q !))$mm060O0O%! !))060O0O$mm!::"("3"3%! "**!(!2!2&&" &..#.#:#:*& '//$0$=$=!-!7!7+' (**%2%@%@,44!.!8!8"/":":"/":":,44$1$>$>!.!8!8%2%@%@$1$>$> - 6 6,(  "**&")"9"9";;%nn%,%:%:&" (**%2%@%@,(
 $7#G#G #6#G#G "5"E"E#(8L(HM]aeMe191B1BCSU_1`1e1e1g.5O5X5XYc5d215.592#(8L(H191B1BCSU_1`1e1e1g.5O5X5XYc5d215.592",'F080A0A/S]0^0c0c0e-4M4V4VWa4b104-481 2-00 2.22 2 '(;(L(L 2 '(;(L(L	 2
 2:: 2  f$ 2 "F6== 2 !'**T 2 #wGOOD 2 %knn 2 ';(?(?TX 2  f$ 2 "F6== 2 !'**T 2 #wGOOD 2  &,|D! 2" (l)B)BX\# 2$ 5H4d4d(;(L(L!4!>!>!4!>!>)<)N)N(F(F'D188!4!>!>"5"@"@+>+R+R+>+R+R"5"@"@? 2.H %)JJ/M#4#4$6'=(?)A$6)A
0 
%! )(L 	-FM]O,,	-s   Y;Y? ?	Z"ZZ"Z"c                 |   t               j                  t        |d               }t               }||_        |d   |_        d|_        t        j                         |_	        | j                  j                  |       	 | j                  j                          y# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr)   r1   r   )r   numeric_rutr!   r   r)   
visual_rutrI   r   now
added_dater   addcommitr    )r   employee_labor_datum_inputsr   employee_labor_datumr#   r$   s         r   storezEmployeeLaborDatumClass.store   s    !m//4OPU4V0WX68#. *Ee*L')*&*2,,.'()	-GGNN 	-FM]O,,	-s   =B 	B;!B60B;6B;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)Nr1   r   r   )
r   r   r   r*   r)   ri   deleter   r    r!   )r   r)   r"   r#   r$   s        r   r   zEmployeeLaborDatumClass.delete   s    
	-77==!89@@AXA\A\`cAcdjjlDt$ & 	-FM]O,,	-s   BB 	B+B& B+&B+c                 $   | j                   j                  t              j                  t        j                  |k(        j                         }d|v r;|d   6t               j                  t        |d               }||_        |d   |_	        d|v r|d   
|d   |_
        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d	|v r|d	   
|d	   |_        d
|v r|d
   
|d
   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        t?        j@                         |_!        | j                   jE                  |       	 | j                   jG                          y# tH        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr)   rQ   r+   rD   r>   rE   rT   rV   rX   rZ   r'   r]   r_   r`   ra   rb   rc   rd   r\   re   rf   rg   r1   r   )%r   r   r   r*   r)   ri   r   r   r!   r   rQ   r+   rD   r>   rE   rT   rV   rX   rZ   r'   r]   r_   r`   ra   rb   rc   rd   r\   re   rf   rg   r   r   updated_dater   r   r    )r   r   r   r   r   r#   r$   s          r   updatezEmployeeLaborDatumClass.update   s   #ww}}-DELLMdMhMhlnMnouuw//4OPU4V4b%-33C8STY8Z4[\K(3 $.I%.P +!<<A\]oApA|4OPb4c 1!<<A\]oApA|5PQc5d!2338ST]8^8j0KI0V%-55:UVa:b:n-H-U *66;VWc;d;p.I,.W +::?Z[k?l?x2MN^2_ /55:UVa:b:n-H-U *66;VWc;d;p.I,.W + ;;@[\m@n@z3NO`3a 0!<<A\]oApA|4OPb4c 155:UVa:b:n-H-U *!<<A\]oApA|4OPb4c 1!<<A\]oApA|4OPb4c 1 ;;@[\m@n@z3NO`3a 0227RS[7\7h*Eh*O '55:UVa:b:n-H-U *66;VWc;d;p.I,.W +)-HHMh  jH  NI  NU@[\z@{ = $??D_`uDv  EC7RSh7i 4 $??D_`uDv  EC7RSh7i 466;VWc;d;p.I,.W +,4LLN)()	-GGNN 	-FM]O,,	-s   I, ,	J5J
J
Jc                 `    | j                   j                  t              j                         }|S r   )r   r   r   count)r   totals     r   active_employee_totalz-EmployeeLaborDatumClass.active_employee_totalD  s"    m,224r   c                 .   | j                   j                  t        t              j	                  t        t        j
                  t        j
                  k(        j                  t        j                  dk(        j                         }| j                   j                  t        t              j	                  t        t        j
                  t        j
                  k(        j                  t        j                  dk(        j                         }d|dd|dg}|S )Nr1   r2   z	Full-Time)scheduleTotalz	Part-Time)	r   r   r   r   joinr)   r*   r'   r   )r   full_time_totalpart_time_totaltotalss       r   distribution_totalsz+EmployeeLaborDatumClass.distribution_totalsI  s    ''--(?O]M$5$59P9T9T$TU.??1DEeeg 	 ''--(?O]M$5$59P9T9T$TU.??1DEeeg 	
 %?$?

 r   N)__name__
__module____qualname__r   r%   r/   r   r   r   r   r   r    r   r   r   r      s3    --$e-N-&-Sj
r   r   )app.backend.db.modelsr   r   r   r   r   r   r	   r
   r   r   r    app.backend.classes.helper_classr   rn   r   r   r   r   <module>r      s,    H  H  H  8 P Pr   