Ir para conteúdo
  • Cadastre-se

dev botao

Vl_Bc_Cofins No C485 Quando Cst <> 01 Esta Ficando Vazio


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

Recommended Posts

Pessoal,

 

Estou com o seguinte problema:

 

Quando o VL_BC_COFINS ou o VL_BC_PIS respectivamente bloco c481 e c485 estiverem com valor ZERO sao gravados como vazio e o validador versao 2.05 da o erro "Base aliquota tem que ser zero quando CST = 04 05 06"

 

EDIT:

 

O Titulo desta thread parece que esta errada agora, pois verifiquei que sempre grava desta forma indiferente de CST.

 

Estive dando uma olhada pela primeira vez em como o ACBr grava, no caso o c481 mas vale para o c485 tambem:

 

        Add( LFill('C481')             +
             LFill(CstPisToStr(CST_PIS))  +
             LFill(VL_ITEM,0,2)        +
             DFill(VL_BC_PIS,      2, True) +
             DFill(ALIQ_PIS,       4, True) +
             DFill(QUANT_BC_PIS,   3, True) +
             DFill(ALIQ_PIS_QUANT, 4, True) +
             LFill(VL_PIS,0,2)         +
             LFill(COD_ITEM)           +
             LFill(COD_CTA) ) ;

E pelo codigo acima VL_BC_PIS sempre sera gravado como nulo se conter zero. Parece que independente de qualquer outra condicao (achei anteriormente que poderia haver alguma situacao)

 

Porem o Validador esta reclamando desta situacao, somente aceitando quando existe 0 para este campo. O que fiz manualmente para teste. Estao tendo este problema? Como voces fazem neste caso, eu nao estava querendo mexer no codigo do ACBr e ficar com dependencia de sempre alterar!

 

Como faco para forçar o componente gerar zerado e nao vazio?

 

Obrigado!

 

Eduardo

Editado por eelias
Link para o comentário
Compartilhar em outros sites

Vou dar uma analisa hoje ainda, e dou o retorno da solução.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Fiz o ajuste para atender a exigência do validador, favor baixar a unit em anexo e testar, se funcionar me avise para que eu suba a implementação para o repositório.

 

Anexo removido por não atender a necessidade.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Porem o Validador esta reclamando desta situacao, somente aceitando quando existe 0 para este campo. O que fiz manualmente para teste. Estao tendo este problema? Como voces fazem neste caso, eu nao estava querendo mexer no codigo do ACBr e ficar com dependencia de sempre alterar!

 

Como faco para forçar o componente gerar zerado e nao vazio?

 

eelias,

  você viu algum dos tópicos falando do assunto? Fez pesquisa no fórum? Só na primeira página desse subfórum tem dois tópicos falando do assunto com link para pelo menos mais 4 outros.

 

Isaque,

  Gostaria de deixar registrado seu incansável esforço em ajudar a resolver todos os problemas do componente. É muito bom ver sua disposição e rapidez. Muito obrigado.

  sobre o código, não sei se você analisou, mas é preciso verificar que quando o campo 06 é preenchido, o campo 04 não pode ser preenchido com zero. Veja nota sobre preenchimento do campo 06 na página 109 do Guia Prático da EFD Contribuições versão 1.13:

 

 

Campo 06 - Preenchimento: informar neste campo a base de cálculo do PIS/Pasep expressa em quantidade (Unidade de

Medida de Produto), para fins de apuração da contribuição social, conforme as hipóteses previstas em lei, como por

exemplo, no caso de fabricantes e importadores de combustíveis e de bebidas frias (água, cerveja, refrigerantes) que

tenham optado por apurar as contribuições sociais com base na quantidade de produto vendida.

 O preenchimento do campo 06 (base de cálculo em quantidade) dispensa o preenchimento do campo 04 (base de cálculo

em valor), em relação ao item informado neste registro.

 

  Eu não sei se você chegou a testar esse caso específico, mas o código atual atende a ele. E sua modificação me parece que não... Talvez possa adicionar as verificações também propostas pelo Waldir Paim no seguinte tópico:

[]'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 para o comentário
Compartilhar em outros sites

EMBarbosa,

 

Perdoe me, eu fiz  uma pesquisa, mas talvez de  uma forma especifica demais e nao vi o que eu buscava. Nao é minha intencao de forma alguma ficar dispersando, pois eu realmente sei que toda ajuda aqui é voluntaria. Tanto que fiz toda a implementacao do SPED usando este maginifico trabalho sem nunca ter postado nada aqui para nao ser pesado.

 

