Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3654 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
Postado

Sim já repassei o mesmo para o André, pois não sou commiter do SVN, tão logo ele valide as alterações do ACBrNFeMonitor vai estar disponível no SVN

e onde no caso foi o Fernando quem repassou a implementação

abaixo segue o que é usado no Monitor

 

with ACBrNFe1.DownloadNFe do
             begin
              Download.CNPJ := 'CNPJ AQUI';
                with Download.Chaves.Add do
                begin
                  chNFe := 'CHAVE DA NFE';
                end;
             end;
           try
              ACBrNFe1.Download;
              ArqNFe := PathWithDelim(ACBrNFe1.Configuracoes.Geral.PathSalvar)+Cmd.Params(1)+'-down-nfe.xml' ;
              try
                SL := TStringList.Create;
                SL.Add(
                ACBrNFe1.WebServices.DownloadNFe.retDownloadNFe.retNFe.Items[0].procNFe);
                SL.SaveToFile(ArqNFe);
                Cmd.Resposta := 'Download efetuado com sucesso'+sLineBreak+
                                '[DOWNLOANFE]'+sLineBreak+
                                'ChNFe='+Cmd.Params(1)+sLineBreak+
                                'XML='+ArqNFe+sLineBreak;
              finally
                FreeAndNil(SL);
              end;
           except
              raise Exception.Create(ACBrNFe1.WebServices.DownloadNFe.Msg);
           end;
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
Postado

Boa tarde Jocimar,

 

Segundo a NT 2012/002 página 9 item 4.9.9 que trata sobre o Final do Processamento do Lote, temos:

 

Se o lote foi processado o status do processamento do lote é 128 e cada evento contido no lote tem o seu próprio status:

 

Caso tenha sido processado com sucesso temos dois status:

 

135 = Evento registrado e vinculado a NF-e;

136 = Evento registrado, mãs não vinculado a NF-e.

 

Logo pode acontecer os 2 casos, sendo que o mais comum é o primeiro ou seja status 135.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Boa tarde pessoal, sei que a manifestação do destinatário já está em funcionamento a algum tempo, porém, não sei qual é a data de obrigatoriedade para este evento.

 

alguem sabe me dizer?

 

grato

  • Consultores
Postado

Boa tarde Leo,

 

Até onde sei ainda não existe obrigatoriedade, mas lembre-se que a Manifestação do Destinatário serve tanto para quem compra, quanto para quem vende.

 

Para quem compra, ou seja o Destinatário, é possivel ter uma relação de todas as NFe emitidas, neste caso da para detectar se alguem esta emitindo Nota para você sem você saber, uma vez que o XML não é enviado por e-mail para você.

 

Para quem vende, ou seja o Emitente, é uma confirmação que a mercadoria foi entregue ou seja temos ai o canhoto eletrônico de entrega de mercadoria.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia,

Não estava conseguindo testar a "Manifestação do destinatário" por falha minha, para funcionar fiz o seguinte, após a primeira busca pego o retorno e uso o "ultNSU" para continuar a busca até que o "indCont" retorne "0". Funcionou perfeitamente e nos 2 ambientes, produção e homologação.

O Download também esta funcionando corretamente.

Parabéns a equipe ACBr pelo ótimo trabalho.

Olá Verissimo,

Você pode exemplificar como fez esse loop ?

Tentei aqui mas o resultado sempre é "Nenhum documento localizado para o destinatario".

Obrigado.

 

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Postado

Olá Verissimo,

Você pode exemplificar como fez esse loop ?

Tentei aqui mas o resultado sempre é "Nenhum documento localizado para o destinatario".

Obrigado.

 

Sérgio

 

 

Sergio , eu utilizo este laço listando as NFe's Destinadas no NextGrid , veja rotina completa :

 

 

 

 

 

procedure TFrm_Manifestacao_Destinatario.btn_Consulta_NFe_DestinadasClick(

  Sender: TObject);

var

 CNPJ , IndNFe , IndEmi , ultNSU , Tem_Doctos : string;

 ok : boolean ;

 i , a : integer ;

