Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Registro C100 não esta sendo gerado [RESOLVIDO]


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

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • Consultores

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.
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • Consultores

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.
Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • Consultores

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.
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • Consultores

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.
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.