
    vh                      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                   8    e Zd ZdefdZd	dZd Zd Zd Zd Z	y)
EmployeeIntershipClassdbc                     || _         y N)r   )selfr   s     aC:\Users\jesus\OneDrive\Desktop\escritorio\newerp\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(  re | 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                        }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                        }|dkD  r|j+                         }	|	|z   dz
  |z  }
|dk  s||
kD  rddd	S |j-                  |dz
  |z        j/                  |      j1                         }|sdd
d	S |D cg c]]  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   d_ }}|	|
|||dS |j1                         }|D cg c]]  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   d_ }}|S c c}w c c}w # t2        $ r}t5        |      }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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
   c	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&  (*--! (*--*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&#$ (*--% , 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   M+R .:R )R -A"R	R R -A"RR 
R 	S &R;5S ;S c                     | j                   j                  t              j                  t        j                  |k(  t        j
                  |k(        j                         }|sddiS d|j                  iS )Nanswer )r   r*   r   r/   intership_idquestion_idfirst	answer_id)r   rB   questionintership_answers       r   get_answersz"EmployeeIntershipClass.get_answersr   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/   rD   jsondumpsr5   r6   )r   r   
data_queryrJ   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   rK   r   )r   r   r   r    r!   r   nowr   r   addcommitr   r5   rollbackr6   )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   rB   rC   rE   r   rS   r   r   rT   rU   )r   rB   rC   rE   rG   s        r   store_answerz#EmployeeIntershipClass.store_answer   sT    79(4%'2$%."&.lln#$%r   )NNNNr   
   )
__name__
__module____qualname__r   r   r>   rH   rQ   rW   rY    r   r   r   r      s,    7 dAL)-VF$	r   r   )r   rL   fastapir   sqlalchemy.ormr   app.backend.db.modelsr   r   r   r	   
sqlalchemyr
   r   r^   r   r   <module>rc      s&      ! " t t  r   