Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

ola pessoal, estou com o seguinte problema aqui:

tenho varios clientes q geram o SPED normalmente, mas em 2 esta acontecendo o seguinte:

Cliente 1

mes: 01/2012 a 07/2012 - gera normalmente

mes: 08/2012 - não gera C100 e filhos (tanto entrada como saida)

mes: 09/2012 - gera normalmente

mes: 10/2012 - gera normalmente

Cliente 2

nao gera nenhum mes, iniciando em janeiro ate o mes 10

(estao gerando atrasado pq o contador disse q nao precisava, e agora veio com o papo q tem q gerar, q tem q ser retroativo, q isso e aquilo - mas eu avisei todos eles em out/11, nov/11, dez/11, jan/12....)

verifiquei o BD e ainda nao encontrei alguma coisa q fizesse diferenca nos dados pra nao gerar.

agora pergunto: no ACBrSPEDFiscal, tem alguma verificacao q faca com q ele nao gere esses registros? tipo se algum campo nao for preenchido, nao gerar?

lembrando q debuguei o codigo e ele passa pelos registros da nota como se estivesse gerando os registros

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

Postado

Olá joemil!

Dê uma olhada no código:


     if FRegistroC001.IND_MOV = imComDados then

     begin

       WriteRegistroC100( FRegistroC001 ) ;

       WriteRegistroC300( FRegistroC001 ) ;

       WriteRegistroC350( FRegistroC001 ) ;

       WriteRegistroC400( FRegistroC001 ) ;

       WriteRegistroC495( FRegistroC001 ) ;

       WriteRegistroC500( FRegistroC001 ) ;

       WriteRegistroC600( FRegistroC001 ) ;

       WriteRegistroC700( FRegistroC001 ) ;

       WriteRegistroC800( FRegistroC001 ) ;

       WriteRegistroC860( FRegistroC001 ) ;

     end;

O C100 só é gerado se o campo IND_MOV do registro C001 é igual a 0 (imComDados).

Para o campo IND_MOV, tu estás informando um valor fixo ou estás realizando algum teste para informá-lo?

Caso esteja fazendo algum teste, verifica se o mesmo está correto.

Att,

Filipe Sortica
Santa Maria / RS
Analista de Sistemas

Postado

veja meu codigo:

         with RegistroC001New do

         begin

            IND_MOV := imComDados;

            while not sqlVendas.Eof do

            begin

               with RegistroC100New do

               begin

                  lblTexto.Caption := 'Exportando Nota de Saída n° ' + sqlVendasNF_Numero.AsString +

                   ' - '+sqlVendasCliente.AsString;

                  lblTexto.Refresh;

                  IND_OPER := tpSaidaPrestacao;

                  IND_EMIT := edEmissaoPropria;

                  if sqlVendasNF_Tipo.AsString = 'NFE' then

                     COD_MOD := '55'

                  else

                     COD_MOD := '01';


                  EnviaQuery('UPDATE clientes SET sped = "S" WHERE id_cliente = ' + sqlVendasID_Cliente.AsString);


                  if sqlVendasSituacao.AsString = 'Cancelado' then

                     COD_SIT := sdCancelado

                  else

                     COD_SIT := sdRegular;

                  COD_PART := 'CLI' + sqlVendasID_Cliente.AsString;



                  SER := '';

                  NUM_DOC := sqlVendasNF_Numero.AsString;

                  CHV_NFE := sqlVendasNFE_Chave.AsString;

                  DT_DOC := sqlVendasNF_Data.Value;

                  DT_E_S := sqlVendasNF_Data.Value;

                  VL_DOC := sqlVendasTotalPagar.AsCurrency;

                  IND_PGTO := tpPrazo;

                  VL_DESC := sqlVendasDesconto.AsCurrency;

                  VL_ABAT_NT := 0;

                  VL_MERC := sqlVendasTotalProd.AsCurrency;

                  IND_FRT := tfSemCobrancaFrete;

                  VL_SEG := 0;

                  VL_OUT_DA := 0;

                  VL_BC_ICMS := 0;

                  VL_ICMS := 0;

                  VL_BC_ICMS_ST := 0;

                  VL_ICMS_ST := 0;

                  VL_IPI := 0;

                  VL_PIS := 0; //sqlVendasPIS.Value;

                  VL_COFINS := 0; //sqlVendasCOFINS.Value;

                  VL_PIS_ST := 0;

                  VL_COFINS_ST := 0;


                  // C190 -

               end; // C100


               sqlCST.First;

               while not sqlCST.Eof do

               begin

                  with RegistroC190New do

                  begin

                     Desconto := 0;

                     if sqlVendasTotal.AsCurrency > 0 then

                     begin

                        Desconto := SimpleRoundTo(sqlVendasDesconto.AsCurrency / sqlVendasTotal.AsCurrency * 100, -3);

                        Desconto := SimpleRoundTo(sqlCSTTotal.AsCurrency * Desconto / 100, -2);

                     end;

                     CST_ICMS := sqlCSTOrigem.AsString + sqlCSTCST.AsString;

                     CFOP := LeftStr(SoNumeros(sqlCSTCFOP.AsString), 4);

                     ALIQ_ICMS := 0;

                     VL_OPR := sqlCSTTotal.AsCurrency - Desconto;

                     VL_BC_ICMS := 0;

                     VL_ICMS := 0;

                     VL_BC_ICMS_ST := 0;

                     VL_ICMS_ST := 0;

                     VL_RED_BC := 0;

                     VL_IPI := 0;

                     COD_OBS := '';

                  end; // C190;

                  sqlCST.Next;

               end;

               sqlVendas.Next;

               P2.Position := P2.Position + 1; P2.Refresh;

            end; // not sqlVendas.eof

         end; // RegistroC001New

