
    XhJ                     |    d dl 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Z G d d      Zy)	    )	EmployeeModelEmployeeLaborDatumModelEmployeeViewModelClockUserModelBranchOfficeModelOldEmployeeModelOldEmployeeLaborDatumModelSupervisorModelr   )datetime)func)HelperClass)DropboxClassNc                   j    e Zd Zd Zd Z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y)EmployeeClassc                     || _         y N)db)selfr   s     N/var/www/intrajisbackend.com/public_html/app/backend/classes/employee_class.py__init__zEmployeeClass.__init__	   s	        c                    | j                   j                  t              j                  t        j                        j                         }g }|D ]  }i d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d	|j                  d
|j                  d|j                  dt!        |j"                        d|j$                  d|j&                  dt!        |j(                        dt!        |j*                        }|j-                  |        t/        j0                  |      S )Nidrut
visual_rutnamesfather_lastnamemother_lastname	gender_idnationality_idsignature_type_idpersonal_email	cellphone	born_datepicture	signature
added_dateupdated_date)r   queryr   order_byr   allr   r   r   r   r   r   r    r!   r"   r#   strr$   r%   r&   r'   r(   appendjsondumps)r   r)   serialized_dataemployeeemployee_dicts        r   get_all_with_no_paginatorz'EmployeeClass.get_all_with_no_paginator   s   m,55m6I6IJNNP 	2Hhkkx|| h11 	
 "8#;#; "8#;#; X// !("9"9 $X%?%? !("9"9 X// S!3!34 8++ X// c("5"56  H$9$9 :!M$ ""=1'	2, zz/**r   c                 `    | j                   j                  t              j                         }|S r   )r   r)   r   r+   )r   datas     r   full_detailszEmployeeClass.full_details*   s#    ww}}./335r   Nc                 	   	 |dk7  r|dk(  r| j                   j                  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
        j                  |k(        j                  t        j                        }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        j                        }|j#                         }||z   dz
  |z  }|dk  s||kD  ry|j%                  |dz
  |z        j'                  |      j)                         }|sy|dk(  ri|D 	
cg c]W  \  }	}
}}|	j                  |	j                  |	j                  |	j                  |	j                  |	j                  |	j                   dY }}}
}	}n]|D 	cg c]R  }	|	j                  |	j                  |	j                  |	j                  |	j                  |	j                  |	j                   dT }}	|||||dS | 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        j                        j)                         }|D 	cg c]R  }	|	j                  |	j                  |	j                  |	j                  |	j                  |	j                  |	j                   dT }}	|S c c}}}
}	w c c}	w c c}	w # t*        $ r}t-        |      }d| cY d }~S d }~ww xY w)	Nr         zInvalid page numberNo data foundr   r   r   r   r   r   	status_idtotal_itemstotal_pagescurrent_pageitems_per_pager5   Error: )r   r)   r   r   r   r
   	outerjoinr   r   branch_office_idfilterr*   r   r   r   r   r<   countoffsetlimitr+   	Exceptionr,   )r   r   rol_idpagerA   
