Ir para conteúdo
  • Cadastre-se

MauricioGuedes

Membros
  • Total de ítens

    58
  • Registro em

  • Última visita

Posts postados por MauricioGuedes

  1. Em 14/11/2017 at 08:23, Intelliware disse:

    Bom dia Juliomar,

    Ontem, após vários testes e comparações, descobrimos o seguinte:

    Se na propriedade do projeto estiver marcada a opção:

    
    Delphi Compiler -> Compiling -> Runtime errors -> Range checking -> True

    configuracao-projeto.thumb.jpg.f00eb63aff80668156698efbbde80e6b.jpg

    Na unit GZIPUtils.pas, na função:

    
    function crc32(thecrc: cardinal; S: TStream; len: Cardinal): Cardinal;

    Na linha 395:

    
    Result := UpdateCrc32(b, Result);

    Começamos a receber o erro de Range check error.

    Pelo que verificamos em debug, o escopo do Cardinal é de 0..4294967295, enquanto que a função UpdateCrc32 retorna um tipo Integer que pode ser de -2147483648..2147483647. Logo, ao retornar um valor negativo ou um valor além do escopo do tipo da variável, vai ocasionar a exceção descrita.

    O demo da ACBr e o outro projeto nosso que não deu erro estava False na propriedade acima. No projeto que apresentava o problema setamos para False, efetuamos um Clean e um Build e voltou a ter o mesmo comportamento dos outros projetos. 

    Com isto, resolvemos o problema. Estamos te passando o que concluímos para uma avaliação.

    Desde já agradeço.

     

    No nosso projeto optamos por modificar a unit do GZIPUtils com o seguinte trecho de código:

     

        {$R-} // disable range checking
          Result := UpdateCrc32(b, Result);
        {$R+} // enable range checking

    Pois desabilitar o range checking para nós não é a melhor opção, em virtude de alguns problemas passarem despercebidos.

    Fonte: https://stackoverflow.com/questions/4997911/switch-off-delphi-range-checking-for-a-small-portion-of-code-only

     

    • Obrigado 1
  2. Boa tarde!

     

     

    Utilizo o seguinte código para realizar o cancelamento de uma nota fiscal eletrônica de serviço:

     

       ACBrNFSe.NotasFiscais.Clear;
       ACBrNFSe.NotasFiscais.LoadFromFile(caminhoXML);
       ACBrNFSe.CancelarNFSe('1');

     

    O problema é que no método: function TNFSeR.LerNFSe: Boolean;

     

    Não encontrei nenhum método de leitura específico para o provedor proEL, ocorrendo que no momento de enviar o cancelamento no método:

    function TWebServices.CancelaNFSe(ACodigoCancelamento: String; const CarregaProps: boolean): Boolean;

     

    as informações da nota fiscal ficam vazias, no código abaixo, pois a o método ACBrNFSe.NotasFiscais.LoadFromFile(caminhoXML) não consegue ler as informações do arquivo xml.

     

     if (TACBrNFSe( FACBrNFSe ).Configuracoes.WebServices.Provedor = proEL) then
     begin
       Self.CancNfse.NumeroNFSe       := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.Numero;
       Self.CancNfse.CNPJ                    := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj;
       Self.CancNfse.IM                         := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal;
       Self.CancNfse.CodigoMunicipio  := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.PrestadorServico.Endereco.CodigoMunicipio;
     end;

     

     

    Para o provedor proEL, existe alguma outra maneira de ler o Arquivo xml ou então cancelar uma nota fiscal de serviço? Pois preenchendo as informações da nota manualmente no código a cima, a nota é cancelada com sucesso, conforme testes realizados hoje.

     

    Preciso saber se é necessário criar um método de leitura do xml, pois ele é um pouco diferente dos demais provedores ou se é de outra forma que é realizado o cancelamento para este provedor em específico.

  3. Barrys, consegui solucionar o problema de Catanduvas - SC, tirando do Case do métodoGetConfigCidade na Classe TProvedorPronim para assinar o Lote, verifique se sua cidade esta para assinar o lote, pois caso teja, você deverá inserir no case, pois não conseguir encontrar a mesma lá.

    Fazendo esta alteração, realize os testes necessário, segue abaixo como faço o envio de uma nota fiscal de serviços:

     

     try
        pCarregarNFSe(idNfContabil, ISS_RETIDO);
        ACBrNFSe.Enviar(NR_LOTE, False);
      except
        on Excessao: Exception do
        begin
          FNr_lote          := NR_LOTE;
          FNr_recibo        := '';
          FNr_protocolo     := ACBrNFSe.NotasFiscais.Items[0].NFSe.Protocolo;
          FHr_Processamento := ACBrNFSe.NotasFiscais.Items[0].NFSe.dhRecebimento;
          FChave            := '';
          FNr_nota          := ACBrNFSe.NotasFiscais.Items[0].NFSe.Numero;
          FPathXml          := ACBrNFSe.Configuracoes.Geral.PathSalvar;
          FCaminhoXml       := ACBrNFSe.Configuracoes.Geral.PathSalvar+'\Ger\'+IntToStr(NR_LOTE)+'-env-lot.xml';
          FStatus           := IIF(ACBrNFSe.NotasFiscais.Items[0].NFSe.Situacao='3',85,86);
          Messagedlg('Ocorreu o seguinte erro ao gerar nota de serviço: ' + Excessao.Message + ' Consulte a nota no formulário de manutenção!', mtError, [mbOk], -1);
          Exit;
        end;
      end;

     

     

     

    OBS: Faço desta forma, pois eu faço algumas validações depois e salvo o arquivo xml manualmente, mas o componente Acbr configurado corretamente, faz a gravação do arquivo para você.

  4. Boa tarde!

    Conforme contato com o suporte do provedor Simpliss a tag IdentificacaoPrestador é obrigatório para o provedor.

    Adicionei no método GerarPrestador a alteração.

    É possível ser commitado para mim esta situação?

     

    Segue em Anexo arquivo alterado para análise.

     

     

    pnfsNFSeW.pas

    • Curtir 1
  5. Boa tarde!

    no provedor proNIM

    no atributo

    ConfigCidade.Identificador := 'id'; // Alterado para poder Assinar no Schema é id

    estava maísculo o "Id", modifiquei o mesmo para minúsculo e funcionou, emitiu a nota fiscal,

    como devo proceder?

     

    pelo que entendi, você acha que para outras cidades, vai dar problema?

    • Curtir 1
  6. Boa tarde, Ítalo!

     

    Não consegui entender a sua Mensagem no commit Revision: 8082 no dia 09/01/2015 e acredito que estou enviando de alguma forma incorreta os lotes, sendo que fiquei hoje a tarde comparando os fontes alterados para tentar encontrar alguma diferença na cidade de catanduvas - SC e a principio não encontrei.

     

    E estou com a seguinte rejeição, posteriormente update realizado neste mês:

    <Mensagem>Assinatura do Hash nao confere</Mensagem><Correcao>Reenvie asssinatura do Hash conforme algoritmo estabelecido no Manual de Instrucao da NFS-e</Correcao>

     

    Faço o envio da seguinte forma:

    ACBrNFSe.Enviar(NR_LOTE, False);

     

    Saberia me orientar para correção do problema?

     

    Fico no aguardo de um auxílio!

  7. Boa tarde!

     

    Adicionei no arquivo pnfsConversao.pas

     

    a Cidade de Vargem Bonita no Servidor da Betha, pois não estava constando a mesma, ocorrendo erro de código da cidade não encontrado.

    Gostaría de saber se algum adm poderia comitar esta alteração?

     

    Fontes Atualizado agora.

     

    Segue em Anexo Arquivo modificado.

    pnfsConversao.pas

    • Curtir 1
  8. Boa tarde!

     

    Na impressão de nota fiscal de serviço, utilizando FortesReport não imprime as parcelas da nota fiscal realizada á prazo.

     

    Abri os fontes para análise e a principio não foi implementado.

     

    Gostaria de saber como proceder.

     

     

    • Curtir 1
  9. Sim, quanto a isso não resta dúvidas que sim, mas eu gostaria de saber se a Acbr é flexível neste tipo de situação.

    Pelo fato de termos migrado nossa nota fiscal e impressão para a Acbr, anteriormente essas informações eram enviadas e alguns clientes reclamaram.

    Para questão de esclarecimentos realmente eu perguntei!

  10. Boa tarde!

     

    Tenho a seguinte dúvida, alguns de nossos clientes estão solicitando que no DANFE, quando for realizada uma venda de veículo, saia as informações do Cilindradas junto com Chassi, cor e etc.

    Há possibilidade de realizar esta alteração? 

    Caso seja possível, eu posso estar fazendo e postando aqui os fontes...

    Só gostaria de entender melhor como funciona esta situação, se o projeto Acbr é flexível para tais alterações!

     

    Grato.

     

  11. Eu nunca passei ele por parâmetro, porque até então tinha um and lá, mas como houve a mudança para o or, começou a dar problema =)

    Então, agora passando o parâmetro como false, não irá mais dar problema!

  12. Pois é, você esta enviando com o False para Assinatura, eu não estou setando ele como false, esta seria a solução acredito. 

    Pois caso a cidade esteja para assinar o lote, o  TConfiguracoes( Self.Owner ).Certificados.FAssinaRPS  := ConfigCidade.AssinaRPS; irá estar True. 

     

    Como houve a mudança na ACBR, não acabei adequando os fontes ao mesmo, as vezes não confiro tudo que muda. 

    • Curtir 1
  13. Bom dia!

    Sim Italo, estou com meus fontes atualizados, hoje de manhã foi a ultima fez que atualizei os mesmos e com a alteração que fiz, citada á cima, como estava testando em homologação ocorria a rejeição do CNPJ, mas fui testar direto em produção e a nota fiscal aprovou, sabe me dizer que tipo de correção foi feita? 

     

    Talvez eu tenha que modificar minha forma de enviar?

    Quando for para a cidade de Maravilha, por exemplo, enviar(False)? 

  14. Bom dia!

    Estou criando este novo tópico, pois não tive mais nenhuma resposta no anterior criado, infelizmente, já tentei algumas alterações próprias e não consegui resolver o problema que ocorre na seguinte linha: signedKey := xmldsig.sign(dsigKey, $00000002);

     

    O retorno que ocorre é erro não especificado.

     

    Provedor PRONIM - Município de Maravilha.

     

    Para o problema não acontecer, no momento de realizar a assinatura, 

     

    os seguintes booleanos que identificam se o mesmo irá assinar ou não

        if self.Configuracoes.Certificados.AssinaRPS or AssinaRPS

     

    mas o AssinaRPS esta pré definido como true, então ele sempre entra para assinatura e ocorre o erro não especificado,

    mudei para

        if self.Configuracoes.Certificados.AssinaRPS and AssinaRPS

     

    e o erro muda, não ocasionando mais o problema e sim somente um erro de CNPJ do prestador não autorizado...

     

    fiz o teste a cima, pois no setconfigmunicipio na unit AcbrNFSEConfiguracoes as configurações de assinaRPS e LOTE estão vindo como falso, conforme atribuição nas seguintes linhas:

     
     TConfiguracoes( Self.Owner ).Certificados.FAssinaRPS  := ConfigCidade.AssinaRPS;
     TConfiguracoes( Self.Owner ).Certificados.FAssinaLote := ConfigCidade.AssinaLote;
     
     

     

     
    Alguém já se deparou com o problema, que tenha alguma sugestão para resolver o problema?
  15. Então, eu utilizo o método Acbrnfse.enviar(Lote) que dentro chama o  NotasFiscais.Assinar; que tem o AssinaRPS = true como parâmetro, então ele entra para assinar, estou enviando de forma incorreta?

    Estranho que funcionava perfeitamente até certos dias.

    Percebi que existe o método  Acbrnfse.gerar também.

    Qual seria o correto de utilizar, única diferença é que um espera um Lote e outro espera um RPS?  

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