Skip to content

Commit d4c69fe

Browse files
committed
DACTE: formata o valor dos componentes em pt-BR
O vComp era impresso cru do XML ("331.77"), enquanto o VALOR TOTAL DO SERVIÇO (vTPrest) desenhado na coluna ao lado do mesmo retângulo já saía formatado ("R$ 1.234,56") — dois separadores decimais diferentes no mesmo quadro. As duas implementações de referência formatam: o ACBr usa FormatFloatBr e o sped-da usa number_format($v, 2, ",", "."). O BFR era o único a imprimir cru. A formatação é aplicada no desenho, e não em comp_list, para o valor seguir numérico para quem precisar somá-lo. Efeito colateral: um <vComp></vComp> vazio antes derrubava a renderização com AttributeError dentro do fpdf2 (get_tag_text devolve None para tag vazia, e cell() não aceita None). Agora format_number trata como zero e imprime "0,00". O vComp é obrigatório no XSD, então isso só acontecia com XML fora do leiaute. Os 16 PDFs golden do DACTE foram regenerados. Conferido que a diferença é só essa: 71 trechos de texto alterados, todos reformatação numérica dos mesmos dígitos, nenhuma mudança de posição e nenhum trecho novo ou removido.
1 parent c6fcedc commit d4c69fe

18 files changed

Lines changed: 81 additions & 1 deletion

‎brazilfiscalreport/dacte/dacte.py‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1361,7 +1361,16 @@ def print_column(components, x_start):
13611361
self.set_xy(x_start, current_y)
13621362
self.cell(w=col_width / 2, h=4, text=comp[0], align="L")
13631363
self.set_xy(x_start + col_width / 2, current_y)
1364-
self.cell(w=col_width / 2, h=4, text=comp[1], align="L")
1364+
# O vComp vinha cru do XML ("331.77"), enquanto o VALOR TOTAL DO
1365+
# SERVIÇO impresso na coluna ao lado já sai formatado ("1.234,56").
1366+
# Formatado aqui, e não em comp_list, para o valor seguir numérico
1367+
# para quem precisar somá-lo.
1368+
self.cell(
1369+
w=col_width / 2,
1370+
h=4,
1371+
text=format_number(comp[1], precision=2),
1372+
align="L",
1373+
)
13651374
current_y += 4 # Incrementa a posição Y para o próximo item
13661375

13671376
# Imprime cada coluna
7 Bytes
Binary file not shown.
7 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
-1 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
6 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
6 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)