Ir para conteúdo
  • Cadastre-se

TiicTechnology Sac

Membros Pro
  • Total de ítens

    18
  • Registro em

  • Última visita

Posts postados por TiicTechnology Sac

  1. Olá, amigos.

    Estou tentando usar o ACBrMAIL com o SMTP da MailerSend para envio de email, porém estou recebendo o "erro 530: Authentication Required". Alguém tem alguma dica?

    ACBrMail.Host := smtp.mailersend.net
    ACBrMail.Username := @meudominio.com
    ACBrMail.Password := **
    ACBrMail.SetTLS := true;
    ACBrMail.SetSSL := false;
    ACBrMail.Port :=  587;

    Desde já muito obrigado pela atenção.

  2. 1 hora atrás, Valmir Junior disse:

    Olá amigo.

    Na minha empresa usamos o TMS Aurelius e nos atende muito bem, tanto que nós usamos ele como padrão de projeto para outros bancos de dados (Postgre e SQLite).

    Algumas coisas que gosto nele: 

    • Algumas funcionalidades são acessadas por interface, então voce não precisa se preocupar em memory leaks.
    • A TMS tem um outro componente para criação de servidores REST JSON e o Aurelius já é completamente compativel com ele.

    Primeiramente, obrigado Valmir pela resposta.
    Só uma dúvida, você tem a licença TMS Aurelius no valor de 190 euros (R$ 1390,00)? 
    Atende as demandas em geral de desenvolvimento de aplicações VCL?
    image.thumb.png.67ac3f3d40f92c9474c715b4c1582a75.png

  3. Em 11/12/2018 at 15:31, Edson.pol disse:

    Caros,

    Vi que temos algumas opções de framework ORM, como:

    RestDataWare ( Free )    http://www.aegys.com.br/

    Delphi MVC Framework ( Free )    https://github.com/danieleteti/delphimvcframework

    TMS Aurelius  ( € 175,00 )  / R$ 775,00    https://www.tmssoftware.com/site/aurelius.asp

    ORMbr ( R$1.349,00 ) / Não entendi se tem ou não versão free    https://www.ormbr.com.br/produto/ormbr-rest-server-e-client-component

     

    Alguém utiliza alguma destas opções, e pode dar uma opinião ?

     

    []´s

    Edson.

     

    Boa tarde, amigo!
    Você usou algum desses? Como foi? Comenta ai sua experiência?
    Gostaria de indicação de um Framework ORM para uso em Delphi + Firebird.

    Desde já obrigado pela atenção.

  4. Em 15/06/2023 at 11:00, TiicTechnology Sac disse:

    Na data de hoje 15/06/2023 as 10:59, ainda continua o erro:
    Ambiente: Homologação

    Erro Interno: 0
    Erro HTTP: 500
    URL: https://hcte.fazenda.mg.gov.br/cte/services/CTeRecepcaoSincV4
    <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
    <S:Body><S:Fault xmlns:ns4="http://schemas.xmlsoap.org/soap/envelope/"><S:Code><S:Value>S:Sender</S:Value>
    </S:Code><S:Reason><S:Text xml:lang="en">Cannot find dispatch method for {http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSincV4}cteDadosMsg</S:Text>
    </S:Reason></S:Fault></S:Body></S:Envelope>

     

    Abri uma reclamação junto a Secretaria de Estado de Fazenda de Minas Gerais - SEF/MG - SEF/MG. Aguardando resposta...

    RESPOSTA:

    Ref. a mensagem: 1.415.439 - DOCUMENTOS ELETRÔNICOS > CT-e > CONTINGÊNCIA / TRANSMISSÃO / VALIDAÇÃO

     Senhor(a),

    Conforme retorno do setor responsável, informamos que em MG, a versão CT-e 4.0 em HOMOLOGAÇÃO/TESTE já está no ar desde o dia 22/5/2023.

    Consta no Manual de orientação que a previsão em Produção será em Junho/2023. Contudo, segundo a STI, ainda não há data específica confirmada.

    Há de se destacar que as duas versões costumam funcionar juntas por uns 6 meses. Quando em MG for interrompida a versão 3.0, a informação da data será disponibilizada no portal SPED em ( http://www.sped.fazenda.mg.gov.br/spedmg/ ).

    Nesse sentido, se ao efetuar testes do CT-e em ambiente de HOMOLOGAÇÃO e observar a ocorrência de erros, deverá nos encaminhar os arquivos XML de envio e o XML de retorno (correspondente ao XML de envio), contendo a rejeição/erro para verificação. Sem tais arquivos, a análise ficará comprometida.

    O Arquivo XML de envio do documento (aquele de envio no emissor para autorização) deverá estar assinado, ou seja, o campo " SignatureValue " do XML deverá estar preenchido, comprovando a assinatura.

    Obs.: Nos dois arquivos acima, os campos "</DigestValue>" e "digVal" deverão ser iguais.

    Em 16/06/2023 at 08:47, JeannyPaiva disse:

    Com as alterações do arquivo anexado consegui emitir CTe para MG. 

    Envio de eventos respondeu, porém está retornando rejeição (628 - Rejeicao: Erro Atributo ID do evento nao corresponde a concatenacao dos campos (ID + tpEvento + chCTe + nSeqEvento)). Acredito que estejam validando incorretamente de acordo com a regra dos eventos da versão 3.0 com a sequencia de apenas 2 dígitos.

    O último retorno da SEF/MG foi um não retorno. 🤷🏼‍♀️

    image.thumb.png.a439e469d46a26a8053262870edfd6ed.png

    ACBrCTeWebServices.pas 129.09 kB · 3 downloads

    Quase sempre assim! Nunca somos respondidos pela SEF/MG com soluções/ajuda aproveitável kkkkkk.

    • Curtir 1
  5. Na data de hoje 15/06/2023 as 10:59, ainda continua o erro:
    Ambiente: Homologação

    Erro Interno: 0
    Erro HTTP: 500
    URL: https://hcte.fazenda.mg.gov.br/cte/services/CTeRecepcaoSincV4
    <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
    <S:Body><S:Fault xmlns:ns4="http://schemas.xmlsoap.org/soap/envelope/"><S:Code><S:Value>S:Sender</S:Value>
    </S:Code><S:Reason><S:Text xml:lang="en">Cannot find dispatch method for {http://www.portalfiscal.inf.br/cte/wsdl/CTeRecepcaoSincV4}cteDadosMsg</S:Text>
    </S:Reason></S:Fault></S:Body></S:Envelope>

     

    Abri uma reclamação junto a Secretaria de Estado de Fazenda de Minas Gerais - SEF/MG - SEF/MG. Aguardando resposta...

    • Curtir 2
  6. Em 25/07/2022 at 10:01, Italo Giurizzato Junior disse:

    Bom dia,

    Pelo que me recordo ele deveria criar uma pasta chamada Evento e dentro desta uma pasta com o nome do tipo de evento (por Exemplo: Cancelamento) e dentro desta salvar os XMLs do evento em questão.

    Com relação a mudar o nome do XML, se não me falha a memória isso não é possível, não existe uma propriedade que lhe permite definir o nome para o XML do evento.

    Bom dia Ítalo, desde já obrigado pelo retorno.
    Ítalo disse: "Pelo que me recordo ele deveria criar uma pasta chamada Evento e dentro desta uma pasta com o nome do tipo de evento (por Exemplo: Cancelamento) e dentro desta salvar os XMLs do evento em questão."
    Não está comportando assim não! Vou analisar pode ser alguma coisa no meu código!

  7. Bom dia, hoje meu componente está configurado assim:

    with ACBrNFe.Configuracoes.Arquivos do
      begin // Configura caminho dos arquivos
        Salvar := false;
        SepararPorMes := true;
        AdicionarLiteral := false;
        if dados.qryConfigLITERAL.Value = 'S' then
          AdicionarLiteral := true;

        EmissaoPathNFe := true;
        SalvarEvento := true;
        SepararPorCNPJ := true;
        SepararPorModelo := false;

        PathSalvar := dados.qryConfigPATHSALVAR.Value;
        PathSchemas := dados.qryConfigPATHSCHEMAS.Value;
        PathNFe := dados.qryConfigPATHNFE.Value;
        PathInu := dados.qryConfigPATHINUTI.Value;
        PathEvento := dados.qryConfigPATHEVENTO.Value;
      end;

     

    Só que mesmo setando "PathEvento"  está salvando na pasta "C:\MeuSistema\NFCe\xml", pelo que olhei essa pasta é padrão. Gostaria de salvar em uma pasta especifica e de alterar o nome do evento.xml.

    Desde já muito obrigado.

  8. Mais uma dúvida, como faço para alterar o nome do arquivo XML desse evento?

    Exemplo:

    Evento salva o nome do arquivo 31211016000685000103650010000002509000038270-sit.xml gostaria de alterar o nome desse evento para 31211016000685000103650010000002509000038270-CancelSubst.xml, ou seja, no final do nome do arquivo colocar "-CancelSubst.xml"

    Desde já agradeço a atenção de todos.

  9. Boa tarde a todos.

    Estou com a seguinte duvida sobre salvar o evento de cancelamento por substituição em uma pasta especifica usando o ACBr.

    Hoje tenho a estrutura de pastas C:\MeuSistema\NFCe\ dentro dessa pasta tem as subpastas Enviadas, Canceladas e etc (Organizado por CNPJ, Ano, Mês).

    Gostaria de ao realizar o cancelamento por substituição com ACBr, os XML referentes ao evento do cancelamento sejam salvos na pasta C:\MeuSistema\NFCe\Canceladas (Organizado por CNPJ, Ano, Mês).

    Hoje o ACBr está salvando na pasta C:\MeuSistema\NFCe\xml onde está sendo salvo todos os eventos gerados no sistema.

    A necessidade principal é porque os contadores estão solicitando os XML dos cancelamentos e fica difícil e trabalhoso encontrar os respectivos XML de Cancelamentos.

    Desde já agradeço a atenção de todos.

  10. Bom dia, acho que encontrei a solução, fiz o seguinte:

    1º Quando tento enviar para a Sefaz/MG e ocorre o erro eu agora salvo o XML Assinado no Banco. Antes estava salvando XML sem assinatura e apenas assinava na hora da consulta;

    2º Na hora da Consulta uso o método (ACBrNFe.NotasFiscais.LoadFromString(qryNFCeGravadasXMLASSINADO.Value) com o XML Assinado, garantindo a igualdade dos XML entre Sefaz e meu Sistema;

    Estou realizando os teste e em homologação tá tudo certo!

    Obrigado.

    • Curtir 1
  11. 3 minutos atrás, BigWings disse:

    Está gravando o XML dessa nota, pra depois tentar consultar e cancelar/inutilizar?

    O erro de digest value ocorre na consulta, quando a chave é a mesma mas o conteúdo do XML está diferente do que foi enviado pra SEFAZ.

    Primeiramente muito obrigado pela ajuda, BigWings!

    Está gravando o XML dessa nota, pra depois tentar consultar e cancelar/inutilizar?

    Sim! Eu salvo o XML original que não obtive resposta da Sefaz/MG. Ai depois um "robô" tenta recuperar e cancelar por substituição essa NFC-e.

    ACBrNFe.Configuracoes.Arquivos.PathEvento := dados.qryConfigPATHCAN.Value;

      try
        Chave := Trim(OnlyNumber(qryNFCeGravadasCHAVE.Value));
        idLote := '1';
        CNPJ := copy(Chave, 7, 14);
        Protocolo := qryNFCeGravadasPROTOCOLO.Value;
        Justificativa := 'Cancelamento Por Substituição Devido a Falta de Retorno no Envio da NFC-e.' +
          ' Assim Foi emitida a NFC-e Nº: '+ IntToStr(qryNFCeGravadasNUMERO.AsInteger + 1) +
          'Série: ' + qryNFCeGravadasSERIE.AsString + ' como Substituta.';

        ACBrNFe.EventoNFe.Evento.Clear;
        with ACBrNFe.EventoNFe.Evento.Add do
        begin
          infEvento.chNFe := Chave;
          infEvento.CNPJ := CNPJ;
          infEvento.dhEvento := now;
          infEvento.tpEvento := teCancSubst;
          infEvento.detEvento.cOrgaoAutor := Dados.qryEmpresaID_UF.Value;
          infEvento.detEvento.tpAutor := taEmpresaEmitente;
          infEvento.detEvento.verAplic := '1';
          infEvento.detEvento.chNFeRef := qryNFCeGravadasCHAVE_SUBSTITUTA.Value;
          infEvento.detEvento.xJust := Justificativa;
          infEvento.detEvento.nProt := Protocolo;
        end;

        ACBrNFe.EnviarEvento(StrToInt(idLote));

        if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 135 then
        begin
          ACBrNFe.NotasFiscais.Clear;
          ACBrNFe.WebServices.Consulta.NFeChave := qryNFCeGravadasCHAVE.Value;
          ACBrNFe.WebServices.Consulta.Executar;

          if ACBrNFe.WebServices.Consulta.cStat = 101 then
          begin
            qryNFCeGravadas.Edit;
            qryNFCeGravadasSITUACAO.Value := 'C';
            qryNFCeGravadasCANCEL_SUBSTITUICAO.Value := 'C';
            qryNFCeGravadasMOTIVOCANCELAMENTO.Value := Justificativa;
            qryNFCeGravadasFK_VENDA.Clear;
            qryNFCeGravadasFLAG.Value := 'N';
            qryNFCeGravadasABERTO.Value := 'N';
            qryNFCeGravadas.Post;
            Dados.Conexao.Commit;
            ACBrNFe.NotasFiscais.GravarXML();

            memoLog.Lines.Add(' Retorno: 101 - Cancelamento por Substituição');
            memoLog.Lines.Add(' Status: Cancelada');
            memoLog.Lines.Add('-----------------------------------------------------------------');
          end;
        end

    Continua...

    O interessante é que antes o cancelamento por substituição estava funcionando normalmente. Outro detalhe, o XML salvo no banco é o mesmo que tentei enviar sem alteração.

  12. Caros amigos,

    Estou com o seguinte problema quando ocorre instabilidade no servidor de Autorização de NFC-e na Sefaz/MG. Faço a segue rotina a abaixo:

    1º Tento enviar NFC-e, exemplo, Número: 20 e ocorre da Sefaz/MG não retorna a autorização;

    2º Gero uma nova NFC-e com Número: 21 no modo Contingência/Offline;

    3º Após período configurado o sistema tentar enviar as NFC-e em Offline;

    4º Já as NFC-e que ficaram pendentes por falta de retorno da Sefaz/MG, eu tento recuperar a NFC-e, caso a mesma não conste na Base da Sefaz/MG eu Inutilizo. Agora se a NFC-e existe na Sefaz/MG faço o Cancelamento por Substituição;

    O erro ocorre no momento do Cancelamento por Substituição, assim que cancelo retorna o erro: "DigestValue do documento CHAVE DE ACESSO não confere". Sei que foi cancelada porque pego a chave de acesso e vejo o cancelamento no SPED/MG.

    Estava tudo funcionando corretamente, o erro começou após o dia 01/10/2021, abaixo segue o código que estou usando para Cancelamento Por Substituição;

    procedure TFrmPDV.CancelamentoSubstituicao;
      var Chave, idLote, CNPJ, Protocolo, Justificativa: string;
    begin
      if (Trim(qryNFCeGravadasCHAVE_SUBSTITUTA.Value) <> '') and (qryNFCeGravadasSITUACAO.Value = 'G') then
      begin
        if Length(qryNFCeGravadasCHAVE_SUBSTITUTA.Value) <> 44 then
        begin
          memoLog.Lines.Add(' Erro: Chave de Acesso Substituta invalida! Chave deve Conter 44 números.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end;
      end;

      // Recuperar o Protocolo
      if (qryNFCeGravadasPROTOCOLO.IsNull) or (Trim(qryNFCeGravadasPROTOCOLO.Value) = '') then
      begin
        if ACBrNFe.WebServices.Consulta.cStat = 100 then
        begin
          qryNFCeGravadas.Edit;
          qryNFCeGravadasCHAVE.Value := copy(ACBrNFe.NotasFiscais.Items[0].NFe.infNFe.id, 4, 100);
          qryNFCeGravadasPROTOCOLO.Value := ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.nProt;
          qryNFCeGravadasXML.Value := ACBrNFe.NotasFiscais.Items[0].XMLAssinado;
          qryNFCeGravadasFLAG.Value := 'N';
          qryNFCeGravadasABERTO.Value := 'N';
          qryNFCeGravadas.Post;
          Dados.Conexao.Commit;
          ACBrNFe.NotasFiscais.Items[0].GravarXML();
        end
        else
        begin
          memoLog.Lines.Add('Status: ' + #13 + IntToStr(ACBrNFe.WebServices.Consulta.cStat) +
           '-' + ACBrNFe.WebServices.Consulta.XMotivo);
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end;
      end;

      if (qryNFCeGravadasPROTOCOLO.IsNull) or (Trim(qryNFCeGravadasPROTOCOLO.Value) = '') then
      begin
        memoLog.Lines.Add(' Erro: Não é possível efetuar o Cancelamento da NFC-e! Não Existe Protocolo de Autorização.');
        memoLog.Lines.Add('-----------------------------------------------------------------');
        exit;
      end;

      // Valida se Chave Substituta Foi Transmitida
      Dados.qryConsulta.SQL.Clear;
      Dados.qryConsulta.SQL.Text := 'SELECT NUMERO FROM NFCE_MASTER WHERE SITUACAO=''T'' AND CHAVE=:chave';
      Dados.qryConsulta.Params[0].Value := qryNFCeGravadasCHAVE_SUBSTITUTA.AsString;
      Dados.qryConsulta.Open;

      if Dados.qryConsulta.IsEmpty then
        exit;

      ACBrNFe.Configuracoes.Arquivos.PathEvento := dados.qryConfigPATHCAN.Value;

      try
        Chave := Trim(OnlyNumber(qryNFCeGravadasCHAVE.Value));
        idLote := '1';
        CNPJ := copy(Chave, 7, 14);
        Protocolo := qryNFCeGravadasPROTOCOLO.Value;
        Justificativa := 'Cancelamento Por Substituição Devido a Falta de Retorno no Envio da NFC-e.' +
          ' Assim Foi emitida a NFC-e Nº: '+ IntToStr(qryNFCeGravadasNUMERO.AsInteger + 1) +
          'Série: ' + qryNFCeGravadasSERIE.AsString + ' como Substituta.';

        ACBrNFe.EventoNFe.Evento.Clear;
        with ACBrNFe.EventoNFe.Evento.Add do
        begin
          infEvento.chNFe := Chave;
          infEvento.CNPJ := CNPJ;
          infEvento.dhEvento := now;
          infEvento.tpEvento := teCancSubst;
          infEvento.detEvento.cOrgaoAutor := Dados.qryEmpresaID_UF.Value;
          infEvento.detEvento.tpAutor := taEmpresaEmitente;
          infEvento.detEvento.verAplic := '1';
          infEvento.detEvento.chNFeRef := qryNFCeGravadasCHAVE_SUBSTITUTA.Value;
          infEvento.detEvento.xJust := Justificativa;
          infEvento.detEvento.nProt := Protocolo;
        end;

        ACBrNFe.EnviarEvento(StrToInt(idLote));

        if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 135 then
        begin
          ACBrNFe.NotasFiscais.Clear;
          ACBrNFe.WebServices.Consulta.NFeChave := qryNFCeGravadasCHAVE.Value;
          ACBrNFe.WebServices.Consulta.Executar;

          if ACBrNFe.WebServices.Consulta.cStat = 101 then
          begin
            qryNFCeGravadas.Edit;
            qryNFCeGravadasSITUACAO.Value := 'C';
            qryNFCeGravadasCANCEL_SUBSTITUICAO.Value := 'C';
            qryNFCeGravadasMOTIVOCANCELAMENTO.Value := Justificativa;
            qryNFCeGravadasFK_VENDA.Clear;
            qryNFCeGravadasFLAG.Value := 'N';
            qryNFCeGravadasABERTO.Value := 'N';
            qryNFCeGravadas.Post;
            Dados.Conexao.Commit;
            ACBrNFe.NotasFiscais.GravarXML();

            memoLog.Lines.Add(' Retorno: 101 - Cancelamento por Substituição');
            memoLog.Lines.Add(' Status: Cancelada');
            memoLog.Lines.Add('-----------------------------------------------------------------');
          end;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 910 then
        begin
          memoLog.Lines.Add(' Rejeição 910: Chave de Acesso NF-e Substituta inválida.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 911 then
        begin
          memoLog.Lines.Add(' Rejeição 911: Chave de Acesso NF-e Substituta incorreta.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 912 then
        begin
          memoLog.Lines.Add(' Rejeição 912: NF-e Substituta inexistente');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 913 then
        begin
          memoLog.Lines.Add(' Rejeição 913: NF-e Substituta Denegada ou Cancelada.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 914 then
        begin
          memoLog.Lines.Add(' Rejeição 914: Data de emissão da NF-e Substituta maior que 2 horas da data de emissão da NFe a ser cancelada.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 915 then
        begin
          memoLog.Lines.Add(' Rejeição 915: Valor total da NF-e Substituta difere do valor da NF-e a ser cancelada.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 916 then
        begin
          memoLog.Lines.Add(' Rejeição 916: Valor total do ICMS da NF-e Substituta difere do valor da NF-e a ser cancelada.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 917 then
        begin
          memoLog.Lines.Add(' Rejeição 917: Identificação do destinatário da NF-e Substituta difere da identificação do destinatário da NF-e a ser cancelada.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 918 then
        begin
          memoLog.Lines.Add(' Rejeição 918: Quantidade de itens da NF-e Substituta difere da quantidade de itens da NF-e a ser cancelada.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 919 then
        begin
          memoLog.Lines.Add(' Rejeição 919: Item da NF-e Substituta difere do mesmo item da NF-e a ser cancelada.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else if ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 920 then
        begin
          memoLog.Lines.Add(' Rejeição 920 - Tipo de Emissão inválido no cancelamento por substituição.');
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end

        else
        begin
          memoLog.Lines.Add(' Status: ' + IntToStr(ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat) +
           '-' + ACBrNFe.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo);
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end;

      except on E: Exception do
        begin
          memoLog.Lines.Add('-----------------------------------------------------------------');
          memoLog.Lines.Add(' ERROR: ' + E.Message);
          memoLog.Lines.Add('-----------------------------------------------------------------');
          exit;
        end;
      end;

    end;

     

    Desde já agradeço pela atenção e ajuda de todos.

    Att, Arthur

  13. BigWings, primeiramente muito obrigado pela ajuda.

    Conseguir encontrar aqui um topico https://www.projetoacbr.com.br/forum/topic/61714-rejeição-539-duplicidade-de-nf-e-com-diferença-na-chave-de-acesso-estado-goiás/?tab=comments#comment-404456

    Na consulta pela chave de acesso, desde que esteja usando o certificado do próprio emitente, deveria retornar a rejeição 562 "Código Numérico informado na Chave de Acesso difere do Código Numérico da NF-e [chNFe:99999999999999999999999999999999999999999999]" também com a chave que consta na SEFAZ como no exemplo.

    E realmente retorna a chave que está com duplicidade, assim consigo recuperar a chave e recuperar o XML.

    Essa comunidade é show!

    Só gratidão por existir 👏

  14. Bom dia!

    Gostaria de saber se existe um local onde consigo acessar as NFC-e emitidas por minha empresa?

    Motivo é simples existe duplicidade por divergência de chave de acesso e agora não consigo recuperar o XML da nota porque não tenho a chave.

    Observação, essa semana passada a Sefaz MG está com lentidão e as vezes não retorna o XML autorizado e tenho tido varias duplicidade de notas.

    Algumas consigo recuperar e fica tudo certo!

    Desde já agradeço pela atenção.

    Obrigado.

×
×
  • 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.