begin

  Grid_NFe.ClearRows ;

  CNPJ := FrmPrincipal.Cnpj_Autenticacao_Certificado_Digital ;

  case cbx_Indicador_NFe_Consultada.ItemIndex of

  0 : IndNFe := '0' ;  // 0 = Todas as NF-e

  1 : IndNFe := '1' ;  // 1 = Somente as NF-e que ainda não tiveram manifestação do destinatário

                       //     (Desconhecimento da operação, Operação não Realizada ou Confirmação da Operação)

  2 : IndNFe := '2' ;  // 2 = Idem anterior, incluindo as NF-e que também não tiveram a Ciência da Operação

  end ;

  case cbx_Indicador_Emissor.ItemIndex of

  0 : IndEmi := '0' ;  // 0 = Todos os Emitentes / Remetentes

  1 : IndEmi := '1' ;  // 1 = Somente as NF-e emitidas por emissores / remetentes que não tenham a mesma

                       //     raiz do CNPJ do destinatário (para excluir as notas fiscais de transferência entre filiais).*)

  end ;

  ultNSU := '0'  ;

 

  Tem_Doctos := 'S' ;

  while Tem_Doctos = 'S' do

        begin

        Tem_Doctos := 'N' ;

        FrmPrincipal.ACBrNFe1.NotasFiscais.Clear ;

        FrmPrincipal.ACBrNFe1.EventoNFe.Evento.Clear ;

        FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Clear ;

        try

        FrmPrincipal.ACBrNFe1.ConsultaNFeDest(CNPJ,

                                              StrToIndicadorNFe(ok,indNFe),

                                              StrToIndicadorEmissor(ok,IndEmi),

                                              UltNSu) ;

        except

        end ;

        case FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.indCont of

        icNaoPossuiMaisDocumentos :    Tem_Doctos := 'N' ;

        icPossuiMaisDocumentos    :    Tem_Doctos := 'S' ;

        end;

        ultNSU := FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ultNSU ; 

        // Retorno de NFe Destinadas

        for i := 0 to FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Count -1 do

           begin

           if Trim(FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.chNFe) <> '' then

              begin

              Grid_NFe.AddCells([  'False' ,

                                   '' ,

                                   FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.xNome ,

                                   FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.chNFe ,

                                   FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.CNPJCPF ,

                                   VarToStr(FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.vNF) ,

                                   FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.IE ,

                                   DateToStr(FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.dEmi) ,

                                   VarToStr(FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.tpNF) ,

                                   VarToStr(FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.cSitNFe) ,

                                   VarToStr(FrmPrincipal.AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.cSitConf) ]);

              end ;

           end ;

        // Retorno de NFe Destinadas

        Grid_NFe.ApplyEditing ;

        FrmPrincipal.ACBrNFe1.NotasFiscais.Clear ;

        FrmPrincipal.ACBrNFe1.EventoNFe.Evento.Clear ;

        end ;

  for i := 0 to Grid_NFe.RowCount -1 do

      begin

      if Grid_NFe.CellByName['NFe_C_Sit_Conf',i].AsInteger = 0 then

         begin

         for a := 0 to Grid_NFe.Columns.Count -1 do

             Grid_NFe.Cell[a,i].Color := clAqua ;

         end ;

      if Grid_NFe.CellByName['NFe_C_Sit_Conf',i].AsInteger = 1 then

         begin

         for a := 0 to Grid_NFe.Columns.Count -1 do

             Grid_NFe.Cell[a,i].Color := clLime ;

         end ;

      if Grid_NFe.CellByName['NFe_C_Sit_Conf',i].AsInteger = 2 then

         begin

         for a := 0 to Grid_NFe.Columns.Count -1 do

             Grid_NFe.Cell[a,i].Color := clFuchsia ;

         end ;

      if Grid_NFe.CellByName['NFe_C_Sit_Conf',i].AsInteger = 3 then

         begin

         for a := 0 to Grid_NFe.Columns.Count -1 do

             Grid_NFe.Cell[a,i].Color := clYellow ;

         end ;

      if Grid_NFe.CellByName['NFe_C_Sit_Conf',i].AsInteger = 4 then

         begin

         for a := 0 to Grid_NFe.Columns.Count -1 do

             Grid_NFe.Cell[a,i].Color := clBlue ;

         end ;

      end ;

end;

Postado (editado)
Sergio , eu utilizo este laço listando as NFe's Destinadas no NextGrid , veja rotina completa :

,,,

 

 

Olá Marcelo, agradeço muito a sua atenção.

Vou usar esse código em meus testes e posto aqui o resultado.

 

Um grande abraço.

 

Sérgio

Editado por gigainfo
Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Postado

Pessoal, boa tarde.

 

Ainda tenho dúvidas sobre o Último NSU...

Estou implementando aqui a Consulta de NF-e Destinadas...

 

