@@ -484,6 +484,83 @@ def test_codigo_numerico_aleatorio(self):
484484 self .assertEqual (antigo_codigo , self .notafiscal .codigo_numerico_aleatorio )
485485 self .assertEqual (chave_nfce , self .xml [0 ].attrib ["Id" ])
486486
487+
488+ # Preenche as classes do pynfe
489+ self .emitente = self .preenche_emitente ()
490+ self .cliente = self .preenche_destinatario ()
491+ self .preenche_notafiscal_produto ()
492+
493+ def test_notafiscal_formatador_de_quantidade (self ):
494+ emitente = self .preenche_emitente ()
495+ cliente = self .preenche_destinatario ()
496+
497+ utc = datetime .timezone .utc
498+ data_emissao = datetime .datetime (2021 , 1 , 14 , 12 , 0 , 0 , tzinfo = utc )
499+ data_saida_entrada = datetime .datetime (2021 , 1 , 14 , 13 , 10 , 20 , tzinfo = utc )
500+
501+ notafiscal = NotaFiscal (
502+ emitente ,
503+ cliente ,
504+ uf = "PR" ,
505+ natureza_operacao = "VENDA" ,
506+ modelo = 55 ,
507+ serie = "1" ,
508+ numero_nf = "222" ,
509+ data_emissao = data_emissao ,
510+ data_saida_entrada = data_saida_entrada ,
511+ tipo_documento = 1 ,
512+ municipio = "4118402" ,
513+ tipo_impressao_danfe = 1 ,
514+ forma_emissao = "1" ,
515+ cliente_final = 1 ,
516+ indicador_destino = 1 ,
517+ indicador_presencial = 1 ,
518+ finalidade_emissao = "1" ,
519+ processo_emissao = "0" ,
520+ transporte_modalidade_frete = 1 ,
521+ informacoes_adicionais_interesse_fisco = "Teste quantidade decimal" ,
522+ totais_tributos_aproximado = Decimal ("1.23" ),
523+ valor_troco = Decimal ("0.00" ),
524+ )
525+
526+ notafiscal .adicionar_produto_servico (
527+ codigo = "001" ,
528+ descricao = "Produto Decimal" ,
529+ ncm = "12345678" ,
530+ cfop = "5102" ,
531+ unidade_comercial = "UN" ,
532+ quantidade_comercial = Decimal ("1.123456" ),
533+ valor_unitario_comercial = Decimal ("10.00" ),
534+ valor_total_bruto = Decimal ("11.23" ),
535+ unidade_tributavel = "UN" ,
536+ quantidade_tributavel = Decimal ("1.123456" ),
537+ valor_unitario_tributavel = Decimal ("10.00" ),
538+ ean = "SEM GTIN" ,
539+ ean_tributavel = "SEM GTIN" ,
540+ ind_total = 1 ,
541+ icms_modalidade = "00" ,
542+ icms_origem = 0 ,
543+ pis_modalidade = "99" ,
544+ cofins_modalidade = "99" ,
545+ pis_valor_base_calculo = Decimal ("0.00" ),
546+ pis_aliquota_percentual = Decimal ("0.00" ),
547+ pis_valor = Decimal ("0.00" ),
548+ cofins_valor_base_calculo = Decimal ("0.00" ),
549+ cofins_aliquota_percentual = Decimal ("0.00" ),
550+ cofins_valor = Decimal ("0.00" ),
551+ valor_tributos_aprox = "1.23" ,
552+ informacoes_adicionais = "Teste de casas decimais" ,
553+ )
554+
555+ notafiscal .adicionar_pagamento (t_pag = "01" , x_pag = "Dinheiro" , v_pag = 11.23 , ind_pag = 0 )
556+
557+ xml = self .serializa_nfe ()
558+
559+ qCom = xml .xpath ("//ns:det/ns:prod/ns:qCom" , namespaces = self .ns )[0 ].text
560+ qTrib = xml .xpath ("//ns:det/ns:prod/ns:qTrib" , namespaces = self .ns )[0 ].text
561+
562+ self .assertEqual (qCom , "1.1235" )
563+ self .assertEqual (qTrib , "1.1235" )
487564
488565if __name__ == "__main__" :
489566 unittest .main ()
0 commit comments