Meu conhecimento "fiscal" é bem raso. Estou me guiando por um contador que entende bem da estrutura do sped.

 

O fato que o codigo atual NAO atende, nao esta sendo aceito pelo validador.

 

 Pelo que estou sabendo se o CST <> 01 o resultado da gravacao deveria estar assim:

 

|C481|04|4,00|0|0|||0,00|10093||

 

Com VL_BC_PIS e ALIQ_PIS gravando 0. 

 

Porem o codigo atual grava vazio. 

 

Parece que CST = 01 esta certo, pois ai é informado a aliquota que acaba sendo gravada.

 

Obrigado Isaque pela ajuda, no entando sua alteracao esta gravando 0 em todos os campos agora e o validados nao gostou disto.

 

Eduardo

Link para o comentário
Compartilhar em outros sites

  • Consultores

EMBarbosa,

 

Perdoe me, eu fiz  uma pesquisa, mas talvez de  uma forma especifica demais e nao vi o que eu buscava. Nao é minha intencao de forma alguma ficar dispersando, pois eu realmente sei que toda ajuda aqui é voluntaria. Tanto que fiz toda a implementacao do SPED usando este maginifico trabalho sem nunca ter postado nada aqui para nao ser pesado.

 

Meu conhecimento "fiscal" é bem raso. Estou me guiando por um contador que entende bem da estrutura do sped.

 

O fato que o codigo atual NAO atende, nao esta sendo aceito pelo validador.

 

 Pelo que estou sabendo se o CST <> 01 o resultado da gravacao deveria estar assim:

 

|C481|04|4,00|0|0|||0,00|10093||

 

Com VL_BC_PIS e ALIQ_PIS gravando 0. 

 

Porem o codigo atual grava vazio. 

 

Parece que CST = 01 esta certo, pois ai é informado a aliquota que acaba sendo gravada.

 

Eduardo

 

   Sim, o código atual não atende o seu caso específico. Está explicado nos tópicos relacionados que, se não leu antes, deve ler agora. e sei que você precisa do campo com valor zero ao invés de vazio. O que não temos ainda é uma solução que atenda

  Se tiver alguma sugestão ao código para corrigir fique à vontade para fazer.

 

  A propósito, você poderia anexar uma imagem do erro que você mencionou no primeiro post?

[]'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 para o comentário
Compartilhar em outros sites

Obrigado Elton pelo alerta, estou removendo a unit em anexo, como citou não temos a solução e não me deparei com o problema ainda para entende-lo por completo, peço desculpas...

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Elton vc que ta mais por dentro da necessidade, acha que se implementarmos o recurso do link  funcionaria?

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Eu irei postar aqui a minha solucao, para meu caso especifico, assim que terminar os testes.

 

So gostaria de sugerir algo ao forum. 

 

Normalmente quando faco compomentes e me deparo em situacoes assim, onde a regra e muito complexa ou nao tenho a solucao completa para ela, eu costumo permitir a definicao de um evento, para que a aplicacao host tome a decisao especifica.

 

Isto nao impede na busca de uma resolucao completa, mas pode ser um mecanismo a ser utilizado de uma forma geral. Sendo assim este evento poderia ser definido como Onc481BeforeWrite (e 485) e passando uma estrutura com valores e alguns flags permitindo dizer se grava ou nao, se zero é nulo ou nao, pra cada valor, e ate um campo, que se atribuido reescreve totalmente a saida, desconsiderando o que foi formatado pelo componente.

 

Um mecanismo deste evitaria os patchs por parte dos usuarios no fonte do acbr, permitindo atualizacoes mais tranquilas. E quanto houver a solucao definitiva, pode-se abandonar o evento.

 

Fica a sugestao...

Link para o comentário
Compartilhar em outros sites

Este a versão da gravação do bloco c481 e c485 que consegui aprovação da consultoria fiscal e que foi validada sem problemas, para meu caso especifico.

procedure TBloco_C.WriteRegistroC481(RegC405: TRegistroC405);
var
  intFor: integer;
  bolNull: Boolean;
  strCST_PIS: string;
