
    (8i8                         d dl 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mZmZmZ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 e       Z e       Z e       Zy)    N)date)OptionalList)AsyncSession)OmieCliente)selectand_or_funccase)OmieContaReceber)OmieContaReceberBoletoc                   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)
OmieContaReceberCRUDN)cnpjdata_iniciodata_fimstatusdbr   r   r   r   returnc                  K   t         j                  }t        j                  d|        	 t        j	                  d       t        t               }g }|rt        j	                  d|        |j                  dd      j                  dd      j                  dd      j                         }	|j                  t         j                  j                  d|	 d             |r:t        j	                  d	|        |j                  t         j                  |k\         |r:t        j	                  d
|        |j                  t         j                  |k         |r:t        j	                  d|        |j                  t         j                  |k(         |r|j                  t        |       }t        j                  d| d       |j                  |       d{   }
t        j	                  d       t!        |
j#                         j%                               }t        j                  dt'        |       d|        |S 7 f# t(        $ r.}t+        |      }t        j-                  d| d| d        d}~ww xY ww)z,Lista contas a receber com filtros opcionaisz,OmieContaReceberCRUD.list chamado - Tabela: Construindo query SELECT...Aplicando filtro por CNPJ: . /-%Aplicando filtro data_inicio: Aplicando filtro data_fim: Aplicando filtro status: Executando query na tabela ...NQuery executada com sucessoQuery retornou  registros da tabela z/Erro em OmieContaReceberCRUD.list ao consultar : Texc_info)r   __tablename__loggerinfodebugr   replacestripappendr   likedata_vencimentor   wherer	   executelistscalarsalllen	Exceptionstrerror)selfr   r   r   r   r   
table_namestmt
conditions
cnpj_limporesultcontase	error_msgs                 //srv/www/app-alerta/crud/omie_contas_receber.pyr5   zOmieContaReceberCRUD.list   s     &33
B:,OP$	LL67*+DJ:4&AB!\\#r2::3CKKCQSTZZ\
!!"2"7"7"<"<qA=N"OP=k]KL!!"2"B"Bk"QR:8*EF!!"2"B"Bh"NO8AB!!"2"9"9V"CDzz$
"34KK5j\EF::d++FLL67&..*..01FKK/#f+6KJ<XYM ,  	AILLJ:,VXYZX[\gkLl	s<   )I;F,I H?A%I >I;?I 	I8
)I33I88I;)
__name__
__module____qualname__r   r   r:   r   r   r   r5        rE   r   r      se    
 #&*#' $00 sm	0
 d^0 4.0 0 
	0rJ   r   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)
OmieContaReceberBoletoCRUDN)codigo_lancamentor   r   r   r   rM   r   r   r   r   c                Z  K   t         j                  }t        j                  d|        	 t        j	                  d       t        t               }g }|r:t        j	                  d|        |j                  t         j                  |k(         |r:t        j	                  d|        |j                  t         j                  |k\         |r:t        j	                  d|        |j                  t         j                  |k         |r:t        j	                  d|        |j                  t         j                  |k(         |r|j                  t        |       }t        j                  d| d       |j                  |       d	{   }	t        j	                  d
       t        |	j                         j                               }
t        j                  dt!        |
       d|        |
S 7 f# t"        $ r.}t%        |      }t        j'                  d| d| d        d	}~ww xY ww)z#Lista boletos com filtros opcionaisz2OmieContaReceberBoletoCRUD.list chamado - Tabela: r   z(Aplicando filtro por codigo_lancamento: r   r    r!   r"   r#   Nr$   r%   r&   z5Erro em OmieContaReceberBoletoCRUD.list ao consultar r'   Tr(   )r   r*   r+   r,   r-   r   r0   rM   r2   r   r3   r	   r4   r5   r6   r7   r8   r9   r:   r;   )r<   r   rM   r   r   r   r=   r>   r?   rA   boletosrC   rD   s                rE   r5   zOmieContaReceberBoletoCRUD.listA   s     ,99
HUV#	LL6701DJ GHYGZ[\!!"8"J"JN_"_`=k]KL!!"8"H"HK"WX:8*EF!!"8"H"HH"TU8AB!!"8"?"?6"IJzz$
"34KK5j\EF::d++FLL676>>+//12GKK/#g,7LZLYZN ,  	AILLPQ[P\\^_`^abmqLr	s<   )H+EG1 G/	A%G1 .H+/G1 1	H(:)H##H((H+)
rF   rG   rH   r   r   r:   r   r   r   r5   rI   rJ   rE   rL   rL   @   se    
 ,0&*#' $// $C=	/
 d^/ 4./ / 
