
    Xh              
          d dl mZ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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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
UploadFileFileHTTPException)get_db)Session)	FileClass)TaxClass)Tax)TaxList)datetimeNz/taxesTaxes)prefixtags/taxdbc                 h    t        |      j                  | j                  | j                        }d|iS Nmessage)r   get_allperiodpage)r   r   datas      E/var/www/intrajisbackend.com/public_html/app/backend/routers/taxes.pyindexr      s+    B<

CHH5D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   r4   r4      s   TLLN++,?@	JJL$$Ra(	<?7CSCS<S))//4R8Y["IWYKq1^4DE`i_jjklukv]w ,,Ao->? B-&&w< 	9k27## T6I#a&4RSSTs   CC
 
	C1C,,C1z/tax/{tax_id}tax_idc                 >    t        |      j                  |       }d|iS r   )r   download)r>   r   r   s      r   r@   r@   4   s!    B<  (Dtr   z/delete/{id}idc                     t        |      j                  |       }t        j                  |      }|d   d   }| }t	        |      j                  |      }|dk(  rt        |      j                  |        d|iS )Ntax_datar    successr   )r   getjsonloadsr
   delete)rA   r   rC   	file_namer<   r   s         r   rH   rH   :   sw    |#Hzz(#H$Y/I KK m"";/G)Bwr   z/download/{id}c                    t        |      j                  |       }t        j                  |      }|d   d   }t	        |       | }t        |      j                  |      }t        j                  |      j                  d      }||dS )NrC   r    zutf-8)rI   	file_data)
r   rE   rF   rG   printr
   r@   base64	b64encodedecode)rA   r   rC   rI   r<   file_contentsencoded_files          r   r@   r@   N   s     |#Hzz(#H$Y/I	) KK bM**;7M ##M299'BL ! r   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  zContrato no encontrador)   r   r(   zError al obtener el iva: )r   rE   r   r5   r6   )rA   r   rC   r=   s       r   editrT   f   sj    ZB<##B' C8PQQ 8$$ Z6OPSTUPVx4XYYZ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   zIva no encontrador)   rC   r    r"   r#   r$   r%   r&   r'   r   zIva actualizado exitosamenter(   zError al actualizar el iva: )r   rE   r   rF   rG   r   r,   r-   r.   r/   r0   r1   r2   r
   r3   rH   updater5   r6   )rA   r   r    r   rC   previous_file_nameremote_path_previousnew_file_namer7   r8   r9   remote_path_newr=   s                r   rV   rV   v   sq   "]B<##B'C8KLL::h' &j1)<:L"4!5RV* //0CDI

((!,I@CwGWGW@WW--33C8<]_NKYyk9+Q~6FGbkallmnwmx_yM!.O bM  /: $"$$%9: 	B	=99:: ]6RSVWXSYRZ4[\\]s   D/D2 2	E;EE)!fastapir   r   r   r   r   app.backend.db.databaser   sqlalchemy.ormr	   app.backend.classes.file_classr
   app.backend.classes.tax_classr   app.backend.schemasr   r   r   r.   rF   rM   taxespostr   as_formr4   rE   intr@   rH   rT   putrV    r   r   <module>rg      s   G G * " 4 2 # '    
	
 C&-fo w G  
 HS[[)t*&/TTT 	T T6 ?'.v C W  
 n!(  c  w    & $+FO  '  . < ' ZS Zg Z Z > S[[)t*&/	(](](] (] 		(] (]r   