begin
  if Assigned(RegC405.RegistroC481) then
  begin
    for intFor := 0 to RegC405.RegistroC481.Count - 1 do
    begin
      with RegC405.RegistroC481.Items[intFor] do
      begin
        bolNull := True;
        strCST_PIS := CstPisToStr(CST_PIS);
        // Base aliquota tem que ser zero quando CST = 04 05 06
        if (strCST_PIS = '04') or
           (strCST_PIS = '05') or
           (strCST_PIS = '06') then
        begin
           bolNull := False;
        end;

        Add( LFill('C481')             +
             LFill(strCST_PIS)         +
             LFill(VL_ITEM,0,2)        +
             DFill(VL_BC_PIS,      2, bolNull) +
             DFill(ALIQ_PIS,       4, bolNull) +
             DFill(QUANT_BC_PIS,   3, true) +
             DFill(ALIQ_PIS_QUANT, 4, true) +
             LFill(VL_PIS,0,2)         +
             LFill(COD_ITEM)           +
             LFill(COD_CTA) ) ;
        //
        RegistroC990.QTD_LIN_C := RegistroC990.QTD_LIN_C + 1;
      end;
    end;
    // Variavél para armazenar a quantidade de registro do tipo.
    FRegistroC481Count := FRegistroC481Count + RegC405.RegistroC481.Count;
  end;
end;

procedure TBloco_C.WriteRegistroC485(RegC405: TRegistroC405);
  var
    intFor        : integer;
    bolNull: Boolean;
    strCST_PIS: string;
begin
  if Assigned(RegC405.RegistroC485) then
  begin
    for intFor := 0 to RegC405.RegistroC485.Count - 1 do
    begin
      with RegC405.RegistroC485.Items[intFor] do
      begin
        bolNull := True;
        strCST_PIS := CstCofinsToStr(CST_COFINS);
        // Base aliquota tem que ser zero quando CST = 04 05 06
        if (strCST_PIS = '04') or
           (strCST_PIS = '05') or
           (strCST_PIS = '06') then
        begin
           bolNull := False;
        end;

        Add( LFill('C485')                     +
             LFill(CstCofinsToStr(CST_COFINS)) +
             LFill(VL_ITEM,0,2)                +
             DFill(VL_BC_COFINS,      2, bolNull) +
             DFill(ALIQ_COFINS,       4, bolNull) +
             DFill(QUANT_BC_COFINS,   3, True) +
             DFill(ALIQ_COFINS_QUANT, 4, True) +
             LFill(VL_COFINS,0,2)              +
             LFill(COD_ITEM)                   +
             LFill(COD_CTA) ) ;
        //
        RegistroC990.QTD_LIN_C := RegistroC990.QTD_LIN_C + 1;
      end;
    end;
    // Variavél para armazenar a quantidade de registro do tipo.
    FRegistroC485Count := FRegistroC485Count + RegC405.RegistroC485.Count;
  end;
end;

Por favor notem que:

             DFill(VL_BC_PIS,      2, bolNull) +
             DFill(ALIQ_PIS,       4, bolNull) +
             DFill(QUANT_BC_PIS,   3, true) +
             DFill(ALIQ_PIS_QUANT, 4, true) +

esta condicao bolNull somente mantive nos dois primeiros, estavam NOS QUATRO ANTES. E o validador nao aceitava.

 

Tambem notem que o mesmo que fiz para o C481 fiz para o C485, pois as regras sao as mesmas.

 

CST do caso 7 para cima nao é usado aqui, entao nao sei o resultado. E os CST 1, 2 e 3 possuem valores declarados.

 

Agradeco a atencao de todos e grande boa intencao em ajudar. 

 

Eduardo

Editado por eelias
Link para o comentário
Compartilhar em outros sites

Bom dia, é uma solução da qual deixamos de forma dinâmica para que o desenvolvedor trate cada situação que lhe parecer, vou criar esse evento com 5 parâmetros, para definir quais campos devem se nulos.

 

Uma coisa que não entendo, se a base de pis e cofins o validador reclama que deve ser nulo, porque ele deixa o campo vl_pis e vl_cofins ir zerado, de toda forma vou add um parametro para ele também e esses parâmetros terão valores padrões como null = false.

 

Aguarde, darei o retorno para os testes.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

eelias, Implementação concluída, segue em anexo as 3 units que foram alteradas,

 

Baixe elas, descompacte e substitua as da pasta ACBr, em seguida recompile o pacote do SPED, após a recompilação terá os eventos dos registros C481 e C485, os parâmetros receberão 5 parâmetros VAR do tipo Boolean, os valores padrão dos parâmetros virão FALSE, faça o tratamento da necessidade e mude para TRUE o que for preciso.

 