Quanto ao NSU, qdo é a primeira consulta que o cliente está fazendo eu passo 0 (zero) para o mesmo e realizo a consulta.

Independente se retorna documentos ou não nesta consulta, a Sefaz retorna um Número de NSU, correto?

No meu caso eu guardo este NSU em uma tabela e na próxima consulta que o cliente for realizar eu utilizo este número para uma nova consulta.

 

Quem está implementando aí, está fazendo dessa mesma forma?

Há necessidade de algum momento eu utilizar o NSU zero para uma consulta mesmo o cliente já ter efetuado consultas anteriores?

 

Estou um pouco confuso com isso.

 

Desde já agradeço a atenção aí.

 

Att, Alex.

  • Consultores
Postado

Boa tarde Alex,

 

Você esta no caminho certo, inicialmente realizamos a primeira consulta com o NSU valento zero e depois utiliza o NSU retornado para as próximas consultas, até que o indicador retorne que não tem mais documentos.

 

Quando esgota os documentos, devemos aguardar um dia ou mais e realizar uma nova consulta começando com o NSU valendo zero.

 

Não tenho esse procedimento em produção na empresa que trabalho, mas quem já esta utilizando a mais tempo pode confirmar ou não que foi dito acima.

 

Espero ter ajudado.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo e demais colegas , boa tarde ! 

 

Já tenho varios clientes utilizando em produção com o cógido acima que mencionei , e esta bacana funcionando direitinho , só um detalhe que gostaria de mencionar , o retorno é bem demorado das NFe's , até coloquei até uma mensagem de aviso de demora antes do usuario iniciar o processo !  

 

