Ir para conteúdo
  • Cadastre-se

Ronaldo.Bispo

Membros
  • Total de ítens

    32
  • Registro em

  • Última visita

Tudo que Ronaldo.Bispo postou

  1. Olá... Costumava usar algo parecido com: var nfe: TACBrNFe; numero_serie: string; vencimento: TDateTime; begin nfe := TACBrNFe.Create(nil); try nfe.SSL.SSLCryptLib := cryWinCrypt; numero_serie := nfe.SSL.SelecionarCertificado; vencimento := nfe.SSL.CertDataVenc; finally FreeAndNil(nfe); end; end; espero ter ajudado
  2. Estava olhando no ACBrNFe_Exemplo, parece que define por nota fiscal procedure TfrmACBrNFe.AlimentarNFCe(NumDFe: String); var Ok: Boolean; BaseCalculo, ValorICMS: Double; begin with ACBrNFe1.NotasFiscais.Add.NFe do begin Ide.natOp := 'VENDA'; Ide.indPag := ipVista; Ide.modelo := 65; Ide.serie := 1; Ide.nNF := StrToInt(NumDFe); Ide.cNF := GerarCodigoDFe(Ide.nNF); Ide.dEmi := now; Ide.dSaiEnt := now; Ide.hSaiEnt := now; Ide.tpNF := tnSaida; Ide.tpEmis := TpcnTipoEmissao(cbFormaEmissao.ItemIndex); Ide.tpAmb := taHomologacao; //Lembre-se de trocar esta variavel quando for para ambiente de producao Ide.cUF := UFtoCUF(edtEmitUF.Text); Ide.cMunFG := StrToInt(edtEmitCodCidade.Text); Ide.finNFe := fnNormal; Ide.tpImp := tiNFCe; Ide.indFinal := cfConsumidorFinal; (....) será que funciona se alterar: Ide.tpAmb := taHomologacao; para: Ide.tpAmb := taProducao; No meu caso eu já tenho o xml pronto, então eu não carrego os atributos da classe do acbr, mas no xml é informado o ambiente também na tag ide... verifica como está no seu código se isso ajuda
  3. Boa tarde você está tentando alterar em código, seria: ACBrNFe1.Configuracoes.WebServices.Ambiente := taProducao;
  4. Olá tudo bem? Gostaria de reportar uma alteração de provedor. O município de Medianeira-PR utilizava o IPM agora utiliza o Elotech https://medianeira.oxy.elotech.com.br/iss/home [4115804] ; Incluído em 27/12/2021 ; Atualizado em 05/02/2024 Nome=Medianeira Provedor=EloTech Versao=2.03 ProRecepcionar=https://medianeira.iss.elotech.com.br/iss-ws/nfse203.wsdl HomRecepcionar=https://medianeira.iss.elotech.com.br/iss-ws/nfse203.wsdl Desde já, muito obrigado..
  5. Olá pessoal, tudo bem? Eu procurei nos códigos fontes algo sobre validação de feriados, ou algo que retorne se retorne se a data é um feriado, ou lista de feriados. Alguém sabe dizer se existe algo assim pronto, ou também se tiver alguma dica de uma api gratuita dai podemos contribuir e enviar para a comunidade. Agradecido... muito obrigado
  6. Bom dia! Atualizado e as urls estão estar corretas! Qualquer problema eu reporto. Muito Obrigado.
  7. Olá, tudo bem? Gostaria de reportar uma alteração para enviar NFS-e do munícipio de Gaúcha do Norte - MT. No ACBrNFSeXServicos.ini alterei [5103858] Nome=Gaucha do Norte UF=MT Provedor= para [5103858] Nome=Gaucha do Norte UF=MT Provedor=Coplan Versao=2.01 ProRecepcionar=https://www.gp.srv.br/tributario/gauchadonorte/anfse_web_service ProLinkURL=http://www.gp.srv.br/tributario/gauchadonorte/tnfse_validacao?%CodVerif% Desde já, agradeço... muito obrigado. ACBrNFSeXServicos.ini
  8. Olá, tudo bem.. se ajudar ainda tive alguns problemas parecido com NFS-e. Antes de gerar usamos o metodo do Delphi SetRoundMode(rmUp), então os valores arredondam para cima. SetRoundMode (Delphi) - RAD Studio Code Examples (embarcadero.com) Espero ter ajudado...
  9. Apenas pra reportar, Foi corrigido no commit 30235 dia 1-agosto.. Muito obrigado.
  10. Olá pessoal, tudo bem com vocês? Estou gerando o arquivo de remessa bancária de envio do banco Sisprime 084 (antigo uniprime) e estou com alguns problemas com os dias de protesto. Quando eu deixo sem dias de protesto/negativação é gerado a exception: porém eu não gostaria de informar protesto. No manual diz que posso utilizar a indicação 03 que é 'Sem Protesto / Negativação', e também diz que se indicação for 01,02,07 deve preencher os dias a protestar sendo de 5 a 55 dias. Então me ocorreu que a validação no método TACBrUniprimeNortePR.GerarRegistroTransacao400(ACBrTitulo :TACBrTitulo; aRemessa: TStringList) não está sendo verificado se a indicação é diferente de 3 e 99. então alterei o código na unit ACBrUniprimeNortePR.pas de: if (StrToIntDef(aIdentificacaoOcorrencia,0) < 5) or (StrToIntDef(aIdentificacaoOcorrencia,0) > 55) then raise Exception.Create(ACBrStr('O número de dias a protestar / negativar '+ 'deve ser mínimo 05 a máximo 55 dias')); para: if ( (iInstrucao1 <> 3) and (iInstrucao1 <> 99) and (StrToIntDef(aIdentificacaoOcorrencia,0) < 5) or (StrToIntDef(aIdentificacaoOcorrencia,0) > 55) ) then raise Exception.Create(ACBrStr('O número de dias a protestar / negativar '+ 'deve ser mínimo 05 a máximo 55 dias')); A princípio seriam essas alterações Desde já, muito obrigado ACBrUniprimeNortePR.pas Manual_de_CobranA34a_-_Layout_CNAB_400_Atualizado.pdf
  11. No meu caso foi sempre antes de enviar, consultar, cancelar, substituir. Eu sempre chamo o metodo TACBrNFSeX.GerarToken antes de chamar um desses serviços.
  12. Bom dia, tudo bem? Retornando um feedback a respeito do problemas com o cancelamento e substituição. Foi aberto um chamado no provedor a respeito disso, mas eu fiz os testes no ambiente de homologação fornecido pelo provedor o problema acontece lá também. Como lá ocorre o problema também, então os eventos de cancelamento e substituição estão comunicando corretamente, a principio não é um problema com o ACBr. Por hora é isso mesmo, qualquer coisa se precisar fazer alterações, eu faço e crio um novo tópico comunicando as alterações.
  13. Bom dia Eu deixei com 2 minutos e mesmo assim não foi. Então eu testei direto no ambiente de homologação do provedor e lá também não está funcionando. Acredito que o problema seja por lá mesmo, o envio e consulta estão tranquilo. Vou enviar um e-mail pra eles para verificar o que pode ser.
  14. Boa tarde, Muito obrigado. Já atualizei aqui. O envio e consulta está funcionando corretamente. O cancelamento e substituição estou com um problema de timeout. Eu estou fazendo alguns testes, mas acredito que seja algum problema de comunicação com o servidor. Vou fazer mais alguns testes então te passo um feedback.
  15. Bom dia, tudo bem! Fiz algumas alterações para incluir o serviço de substituir NFS-e no provedor da SoftPlan. Foi adicionado os métodos: procedure TACBrNFSeProviderSoftPlan.PrepararSubstituiNFSe(Response: TNFSeSubstituiNFSeResponse); procedure TACBrNFSeProviderSoftPlan.TratarRetornoSubstituiNFSe(Response: TNFSeSubstituiNFSeResponse); function TACBrNFSeXWebserviceSoftPlan.ConsultarDFe(ACabecalho, AMSG: string): string; Para substituir uma NFS-e é necessário enviar um XML com as informação que serão alteradas. Para esse provedor não precisa cancelar a NFS-e antes de substituir. Como o serviço de substituir NFS-e cancela antes de enviar uma nova, foi tratado em PrepararCancelaNFSe e TratarRetornoCancelaNFSe para ignorar caso TACBrNFSeX(FAOwner).Status = stNFSeSubstituicao. Também foi necessário fazer algumas alterações no GravarXML. Apenas algumas informações poderão ser substituídas outras serão igual a nota anterior logo, o XML de envio da NFS-e de substituição será diferente do XML de envio de quando gera a NFS-e. Então no GravarXML foi preciso separar em dois métodos para um para gravar o XML de substituição e outro para o XML que envia NFS-e; function GerarXmlEnvio: Boolean; function GerarXmlSubstituicao: Boolean; Estou anexando as units que foram alteradas para analise. Muito Obrigado. SoftPlan.GravarXml.pas SoftPlan.Provider.pas
  16. Boa tarde Italo, Atualizei os fontes e funcionou certinho. Verdade, não tinha me atentado nos parâmetros do método AddNode(); Muito obrigado.
  17. Olá tudo bem! Continuando os testes na NFPS-e de Florianópolis (SoftPlan), ao tentar enviar para um tomador que não é contribuinte ou pessoa física no caso, ocorre a falha: O campo "inscricaoMunicipalTomador" tamanho deve estar entre 1 e 7 <?xml version="1.0" encoding="UTF-8"?> <xmlNfpse> <message>O campo "inscricaoMunicipalTomador" tamanho deve estar entre 1 e 7</message> </xmlNfpse> para solucionar o problema, em SoftPlan.GravarXml.pas foi alterado para verificar se a informação está em branco, caso esteja não é inserido a tag no XML. if (NFSe.Tomador.IdentificacaoTomador.InscricaoMunicipal <> '') then NFSeNode.AppendChild(AddNode(tcStr, '#1', 'inscricaoMunicipalTomador', 0, 30, 1, NFSe.Tomador.IdentificacaoTomador.InscricaoMunicipal, '')); Então estou encaminhando a unit com as alterações para analise. Muito Obrigado. SoftPlan.GravarXml.pas
  18. Olá tudo bem! Fiz algumas alterações para consultar NFS-e e baixar o XML que ainda não estavam funcionando. A consulta da NFS-e retorna uma JSON e não vem o XML . O XML deve ser baixado por outro endpoint. O ConsultarNFSe irá retornar o JSON com as informações da NFS-e, logo em seguida é usado o ConsultarDFe para baixar o xml. function TACBrNFSeXWebserviceSoftPlan.ConsultarDFe(ACabecalho, AMSG: string): string; #define a url de acordo com o tpConsulta tcPorCodigoVerificacao ou tcPorNumero procedure TACBrNFSeProviderSoftPlan.PrepararConsultaNFSe(Response: TNFSeConsultaNFSeResponse); override; #trata o retorno lendo as informações do JSON e executa o ConsultarDFe para baixar o xml procedure TACBrNFSeProviderSoftPlan.TratarRetornoConsultaNFSe(Response: TNFSeConsultaNFSeResponse); override; #prepara a url para baixar o xml da NFS-e procedure TACBrNFSeProviderSoftPlan.PrepararConsultarDFe(Response: TNFSeConsultarDFeResponse); override; #Lê e salva o xml que retornou procedure TACBrNFSeProviderSoftPlan.TratarRetornoConsultarDFe(Response: TNFSeConsultarDFeResponse); override; ... No LerXML, foi alterado para copiar a situação da NFS-e (cancelada/normal) da tag statusNFPSe do XML. Situacao := ObterConteudo(ANode.Childrens.FindAnyNs('statusNFPSe'), tcInt); ... Em ACBrNFSeXConversao.pas, também foi adicionado o tipo tcPorCodigoVerificacao no enumerador TtpConsulta. TtpConsulta = (tcPorNumero, tcPorFaixa, tcPorPeriodo, tcServicoPrestado, tcServicoTomado, tcPorCodigoVerificacao); SoftPlan.Provider.pas SoftPlan.LerXml.pas ACBrNFSeXConversao.pas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...