Browse Source

Merge branch 'master3' into master3-dsf

pull/84/head
pal0schi 8 years ago
committed by GitHub
parent
commit
9bd14ce2ca
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 39
      pytrustnfe/nfe/danfe.py
  2. 1
      pytrustnfe/nfse/dsf/__init__.py
  3. 2
      setup.py

39
pytrustnfe/nfe/danfe.py

@ -72,6 +72,7 @@ def get_image(path, width=1*cm):
class danfe(object): class danfe(object):
def __init__(self, sizepage=A4, list_xml=None, recibo=True, def __init__(self, sizepage=A4, list_xml=None, recibo=True,
orientation='portrait', logo=None): orientation='portrait', logo=None):
@ -91,7 +92,7 @@ class danfe(object):
self.nlin = self.nTop self.nlin = self.nTop
self.logo = logo self.logo = logo
self.oFrete = {'0': '0 - Emitente', self.oFrete = {'0': '0 - Emitente',
'1': '1 - Dest/Remet',
'1': '1 - Destinatário',
'2': '2 - Terceiros', '2': '2 - Terceiros',
'9': '9 - Sem Frete'} '9': '9 - Sem Frete'}
@ -189,7 +190,8 @@ class danfe(object):
elem_ide = oXML.find(".//{http://www.portalfiscal.inf.br/nfe}ide") elem_ide = oXML.find(".//{http://www.portalfiscal.inf.br/nfe}ide")
cChave = elem_infNFe.attrib.get('Id')[3:] cChave = elem_infNFe.attrib.get('Id')[3:]
barcode128 = code128.Code128(cChave, barHeight=10*mm, barWidth=0.25*mm)
barcode128 = code128.Code128(
cChave, barHeight=10 * mm, barWidth=0.25 * mm)
self.canvas.setLineWidth(.5) self.canvas.setLineWidth(.5)
self.rect(self.nLeft, self.nlin + 1, self.nLeft + 75, 32) self.rect(self.nLeft, self.nlin + 1, self.nLeft + 75, 32)
@ -223,7 +225,8 @@ class danfe(object):
self.stringcenter(self.nLeft + 100, self.nlin + 32, cPag) self.stringcenter(self.nLeft + 100, self.nlin + 32, cPag)
self.canvas.setFont('NimbusSanL-Regu', 6) self.canvas.setFont('NimbusSanL-Regu', 6)
self.string(self.nLeft + 86, self.nlin + 8, 'Documento Auxiliar da') self.string(self.nLeft + 86, self.nlin + 8, 'Documento Auxiliar da')
self.string(self.nLeft+86, self.nlin+10.5, 'Nota Fiscal Eletrônica')
self.string(self.nLeft + 86, self.nlin +
10.5, 'Nota Fiscal Eletrônica')
self.string(self.nLeft + 86, self.nlin + 16, '0 - Entrada') self.string(self.nLeft + 86, self.nlin + 16, '0 - Entrada')
self.string(self.nLeft + 86, self.nlin + 19, '1 - Saída') self.string(self.nLeft + 86, self.nlin + 19, '1 - Saída')
self.rect(self.nLeft + 105, self.nlin + 15, 8, 6) self.rect(self.nLeft + 105, self.nlin + 15, 8, 6)
@ -352,8 +355,12 @@ class danfe(object):
self.canvas.setFont('NimbusSanL-Regu', 8) self.canvas.setFont('NimbusSanL-Regu', 8)
self.string(self.nLeft + 1, self.nlin + 7.5, self.string(self.nLeft + 1, self.nlin + 7.5,
tagtext(oNode=elem_dest, cTag='xNome')) tagtext(oNode=elem_dest, cTag='xNome'))
self.string(nMr-69, self.nlin+7.5,
format_cnpj_cpf(tagtext(oNode=elem_dest, cTag='CNPJ')))
cnpj_cpf = tagtext(oNode=elem_dest, cTag='CNPJ')
if cnpj_cpf:
cnpj_cpf = format_cnpj_cpf(cnpj_cpf)
else:
cnpj_cpf = format_cnpj_cpf(tagtext(oNode=elem_dest, cTag='CPF'))
self.string(nMr - 69, self.nlin + 7.5, cnpj_cpf)
cDt, cHr = getdateUTC(tagtext(oNode=elem_ide, cTag='dhEmi')) cDt, cHr = getdateUTC(tagtext(oNode=elem_ide, cTag='dhEmi'))
self.string(nMr - 24, self.nlin + 7.7, cDt + ' ' + cHr) self.string(nMr - 24, self.nlin + 7.7, cDt + ' ' + cHr)
cDt, cHr = getdateUTC(tagtext(oNode=elem_ide, cTag='dhSaiEnt')) cDt, cHr = getdateUTC(tagtext(oNode=elem_ide, cTag='dhSaiEnt'))
@ -641,7 +648,8 @@ obsCont[@xCampo='NomeVendedor']")
nWidth_Prod = nMr - 135 - self.nLeft - 11 nWidth_Prod = nMr - 135 - self.nLeft - 11
nCol_ = self.nLeft + 20 + (nWidth_Prod / 2) nCol_ = self.nLeft + 20 + (nWidth_Prod / 2)
self.stringcenter(nCol_, self.nlin+5.5, 'DESCRIÇÃO DO PRODUTO/SERVIÇO')
self.stringcenter(nCol_, self.nlin + 5.5,
'DESCRIÇÃO DO PRODUTO/SERVIÇO')
# Conteúdo campos # Conteúdo campos
self.canvas.setFont('NimbusSanL-Regu', 5) self.canvas.setFont('NimbusSanL-Regu', 5)
@ -659,7 +667,8 @@ obsCont[@xCampo='NomeVendedor']")
".//{http://www.portalfiscal.inf.br/nfe}IPI") ".//{http://www.portalfiscal.inf.br/nfe}IPI")
cCST = tagtext(oNode=el_imp_ICMS, cTag='orig') + \ cCST = tagtext(oNode=el_imp_ICMS, cTag='orig') + \
tagtext(oNode=el_imp_ICMS, cTag='CST')
(tagtext(oNode=el_imp_ICMS, cTag='CST') or
tagtext(oNode=el_imp_ICMS, cTag='CSOSN'))
vBC = tagtext(oNode=el_imp_ICMS, cTag='vBC') vBC = tagtext(oNode=el_imp_ICMS, cTag='vBC')
vICMS = tagtext(oNode=el_imp_ICMS, cTag='vICMS') vICMS = tagtext(oNode=el_imp_ICMS, cTag='vICMS')
pICMS = tagtext(oNode=el_imp_ICMS, cTag='pICMS') pICMS = tagtext(oNode=el_imp_ICMS, cTag='pICMS')
@ -681,8 +690,10 @@ obsCont[@xCampo='NomeVendedor']")
self.stringRight(nMr - 50.5, nLin, format_number( self.stringRight(nMr - 50.5, nLin, format_number(
tagtext(oNode=el_prod, cTag='vProd'), precision=2)) tagtext(oNode=el_prod, cTag='vProd'), precision=2))
self.stringRight(nMr - 38.5, nLin, format_number(vBC, 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))
self.stringRight(nMr - 26.5, nLin,
format_number(vICMS, precision=2))
self.stringRight(
nMr - 7.5, nLin, format_number(pICMS, precision=2))
if vIPI: if vIPI:
self.stringRight(nMr - 14.5, nLin, self.stringRight(nMr - 14.5, nLin,
@ -718,7 +729,8 @@ obsCont[@xCampo='NomeVendedor']")
self.canvas.setFont('NimbusSanL-Bold', 6) self.canvas.setFont('NimbusSanL-Bold', 6)
self.string(self.nLeft + 1, self.nlin + 1, 'DADOS ADICIONAIS') self.string(self.nLeft + 1, self.nlin + 1, 'DADOS ADICIONAIS')
self.canvas.setFont('NimbusSanL-Regu', 5) self.canvas.setFont('NimbusSanL-Regu', 5)
self.string(self.nLeft+1, self.nlin+4, 'INFORMAÇÕES COMPLEMENTARES')
self.string(self.nLeft + 1, self.nlin + 4,
'INFORMAÇÕES COMPLEMENTARES')
self.string((self.width / 2) + 1, self.nlin + 4, 'RESERVADO AO FISCO') self.string((self.width / 2) + 1, self.nlin + 4, 'RESERVADO AO FISCO')
self.rect(self.nLeft, self.nlin + 2, self.rect(self.nLeft, self.nlin + 2,
self.width - self.nLeft - self.nRight, 42) self.width - self.nLeft - self.nRight, 42)
@ -761,12 +773,14 @@ obsCont[@xCampo='NomeVendedor']")
self.string(self.nLeft + 1, self.nlin + 10.2, 'DATA DE RECEBIMENTO') self.string(self.nLeft + 1, self.nlin + 10.2, 'DATA DE RECEBIMENTO')
self.string(self.nLeft + 41, self.nlin + 10.2, self.string(self.nLeft + 41, self.nlin + 10.2,
'IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR') 'IDENTIFICAÇÃO E ASSINATURA DO RECEBEDOR')
self.stringcenter(self.width-self.nRight-(nW/2), self.nlin+2, 'NF-e')
self.stringcenter(self.width - self.nRight -
(nW / 2), self.nlin + 2, 'NF-e')
# Conteúdo campos # Conteúdo campos
self.canvas.setFont('NimbusSanL-Bold', 8) self.canvas.setFont('NimbusSanL-Bold', 8)
cNF = tagtext(oNode=el_ide, cTag='nNF') cNF = tagtext(oNode=el_ide, cTag='nNF')
cNF = '{0:011,}'.format(int(cNF)).replace(",", ".") cNF = '{0:011,}'.format(int(cNF)).replace(",", ".")
self.string(self.width-self.nRight-nW+2, self.nlin+8, "%s" % (cNF))
self.string(self.width - self.nRight - nW +
2, self.nlin + 8, "%s" % (cNF))
self.string(self.width - self.nRight - nW + 2, self.nlin + 14, self.string(self.width - self.nRight - nW + 2, self.nlin + 14,
"SÉRIE %s" % (tagtext(oNode=el_ide, cTag='serie'))) "SÉRIE %s" % (tagtext(oNode=el_ide, cTag='serie')))
@ -837,3 +851,4 @@ obsCont[@xCampo='NomeVendedor']")
pdf_out = self.oPDF_IO.getvalue() pdf_out = self.oPDF_IO.getvalue()
self.oPDF_IO.close() self.oPDF_IO.close()
fileObj.write(pdf_out) fileObj.write(pdf_out)

1
pytrustnfe/nfse/dsf/__init__.py

@ -63,6 +63,7 @@ def _send(certificado, method, **kwargs):
xml_send = _render(path, method, **kwargs) xml_send = _render(path, method, **kwargs)
client = get_client(url) client = get_client(url)
response = False response = False
if certificado: if certificado:
cert, key = extract_cert_and_key_from_pfx( cert, key = extract_cert_and_key_from_pfx(
certificado.pfx, certificado.password) certificado.pfx, certificado.password)

2
setup.py

@ -1,7 +1,7 @@
# coding=utf-8 # coding=utf-8
from setuptools import setup, find_packages from setuptools import setup, find_packages
VERSION = "0.9.3"
VERSION = "0.9.4"
setup( setup(
name="PyTrustNFe3", name="PyTrustNFe3",

Loading…
Cancel
Save