data_queryr>   r?   r5   r1   labor_datumbranch_office
supervisorr0   eerror_messages                   r   get_allzEmployeeClass.get_all0   s   I	-qyQ;!%}>UWhjy!z!	"9;R;V;VZgZkZk;kl!	"35F5I5IMdMuMu5uv!	/?3S3SWhWkWk3kl22c9: !2!23  "&}/?/?ARARTaTlTln{  oB  oB  DQ  Da  Da  cp  c@  c@  BY  Bc  Bc  "d!	"9;R;V;VZgZkZk;kl !2!23  )..0*^;a?NR!8tk10!(($(n)DEKKN[__a* Q; OS'T 'T K(K
 'kk'||&.&9&9!)+3+C+C+3+C+C%-%7%7( 'TO 'T$ '+', # 'kk'||&.&9&9!)+3+C+C+3+C+C%-%7%7( ',O ', $/#.$(&4+  "WW]]=+;+;]=N=NP]PhPhjwj}j}  @M  @]  @]  _l  _|  _|  ~U  ~_  ~_  `!	"9;R;V;VZgZkZk;kl !2!23CCE  #-#.  #++#<<"*"5"5%^^'/'?'?'/'?'?!)!3!3$ #. #. '&U'T',,#.  	-FM]O,,	-s^   H	Q( 6Q( Q( AQ
+
Q( 5AQ	Q( C%Q( ;AQ#Q( Q( (	R1R RRc                 	   t        |      dkD  r|d   }|d   }|d   }|d   }|d   }|d   }	dk(  s|d	k(  r| j                  j                  t              j	                  t
        t
        j                  t        j                  k(        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t
        j                        j                  d      }
t        |      dkD  rr2|
j                  t        j                  j!                  d
| d
            }
r2|
j                  t        j                  j!                  d
| d
            }
r2|
j                  t        j                  j!                  d
| d
            }
r2|
j                  t        j                  j!                  d
| d
            }
	r"|
j                  t
        j"                  |	k(        }
|r#|
j                  t
        j                  |k(        }
n| j                  j                  t$              j	                  t&        t&        j                  t$        j                  k(        j                  t$        j                  t$        j                  t$        j                  t$        j                  t$        j                  t$        j                  t&        j                        j                  d      }
t        |      dkD  rr2|
j                  t$        j                  j!                  d
| d
            }
r2|
j                  t$        j                  j!                  d
| d
            }
r2|
j                  t$        j                  j!                  d
| d
            }
r2|
j                  t$        j                  j!                  d
| d
            }
	r"|
j                  t&        j"                  |	k(        }
|r"|
j                  t&        j                  |k(        }
|
j)                         }||z   dz
  }|
j+                         }|sy|D cg c]R  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  dT }}|||||dS c c}w )Nr   r   r   r   r   r<   rD      r8   %r9   r:   r;   r=   )lenr   r)   r   joinr	   r   add_columnsr   r   r   r   r   r<   r*   rE   likerD   r   r   rF   r+   )r   search_inputsrK   rA   
search_rutsearch_namessearch_father_lastnamesearch_mother_lastnamesearch_status_idsearch_branch_office_idrL   r>   r?   r5   r1   r0   s                   r   searchzEmployeeClass.search}   s~   }!&u-J(1L%23D%E"%23D%E",[9&34F&G#q $4$9'78==>XZtZxZx  }M  }Q  }Q  [Q  R  ^  ^ ## $$ ++ && 00 00*44 huo  =!A%!+!2!23C3N3N3S3SVWXbWccdTe3f!gJ!+!2!23C3I3I3N3NQRS_R``aOb3c!dJ)!+!2!23C3S3S3X3X[\]s\ttuYv3w!xJ)!+!2!23C3S3S3X3X[\]s\ttuYv3w!xJ*!+!2!23M3^3^by3y!zJ#!+!2!23M3W3W[k3k!lJ}5::;RTkToTo  tA  tE  tE  UE  F  R  R  !!((##----'11 huo  =!A%!+!2!2=3K3K3P3PSTU_T``aQb3c!dJ!+!2!2=3F3F3K3KaP\~]^L_3`!aJ)!+!2!2=3P3P3U3UXYZpYqqrVs3t!uJ)!+!2!2=3P3P3U3UXYZpYqqrVs3t!uJ*!+!2!23J3[3[_v3v!wJ#!+!2!23J3T3TXh3h!iJ &&("^3a7~~"    ++<<"--^^'77'77!++
     '& ,#
 	
 s   (AS	c                     	 | j                   j                  t              j                  t        j                  |k(        j                         }|dk7  ryy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr   r9   rB   )r   r)   r   rE   r   rF   rI   r,   r   r   r5   rP   rQ   s        r   validate_rutzEmployeeClass.validate_rut   sk    		-77==/66}7H7HC7OPVVXDqy 	-FM]O,,	-s   AA 	A9A4.A94A9c                    	 | j                   j                  t        t        j                        j                  t        t        j                  t        j                  k(        j                  t        t        |      |k(        j                         }|ri d|d   j                  d|d   j                  d|d   j                  d|d   j                  d|d   j                  d|d   j                  d|d   j                  d	|d   j                   d
|d   j"                  d|d   j$                  d|d   j&                  d|d   j(                  r|d   j(                  j+                  d      nd d|d   j,                  d|d   j.                  d|d   d|d   j0                  r|d   j0                  j+                  d      nd d|d   j2                  r|d   j2                  j+                  d      nd }|d   j.                  r;t5        | j                         j7                  dt9        |d   j.                              nd }|d   j,                  r;t5        | j                         j7                  dt9        |d   j,                              nd }|||d}t;        j<                  |      }|S y# t>        $ r}	t9        |	      }
d|
 cY d }	~	S d }	~	ww xY w)Nr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   z%Y-%m-%dr%   r&   	privileger9   r'   z%Y-%m-%d %H:%M:%Sr(   z/signatures/z
