Browse Source

[FIX] ajuste no numero de casas decimais printados na nfe

pull/283/head
caiomagri 6 years ago
parent
commit
4f70bca3fe
  1. 20
      pytrustnfe/nfe/danfe.py

20
pytrustnfe/nfe/danfe.py

@ -56,7 +56,6 @@ def getdateByTimezone(cDateUTC, timezone=None):
# Verificamos se a string está completa (data + hora + timezone)
if timezone and len(cDateUTC) == 25:
# tz irá conter informações da timezone contida em cDateUTC
tz = cDateUTC[19:25]
tz = int(tz.split(':')[0])
@ -81,7 +80,12 @@ def getdateByTimezone(cDateUTC, timezone=None):
def format_number(cNumber):
if cNumber:
# Vírgula para a separação de milhar e 2f para 2 casas decimais
cNumber = "{:,.2f}".format(float(cNumber))
try:
index = cNumber.find('.')
places = len(cNumber[index + 1:])
cNumber = '{:.{prec}f}'.format(float(cNumber), prec=places)
except:
cNumber = "{:,.2f}".format(float(cNumber))
return cNumber.replace(",", "X").replace(".", ",").replace("X", ".")
return ""
@ -122,7 +126,7 @@ class danfe(object):
pdfmetrics.registerFont(
TTFont('NimbusSanL-Bold',
os.path.join(path, 'NimbusSanL Bold.ttf')))
self.width = 210 # 21 x 29,7cm
self.width = 210 # 21 x 29,7cm
self.height = 297
self.nLeft = 10
self.nRight = 10
@ -583,7 +587,7 @@ obsCont[@xCampo='NomeVendedor']")
nMr - 1, self.nlin + 14.1,
format_number(tagtext(oNode=el_total, cTag='vNF')))
self.nlin += 17 # Nr linhas ocupadas pelo bloco
self.nlin += 17 # Nr linhas ocupadas pelo bloco
def transportes(self, oXML=None):
el_transp = oXML.find(".//{http://www.portalfiscal.inf.br/nfe}transp")
@ -742,8 +746,8 @@ obsCont[@xCampo='NomeVendedor']")
el_imp_IPI = el_imp.find(
".//{http://www.portalfiscal.inf.br/nfe}IPI")
cCST = tagtext(oNode=el_imp_ICMS, cTag='orig') + \
(tagtext(oNode=el_imp_ICMS, cTag='CST') or
tagtext(oNode=el_imp_ICMS, cTag='CSOSN'))
(tagtext(oNode=el_imp_ICMS, cTag='CST') or
tagtext(oNode=el_imp_ICMS, cTag='CSOSN'))
vBC = tagtext(oNode=el_imp_ICMS, cTag='vBC')
vICMS = tagtext(oNode=el_imp_ICMS, cTag='vICMS')
pICMS = tagtext(oNode=el_imp_ICMS, cTag='pICMS')
@ -763,7 +767,7 @@ obsCont[@xCampo='NomeVendedor']")
self.stringRight(nMr - 64.5, nLin, format_number(
tagtext(oNode=el_prod, cTag='vUnCom')))
self.stringRight(nMr - 50.5, nLin, format_number(
tagtext(oNode=el_prod, cTag='vProd')))
tagtext(oNode=el_prod, cTag='vProd')))
self.stringRight(nMr - 38.5, nLin, format_number(vBC or '0.00'))
self.stringRight(nMr - 26.5, nLin, format_number(vICMS or '0.00'))
self.stringRight(nMr - 7.5, nLin, format_number(pICMS or '0.00'))
@ -830,7 +834,7 @@ obsCont[@xCampo='NomeVendedor']")
self.nLeft + 189, self.nlin + 6.7,
format_number(tagtext(oNode=issqn_total, cTag='vISS')))
self.nlin += 8 # Nr linhas ocupadas pelo bloco
self.nlin += 8 # Nr linhas ocupadas pelo bloco
return 8
def adicionais(self, oXML=None, tamanho_diminuir=0):

Loading…
Cancel
Save