Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3368 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

André... 

 

Funcionou blz.. obrigado...  

 

Para quem tiver que fazer só uma coisinha, o comando NFE.enviarlote( nLote) .Mencionado na página na realidade é NFE.enviarloteNFE( nLote )

 

Obrigado

 

Rubens

Postado

André havia feito um teste e gerou um xml na pasta de lotes... fui implementar para entrar em funcionamento, não gerou mais... retorna inúmeros erros inclusive informa o retorno para a nota 0, mas estou mandando o numero da nota certinho. Retorna erros que estão no ini abaixo 

NFC00017-LOTE.TXT

 

Daí mandei gerar o xml somente com o nfe.criarnfe e gerou o xml blz... como o ini abaixo... 

NFC00017.TXT

 

Andei pesquisando, mas não encontrei resposta... Posso mandar um lote de NFCe? 

 

Rubens

 

 

 

  • 5 semanas depois ...
Postado

Olá Rubens. Se não for pedir de mais seria possível demonstrar a forma como você gerou seus arquivos de entrada? testei várias e várias tentativas mas não tenho obtido sucesso ao enviar lote.

 

Fiz as seguintes tentativas

 

NFE.AdicionarNFe("aqui preencho com o texto da NFe no padrão do INI", número do lote);

NFE.AdicionarNFe("aqui preencho com o texto da NFe no padrão do INI", número do lote);

...

no final

NFE.EnviarLoteNFe('número do lote')

 

esse teste me retornou o erro:

ERRO: Não foi possível criar o arquivo C:\ACBrMonitor\Lotes\Lote[identificacao]
NaturezaOperacao=DEVOLUCAO DE ARMAZENAGEM...


perceba que ele tentou salvar um arquivo XML mas como nome para o arquivo ele tenta pegar o texto inteiro da nota...

outra tentativa que fiz foi a seguinte, salvei cada nota fiscal em um arquivo separado, depois disso fiz:

 

NFE.AdicionarNFe("caminho do arquivo da nota fiscal, arquivo ini", número do lote);

NFE.AdicionarNFe("caminho do arquivo da nota fiscal, arquivo ini", número do lote);

...

no final

NFE.EnviarLoteNFe('número do lote')

 

este teste já resultou diferente criou uma pasta chamada Lotes, dentro dela outra pasta chamada Lote+número de uma das notas fiscais (acredito que deveria ter criado uma pasta com o número do lote) e dentro desta pasta soltou apenas 1 dos XMLs das 7 notas que participavam do meu lote usado como teste...

 

veja a linha de resposta: OK: C:\ACBr\Projetos\ACBrNFeMonitor2\Delphi\Lotes\Lote189351\41140900665292000181550030001893501001893509-nfe.xml

 

sendo que "Lote189351" criou a pasta errada este é o número de uma das notas fiscais, o lote tem outro sequencial, e o único XML que criou dentro desta pasta é de apenas uma das notas

 

 

depois disso tentei o seguinte

 

NFe.AdicionarNFeSefaz("caminho do arquivo da nota fiscal em formato ini", número do lote)

NFe.AdicionarNFeSefaz("caminho do arquivo da nota fiscal em formato ini", número do lote)

...

NFE.EnviarLoteNFe('número do lote')

me retornou o seguinte
ERRO: Arquivo inválido!

Postado

Boa tarde André. Certo, segue os anexos por parte, conforme a sequência de testes

arquivo de entrada e resposta do 1° teste que fiz.

 

Arquivo de entrada

ENTNFE.TXT

 

Arquivo de resposta

sainfe.txt

 

 

2° teste, salvei os arquivos das notas fiscais no diretório raiz do executável, o texto interno dos arquivos está no padrão de formatação ini conforme as notações de leitura válidas para o ACBrMonitor

 

Arquivo de entrada contendo 6 notas no mesmo lote

 

ENTNFE.TXT

 

Arquivo de resposta

sainfe.txt

 

veja que agora ele cirou uma pasta com número do lote e um XML dentro dela, porém são 6 notas e ele gerou XML de uma apenas, no corpo do XML só tem dados de uma

Postado

isso mesmo, todos os comandos de uma só vez no arquivo, sendo 1 linha por comando... estou desconfiado que ele não está interpretando minha intenção de envio por lote e está considerando só a ultima nota, como se o lote estivesse apenas com 1 nota, outra coisa que vi agora abrndo o fonte do DoACbrNFeUtil é que ele só aceita arquivo no modo XML eu estava alimentando direto com INI, agora estou preparando um novo teste usando a unção CriaNFe pra gerar os XMLs primeiro naquela pasta Logs e dai usar deles para passar no comando.

  • 11 meses depois ...
Postado

André existe a possibilidade de adicionar notas ao lote pelo monitor, porém ao invés de passar o texto INI, passar o caminho do arquivo XML pronto?

  • Membros Pro
Postado

Olá pessoal... comecei a usar o ACBR para as NFe em março-2015.

Agora estou implementando o CTe e preciso usar o envio em lote, porem lendo ai e o que achei no forum (desculpa minha ignorância) mas não consegui entender.

Eu programo em clipper/harbour e passo o arquivo para o acbr (ENT.TXT)

Atualmente uso o CTE.CriarEnviarCte().

Ex tenho 3 cte para enviar. Como devo fazer.

 

no aguardo e agradeço

 

  • Membros Pro
Postado