veja q nele tem um While, e dentro do while tem um UPDATE
EnviaQuery('UPDATE clientes SET sped = "S" WHERE id_cliente = ' + sqlVendasID_Cliente.AsString);

eu atribuo 'S' ao campo SPED do cliente q deve ser inserido no registro correspondente

ele esta executando tudo, inclusive marcando os clientes.

os clientes estao indo nos registros, mas as notas nao.

ja debuguei dentro do while, e esta passando nota por nota, mas nao registra no arquivo.

o problema é q em um cliente é so o mes 8, e em outro sao todos os meses, porem nos outros 11 clientes funciona normal

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

  • Consultores
Postado

Verifique o método WriteRegistroC100 para ver se alguma restrição está barrando seus registros de serem gerados.

Certifique-se que durante a execução ele passe também pelos métodos filhos C170, C190 etc...)

Dúvidas:

Você definiu algo no evento ACBrSPEDFiscal.onError?

Por quê você não gera os registros C170?

O que vem a ser o objeto P2 e o método P2.Refresh? Barra de progresso?

eu atribuo 'S' ao campo SPED do cliente q deve ser inserido no registro correspondente

Algum motivo especial para isso?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

opa, vamos la:

Verifique o método WriteRegistroC100 para ver se alguma restrição está barrando seus registros de serem gerados.

Certifique-se que durante a execução ele passe também pelos métodos filhos C170, C190 etc...)

vou verificar

Você definiu algo no evento ACBrSPEDFiscal.onError?

não, mas vou fazer agora

Por quê você não gera os registros C170?

toda vez q gero, o pva diz q nao precisa (ou algo assim, por isso nao gero)

O que vem a ser o objeto P2 e o método P2.Refresh? Barra de progresso?

isso mesmo

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

Postado

Olá!

Por quê você não gera os registros C170?
toda vez q gero, o pva diz q nao precisa (ou algo assim, por isso nao gero)

Exatamente.

Vejam o manual:

REGISTRO C100: NOTA FISCAL (CÓDIGO 01), NOTA FISCAL AVULSA (CÓDIGO 1B), NOTA FISCAL DE PRODUTOR (CÓDIGO 04) E NF-e (CÓDIGO 55).

