Skip to content

Commit

Permalink
pep8
Browse files Browse the repository at this point in the history
  • Loading branch information
renatonlima committed Feb 2, 2021
1 parent 687a3f9 commit a58e61d
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 55 deletions.
7 changes: 2 additions & 5 deletions src/erpbrasil/edoc/pdf/__init__.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
__version__ = '0.1.1'

from lxml import objectify, etree

__version__ = '0.1.1'

lookup = etree.ElementNamespaceClassLookup(
objectify.ObjectifyElementClassLookup())
parser = etree.XMLParser()
parser.set_element_class_lookup(lookup)

from erpbrasil.edoc.pdf import nfe
from erpbrasil.edoc.pdf.base import ImprimirXml
15 changes: 5 additions & 10 deletions src/erpbrasil/edoc/pdf/base.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# -*- coding: utf-8 -*-
import os
import re
from uuid import uuid4
from py3o.template import Template
import sh
from lxml import objectify, etree
from erpbrasil.edoc.pdf import parser
import tempfile

#cte_namespace = lookup.get_namespace('http://www.portalfiscal.inf.br/cte')
from lxml import objectify
from py3o.template import Template
from erpbrasil.edoc.pdf import parser

# cte_namespace = lookup.get_namespace('http://www.portalfiscal.inf.br/cte')


class VoidElement(object):
Expand Down Expand Up @@ -67,16 +67,13 @@ def _identifica_tipo_impressao(self):

return tipo


def _renderiza_documento(self):

'''
Renderiza o documento e salva o pdf do tipo de documento especificado
de acordo com o template correspondente
:return:
'''

script_dir = os.path.dirname(__file__)
template_path = os.path.join(script_dir, self.tipo_impressao + '.odt')
template = open(template_path, 'rb')
Expand Down Expand Up @@ -121,11 +118,9 @@ def _salva_pdf(self, output_dir):
open(os.path.join(output_dir, 'danfe.pdf'), 'wb').write(self.pdf)
return os.path.join(output_dir, 'danfe.pdf')


@classmethod
def imprimir(self, string_xml=False, caminho_xml=False, output_dir=False,
tipo_impressao=False):

