
    (8i                         d dl Z d dlmZ d dlmZ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mZ d d	lmZ  e j&                  e      Z G d
 d      Z G d d      Z G d d      Z G d d      Z e       Z e       Z e       Z e       Zy)    N)date)OptionalList)selectand_)AsyncSession)OmieContrato)OmieContratoServico)OmieContratoVencimento)OmieContratoDepartamentoc                   J    e Zd Zdddddedee   dee   dee   dee   f
dZy)	OmieContratoCRUDN)cnpjcodigo_contratostatusdbr   r   r   returnc                P  K   t         j                  }t        j                  d|        	 t	        t               }g }|rr|j                  dd      j                  dd      j                  dd      j                         }|j                  t         j                  j                  d| d             |r"|j                  t         j                  |k(         |r"|j                  t         j                  |k(         |r|j                  t        |       }|j                  |       d{   }	t        |	j!                         j#                               }
t        j                  dt%        |
       d	|        |
S 7 Q# t&        $ r }t        j)                  d
| d        d}~ww xY ww)z%Lista contratos com filtros opcionaisz(OmieContratoCRUD.list chamado - Tabela: . /-%NQuery retornou  registros da tabela zErro em OmieContratoCRUD.list: Texc_info)r	   __tablename__loggerinfor   replacestripappendr   liker   r   wherer   executelistscalarsalllen	Exceptionerror)selfr   r   r   r   
table_namestmt
conditions
cnpj_limporesult	contratoses               */srv/www/app-alerta/crud/omie_contratos.pyr'   zOmieContratoCRUD.list   si     "//
>zlKL	,'DJ!\\#r2::3CKKCQSTZZ\
!!,"3"3"8"81ZL9J"KL!!,">">/"QR!!,"5"5"?@zz$
"34::d++FV^^-1134IKK/#i.)99Nzl[\ ,
  	LL:1#>LN	s<   )F&C:E: &E8'AE: 7F&8E: :	F#FF##F&)	__name__
__module____qualname__r   r   strr   r	   r'        r5   r   r      sS    
 #)- $## sm	#
 "## # 
l	#r;   r   c                   2    e Zd Zdddedee   dee   fdZy)OmieContratoServicoCRUDNr   r   r   r   c                  K   t         j                  }t        j                  d|        	 t	        t               }|r"|j                  t         j                  |k(        }|j                  |       d{   }t        |j                         j                               }t        j                  dt        |       d|        |S 7 Q# t        $ r }t        j                  d| d        d}~ww xY ww)u0   Lista serviços de contratos com filtro opcionalz/OmieContratoServicoCRUD.list chamado - Tabela: Nr   r   z&Erro em OmieContratoServicoCRUD.list: Tr   )r
   r   r   r    r   r%   r   r&   r'   r(   r)   r*   r+   r,   )r-   r   r   r.   r/   r2   servicosr4   s           r5   r'   zOmieContratoServicoCRUD.list5   s      )66
Ej\RS	-.Dzz"5"E"E"XY::d++FFNN,0023HKK/#h-8Mj\Z[O ,
  	LLA!EPTLU	<   )C3AC 3C4AC C3C 	C0C++C00C3)	r6   r7   r8   r   r   r9   r   r
   r'   r:   r;   r5   r=   r=   4   s2    
 *.	 "#	
 
!	"r;   r=   c                   2    e Zd Zdddedee   dee   fdZy)OmieContratoDepartamentoCRUDNr>   r   r   r   c                  K   t         j                  }t        j                  d|        	 t	        t               }|r"|j                  t         j                  |k(        }|j                  |       d{   }t        |j                         j                               }t        j                  dt        |       d|        |S 7 Q# t        $ r }t        j                  d| d        d}~ww xY ww)z4Lista departamentos de contratos com filtro opcionalz4OmieContratoDepartamentoCRUD.list chamado - Tabela: Nr   r   z+Erro em OmieContratoDepartamentoCRUD.list: Tr   )r   r   r   r    r   r%   r   r&   r'   r(   r)   r*   r+   r,   )r-   r   r   r.   r/   r2   departamentosr4   s           r5   r'   z!OmieContratoDepartamentoCRUD.listN   s      .;;
J:,WX	23Dzz":"J"Jo"]^::d++F !1!5!5!78MKK/#m*<)==RS]R^_`   ,
  	LLFqcJUYLZ	rA   )	r6   r7   r8   r   r   r9   r   r   r'   r:   r;   r5   rC   rC   M   s2    
 *.	 "#	
 
&	'r;   rC   c                   V    e Zd Zddddddedee   dee   dee   dee   dee   fd	Z	y)
OmieContratoVencimentoCRUDN)r   data_iniciodata_fimr   r   r   rH   rI   r   r   c                  K   t         j                  }t        j                  d|        	 t	        t               }g }|r"|j                  t         j                  |k(         |r"|j                  t         j                  |k\         |r"|j                  t         j                  |k         |r"|j                  t         j                  |k(         |r|j                  t        |       }|j                  |       d{   }	t        |	j                         j                               }
t        j                  dt        |
       d|        |
S 7 Q# t         $ r }t        j#                  d| d        d}~ww xY ww)z4Lista vencimentos de contratos com filtros opcionaisz2OmieContratoVencimentoCRUD.list chamado - Tabela: Nr   r   z)Erro em OmieContratoVencimentoCRUD.list: Tr   )r   r   r   r    r   r#   r   data_vencimentor   r%   r   r&   r'   r(   r)   r*   r+   r,   )r-   r   r   rH   rI   r   r.   r/   r0   r2   vencimentosr4   s               r5   r'   zOmieContratoVencimentoCRUD.listg   sK     ,99
HUV	01DJ!!"8"H"HO"[\!!"8"H"HK"WX!!"8"H"HH"TU!!"8"?"?6"IJzz$
"34::d++Fv~~/3356KKK/#k*:);;PQ[P\]^ ,
  	LLDQCHSWLX	s<   )E:CE :E;AE E:E 	E7E22E77E:)
r6   r7   r8   r   r   r9   r   r   r   r'   r:   r;   r5   rG   rG   f   se    
 *.&*#' $&& "#	&
 d^& 4.& & 
$	%&r;   rG   )loggingdatetimer   typingr   r   
sqlalchemyr   r   sqlalchemy.ext.asyncior   models.omie_contrator	   models.omie_contrato_servicor
   models.omie_contrato_vencimentor   !models.omie_contrato_departamentor   	getLoggerr6   r   r   r=   rC   rG   crud_contratocrud_servicocrud_departamentocrud_vencimentor:   r;   r5   <module>r[      s      ! # / - < B F			8	$$ $L 2 2' 'R !"&(02 ,.r;   