Gerar XML Único de Várias notas ?

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

Avatar do usuário
cruz_brasil
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 12 Mar 2010 17:17
Localização: Coimbra - Portugal

Gerar XML Único de Várias notas ?

Mensagem por cruz_brasil »

Salve gente.

Eu preciso gerar um arquivo XML Único de várias notas já emitidas, já rodei o google e não consegui achar nada muito produtivo.
estou usando o Acbr Monitor.
Alguem tem alguma idéia ?


Grato a todos.
Maurício Cruz.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: Gerar XML Único de Várias notas ?

Mensagem por fladimir »

Não entendi direito colega, seria emitir várias notas através de um lote ? Seria isto ?

Sucesso!!!
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Gerar XML Único de Várias notas ?

Mensagem por sygecom »

Olá Fladimir,
Seria gerar um XML de lote usando o ACBRNFEMONITOR a partir de um TXT de lote no formato do sefaz de são paulo, será que tem como ?
Ou gerar um XML de lote usando varios XML individuais que já foram transmitidos, isso serviria para mandar para o contador tudo em um XML só, mas no formato da NFE, entende ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: Gerar XML Único de Várias notas ?

Mensagem por fladimir »

Entendi, mas infelizmente não sei como, mas é muito interessante este assunto... será q algum outro colega, já passo por isso e pode ajudar..??
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Gerar XML Único de Várias notas ?

Mensagem por rochinha »

Amiguinhos,

Quando comecei a implementar rotinas para integração com WS Sinal(WS SINAL e SINAL 6.0 - SUFRAMA - Superintendência da Zona Franca de Manaus) precisei gerar um .XML com conteúdo de várias notas.

No começo achei muito complicado pois tive de montar uma esquema que me facilitasse a coisa e esta criação demorou mais do que o resultado.

Um exemplo disto é:

Código: Selecionar todos

<?xml version="1.0" encoding="UTF-8"?>
<lote nro="000015635" versao_sw="6.0" dtEmissao="28/03/2010" xmlns="http://www.portal.fucapi.br" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.portal.fucapi.br http://alvaraes.suframa.gov.br:7778/PMNRecEViewController/jsp/importardados/NF.xsd">
<cnpjDestinatario></cnpjDestinatario>
<cnpjTransp></cnpjTransp>
<inscSufDestinatario></inscSufDestinatario>
<ufDestino></ufDestino>
<ufOrigem>SP</ufOrigem>
<qtdeNF>1</qtdeNF>
<notasFiscais>
      <notaFiscal nro="6292" dtEmissao="15/02/2010" txZero="false" incent="1">
            <cnpjRemetente>05100590000152</cnpjRemetente>
            <CFOP>1201</CFOP>
            <modelo></modelo>
            <serie></serie>
            <inscEstDestinatario>02700902000115</inscEstDestinatario>
            <dtSaidaNF>15/02/2010</dtSaidaNF>
            <hrSaidaNF>01:41</hrSaidaNF>
            <optDebito>2</optDebito>
            <ddAdicionais></ddAdicionais>
            <itens>
                <item>
                    <codProd>110820</codProd>
                    <descItem>...</descItem>
                    <codNCM></codNCM>
                    <unidMed>RL </unidMed>
                    <valUnit>0.22</valUnit>
                    <qtde>15.0000</qtde>
                    <valTot>3.31</valTot>
                    <classFiscal>         0</classFiscal>
                    <sitTribut>000</sitTribut>
                    <alICMS>18.00</alICMS>
                    <alIPI>15.00</alIPI>
                    <valIPI>0.50</valIPI>
                </item>
                <item>
                    <codProd>110820</codProd>
                    <descItem>...</descItem>
                    <codNCM></codNCM>
                    <unidMed>KG </unidMed>
                    <valUnit>0.22</valUnit>
                    <qtde>1.0000</qtde>
                    <valTot>0.22</valTot>
                    <classFiscal>         0</classFiscal>
                    <sitTribut>000</sitTribut>
                    <alICMS>18.00</alICMS>
                    <alIPI>15.00</alIPI>
                    <valIPI>0.00</valIPI>
                </item>
            </itens>
            <valores>
                <baseCalcICMS>3.53</baseCalcICMS>
                <valICMS>0.64</valICMS>
                <valFT>0.00</valFT>
                <valSeguro>0.00</valSeguro>
                <valTotIPI>0.00</valTotIPI>
                <valOutrasDesp>0.00</valOutrasDesp>
                <valTotItens>3.53</valTotItens>
                <valTotNF>3.53</valTotNF>
                <valPIS>0</valPIS>
                <valCOFINS>0</valCOFINS>
                <valAbatICMS>0</valAbatICMS>
            </valores>
            <transportador>
                <cnpjTransp>43566686000195</cnpjTransp>
                <ftConta>0</ftConta>
                <placaVeic></placaVeic>
                <ufPlacaVeic></ufPlacaVeic>
                <inscEstTransp>108974014110</inscEstTransp>
                <qtdeVol>0</qtdeVol>
                <especie>ASDAS</especie>
                <marca></marca>
                <numero></numero>
                <pesoBruto>0.000</pesoBruto>
                <pesoLiq>0.000</pesoLiq>
            </transportador>
      </notaFiscal>
