
    Xh6                     h    d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	mZ d dl
Z
d dlmZ  G d d      Zy)	    )SinisterModelBranchOfficeModelSinisterReviewModel)desc)mysql)datedatetimeN)HTTPExceptionc                   @    e Zd Zd Zd
dZd Zd Zd Zd Zd Z	dd	Z
y)SinisterClassc                     || _         y )N)db)selfr   s     N/var/www/intrajisbackend.com/public_html/app/backend/classes/sinister_class.py__init__zSinisterClass.__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                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  t        j$                  t        j&                  t        j(                  t        j*                  t        j,                  t.        j0                  t        j2                        j5                  t.        t.        j
                  t        j                  k(        j6                  | j9                  t;        t        j<                              }|dkD  r|j?                         }tA        |jB                  jE                  tG        jH                         ddi             ||z   dz
  |z  }tA        |       |dk  s||kD  rdddS |jK                  |dz
  |z        jM                  |      jO                         }|sdd	dS |D 	cg c]  }	i d
|	j
                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                   d|	j"                  d|	j$                  d|	j&                  d|	j(                  |	j*                  |	j,                  |	j0                  |	j2                  d }
}	|||||
dS |jO                         }|D 	cg c]  }	i d
|	j
                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                  d|	j                   d|	j"                  d|	j$                  d|	j&                  d|	j(                  |	j*                  |	j,                  |	j0                  |	j2                  d }
}	|
S c c}	w c c}	w # tP        $ r}tS        |      }d|dcY d }~S d }~ww xY w)Nr   literal_bindsT)dialectcompile_kwargs   errorzInvalid page numberstatusmessagezNo data foundidbranch_office_id	status_idsinister_type_idprotected_area_idregistered_event_idnotified_security_iddenounced_authorities_idsinister_date
client_rutclient_nameclient_last_nameclient_phoneclient_emailbrandmodelyear)patentcolorbranch_officesupport)total_itemstotal_pagescurrent_pageitems_per_pagedata)*appendr   r   r   queryr   r   r    r!   r"   r#   r   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r/   r0   	outerjoinfilterorder_byr   
added_datecountprint	statementcompiler   r   offsetlimitall	Exceptionstr)r   r   pager4   filtersr7   r1   r2   r5   sinisterserialized_dataeerror_messages                r   get_allzSinisterClass.get_all   s8   p	AG+}==AQQRDGGMM  ....//112266''++(())..****####""$$##!//%%+, i!#4#7#7=;Y;Y#Yf34 h]--.5 < ax#kkmeoo--emmoWfhlVm-no*^;a?NRk"!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ0 #'-#(, -$(++$&(A(A$  !3!3$ '(A(A	$
 ()C)C$ *8+G+G$ +H,I,I$ /0Q0Q$ $X%;%;$ !("5"5$ "8#7#7$ '(A(A$ #H$9$9$ #H$9$9$ X^^$  X^^!$" HMM#$$ 'oo%^^%-%;%;'//+$ #( #(2 $/#.$(&4+  yy{0 #'-#(, -$(++$&(A(A$  !3!3$ '(A(A	$
 ()C)C$ *8+G+G$ +H,I,I$ /0Q0Q$ $X%;%;$ !("5"5$ "8#7#7$ '(A(A$ #H$9$9$ #H$9$9$ X^^$  X^^!$" HMM#$$ 'oo%^^%-%;%;'//+$ #( #(0 '&u#(D#(4  	AFM%-@@	AsP   IS1 :S1 S1 DS'.	S1 8S1 DS,#S1 '
S1 1	T:T	TTc                    t               }|j                  |_        |j                  |_        |j                  |_        ||_        t        j                         |_        | j                  j                  |       | j                  j                          |j                  dk(  rd}n5|j                  dk(  rd}n#|j                  dk(  rd}n|j                  dk(  rd}| j                  |j                  d        y )	N   
                     )r   sinister_idsinister_step_type_idreview_descriptionr0   r	   nowr;   r   addcommitupdate)r   	form_datar0   sinister_reviewr   s        r   store_reviewzSinisterClass.store_review   s    -/&/&;&;#090O0O--6-I-I*")%-\\^"O$**a/I,,1I,,1I,,1II))4;r   c                    t               }|j                  |_        |j                  |_        |j                  |_        |j                  |_        |j
                  |_        |j                  |_        d|_        |j                  |_        |j                  |_	        |j                  |_
        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                   |_        |j"                  |_        |j$                  |_        |j&                  |_        ||_        t+        j,                         |_        | j0                  j3                  |       	 | j0                  j5                          dddS # t6        $ r5}| j0                  j9                          ddt;        |       dcY d }~S d }~ww xY w)Nr   successzSinister saved successfullyr   r   Error: )r   r   r   r    r!   r"   r#   r   r$   r&   r%   r'   r(   r)   r*   r+   r,   r-   r.   descriptionr0   r	   rX   r;   r   rY   rZ   rC   rollbackrD   )r   r\   r0   rG   rI   s        r   storezSinisterClass.store   s~    ?$-$>$>!$-$>$>!%.%@%@"'0'D'D$(1(F(F%,5,N,N)!*!8!8(44'22$-$>$>! ) 6 6 ) 6 6""!#**"(44"&llnH	FGGNN'4QRR 	FGG%GCF82DEE	Fs    F 	G(*GGGc                    	 | 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                  t        j                  t        j                   t        j"                  t        j$                  t        j&                  t        j(                  t        j*                  t        j,                  t.        j0                  t        j2                        j5                  t.        t.        j                  t        j                  k(        j7                  t        j                        j9                  t        j                  |k(        j;                         }|roi d|j                  d|j                  d|j
                  d|j                  d|j                  d|j                  d|j                  d|j                  d	|j                  d