$	%/rJ   rL   c                   t    e Zd Zdddddddddedee   dee   dee   dee   dee   d	ee   d
ee   defdZ	y)OmieBoletoCompletoCRUDN)r   data_vencimento_iniciodata_vencimento_fimdata_emissao_boleto_iniciodata_emissao_boleto_fimstatus_titulopagor   r   rR   rS   rT   rU   rV   rW   r   c                F  K   t         j                  d       	 t        t        j                  j                  d      t        j                  ft        j                  t        j                        j                  g d      t        j                  fd      j                  d      }	t        t        j                  j                  d      t        j                  ft        t        j                  j                  d      t        j                  t        j                        j                  g d            t        j                  t        j                   t        j"                        fd      j                  d      }
t%        t&        j(                  t&        j*                  j                  d	      t&        j,                  j                  d
      t&        j.                  j                  d      t&        j0                  j                  d      t&        j2                  j                  d      t&        j4                  j                  d      t        j6                  t        j"                  t        j8                  t        j                  t        j:                  t        j                  t        j<                  |
|	t        j                  j                  d      t        j                  j                  d      t>        j@                  j                  d      t>        jB                  j                  d      t>        jD                  j                  d      t>        jF                  j                  d            jI                  t        t&        j(                  t        j(                  k(        jK                  t>        t        j<                  t>        j@                  k(        }g }|rvt         jM                  d|        |jO                  dd      jO                  dd      jO                  dd      jQ                         }t         jM                  d| d       t        jR                  t        jN                  t        jN                  t        jN                  t        j6                  dd      dd      dd            }t        jR                  t        jN                  t        jN                  t        jN                  t>        jB                  dd      dd      dd            }|jU                  tW        |jY                  d| d      |jY                  d| d                   |r:t         jM                  d|        |jU                  t        j"                  |k\         |r:t         jM                  d|        |jU                  t        j"                  |k         |r:t         jM                  d|        |jU                  t&        j*                  |k\         |r:t         jM                  d |        |jU                  t&        j*                  |k         |r:t         jM                  d!|        |jU                  t        j                  |k(         |t         jM                  d"|        |r|jU                  tW        t        j                  j                  d      t        t        j                  j                  d      t        j                  j                  d      t        j                  t        j                  k\        t        j                  t        j                        j                  g d                   n0|jU                  t        t        j                  j                  d      tW        t        j                  j                  d      t        j                  dk(  t        t        j                  j                  d      t        j                  j                  d      t        j                  t        j                  k              tW        t        j                  j                  d      t        j                  t        j                        j                  g d                          |r|j[                  t        |       }t         j                  d#       |j]                  |       d{   }t         jM                  d$       t_        |ja                               }t         j                  d%tc        |       d&       |r(t         j                  d'| d( d)tc        |       d&       |r~tc        |      dkD  rp|d   }t         jM                  d*te        |d+d,       d-te        |d.d,       d/te        |dd,       d0te        |dd,       d1te        |dd,       d2te        |dd,              |S |rt         jg                  d3| d( d4       |S 7 # th        $ r }t         jk                  d5| d67        d}~ww xY ww)8zYLista boletos com JOIN na tabela de contas a receber para obter CNPJ e data de vencimentozZOmieBoletoCompletoCRUD.list_completo chamado - Fazendo JOIN entre boleto e conta a receberN)RECEBIDOPAGOBAIXADO	LIQUIDADOzRECEBIDO PARCIALMENTEzPAGO PARCIALMENTEr   )else_
valor_pago)rY   rZ   r[   r\   data_pagamentodata_emissao_boletonumero_boletocodigo_barraslink_boletostatus_boletodescricao_statusdata_pagamento_originalvalor_pago_originalcodigo_cliente_omiecnpj_clienterazao_social_clientenome_fantasia_clienter   r   r   r   r   u   CNPJ limpo do parâmetro: ''r   z)Aplicando filtro data_vencimento_inicio: z&Aplicando filtro data_vencimento_fim: z-Aplicando filtro data_emissao_boleto_inicio: z*Aplicando filtro data_emissao_boleto_fim: z Aplicando filtro status_titulo: zAplicando filtro pago: zExecutando query com JOIN...r$   r%   z
 registroszFiltro por CNPJ 'z' (limpo: 'z') retornou z,Primeiro registro - codigo_lancamento_omie: codigo_lancamento_omiezN/Az, CNPJ empresa: r   z, codigo_cliente_omie: z, CNPJ cliente: z, data_pagamento: z, valor_pago: z&Nenhum registro encontrado para CNPJ 'zK'). Verifique se o CNPJ existe na tabela omie_contaReceber ou omie_cliente.z.Erro em OmieBoletoCompletoCRUD.list_completo: Tr(   )6r+   r,   r   r   r^   isnotr   upperrV   in_valor_documentolabelr_   r	   is_coalesce
