
    gC                     l    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	 G d d      Z
y)	    )datetime)Session)BranchOfficeModelPatentModel)HTTPException)aliasedNc                   :    e Zd ZdefdZd	dZd Zd Zd Zd
dZ	y)PatentClassdbc                     || _         y N)r   )selfr   s     UC:\Users\jesus\OneDrive\Desktop\escritorio\newerp\app\backend\classes\patent_class.py__init__zPatentClass.__init__
   s	        Nc           	         	 g }|"|j                  t        j                  |k(         |"|j                  t        j                  |k(         |"|j                  t        j                  |k(          | j
                  j                  t        j                  t        j                  t        j                  t        j                  j                  d      t        j                        j                  t        t        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!                  |      j#                         }
|
sdddS |
D cg c]<  }|j                  |j                  |j                  |j                  |j                  d> }}||	|||d	S |j#                         }
|
D cg c]<  }|j                  |j                  |j                  |j                  |j                  d> }}|S c c}w c c}w # t$        $ r}t'        |      }d|dcY d }~S d }~ww xY w)
Nbranch_office_idr      errorzInvalid page numberstatusmessagezNo data found)idr   semesteryearbranch_office)total_itemstotal_pagescurrent_pageitems_per_pagedata)appendr   r   r   r   r   queryr   r   labelr   	outerjoinfilterorder_bycountoffsetlimitall	Exceptionstr)r   r   r   r   pager    filtersr#   r   r   r!   patentserialized_dataeerror_messages                  r   get_allzPatentClass.get_all   sl   J	AG+{;;?OOP#{33x?@{//478DGGMM$$  !$$**+=>!// i!#4#7#7;;W;W#Wf
 h  ax#kkm*^;a?NR!8tk1&-:OPP ||TAX$?@FF~VZZ\&-/JJ !%#&  !))(.(?(? &"KK%+%9%9$ #& #& $/#.$(&4+  yy{ !%#&  !))(.(?(? &"KK%+%9%9$ #& #& '&;#&*#&  	AFM%-@@	AsP   E-I 0:I +I /AI0	I :I AII 
I 	J &I;5J ;J 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   r   r   supportpatent_dataz3No se encontraron datos para el campo especificado.Error: )r   r#   r   r   r   r   r6   r   r$   r   r%   r   r'   r&   firstjsondumpsr,   r-   )r   r   
data_queryr7   resultserialized_resultr2   r3   s           r   getzPatentClass.getZ   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Patent saved successfullyr   r   r8   )r   r   r   r   r6   r   now
added_dater   addcommitr,   rollbackr-   )r   	form_datar6   r0   r2   s        r   storezPatentClass.store~   s    "+"<"<#,,nn $LLNF	FGGNN'4OPP 	FGG%GCF82DEE	Fs   :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)NrA   zPatent deleted successfullyr   r   r8   )
r   r#   r   r&   r   deleterE   r,   rF   r-   )r   r   r2   s      r   rJ   zPatentClass.delete   s    	FGGMM+&--knn.BCJJLGGNN'4QRR 	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   r9   r   r   r   r   r6   rE   refresh)r   r   rG   support_filer0   s        r   updatezPatentClass.update   s    {+22;>>R3GHNNPC8OPP #,"<"<#,,nn4)FNr   )NNNr   
   r   )
__name__
__module____qualname__r   r   r4   r?   rH   rJ   rP    r   r   r
   r
   	   s-    7 KAZ"-HF$	F r   r
   )r   sqlalchemy.ormr   app.backend.db.modelsr   r   fastapir   r   r:   r
   rU   r   r   <module>rY      s&     " @  ! " _  _ r   