
    zh-"                     h    d dl m Z  d dlZd dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ  G d d      Zy)	    )datetimeN)HTTPException)Session)EmployeeIntershipModelEmployeeIntershipAnswerModelBranchOfficeModel	UserModel)funcc                   >    e Zd ZdefdZd
dZd Zd Zd Zd Z	d	 Z
y)EmployeeIntershipClassdbc                     || _         y N)r   )selfr   s     X/var/www/intrajisbackend.com/public_html/app/backend/classes/employee_intership_class.py__init__zEmployeeIntershipClass.__init__	   s	        Nc                 	   	 g }|"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |dk(  s|dk(  rs | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  d      j                  d      t        j                  t        j                  j                  d      t        j                   	      j#                  t        t        j                  t        j                  k(        j#                  t        t        j$                  t        j                  k(        j&                  | j)                  t        j                  j+                               }n | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  d      j                  d      t        j                  t        j                  j                  d      t        j                   	      j#                  t        t        j                  t        j                  k(        j#                  t        t        j$                  t        j                  k(        j'                  t        j                  |k(        j&                  | j)                  t        j                  j+                               }|dkD  r|j-                         }	|	|z   dz
  |z  }
|dk  s||
kD  rddd	S |j/                  |dz
  |z        j1                  |      j3                         }|sdd
d	S |D cg c]]  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   d_ }}|	|
|||dS |j3                         }|D cg c]]  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   d_ }}|S c c}w c c}w # t4        $ r}t7        |      }d|d	cY d }~S d }~ww xY w)N      %d-%m-%Y
added_datebranch_office_idr   errorzInvalid page numberstatusmessagezNo data found)idr   internobservationssupport	full_namer   branch_office)total_itemstotal_pagescurrent_pageitems_per_pagedata)r   r   r   r"   r    r!   r   r#   )appendr   r   r   r   queryr   r    r!   r
   date_formatr   labelr	   r"   r   r#   	outerjoinrutfilterorder_bydesccountoffsetlimitall	Exceptionstr)r   r   r   rol_idr.   pager'   filtersr*   r$   r%   r(   	intershipserialized_dataeerror_messages                   r   get_allzEmployeeIntershipClass.get_all   s   d	AG+5FFJZZ[!5<<FG{fk*--*11*;;*77*22$$%;%F%F
SYYZfg''%((../AB%33
 )%'8';';?U?f?f'f)y}}0F0M0MM&  (*55::<! (*--*11*;;*77*22$$%;%F%F
SYYZfg''%((../AB%33
 )%'8';';?U?f?f'f)y}}0F0M0MM&*11S8&#$ (*55::<% , ax#kkm*^;a?NR!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ $(	#)   $,,(1(B(B'..$-$:$:(00!*!4!4"+"6"6%.%<%<	$ 	#) 	#) $/#.$(&4+  yy{ $(	#)   $,,(1(B(B'..!*!4!4$-$:$:(00"+"6"6%.%<%<	$ 	#) 	#) '&C	#),	#)  	AFM%-@@	AsP   NR9 
:R9 R9 	A"R/+	R9 5R9 	A"R4+R9 /
R9 9	SSSSc                    | j                   j                  t              j                  t        j                  |k(        j                         }|D ]  }| j                   j                  t              j                  t        j                  |j                  k(        j                         }| j                   j                  |       | j                   j                           y r   )
r   r*   r   r/   intership_idr5   r   firstdeletecommit)r   rA   intership_answeranswerintership_answer_details        r   !delete_employee_intership_answersz8EmployeeIntershipClass.delete_employee_intership_answerss   s    77==)EFMM(55E

#% 	 ' 	F&*ggmm4P&Q&X&X,//699<'eg $ GGNN23GGNN	r   c                     | j                   j                  t              j                  t        j                  |k(  t        j
                  |k(        j                         }|sddiS d|j                  iS )NrF    )r   r*   r   r/   rA   question_idrB   	answer_id)r   rA   questionrE   s       r   get_answersz"EmployeeIntershipClass.get_answers   st    77==)EFMM(55E(44@
 %' 	
  " 
 *44 r   c                    	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  d      j                  d      t        j                  t        j                  j                  d      t        j                  	      j!                  t        t        j                  t        j
                  k(        j#                  t        j                  |k(        j%                         }|rv|j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  d}d|i}t'        j(                  |      }|S y# t*        $ r}t-        |      }d| cY d }~S d }~ww xY w)Nr   r   r   )r   r#   r   r   r    r!   r"   r   intership_dataz3No se encontraron datos para el campo especificado.Error: )r   r*   r   r   r   r   r    r!   r
   r+   r   r,   r	   r"   r   r#   r-   r/   rB   jsondumpsr6   r7   )r   r   
data_queryrP   resultserialized_resultr=   r>   s           r   getzEmployeeIntershipClass.get   ss   (	-2552992CC2??2:: ,,-C-N-NPZ[aabno%//-00667IJ-;;
 "	"35F5I5IMcMtMt5tu588B>?  $--%/%=%=(2(C(C(//$.$;$;)11!+!5!5","7"7	" %n %)JJv$6!((L 	-FM]O,,	-s   F+F/ /	G8GGGc                    t               }||_        ||_        ||_        ||_        t        j                         |_        | j                  j                  |       	 | j                  j                          |j                  S # t        $ r5}| j                  j                          ddt        |       dcY d }~S d }~ww xY w)Nr   rQ   r   )r   r   r   r    r!   r   nowr   r   addrD   r   r6   rollbackr7   )r   r   r   r    r!   r;   r=   s          r   storezEmployeeIntershipClass.store   s    *,	%5	"!	!-	#	'||~	I	FGGNN<< 	FGG%GCF82DEE	Fs   %B 	C *B;5C ;C c                     t               }||_        ||_        ||_        t	        j
                         |_        | j                  j                  |       | j                  j                          y r   )
r   rA   rK   rL   r   rY   r   r   rZ   rD   )r   rA   rK   rL   rE   s        r   store_answerz#EmployeeIntershipClass.store_answer   sT    79(4%'2$%."&.lln#$%r   )NNNNr   
   )__name__
__module____qualname__r   r   r?   rH   rN   rW   r\   r^    r   r   r   r      s1    7 eAN)-VF$	r   r   )r   rR   fastapir   sqlalchemy.ormr   app.backend.db.modelsr   r   r   r	   
sqlalchemyr
   r   rc   r   r   <module>rh      s&      ! " t t N Nr   