carlos_augusto
-
Total de ítens
175 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por carlos_augusto
-
-
Sr. Italo
Muito obrigado pela resposta.
Entendi agora que providências vou realizar, conforme descrevo abaixo:
1)-Inicialmente utilizo o Método : DistribuicaoDFePorChaveNFe para verificar se a Chave de Nfe
informada efetivamente existe na Sefaz.
Se no retorno cStat = 138, considero que a chave da nota está correta.
2)-Depois eu Manifesto "Ciência da Operação" para esta Nota Fiscal da seguinte forma :
acbrNota.EventoNFe.Evento.Clear;
with acbrNota.EventoNFe.Evento.Add do
begin
// Chave da Nota Fiscal Eletrônica
infEvento.chNFe := edtChaveNfe.Text;
// Cnpj do Detinatário ( empresa.CNPJ )
infEvento.CNPJ := qryEmpresa.FieldByName('CNPJ').AsString;
// data da manifestação
infEvento.dhEvento := now;
// tipo do evento
infEvento.tpEvento := teManifDestCiencia
// orção responsável por receber o evento ( 91 - Ambiente Nacional )
infEvento.cOrgao := 91;
//infEvento.descEvento := stDescEvento;
// Ambiente da Nota Fiscal Eletrônica
infEvento.tpAmb := taProducao
end;
boEventOAceito := False;
acbrNota.EnviarEvento(1);
with dmdModAcbrNFe.acbrNota.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento do
begin
if ((cStat = 128) or (cStat = 135) or (cStat = 136) or (cStat = 138)) then
boEventOAceito := True;
end;
3)-Se a Manifestação tiver sido aceita , finalmente efetuo a baixa do Arquivo Xml:
if (boEventOAceito) then
begin
acbrnfNota.WebServices.DownloadNFe.Executar;
cdsNotaARQUIVOXML.AsString := acbrnfNota.WebServices.DownloadNFe.retDownloadNFe.XML;
end;Seria basicamente esta a idéia?
Grato
-
Sr. Italo
Inicialmente eu gostaria de agradecer a sua resposta.
Conforme sugerido eu li a Nota Técnica 2014/002 versão 1.02b.
Ficaram apenas as seguintes dúvidas :
1)-O procedimento normal, pelo que eu entendi, seria :
Primeiro : Consultar quais notas fiscais de terceiros foram emitidas para o meu CNPJ
Segundo : Manifestar "Ciência da Operação" para a nota fiscal desejada
Terceiro : Finalmente fazer download do Xml desejado.
Então a questão é : o ACBR encapsulou todas estas tarefas dentro do Método : DistribuicaoDFePorUltNSU ou DistribuicaoDFePorChaveNFe ?
Isto é, o Acbr enviará automaticamente comando de "Ciência da Operação" ?2)-Em 2014 quando fiz o desenvolvimento da Consulta por NSU , constatei que em caso da empresa ter diversas Notas Fiscais a ela destinadas, aparecia erro de "consumo indevido".
Assim, cheguei a definir que seriam consultadas de 20 e 20 notas.
A questão é : na prática o sr. tem observado este problema atualmente?Grato
-
Companheiros
Gostaria de solicitar a ajuda de todos porque estou totalmente confuso!
Normalmente os nossos clientes fazem Manifestação das NFEs à eles destinadas utilizando ferramentas públicas e depois fazem download do xml utilizando recursos que cada um elegeu como ideal.
Depois utilizam recurso existente em nosso ERP para gerar uma Nota Fiscal de Entrada através da importação de arquivo XML.
Porém agora os clientes solicitaram que todos estes procedimentos sejam automáticos.
Assim, nosso Erp terá que ter a habilidade de :
- consultar notas fiscais destinadas ao CNPJ
- efetuar manifestação
- fazer download
- importar no ERP transformando-a em uma Nota Fiscal de CompraEm 2014 eu havia criado um recurso específico para Consultar Nfe Destinadas e Efetuar Manifestação ( que não foi utilizado porque os clientes já estavam acostumados a usar outras ferramentas de suas preferências ).
Porém agora quando testo esta rotina antiga é exibida a seguinte mensagem de erro :
"Após 02/05/2017 o Web Service ConsultaNFeDest foi desativado pela SEFAZ. Favor utilizar o método DistribuicaoDFe."
Assim gostaria de ajuda dos companheiros para entender exatamente o que devo alterar no procedimento de Inicial da Consulta utilizando este método : DistribuicaoDFe.Abaixo estou postando o código-fonte de 2014.
Grato
CÓDIGO-FONTE DESENVOLVIDO EM 2014:
// PARAMETRO 1 : Indicador de NFe a ser Consultada
//veja NT 2012/002 pág. 11 para identificar os valores possíveis 0 = Todas as NF-e; 1 = Somente as NF-e que ainda não tiveram manifestação do destinatário
// (Desconhecimento da operação, Operação não Realizada ou Confirmação da Operação); 2 = Idem anterior, incluindo as NF-e que também não tiveram a Ciência da Operação.*)
stIndNFe := '0';// PARAMETRO 2 : Indicador do Emissor da NF-e
//veja NT 2012/002 pág. 11 para identificar os valores possíveis /0 = Todos os Emitentes / Remetentes;
//1 = Somente as NF-e emitidas por emissores / remetentes que não tenham a mesma raiz do CNPJ do destinatário (para excluir as notas fiscais de transferência entre filiais).
stIndEmi := '0';// PARAMETRO 3 : Último NSU recebido pela Empresa veja NT 2012/002 pág. 11 para identificar os valores possíveis
// Caso seja informado com zero, ou com um NSU muito antigo, a consulta retornará unicamente as notas fiscais que tenham sido recepcionadas nos últimos 15 dias.
stUltNSU := qryUltimoNsu.FieldByName('NRO_NSU_ULTIMO').AsString;
if Trim(stUltNSU) = '' then
stUltNSU := '0';inInc := 0;
inNroPesquisa := 0;
inItemConsulta := 0;
dmdModAcbrNFe.acbrNota.NotasFiscais.Clear;
with dmdModAcbrNFe.acbrNota.WebServices.ConsNFeDest.retConsNFeDest do
begin
repeat
// incremento item da pesquisa ( servirá apenas para determinar se trata-se da primeira pesquisa
// visto que esta deverá ser utilizar o NSU da consulta anterior )
inNroPesquisa := inNroPesquisa + 1;// pesquiso na sefaz
try
dmdModAcbrNFe.acbrNota.ConsultaNFeDest(stCNPJEmpresa,
StrToIndicadorNFe(ok,stIndNFe),
StrToIndicadorEmissor(ok,stIndEmi),
stUltNSU);
except on e : exception do
if Trim(e.message) <> '' then
begin
stMsgErro := 'ATENÇÃO !' + #13 + #13 +
'A SEFAZ recebeu o pedido de Consulta ' + #13 + #13 +
'Mas retornou a seguinte mensagem de erro : ' + #13 + #13 + ' ' + Trim(e.message);
showmessage(stMsgErro);
end
else
begin
stMsgErro := 'ATENÇÃO !' + #13 + #13 +
'A SEFAZ recebeu o pedido de Consulta ' + #13 + #13 +
'Mas retornou a seguinte mensagem de erro : ' + #13 + #13 +
' ' + Trim(dmdModAcbrNFe.acbrNota.WebServices.ConsNFeDest.retConsNFeDest.xMotivo);
showmessage(stMsgErro);
end
end;for inInc := 0 to ret.Count - 1 do
begin
retorno := ret.Items[inInc];// inicializo dataset de inclusão do item
if (not(retorno.resNFe = nil) and not(retorno.resNFe.chNFe = EmptyStr)) then
if (Trim(retorno.resNFe.NSU) <> '') then
begin
// numero do NSU
stNro_Nsu := retorno.resNFe.NSU;
// nro. nota eletronica
stNumNfEletronica := retorno.resNFe.chNFe;
// cnpj
stCnpj := retorno.resNFe.CNPJCPF;
stCnpj := Copy(stCnpj,1,2) + '.' +
Copy(stCnpj,3,3) + '.' +
Copy(stCnpj,6,3) + '/' +
Copy(stCnpj,9,4) + '-' +
Copy(stCnpj,13,2) ;
// razão social
stRazaoSocial := AnsiUpperCase(retorno.resNFe.xNome);
// inscrição estadual
stInscricao := retorno.resNFe.IE;
// data da emissão
dtDataEmissao := retorno.resNFe.dEmi
// entrada ou saída
case retorno.resNFe.tpNF of
tnEntrada: stTipoNfe := '0'; // entrada
tnSaida: stTipoNfe := '1'; // saida
end;
// valor total da nota fiscal
cyValorNota := retorno.resNFe.vNF;
// data da autorização
dtDataAutoriza := retorno.resNFe.dhRecbto
// código da situação da nfe
stCodSituacaoNfe := '';
case retorno.resNFe.cSitNFe of
snAutorizado: stCodSituacaoNfe := '1'; // nfe autorizada
snDenegado: stCodSituacaoNfe := '2'; // nfe denegada
snCancelado: stCodSituacaoNfe := '3'; // nfe cancelada
end;
// Código da Situação da Manifestação do Destinatário
case retorno.resNFe.cSitConf of
smdSemManifestacao: stCodSituacaoManifestacao := '0'; // Sem Manifestação do Destinatario
smdConfirmada: stCodSituacaoManifestacao := '1'; // Confirmada Operaçao
smdDesconhecida: stCodSituacaoManifestacao := '2'; // Desconhecida
smdOperacaoNaoRealizada: stCodSituacaoManifestacao := '3'; // Operação não Realizada
smdCiencia: stCodSituacaoManifestacao := '4'; // Ciencia
end;except
AddMensagem('Erro Gravando NSU : ' + stNro_Nsu);
if qryIncItemConsulta.Transaction.InTransaction then
qryIncItemConsulta.Transaction.RollbackRetaining;
Raise;
end;
end;
end;stUltNSU := ultNSU;
if (inItemConsulta > spnMaximoNotas.Value) then
begin
break;
end;until (indCont = icNaoPossuiMaisDocumentos);
end; -
Sra. Juliana
Estamos emitindo Nfe normalmente.
Conseguindo enviar, cancelar, consultar,inutilizar.
Só aparece erro na Carta de Correção e em São Paulo
Grato
-
Companheiros
Boa Tarde!
Estamos observando erro na transmissão da Carta de Correção em Ambiente de Produção no Estado de
São Paulo.Apenas no ambiente de Produção ocorre o seguinte erro "Rejeição: Falha no schema XML".
Por acaso os companheiros estão observando este erro também?
Pela lógica o erro é da Sefaz-SP, concordam ?
Grato
-
Porque dá muito trabalho fazer algo que só vai beneficiar o Governo! Nós sofremos e o Governo recebe tudo pronto!
Será que pelo menos posso ganhar um boné para esquecer o cansaço acumulado de todos estes dias?
- 3
-
Sr. Italo
Será que eu consigo utilizar o ACBR MONITOR PLUS para assinar um arquivo xml?
Eu gero um arquivo ENT.TXT na pasta padrão do ACBRMONITORPLUS com um comando para assinar um arquivo que está em
em uma determinada pasta.
Acha que daria certo?
Obviamente no AcbrMonitorPlus estaria configurado o Certificado Digital e dados do emitente.
Grato
-
Sr. Juliomar
Entendi!
Vou fazer o procedimento.
Muito obrigado.
- 2
-
Sr. Italo
Na verdade eu procedo da seguinte forma :
- importo o arquivo txt ( acbrNota.NotasFiscais.LoadFromFile(stArquivo); )
- gero o arquivo xml ( acbrNota.NotasFiscais.Items[0].GerarXML; ) ( faço isto apenas 1 vez, embora eu tenha colocado repetido logo acima )
- assino o arquivo xml ( acbrNota.NotasFiscais.Assinar; )
- gero o arquivo em disco (acbrNota.NotasFiscais.Items[0].GravarXML(ExtractFileName(stArquivoXML),ExtractFilePath(stArquivoXML));)
Porém eu não consigo debugar porque o certificado digital do cliente é A3 e não posso trazê-lo para meu escritório.
Eu só consegui descobrir o erro porquefui colocando showmessage logo após cada linha, o que me possibilitou descobrir.
O Sr. acha que cometi algum erro na sequência de comandos?
Seria falta de alguma DLL específica?
Grato
-
Prezados Companheiros
Eu criei recurso para na minha aplicação importar arquivo TXT e gerar arquivo XML.
Tudo ocorreu com sucesso.
Vejam como ficou o código-fonte:
acbrNota.NotasFiscais.Clear;
acbrNota.NotasFiscais.Add;
NFeRTXT := TNFeRTXT.Create(acbrNota.NotasFiscais.Items[0].NFe);
NFeRTXT.CarregarArquivo(Trim(stArquivo));
if NFeRTXT.LerTxt then
NFeRTXT.Free
else
begin
NFeRTXT.Free;
//tenta XML
acbrNota.NotasFiscais.Clear;
try
acbrNota.NotasFiscais.LoadFromFile(stArquivo);
except
//ShowMessage('Arquivo NFe Inválido');
//exit;
end;
end;
acbrNota.NotasFiscais.Items[0].GerarXML;
acbrNota.NotasFiscais.Items[0].GravarXML(ExtractFileName(stArquivoXML),ExtractFilePath(stArquivoXML));
acbrNota.NotasFiscais.Items[0].GravarXML(ExtractFileName(stArquivoXML),ExtractFilePath(stArquivoXML));
Mas aí resolvi modificar para já gerar o arquivo assinado, caso o Número de Série do certificado esteja configurado no
computador, desta forma :
if (Trim(stNROCERTIFICADO) <> '') then
begin
acbrNota.NotasFiscais.Assinar;
end;
acbrNota.NotasFiscais.Items[0].GravarXML(ExtractFileName(stArquivoXML),ExtractFilePath(stArquivoXML));Só começou a exibir um erro de "TRANSACTION IS NOT ACTIVE" na linha do método ASSINAR.
Sabem os companheiros o que pode esta ocasionando isto?
Grato
-
Companheiros
Estou criando rotina para selecionar o Certificado Instalado na Máquina através desta rotina :
stNroCertificado := AcbrNota.SSL.SelecionarCertificado;
E isto está resultando em um erro "CLASSE NÃO REGISTRADA".
Sabem o que pode estar provocando o erro?
Grato
Carlos
-
Prezados Srs.
André e AmarildoBom Dia!
Apenas para finalizar o assunto, fiz novo teste utilizando a rotina de Conversão do Arquivo TXT para XML do ACBR e constatei que funcionou perfeitamente ( como um Relógio Suiço ).
Trata-se portanto de uma poderosa ferramenta para compatibilizar sistemas mais antigos com as novas normas da Nfe.
Assim, gostaria de agradecer sua ajuda e novamente pedir desculpas.
Eu me considero satisfeito com relação à este assunto.
Grato
- 1
-
Prezado Sr.
AndréPor favor me desculpe.
O Sr. está corretíssimo.O problema está integralmente no Arquivo TXT que eu gerei.
No arquivo txt gerado o Código Situação Tributária está cortado, exibindo '90', quando deveria ser '900'.
Solicito desculpas também ao Sr. Amarildo.
Grato
Carlos Augusto
Franca-Sp- 2
-
-
Sr. Amarildo
Obrigado por sua ajuda.
Vou aguardar uma ajuda dos senhores.
Grato
-
Sr. Amarildo
Existe um modelo de arquivo txt que fica dentro da pasta \acbr\trunk2\Doctos\Manuais\Layout_TXT_NFe_NFCe_4_00.odt.
Portanto, estou utilizando um manual de arquivo txt homologado pela Comunidade ACBR.
E o método acbrNota.NotasFiscais.LoadFromFile aceita plenamente o arquivo gerado pelo manual acima indicado.
Portanto, o problema é que quando importa o arquivo , estão ocorrendo os erros que descrevi acima.
Aliás, minha esperança para resolver o problema é justamente conseguir importar o arquivo conforme descrevi acima, visto que é uma funcionalidade
em vigor no ACBR.
Grato
-
Sr. Amarildo
Por precaução eu fiz teste de importação de um arquivo txt e sua geração em formato xml utilizando o Acbr, de umaempresa inscrita no Regime Normal de ICMS.
E constatei que também está com problema nesta funcionalidade de converter txt para xml com arquivos deste tipo.
Não está sendo gerada a Tag : PAG.
Assim, estou anexando o arquivo txt e bem como o arquivo xml resultante.
Veja que no arquivo txt temos a estrutura :
YA01|1|01|9.90||||
YA09|E no arquivo xml temos somente :
<pag/>Grato
Carlos
Franca-Sp -
Sr. Amarildo
Estou postando aqui :
- arquivo txt
- arquivo xml ( resultante do arquivo txt )
Eu fiz modificações em ambos arquivos apenas para trocar dados pessoais de : emitente / cliente / transportador.
O Sr.verá que no final do arquivo txt , no item 10 existe a tag : N10h| ( correspondente à Situação Tributária de Icms Simples : 500 ).
Mas, quando o arquivo é gerado , a tag fica assim : <CSOSN>0</CSOSN>.
Abaixo eu posto também o código fonte da geração do arquivo.
Grato por sua ajuda.
Carlos
Franca-Sp
CÓDIGO-FONTE:
acbrNota.NotasFiscais.Clear;
acbrNota.NotasFiscais.Add;
NFeRTXT := TNFeRTXT.Create(acbrNota.NotasFiscais.Items[0].NFe);
NFeRTXT.CarregarArquivo(Trim(stArquivo));
if NFeRTXT.LerTxt then
NFeRTXT.Free
else
begin
NFeRTXT.Free;
//tenta XML
acbrNota.NotasFiscais.Clear;
try
acbrNota.NotasFiscais.LoadFromFile(stArquivo);
except
//ShowMessage('Arquivo NFe Inválido');
//exit;
end;
end;
acbrNota.NotasFiscais.Items[0].GerarXML;
acbrNota.NotasFiscais.Items[0].GravarXML(ExtractFileName(stArquivoXML),ExtractFilePath(stArquivoXML));
-
Prezados Companheiros
Boa Noite!
Estou auxiliando amigos que possuem Sistema ERP mais antigo ( licença comprada ),e por questão financeira não tem como migrar para uma aplicação mais dispendiosa.
Desenvolvi rotina que :
- lê o arquivo txt que a aplicação deles gera ( Nfe 3.10 )
- mescla com informações que eu criei diretamente no banco de dados
- gera um arquivo txt no padrão do ACBR ( Nfe 4.00 )
- importa no componente ACBRNFE
- finalmente exporta como Arquivo XML ( Nfe 4.00 )Como eles são Regime Simples, eu fiz teste com todas Situações Tributárias do Simples, apenas para constatar se estava tudo correto.
Constatei que apenas na Situação Tributária 900 ocorreu um erro :
a)-No Arquivo TXT:
N|
N10h|0|90|3|35.00||18.00|6.30| |||||||||3.41|1.19|b)-No Arquivo XML:
<ICMS>
<ICMSSN>
<orig>0</orig>
<CSOSN>0</CSOSN>
</ICMSSN>
</ICMS>Vejam que na Sit.Tributária 500 este erro não ocorre :
<ICMS>
<ICMSSN500>
<orig>0</orig>
<CSOSN>500</CSOSN>
</ICMSSN500>Sabem os companheiros a causa deste problema?
Grato
-
Boa Tarde!
Sim eu vi o comentário do Sr. André!
Apenas quiz confirmar com os companheiros como estava a situação em todos os Estados onde possuem clientes.
Se estavam experimentando situações diferentes em diferentes estados.
Em nosso ERP , considerando contato de ontem com os companheiros, optei por parametrizar nos ambientes de Produção e Homologação.
Obrigado por sua ajuda.
-
Companheiros
Com relação à nova propriedade : Configuracoes.Geral.CamposFatObrigatorios recentemente criada, como vocês estão procedendo ?
Chegaram a criar em seus sistemas uma parametrização para informar valores nesta propriedade :
- por Estado
- por Ambiente ?Estão detectando diferenças de comportamento entre as Sefaz de cada estado relativo à aplicação da Regra de Validação Y01-20 ?
Grato
-
Companheiros
Com relação à nova propriedade : Configuracoes.Geral.CamposFatObrigatorios recentemente criada,
como vocês estão procedendo ?Chegaram a criar em seus sistemas uma parametrização para informar valores nesta propriedade :
- por Estado
- por Ambiente?
Estão detectando diferenças de comportamento entre as Sefaz de cada estado relativo à Regra de Validação Y01-20 ?
Grato
-
Companheiros
Obrigado pela sua atenção e pelas informações!
Me considero satisfeito com o contéudo da ajuda !
Obrigado
- 2
-
Sr. Amarildo
Estou em contato com as seguintes situações :
- Erp gera um Arquivo TXT que é importado no Emissor Público de NFE e Transmitido
- Erp gera um Arquivo XML que é importado no Emissor Público de NFE e TransmitidoA questão é : posso sugerir aos usuários destes Erps ( que não são de minha autoria ) uitilizarem o ACBRMONITORPLUS para :
- importar os arquivos
- transmitir
- imprimir o Danfe
evitando utilizarem o Emissor Público de NFE do Sebrae?Estas pessoas são amigas minhas e estão muito assustadas com a possibilidade do Emissor Público de Nfe do Sebrae não ficar pronto
até o final da Vigência da Nfe 3.10 ( dia 02/08/2018 ).
Grato
MÉTODO : DistribuicaoDFe - COMO UTILIZAR ?
em NFe/NFCe - Nota Fiscal Eletrônica
Postado
Sr. italo
Perfeito!
Me desculpe a confusão.
Vou fazer na sequência que o Sr. indicou.
Obrigado!