Exceção 2: Notas Fiscais Eletrônicas - NF-e de emissão própria: regra geral, devem ser apresentados somente os registros C100 e C190, e, se existirem ajustes de documento fiscais determinados por legislação estadual (tabela 5.3 do Ato COTEPE ICMS 09/08), devem ser apresentados também os registros C195 e C197; somente será admitida a informação do registro C170 quando também houver sido informado o registro C176, hipótese de emissão de documento fiscal quando

houver direito a Ressarcimento de ICMS em Operações com Substituição Tributária; permitindo ainda a partir de julho de 2012, a apresentação dos registros C110 e C120;

Por isso, numa emissão normal de NF-e, não é necessário gerar o C170.

Att,

Filipe Sortica
Santa Maria / RS
Analista de Sistemas

Postado

valeu pela explicacao.

esse manual é mto extenso, e o contador aqui nao le tb pra me explicar os detalhes

no FDS vou fazer os testes

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

Postado

opa, eu de novo.

ja olhei os fontes e nao consegui descobrir o motivo.

o interessante q esse meu cliente tem 6 notas no mes 08/2012, e nenhuma delas é enviada para o arquivo

ja listei os registros no cliente do banco de dados pra verificar se ha alguma coisa diferente nos campos e nao encontrei nada q pudesse "desviar" o registro do BD

o pior é q o mes 07, 09 e 10 geram normalmente. somente o mes 08/2012 q nao gera nenhum registro C100. to encafifado com isso. ja to perdendo os poucos cabelos brancos q tenho rsrsrsr

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

  • Consultores
Postado

Entendi. Mas tem mesmo que continuar analisando tudo... Daqui de longe fica difícil saber o que está acontecendo.

Será que não é algum erro no SQL? O que você coloca como SQL do sqlVendas? Tem alguma condição que poderia estar eliminando algum registro?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Entendi. Mas tem mesmo que continuar analisando tudo... Daqui de longe fica difícil saber o que está acontecendo.

Será que não é algum erro no SQL? O que você coloca como SQL do sqlVendas? Tem alguma condição que poderia estar eliminando algum registro?

ja testei o sql, esta listando as 6 vendas, prova disso é q dentro do while tem um update q marca quais clientes devem ser incluidos no sped, e eles estao sendo marcados e incluidos normalmente, so as notas q nao estao sendo incluidas

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

  • Consultores
Postado

Copie a base de dados do cliente pra sua máquina então e tente debugar.

Verifique se o componente está passando dentro do método WriteRegistroC100 e adicionando as notas.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

tentei debugar o sistema, o while esta sendo executado normalmente.

vou tentar debugar as units do acbr pra verificar, inclusive com outros meses

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

Postado

pronto. fiz os testes. o parametro INDMOV esta indo imSemDados, so nao entendi pq. vejam as imagens:

nesta primeira, o debug do meu codigo. o IND_MOV esta fixo e o while esta sendo executado, teoricamente gerando o C100:

11jq1pk.jpg

aqui o debugo do C001, onde IND_MOV chega SemDados:

2ymub6u.jpg

agora pergunto: se esta fixo, pq esta mudando?

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

Postado

ja descobri.

q erro grosseiro q fiz.

tenho 2 procedures, uma gera as saidas (primeiro) e outra gera as entradas, como nesse periodo nao tem entradas, estava mudando o IND_MOV para imSemDados

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

  • Consultores
Postado

ja descobri.

tenho 2 procedures, uma gera as saidas (primeiro) e outra gera as entradas, como nesse periodo nao tem entradas, estava mudando o IND_MOV para imSemDados

Que bom que resolveu.

Obrigado pelo retorno. Assim a gente fica mais tranquilo, e outros usuários podem ficar atentos a esse problema também.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

rapaz, ja tava uns 3 meses tentando achar isso hehehe

mas agora todos podem ficar tranquilos, o erro foi meu mesmo. o componente ta 100%. obrigado a todos

inclusive ja gerei os sped de todos os meses q faltavam nesses 2 clientes

Analista de Sistemas

Control Fácil Sistemas

MultiWare Tecnologia

TW Speed Telecom

  • Este tópico foi criado há 4396 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.