
    XhE                         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  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PatentModelCashReserveModelCashierModel)HTTPException)aliasedN)funcc                   :    e Zd ZdefdZd	dZd Zd Zd Zd
dZ	y)CashReserveClassdbc                     || _         y N)r   )selfr   s     R/var/www/intrajisbackend.com/public_html/app/backend/classes/cash_reserve_class.py__init__zCashReserveClass.__init__   s	        Nc                    	 g }|"|j                  t        j                  |k(          | j                  j	                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  d      j                  d            j!                  t        t        j
                  t        j                  k(        j!                  t        t        j
                  t        j                  k(        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+                  |      j-                         }|sdddS |D 	cg c]R  }	|	j
                  |	j                  |	j                  |	j                  |	j                  |	j                  |	j                  d	T }
}	|||||
d
S |j-                         }|D 	cg c]R  }	|	j
                  |	j                  |	j                  |	j                  |	j                  |	j                  |	j                  d	T }
}	|
S c c}	w c c}	w # t.        $ r}t1        |      }d|dcY d }~S d }~ww xY w)Nz%d-%m-%Y
added_dater      errorzInvalid page numberstatusmessagezNo data found)idbranch_office_id
cashier_idcashieramountbranch_officer   )total_itemstotal_pagescurrent_pageitems_per_pagedata)appendr   r   r   queryr   r   r   r   r    r   r!   r   date_formatr   label	outerjoinfilterorder_bycountoffsetlimitall	Exceptionstr)r   r   pager%   filtersr(   r"   r#   r&   cash_reserveserialized_dataeerror_messages                r   get_allzCashReserveClass.get_all   s   J	AG+/@@DTTUDGGMM ## 11 ++$$ ''!//  !1!<!<jIOOP\] i!#4#7#7;K;\;\#\iloo1A1L1LLf h ## $ ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ '+#, # '//(4(E(E"."9"9+33*11%1%?%?"."9"9$ #, #, $/#.$(&4+  yy{ '+#, # '//(4(E(E"."9"9+33*11%1%?%?"."9"9$ #, #, '&C#,.#,  	AFM%-@@	AsP   FJ# 
:J# J# 	AJ 	J# *J# >AJJ# 
J# #	K,K;KKc           	         	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                  j                  d      t        j                        j                  t        t        j                  t        j                  k(        j                  t        j                        j                  t        j                  |k(        j                         }|r`|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   semesteryearsupportpatent_dataz3No se encontraron datos para el campo especificado.Error: )r   r(   r   r   r<   r=   r>   r   r*   r!   r+   r   r-   r,   firstjsondumpsr2   r3   )r   r   
data_queryr?   resultserialized_resultr8   r9   s           r   getzCashReserveClass.get[   sZ   !	-{~~{7K7K[M]M]_j_r_r  uF  uI  uI  uO  uO  Pb  uc  ev  eD  eD  E!	"35F5I5I[MiMi5ij 0{~~34	   %--%/%=%=(2(C(C * 3 3&OO)11 ";
 %)JJv$6!(( M 	-FM]O,,	-s   E"E& &	F	/F>F	F	c                    t               }|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)NsuccesszCash reserve saved successfullyr   r   r@   )r   r   r   r    r   nowr   r   addcommitr2   rollbackr3   )r   	form_datar6   r8   s       r   storezCashReserveClass.store   s    ')(1(B(B%"+"6"6'.."*,,.L!	FGGNN'4UVV 	FGG%GCF82DEE	Fs   3B 	C*CCC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)NrI   z!Cash reserve deleted successfullyr   r   r@   )
r   r(   r   r,   r   deleterL   r2   rM   r3   )r   r   r8   s      r   rQ   zCashReserveClass.delete   s    	FGGMM*+223C3F3F"3LMTTVGGNN'4WXX 	FGG%GCF82DEE	Fs   A+A. .	B,7*B'!B,'B,c                    | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |j                  |_        |j                  |_        |j                  |_	        |d k7  r||_
        | j                   j                          | j                   j                  |       y )Ni  zPatente no encontrada)status_codedetail)r   r(   r   r,   r   rA   r	   r   r<   r=   r>   rL   refresh)r   r   rN   support_filepatents        r   updatezCashReserveClass.update   s    {+22;>>R3GHNNPC8OPP #,"<"<#,,nn4)FNr   )Nr   
   r   )
__name__
__module____qualname__r   r   r:   rG   rO   rQ   rX    r   r   r   r   
   s-    7 KAZ"-HF 	F r   r   )r   sqlalchemy.ormr   app.backend.db.modelsr   r   r   r   fastapir	   r
   rB   
sqlalchemyr   r   r]   r   r   <module>rb      s,     " ` `  ! "  ]  ] r   