diff --git a/.gitignore b/.gitignore index 7f2aa80..f171cd6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ dist/ *egg*/ docs/_build .vscode/tags +.cache/ diff --git a/pytrustnfe/nfe/danfe.py b/pytrustnfe/nfe/danfe.py index 745694e..c1fb83c 100644 --- a/pytrustnfe/nfe/danfe.py +++ b/pytrustnfe/nfe/danfe.py @@ -40,11 +40,9 @@ def getdateUTC(cDateUTC): return '/'.join(cDt), cDateUTC[11:16] -def format_number(cNumber, precision=0, group_sep='.', decimal_sep=','): +def format_number(cNumber): if cNumber: - number = float(cNumber) - return ("{:,." + str(precision) + "f}").format(number).\ - replace(",", "X").replace(".", ",").replace("X", ".") + return cNumber.replace(",", "X").replace(".", ",").replace("X", ".") return "" @@ -417,8 +415,7 @@ class danfe(object): self.string(self.nLeft + nCol + 17, self.nlin + nLin, cDt) self.stringRight( self.nLeft + nCol + 47, self.nlin + nLin, - format_number(tagtext(oNode=oXML_dup, cTag='vDup'), - precision=2)) + format_number(tagtext(oNode=oXML_dup, cTag='vDup'))) if nPar == 3: nLin = 7 @@ -486,41 +483,40 @@ obsCont[@xCampo='NomeVendedor']") self.canvas.setFont('NimbusSanL-Regu', 8) self.stringRight( self.nLeft + 34, self.nlin + 7.7, - format_number(tagtext(oNode=el_total, cTag='vBC'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vBC'))) self.stringRight( self.nLeft + 64, self.nlin + 7.7, - format_number(tagtext(oNode=el_total, cTag='vICMS'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vICMS'))) self.stringRight( self.nLeft + 94, self.nlin + 7.7, - format_number(tagtext(oNode=el_total, cTag='vBCST'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vBCST'))) self.stringRight( nMr - 66, self.nlin + 7.7, - format_number(tagtext(oNode=el_total, cTag='vST'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vST'))) self.stringRight( nMr - 36, self.nlin + 7.7, - format_number(tagtext(oNode=el_total, cTag='vTotTrib'), - precision=2)) + format_number(tagtext(oNode=el_total, cTag='vTotTrib'))) self.stringRight( nMr - 1, self.nlin + 7.7, - format_number(tagtext(oNode=el_total, cTag='vProd'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vProd'))) self.stringRight( self.nLeft + 34, self.nlin + 14.1, - format_number(tagtext(oNode=el_total, cTag='vFrete'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vFrete'))) self.stringRight( self.nLeft + 64, self.nlin + 14.1, - format_number(tagtext(oNode=el_total, cTag='vSeg'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vSeg'))) self.stringRight( self.nLeft + 94, self.nlin + 14.1, - format_number(tagtext(oNode=el_total, cTag='vDesc'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vDesc'))) self.stringRight( self.nLeft + 124, self.nlin + 14.1, - format_number(tagtext(oNode=el_total, cTag='vOutro'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vOutro'))) self.stringRight( self.nLeft + 154, self.nlin + 14.1, - format_number(tagtext(oNode=el_total, cTag='vIPI'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vIPI'))) self.stringRight( nMr - 1, self.nlin + 14.1, - format_number(tagtext(oNode=el_total, cTag='vNF'), precision=2)) + format_number(tagtext(oNode=el_total, cTag='vNF'))) self.nlin += 17 # Nr linhas ocupadas pelo bloco @@ -589,10 +585,10 @@ obsCont[@xCampo='NomeVendedor']") tagtext(oNode=el_transp, cTag='nVol')) self.stringRight( nMr - 27, self.nlin + 21.2, - format_number(tagtext(oNode=el_transp, cTag='pesoB'), precision=3)) + format_number(tagtext(oNode=el_transp, cTag='pesoB'))) self.stringRight( nMr - 1, self.nlin + 21.2, - format_number(tagtext(oNode=el_transp, cTag='pesoL'), precision=3)) + format_number(tagtext(oNode=el_transp, cTag='pesoL'))) self.nlin += 23 @@ -628,10 +624,10 @@ obsCont[@xCampo='NomeVendedor']") self.stringcenter(nMr - 44, self.nlin + 5.5, 'BC ICMS') self.vline(nMr - 64, self.nlin + 2, nH) self.stringcenter(nMr - 57, self.nlin + 5.5, 'VLR TOTAL') - self.vline(nMr - 77, self.nlin + 2, nH) + self.vline(nMr - 78, self.nlin + 2, nH) self.stringcenter(nMr - 70.5, self.nlin + 5.5, 'VLR UNIT') self.vline(nMr - 90, self.nlin + 2, nH) - self.stringcenter(nMr - 83.5, self.nlin + 5.5, 'QTD') + self.stringcenter(nMr - 83.8, self.nlin + 5.5, 'QTD') self.vline(nMr - 96, self.nlin + 2, nH) self.stringcenter(nMr - 93, self.nlin + 5.5, 'UNID') self.vline(nMr - 102, self.nlin + 2, nH) @@ -677,24 +673,20 @@ obsCont[@xCampo='NomeVendedor']") tagtext(oNode=el_prod, cTag='CFOP')) self.stringcenter(nMr - 93, nLin, tagtext(oNode=el_prod, cTag='uCom')) - self.stringRight(nMr - 77.5, nLin, format_number( - tagtext(oNode=el_prod, cTag='qCom'), precision=4)) + self.stringRight(nMr - 78.5, nLin, format_number( + tagtext(oNode=el_prod, cTag='qCom'))) self.stringRight(nMr - 64.5, nLin, format_number( - tagtext(oNode=el_prod, cTag='vUnCom'), precision=2)) - self.stringRight(nMr - 50.5, nLin, format_number( - tagtext(oNode=el_prod, cTag='vProd'), precision=2)) - self.stringRight(nMr - 38.5, nLin, format_number(vBC, precision=2)) - self.stringRight(nMr - 26.5, nLin, - format_number(vICMS, precision=2)) - self.stringRight( - nMr - 7.5, nLin, format_number(pICMS, precision=2)) + tagtext(oNode=el_prod, cTag='vUnCom'))) + self.stringRight(nMr - 50.5, nLin, + tagtext(oNode=el_prod, cTag='vProd')) + self.stringRight(nMr - 38.5, nLin, format_number(vBC)) + self.stringRight(nMr - 26.5, nLin, format_number(vICMS)) + self.stringRight(nMr - 7.5, nLin, format_number(pICMS)) if vIPI: - self.stringRight(nMr - 14.5, nLin, - format_number(vIPI, precision=2)) + self.stringRight(nMr - 14.5, nLin, format_number(vIPI)) if pIPI: - self.stringRight(nMr - 0.5, nLin, - format_number(pIPI, precision=2)) + self.stringRight(nMr - 0.5, nLin, format_number(pIPI)) # Código Item line_cod = nLin @@ -778,8 +770,7 @@ obsCont[@xCampo='NomeVendedor']") u"SÉRIE %s" % (tagtext(oNode=el_ide, cTag='serie'))) cDt, cHr = getdateUTC(tagtext(oNode=el_ide, cTag='dhEmi')) - cTotal = format_number(tagtext(oNode=el_total, cTag='vNF'), - precision=2) + cTotal = format_number(tagtext(oNode=el_total, cTag='vNF')) cEnd = tagtext(oNode=el_dest, cTag='xNome') + ' - ' cEnd += tagtext(oNode=el_dest, cTag='xLgr') + ', ' + tagtext( @@ -894,24 +885,24 @@ obsCont[@xCampo='NomeVendedor']") correcao = tagtext(oNode=elem_infNFe, cTag='xCorrecao') w, h, paragraph = self._paragraph( - correcao, 'NimbusSanL-Regu', 10, 190*mm, 20*mm) - paragraph.drawOn(self.canvas, 10*mm, (297-52)*mm - h) + correcao, 'NimbusSanL-Regu', 10, 190 * mm, 20 * mm) + paragraph.drawOn(self.canvas, 10 * mm, (297 - 52) * mm - h) - self.hline(9, 54+(h/mm), 200) - self.stringcenter(105, 58+(h/mm), u"CONDIÇÃO DE USO") - self.hline(9, 60+(h/mm), 200) + self.hline(9, 54 + (h / mm), 200) + self.stringcenter(105, 58 + (h / mm), u"CONDIÇÃO DE USO") + self.hline(9, 60 + (h / mm), 200) condicoes = tagtext(oNode=elem_infNFe, cTag='xCondUso') w2, h2, paragraph = self._paragraph( - condicoes, 'NimbusSanL-Regu', 10, 190*mm, 20*mm) - paragraph.drawOn(self.canvas, 10*mm, (297-62)*mm-h-h2) + condicoes, 'NimbusSanL-Regu', 10, 190 * mm, 20 * mm) + paragraph.drawOn(self.canvas, 10 * mm, (297 - 62) * mm - h - h2) - self.hline(9, 68+((h+h2)/mm), 200) + self.hline(9, 68 + ((h + h2) / mm), 200) self.vline(80, 14, 30) - self.vline(9, 14, 54+((h+h2)/mm)) - self.vline(200, 14, 54+((h+h2)/mm)) + self.vline(9, 14, 54 + ((h + h2) / mm)) + self.vline(200, 14, 54 + ((h + h2) / mm)) def _paragraph(self, text, font, font_size, x, y): ptext = '%s' % (font_size, text) @@ -922,4 +913,3 @@ obsCont[@xCampo='NomeVendedor']") paragraph = Paragraph(ptext, style=style) w, h = paragraph.wrapOn(self.canvas, x, y) return w, h, paragraph -