
    g#                     x    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  G d d	      Zy)
    )datetime)Session)BranchOfficeModelDepositModel)HTTPException)aliasedN)casec                   @    e Zd ZdefdZd
dZd Zd Zd Zd Z	dd	Z
y)DepositClassdbc                     || _         y N)r   )selfr   s     VC:\Users\jesus\OneDrive\Desktop\escritorio\newerp\app\backend\classes\deposit_class.py__init__zDepositClass.__init__   s	        Nc                 4   	 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                   
      j#                  t        t        j                  t        j                  k(        j$                  | j'                  |t        j                        }	|dkD  re|	j)                         }
|
|z   dz
  |z  }|dk  s||kD  rdd	d
S |	j+                  |dz
  |z        j-                  |      j/                         }|sddd
S |	j/                         }|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 # t0        $ r}dt3        |      d
cY d }~S d }~ww xY w)N               )else_r   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_amountcollection_date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&   r   r'   	outerjoinfilterorder_bycountoffsetlimitall	Exceptionstr)r   r   r"   sinceuntilpager+   filtersstatus_orderr/   r(   r)   r,   depositserialized_dataes                   r   get_allzDepositClass.get_all   s   S	:G+|<<@PPQ$|55BC |66%?@ |66%?@  ''1,a0''1,a0''1,a0	LDGGMM--,,**&&--++..,,!// i!#4#7#7<;X;X#Xf h * 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   HK6 :K6 K6 (A8K1 K6 /K6 1K6 6	L?LLL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)Nz%d-%m-%Y)r   r   r    r!   r"   r#   r$   r%   r&   r'   r.   supportdeposit_dataz3No se encontraron datos para el campo especificado.Error: )r   r/   r   r   r   r    r!   r"   r#   r$   r%   r&   r   r'   r.   rC   r0   r1   firststrftimejsondumpsr7   r8   )r   r   
data_querypatent_dataresultserialized_resultr@   error_messages           r   getzDepositClass.getd   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   rE   )r   r   r    r!   r"   r#   r$   r%   r&   rC   r   nowr.   r   addcommitr7   rollbackr8   )r   	form_datarC   r>   r@   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   r/   r   r1   r   rF   r   r"   rT   refreshr   r   r>   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)rY   rZ   r[   r\   r   Nr_   ra   s      r   rejectzDepositClass.reject   rc   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)rY   rZ   r[   r\   N)r   r/   PatentModelr1   r   rF   r   r   semesteryearrC   rT   r`   )r   r   rV   support_filepatents        r   updatezDepositClass.update   s     {+22;>>R3GHNNPC8OPP #,"<"<#,,nn4)FNr   )NNNNr   
   r   )__name__
__module____qualname__r   r   rA   rO   rW   rb   re   rl    r   r   r   r   
   s0    7 T:l4-lF6!! r   r   )r   sqlalchemy.ormr   app.backend.db.modelsr   r   fastapir   r   rH   
sqlalchemyr	   r   rq   r   r   <module>rv      s)     " A  ! "  W  W r   