A principio vamos usando essa técnica, mais para frente talvez achamos uma alternativa mais automatizada.

 

Obrigado pela dica, por gentileza teste e nos retorne.

ACBrSpedPisCofins.zip

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Por favor notem que:

             DFill(VL_BC_PIS,      2, bolNull) +
             DFill(ALIQ_PIS,       4, bolNull) +
             DFill(QUANT_BC_PIS,   3, true) +
             DFill(ALIQ_PIS_QUANT, 4, true) +

esta condicao bolNull somente mantive nos dois primeiros, estavam NOS QUATRO ANTES. E o validador nao aceitava.

 

Tambem notem que o mesmo que fiz para o C481 fiz para o C485, pois as regras sao as mesmas.

 

CST do caso 7 para cima nao é usado aqui, entao nao sei o resultado. E os CST 1, 2 e 3 possuem valores declarados.

 

Agradeco a atencao de todos e grande boa intencao em ajudar. 

 

Eduardo

   Esta sugestão já está implementada nos tópicos que eu alistei. E o PVA não aceita a variável boolnull nos quatro campos pois você deve informar apenas imposto por Percentual ou por Quantidade. Não pode informar os dois ao mesmo tempo.

   No entanto ela não atende as situações que o componente atende atualmente. Se tivéssemos implementado ela os usuários que caem nessa situação reclamariam que alguma coisa "quebrou" o componente.

   Uma das situações que ela não atende é o do CST 04 com informações vazias. Note que o PVA não reclama de CST 04 sem valor em um dos quatro campos mencionados. Outra situação que não atende é quando o usuário preenche os valores por Quantidade com CST 04, 05, ou 06. Você nunca vai conseguir gerar um arquivo válido com esse código.

[]'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 para o comentário
Compartilhar em outros sites

  • Consultores

Elton vc que ta mais por dentro da necessidade, acha que se implementarmos o recurso do link  funcionaria?

   A primeira opção é a sugestão que eu tinha dado de misturar o seu código com o do Waldir Paim no outro tópico. Ainda assim, ela não vai atender todos os casos.

   A segunda opção, poderia atender todos os casos, mas provavelmente quebraria o funcionamento de outros componentes que precisam do modo atual do DFill funcionar. Acho muito arriscado. Exceto se adicionássemos um terceiro parâmetro para habilitar ou desabilitar o tratamento do número negativo...

 

 

 O uso de eventos eu ainda não analisei...

[]'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 para o comentário
Compartilhar em outros sites

Elton, assim que puder dê uma analisada no evento, acredito que tiramos a responsabilidade do componente e passamos para que cada usuário trate conforme sua necessidade, fico no aguardo de sua avaliação.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Isaque,

 

Desculpe nao retornar antes, fiz uma pequena cirurgia e fiquei fora uma semana.

 

Eu acabei de olhar o codigo, gostei muito da sua implementacao, e creio que seja o caminho para solucionar este tipo de situacoes.

 

Porem fiquei com uma questao que acho que precisa ser alterada, por favor me corrija se estiver errado:

 

Voce colocou a chamada ao Evento fora do loop dos registros C485 (c481).

 

Eu creio que nao deveria ser assim, pois existem diferencas POR CST. Conforme o caso da CST muda o formato.

 

Eu acho que voce deveria chamar o evento a CADA INTERACAO de um registro c485 e c481 passando qual o CST em questao para que eu possa dizer qual o resultado esperado. Como esta eu nao consigo o resultado que coloquei fixo no fonte atual.

 

Se for possivel colocar desta forma, ai sim atende meu caso e acho que de todos os outros....

   if Assigned(RegC405.RegistroC485) then
   begin
      if Assigned(FOnBeforeWriteRegistroC485) then
      begin
         FOnBeforeWriteRegistroC485(NullVL_BC_COFINS,
                                    NullALIQ_COFINS,
                                    NullQUANT_BC_COFINS,
                                    NullALIQ_COFINS_QUANT,
                                    NullVL_COFINS);
      end;
      for intFor := 0 to RegC405.RegistroC485.Count - 1 do
      begin
        with RegC405.RegistroC485.Items[intFor] do
        begin
          Add( LFill('C485')                     +
               LFill(CstCofinsToStr(CST_COFINS)) +
               LFill(VL_ITEM,0,2)                +
               DFill(VL_BC_COFINS,      2, NullVL_BC_COFINS) +
               DFill(ALIQ_COFINS,       4, NullALIQ_COFINS) +
               DFill(QUANT_BC_COFINS,   3, NullQUANT_BC_COFINS) +
               DFill(ALIQ_COFINS_QUANT, 4, NullALIQ_COFINS_QUANT) +
               LFill(VL_COFINS,0,       2, NullVL_COFINS) +
               LFill(COD_ITEM)                   +
               LFill(COD_CTA) ) ;
          //
          RegistroC990.QTD_LIN_C := RegistroC990.QTD_LIN_C + 1;
        end;
     end;

