Ir para conteúdo
  • Cadastre-se

dev botao

Registro C481


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

Recommended Posts

Correção efetuada e disponível no SVN.

--
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

Isaque,

 

  Não pode fazer essa alteração da forma que foi apresentada não. A alíquota deve poder ser preenchida em branco. Precisamos analisar outra maneira. Veja esse tópico e os outros alistados neles:

[]'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

Hum, ok Elton, ou seja ela pode ter valor > 0, pode ser 0, ou até mesmo vazia. realmente teremos que analisar como proceder nesses casos, estou voltando a revisão anterior.

--
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

O próprio componente se passar ZERO, com o parâmetro "True" ele retorna vazio, mas pelo que entendi terá casos como a CST 04 que a alíquota terá que sair ZERO no arquivo, e não VAZIO, é isso mesmo Elton que entendi ?

--
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

Em resumo é exatamente isso. Existem casos em que a alíquota deve sair o número zero e existem casos em que a alíquota deve sair vazia, ou seja, "||".

E nós temos usuários que precisam que o componente funcione nos dois casos.

 

Hoje eu vou tentar alistar as condições para ver se seria possível tratá-las dentro do próprio componente.

[]'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

Temos duas opções:

 

1a Criar uma variável de controle e tratar cada CST dentro do componente para definir o valor dessa variável se = True (nulo) ou = False(Zero)

 

2a Retirar o 3o parâmetro da chamada da função de True para False, e Implementar na função DFill o tratamento que se o valor recebido for Zero, como o 3o parâmetro sera = False imprimirá Zero, e nas situações que for preciso nulo, passar os valores como negativo:

 

 

DFill(0,  4)  // Sairá zero
DFill(-1,  4) // Tratado dentro da função DFiil < 0 sairá nulo.

--
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

Então, como tinha dito que iria ajuntar informações sobre o problema, deixa eu vasculhar aqui os nossos arquivos do fórum sobre o assunto... :!:

 

1) Em casos de CST 05 usados por indústria, a alíquota deve ser preenchida com um valor da tabela apresentada pelo guia prático.

2) Há casos em que uma das alíquotas deve ser preenchida como zero. Esse é o caso de CST 05 para revenda de produtos de substituição (ex. cigarros).

3) Em casos de CST 04, a alíquota deve poder ser preenchida com valor vazio;

4) Em casos onde é preenchido o campo ALIQ_PIS_QUANT, o campo ALIQ_PIS deve ser vazio;

 

Vou verificar se existe mais alguma coisa...

 

Alguns dos posts relacionados:

[]'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

  • Moderadores

Fiz assim:

 

 var
    intFor     : integer;
    booTributaQtde : boolean;
begin
  if Assigned(RegC405.RegistroC481) then
  begin
    for intFor := 0 to RegC405.RegistroC481.Count - 1 do
    begin
      with RegC405.RegistroC481.Items[intFor] do
      begin

        booTributaQtde   := Integer(CST_PIS)=3;
        
        Add( LFill('C481')             +
             LFill(CstPisToStr(CST_PIS))  +
             LFill(VL_ITEM,0,2)        +
             DFill(VL_BC_PIS,      2, booTributaQtde) +
             DFill(ALIQ_PIS,       4, booTributaQtde) +
             DFill(QUANT_BC_PIS,   3, not booTributaQtde) +
             DFill(ALIQ_PIS_QUANT, 4, not booTributaQtde) +
             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;

 

Veja se ajudaria.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Olá Waldir,

 Sua sugestão não resolve o caso 3. Também não resolve o caso 4, pois a correção é limitada ao CST = 03.

[]'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

  • Moderadores

Então, como tinha dito que iria ajuntar informações sobre o problema, deixa eu vasculhar aqui os nossos arquivos do fórum sobre o assunto...  :!:

 

Dessa forma resolve a 1 e 2?


1) Em casos de CST 05 usados por indústria, a alíquota deve ser preenchida com um valor da tabela apresentada pelo guia prático.

2) Há casos em que uma das alíquotas deve ser preenchida como zero. Esse é o caso de CST 05 para revenda de produtos de substituição (ex. cigarros).

 

 

Na situação 03!

Me diz em que situação a CST 04 pode ser  preenchida com valor vazio e qual das alíquotas, valor ou quantidade?;

 


3) Em casos de CST 04, a alíquota deve poder ser preenchida com valor vazio;

 

 

 

Na situação 04!

Me diz em que CST ser  preenchida com valor vazio.;

 

 

4) Em casos onde é preenchido o campo ALIQ_PIS_QUANT, o campo ALIQ_PIS deve ser vazio;

 

Podemos melhorar o código existente.

 

Uso esse tipo de registro e dessa forma que fiz esta atendendo bem.

 

Waldir.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Dessa forma resolve a 1 e 2?

Na situação 03!

Me diz em que situação a CST 04 pode ser  preenchida com valor vazio e qual das alíquotas, valor ou quantidade?;

Na situação 04!

Me diz em que CST ser  preenchida com valor vazio.;

Podemos melhorar o código existente.

Uso esse tipo de registro e dessa forma que fiz esta atendendo bem.

 

Waldir.

Sim, resolve os casos 1 e 2. Mas não resolve os outros.

Na situação 3, em qualquer ocasião o valor e a alíquota podem ser preenchidos vazios. Não precisa preencher os outros dois campos também.

Não depende só do CST. Por exemplo, se eu escolher o CST 05 eu posso escolher preencher o campo ALIQ_PIS_QUANT ou o campo ALIQ_PIS. Tanto faz...

[]'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

  • Moderadores

Veja se assim ajuda.

 

 var
    intFor     : integer;
    booTributaQtde : boolean;
begin
  if Assigned(RegC405.RegistroC481) then
  begin
    for intFor := 0 to RegC405.RegistroC481.Count - 1 do
    begin
      with RegC405.RegistroC481.Items[intFor] do
      begin

        booTributaQtde   := Integer(CST_PIS)=3;
        if not booTributaQtde then
        booTributaQtde := (ALIQ_PIS_QUANT > 0.0) or (QUANT_BC_PIS > 0.0);

        Add( LFill('C481')             +
             LFill(CstPisToStr(CST_PIS))  +
             LFill(VL_ITEM,0,2)        +
             DFill(VL_BC_PIS,      2, booTributaQtde) +
             DFill(ALIQ_PIS,       4, booTributaQtde) +
             DFill(QUANT_BC_PIS,   3, not booTributaQtde) +
             DFill(ALIQ_PIS_QUANT, 4, not booTributaQtde) +
             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;
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
  • 1 mês depois ...
  • Consultores

Por favor,

não faça posts duplicados. Você postou aqui e neste outro tópico

Temos regras conforme pode ver neste  Em especial a "3.1 - Não faça flooding".

[]'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

Ola Amigo "EMBarbosa" hora nenhum foi minha intenção provocar ambiguidade de considerações, apenas fui me interar de todo o processo e acabei por de forma equivocada, e em descumprimento ao item "3.1" provocando tal infração, peço desculpas e desconsidere esta minha  falha.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Ola Amigo "EMBarbosa" hora nenhum foi minha intenção provocar ambiguidade de considerações, apenas fui me interar de todo o processo e acabei por de forma equivocada, e em descumprimento ao item "3.1" provocando tal infração, peço desculpas e desconsidere esta minha  falha.

Fica frio. Está tudo bem. :)

[]'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

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