data_baixar2   r   r   rm   dDtEmBol
cNumBoleto
cCodBarrascLinkBoleto
cCodStatus
cDesStatusr   data_emissaonumero_documentocodigo_cliente_fornecedorr   codigoClienteOmiecnpjCpfrazaoSocialnomeFantasiajoin	outerjoinr-   r.   r/   trimr0   r
   r1   r3   r4   r5   r7   r8   getattrwarningr9   r;   )r<   r   r   rR   rS   rT   rU   rV   rW   valor_pago_calculadodata_pagamento_calculadar>   r?   r@   cnpj_empresa_limpocnpj_cliente_limporA   rO   primeirorC   s                       rE   list_completoz$OmieBoletoCompletoCRUD.list_completos   sa     	pqw	#'$//55d;$//
 JJ/==>BB D  %44 $ eL! ! (,$3399$?$33
 (77;;DA

#3#A#ABFF H  MM"2"="=?O?_?_` ( e$% %" &==&//556KL&1177H&1177H&2288G&1177H&11778JK %% 00 -- 00 11 .. ::($ //556OP ++112GH--334IJ##)).9''--.DE((../FG-. d &==AQAhAhh i ::k>[>[[5 > J:4&AB!\\#r2::3CKKCQSTZZ\
::,aHI%)YYLL LL)9)>)>RH R&" &*YYLL LL)<)<c2F R&" !!*//!J<q0AB*//!J<q0AB &HI_H`ab!!"2"B"BF\"\]"EFYEZ[\!!"2"B"BFY"YZ)LMgLhij!!"8"A"AE_"_`&IJaIbcd!!"8"A"AE\"\]?OP!!"2"@"@M"QR6tf=>%%,;;AA$G  0 ; ; A A$ G 0 @ @ F Ft L 0 ; ;?O?_?_ _
 !JJ'7'E'EFJJ L  %%,;;??E 0 ; ; ? ? E 0 ; ;q @ $$4$?$?$E$Ed$K$4$D$D$J$J4$P$4$?$?BRBbBb$b!"   0 > > B B4 H!%,<,J,J!K!O!O Q" "# !#, zz$
"34KK67::d++FLL676::<(GKK/#g,zBC/v[LY\]dYeXffpqr3w<!+"1:KGT\^vx}L~K @,,3Hfe,L+M N33:8EZ\a3b2c d,,3Hne,T+U V..5h@PRW.X-Y Z**1(L%*P)QS T N	 !Gv[YcXd eg  h i N) ,,  	LLI!MX\L]	sH   h!b:g5 g2C=g5 h!g5 1h!2g5 5	h>hhh!)
rF   rG   rH   r   r   r:   r   boolr   r   rI   rJ   rE   rQ   rQ   r   s    
 #15.25926'+#EE sm	E
 !)E &d^E %-TNE "*$E  }E tnE 
ErJ   rQ   )loggingdatetimer   typingr   r   sqlalchemy.ext.asyncior   models.omie_clienter   
sqlalchemyr   r	   r
   r   r   models.omie_contas_receberr   !models.omie_contas_receber_boletor   	getLoggerrF   r+   r   rL   rQ   crud_contas_recebercrud_boletoscrud_boleto_completorI   rJ   rE   <module>r      sq      ! / + 4 4 7 D			8	$1 1f0 0dF FP +, )+-/ rJ   