Um abraco, e muito obrigado!

 

Eduardo

Link para o comentário
Compartilhar em outros sites

Segue correção em anexo, favor testar e da o retorno.

ACBrSpedPisCofins.zip

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...

procedure TForm.BeforeWriteRegistroC481 (var ANullVL_BC_PIS,
  ANullALIQ_PIS, ANullQUANT_BC_PIS, ANullALIQ_PIS_QUANT, ANullVL_PIS: Boolean);
begin
  ANullVL_BC_PIS:=False;
  ANullALIQ_PIS:=False;
  ANullQUANT_BC_PIS:=True;
  ANullALIQ_PIS_QUANT:=True;
  ANullVL_PIS:=False;
end;

procedure TForm.BeforeWriteRegistroC485 (var ANullVL_BC_PIS,
  ANullALIQ_PIS, ANullQUANT_BC_PIS, ANullALIQ_PIS_QUANT, ANullVL_PIS: Boolean);
begin
  ANullVL_BC_PIS:=False;
  ANullALIQ_PIS:=False;
  ANullQUANT_BC_PIS:=True;
  ANullALIQ_PIS_QUANT:=True;
  ANullVL_PIS:=False;
end;

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • Membros Pro

Isaque e amigos

 

como utilizo estas procedures?

 

procedure TForm.BeforeWriteRegistroC481 (var ANullVL_BC_PIS,
  ANullALIQ_PIS, ANullQUANT_BC_PIS, ANullALIQ_PIS_QUANT, ANullVL_PIS: Boolean);
begin
  ANullVL_BC_PIS:=False;
  ANullALIQ_PIS:=False;
  ANullQUANT_BC_PIS:=True;
  ANullALIQ_PIS_QUANT:=True;
  ANullVL_PIS:=False;
end;

procedure TForm.BeforeWriteRegistroC485 (var ANullVL_BC_PIS,
  ANullALIQ_PIS, ANullQUANT_BC_PIS, ANullALIQ_PIS_QUANT, ANullVL_PIS: Boolean);
begin
  ANullVL_BC_PIS:=False;
  ANullALIQ_PIS:=False;
  ANullQUANT_BC_PIS:=True;
  ANullALIQ_PIS_QUANT:=True;
  ANullVL_PIS:=False;
end;

 

 

 

Onde no meu código chamo elas?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa noite

verifique junto ao componente ACBrPisCofins no Inspector Objects na aba events.

lá possui EventsBloco_C, abra o mesmo e verá que tem alguns , veja que tem as suas correspondências acima citados

é só programar conforme foi repassado para os parâmetros dos eventos! ;)

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Talvez você queira verificar o seguinte tópico:

[]'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 para o comentário
Compartilhar em outros sites

  • Membros Pro

Obrigado aos que responderam, mais houve uma pequeno engano, talvez eu postei no tópico errado, porque estava passando pelo mesmo problema, vamos lá

 

Encontrei os eventos no objetc Inspector, só que no SPEDFiscal e não SPEDContribuições que era o que eu estava implementando.

 

Li o tópico do EMBarbosa, mais o mesmo também é SPEDFiscal e não SPEDContribuições.

 

Então fica ai a dica

 

Marcelo Santos

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Obrigado aos que responderam, mais houve uma pequeno engano, talvez eu postei no tópico errado, porque estava passando pelo mesmo problema, vamos lá

 

Encontrei os eventos no objetc Inspector, só que no SPEDFiscal e não SPEDContribuições que era o que eu estava implementando.

 

Li o tópico do EMBarbosa, mais o mesmo também é SPEDFiscal e não SPEDContribuições.

 

Então fica ai a dica

 

Marcelo Santos

Boa noite

serve igualmente para os dois Fiscal e Contribuições!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

Os dois Speds estavam começando a usar eventos, mas não resolveu os problemas apresentados por vários usuários, então siga o que tem no link que o Elton passou, se ninguém reclamar situações, ela será aplicada em todos os Speds também. 

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

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