@@ -113,6 +113,10 @@ def preenche_notafiscal_produto_cst00(self):
113113 transporte_modalidade_frete = 1 ,
114114 informacoes_adicionais_interesse_fisco = "Mensagem complementar" ,
115115 totais_tributos_aproximado = Decimal ("21.06" ),
116+ fatura_numero = "12345" ,
117+ fatura_valor_original = Decimal ("117.00" ),
118+ fatura_valor_desconto = Decimal ("0.00" ),
119+ fatura_valor_liquido = Decimal ("117.00" ),
116120 )
117121
118122 self .notafiscal .adicionar_produto_servico (
@@ -163,7 +167,25 @@ def preenche_notafiscal_produto_cst00(self):
163167 email = "pynfe@pynfe.io" ,
164168 fone = "11912341234" ,
165169 )
166-
170+
171+ self .notafiscal .adicionar_duplicata (
172+ numero = '1' ,
173+ data_vencimento = datetime .datetime (2025 , 1 , 27 , 12 , 0 , 0 , tzinfo = utc ),
174+ valor = Decimal ("39.00" ),
175+ )
176+
177+ self .notafiscal .adicionar_duplicata (
178+ numero = '1' ,
179+ data_vencimento = datetime .datetime (2025 , 1 , 28 , 12 , 0 , 0 , tzinfo = utc ),
180+ valor = Decimal ("39.00" ),
181+ )
182+
183+ self .notafiscal .adicionar_duplicata (
184+ numero = '1' ,
185+ data_vencimento = datetime .datetime (2025 , 1 , 29 , 12 , 0 , 0 , tzinfo = utc ),
186+ valor = Decimal ("39.00" ),
187+ )
188+
167189 self .notafiscal .adicionar_pagamento (
168190 t_pag = "03" ,
169191 x_pag = "Cartao Credito" ,
@@ -396,6 +418,68 @@ def notas_referenciadas_test(self):
396418 self .assertEqual (chave_1 , "12345678901234567890123456789012345678900001" )
397419 self .assertEqual (chave_2 , "12345678901234567890123456789012345678900002" )
398420
421+ def fatura_test (self ):
422+ numero_fatura = self .xml_assinado .xpath ("//ns:cobr/ns:fat/ns:nFat" , namespaces = self .ns )[
423+ 0
424+ ].text
425+ valor_original = self .xml_assinado .xpath ("//ns:cobr/ns:fat/ns:vOrig" , namespaces = self .ns )[
426+ 0
427+ ].text
428+ valor_desconto = self .xml_assinado .xpath ("//ns:cobr/ns:fat/ns:vDesc" , namespaces = self .ns )[
429+ 0
430+ ].text
431+ valor_liquido = self .xml_assinado .xpath ("//ns:cobr/ns:fat/ns:vLiq" , namespaces = self .ns )[
432+ 0
433+ ].text
434+
435+ self .assertEqual (numero_fatura , "12345" )
436+ self .assertEqual (valor_original , "117.00" )
437+ self .assertEqual (valor_desconto , "0.00" )
438+ self .assertEqual (valor_liquido , "117.00" )
439+
440+ def duplicatas_test (self ):
441+ numero_duplicata_1 = self .xml_assinado .xpath (
442+ "//ns:cobr/ns:dup/ns:nDup" , namespaces = self .ns
443+ )[0 ].text
444+ data_vencimento_1 = self .xml_assinado .xpath (
445+ "//ns:cobr/ns:dup/ns:dVenc" , namespaces = self .ns
446+ )[0 ].text
447+ valor_duplicata_1 = self .xml_assinado .xpath (
448+ "//ns:cobr/ns:dup/ns:vDup" , namespaces = self .ns
449+ )[0 ].text
450+
451+ numero_duplicata_2 = self .xml_assinado .xpath (
452+ "//ns:cobr/ns:dup/ns:nDup" , namespaces = self .ns
453+ )[1 ].text
454+ data_vencimento_2 = self .xml_assinado .xpath (
455+ "//ns:cobr/ns:dup/ns:dVenc" , namespaces = self .ns
456+ )[1 ].text
457+ valor_duplicata_2 = self .xml_assinado .xpath (
458+ "//ns:cobr/ns:dup/ns:vDup" , namespaces = self .ns
459+ )[1 ].text
460+
461+ numero_duplicata_3 = self .xml_assinado .xpath (
462+ "//ns:cobr/ns:dup/ns:nDup" , namespaces = self .ns
463+ )[2 ].text
464+ data_vencimento_3 = self .xml_assinado .xpath (
465+ "//ns:cobr/ns:dup/ns:dVenc" , namespaces = self .ns
466+ )[2 ].text
467+ valor_duplicata_3 = self .xml_assinado .xpath (
468+ "//ns:cobr/ns:dup/ns:vDup" , namespaces = self .ns
469+ )[2 ].text
470+
471+ self .assertEqual (numero_duplicata_1 , "1" )
472+ self .assertEqual (data_vencimento_1 , "2025-01-27" )
473+ self .assertEqual (valor_duplicata_1 , "39.00" )
474+
475+ self .assertEqual (numero_duplicata_2 , "1" )
476+ self .assertEqual (data_vencimento_2 , "2025-01-28" )
477+ self .assertEqual (valor_duplicata_2 , "39.00" )
478+
479+ self .assertEqual (numero_duplicata_3 , "1" )
480+ self .assertEqual (data_vencimento_3 , "2025-01-29" )
481+ self .assertEqual (valor_duplicata_3 , "39.00" )
482+
399483 def responsavel_tecnico_test (self ):
400484 cnpj = self .xml_assinado .xpath ("//ns:infRespTec/ns:CNPJ" , namespaces = self .ns )[
401485 0
@@ -437,6 +521,8 @@ def test_notafiscal_geral(self):
437521 self .dados_emitente_test ()
438522 self .dados_destinatario_test ()
439523 self .notas_referenciadas_test ()
524+ self .fatura_test ()
525+ self .duplicatas_test ()
440526 self .responsavel_tecnico_test ()
441527 self .digestvalue_da_assinatura_test ()
442528
0 commit comments