
    5lh-                         d dl m Z  d dlmZ d dlmZmZ d dl m Z  d dlmZ d dlmZ d dl	Z	d dl
mZ d dlmZmZ d d	l
mZ  G d
 d      Zy)    )datetime)Session)BranchOfficeModelDepositModel)HTTPException)aliasedN)case)r   r   )funcc                   F    e Zd ZdefdZddZd Zd Zd Zd Z	dd	Z
d
 Zy)DepositClassdbc                     || _         y N)r   )selfr   s     M/var/www/intrajisbackend.com/public_html/app/backend/classes/deposit_class.py__init__zDepositClass.__init__   s	        Nc	                 "   	 |dk(  s|dk(  rg }	|"|	j                  t        j                  |k(         |"|	j                  t        j                  |k(         |"|	j                  t        j                  |k\         |"|	j                  t        j                  |k         t        t        j                  dk(  dft        j                  dk(  dft        j                  dk(  dfd      }
 | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   d      j#                  d      t$        j&                  
      j)                  t$        t$        j                  t        j                  k(        j*                  |	 j-                  |
t        j                  j/                               }n9g }	|"|	j                  t        j                  |k(         |"|	j                  t        j                  |k(         |"|	j                  t        j                  |k\         |"|	j                  t        j                  |k         t        t        j                  dk(  dft        j                  dk(  dft        j                  dk(  dfd      }
 | j                  j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   d      j#                  d      t$        j&                  
      j)                  t$        t$        j                  t        j                  k(        j+                  t$        j0                  |k(        j*                  |	 j-                  |
t        j                  j/                               }|d	kD  re|j3                         }||z   dz
  |z  }|dk  s||kD  rd
ddS |j5                  |dz
  |z        j7                  |      j9                         }|sd
ddS |j9                         }|D cg c]s  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                   |j&                  d
u }}|d	kD  r|||dS |S c c}w # t:        $ r}d
t=        |      dcY d }~S d }~ww xY w)N               )else_%d-%m-%Ycollection_dater   errorzInvalid page numberstatusmessagezNo data found)
idbranch_office_idpayment_type_idcollection_id	status_iddeposited_amountpayment_numbercollection_amountr   branch_office)total_itemstotal_pagescurrent_pageitems_per_pagedata)appendr   r"   r%   
added_dater	   r   queryr!   r#   r$   r&   r'   r(   r
   date_formatr   labelr   r)   	outerjoinfilterorder_bydescprincipal_supervisorcountoffsetlimitall	Exceptionstr)r   rol_idrutr"   r%   sinceuntilpager-   filtersstatus_orderr1   r*   r+   r.   depositserialized_dataes                     r   get_allzDepositClass.get_all   s   ~	:{fk#/NN<#@#@DT#TU(NN<#9#9Y#FG$NN<#:#:e#CD$NN<#:#:e#CD  $!++q0!4!++q0!4!++q0!4	  OO 11 00 .. ** 11 // 22$$\%A%A:NTTUfg%33 )%'8';';|?\?\'\& (  OO((* * #/NN<#@#@DT#TU(NN<#9#9Y#FG$NN<#:#:e#CD$NN<#:#:e#CD  $!++q0!4!++q0!4!++q0!4	  OO 11 00 .. ** 11 // 22$$\%A%A:NTTUfg%33 )%'8';';|?\?\'\&%::cA&!" (  OO((*# . ax#kkm*^;a?NR!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ yy{ "#  jj$+$<$<#*#:#:!(!6!6$..$+$<$<")"8"8%,%>%>#*#:#:!(!6!6  #O # ax#.#.$(&4+  '&-#0  	:%#a&99	:sC   RU- :U- U- A8U(U- &U- (U- -	V6V	V	Vc                 4   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        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                  |k(        j%                         }|r|j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  j'                  d      |j                  |j                  j'                  d      |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)   r0   supportdeposit_dataz3No se encontraron datos para el campo especificado.Error: )r   r1   r   r!   r"   r#   r$   r%   r&   r'   r(   r   r   r)   r0   rK   r4   r5   firststrftimejsondumpsr=   r>   )r   r!   
data_querypatent_dataresultserialized_resultrH   error_messages           r   getzDepositClass.get   s   3	-$$55$44$22$..$55$33$66$44)77$//$,, "	"35F5I5I\MjMj5jk|"45! $  %--(2(C(C'1'A'A%/%=%=!+!5!5(2(C(C&0&?&?)3)E)E'1'A'A'J'J:'V%/%=%=","7"7"@"@"L)11" #K
 %)JJv$6!(( M 	-FM]O,,	-s   G0G4 4	H=HHHc                 J   t               }|j                  |_        |j                  |_        |j                  |_        d|_        |j
                  |_        |j                  |_        |j                  |_        |j                  |_        ||_	        t        j                         |_        | j                  j                  |       	 | j                  j                          dddS # t         $ r5}| j                  j#                          ddt%        |       dcY d }~S d }~ww xY w)Nr   successzDeposit saved successfullyr   r   rM   )r   r"   r#   r$   r%   r&   r'   r(   r   rK   r   nowr0   r   addcommitr=   rollbackr>   )r   	form_datarK   rF   rH   s        r   storezDepositClass.store   s    . $-#=#= "+";"; ) 7 7#,#=#= !*!9!9$-$?$?!"+";";!%\\^ 	G	FGGNN'4PQQ 	FGG%GCF82DEE	Fs   C$ $	D"-*DD"D"c                 4   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      d|_        | j                   j                          | j                   j                  |       y)H
        Actualiza los datos de la patente en la base de datos.
          Patente no encontradastatus_codedetailr   N
r   r1   r   r5   r!   rN   r   r%   r\   refreshr   r!   rF   s      r   acceptzDepositClass.accept   l     ''---44\__5JKQQSC8OPP  r   c                 4   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      d|_        | j                   j                          | j                   j                  |       y)ra   rb   rc   rd   r   Nrg   ri   s      r   rejectzDepositClass.reject   rk   r   c                    | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |j                  |_        |j                  |_        |j                  |_	        |dk7  r||_
        | j                   j                          | j                   j                  |       y)ra   rb   rc   rd   N)r   r1   PatentModelr5   r!   rN   r   r"   semesteryearrK   r\   rh   )r   r!   r^   support_filepatents        r   updatezDepositClass.update   s     {+22;>>R3GHNNPC8OPP #,"<"<#,,nn4)FNr   c                 ^   	 | j                   j                  t              j                  t        j                  |k(        j                          | j                   j                          dddS # t        $ r5}| j                   j                          ddt        |       dcY d }~S d }~ww xY w)NrY   zDeposit deleted successfullyr   r   rM   )
r   r1   r   r5   r!   deleter\   r=   r]   r>   )r   r!   rH   s      r   rv   zDepositClass.delete  s    	FGGMM,'..|"/DELLNGGNN'4RSS 	FGG%GCF82DEE	Fs   A+A. .	B,7*B'!B,'B,)NNNNNNr   
   r   )__name__
__module____qualname__r   r   rI   rW   r_   rj   rm   rt   rv    r   r   r   r      s6    7 :B4-lF6!! $Fr   r   )r   sqlalchemy.ormr   app.backend.db.modelsr   r   fastapir   r   rP   
sqlalchemyr	   r
   r   r{   r   r   <module>r      s1     " A  ! "   A LF LFr   