-
Total de ítens
329 -
Registro em
-
Última visita
-
Days Won
2
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que João Paulo Müller postou
-
Integração NotaBlu (NFS-e município de Blumenau)
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Bom dia Pessoal, estive realizando outros testes hoje e percebi que o namespace dos schemas também mudam, sendo assim deveria ter schemas diferentes para cada município. Acredito que já há uma solução para os casos comentado que podem ser diferentes para cada município (SoapAction,NameSpace XML,Tag envio), caso não houver pensei na seguinte solução: Fazer uma carga dinâmica diferenciando pelo código IBGE, como já ocorre com as URLs. Exemplo Schemas: if FPIniParams.ReadString('Schemas', 'ServicoEnviar', '') = '*******' then begin FConfigSchemas.ServicoEnviar := FPIniParams.ReadString('Schemas', 'ServicoEnviar_' + CodIBGE, ''); FConfigSchemas.ServicoConSit := FPIniParams.ReadString('Schemas', 'ServicoConSit_' + CodIBGE, ''); .... end else begin FConfigSchemas.ServicoEnviar := FPIniParams.ReadString('Schemas', 'ServicoEnviar', ''); FConfigSchemas.ServicoConSit := FPIniParams.ReadString('Schemas', 'ServicoConSit', ''); .... end; Utilizar a mesma ideia para os outros casos O que acham? Já possui uma solução pra isso? estou certo? -
Integração NotaBlu (NFS-e município de Blumenau)
um tópico no fórum postou João Paulo Müller ACBrNFSe
Boa tarde a todos. Estou realizando as alterações para integrar a NFS-e de Blumenau no componente ACBNFSe, surgiu algumas dúvidas e até um erro, caso alguém puder dar uma força... 1. Alterações realizadas até o momento. Alterado o arquivo Cidades.ini modificando o Provedor de São Paulo e Blumenau para Prodam. Alterado o arquivo SP.ini para Prodam.ini Incluído no arquivo Prodam.ini os dois municípios (São Paulo e Blumenau) e suas respectivas URLs e NameSpaces. Alterado objetos e tipos que se referenciavam ao provedor SP (Exemplo: proSP para proProdam). Tudo oque referenciava ao provedor SP foi alterado para Prodam. 2. Dúvidas na construção do arquivo Prodam.ini Estou com as seguintes dúvidas para a construção do ini: SoapAction para envio de produção e homologação: Adicionei todos os SoapAction que serão utilizados, porém estou em duvida de como adicionar o SoapAction para envio em produção e homologação, sendo que para o envio de teste o SoapAction deve ser "testeenvio" e para envio em produção deve ser "envioLoteRPS". Alteração da Tag para enviar em homologação: o web service possui métodos diferente para o envio de produção e homologação. Em produção deve ser utilizado a tag <EnvioLoteRPSRequest> em homologação deve ser <TesteEnvioLoteRPSRequest>. Como proceder? Mais de um NameSpace no XML: na seção XML do arquivo Prodam.ini possui a chave NameSpace, o detalhe é que cada município possui um NameSpace diferente, como posso fazer para adicionar o NameSpace dos dois municípios? (Pelo o que analisei nos fontes só faz a leitura de um NameSpace, pode ser que estou errado, por isso comentei). 3. Erro ao enviar NFSe para o município de Blumenau. Estou com o seguinte erro para enviar a NFSe para bluemanu: "mensagem xml de pedido do servico sem conteudo". Já procurei no fórum e na web por esse erro, analisei de "cabo a rabo" o XML, mas não consigo identificar o problema. Comparei o XML gerado com o xml de exemplo fornecido pela prefeitura, porém não consegui identificar nenhuma diferença. Vou deixar os XMLs em anexo, caso alguém puder analisar, fico agradecido. Obrigado! 1-rec-soap.xml 1-env-lot.xml 1-env-lot-soap.xml ExemploPedidoEnvioLoteRPS.txt -
O provedor é Prodam, o mesmo de São Paulo. Poderíamos alterar o arquivo Ini atual de São Paulo (SP.ini) para prodam, assim atenderia Blumenau também. Vou realizando as alterações aqui.
-
Boa tarde Pessoal, Seria possível a integração da NFSe de Blumenau com o componentes da ACBR? Pergunto pois aparenta ser diferente da estrutura do ACBR, Em todos as requisições possui uma TAG chamada Mensagem XML (String) onde dentro dela vai outro XML com as informações da requisição. Caso fosse possível, tentaria realizar a integração.
-
Authorization Basic HTTRIO SPC
João Paulo Müller replied to João Paulo Müller's tópico in Object Pascal - Delphi & Lazarus
Bom dia, que bom, fico feliz que pude ajudar. Bom trabalho. -
Authorization Basic HTTRIO SPC
João Paulo Müller replied to João Paulo Müller's tópico in Object Pascal - Delphi & Lazarus
Ambos vem da API do windows. Uses: Winapi.WinInet -
Authorization Basic HTTRIO SPC
João Paulo Müller replied to João Paulo Müller's tópico in Object Pascal - Delphi & Lazarus
Problema resolvido. Depois de muitos testes descobri que o problema era no armazenamento dos cookies. Para solucionar o problema simplesmente limpo os cookies antes da autenticação no evento OnBeforePost do HTTPReqResp: procedure TConsulta.HTTPRIO1HTTPWebNode1BeforePost( const HTTPReqResp: THTTPReqResp; Data: Pointer); var auth:string; S:string; begin {Clear Cookies} InternetSetOption(0, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0); {autenticação, (Monta base64 e seta no Header HTTP)} auth := 'Authorization: Basic ' + EncodeString(GEntidade+':'+GUser + ':'+ GPassWord); HttpAddRequestHeaders(Data, PChar(auth), Length(auth), HTTP_ADDREQ_FLAG_ADD); end; Talvez ajude alguém também. -
Bom tarde amigo, Conforme está no arquivo anexado o erro é a falta da chave do DFe: Campo Extra ''Chave de Acesso da NFe ou do CTe'' (Codigo: ''110'') deve ser informado!
-
Authorization Basic HTTRIO SPC
um tópico no fórum postou João Paulo Müller Object Pascal - Delphi & Lazarus
Bom dia a todos, Gostaria de saber se alguém poderia me ajudar na seguinte situação: estou fazendo uma integração com o web service do SPC/CDL, o qual necessita uma autenticação do tipo basic (header do HTTP). Preciso fazer essa autenticação utilizando o HTTRIO pois usei o Importer WSDL, não construi o XML na "unha", digamos assim. Consegui realizar a autenticação no evento beforePost conforme exemplo abaixo: auth := 'Authorization: Basic ' + EncodeString('login:senha'); HttpAddRequestHeaders(Data, PChar(auth), Length(auth), HTTP_ADDREQ_FLAG_ADD); o problema é o seguinte, a primeira vez que executo a aplicação e consumo o web service, funciona perfeitamente, faz a autenticação e me da um retorno, tudo ok. Porém, sem fechar a aplicação se realizar mais uma consulta, retorna o erro de autenticação (Erro Autenticação WS). Se fechar a aplicação e abrir novamente a primeira consulta funciona. Alguém poderia ajudar? Segue fonte de um projeto que fiz aqui para teste: procedure TForm3.BitBtn1Click(Sender: TObject); var C:ConsultaSpcScWSService; F:filtroConsultaSpcPlusMasterProtestoSCWS2; R:RespostaConsultaSpcPlusMasterProtestoSC2; H:THTTPRIO; begin H := THTTPRIO.Create(self); H.HTTPWebNode.OnBeforePost := HTTPRIO1HTTPWebNode1BeforePost; try C := GetConsultaSpcScWSService(false,'',H); F := filtroConsultaSpcPlusMasterProtestoSCWS2.Create; try F.cpfCnpj := 'xxxx'; R := C.SPCPlusMasterProtestoSC_65(f); Memo1.Text := R.consumidor.nome; R.free; finally C := nil; F.free; end; except on E:exception do Memo1.Text := 'Erro :'+E.Message; end; end; procedure TForm3.HTTPRIO1HTTPWebNode1BeforePost( const HTTPReqResp: THTTPReqResp; Data: Pointer); var auth:string; begin auth := 'Authorization: Basic ' + EncodeString('user:pass'); HttpAddRequestHeaders(Data, PChar(auth), Length(auth), HTTP_ADDREQ_FLAG_ADD); end; Grato desde já. -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Bom dia Italo, Deu certo agora. Muito obrigado e desculpa o incomodo. -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Italo, favor ignorar o comentário anterior: Conseguir resolver o problema da seguinte maneira, Antes de usar o método GeraLote, utilizei o método GerarRPS,ficando da seguinte maneira: FrmMain.ACBrNFSe.NotasFiscais.GerarNFSe; frmmain.ACBrNFSe.WebServices.GeraLote(Lote) No método GeraLote tive que fazer uma alteração no Execute, herdei o método da classe TNFSeWebService Ou seja, no método execute alterei de : SalvarEnvio; Result := True; Para: Inherited; SalvarEnvio; Result := True; Acrescentei o Inherited para herdar o método execute, depois prosseguir e salvar. Estão corretas as alterações? Referente a questão baixo, o que me diz? -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Boa tarde Italo, ao depurar, observei que na linha 362 codigo: IsUTF8 := XmlEstaAssinado(FPDadosMsg); a propriedade FPDadosMSg, se encontra vazia. Devo chamar algum método antes para preencher essa propriedade? Pelo oque observei, assim que funcionar, só sera preenchido as propriedade de XMLLoteAssina, XMLLoteorignal, se estiver habilitado para salvar em disco, confere? É valido eu alterar para sempre que chamar o método de GeraLote, ele preencher essas propriedades mesmo não optado por salvar em disco? Acredito que você não concordará muito com essa ideia pelo fato de não achar valido salvar o XML do RPS, mas é uma regra nossa da empresa, para fins de suporte etc. Novamente, obrigado e desculpa o incomodo. -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Boa Tarde, testei das duas maneiras (Salvando e não salvando), mesmo assim está em branco. -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Bom dia Italo, a realizar a chamada do método GerarLote deve alimentar as propriedades a ACBrNFSe.NotasFiscais.XMLLoteAssinado e ACBrNFSe.NotasFiscais.XMLLoeOriginal. confere? O problema e que essas propriedades etão retornando vazia. Obrigado! -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Boa tarde Italo, Primeiramente obrigado pelo retorno e pela ajuda. Esse método assinaria somente o RPS (Se necessário), na verdade eu precisaria o XML inteiro (lote) assinado. Acredito que quase todos os provedores assinam o XML inteiro(Lote), por isso gostaria de pegar o XML assinado. Mas, novamente, obrigado pelo retorno. -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Boa tarde Italo, compreendo seu ponto de vista. O detalhe é que seguimos como regra aqui na empresa sempre salvar o XML de envio e retororno, até mesmo para suporte posteriormente. Há a possibilidade de eu pegar o XML (Mesmo que não seja assinado) antes do envio para gravar no banco? Possui algum método no qual eu consigo Gerar o Lote e obter o XML, mesmo que o XML não venha assinado? Conforme comentei anteriormente, utilizávamos um método (se não me engano "GerarLote") que retornava o XML na propriedade XMLLoteAssinado ou XMLLoteOriginal, porém fui realizar uma manutenção no modulo e percebi que após atualizar a ACBR essas propriedades estão vindo vazias. Obrigado e desculpa o incomodo. -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Bom dia Italo, Pelo o que entendi, então não será possível obter o XML assinado antes de utilizar o método Enviar, confere? Obrigado! -
Boa dia Italo, Até onde sei o município de Blumenau utiliza o provedor Prodam, o mesmo de SP. Fiz a pergunta, pois pelo o que vi no aqui no fórum e nos fontes, o componente já está compatível com o município de SP. Assim que conseguir um tempo vou analisar melhor.
-
Boa tarde Pessoal, O município de Blumenau está funcionando 100% no componente da ACBr NFSE? Obrigado!
-
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Certo Italo. Enfim, poderia me informar qual seria o método para gerar e assinar o lote e em qual propriedade eu teria acesso a o XML assinado? Obrigado! -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Boa tarde Italo, Sim concordo, o XML de retorno não vem assinado, por isso salvamos o XML de envio e de retorno. Assim juntamos todos os dados. XML de envio assinado e o XML de retorno que é a NFS-e do XML válido (Assinado). Inclusive após a nota ser autorizada é enviado os dois XMLs ao cliente. -
Gerar e Assinar Lote sem enviar.
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Então, na verdade salvamos aqui o XML válido a ser enviado, no caso o Lote do XML assinado. O objetivo de salvarmos esse lote de RPS válido, é pensando na possibilidade de o fiscal solicitar ao cliente o XML de envio contendo a assinatura. Fiz alguns teste aqui e se não estou enganado, quando salvo o XML do RPS é salvo apenas a TAG do RPS e as suas sub-tags, ou seja não possui a assinatura do XML que seria o objetivo. Sendo que para esses provedores que estou desenvolvendo nenhum possui assinatura por RPS, apenas no lote. Após o lote ser enviado e processado com sucesso salvamos também o XML da NFS-e. -
Boa tarde pessoal, Uma dúvida, como faço para gerar e assinar o XML de um lote sem envia-lo? Pergunto isso pois sempre salvo o XML de envio na base de dados antes de enviar. Até o momento se não me falha a memória, estava utilizando o método GerarNFSe, no qual preenchia as propriedades XMLLoteAssinado ou XMLLoteOriginal. Porém, realizei alguns teste aqui agora e não está preenchendo essas propriedades. É este o método correto? Obrigado
-
Cancelamento NFSe Itajai - SC (Publica)
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Bom dia, Deu certo Italo, obrigado! -
Cancelamento NFSe Itajai - SC (Publica)
João Paulo Müller replied to João Paulo Müller's tópico in ACBrNFSe
Boa tarde Italo, Analisei agora o arquivo (pnfsNFSeG.pas) no qual foi subido no SVN, e está com um problema. O arquivo que foi subido no SVN já possui uma validação se tratando ao cancelamento para o provedor da publica. Codigo: // linha 1597 if Provedor in [proPublica, proTecnos] then Gerador.wCampoNFSe(tcStr, '#1', 'MotivoCancelamento', 01, 255, 1, MotivoCanc, ''); // linha 1600 if (Provedor in [proPublica]) then Gerador.wCampoNFSe(tcStr, '#1', 'MotivoCancelamento', 01, 255, 1, MotivoCanc, ''); No momento está inserindo duas tags <MotivoCancelamento> devido as duas validações. Para corrigir basta remover uma. Não anexei o arquivo pois acredito que é mais simples remover uma validação. Não sei o que houve para estar com essas duas validações, pois eu tenho os fontes sempre atualizados aqui e no arquivo que lhe enviei não possui a validação da linha 1597. Obrigado!