Uma outra dica que deixo para os colegas que ainda não o fizeram é : (1º- Italo , não vi nada interno no componente que faça isso e na verdade não sei se é obrigatório deixar salvo os xml's  de pedido de NFe destinadas ! , acredito que não é legal tbm ter interno no componente isso !  certo ? ) é que cada laço/pedido de nova consulta é salvo um arquivo xml deste pedido , certo ?   a cada vez que o usuario realiza um pedido das NFe's destinadas , são gerados dezenas os até mesmo centenas de arquivos na pasta de eventos do sistema !!  No meu caso utilizei uma rotina para estar deletando estes arquivos (Somente os de Pedido de NFe's Detinadas , viu galera !) da pasta Evento do meu programa !

 

 

Vou deixar para quem quizer a rotina que utilizo para deletar os arquivos em questão , qualquer dica é bem vinda !!! :

 

 

procedure TFrmPrincipal.Deleta_Arquivos_XML_Temp ( Patch : String ) ;

var

SearchRec   : TSearchRec ;

Result      : Integer ;

Arquivo     : String ;

Competencia : String ;

begin

   // Deletando Arquivos do Path Geral do Cnpj do Emitente ativo 

   Arquivo := Patch + '\*.xml' ;

   Result  := FindFirst( Arquivo , faAnyFile, SearchRec) ;

   while result = 0 do

         begin

         if pos('-con-nfe-dest.',SearchRec.Name) > 0 then

            DeleteFile( Patch + '\' + SearchRec.Name) ;

         if pos('-nfe-dest.',SearchRec.Name) > 0 then

            DeleteFile( Patch + '\' + SearchRec.Name) ;

         if pos('-eve.',SearchRec.Name) > 0 then

            DeleteFile( Patch + '\' + SearchRec.Name) ;

         if pos('-ped-evento.',SearchRec.Name) > 0 then

            DeleteFile( Patch + '\' + SearchRec.Name) ;

         Result := FindNext(SearchRec) ;

         end;

   // Fim Deletando Arquivos do Path Geral do Cnpj do Emitente ativo

   Competencia := FormatDateTime('yyyy', Now) + FormatDateTime('mm', Now) ;

  

   // Deletando Arquivos do Path Mensal/Competencia do Cnpj do Emitente Ativo

   Arquivo := Patch + '\' + Competencia + '\Evento\*.xml' ;

   Result  := FindFirst( Arquivo , faAnyFile, SearchRec) ;

   while Result = 0 do

         begin

         if pos('-con-nfe-dest.',SearchRec.Name) > 0 then

            begin

            Arquivo := Patch + '\' +  Competencia + '\Evento\' + SearchRec.Name ;

            DeleteFile( Arquivo ) ;

            end ;

         if pos('-nfe-dest.',SearchRec.Name) > 0 then

            begin

            Arquivo := Patch + '\' +  Competencia + '\Evento\' + SearchRec.Name ;

            DeleteFile( Arquivo ) ;

            end ;

         if pos('-eve.',SearchRec.Name) > 0 then

            begin

            Arquivo := Patch + '\' +  Competencia + '\Evento\' + SearchRec.Name ;

            DeleteFile( Arquivo ) ;

            end ;

         if pos('-ped-evento.',SearchRec.Name) > 0 then

            begin

            Arquivo := Patch + '\' +  Competencia + '\Evento\' + SearchRec.Name ;

            DeleteFile( Arquivo ) ;

            end ;

         Result := FindNext(SearchRec) ;

         end;

   // Fim Deletando Arquivos do Path Mensal/Competencia do Cnpj do Emitente ativo

  

end;

  • Consultores
Postado

Boa tarde Marcelo,

 

Não precisa nada disso, no caso de realizar a consulta de NFe destinadas, basta atribuir o valor False as duas propriedades Salvar que o componente possui.

 

Desta forma ele realiza a consulta retorna o resultado mas não salva em disco o xml de envio de consulta e o de retorno.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado
Boa tarde Marcelo,

 

Não precisa nada disso, no caso de realizar a consulta de NFe destinadas, basta atribuir o valor False as duas propriedades Salvar que o componente possui.

 

Desta forma ele realiza a consulta retorna o resultado mas não salva em disco o xml de envio de consulta e o de retorno.

 

Certo Italo , mas no caso desabilitei o Salvar de Configuracoes\Arquivos mas ai o componente não salva mais nenhum arquivo na pasta Mensal Ano/Mes 201301 , entende ?  no caso não teria que desconsiderar somente os xml's "temp" , e os demais validos da pasta mensal permanecer ?

 

O Outro Salvar de Configuracoes\Geral , o meu ja estava False !!

Postado
Boa tarde Alex,

 

Você esta no caminho certo, inicialmente realizamos a primeira consulta com o NSU valento zero e depois utiliza o NSU retornado para as próximas consultas, até que o indicador retorne que não tem mais documentos.

 

Quando esgota os documentos, devemos aguardar um dia ou mais e realizar uma nova consulta começando com o NSU valendo zero.

 

Não tenho esse procedimento em produção na empresa que trabalho, mas quem já esta utilizando a mais tempo pode confirmar ou não que foi dito acima.

 

Espero ter ajudado.

Bom dia Ítalo.

 

Seguinte... se fizer dessa forma que vc me falou de começar com zero na próxima vez depois de ter retornado que não tem mais documentos... teoricamente nessa nova consulta ele não começaria trazer todas as mesmas notas que já foram retornadas na primeira pesquisa iniciada em zero?

 

Valeu.

  • Curtir 1
  • Consultores
Postado

Bom dia Alex,

 

Apesar de já ter implementado essa funcionalidade em meu sistema, não realizei testes por falta de certificado.

 

Quem já implementou, poderia realizar os testes e depois postar no fórum os resultados.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Bom dia Ítalo.

 

Seguinte... se fizer dessa forma que vc me falou de começar com zero na próxima vez depois de ter retornado que não tem mais documentos... teoricamente nessa nova consulta ele não começaria trazer todas as mesmas notas que já foram retornadas na primeira pesquisa iniciada em zero?

 

Valeu.

 

Italo , obrigado pela dica do Salvar !!!

 

 

Alex , oque identifica o formato de pesquisa se vai listar Todas as NFs ou não ! , não é a tag NSU e sim a tag IndNFe , veja :

 

  0 : IndNFe := '0' ;  // 0 = Todas as NF-e

  1 : IndNFe := '1' ;  // 1 = Somente as NF-e que ainda não tiveram manifestação do destinatário

                       //     (Desconhecimento da operação, Operação não Realizada ou Confirmação da Operação)

  2 : IndNFe := '2' ;  // 2 = Idem anterior, incluindo as NF-e que também não tiveram a Ciência da Operação

 

 

No caso , o interessante é utilizar IndNFe = 1 ou 2  !  certo ?  e o NSU = 0  , no primeiro looping do laço !

Editado por marcelo_sp
  • Consultores
Postado

Bom dia a todos,

 

Maravilha, vamos continuar lendo e relendo as Notas Tecnicas para podermos discutir sobre o assunto com mais embasamento e implementar da melhor maneira possivel em vez de ficar batendo a cabeça.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo , obrigado pela dica do Salvar !!!

 

 

Alex , oque identifica o formato de pesquisa se vai listar Todas as NFs ou não ! , não é a tag NSU e sim a tag IndNFe , veja :

 

  0 : IndNFe := '0' ;  // 0 = Todas as NF-e

  1 : IndNFe := '1' ;  // 1 = Somente as NF-e que ainda não tiveram manifestação do destinatário

                       //     (Desconhecimento da operação, Operação não Realizada ou Confirmação da Operação)

  2 : IndNFe := '2' ;  // 2 = Idem anterior, incluindo as NF-e que também não tiveram a Ciência da Operação

 

 

No caso , o interessante é utilizar IndNFe = 1 ou 2  !  certo ?  e o NSU = 0  , no primeiro looping do laço !

Boa tarde Marcelo.

 

Acho que vc não entendeu a minha pergunta... A minha dúvida era se sempre que fosse iniciada uma pesquisa com NSU zero, iria retornar as mesmas NF-e da última pesquisa..

Mas lendo a NT acabei entendo, a resposta pra minha pergunta está aqui:

 

"Caso o ultNSU seja informado com 0 (zero), o WS fará a consulta a partir da primeira nota fiscal

recepcionada há menos de 15 dias ou outro prazo maior que a UF entender conveniente;"

 

Ou seja, se vc todo dia iniciar sua pesquisa utilizando NSU 0, sempre vai trazer à partir dessa 1ª NF-e recepcionada no prazo de 15 dias..

Se vc iniciar com o último NSU da última pesquisa que vc fez, seja no dia anterior ou no mesmo dia, ele sempre vai trazer as novas NF-e recepcionadas à partir do NSU que vc está informando.

 

Agora acho que ficou claro pra mim..

Qualquer dúvida estamos aí.

 

Valeu.

Postado (editado)

Boa tarde Marcelo.

 

Acho que vc não entendeu a minha pergunta... A minha dúvida era se sempre que fosse iniciada uma pesquisa com NSU zero, iria retornar as mesmas NF-e da última pesquisa..

Mas lendo a NT acabei entendo, a resposta pra minha pergunta está aqui:

 

"Caso o ultNSU seja informado com 0 (zero), o WS fará a consulta a partir da primeira nota fiscal

recepcionada há menos de 15 dias ou outro prazo maior que a UF entender conveniente;"

 

Ou seja, se vc todo dia iniciar sua pesquisa utilizando NSU 0, sempre vai trazer à partir dessa 1ª NF-e recepcionada no prazo de 15 dias..

Se vc iniciar com o último NSU da última pesquisa que vc fez, seja no dia anterior ou no mesmo dia, ele sempre vai trazer as novas NF-e recepcionadas à partir do NSU que vc está informando.

 

Agora acho que ficou claro pra mim..

Qualquer dúvida estamos aí.

 

Valeu.

 

 

Alex , é bem particular mesmo de cada um de nós desenvolvedores este processo de como cada um fez ou esta fazendo seus programas , mas é legal isso tudo porque otimizamos cada vez mais nossos Programas nesses debates !!! Mas te digo que uma coisa é a teoria dos Manuais e NT's e outra é o dia dia na pratica do usuario final !!! Tenho alguns clientes que vem utilizando a Manifestação em Produção , e venho acompanhando a evolução disso tudo .

 

Quanto a questão que segue , oque acontece no pedido das NFs para Manifestação , é que na primeira passada do laço quando o NSU iniciado tanto em Zero ou mesmo informando o último NSU ,  não traz/aparece nf nenhuma !!!  ,  para se retornar a primeira nota o laço normalmente ja rodou dezenas de vezes , ja pegou dezenas de números de últimos NSU's para mostrar a primeira Nota , entende ? pra vc ter idéia nos testes que venho acompanhando , para se retornar uma média de 12 NFs no final do processo , ja teve vez do laço da rotina rodar umas 130 vezes ou mais , isso em Produção Tá !  então acredito que no momento o último NSU não é importante no inicio do laço , particulamente falando !   Uma outra coisa que incomoda o usuário é a demora do procedimento se a Internet do Cliente for ruim !

Editado por marcelo_sp
Postado
Alex , é bem particular mesmo de cada um de nós desenvolvedores este processo de como cada um fez ou esta fazendo seus programas , mas é legal isso tudo porque otimizamos cada vez mais nossos Programas nesses debates !!! Mas te digo que uma coisa é a teoria dos Manuais e NT's e outra é o dia dia na pratica do usuario final !!! Tenho alguns clientes que vem utilizando a Manifestação em Produção , e venho acompanhando a evolução disso tudo .

 

Quanto a questão que segue , oque acontece no pedido das NFs para Manifestação , é que na primeira passada do laço quando o NSU iniciado tanto em Zero ou mesmo informando o último NSU ,  não traz/aparece nf nenhuma !!!  ,  para se retornar a primeira nota o laço normalmente ja rodou dezenas de vezes , ja pegou dezenas de números de últimos NSU's para mostrar a primeira Nota , entende ? pra vc ter idéia nos testes que venho acompanhando , para se retornar uma média de 12 NFs no final do processo , ja teve vez do laço da rotina rodar umas 130 vezes ou mais , isso em Produção Tá !  então acredito que no momento o último NSU não é importante no inicio do laço , particulamente falando !   Uma outra coisa que incomoda o usuário é a demora do procedimento se a Internet do Cliente for ruim !

Tenho dois pontos a observar:

 

  1. da forma que venho acompanhando a receita, se ficarmos sempre iniciando do NSU 0, daqui a pouco ela poderá nos bloquear por consumo excessivo.  Já existe a possibilidade de informar o Último NSU justamente para diminuir as requisições.
  2. Acredito que o melhor a ser feito é um serviço responsável por toda a comunicação com a SEFAZ, desta forma o trabalho é sempre feito em paralelo, não travando o processo do cliente.  Para se ter uma ideia, tenho uma média de 800 NFe's/CTe's diárias fora os cancelamentos, consultas, cce's e outros mais, que não são tantos assim, quando temos problemas na internet primária da empresa, espeto um modem 3G no servidor, a conexão geralmente não ultrapassa os 200kbps e o link aguenta tranquilamente, ninguém nem percebe que há algo de errado.

- Sou desenvolvedor.

- De que linguagem, delphi? .NET? Java?

- Qualquer uma, sou desenvolvedor.

Postado

Tenho dois pontos a observar:

 

  1. da forma que venho acompanhando a receita, se ficarmos sempre iniciando do NSU 0, daqui a pouco ela poderá nos bloquear por consumo excessivo.  Já existe a possibilidade de informar o Último NSU justamente para diminuir as requisições.
  2. Acredito que o melhor a ser feito é um serviço responsável por toda a comunicação com a SEFAZ, desta forma o trabalho é sempre feito em paralelo, não travando o processo do cliente.  Para se ter uma ideia, tenho uma média de 800 NFe's/CTe's diárias fora os cancelamentos, consultas, cce's e outros mais, que não são tantos assim, quando temos problemas na internet primária da empresa, espeto um modem 3G no servidor, a conexão geralmente não ultrapassa os 200kbps e o link aguenta tranquilamente, ninguém nem percebe que há algo de errado.

 

Markapollo bom dia , 

 

A Manifestação é feita uma vez por semana em média pelos Clientes , não é ?  O Cliente não fica fazendo Manifestação todo dia toda hora como se emiti NFe e demais Doc's , se ele fizer uma vez por semana a Manifestação são = 04 NSU = Zero no mês ,  Sera que esses 04  NSU's = Zero no mes !  , isso pode bloquear o WS ?? Porque o NSU Zero entra somente uma vez no laço o resto é o Ultimo NSU mesmo !

Postado

Depende, ainda não implementei a consulta no meu sistema, mas, pelo que já conheço o processo, a consulta se dará ao menos 1 vezes ao dia, mas pensando em umas 4, visto a quantidade de notas recebidas e ao movimento.  Já que a ideia é não deixar a mercadoria entrar no pátio da empresa caso não haja um registro dela no sistema.  Fora outras questões.

 

Markapollo bom dia , 

 

A Manifestação é feita uma vez por semana em média pelos Clientes , não é ?  O Cliente não fica fazendo Manifestação todo dia toda hora como se emiti NFe e demais Doc's , se ele fizer uma vez por semana a Manifestação são = 04 NSU = Zero no mês ,  Sera que esses 04  NSU's = Zero no mes !  , isso pode bloquear o WS ?? Porque o NSU Zero entra somente uma vez no laço o resto é o Ultimo NSU mesmo !

- Sou desenvolvedor.

- De que linguagem, delphi? .NET? Java?

- Qualquer uma, sou desenvolvedor.

  • Este tópico foi criado há 3654 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...