</notasFiscais>
</lote>
Veja que monto o cabeçalho do lote com informações do destinatário, vide layout do WS Sinal, mas voce pode montar algo parecido para o seu uso.

Código: Selecionar todos

<?xml version="1.0" encoding="UTF-8"?>
<lote nro="000015635" versao_sw="6.0" dtEmissao="28/03/2010" ...
Depois eu entro no conjunto das notas fiscais que comporão o lote e estas estão ladeadas pela tag notasFiscais

Código: Selecionar todos

<notasFiscais>
      <notaFiscal nro="6292" dtEmissao="15/02/2010" txZero="false" incent="1">
            <cnpjRemetente>05100590000152</cnpjRemetente>
            <CFOP>1201</CFOP>
            <modelo></modelo>
            <serie></serie>
            <inscEstDestinatario>02700902000115</inscEstDestinatario>
            <dtSaidaNF>15/02/2010</dtSaidaNF>
            <hrSaidaNF>01:41</hrSaidaNF>
            <optDebito>2</optDebito>
            <ddAdicionais></ddAdicionais>
          ....
      <notaFiscal nro="6293" dtEmissao="16/02/2010" txZero="false" incent="1">
          ....
      <notaFiscal nro="6294" dtEmissao="17/02/2010" txZero="false" incent="1">
          ....
Dentro do conjunto notaFiscal encontraremos outras tags que conterão dados pertinentes como:

Código: Selecionar todos

            <itens>
                <item>
                    <codProd>110820</codProd>
                    <descItem>...</descItem>
                    <codNCM></codNCM>
                    <unidMed>RL </unidMed>
                    <valUnit>0.22</valUnit>
                    <qtde>15.0000</qtde>
                    <valTot>3.31</valTot>
                    <classFiscal>         0</classFiscal>
                    <sitTribut>000</sitTribut>
                    <alICMS>18.00</alICMS>
                    <alIPI>15.00</alIPI>
                    <valIPI>0.50</valIPI>
                </item>
                <item>
                    .... Se houverem mais itens
                </item>
            </itens>
Teremos o conjunto de totaliza os valores da nota sendo manipulada:

Código: Selecionar todos

            <valores>
                <baseCalcICMS>3.53</baseCalcICMS>
                <valICMS>0.64</valICMS>
                <valFT>0.00</valFT>
                <valSeguro>0.00</valSeguro>
                <valTotIPI>0.00</valTotIPI>
                <valOutrasDesp>0.00</valOutrasDesp>
                <valTotItens>3.53</valTotItens>
                <valTotNF>3.53</valTotNF>
                <valPIS>0</valPIS>
                <valCOFINS>0</valCOFINS>
                <valAbatICMS>0</valAbatICMS>
            </valores>
E por fim a parte que apresenta os dados da transportadora:

