-
Total de ítens
118 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que cantelli.r postou
-
Diferença entre o XML gerado pelo ACBR e pelo site da Betha
cantelli.r replied to José Léo Boita's tópico in ACBrNFSe
Isso mesmo, dei um ctrl+c na linha errada aqui. hehe Obrigado pela correção Italo. -
Italo, boa tarde. Estive dando uma analisada em algumas rotinas, e tenho uma sugestão a fazer para padronizar os retornos. Algumas classes possuem a property NFSeRetorno, outras possuem uma função que tem uma variável NFSeRetorno. Ainda, outras possuem uma property e uma variável NFSeRetorno. Veja: Classe TNFSeEnviarLoteRPS Função Executar possui variável NFSeRetorno : TretEnvLote; Classe TNFSeConsultarSituacaoLoteRPS Possui Property NFSeRetorno: TRetSitLote; Função/SubFunção Processando possui Variável NFSeRetorno : TretSitLote; Classe TNFSeConsultarLoteRPS Possui Property NFSeRetorno: TRetLote; Função Executar possui variável NFSeRetorno : TretLote; Classe TNFSeConsultarNfseRPS Possui Property property NFSeRetorno: TRetNfseRps Classe TNFSeConsultarNfse Possui Property NFSeRetorno: TRetNfse Função Executar possui variável NFSeRetorno : TretNfse; Classe TNFSeCancelarNfse Possui Property NFSeRetorno: TretCancNFSe Comentada a variável da função Executar NFSeRetorno : TretCancNfse; Minha sugestão seria, deixar apenas a property/variável da Classe. Tirar das funções das classes, e ainda, não dar um free no final. Da forma que faz o Cancelamento, está muito bom, pois por exemplo, no meu ERP, eu consigo acessar essa property mesmo depois de ter feito o cancelamento. Isso me ajuda pois gravo algumas informações do retorno em meu BD. Compreende minha idéia? Da forma que está hoje para as rotinas (fora a de cancelamento), eu preciso se quiser ter os retornos, criar uma variável do tipo de retorno (TRet...), adicionar o RetWS à ele, e fazer a leitura do XML. Ainda, tenho que adicionar uses do componente. Seria muito útil se os retornos ficassem visíveis até o momento de dar um free no componente. E se estiver assigned, poderia ser dado um free no início da rotina caso de precisar executar novamente. Aguardo um retorno, creio que isto seria interessante para todos. Abraço.
-
Diferença entre o XML gerado pelo ACBR e pelo site da Betha
cantelli.r replied to José Léo Boita's tópico in ACBrNFSe
Léo, o XML gerado pelo ACBr que você deve comparar é aquele que no final possui o "-c.xml" no nome. Caso não estiver gerando este, tem que habilitar no configurar componente. Atribua True para a property ACBrNFSe.Configuracoes.WebServices.Visualizar. Abraço. -
Como faço para capturar o retorno da NFS-e
cantelli.r replied to José Léo Boita's tópico in ACBrNFSe
Boa tarde José. Eu estou capturando da seguinte forma: Protocolo: ACBrNFSe.NotasFiscais.Items.NFSe.Protocolo Situação: ACBrNFSe.NotasFiscais.Items.NFSe.Situacao Número: ACBrNFSe.NotasFiscais.Items.NFSe.Numero Para salvar, você pode usar ACBrNFSe.Configuracoes.Geral.Save(Protocolo + '-sit.xml', FRetWS, FConfiguracoes.Arquivos.GetPathGer) (isso faz na consulta já). Não sei se é a melhor forma, mas eu estou para o retorno instanciando uma variável do tipo "TretLote" (adicionando a uses pnfsConsLoteRpsResposta). Aí eu crio novamente a lista, no meu ERP, das NFs, ou dos erros.. fiz assim, pois facilita para mim algumas coisas. Ex.: vNFSeRetornoListaNFSe := TretLote.Create; vNFSeRetornoListaNFSe.Leitor.Arquivo := TAbrasf.ACBrNFSe.WebServices.ConsLote.RetWS; vNFSeRetornoListaNFSe.LerXml; Qualquer coisa, só perguntar. Espero ter ajudado em algo. -
Bom dia Italo. Removi informações de CNPJ, CPF e endereços dos arquivos. Então, eu entendi a parte do cancelamento, mas note que a tag , aparece mesmo em NFs que não foram canceladas, porém, sem informação. Existe na , uma subtag , no arquivo que te mandei está "true". Minha dúvida é: será que ela pode estar com o valor "false"? Ter havido algum problema no cancelamento, e ter retornado false, e a NF não ter sido cancelada mas ter as tags do grupo preenchidas? Acredito que a Tag "DataHora" estaria vazia nesse caso né? Aí sim não há necessidade de armazenar a tag "Sucesso". Não sei se fui claro na dúvida. Mas olhando melhor para os XMLs vejo que talvez não há mesmo a necessidade, mesmo a tag sucesso sendo "false", daria pra se basear na "DataHora". Abraço.
-
Bom dia. Estive dando uma olhada na rotina de cancelamento da NFSe e me apareceu uma dúvida. Nas informações de cancelamento, não deveria haver uma propriedade para armazenar se a NFSe foi cancelada com sucesso ou não? No XML, nas informações de cancelamento existe a tag, do tipo boolean, "Sucesso". Vi que atualmente exite apenas uma propriedade que armazena data e hora. Porém, pode ser que o retorno de sucesso seja "False", ou estou enganado? Em anexo, o XML de retorno do provedor Betha quanto ao cancelamento, e também o XML da consulta que o componente faz após o cancelamento. Também anexei um XML de retorno de erro de cancelamento, onde não há a tag Sucesso, apenas a lista de mensagens de erro. Aguardo um retorno, abraço. XMLs Cancelamento.rar
-
Então Italo, no anexo, na pasta old são os schemas que estava usando até agora, acredito ser os mesmos que você tem. Fora deste pasta, são os schemas que baixei agora no site da Betha. Não encontrei os xsds de cada mensagem. No manual da betha diz: "O Schema XML (arquivo XSD) correspondente a cada uma das mensagens XML de pedido e de retorno utilizadas pelo Web Service pode ser obtido na internet acessando o Portal do Sistema de Notas Fiscais de Serviço Eletrônicas das Secretarias Municipais de Fazenda." Acessei o ambiente de teste, e não encontrei nada pra baixar referente aos XSDs. Link do manual é https://e-gov.betha.com.br/e-nota/manuais/layout.pdf Vou dar mais uma procurada nos schemas das mensagems. Abraço. Betha.rar
-
Beleza Italo, já baixei. Obrigado cara. Se puder dar uma olhada no meu post, neste tópico mesmo, antes desse referente à consulta, falando da validação do lote para o provedor Betha e me repassar o que você acha melhor... Abraço!
-
Italo, retorno dos testes das consultas. Vi que você comentou uma parte na função "TACBrNFSe.ConsutarLoteRps", e no demo adicionou a seleção do RPS no botão Consultar Lote. Acho que temos um problema aí. A ConsultarLote estava correta, com aquela parte que faz a carga com base no número de Lote: " aPath+ANumLote+'-env-lot.xml' ". Creio que da forma que ficou agora não está certo... não vejo porque selecionarmos um XML de RPS, uma vez que estamos consultando um lote, e já passamos o Número (para carga do arquivo e RPSs contidos no lote) e o protocolo (este para consulta). Estou certo? As outras cargas de arquivos.. para cancelamento e demais consultas, pelo que vi ficou perfeito agora. Abraço.
-
Boa tarde Italo, beleza, agora ficou padronizado a carga para todos os lugares necessários. Vou fazer alguns testes e qualquer coisa lhe aviso. Bom, como tenho trabalhado somente com o provedor Betha, hoje resolvi fazer um teste após as mudanças que fiz no "envelopamento" e geração das mensagens para este provedor. Atribuí "True" para a função TProvedorBetha.GetValidarLote, e para a minha surpresa, passou na validação que faz na TWebServicesBase.DoNFSeEnviarLoteRPS. Italo, você sugere deixar True mesmo? Creio que poderá dar problema caso os schemas da Betha forem alterados certo? Mas aí cabe a nós observarmos e acertarmos no componente/envio o que for necessário. Estou certo? Aguardo uma resposta. Caso for isso mesmo, se puder acertar o result da GetValidarLote da ACBrProvedorBetha, para True. Abraço.
-
ACBRNFS-e - Cod. identificação regime especial Tributação
cantelli.r replied to colmanetti's tópico in ACBrNFSe
Boa tarde colmanetti. Cara, você chegou a olhar no schema e não tem a opção "0"? Olha, acho que você deveria verificar com os responsáveis, porque no site da prefeitura existe a opção e nos schemas não. Tenho uma sugestão, não sei se dará certo. Caso você estiver usando o componente reformulado, Acesse a Unit referente ao seu provedor, por exemplo ACBrProvedorBetha, e tenta atribuir "False" ao result da função GetValidarLote. Isto será usado na ACBrNFSeWebServices, na procedure TWebServicesBase.DoNFSeEnviarLoteRPS. Tive alguns problemas com validação também, e só assim consegui resolver. Abraço. -
Italo, eu de novo. rsrs Seguinte, outro dia me equivoquei quanto a rotina TACBrNFSe.ConsutarNFSeporRps. Te falei que não estava carregando o arquivo XML do RPS, que a FNotasFiscais estava vazia. E você adicionou a carga do arquivo na rotina. Porém, hoje dando uma olhada no Demo, vi que quando chama essa função, ainda no demo, ele pede para selecionar o arquivo, e então carrega o arquivo. Eu não estava fazendo isso eu meu ERP. Ou seja, agora está carregando duas vezes, veja: procedure TfrmDemo_ACBrNFSe.btnConsultarNFSeRPSClick(Sender: TObject); begin OpenDialog1.Title := 'Selecione a Rps'; OpenDialog1.DefaultExt := '*-Rps.xml'; OpenDialog1.Filter := 'Arquivos Rps (*-Rps.xml)|*-Rps.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*'; OpenDialog1.InitialDir := ACBrNFSe1.Configuracoes.Geral.PathSalvar; if OpenDialog1.Execute then begin ACBrNFSe1.NotasFiscais.Clear; ACBrNFSe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName); ACBrNFSe1.ConsutarNFSeporRps(ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero, ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie, TipoRPSToStr(ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Tipo), ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.Cnpj, ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.InscricaoMunicipal); E na ACBrNFSe, faz a carga novamente: function TACBrNFSe.ConsutarNFSeporRps(ANumero, ASerie, ATipo, ACnpj, AInscricaoMunicipal: String): Boolean; var aPath: String; begin // Incluido por Rodrigo Cantelli aPath := FConfiguracoes.Geral.PathSalvar; if FConfiguracoes.Arquivos.AdicionarLiteral then NotasFiscais.LoadFromFile(aPath+'RPS\'+ANumero+ASerie+'-Rps.xml') else NotasFiscais.LoadFromFile(aPath+ANumero+ASerie+'-Rps.xml'); if NotasFiscais.Count <= 0 then begin if Assigned(Self.OnGerarLog) then Self.OnGerarLog('ERRO: Nenhum RPS adicionado'); raise Exception.Create('ERRO: Nenhum RPS adicionado'); exit; end; Result := WebServices.ConsutaNFSeporRps(ANumero, ASerie, ATipo, ACnpj, AInscricaoMunicipal); end; Acredito que nesse ultimo código, apenas da linha " if NotasFiscais.Count <= 0 " em diante precisa estar, uma vez que já carregou o arquivo ao selecionar. Como disse, falha minha, eu é que não estava carregando o arquivo. Se puder dar uma olhada, e conferir se é isto mesmo. Obrigado
-
Italo, um pequeno ajuste. Quando você puder, na ACBrNFSeWebServices, na função TNFSeCancelarNfse.Executar, muda a linha TACBrNFSe( FACBrNFSe ).SetStatus( stNFSeConsulta ); para TACBrNFSe( FACBrNFSe ).SetStatus( stNFSeCancelamento ); Abraço.
-
Já me localizei aqui, falha minha. Realmente está tudo ok. Obrigado Italo. Assim que eu tiver um retorno da Betha (se tiver), posto todas as cidades que eles atendem. Abraço.
-
Italo, bom dia. Quando você disse que adicionou as cidades, se referia às que o Socho passou? Fiz update agora cedo, e além das que já tinha, apenas Chapecó, passada pelo Juliomar, aparece nas do provedor Betha. Se puder dar uma olhada. Abraço.
-
Bom dia Socho. Eu estou no aguardo de uma lista do setor comercial da Betha, com todas as cidades atendidas por eles. Mas com certeza o que você passou ajuda muito. Obrigado! E obrigado por já adicionar Italo. Abraços!
-
Boa tarde pessoal. Como o componente já está praticamente funcionando 100% com o provedor Betha (Betha Sistemas), gostaria de pedir aos usuários que saibam de municípios que utilizam a solução Fly e-Nota da Betha informe neste tópico. Atualmente tem apenas 3 cidades no componente (Criciúma, Pinhalzinho e São José - SC). Tentei contato com a Betha para eles me passarem a lista de municípios mas tá difícil. Então, se puderem contribuir, mencionem o nome do município e código do IBGE se possível. E assim vamos aumentando a gama de cidades atendidas pelo ACBrNFSe. =] Grande abraço.
-
Italo, complementei sua implementação no ACBrNFSe.pas. Dê uma procurada por {Rodrigo Cantelli}. Isso resolveu o problema da carga das NotasFiscais para a rotina ConsutarNFSeporRps. Mas e para a rotina ConsutarNFSe? Nessa rotina se não passar data como parametro, retorna todas as NFs, e se passar, retorna do período. Não teria que adicionar à lista de NFs conforme a leitura do arquivo de retorno? Se puder ver algo disso, creio que é só o que estaria faltando então. Grande abraço. ACBrNFSe.pas
-
Italo, boa tarde. Não sei se chegou a baixar as alterações que anexei no post anterior. Em anexo estou enviado aquelas, mais a implementação da rotina ConsultarNFSe. Além do que comentei no post anterior, alterei na Unit pnfsConsNfseResposta a linha 252, e na ACBrNFSeWebServices, a linha 2031. Além de alterações na ACBrProvedorBetha. Tive o mesmo problema que na consulta de NFSe por RPS. A FNotasFiscais está "vazia". Creio que teria que dar um add, ou algo assim. Se puderes ajudar quanto à isso. No mais creio que agora ficou 100% as rotinas para o provedor Betha. Abraço! alteracoes_betha_4.rar
-
Italo, fiz algumas alterações no ACBrProvedorBetha, como havia comentado. Já testei e está tudo ok. Se puderes incluir no Branches. Também implementei a consulta de NFSe por RPS. Porém estou com um problema nela. Devo ter esquecido de algo. Está enviando a consulta e lendo o retorno do XML. Porém, na unit ACBrWebServices quando chego no final da TNFSeConsultarNfseRPS.Executar, onde ele vai atribuir os valores à FNotasFiscais, a lista de notas não está criada, e dá erro. FNotasFiscais.Count é "0". Não sei o que esqueci, estou dando uma olhada mas tá complicado. Pode me ajudar? Em anexo ACBrProvedorBetha com as alterações que fiz para "padronizar", e mais alterações nas linhas 179, 208 e 365, para funcionar a consulta de NFSe por RPS. Arquivo pnfsConsNfseporRPSResposta com alterações na linha 250 e Arquivo ACBrNFSeWebServices com alterações na linha 1841. Encontrarás as alterações se pesquisares por {Rodrigo Cantelli} Aguardo um retorno. Abraço Italo! alteracoes_betha_3.rar
-
Bom dia Italo. Apenas para lhe informar. Estou fazendo mais algumas alterações no ACBrProvedorBetha, para manter no mesmo padrão dos outros. Vou ver se já implemento o que falta também. Assim que eu finalizar te passo. Abraço.
-
Italo, testei EnviarLoteRPS, ConsultarLoteRPS, ConsultarSituacaoLoteRPS e CancelarNfse. Ambas as rotinas funcionaram para o provedor Betha. Como você mencionou, falta ConsultarNfse e ConsultarNfseRPS pra ficar 100%. Vou ver o que consigo aqui. Se você alterar mais alguma coisa por favor me informe. Abraço e obrigado.
-
Beleza Italo. Fiz update, assim que testar lhe dou um retorno. Até.
-
Tarde Italo, em anexo apenas o arquivo ACBrProvedorBetha.pas com algumas alterações, removendo as linhas desnecessárias. Não entendi o código que você adicionou na "GeraEnvelopeConsultarNFSeporRPS". Se pesquisares por "{rodrigo" vai encontrar meus comentários e as ultimas alterações feitas. Caso perceber mais alguma coisa basta avisar. Vou ver se implemento as outras consultas ou se agora dou continuidade ao projeto que estou desenvolvendo. Precisando estou à disposição. Abraço! ACBrProvedorBetha.pas
-
Realmente Italo, dá pra melhorar algumas coisas. As linhas que você citou são desnecessárias. No caso da ultima por exemplo, eu posso tirar o prefixo direto na Gera_TagI e Gera_TagF. Creio que fica melhor né? Agora que está funcionando de acordo, vou fazer algumas alterações/melhorias no que diz respeito à Betha e lhe passo em seguida beleza? Abraço!