Ir para conteúdo
  • Cadastre-se

William Mometti

Membros
  • Total de ítens

    33
  • Registro em

  • Última visita

Últimos Visitantes

1.178 visualizações

William Mometti's Achievements

Explorer

Explorer (4/14)

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

Recent Badges

16

Reputação

2

Community Answers

  1. Segue em anexo o arquivo: "pcnConversaoNFe.pas" com as alterações supramencionada... pcnConversaoNFe.pas
  2. Boa, Juliana! Todos que puderem vamos ajudar a comunidade. Para resolver o problema do "ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento", não mapear os eventos “990900 - Vistoria Suframa” e "990910 - Internalização Suframa" efetuar a seguinte modificação no Fonte do ACBr. Diretório: ACBr\Fontes\ACBrDFe\ACBrNFe\PCNNFe Alterar a function "StrToTpEventoNFe" no arquivo: "pcnConversaoNFe.pas" De: function StrToTpEventoNFe(out ok: boolean; const s: string): TpcnTpEvento; begin Result := StrToEnumerado(ok, s, ['-99999', '110110', '110111', '110112', '110140', '111500', '111501', '111502', '111503', '210200', '210210', '210220', '210240', '610600', '610614', '790700'], [teNaoMapeado, teCCe, teCancelamento, teCancSubst, teEPECNFe, tePedProrrog1, tePedProrrog2, teCanPedProrrog1, teCanPedProrrog2, teManifDestConfirmacao, teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada, teRegistroCTe, teMDFeAutorizadoComCTe, teAverbacaoExportacao ]); end; Para: function StrToTpEventoNFe(out ok: boolean; const s: string): TpcnTpEvento; begin Result := StrToEnumerado(ok, s, ['-99999', '110110', '110111', '110112', '110140', '111500', '111501', '111502', '111503', '210200', '210210', '210220', '210240', '610600', '610614', '790700', '990900', '990910'], [teNaoMapeado, teCCe, teCancelamento, teCancSubst, teEPECNFe, tePedProrrog1, tePedProrrog2, teCanPedProrrog1, teCanPedProrrog2, teManifDestConfirmacao, teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada, teRegistroCTe, teMDFeAutorizadoComCTe, teAverbacaoExportacao, teVistoriaSuframa, teConfInternalizacao]); end; Fiz o teste em minha aplicação e deu certo.
  3. Boa noite, Bea. A forma de buscar o evento "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA" é da mesma maneira que o "790700 - Averbação para Exportação". O problema que eu encontrei foi que a variável "teConfInternalizacao" não está carregando valor nela, ou seja, esse evento "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA" está vindo como Não Mapeado, que é a mesma coisa que estava acontecendo com a variável "teAverbacaoExportacao" do evento "790700 - Averbação para Exportação" ( o Italo acerto no fonte do ACBr ), agora seria top se o Italo pudesse acertar também o evento "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA" no ACBr. Para mim esses eventos "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA", começaram a ficar disponíveis a partir da data de autorização 23/12/2019. Esse novo evento começou a ser emitido devido ao novo sistema do SUFRAMA o SIMNAC - Sistema de Ingresso de Mercadoria Nacional (Clique aqui para ver o Manual). (A partir de agora fica extinta a Declaração de Ingresso emitida pelo SUFRAMA, mas no lugar será gerado o Evento “990910 - Internalização SUFRAMA” ) Segue mais ou menos a rotina que eu fiz, onde foi feita "a toque de caixa", ou seja, precisa ser melhorada... procedure ConsultarNFeEmitente; var s_CNPJ, s_UF_Autor, s_ChaveNFe, s_NSU_Atual: String; docZip: TdocZipCollectionItem; i_UltimoNSU, i, j: Integer; node_infEvento, node_detEvento: IXMLNode; xml_dhEvento, xml_dhVistoria: TDateTime; xml_tpEvento, xml_NumeroPINe, xml_LocalidadeVistoria, xml_Posto, xml_Historico: String; i_Qtd_DFe_Encontrado: Integer; begin i_Qtd_DFe_Encontrado := 0; s_CNPJ := '000000000000'; // CNPJ da Empresa s_UF_Autor := ACBrNFe1.Configuracoes.WebServices.UF; // Aqui antes de começar busco qual foi o ultimo NSU que ficou gravado, e caso for a primeira vez será "0"... with qryTemp do begin Close; SQL.Clear; SQL.Add('SELECT ... '); Open; i_UltimoNSU := FieldByName('CodigoUltimoNSU').AsInteger; end; repeat try ACBrNFe1.DistribuicaoDFePorUltNSU( UFtoCUF( s_UF_Autor ), s_CNPJ, IntToStr( i_UltimoNSU ) ); i_UltimoNSU := StrToInt( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU ); // Rotina que grava o Ultimo NSU consultado, com Data/Hora e Usuário do sistema if ( i_UltimoNSU > 0 ) then GravaUltimoNSU( i_UltimoNSU ); except on er: Exception do begin if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 0 ) then // Pode ser o Erro de Inativo e Inoperante begin Sleep( 5000 ); ACBrNFe1.DistribuicaoDFePorUltNSU( UFtoCUF( s_UF_Autor ), s_CNPJ, IntToStr( i_UltimoNSU ) ); i_UltimoNSU := StrToInt( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU ); if ( i_UltimoNSU > 0 ) then GravaUltimoNSU( i_UltimoNSU ); end else begin MessageDlg( 'cStat: ' + IntToStr( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat ) + #13#10 + er.Message, mtError, [mbOk], 0 ); Abort; end; end; end; // caso haja retorno [138-Documento localizado] try if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 ) then begin j := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count -1; for i:= 0 to j do begin Inc( i_Qtd_DFe_Encontrado ); frmAtualizandoDados.Repaint; frmAtualizandoDados.Refresh; Application.ProcessMessages; XMLDocument1.XML.Clear; s_ChaveNFe := ''; if not ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento = nil ) and not ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.chDFe = EmptyStr ) then begin s_ChaveNFe := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.chDFe; s_NSU_Atual := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU; // Verifica se é o evento Completo de "990910 - Confirmacao de Internalizacao da Mercadoria na SUFRAMA". // Estarei fazendo esse monte de verificações até o ACBr acertar a variável "teConfInternalizacao" if ( ( s_ChaveNFe <> '' ) and ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].schema = schprocEventoNFe ) ) and ( ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.tpEvento = teConfInternalizacao ) or ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento = 'Confirmacao de Internalizacao da Mercadoria na SUFRAMA' ) or ( ( AnsiPos('Internalizacao', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) and ( AnsiPos('SUFRAMA', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) ) or ( ( AnsiPos('Internalização', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) and ( AnsiPos('SUFRAMA', ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento) > 0 ) ) ) then begin // Consulta no Banco de Dados para verificar se a NF-e é "Venda destinada à Zona Franca de Manaus ou Áreas de Livre Comércio - CFOP 6.109 e 6.110" // Regra de Negócio minha... with qryTemp do begin Close; SQL.Clear; SQL.Add('SELECT ...'); SQL.Add(' FROM ... ns'); SQL.Add(' WHERE ... '); SQL.Add(' AND ns.CFOP IN ( ''6.109'', ''6.110'' )'); ParamByName('p_ChaveNFE').AsString := s_ChaveNFe; Open; end; if ( qryTemp.RecordCount > 0 ) then begin // Carrega o XML no "XMLDocument1", onde será possível acessar os "Nodes" de maneira mais fácil... // Foi feito essa rotina que lê direto no XML, pois, até na data "10/02/2020" o componente ACBrNFe não estava totalmente preparado para trabalhar com esse evento... XMLDocument1.XML.Clear; XMLDocument1.LoadFromXML( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].XML ); node_infEvento := XMLDocument1.ChildNodes.FindNode('procEventoNFe').ChildNodes.FindNode('evento').ChildNodes.FindNode('infEvento'); xml_dhEvento := ISO8601ToDate( node_infEvento.ChildValues['dhEvento'], False ); xml_tpEvento := node_infEvento.ChildValues['tpEvento']; node_detEvento := XMLDocument1.ChildNodes.FindNode('procEventoNFe').ChildNodes.FindNode('evento').ChildNodes.FindNode('infEvento').ChildNodes.FindNode('detEvento'); xml_NumeroPINe := node_detEvento.ChildValues['PINe']; xml_dhVistoria := ISO8601ToDate( node_detEvento.ChildValues['dVistoria'], False ); xml_LocalidadeVistoria := node_detEvento.ChildValues['locVistoria']; xml_Posto := node_detEvento.ChildValues['postoVistoria']; xml_Historico := node_detEvento.ChildValues['xHistorico']; // Aqui eu faço a Inserção do Evento no meu Banco de Dados... qryTemp2.Close; qryTemp2.SQL.Clear; qryTemp2.SQL.Add('BEGIN'); qryTemp2.ExecSQL; qryTemp2.Close; qryTemp2.SQL.Clear; qryTemp2.SQL.Add('INSERT INTO ... '); qryTemp2.ParamByName('chNFe').AsString := s_ChaveNFe; qryTemp2.ParamByName('NSUProtocolo').AsString := s_NSU_Atual; qryTemp2.ParamByName('dhEvento').AsDateTime := xml_dhEvento; qryTemp2.ParamByName('tpEvento').AsString := xml_tpEvento; qryTemp2.ParamByName('nSeqEvento').AsInteger := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.nSeqEvento; qryTemp2.ParamByName('descEvento').AsString := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.detEvento.descEvento; qryTemp2.ParamByName('ProtocoloEvento').AsString := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.RetinfEvento.nProt; qryTemp2.ParamByName('dhAutorizacaoSEFAZ').AsDateTime := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.RetinfEvento.dhRegEvento; qryTemp2.ParamByName('NumeroPINe').AsString := xml_NumeroPINe; qryTemp2.ParamByName('dhVistoria').AsDateTime := xml_dhVistoria; qryTemp2.ParamByName('LocalidadeVistoria').AsString := xml_LocalidadeVistoria; qryTemp2.ParamByName('Posto').AsString := xml_Posto; qryTemp2.ParamByName('Historico').AsString := xml_Historico; qryTemp2.ExecSQL; qryTemp2.Close; qryTemp2.SQL.Clear; qryTemp2.SQL.Add('COMMIT'); qryTemp2.ExecSQL; end; end; end; end; end; except on er: exception do begin raise Exception.Create('Erro Capturado: ' + er.Message); end; end; until ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat IN [108,109,137] ); if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 108 ) then begin MessageDlg('cStat = 108: Serviço Paralisado Momentaneamente (curto prazo).', mtWarning, [mbOk], 0); end else if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 108 ) then begin MessageDlg('cStat = 109: Serviço Paralisado sem Previsão.', mtWarning, [mbOk], 0); end else if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 ) then begin // Caso tenha encontrado Documento Fiscal Eletrônica, irá da a mensagem "Pesquisa NF-e executado com sucesso!". if ( i_Qtd_DFe_Encontrado > 0 ) then begin MessageDlg('Pesquisa de NF-e que foram Internalizadas foi executado com sucesso!', mtInformation, [mbOk], 0); end else begin MessageDlg('cStat = 137: Nenhum documento localizado.', mtWarning, [mbOk], 0); end; end; end; Espero que eu posso ter ajudado em alguma coisa. Até mais...
  4. Boa noite, Italo. Primeira pergunta ao executar essa rotina ele entra dentro desse IF? Sim, você conseguiu acertar essa parte no ACBrNFe. a propriedade XML contem o XML do evento? Sim, quando "procEvento.tpEvento = teAverbacaoExportacao" e nodedetEvento.ChildNodes[i_ChildNodes].NodeName = 'itensAverbados' eu consigo pegar o XML do evento corretamente em DistribuicaoDFe.retDistDFeInt.docZip.Items.XML. Até o componente ACBrNFe for implementado corretamente essa função do Averbação de Exportação, estarei fazendo essa engenharia alternativa (esta dando 100% certo), até porque o cliente não espera muito. rsss Obrigado pela atenção, até mais.
  5. Bom dia, Italo. Hoje fiz a atualização geral e reinstalei o componente ACBr. E testei novamente a busca pelos eventos de Averbação de Exportação e continuou o problema citado acima. Não consigo ler o que está dentro da Propriedade "itensAverbados", não lista itens ou qualquer propriedade valida, conforme imagem em anexo. // Por hora estou pegando os itens Averbados dentro do XML // Minha rotina é parecida com a citada abaixo... // No loop dos eventos retornado pelo "ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip" if ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].procEvento.tpEvento = teAverbacaoExportacao ) then begin XMLDocument1.LoadFromXML( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].XML ); nodedetEvento := XMLDocument1.ChildNodes.FindNode('procEventoNFe').ChildNodes.FindNode('evento').ChildNodes.FindNode('infEvento').ChildNodes.FindNode('detEvento'); for i_ChildNodes := 0 to nodedetEvento.ChildNodes.Count - 1 do begin if ( nodedetEvento.ChildNodes[i_ChildNodes].NodeName = 'itensAverbados' ) then begin nodeitensAverbados := nodedetEvento.ChildNodes[i_ChildNodes]; xml_dhEmbarque := ISO8601ToDate( nodeitensAverbados.ChildValues['dhEmbarque'], False ); xml_dhAverbacao := ISO8601ToDate( nodeitensAverbados.ChildValues['dhAverbacao'], False ); xml_nDue := FormatMaskText('99aa999999999\-9;0;', nodeitensAverbados.ChildValues['nDue'] ); xml_nItem := nodeitensAverbados.ChildValues['nItem']; xml_nItemDue := nodeitensAverbados.ChildValues['nItemDue']; xml_qItem := StringReplace( nodeitensAverbados.ChildValues['qItem'], '.', ',', [rfReplaceAll] ); xml_motAlteracao := nodeitensAverbados.ChildValues['motAlteracao']; Inc( i_itensAverbados ); end; end; end; Obrigado pela atenção.
  6. Em anexo estou passando outro XML do Evento de Averbação que estava tentando carregar acima (só mudei o CNPJ do meu cliente), que é de outra NF. Vi que a estrutura/elementos/tags são exatamente iguais nos XMLs, onde é claro só muda os valores das tags... AverbacaoExportacao_2.xml
  7. Boa tarde, Italo. Eu segui o seu procedimento de atualizar e instalar o ACBr novamente. Agora consigo ver mais propriedades alimentadas como por exemplo: ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento = teAverbacaoExportacao ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.FRetInfEvento.FtpEvento = teAverbacaoExportacao Pelo que vi o que mudou: Dentro de propriedade "ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.FDetEvento" agora tem a "ItensAverbados" que pelo que vi é uma Collection Onde creio que poderia acessar os valores assim: ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.DetEvento.itensAverbados.Items[0] Mais isso no Debug "Evaluate/Modify" retorna o erro (em anexo imagem): "Delphi exception EListError at $3052F8A1" ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.detEvento.itensAverbados.Items[0].dhEmbarque Debug "Inaccessible value" Em execução da o erro: "List index out of bounds (0)" Agradeço pela atenção,
  8. Para melhorar a documentação desse post. Esse evento foi divulgado na Nota Técnica 2014/002, Web Service de Distribuição de DF-e de Interesse dos Atores da NF-e (PF ou PJ), Versão 1.02b de Maio 2017. http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=s/plBMpQotg= Obrigado!
  9. Boa tarde, Italo. Sim, é o fisco (SISCOMEX) que emite esse evento. O evento de averbação é um registro eletrônico vinculado às notas fiscais eletrônicas de exportação que instruíram a DU-E, com informações relativas (art. 93 da IN RFB nº 1.702/2017). Este evento é registrado nas notas fiscais pelo Portal siscomex.gov.br, depois da autorização de embarque ou de transposição de fronteira. Não basta que a mercadoria tenha sido desembaraçada para que o evento seja enviado à nota fiscal. É necessária a confirmação do embarque. Somente depois desta confirmação é que o evento de averbação de embarque é gerado. Em anexo o XML do Evento de Averbação para Exportação (por questão de segurança eu só troquei o CNPJ na Chave de Acesso, por um fictício, caso precise do XML original posso passar por e-mail). Meu muito obrigado pela atenção. AverbacaoExportacao.xml
  10. Bom dia a todos, Um cliente solicitou uma solução para buscar as informações do evento de Averbação de Exportação código do Evento 790700, onde o mesmo fica vinculado as NF-e de Exportação Direta e Indireta (CFOPs 7.101, 7.102, 5.501, 5.502, 6.501, 6.502) emitida POR ELE MESMO. Nesse evento tem os campos abaixo que são os importantes para eu pegar e fazer minha documentação, mas não são carregados nas propriedades do Componente ACBrNFe, só estão na propriedade XML é claro: Item da NF-e, Item da DUE, Número da DUE, Quantidade Averbada (uTrib), Data do Embarque, Data da Averbação, Motivo da Alteração Estou usando o componente ACBrNFe com a função: ACBrNFe1.DistribuicaoDFePorUltNSU( UFtoCUF( s_UF_Autor ), s_CNPJ, IntToStr( i_UltimoNSU ) ); Faço o clássico loop usando repeat, e essa função me retorna certinho os XMLs das NF-e e os Eventos etc. Só que percebi que no caso do Evento de Averbação de Exportação, o componente ACBrNFe não está mapeando as propriedades desse Evento. Aliais quando o evento é Averbação de Exportação a propriedade abaixo do componente nem é definida. ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento = teAverbacaoExportacao ) Em vez de teAverbacaoExportacao ela fica teNaoMapeado. E consigo ver as seguintes propriedades abaixo: ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.schema = schprocEventoNFe ) ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.chDFe <> '' ) ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.cOrgao = 91 ) ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.CNPJ = '33683111000107' ) // CNPJ do SERPRO ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.tpEvento = teNaoMapeado ) ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.DetEvento.DescEvento = 'Averbação para Exportação' ) ( ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.procEvento.RetInfEvento.cStat = 135 ) O XML está certinho dentro da Propriedade: ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.XML Eu sei que eu posso pegar os dados do XML (ficar lendo os XMLs que estão vindo) dessa propriedade e utilizar. Mas quero fazer a pergunta se eu estou tentando pegar os dados desse evento de maneira errada ou se o componente ainda não está preparado para trabalhar com esse Evento de Averbação de Exportação (daí o porquê de retornar Não Mapeado), nos Eventos de Manifestação do Destinatário e Carta de Correção o componente preenche certinho as propriedades e com isso facilitando muito a extração das informações. Agradeço desde já a atenção de todos.
  11. Bom dia, osmargyn Eu também estou tendo o mesmo problema em utilizar o WebService de Distribuição de DFe, para mim, começou no dia 27/08/2019, de principio ficando intermitente e depois sempre ocorrendo. Só de abrir o link do WebService pelo navegador já da erro: https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx HTTP Error 503. The service is unavailable. (O serviço esta indisponível). Tempos em tempos, a Receita faz esse maravilho trabalho de ferrar com seus contribuintes. Eles são fantásticos em fazer os contribuintes se ferrarem... Esse serviço deveria ser um exemplo um modelo de funcionamento perfeito, porque os documentos em questão geram impostos = receita para o governo. Dai você vê sites como arquivei.com.br que oferece esse tipo de serviço, claro que pago, sem dar nenhum problema, e porque isso, porque o governo criou um WebService exclusivo para "grandes" empresas oferecerem esse serviço (que deveria ser gratuito) sem dar problemas. Que WebService que o arquivei.com.br e sites do gênero usam? Eles utilizam a API do SERPRO (Serviço Federal de Processamento de Dados) do Governo Federal, consulte os preço para utilizar a API da SERPRO, são espetaculares . https://servicos.serpro.gov.br/api-serpro/biblioteca/index.html É uma absurdo uma situação dessa, muito deprimente.
  12. Sim... Colega... a lentidão nos WebServices do Governo é comum (pela quantidade de impostos que pagamos jamais deveria ser assim), se for gratuito mas se for pago como no caso do SERPRO é instantâneo as consultas, não precisa ficar horas criando rotinas para tratar erros e fazer malabarismo loucos por uma simples consulta de WebService. Todos nós temos que nos contentar (com toda essa quantidade de impostos que pagamos) com isso e ponto final... kkk Acho que pedir um servicinho decente para o governo é reclamar de mais... só me resta rir numa dessa
  13. Esse aplicativo em Java de Manifestação do Governo, também está com problemas de lentidão e está dando mensagem TimeOut (imagem em anexo)... Pois, deve está usando o mesmo WebService de Distribuição de NF-e do Ambiente Nacional. Só que o legal desse aplicativo do Governo que ele tem uma rotina muito boa para ficar dando Loop, mesmo que parece que vai ficar eternamente... rsss... E trata bem os erros do WebService. O legal de os desenvolvedores acessarem direto o WebService é implementar essa rotina em seus ERPs e não ficar usando softwares de terceiros e importando de um lado para o outro...
  14. Para mim o governo está deixando de propósito o WebService de distribuição ruim/péssimo para que as pessoas migrarem para os serviços pagos. Se alguém tiver outra opinião compartilhe. No SERPRO até 999 consultas valor fixo de R$ 662,40 (mensalmente) Caso passe de 999 da faixa 1.000 a 9.000, começa a ser cobrado R$ 0,66 por consulta com mais a mensalidade de R$ 662,42. E o valor por consulta só irá baixar se contratar planos caríssimos, é onde só compensa se abrir um site como o Arquivei.com.br, que tem quer um monte de clientes para tornar viável o negócio. No site arquivei.com.br tem o plano de R$ 139,90 por mês no pagamento anual, onde tem o limite mensal de 3.000 NFes, CTes e NFSe (quase R$ 0,05 por documento). Ainda para quem não pegou nas entre linhas nos comentários anteriores o governo está criando mais uma máfia para empresas grandes lucrarem, mais uma para os contribuintes pagarem a conta (que insistem em ficarem quietos e achar que é isso mesmo). É obvio que um serviço desses tem que ser gratuito como já estava sendo, e só ser disponibilizado para quem tem certificado digital para conseguir baixar os XMLs, até mesmo a consulta resumida dos documentos teria que ter o certificado e com isso não precisaria ter essa máfia. O próprio WebService de distribuição poderia fazer o controle por CNPJ para controlar o limite de consultas diárias, para evitar consumo indevido. "Para que o mal triunfe basta que os bons fiquem de braços cruzados." Edmund Burke (Considerado o pai do conservadorismo moderno. No século XIX Burke inspirou tanto conservadores quanto liberais)
×
×
  • 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.