
    Xh              
          d dl mZmZmZmZmZ d dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d dlZd dlZ ed
dg      Zej-                  d       ee	      fdedefd       Zej-                  d       eej0                         ed       ee	      fdededefd       Zej5                  d       ee	      fdedefd       Zej;                  d       ee	      fdedefd       Zej5                  d       ee	      fdedefd       Zej5                  d       ee	      fdedefd       Zej?                  d        eej0                         ed       ee	      fdedededefd!       Z y)"    )	APIRouterDependsFile
UploadFileHTTPException)datetimeN)get_db)Session)	FileClass)ContractClass)Contract)ContractListz
/contracts	contracts)prefixtags/contractdbc                 ~    t        |      j                  | j                  | j                  | j                        }d|iS Nmessage)r   get_allrutbranch_office_idpage)r   r   datas      I/var/www/intrajisbackend.com/public_html/app/backend/routers/contracts.pyindexr      s4    $$X\\83L3Lhmm\Dt    z/store.	form_datasupportc                    	 t        j                         j                  d      }t        j                         j
                  d d }d|j                  v r|j                  j                  d      d   nd}d}|r
| d| d| n| d| }| d| }t        |      j                  ||      }	t        |      j                  | |       d|	iS # t        $ r}
t        d	d
t        |
             d }
~
ww xY w)N%Y_%m_%d_%H_%M_%S   . r   _r     zError al procesar: status_codedetail)r   nowstrftimeuuiduuid4hexfilenamesplitr   uploadr   store	Exceptionr   str)r    r!   r   	timestamp	unique_idfile_extensionfile_category_nameunique_filenameremote_pathr   es              r   r5   r5      s   TLLN++,?@	JJL$$Ra(	<?7CSCS<S))//4R8Y['IWYKq1^4DE`i_jjklukv]w ,,Ao->? B-&&w< 	b	;77## T6I#a&4RSSTs   CC
 
	C1C,,C1z/contract/{contract_id}contract_idc                 >    t        |      j                  |       }d|iS r   )r   download)r?   r   r   s      r   rA   rA   4   s"    %%k2Dtr   z/delete/{id}idc                     t        |      j                  |       }t        j                  |      }|d   d   }| }t	        |      j                  |      }|dk(  rt        |      j                  |        d|iS )Ncontract_datar!   successr   )r   getjsonloadsr   delete)rB   r   rD   	file_namer=   r   s         r   rI   rI   :   sy    !"%))"-MJJ}-Mo.y9I KK m"";/G)b  $wr   z/download/{id}c                 R   	 t        |      j                  |       }t        j                  |      }|d   d   }| }t	        |      j                  |      }t        j                  |      j                  d      }||dS # t        $ r}t        ddt        |             d }~ww xY w)NrD   r!   zutf-8)rJ   	file_datar)   zError al descargar archivo: r*   )r   rF   rG   rH   r   rA   base64	b64encodedecoder6   r   r7   )rB   r   rD   rJ   r=   file_contentsencoded_filer>   s           r   rA   rA   O   s    ]%b)--b1

=1!/29=	 # ""..{; ''6==gF #%
 	
  ]6RSVWXSYRZ4[\\]s   A<A? ?	B&B!!B&z
/edit/{id}c                     	 t        |      j                  |       }|st        dd      d|iS # t        $ r}t        ddt	        |             d }~ww xY w)N  Contrato no encontrador*   r   r)   zError al obtener el contrato: )r   rF   r   r6   r7   )rB   r   rD   r>   s       r   editrU   i   sl    _%b)--b1 C8PQQ =)) _6TUXYZU[T\4]^^_s   ,/ 	AAAz/update/{id}c                    	 t        |      j                  |       }|st        dd      t        j                  |      }|d   d   }|r| nd }|}|rt        j                         j                  d      }t        j                         j                  d d }	d|j                  v r|j                  j                  d      d	   nd
}
|
r
| d|	 d|
 n| d|	 }| }t        |      j                  ||       |rt        |      j                  |       t        |      j!                  | ||       ddiS # t"        $ r}t        ddt%        |             d }~ww xY w)NrS   rT   r*   rD   r!   r#   r$   r%   r&   r'   r(   r   z!Contrato actualizado exitosamenter)   z!Error al actualizar el contrato: )r   rF   r   rG   rH   r   r-   r.   r/   r0   r1   r2   r3   r   r4   rI   updater6   r7   )rB   r    r!   r   rD   previous_file_nameremote_path_previousnew_file_namer8   r9   r:   remote_path_newr>   s                r   rW   rW   y   ss   "b%b)--b1C8PQQ

=1 +?;IF:L"4!5RV* //0CDI

((!,I@CwGWGW@WW--33C8<]_NKYyk9+Q~6FGbkallmnwmx_yM!.O bM  /: $"$$%9: 	b  Y>>?? b6WX[\]X^W_4`aabs   D/D2 2	E;EE)!fastapir   r   r   r   r   r   r/   app.backend.db.databaser	   sqlalchemy.ormr
   app.backend.classes.file_classr   "app.backend.classes.contract_classr   app.backend.schemasr   r   rG   rM   r   postr   as_formr5   rF   intrA   rI   rU   putrW    r   r   <module>rg      s   G G   * " 4 < ( ,  
	
 07 L g  
 !("2"23s)&/TTT 	T T6 (),3FO  '  *
 .!!(  c  w   " (  $+FO ] ]' ] !]2 | ' _S _g _ _ ~ "("2"23t*&/	(b(b(b (b 		(b (br   