/pictures/)employee_datar&   r%   z3No se encontraron datos para el campo especificado.rB   ) r   r)   r   r   rf   rC   r   rE   getattrfirstr   r   r   r   r   r   r    r!   r"   r#   r$   strftimer%   r&   r'   r(   r   getr,   r.   r/   rI   )r   fieldvaluer5   rg   r&   r%   resultserialized_resultrP   rQ   s              r   rk   zEmployeeClass.get   s   1	-77==0H0HI	..*<*<@Q@Q*QRw}e4=> 
 !$q'**!47;;! !$q'"4"4! T!W]]	!
 &tAw'>'>! &tAw'>'>!  a!2!2! %d1g&<&<! (a)B)B! %d1g&<&<!  a!2!2!  4PQ7K\K\a!2!2!;!;J!Gbf! tAw!  a!2!2!  a!  !VZ[\V]VhVh$q'"4"4"="=>Q"Rnr!!" #Z^_`ZaZnZnDG$8$8$A$ABU$Vtx#!* bffgahararL155nc$q'J[J[F\]x|	[_`a[b[j[j,tww/33L#d1gooBVWpt &3!*& %)JJv$6!(( M 	-FM]O,,	-s   J.J2 2	K;K
KKc                     	 | j                   j                  t              j                  t        j                  |k(        j                         }|S # t        $ r}t        |      }d| cY d }~S d }~ww xY w)NrB   )r   r)   r   rE   r   ri   rI   r,   )r   r   r1   rP   rQ   s        r   one_simple_getzEmployeeClass.one_simple_get  sc    	-ww}}]3::=;L;Lc;QRXXZHO 	-FM]O,,	-s   AA 	A4A/)A4/A4c                     | j                   j                  t              j                  t        j                  |k(        j                         }|S r   )r   r)   r   rE   r   rF   )r   r   r1   s      r   	is_activezEmployeeClass.is_active  s8    77==/66}7H7H#7MNTTVr   c                    t               j                  t        |d               }t               }||_        |d   |_        |d   |_        |d   |_        |d   |_        |d   |_	        |d   |_
        |d   |_        |d   |_        |d	   |_        t        j                         |_        | j"                  j%                  |       	 | j"                  j'                          y
# t(        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr   r   r   r   r   r    r"   r#   r$   r9   rB   )r   numeric_rutr,   r   r   r   r   r   r   r   r    r"   r#   r$   r   nowr'   r   addcommitrI   )r   employee_inputsru   r1   rP   rQ   s         r   storezEmployeeClass.store#  s    !m//OE4J0KL ?"-e4(1#23D#E #23D#E ,[9"12B"C"12B"C,[9,[9&llnH	-GGNN 	-FM]O,,	-s   C! !	D*C?9D?D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)Nr9   r:   rB   )
r   r)   r   rE   r   ri   deleterx   rI   r,   rc   s        r   r|   zEmployeeClass.delete=  s    
	-77==/66}7H7HC7OPVVXD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   |_        t+        j,                         |_        | j                   j1                  |       	 | j                   j3                          y# t4        $ r
}Y d }~yd }~ww xY w)Nr   r   r   r   r   r    r"   r#   r$   r&   r!   r%   r9   r   )r   r)   r   rE   r   ri   r   ru   r,   r   r   r   r   r   r    r"   r#   r$   r&   r!   r%   r   rv   update_daterw   rx   rI   )r   r   ry   r1   ru   rP   s         r   updatezEmployeeClass.updateJ  s   GGMM-0778I8IR8OPVVXO#(>(J%-33C8N4OPK&HL"1%"8Ho%/'*B*N,W5HN/ODU4V4b'67H'IH$/ODU4V4b'67H'IH$/)ok.J.V!0!=H.?CS3T3`&56F&GH#.?CS3T3`&56F&GH#/)ok.J.V!0!=H/)ok.J.V!0!=H/)ok.J.V!0!=H/1oFY6Z6f)89L)MH&'OI,F,R.y9H'||~H	GGNN 		s   F. .	G<Gc                 L   t        j                         }| j                  j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  d      j                  d      t        j                  t        j                  d      j                  d            j                  t        t        j
                  t        j
                  k(        j                  t        t        j                   t        j"                  k(        j%                  t        j&                  t        j                        |j(                  k\  t        j*                  t        j                        |j,                  k(        j/                  t        j&                  t        j                              j1                  d      j3                         }t5        j6                  |D cg c]  }|j9                          c}      }|S c c}w )Nz%ddayz%Mmonth   )r   todayr   r)   r   r   r   r   r   rN   r   DATE_FORMATr$   labelrW   r   r   rD   rE   DAYr   MONTHr   r*   rH   r+   r.   r/   _asdict)r   r   	employeesr1   serialized_employeess        r   get_birthdayszEmployeeClass.get_birthdays~  sc    GGMM))++]44d;AA%H]44d;AA'J
 
%'>'B'BmFWFW'W	X	!2!5!59P9a9a!a	b	001UYY>

=KbKb@cglgrgr@r	s	$((=223	4	q	 	   $zzi*X(8+;+;+=*XY## +Ys   H!c                 N   | j                   j                  t              j                  t        j                  dk(        j                         }| j                   j                  t              j                  t        j                  dk(        j                         }d|dd|dg}|S )Nr9   rT   Men)gendertotalWomen)r   r)   r   rE   r   rF   )r   	men_totalwomen_totaltotalss       r   gender_totalszEmployeeClass.gender_totals  s    GGMM-0778O8OST8TU[[]	ggmmM299-:Q:QUV:VW]]_ y15

 r   c                 J   | j                   j                  t              j                  t        j                  |k(        j                         }| j                   j                  t              j                  t        j                  |k(        j                         }|dk(  rd|fS y)Nr9   r   )r   r)   r   rE   r#   rF   ri   )r   r#   	existenceemployeeExistences       r   validate_cellphonez EmployeeClass.validate_cellphone  s}    GGMM-0778O8OS\8\]cce	 GGMM-8??@W@W[d@dekkm>'''r   )NNr   
   )r9   r   )__name__
__module____qualname__r   r3   r6   rR   ra   rd   rk   rq   rs   rz   r|   r   r   r   r    r   r   r   r      sS    +:J-ZS
j
-2-j-
-4-2h$.	r   r   )app.backend.db.modelsr   r   r   r   r   r   r	   r
   r   
sqlalchemyr    app.backend.classes.helper_classr   !app.backend.classes.dropbox_classr   r.   r   r   r   r   <module>r      s2    W  W  W   8 : ` `r   