Código: Selecionar todos

            <transportador>
                <cnpjTransp>43566686000195</cnpjTransp>
                <ftConta>0</ftConta>
                <placaVeic></placaVeic>
                <ufPlacaVeic></ufPlacaVeic>
                <inscEstTransp>108974014110</inscEstTransp>
                <qtdeVol>0</qtdeVol>
                <especie>ASDAS</especie>
                <marca></marca>
                <numero></numero>
                <pesoBruto>0.000</pesoBruto>
                <pesoLiq>0.000</pesoLiq>
            </transportador>
Então teremos apenas que finalizar o lote fechando todas as tags existentes:

Código: Selecionar todos

      ...
      </notaFiscal>
</notasFiscais>
</lote>
O método que usei é meio complexo e talvez um tanto poluído para que seja apresentado, mas poderá ser usado o esquema de escrita de .XML usando os exemplos e código disponibilizados no tópico EDX - Seus sistemas conversando entre si, facilmente...
Inclusive passarei a usar o método deste tópico para melhorar o visual dos meus código de escrita .XML.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Re: Gerar XML Único de Várias notas ?

Mensagem por billy1943 »

Particularmente eu acho meio complicado e até improdutivo fazer isso, alicerçado nas seguintes premissas:

a) cada .XML gerado (eu uso o SEFAZ) é correspondente a SOMENTE uma NF e a um DANFE;
b) o nome desse arquivo .XML eu coloco em um campo da NF e assim, se daqui há muito tempo eu precisar ver algo dela eu simplesmente encaminho o arquivo ao UNIDANFE (eu trabalho com esse programa junto com o SEFAZ) e posso imprimir o DANFE novamente
c) eu desenvolvi no Clipper funções que consigo visualizar o conteúdo do .XML tanto no DOS como no Windows(IE)
d) para imprimir os DANFE no atacado, basta selecioná-los e solicitar a impressão
e) não vejo vantagem em trocar o SEFAZ por outro software similar pois a interface que liga o Clipper a esses sistemas se dá por arquivos .TXT de fácil implementação, e além de tudo o SEFAZ é responsabilidade do Governo...
f) e por último, não esquecer que este mesmo Governo vem mudando os "layouts" de tempos em tempos (logo entrará em vigor a versão 4), e a continuidade de sistemas equivalentes ao SEFAZ precisarão ser revistos também.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Gerar XML Único de Várias notas ?

Mensagem por rochinha »

Amiguinhos,

Billy1943 - Acho que o amigo não quer fazer lote de informações para envio aos orgão do governo, pois se fosse isto todos nós saberiamos que é uma exigencia do mesmo.

A idéia da geração de lotes de arquivo neste padrão é somente para integração, ou seja:

- filial envia movimento para matriz
- empresa envia lote de notas para cliente(existe alguma exigencia do NFe para que enviemos o .XML da nota para o cliente)
- envio de pedido de compras para fornecedor integrar ao seu sistema.
- envio de informações de notas para contabilidade.

Ou seja, a idéia de gerar lotes de informação já é uma realidade e não presisamos usar apenas para integrar com o governo.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Gerar XML Único de Várias notas ?

Mensagem por sygecom »

Olá Rochinha,
A intenção minha e do Mauricio é de criar um arquivo de lote no formato do LOTE da NFE, mas o jeito vai ser criar na unha mesmo fazendo a leitura dos XML individual, nós achamos que poderia ter algum comando do ACBRNFE que unificaria todas os XML em um unico XML de LOTE para mandar para os contadores em um unico arquivo só em vez de varios XML.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Gerar XML Único de Várias notas ?

Mensagem por rochinha »

Amiguinhos,

Pensando assim, vejo que este é um problema que também enfrentarei e portanto vai a dica das opções que vou usar.

- Uma rotina que fará uma leitura dos pedidos que geraram notas e gerar então o arquivo contedo estas informações.
- Disponibilizar uma plataforma que permita via internet que o contador tenha acesso ao browse de notas.
- Ir armazenando cada nota em um unico arquivo em cada geração de notas.

