Ir para conteúdo
  • Cadastre-se

Elazar

Membros
  • Total de ítens

    45
  • Registro em

  • Última visita

  • Days Won

    6

Elazar last won the day on 1 Janeiro 2019

Elazar had the most liked content!

Últimos Visitantes

976 visualizações

Elazar's Achievements

Contributor

Contributor (5/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

18

Reputação

1

Community Answers

  1. Por acaso é falha de duplicidade? Duplicidade pode acontecer quando o sefaz recebe a solicitação porem por algum motivo você não conseguiu receber a resposta. Se for este o caso você pode fazer uma consulta com o seu xml carregado no componente e ajustar as propriedades faltantes e assim salvar e imprimir.
  2. Bom dia. Parece que o sefaz está com problemas, inclusive nem acessa os links pelas urls Pode testar ai... https://nfe.svrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx Engraçado que na Disponibilidade diz que está tudo ok http://www.nfe.fazenda.gov.br/portal/disponibilidade.aspx?versao=0.00&tipoConteudo=Skeuqr8PQBY=
  3. Olá, agora sim, com este novo TNFSeEnviarSincrono.TratarResposta ficou bom demais. Estava com suspeitas de por não existir a tag no xml ela voltasse a ficar em branco, já que o .protocolo estava sendo ajustado no index certo antes de receber os dados da nota, mas ficou ok. Autorização para tecnos Ok. OBS para quem estiver começando agora. Tecnos requer: FNotaServicoWebService.ACBr.Configuracoes.Geral.ConsultaLoteAposEnvio := True; OBS 2 Vou continuar vendo o restante e grito assim que surgir algum detalhe. Lembrando que a unit ACBrNFSeDANFSeFR.pas ainda precisa de ajustes. (estou anexando novamente para que alguem possa avaliar com calma) Danfse também precisa de ajustes no layout, assim que possível farei isto e disponibilizarei aqui. ACBrNFSeDANFSeFR.pas
  4. Olá, pelo que olhei os fontes vai resolver! Vou fazer alguns testes e confirmo o resultado.
  5. Olá, agora no final da tarde consegui fazer algumas modificações seguindo um pouco mais sua linha de raciocinio. Para que funcione com o Tecnos segue então as sugestões. ~Baseando-se -Leitura da datahora recebimento na consulta do lote enviado, sem isto o metodo extrair notas retorno vai retornar False no Result := FEnviarSincrono.Executar; -Atribuição da propriedade Protocolo durante o metodo ExtrairNotasRetorno no modo LayNfseConsultaLote; (Na segunda execução - retorno das informações da nota) (já que LayNFSeRecepcaoLoteSincrono nunca ocorrerá para o servidor Tecnos); / Retorno do GerarNfse e ConsultarLoteRps if FPLayout in [LayNFSeGerar, LayNfseConsultaLote] then FNotasFiscais.Items[ii].NFSe.Situacao := FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.Situacao; FNotasFiscais.Items[ii].NFSe.Protocolo := FProtocolo; end; ACBrNFSeWebServices.pas pnfsLerListaNFSe.pas
  6. Olá, boa tarde Italo. Com as alterações em pnfsLerListaNFSe.pas e pnfsNFSeR.pas o método EnviaSincrono está retornando false, e uma exception é lançada. Ainda assim o protocolo não é retornado após leitura das mensagens. function TWebServices.EnviaSincrono(ALote: String): Boolean; begin FEnviarSincrono.FNumeroLote := ALote; Result := FEnviarSincrono.Executar; //Retornando false **1 if not (Result) then FEnviarSincrono.GerarException( FEnviarSincrono.Msg ); // Alguns provedores requerem que sejam feitas as consultas para obter o XML // da NFS-e FConsSitLoteRPS.FProtocolo := FEnviarSincrono.Protocolo; FConsSitLoteRPS.FNumeroLote := FEnviarSincrono.NumeroLote; FConsLote.FProtocolo := FEnviarSincrono.Protocolo; // .Protocolo deveria estar preenchido com o protocolo da primeira chamada. if (TACBrNFSe(FACBrNFSe).Configuracoes.Geral.ConsultaLoteAposEnvio) and (Result) then begin if ProvedorToVersaoNFSe(TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor) = ve100 then begin Result := FConsSitLoteRPS.Executar; if not (Result) then FConsSitLoteRPS.GerarException( FConsSitLoteRPS.Msg ); end; if TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor = proInfisc then Result := True else Result := FConsLote.Executar; if not (Result) then FConsLote.GerarException( FConsLote.Msg ); end; end;
  7. Olá, bom dia Segue xmlTecnos.zip
  8. Update 1 Provedor da Tecnos tem o seguinte funcionamento 1-Envia o xml das notas 2-Retorna o recibo de processamento com o protocolo do lote (nota) 3-Envia consulta do lote com o protocolo recem recebido 4-Retorna o xml da nota (sem protocolo) ...se formos manter o padrão você precisa preencher a tag com o protocolo já recibo, esta seria a minha sugestão. Nos fontes atuais, o "FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.Situacao" no quarto passo retorna 4 - "Processado com sucesso" o qual é ajustado apenas no NotasFiscais[0], seguindo a lógica deste o protocolo deveria ser ajustado no index 0 também, não no index 1. Update 2 Comprovando o que digo... você pode verificar as duas imagens abaixo, onde descreve as situações retornadas pelo servidor. Atual.jpg, fontes acbr atual. Tecnos.jpg com a minha modificação do protocolo. Ademais, porque uso o FProtocolo? porque o FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.Protocolo; (ainda no quarto passo estaria zerado porque no retorno do xml da nota ele não existe, logo precisamos manter o que já possuimos, retornado na consulta, lá no passo 2). Bom, isto é só explicando os motivos de qual eu vou continuar usando a linha que sugeri por enquanto. Update 3 Outra coisa que notei agora a pouco e vou investigar melhor em seguida é quanto a Damfse, pareçe o servidor Tecnos não está retornando uma meia duzia de campos atualmente exibidos, já cogitei uma possibilidade de implementação de um novo layout com estes ajustes.
  9. Olá Porem quando isto ocorre o ii está como 1 (novoretorno = true) = LayNFSeGerar, LayNFSeRecepcaoLoteSincrono Mas quando a efetiva resposta com o xml da nota retorna o ajuste é feito no index 0 = LayNFSeGerar, LayNfseConsultaLote ***1 e o xml das notas fica sem protocolo; Sendo assim, no final da execução existem dois itens no NotasFiscais, até onde pude verificar o 1 tem protocolo e 0 sem o .Protocolo FNotaServicoWebService.ACBr.NotasFiscais.Items[0].NFSe.Protocolo e FNotaServicoWebService.ACBr.NotasFiscais.Items[1].NFSe.Protocolo. Já que o ajuste de "codigoverificação" é feito em .NFSe.CodigoVerificacao no index 0 acredito que o .Protocolo também poderia ***1 If que falei e ajusta para 0 o index onde será ajustados os dados if ((FProvedor <> proNFSeBrasil) and ((StrToInt64Def(FNotasFiscais.Items[l].NFSe.IdentificacaoRps.Numero, 0) = StrToInt64Def(FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.IdentificacaoRps.Numero, 0)) and (FNotasFiscais.Items[l].NFSe.IdentificacaoRps.Serie = FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.IdentificacaoRps.Serie) and (FNotasFiscais.Items[l].NFSe.IdentificacaoRps.Tipo = FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.IdentificacaoRps.Tipo)) or (FNotasFiscais.Items[l].NFSe.InfID.ID = FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.InfID.ID)) or ((FProvedor = proNFSeBrasil) and (StrToInt64Def(FNotasFiscais.Items[l].NFSe.IdentificacaoRps.Numero, 0) = StrToInt64Def(FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.IdentificacaoRps.Numero, 0))) then begin NovoRetorno := False; ii := l; break; end; e o 1 ainda existe, ocasionando 2 objetos na list.
  10. Olá, boa tarde Fiz uma breve comparação nos fontes, falando sobre o ACBrNFSeWebServices a primeira modificação fica ok, fica certo se todos os provedores sincronos tiverem o mesmo comportamento. Sobre a segunda modificação sugerida, acredito que seria interessante manter o preenchimento da tag protocolo de cada NFSe. Veja que Codigo de verificação é preenchido normalmente, assim poderia ser feito para o protocolo tambem. FNotasFiscais.Items[ii].NFSe.CodigoVerificacao := FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.CodigoVerificacao; Minha sugestão consiste em manter esta parte assim: // Retorno do GerarNfse e ConsultarLoteRps if FPLayout in [LayNFSeGerar, LayNfseConsultaLote] then begin FNotasFiscais.Items[ii].NFSe.Situacao := FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.Situacao; FNotasFiscais.Items[ii].NFSe.Protocolo := FProtocolo; end; Talvez isto seja uma exceção da Tecnos que retorna o protocolo apenas na consulta... porem a linha faz falta; Nos nossos fontes poderia ficar normalmente assim: if FNotaServicoWebService.ACBr.EnviarSincrono(FNotaServicoWebService.Numero, False) then begin sProtocolo := FNotaServicoWebService.ACBr.NotasFiscais.Items[0].NFSe.Protocolo; sChave := FNotaServicoWebService.ACBr.NotasFiscais.Items[0].NFSe.CodigoVerificacao; sNumero := FNotaServicoWebService.ACBr.NotasFiscais.Items[0].NFSe.Numero; sCaminhoXML := FNotaServicoWebService.ACBr.NotasFiscais.Items[0].NomeArq; .... Obrigado
  11. Postei á algumas horas uma correção para o servidor Tecnos, poderia verificar se a unit lá corrige o seu problema?
  12. Olá Tente verificar os arquivos de envio/resposta para ver se vem alguma coisa mas por algum motivo o componente não lê a resposta. As vezes pode ser interessante colocar os arquivos para salvar em caminhos separados e ir monitorando que muda... Um exemplo do que fiz a pouco tempo com a NFSe sPathGer := FCaminhoSistema + 'Arquivos\Temp\NFSe\PathGer\'; sPathNFSe := FCaminhoSistema + 'Arquivos\NFSe\XML\'; sPathRPS := FCaminhoSistema + 'Arquivos\NFSe\RPS\'; sPathCan := FCaminhoSistema + 'Arquivos\NFSe\CAN\'; sPathSalvar := FCaminhoSistema + 'Arquivos\NFSe\SALVAR\'; sPathPDF := FCaminhoSistema + 'Arquivos\NFSe\PDF\';
  13. Olá pessoal Fiz duas pequenas modificações para utilização no servidor Tecnos. Uma delas é quanto ao Numero do protocolo, utilizado na consulta dos lotes durante o envio sincrono e outra é na Damfse referente ao código do municipio e nome do municío que está trocado. Como segue: Durante o envio do xml é retornado apenas um recibo de processamento, sendo então necessário uma consulta para obter o xml da nota. O qual pode ser feito automático pelo componente, modificando-se a propriedade abaixo (usando as correções que disponibilizo aqui funciona): FNotaServicoWebService.ACBr.Configuracoes.Geral.ConsultaLoteAposEnvio := True Correções para o comportamente de envio já trazer os xmls. Em ACBrNFSeWebServices.pas (anexo) .... if (FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.NumeroLote <> '0') then begin FProtocolo := FRetornoNFSe.Protocolo; ... // Retorno do GerarNfse e ConsultarLoteRps if FPLayout in [LayNFSeGerar, LayNfseConsultaLote] then begin FNotasFiscais.Items[ii].NFSe.Situacao := FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.Situacao; FNotasFiscais.Items[ii].NFSe.Protocolo := FProtocolo; end; Com isto o envio preenche o FProtocolo (EnviarEvento) como valor retornado do recibo, e em seguida, durante a consulta, preenche a nota com o mesmo valor. O protocolo não é retornado na consulta pois não faz parte do xml da nota, porem quando se está tentando autorizar a nota é interessante salvar o protocolo para eventuais posteriores consultas já que ele não ficará em lugar algum após isto. Desta mesma forma o Protocolo pode ser obtido após a chamada do evento de EnviarSincrono, como segue este exemplo abaixo. if FNotaServicoWebService.ACBr.EnviarSincrono(FNotaServicoWebService.Lote, False) then begin sPro := FNotaServicoWebService.ACBr.NotasFiscais.Items[0].NFSe.Protocolo; sXML := FNotaServicoWebService.ACBr.NotasFiscais.Items[0].NomeArq; ACBrNFSeDANFSeFR.pas ACBrNFSeWebServices.pas
  14. Não é problema no componente. Foi uma falha de lógica no preenchimento das tags.
  15. Questão interessante esta sua, parece falha no agrupamento do fast, ou tem informação "em branco" sendo incluída, se tem um pouco de conhecimento do fast você poderia habilitar o design do fast para exibir assim que monta a página e olhar o que está acontecendo... mas ainda não vi algo assim por aqui... Para habilitar o design, coloque procure o método PrepareReport da NFe na unit ACBrNFeDANFEFR.pas Procure lá por: function TACBrNFeDANFEFR.PrepareReport(NFE: TNFe): Boolean; E após a linha CarregaDadosNFe acrescente o seguinte: if Assigned(NFE) then begin FdmDanfe.NFe := NFE; FdmDanfe.CarregaDadosNFe; FdmDanfe.frxReport.DesignReport() Rode o seu sistema novamente, quando chegar neste ponto será exibido o "designer" do Fast e você poderá fazer ajustes no layout e tentar identificar o que ocorre...
×
×
  • 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...