Ir para conteúdo
  • Cadastre-se

João Paulo Müller

Membros
  • Total de ítens

    326
  • Registro em

  • Última visita

  • Days Won

    2

Tudo que João Paulo Müller postou

  1. 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.
  2. 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.
  3. 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!
  4. 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á.
  5. Bom dia Italo, Deu certo agora. Muito obrigado e desculpa o incomodo.
  6. 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?
  7. 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.
  8. Boa Tarde, testei das duas maneiras (Salvando e não salvando), mesmo assim está em branco.
  9. 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!
  10. 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.
  11. 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.
  12. 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!
  13. 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.
  14. Boa tarde Pessoal, O município de Blumenau está funcionando 100% no componente da ACBr NFSE? Obrigado!
  15. 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!
  16. 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.
  17. 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.
  18. 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
  19. 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!
  20. Boa tarde a todos, Estou desenvolvendo o gerenciamento de notas fiscais de serviço para o município de Itajaí - SC (Provedor Publica). Ao Realizar os testes de cancelamento da nota, utilizei o código de cancelamento C001, no qual segundo o manual não precisa da descrição de cancelamento (motivo). Porém, ao tentar cancelar a NFSe o Web Service retorna a mensagem informando que está faltando a descrição do cancelamento. No manual de integração informa que somente o Código C999 precisaria de uma descrição. Entrei em contato com o provedor (Publica) e fui informado que para todos os códigos de cancelamento deverá ser informado uma descrição. Conforme E-mail abaixo: No componente ACBRNFSe possui a seguinte validação para o código de cancelamento: // Unit pnfsNFSeG, Linha 1600 if (Provedor in [proPublica]) and (CodigoCanc = 'C999') then Gerador.wCampoNFSe(tcStr, '#1', 'MotivoCancelamento', 01, 255, 1, MotivoCanc, ''); Fazendo com que mesmo informando o motivo de cancelamento para um Código diferente de 'C999', não é inserido a TAG MotivoCancelamento. Para resolver o problema foi simples, apenas retirei a condição (CodigoCanc = 'C999'). Segue a unit alterada em anexo. Se tiver alguém que utiliza NFSE para esse provedor e pudesse realizar um teste de cancelamento, ficaria agradecido. pnfsNFSeG.pas
  21. Pessoal, Problema resolvido. O WebService da publica retorna sempre um XML com as tags "vazias" quando o RPS não for localizado. Acontece que eu estava buscando por um RPS existente, porém em ambiente de produção, no ambiente de homologação esse RPS não existia, retornado esse XML com tags "vazias". Conversei com o pessoal da publica e os mesmo informaram que estão estudando a implementação de um retorno com mensagem de erro quando o RPS não for encontrado. (O que seria o correto) Obrigado a todos que retornaram.
×
×
  • 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...