t=        |j                  t>        t@        f      r|j                  jC                  d      n|j                  d|j                  d|j                  d|j                  d|j                   d|j"                  d|j$                  d|j&                  |j(                  |j*                  |j,                  |j0                  |j2                  d}d|i}tE        jF                  |      }|S y# tH        $ r}tK        |      }d| cY d }~S d }~ww xY w)Nr   r   r   r   r    r!   r"   r#   rb   r$   z%Y-%m-%d %H:%M:%Sr%   r&   r'   r(   r)   r*   r+   )r,   r-   r.   r/   r0   sinister_data3No se encontraron datos para el campo especificado.ra   )&r   r7   r   r   r   r   r   r    r!   r"   r#   r$   rb   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r/   r0   r8   r:   r9   first
isinstancer   r	   strftimejsondumpsrC   rD   )r   r   
data_queryrf   resultserialized_resultrI   rJ   s           r   getzSinisterClass.get   s<   E	-),,)::)33)::);;)==)>>)BB)77)55)44)55)::)66)66)//)//)..)00)//-;;)11-0 "	"35F5I5I]MkMk5kl !1!12}//2567 : !*--!&
(C(C!  !5!5! '
(C(C	!
 ()E)E! *:+I+I! +J,K,K! /
0S0S! ":#9#9! $_ijt  kC  kC  FJ  LT  EU  `VZ%=%=%F%FGZ%[  \f  \t  \t! !*"7"7! ":#9#9! '
(C(C! #J$;$;! #J$;$;!  Z--!!" Z--#!$ 'OO(//'--%/%=%=)11-!4 $] %)JJv$6!(( M 	-FM]O,,	-s   MM 	M: M5/M:5M:c                 f   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                        j                  t        j                  |k(        j                  t        j
                  |k(        j                         }|rU|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)N)r   rU   rV   rW   r0   rf   rg   ra   )r   r7   r   r   rU   rV   rW   r0   r9   rh   rk   rl   rC   rD   )	r   r   rV   rm   rf   rn   ro   rI   rJ   s	            r   get_sinister_reviewz!SinisterClass.get_sinister_review   s   "	-/22/;;/EE/BB/77 2>>"DE2HHLaab  $--#-#9#9-7-M-M*4*G*G)11! $] %)JJv$6!(( M 	-FM]O,,	-s   D	D 	D0D+%D0+D0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)Nr`   z#Sinister value deleted successfullyr   r   ra   )
r   r7   r   r9   r   deleterZ   rC   rc   rD   )r   r   rI   s      r   rt   zSinisterClass.delete%  s    	FGGMM-(//0@0@B0FGNNPGGNN'4YZZ 	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      |d k7  r"|dk(  r|dk(  rd|_        nd|_        nd|_        n||_        | j                   j                          | j                   j                  |       y )Ni  zPatente no encontrada)status_codedetailr   	   rO   rP   )
r   r7   r   r9   r   rh   r
   r   rZ   refresh)r   r   answerr   sinister_version_idrG   s         r   r[   zSinisterClass.update0  s    77==/66}7G7G27MNTTVC8OPPT>"a'Q;)*H&)*H&%'"!*H!r   )Nr   rN   )NNN)__name__
__module____qualname__r   rK   r^   rd   rp   rr   rt   r[    r   r   r   r      s3    qAf<0FBF-P#-J	F"r   r   )app.backend.db.modelsr   r   r   
sqlalchemyr   sqlalchemy.dialectsr   r	   r   rk   fastapir
   r   r   r   r   <module>r      s&    W W  % #  !y" y"r   