
    !Jh                      D    d dl mZmZmZ d dlmZ d dlmZ  G d d      Zy)    )EmployeeModelCustomerModel	UserModel)CustomerClass)datetimec                   4    e Zd Zd ZddZddZd Zd Zd Zy)	EmployeeClassc                 2    || _         t        |      | _        y )N)dbr   customer)selfr   s     kC:\Users\jesus\OneDrive\Desktop\escritorio\vitrificados_chile_backend\app\backend\classes\employee_class.py__init__zEmployeeClass.__init__   s    %b)    c                    	 | j                   j                  t        j                  t        j
                  t        j                        j                  t        t        j                  t        j                  k(  d      j                  t        j
                        }|dkD  r|j                         }||z   dz
  }|dk  s||kD  rdddS |j                  |dz
  |z        j                  |      j                         }|sdddS |D cg c]o  }|j                  |j                  |j                  |j                   r|j                   j#                  d	      nd |j
                  |j                  |j$                  d
q }}|||||dS |j                         }|D cg c]o  }|j                  |j                  |j                  |j                   r|j                   j#                  d	      nd |j
                  |j                  |j$                  d
q }}|S c c}w c c}w # t&        $ r}	t)        |	      }
d|
dcY d }	~	S d }	~	ww xY w)NTisouterr      errorInvalid page numberstatusmessageNo data found%Y-%m-%d %H:%M:%Sidsince_visit_date_timeuntil_visit_date_time
added_date	full_namephone	status_idtotal_itemstotal_pagescurrent_pageitems_per_pagedata)r   queryr   r   r   r!   r"   joinuser_idorder_bycountoffsetlimitallr   r   r    strftimer#   	Exceptionstr)r   pager(   r*   r%   r&   r)   visitserialized_dataeerror_messages              r   get_allzEmployeeClass.get_all
   s"   :	A!$$''OO
 i1F1F!FPTU)--.  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% $/#.$(&4+  yy{  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% '&?#%*#%  	AFM%-@@	AsP   CH :H H A4H:	H H A4HH 
H 	H=#H82H=8H=c                    	 t        |       g }|j                  rJ|j                  t        j                  j	                  d|j                  j                          d             |j                  r,|j                  t        j                  |j                  k(         |j                  r<|j                  t        j                  j	                  d|j                   d              | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                         j#                  t        t        j$                  t        j                  k(  d      j&                  | j)                  t        j                        }|dkD  r|j+                         }||z   d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]o  }	|	j                  |	j                  |	j                  |	j                  r|	j                  j3                  d
      nd |	j                  |	j                  |	j                   dq }
}	|||||
dS |j1                         }|D 	cg c]o  }	|	j                  |	j                  |	j                  |	j                  r|	j                  j3                  d
      nd |	j                  |	j                  |	j                   dq }
}	|
S c c}	w c c}	w # t4        $ r}t7        |      }d|dcY d }~S d }~ww xY w)N%Tr   r   r   r   r   r   r   r   r   r$   )printr!   appendr   ilikelowerr"   addressemailr   r*   
VisitModelr   r   r   r    r#   r+   customer_idfilterr-   r.   r/   r0   r1   r2   r3   r4   )r   search_inputsr5   r(   filtersr*   r%   r&   r)   r6   r7   r8   r9   s                r   searchzEmployeeClass.searchG   s   H	A- G&&}66<<qAXAXA^A^A`@aab=cde""}22m6I6IIJ$$}22881]=R=R<SST9UVW
MM4444))!++!''(( mZ%;%;}?O?O%OY]^
" *--(  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% $/#.$(&4+  yy{  $#%   ((-2-H-H-2-H-HTYTdTd%"2"2";";<O"Pjn!&"[[!&$ #% #% '&?#%*#%  	AFM%-@@	AsP   G0M 3:M .M 2A4L<&	M 0M A4M8M <
M 	M)M$M)$M)c                 ,   	 | j                   j                  |j                  |      }|j                  d      dk7  r|S |d   }t	        ||j
                  |j                  dt        j                               }| j                  j                  |       | j                  j                          | j                  j                  |       d|j                  dS # t        $ r2}| j                  j                          dt        |      d	cY d }~S d }~ww xY w)
Nr   z!Cliente actualizado exitosamente.rD      )rD   r   r   r#   r    z5Visita registrada y cliente actualizado exitosamente.r   visit_idr   r   )r   updater   getrC   r   r   r   utcnowr   addcommitrefreshr3   rollbackr4   )r   visit_inputscustomer_update_resultrD   	new_visitr8   s         r   storezEmployeeClass.store   s    	:%)]]%9%9,//<%X"%))(37ZZ--0?K"'&2&H&H&2&H&H#??,I GGKK	"GGNNGGOOI& R%LL 
  	:GG%#a&99	:s#   ;C BC 	D!'DDDc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS d|_        t        j                         |_	        | j                   j                          | j                   j                  |       t        |j                  d      }| j                   j                  |       | j                   j                          | j                   j                  |       d|j                  dS # t        $ r2}| j                   j!                          dt#        |      dcY d }~S d }~ww xY w)	Nr   zVisita no encontrada.r         )rD   r#   zVisita aceptada exitosamente.rK   )r   r*   rC   rE   r   firstr#   r   rO   updated_daterQ   rR   ConstructionSiteModelrD   rP   r3   rS   r4   )r   r   r6   new_construction_siter8   s        r   acceptzEmployeeClass.accept   s   	:GGMM*-44Z]]b5HIOOQE%6 
  EO!)!2EGGNNGGOOE"$9!--%!
 GGKK-.GGNNGGOO12 :144 
  	:GG%#a&99	:s%   AD! C
D! !	E*'EEE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)Nsuccessr   zError: )
r   r*   rC   rE   r   r[   deleterQ   r3   r4   )r   r   r)   r8   r9   s        r   rb   zEmployeeClass.delete   s    
	-77==,33JMMR4GHNNPDt$  & 	-FM]O,,	-s   BB 	B+B& B+&B+N)r   
   )	__name__
__module____qualname__r   r:   rH   rW   r_   rb    r   r   r	   r	      s&    *;AzIAV:< :F-r   r	   N)app.backend.db.modelsr   r   r   "app.backend.classes.customer_classr   r   r	   rg   r   r   <module>rj      s    I I < Y- Y-r   