'''
Método base para a impressão de documentos
Expand Down
85 changes: 45 additions & 40 deletions src/erpbrasil/edoc/pdf/danfe_formata.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
import locale

import pytz
import base64

Expand All @@ -13,7 +12,6 @@
from erpbrasil.base.fiscal.cnpj_cpf import formata as formata_CPF

from erpbrasil.base.misc import format_zipcode
formata_CEP = lambda cep: format_zipcode(cep, 'BR')


def formata_decimal(numero, digitos):
Expand All @@ -24,29 +22,30 @@ def formata_decimal(numero, digitos):
formato = '%.' + str(digitos) + 'f'
return locale.format(formato, numero, grouping=True)

formata_vBC = lambda valor: formata_decimal(valor,2)
formata_vICMS = lambda valor: formata_decimal(valor,2)
formata_vBCST = lambda valor: formata_decimal(valor,2)
formata_vST = lambda valor: formata_decimal(valor,2)
formata_vTotTrib = lambda valor: formata_decimal(valor,2)
formata_vProd = lambda valor: formata_decimal(valor,2)
formata_vFrete = lambda valor: formata_decimal(valor,2)
formata_vSeg = lambda valor: formata_decimal(valor,2)
formata_vDesc = lambda valor: formata_decimal(valor,2)
formata_vOutro = lambda valor: formata_decimal(valor,2)
formata_vIPI = lambda valor: formata_decimal(valor,2)
formata_vNF = lambda valor: formata_decimal(valor,2)
formata_qCom = lambda valor: formata_decimal(valor,3)
formata_vUnCom = lambda valor: formata_decimal(valor,5)
formata_vProd = lambda valor: formata_decimal(valor,2)
formata_pIPI = lambda valor: formata_decimal(valor,2)
formata_vOrig = lambda valor: formata_decimal(valor,2)
formata_vDesc = lambda valor: formata_decimal(valor,2)
formata_vLiq = lambda valor: formata_decimal(valor,2)
formata_vDup = lambda valor: formata_decimal(valor,2)
formata_pesoB = lambda valor: formata_decimal(valor,2)
formata_pesoL = lambda valor: formata_decimal(valor,2)
formata_pICMS = lambda valor: formata_decimal(valor,2)

formata_vBC = lambda valor: formata_decimal(valor, 2)
formata_vICMS = lambda valor: formata_decimal(valor, 2)
formata_vBCST = lambda valor: formata_decimal(valor, 2)
formata_vST = lambda valor: formata_decimal(valor, 2)
formata_vTotTrib = lambda valor: formata_decimal(valor, 2)
formata_vProd = lambda valor: formata_decimal(valor, 2)
formata_vFrete = lambda valor: formata_decimal(valor, 2)
formata_vSeg = lambda valor: formata_decimal(valor, 2)
formata_vDesc = lambda valor: formata_decimal(valor, 2)
formata_vOutro = lambda valor: formata_decimal(valor, 2)
formata_vIPI = lambda valor: formata_decimal(valor, 2)
formata_vNF = lambda valor: formata_decimal(valor, 2)
formata_qCom = lambda valor: formata_decimal(valor, 3)
formata_vUnCom = lambda valor: formata_decimal(valor, 5)
formata_vProd = lambda valor: formata_decimal(valor, 2)
formata_pIPI = lambda valor: formata_decimal(valor, 2)
formata_vOrig = lambda valor: formata_decimal(valor, 2)
formata_vDesc = lambda valor: formata_decimal(valor, 2)
formata_vLiq = lambda valor: formata_decimal(valor, 2)
formata_vDup = lambda valor: formata_decimal(valor, 2)
formata_pesoB = lambda valor: formata_decimal(valor, 2)
formata_pesoL = lambda valor: formata_decimal(valor, 2)
formata_pICMS = lambda valor: formata_decimal(valor, 2)


def formata_fone(fone):
Expand Down Expand Up @@ -74,7 +73,7 @@ def formata_fone(fone):
else:
numero = fone[4:]
if len(numero) == 9:
numero = numero[0] + ' ' + numero[1:4] + '-' + numero[4:]
numero = numero[0] + ' ' + numero[1:4] + '-' + numero[4:]
else:
numero = numero[0:4] + '-' + numero[4:]
ddd = fone[2:4]
Expand All @@ -85,7 +84,6 @@ def formata_fone(fone):


def modFrete_formatado(NFe):

modFrete = int(NFe.infNFe.transp.modFrete.text)

if modFrete == 0:
Expand All @@ -108,9 +106,10 @@ def modFrete_formatado(NFe):

return formatado


def formata_placa(placa):
placa = placa[:-4] + '-' + placa[-4:]
return placa
placa = placa[:-4] + '-' + placa[-4:]
return placa


def formata_dhRecbto(dhRecbto):
Expand Down Expand Up @@ -159,8 +158,8 @@ def endereco_emitente_formatado(NFe):
formatado = str(NFe.infNFe.emit.enderEmit.xLgr)
formatado += ', ' + str(NFe.infNFe.emit.enderEmit.nro)

if hasattr(NFe.infNFe.emit.enderEmit, 'xCpl') and \
len(str(NFe.infNFe.emit.enderEmit.xCpl).strip()):
if (hasattr(NFe.infNFe.emit.enderEmit, 'xCpl') and
len(str(NFe.infNFe.emit.enderEmit.xCpl).strip())):
formatado += ' - ' + str(NFe.infNFe.emit.enderEmit.xCpl)

return formatado
Expand Down Expand Up @@ -217,7 +216,7 @@ def endereco_emitente_formatado_linha_1(NFe):
def endereco_emitente_formatado_linha_2(NFe):
formatado = str(NFe.infNFe.emit.enderEmit.xMun)
formatado += ' - ' + str(NFe.infNFe.emit.enderEmit.UF)
formatado += ' - ' + NFe.infNFe.emit.enderEmit.CEP
formatado += ' - ' + format_zipcode(NFe.infNFe.emit.enderEmit.CEP, 'BR')
return formatado


Expand All @@ -230,7 +229,7 @@ def endereco_emitente_formatado_linha_3(NFe):


def endereco_emitente_formatado_linha_4(NFe):
#return NFe.site or NFe.infNFe.emit.email.valor or '' # TODO: De onde vem o site
# return NFe.site or NFe.infNFe.emit.email.valor or '' # TODO: De onde vem o site
if hasattr(NFe.infNFe.emit, 'email'):
return str(NFe.infNFe.emit.email)
else:
Expand Down Expand Up @@ -274,14 +273,17 @@ def monta_chave(NFe):

def chave_formatada(NFe):
chave = monta_chave(NFe)
chave = chave.replace('.', '').replace('-','').replace('/','')
chave_formatada = ' '.join((chave[0:4], chave[4:8], chave[8:12], chave[12:16], chave[16:20], chave[20:24], chave[24:28], chave[28:32], chave[32:36], chave[36:40], chave[40:44]))
chave = chave.replace('.', '').replace('-', '').replace('/', '')
chave_formatada = ' '.join((
chave[0:4], chave[4:8], chave[8:12], chave[12:16], chave[16:20],
chave[20:24], chave[24:28], chave[28:32], chave[32:36],
chave[36:40], chave[40:44]))
return chave_formatada


def chave_imagem(NFe):
chave = monta_chave(NFe)
chave = chave = chave.replace('.', '').replace('-','').replace('/','')
chave = chave = chave.replace('.', '').replace('-', '').replace('/', '')
#
# Para converter centímetros para o tamanho do reportlab, use a
# seguinte fórmula:
Expand All @@ -290,7 +292,7 @@ def chave_imagem(NFe):
# Assim: 0,8 cm = 0,8 × 128 ÷ 2,75 = 37,2 = 37
# Assim: 0,02 cm = 0,02 × 128 ÷ 2,75 = 0,9 = 1
#
imagem = createBarcodeDrawing('Code128', value= chave,
imagem = createBarcodeDrawing('Code128', value=chave,
barHeight=37, barWidth=1)
return base64.b64encode(imagem.asString('png')).decode('utf-8')

Expand Down Expand Up @@ -356,11 +358,15 @@ def fatura_a_prazo(NFe):
if (str(NFe.infNFe.ide.indPag) == '1' or
len(str(NFe.infNFe.cobr.dup)) > 1 or
((len(str(NFe.infNFe.cobr.dup)) == 1) and
(datetime.strptime(str(NFe.infNFe.cobr.dup[0].dVenc), '%Y-%m-%d').toordinal() > datetime.strptime(str(NFe.infNFe.ide.dEmi.toordinal()), '%Y-%m-%d').toordinal()))):
(datetime.strptime(str(NFe.infNFe.cobr.dup[0].dVenc),
'%Y-%m-%d').toordinal() > datetime.strptime(
str(NFe.infNFe.ide.dEmi.toordinal()),
'%Y-%m-%d').toordinal()))):
return True

return False


def fatura_a_vista(NFe):
if not (len(str(NFe.infNFe.cobr.fat.nFat)) or
len(str(NFe.infNFe.cobr.fat.vOrig)) or
Expand All @@ -380,6 +386,7 @@ def numero_item(det):
def regime_tributario(NFe):
return int(NFe.infNFe.emit.CRT.text)


def cst_formatado(det):
formatado = str(det.imposto.ICMS.tipoICMS.orig).zfill(1)

Expand Down Expand Up @@ -465,5 +472,3 @@ def aliquota_icms(det):
if str(det.imposto.ICMS.tipoICMS.CST) == '60':
return formata_decimal(det.imposto.ICMS.tipoICMS.pST.text, 2)
return det.imposto.ICMS.tipoICMS.pICMS


0 comments on commit a58e61d

Please sign in to comment.