
    ]ch%                     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     L/var/www/intrajisbackend.com/public_html/app/backend/classes/patent_class.py__init__zPatentClass.__init__
   s	        Nc           	       
   	 |dk(  s|dk(  rQg }|"|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 |dk(  rqg }|"|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                  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 y c c}w c c}w 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principal_supervisor	Exceptionstr)r   rol_idrutr   r   r   pager!   filtersr%   r   r   r"   patentserialized_dataeerror_messages                    r   get_allzPatentClass.get_all   s   S	A{fk#/NN;#?#?CS#ST'NN;#7#78#CD#NN;#3#3t#;<NN(($$%((../AB%33 )%'8';';{?[?['[&
 (NN  !8"'++-K#.#?!#C"VKax4+#5*1>STT !<<^(CDJJ>Z^^`D*1oNN %)'* ! %ii,2,C,C$*OO &)/)=)=( '*O '* (3'2(,*8 /  !99;D %)'* ! %ii,2,C,C$*OO &)/)=)=( '*O '* +*1#/NN;#?#?CS#ST'NN;#7#78#CD#NN;#3#3t#;<
NN(($$%((../AB%33 )%'8';';{?[?['[&%::cA& (NN " !8"'++-K#.#?!#C"VKax4+#5*1>STT !<<^(CDJJ>Z^^`D*1oNN %)'* ! %ii,2,C,C$*OO &)/)=)=( '*O '* (3'2(,*8 /  !99;D %)'* ! %ii,2,C,C$*OO &)/)=)=( '*O '* +*Q ='**'*h'**'*  	AFM%-@@	As   E8S* ;:S* 6S* :AS;	S* S* ASS* FS* 2:S* -S* 1AS 2	S* <S* AS%S* S* *	T3TTT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   r;   r   r&   r   r'   r   r)   r(   firstjsondumpsr/   r0   )r   r   
data_queryr<   resultserialized_resultr7   r8   s           r   getzPatentClass.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Patent saved successfullyr   r   r=   )r   r   r   r   r;   r   now
added_dater   addcommitr/   rollbackr0   )r   	form_datar;   r5   r7   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)NrF   zPatent deleted successfullyr   r   r=   )
r   r%   r   r(   r   deleterJ   r/   rK   r0   )r   r   r7   s      r   rO   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   r>   r   r   r   r   r;   rJ   refresh)r   r   rL   support_filer5   s        r   updatezPatentClass.update   s    {+22;>>R3GHNNPC8OPP #,"<"<#,,nn4)FNr   )NNNNNr   
   r   )
__name__
__module____qualname__r   r   r9   rD   rM   rO   rU    r   r   r
   r
   	   s-    7 TAn"-HF$	F r   r
   )r   sqlalchemy.ormr   app.backend.db.modelsr   r   fastapir   r   r?   r
   rZ   r   r   <module>r^      s&     " @  ! " i  i r   