A primeira opção seria a mais fácil, a segunda a mais rápida e a terceira mais pesada.

To ai pro que der e vier, buscando e apresentando soluções.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Gerar XML Único de Várias notas ?

Mensagem por rochinha »

Amiguinhos,

Dei uma olhada no seguinte artigo em http://www.devmedia.com.br/articles/vie ... comp=12238 no qual usam um comando para enviar um lote de notas.

O comando gera todos os XML, valida e etc.

Não seria o caso de capturar os XMLs gerados e fazer bom uso deles?

Trecho:

Código: Selecionar todos

Enviar uma ou mais NFe
Para enviar uma NFe, temos dois métodos disponíveis. O método ACBrNFe1.Enviar(NumLote);  irá gerar o(s) XML da(s) NFe(s), assiná-la(s), validá-la(s), enviá-la(s) e por fim imprimí-la(s) (se forem autorizadas) de forma automática.

Caso não queira que o DANFe seja impresso automaticamente, use a sequência de comandos abaixo:
ACBrNFe1.NotasFiscais.GerarNFe;
ACBrNFe1.NotasFiscais.Assinar;
ACBrNFe1.NotasFiscais.Valida;
ACBrNFe1.WebServices.Envia(NumLote);
 
Depois para imprimir use o comando ACBrNFe1.NotasFiscais.Items[i].XML.Imprimir;
Será que isto não esta implementado?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Gerar XML Único de Várias notas ?

Mensagem por sygecom »

Buenas Colega,
Ficou assim a rotina, as notas são enviadas uma a uma para o Sefaz, no final do mês o usuário vai mandar para o Contador um unico arquivo em XML com todas as notas no formato já gerado pelo Acbrnfemonitor, como já possuo os XML de cada nota então foi usado o comando: NFE.NFeToTXT() do ACBRNFE para gerar um lote de TXT no formato do layout do Sefaz de SP, e logo após ter todo o Lote em TXT foi usado o comando NFE.CriarNFeSefaz() do ACBRNFE para gerar um LOTE em XML a partir desse TXT gerado, e Bingo XML em Lote na mão.
Em anexo um help do AcbrNfeMonitor cedido por um colega de forum: (Geert Vieira Gosch)
Anexos
ACBrNFeMonitor.rar
(45.27 KiB) Baixado 262 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Re: Gerar XML Único de Várias notas ?

Mensagem por rubens »

Esse help é bem mais completo do que o ultimo do site do ACBRNFe, embora o Andre já havia comentado isso no blog dele..
Alguem tem uma relação dos erros retornados pelo ACBRNFE...?
[ENVIO]
Versao=1.10
TpAmb=2
VerAplic=1.10
CStat=103
XMotivo=Lote recebido com sucesso
CUF=51
NRec=510000005870847
DhRecbto=10/04/2010 15:56:49
TMed=1
Nota(s) não confirmadas:
3->

[RETORNO]
Versao=1.10
TpAmb=2
VerAplic=1.10
NRec=510000005870847
CStat=0
XMotivo=
CUF=51
Vejam esse retorno. Informa que o lote foi recebido com sucesso, e logo embaixo informa: Nota(s) não confirmadas: 3->
Fica um pouco confuso né...
E para não abrir outro tópico, em como configurar o pin no ACBRNFE para não ficar pedindo esse pin toda vez que vai fazer o primeiro acesso, com certificado A3 ?

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Gerar XML Único de Várias notas ?

Mensagem por Maligno »

OBSERVAÇÃO:
E para não abrir outro tópico, em como configurar o pin no ACBRNFE para não ficar pedindo esse pin toda vez que vai fazer o primeiro acesso, com certificado A3 ?
Poderia, por gentileza, abrir outro tópico para tratar desse assunto? Sempre preferimos manter as seções com tópicos únicos, que tratam apenas de um assunto, pois isso facilita a organização e busca. Aproveito para pedir para os colegas aguardarem que seja aberto outro tópico, antes de responder essa dúvida.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder