Ir para conteúdo
  • Cadastre-se

CalixtoJB

Membros
  • Total de ítens

    24
  • Registro em

  • Última visita

Posts postados por CalixtoJB

  1. Boa tarde,

    Desculpe eu não sabia se eu deveria ter comentado no posto anexo, ou abrir um novo, se for necessário eu posso remover esse e comentar no post relacionado.

    Eu baixei o manual que o João havia anexado, porém, eu não estava conseguindo gerar o hash como a criptografia de senha, então mandei um email para a SilTecnologia pedindo ajuda e os manuais atualizados então segue anexo a resposta:

    "Bom dia Sr. Calixto,

    Sobre o e-mail abaixo, em Itapevi está funcionando a versão padrão Abrasf 2.3. Essa é a versão mais atual do webservice disponível.

    Segue abaixo as URL´s de homologação e produção:

    Homologação: https://homologacao.siltecnologia.com.br/tbitapevi/services/Abrasf23?wsdl

    Produção: https://itapevi.siltecnologia.com.br/services/Abrasf23?wsdl

    Segue anexo manual de integração, e exemplos de XML.

    O manual que vc verificou, é de uma versão mais antiga do webservice, que o link de acesso tinha o nome "WSEntrada".

    Ele é o que existia antes do padrão Abrasf, e para os novos contribuintes que desejam criar webservice, estamos orientando usar o padrão Abrasf."

     

    Estou anexando os arquivo que eles me mandaram e também alterei no arquivo ini a config, com isso consegui comunicar com Itapevi corretamente:

     

    ProRecepcionar=https://itapevi.siltecnologia.com.br/services/Abrasf23?wsdl

    image.thumb.png.9629de9196cb3df8cd3ace1f24572442.png

     

     

    Atenciosamente,

    Equipe SIL Tecnologia

    exemplo_gerarnfse_itapevi.xml ManualWebServiceAbrasf.pdf exemplo_cancelarnfse_itapevi.xml

  2. Boa tarde,

    No arquivo ACBrEFDBloco_K_Class.pas ao alterar:

    De:
              Add( LFill('K220') +
                   LFill( DT_MOV ) +
                   LFill( COD_ITEM_ORI  ) +
                   LFill( COD_ITEM_DEST  ) +
                   DFill( QTD, 3 ) );

     

    Para: 
              Add( LFill('K220') +
                   LFill( DT_MOV ) +
                   LFill( COD_ITEM_ORI  ) +
                   LFill( COD_ITEM_DEST  ) +
                   DFill( QTD, 3 )+
                         DFill( QTD_DEST, 3 ));

    Deveria ter a checagem igual ao arquivo ACBrEFDBloco_D_Class.pas 

    IfThen(DT_INI >= EncodeDate(2018,01,01),

     

    Grato.

  3. Bom dia a todos,

    Baixei todos os fontes hoje e estou validando o ACBrNFe_demo, estou tentando utilizar a opção Manif. Dest. - Conf. Operação em ambiente de produção e esta retornando:

    Erro Interno: 0
    Erro HTTP: 500

    Analisei os fontes e verifiquei o seguinte:

    O início do problema ocorre na procedure TDFeWebService.InicializarServico;

    Ao entrar na procedure TNFeEnvEvento.DefinirURL o código define a versão do serviço através da linha:
      VerServ  := VersaoDFToDbl(FPConfiguracoesNFe.Geral.VersaoDF);  (No caso v400)

    Após isso ao entrar na procedure TACBrDFe.LerServicoChaveDeParams há o seguinte código:


      LerServicoChaveDeParams( Sessao, NomeServico, VersaoAchada, URL );
      LerDeParams( FPIniParams.ReadString(Sessao, 'WSDL', ''), NomeServico, VersaoAchada, Servico );
      LerDeParams( FPIniParams.ReadString(Sessao, 'SoapAction', ''), NomeServico, VersaoAchada, SoapAction );


    Ao entrar na primeira linha LerServicoChaveDeParams( Sessao, NomeServico, VersaoAchada, URL )  é feito uma tentativa para buscar a versão do evento no resource ACBrNFeServicos.res com a chave [NFe_AN_P], porém como ainda não existe a versão 4.00 em produção é retornado a primeira encontrada no caso RecepcaoEvento_1.00 = https://www.nfe.fazenda.gov.br/RecepcaoEvento/RecepcaoEvento.asmx.

    As proximas duas linhas retornam o Servico e o SoapAction vazios.

    Até aqui tudo certo.

    Porém ao voltar na procedure TDFeWebService.InicializarServico o código entra na proxima procedure DefinirServicoEAction;

    Nela esta o seguinte:

    procedure TNFeEnvEvento.DefinirServicoEAction;
    begin
      if (FPConfiguracoesNFe.Geral.VersaoDF >= ve400) then
      begin
        if EstaVazio(FPServico) then
          FPServico := GetUrlWsd + 'NFeRecepcaoEvento4';
        if EstaVazio(FPSoapAction) then
          FPSoapAction := FPServico + '/nfeRecepcaoEvento';
      end
      else
      begin
        FPServico := GetUrlWsd + 'RecepcaoEvento';
        FPSoapAction := FPServico;
      end;
    end;

    Ai está o problema, pois a URL é da versão 1.00 achada no arquivo .res e agora é feito uma checagem pela versão configurada, sendo assim ao enviar a requisição ocorre erro.

    Um pouco a frente no código também ocorre o mesmo problema pois cai na procedure TNFeWebService.InicializarServico;

    procedure TNFeWebService.InicializarServico;
    begin
      { Sobrescrever apenas se necessário }
      inherited InicializarServico;

      FOldSSLType := FPDFeOwner.SSL.SSLType;
      FOldHeaderElement := FPHeaderElement;

      { Caso seja versão 4.0, deve certificar que está usando TLS1.2 }
      if FPConfiguracoesNFe.Geral.VersaoDF >= ve400 then
      begin
       // FPDFeOwner.SSL.SSLType := LT_TLSv1_2;   // Servidor da BAHIA não está funcionando com esta configuração
        FPHeaderElement := ''; //Versão 4.00 não tem o elemento <soap12:Header>
      end;

      TACBrNFe(FPDFeOwner).SetStatus(FPStatus);
    end;


    Só que eu não sei qual seria a melhor solução, talvez mudar a configuração FPConfiguracoesNFe.Geral.VersaoDF temporariamente? Mas acho que não seria o ideal. 

    O que vocês acham? Talvez ajustando esses pontos já solucione vários tópicos que vi a respeito de erro 500.

    Grato.

  4. Bom dia,

    Atualizei o fonte e estou testando o AcbrMail, desculpe a pergunta mas gostaria de saber para que serve a propriedade From.

    Pergunto isso porque informando ou não esta propriedade sempre sai o email do UserName.

  5. Boa tarde senhores,

    A procedure SavePDF do arquivo ACBrNFeDANFeRL.pas não possui a propriedade Owner (a procedure imprimir está ok), e com as novas alterações está dando erro no fonte ACBrNFeDANFeRLRetrato.pas TACBrNFe(TACBrNFeDANFeRL(Owner).ACBrNFe).GerarChaveContingencia(FNFe), para correção apenas incluir na procedure o Owner assim como a Imprimir possui.

     

    Att.,

  6. Bom dia

    Atualizei hoje os fontes mas meu problema ainda persiste,

    Meu cliente possui o formato de data (dd.MMM.aaaa) quando tento imprimir uma Danfe ocorre erro na função:

    unit ACBrDFeUtil.pas

    class function FormatDate(const AString: string): String;overload; //ocorre erro
    class function FormatDate(const AData: TDateTime): String;overload; //funciona corretamente.

    O que eu fiz foi remover a função que possui parâmetro string e mudar as chamadas como no exemplo do código:

    De:   

    Box([fsLeft],XPos,YPos,21,aHeigthPadrao,'Data de Emissão',DFeUtil.FormatDate(DateToStr(Ide.DEmi)),taCenter,True);

    Para:

    Box([fsLeft],XPos,YPos,21,aHeigthPadrao,'Data de Emissão',DFeUtil.FormatDate(Ide.DEmi),taCenter,True);

    Não seria melhor deixar apenas a função com parâmetro datetime, já que para a outra é necessário converter para string e dentro dela converte novamente para date?

     

  7. Boa tarde Juliomar,

     

    Estou com o mesmo problema do nosso amigo, tem determinadas situações que o EnviaEmailThread não sai do loop, o que pude repara é que no TSendMailThread já passou pelo Execute e também pelo Destroy antes de voltar para checagem do loop, neste caso creio que a variável volta a ficar com o valor default do boolean False, ficando preso no loop.

     

    Eu coloquei uma variável externa para controle mas acho que precisa de alguma correção talvez ter um notify para sair do loop após o Destroy do TSendMailThread.

     

    Grato

    • Curtir 1
  8. Bom dia,

     

    Tive a seguinte situação emiti notas de Importação com a Versão 2.0 agora estou carregando o arquivo para gerar Carta de Correção.

     

    Falha na validação:

      <dest>idEstrangeiro - Nenhum valor informado

      <entrega>CNPJ Nenhum valor informado

      ISENTO violates patterns contraint of [0-9]{2,14}

     

    Então alterei o a unit pncNFew para permitir carregar xml da versão 2.0 adicionando as tags obrigatórios na 3.0

     

    Segue arquivo alterado acho que pode ser util.

     

    Atenciosamente.

     

    pcnNFeW.pas

  9. Solução que encontrei foi a seguinte pelo que entendi não pode-se no FreeOpenSSL usar o evento EVP_cleanup pelo fato de outros fontes usarem essa dll segui o exemplo do .pas Projeto ACBr\Fontes\synalist\ssl_openssl_lib.pas e alterei essa procedure para o Finalization.

    • Curtir 1
  10. Boa tarde senhores,

     

    Estou com um problema que talvez seja falha minha mas não consegui achar uma solução, me parece que o AcbrEad bloqueia o serviço do smtp, para confirmar fiz um projeto novo com um código bem simples:

     

    //--------------------------------------------------

     with TACBrEAD.Create(nil) do
      try
        MD5FromString('123');
      finally
        Free;
      end;

    //--------------------------------------------------


      with TACBrNFe.Create(nil) do
      try
        NotasFiscais.LoadFromFile('c:\xxx-NFe.xml');

        NotasFiscais.Items[0].EnviarEmail(
          'smtp.xxx.com.br', '587', '[email protected]',
          'xxyyxx', '[email protected]', '[email protected]', '',
          nil, False, False, nil, nil, False, True, '[email protected]', True, True);

        NotasFiscais.Clear;
      finally
        Free;

      end;

     

    O código acima retorna o erro

    SMTP ERROR: Login Sucess - Other undefined Status

     

    Se eu remover a parte do AcbrEad o envio da NFe passa normalmente.

     

    Alguém poderia me ajudar?

  11. Boa tarde amigos,

     

    Estou usando o Demo AcbrNFSe selecionando  a Cidade Caxias/2103000/MA que possui o serivdor Fiorilli, porém ao selecionar Gerar e Enviar NFSe mostra a msg do inicio do tópico: A funcionalidade Gerar NFSe não esta disponivel para o provedor: Fiorilli.... já baxei os fontes hoje e ainda não consegui gerar a NFS-e há algum configuração a ser feita?

     

    Grato

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