Olá Ítalo... só vi a noite,,, já tinha postado..

Mas tenho duvidas ainda....

Hoje eu uso CTe.CriarEnviarCTe("[ide]
cUF=35,, etc.....já salvo na pasta ACbrmonitornfe com ENT.TXT

você colocou assim no e-mail:

1. comando: CriarCTe(cTextoINI)

1.1 o comando acima cria o XML baseado no arquivo INI (cTextoINI) e deve ser repetido para cada CT-e que se deseja enviar.

isso seria:   CTe.CriarCTe("[ide]
cUF=35,, etc. para cada CTe???

depois:

2. comando: AdicionarCTe(cArquivo, nLote)

2.1. o comando acima deve ser repetido para cada CTe que deseja adicionar no lote, importante: cArquivo é o path contendo o caminho mais o nome do XML e  nLote é sempre igual, para todos os CT-e do mesmo lote.

Ex: tenho cte 10,11 e 12 para enviar, lote 555, vou fazer:   

AdicionarCTe(c:\ct0010.xml, 555)

AdicionarCTe(c:\ct0011.xml, 555)

AdicionarCTe(c:\ct0012.xml, 555)

e depois:

3. comando: EnviarLoteCTe(nLote)

3.1 o comando acima vai carregar todos os CT-e adicionados pelo comando AdicionarCTe, montar o lote e enviar.

 seria:    EnviarLoteCTe(555)

seria isso ????

o retorno com chave e protocolo, vem 1 cada vez ???

 

no aguardo

  • Consultores
Postado

Boa tarde Jose,

Como lhe disse no e-mail, não utilizo o Monitor e nem faço parte do seu desenvolvimento.

Mas analisando o código do mesmo me fez chegar a esse fluxo.

E o seu exemplo esta em conformidade com o meu entendimento.

Note que o comando CTe.CriarEnviarCTe vai criar o XML, assinar e validar baseado no INI que você esta passando como parâmetro e em seguida realiza o envio para SEFAZ.

O que você deseja é o envio de um lote contendo 2 ou mais CT-e e não um a um, correto?

Pois bem os 3 comandos que lhe sugeri visa atender a sua necessidade.

O comando CTe.CriarCTe vai apenas criar o XML baseado no INI que você passar como paramentro, não vai enviar nada para SEFAZ.

Se você deseja enviar um lote com 10 conhecimentos terá que executar o comando acima para cada um deles.

Com o comando CTe.AdicionarCTe você lê o XML e o adiciona ao lote, logo você terá que executar esse comando também 10 vezes para adicionar os 10 conhecimentos segundo o exemplo acima.

Por fim deve ser executado o comando CTe.EnviarLoteCTe, esse sim é o comando que vai enviar o lote contendo os 10 conhecimentos para a SEFAZ.

Quanto ao retorno não sei se vem individual ou todas as informações em único arquivo INI para que a sua aplicação possa ler e atualizar o banco de dados.

Mas uma coisa é certa os XMLs de cada CTe gerado pelo CriarCTe será atualizado, ou seja, receberá o procolo de autorização.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Olá Pessoal...Fiz um Ex em 2 Cte Nos 379 e 380

- No Cte.EnviarCte() 1 a 1 e ok

OK: C:\ACBrNFe\CTE\35150812623110000199570010000003791000003790-cte.xml
OK: C:\ACBrNFe\CTE\35150912623110000199570010000003801000003809-cte.xml

-Porem quando envio o comando CTE.AdicionarCTe("C:\ACBrNFe\CTe\35150912623110000199570010000003791000003794-cte.xml",1234)

da erro, ele cria outro xml vazio

ERRO: Falha na validação dos dados do conhecimento 0
TAG:<infCte versao="2.00" Id="CTe00991200000000000000550010000000001509926386"><ide> ID:#005/cUF(Código do UF (Unidade da Federação)) - Conteúdo inválido.
TAG:<infCte versao="2.00" Id="CTe00991200000000000000550010000000001509926386"><ide> ID:#008/natOp(Descrição da Natureza da Operação) - Nenhum valor informado.

segue em anexo o arquivo LOG

No aguardo e agradeço

 

JCarlos

 

sainfe.txt

  • Consultores
Postado

Bom dia José,

O CT-e cujo numero é 379 o digito verificador é zero e você informou 4, veja:

OK: C:\ACBrNFe\CTE\35150812623110000199570010000003791000003790-cte.xml

CTE.AdicionarCTe("C:\ACBrNFe\CTe\35150912623110000199570010000003791000003794-cte.xml",1234)

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Bom dia José,

Vamos as correções:

1. não atribua nada ao campo cDV, portanto exclua a linha em negrito: 

tpEmis=1
cDV=4
tpAmb=1

2.  Se o campo solicita a data e hora devemos informar os dois, portanto da forma que você colocou esta errado:

dhEmi=31/08/2015

Correto é:

dhEmi=31/08/2015 15:30:00 (por exemplo)

 

3. não se utilize de cedilha, vogais acentuadas ou caracteres especiais, isso pode provocar erros de assinatura, portanto remova o apostrofe colocado no nome da cidade.

xMunEnv=SANTA BARBARA D'OESTE 

como o de cima existem varias outras ocorrências.

Outra coisa você possui os dois XML gerados pelos comandos CTe.CriarCTe() ?

Se sim, por valor post como anexo.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Este tópico foi criado há 3368 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.