Jump to content

dev botao

Cst_Pis E Cst_Cofins


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

Recommended Posts

Saudações a todos

 

           Estou tetando gerar o pis cofins e ja estou atrasado mas me deparei com um problema que não sei se é por falta de alguma configuração ou erro da frame. estou enviando como código de cst_pis e cst_cofins 5 e 75 respectivamente e ele me devolve '' (em branco) e 06. tentei dar uma olhada rápida na internet mas não achei nada e estou com a corda no pescoço, não tenho costume de perguntar atoa.

Agradeço antecipadamente a boa vontade de todos, bem como parabenizo o idealizador deste projeto.

Link to comment
Share on other sites

Seja mais especifico, qual bloco? Qual registro ?

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

não vi problema no fonte:

 

Pis 

stpisValorAliquotaPorST = '05'

stpisOperAquiPorST = '75'

 

Cofins

stcofinsValorAliquotaPorST = '05'

stcofinsOperAquiPorST = '75'

 

Só vc debugando para saber o que está acontecendo no seu código ai.

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

Douglas se quizer utlizar o CST 05, você tera que informar aliquota. Existe varios entendimentos do CST 05 que geralmente é de cigarros, a maioria das empresas não se creditam na entrada e pagam na saída. Ha uma divergencia nisso, segundo o SPED Brasil.

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, CT-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link to comment
Share on other sites

então Isaque estou obtendo os valores a partir de uma stored procedure do SQL SERVER o bloco C170 basicamente fica assim:

 

 

function TFrmPisCofins.geracaoBlocoC: boolean;
begin
   try
   begin
      f_OpenQuery(false, FrDmGR.QyConsulta2, 'exec COFINSPISC '+edFilial.Text+' ,'
         +QuotedStr(formatdatetime('yyyy-mm-dd',dtpinicial.Date))+' , '
         +QuotedStr(formatdatetime('yyyy-mm-dd',dtpfinal.Date)));
 
      if FrDmGR.QyConsulta2.IsEmpty then
      begin
        result := true;
        exit;
      end;
 
      with CompPisCofins.Bloco_C do
      begin
         with RegistroC001New do
         begin
            IND_MOV := FrDmGR.QyConsulta2.FieldByName('ind_mov').Value;
            FrDmGR.QyConsulta2.Next
         end;
 
         //C010 - Identificação do Estabelecimento
         with RegistroC010New do
         begin
           CNPJ := FrDmGR.QyConsulta2.FieldByName('cnpj').Value;
           IND_ESCRI := FrDmGR.QyConsulta2.FieldByName('ind_escri').Value;
           FrDmGR.QyConsulta2.Next;
         end;
         
         while FrDmGR.QyConsulta2.FieldByName('reg').AsString = 'C100' do
         begin
            try
            begin
            with RegistroC100New do
            begin
               //REG            := FrDmGR.QyConsulta2.FieldByName('REG').Value;
               IND_OPER       := FrDmGR.QyConsulta2.FieldByName('IND_OPER').Value;
                 IND_EMIT       := FrDmGR.QyConsulta2.FieldByName('IND_EMIT').Value;
                 COD_PART       := FrDmGR.QyConsulta2.FieldByName('COD_PART').Value;
                 COD_MOD        := FrDmGR.QyConsulta2.FieldByName('COD_MOD').Value;
                 COD_SIT        := FrDmGR.QyConsulta2.FieldByName('COD_SIT').Value;
                 SER            := FrDmGR.QyConsulta2.FieldByName('SER').Value;
                 NUM_DOC        := FrDmGR.QyConsulta2.FieldByName('NUM_DOC').Value;
                 CHV_NFE        := FrDmGR.QyConsulta2.FieldByName('CHV_NFE').Value;
                 DT_DOC         := FrDmGR.QyConsulta2.FieldByName('DT_DOC').AsString;
                 DT_E_S         := FrDmGR.QyConsulta2.FieldByName('DT_E_S').AsString;
                 VL_DOC         := FrDmGR.QyConsulta2.FieldByName('VL_DOC').Value;
                 IND_PGTO       := FrDmGR.QyConsulta2.FieldByName('IND_PGTO').Value;
                 VL_DESC        := FrDmGR.QyConsulta2.FieldByName('VL_DESC').Value;
                 VL_ABAT_NT     := FrDmGR.QyConsulta2.FieldByName('VL_ABAT_NT').Value;
                 VL_MERC        := FrDmGR.QyConsulta2.FieldByName('VL_MERC').Value;
                 IND_FRT        := FrDmGR.QyConsulta2.FieldByName('IND_FRT').Value;
                 VL_FRT         := FrDmGR.QyConsulta2.FieldByName('VL_FRT').Value;
                 VL_SEG         := FrDmGR.QyConsulta2.FieldByName('VL_SEG').Value;
                 VL_OUT_DA      := FrDmGR.QyConsulta2.FieldByName('VL_OUT_DA').Value;
                 VL_BC_ICMS     := FrDmGR.QyConsulta2.FieldByName('VL_BC_ICMS').Value;
                 VL_ICMS        := FrDmGR.QyConsulta2.FieldByName('VL_ICMS').Value;
                 VL_BC_ICMS_ST  := FrDmGR.QyConsulta2.FieldByName('VL_BC_ICMS_ST').Value;
                 VL_ICMS_ST     := FrDmGR.QyConsulta2.FieldByName('VL_ICMS_ST').Value;
                 VL_IPI         := FrDmGR.QyConsulta2.FieldByName('VL_IPI').Value;
                 VL_PIS         := FrDmGR.QyConsulta2.FieldByName('VL_PIS').Value;
                 VL_COFINS      := FrDmGR.QyConsulta2.FieldByName('VL_COFINS').Value;
                 VL_PIS_ST      := FrDmGR.QyConsulta2.FieldByName('VL_PIS_ST').Value;
                 VL_COFINS_ST   := FrDmGR.QyConsulta2.FieldByName('VL_COFINS_ST').Value;
            end;
            end;
            except
               on E : Exception do
               ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
            end;
            FrDmGR.QyConsulta2.Next;
            while FrDmGR.QyConsulta2.FieldByName('reg').AsString = 'C170' do
            begin
               try
               begin
               with RegistroC170New do
               begin
                  //REG               := FrDmGR.QyConsulta2.FieldByName('reg').Value;
                  NUM_ITEM          := FrDmGR.QyConsulta2.FieldByName('num_item').Value;
                  COD_ITEM          := FrDmGR.QyConsulta2.FieldByName('cod_item').Value;
                  DESCR_COMPL       := FrDmGR.QyConsulta2.FieldByName('descr_compl').Value;
                  QTD               := FrDmGR.QyConsulta2.FieldByName('qtd').Value;
                  UNID              := FrDmGR.QyConsulta2.FieldByName('unid').Value;
                  VL_ITEM           := FrDmGR.QyConsulta2.FieldByName('vl_item').Value;
                  VL_DESC           := FrDmGR.QyConsulta2.FieldByName('vl_desc').Value;
                  IND_MOV           := FrDmGR.QyConsulta2.FieldByName('ind_mov').Value;
                  CST_ICMS          := FrDmGR.QyConsulta2.FieldByName('cst_icms').Value;
                  CFOP              := FrDmGR.QyConsulta2.FieldByName('cfop').Value;
                  COD_NAT           := FrDmGR.QyConsulta2.FieldByName('cod_nat').Value;
                  VL_BC_ICMS        := FrDmGR.QyConsulta2.FieldByName('vl_bc_icms').Value;
                  ALIQ_ICMS         := FrDmGR.QyConsulta2.FieldByName('aliq_icms').Value;
                  VL_ICMS           := FrDmGR.QyConsulta2.FieldByName('vl_icms').Value;
                  VL_BC_ICMS_ST     := FrDmGR.QyConsulta2.FieldByName('vl_bc_icms_st').Value;
                  ALIQ_ST           := FrDmGR.QyConsulta2.FieldByName('aliq_st').Value;
                  VL_ICMS_ST        := FrDmGR.QyConsulta2.FieldByName('vl_icms_st').Value;
                  IND_APUR          := FrDmGR.QyConsulta2.FieldByName('ind_apur').Value;
                  CST_IPI           := FrDmGR.QyConsulta2.FieldByName('cst_ipi').Value;
                  COD_ENQ           := FrDmGR.QyConsulta2.FieldByName('cod_enq').Value;
                  VL_BC_IPI         := FrDmGR.QyConsulta2.FieldByName('vl_bc_ipi').Value;
                  ALIQ_IPI          := FrDmGR.QyConsulta2.FieldByName('aliq_ipi').Value;
                  VL_IPI            := FrDmGR.QyConsulta2.FieldByName('vl_ipi').Value;
                  CST_PIS           := FrDmGR.QyConsulta2.FieldByName('cst_pis').Value;
                  VL_BC_PIS         := FrDmGR.QyConsulta2.FieldByName('vl_bc_pis').Value;
                  ALIQ_PIS_PERC     := FrDmGR.QyConsulta2.FieldByName('aliq_pis').Value;
                  QUANT_BC_PIS      := FrDmGR.QyConsulta2.FieldByName('quant_bc_pis').Value;
                  ALIQ_PIS_R        := FrDmGR.QyConsulta2.FieldByName('aliq_pis_quant').Value;
                  VL_PIS            := FrDmGR.QyConsulta2.FieldByName('vl_pis').Value;
                  CST_COFINS        := FrDmGR.QyConsulta2.FieldByName('cst_cofins').Value;
                  VL_BC_COFINS      := FrDmGR.QyConsulta2.FieldByName('vl_bc_cofins').Value;
                  ALIQ_COFINS_PERC  := FrDmGR.QyConsulta2.FieldByName('aliq_cofins').Value;
                  QUANT_BC_COFINS   := FrDmGR.QyConsulta2.FieldByName('quant_bc_cofins').Value;
                  ALIQ_COFINS_R     := FrDmGR.QyConsulta2.FieldByName('aliq_cofins_quant').Value;
                  VL_COFINS         := FrDmGR.QyConsulta2.FieldByName('vl_cofins').Value;
                  COD_CTA           := FrDmGR.QyConsulta2.FieldByName('cod_cta').Value;
               end;
               end;
               except
                  on E : Exception do
                  ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
               end;
               FrDmGR.QyConsulta2.Next;
            end;
         end;
 
         while FrDmGR.QyConsulta2.FieldByName('reg').AsString = 'C400' do
         begin
            with RegistroC400New do
            begin
               //REG      := FrDmGR.QyConsulta2.FieldByName('REG').Value;
               COD_MOD  := FrDmGR.QyConsulta2.FieldByName('COD_MOD').Value;
               ECF_MOD  := FrDmGR.QyConsulta2.FieldByName('ECF_MOD').Value;
               ECF_FAB  := FrDmGR.QyConsulta2.FieldByName('ECF_FAB').Value;
               ECF_CX   := FrDmGR.QyConsulta2.FieldByName('ECF_CX').Value;
            end;
            FrDmGR.QyConsulta2.Next;
            while FrDmGR.QyConsulta2.FieldByName('reg').AsString = 'C405' do
            begin
               with RegistroC405New do
               begin
                  //REG         := FrDmGR.QyConsulta2.FieldByName('REG').Value;
                  DT_DOC      := FrDmGR.QyConsulta2.FieldByName('DT_DOC').Value;
                  CRO         := FrDmGR.QyConsulta2.FieldByName('CRO').Value;
                  CRZ         := FrDmGR.QyConsulta2.FieldByName('CRZ').Value;
                  NUM_COO_FIN := FrDmGR.QyConsulta2.FieldByName('NUM_COO_FIN').Value;
                  GT_FIN      := FrDmGR.QyConsulta2.FieldByName('GT_FIN').Value;
                  VL_BRT      := FrDmGR.QyConsulta2.FieldByName('VL_BRT').Value;
               end;
               FrDmGR.QyConsulta2.Next
            end;
         end;
      end;
 
      result := true;
   end;
   except
      result := false;
   end;
end;
Link to comment
Share on other sites

Não ta bem visível seu código postado, mas observe se 0 C170 esta dentro do with do C100, pois C170 é filho do C100, e se vc alimentar fora, ele ficará orfão, e não apresentará o que vc alimentar nele.

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

qual o conteúdo desse campo 

 FrDmGR.QyConsulta2.FieldByName('cst_pis').Value ?

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

CST_PIS é do tipo "TACBrCstPis", tem que receber um dos tipos disponíveis, assim como os demais cst.

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

com o indice tem que ser assim:

 

CST_PIS = TACBrCstPis(FrDmGR.QyConsulta2.FieldByName('cst_pis').Value);

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

CST_PIS é do tipo "TACBrCstPis", tem que receber um dos tipos disponíveis, assim como os demais cst.

Isaque, bom dia. 

 

Cara, ve se vc pode me dar uma ajudinha aqui com o Bloco P do SPEDPisCofins. Eu estou implementando o bloco, quando mando gerar ele passa pelo meu código sem retornar nenhum erro, mas não aparece no txt nada desse bloco. Ele le meu codigo normalmente mas nao inclui no txt. Vc já viu isso ocorrer?

Obrigado.

Link to comment
Share on other sites

Vou analisar, aqui se tem algo errado e te retorno.

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

mazuka.net, no código fonte do componente, tem uma validação que se o registro 0145 não tiver registros o bloco_p todo não será gerado, já no guia pratico diz:

 

Para proceder à escrituração e apuração da Contribuição Previdenciária sobre a Receita Bruta, no Bloco
“P”, deve a pessoa juridica: 
1. Cadastrar o estabelecimento que auferiu receitassujeitas à referida contribuição, no registro “0145”; 
2. Uma vez informado o registro “0145” na escrituração, o PVA irá habilitar os registros do Bloco “P”,a 
saber: 
- Registro “P100”: Demonstração da receita do estabelecimento, da base de cálculo e do 
correspondente valor da contribuição; 

- Registro “P200”: Consolidação do valor da contribuição devida pela empresa.  

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

Douglas recentemente eu add funções de conversão no ACBrSpedPisCofins que funcionam assim:

 

CST_PIS := StrToCstPis(FrDmGR.QyConsulta2.FieldByName('cst_pis').AsString)

 

Dessa forma poderemos guardar no nosso DB a informação como string ex '05', '75'

 

Tb foi add as funções para converter do tipo para string assim:

 

CstPisToStr(stpisValorAliquotaNormal) retornará '01'

 

essas podem ser usadas normalmente sem vc ter que alterar nada no seu fonte.

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

mazuka.net, no código fonte do componente, tem uma validação que se o registro 0145 não tiver registros o bloco_p todo não será gerado, já no guia pratico diz:

 

Para proceder à escrituração e apuração da Contribuição Previdenciária sobre a Receita Bruta, no Bloco
“P”, deve a pessoa juridica: 
1. Cadastrar o estabelecimento que auferiu receitassujeitas à referida contribuição, no registro “0145”; 
2. Uma vez informado o registro “0145” na escrituração, o PVA irá habilitar os registros do Bloco “P”,a 
saber: 
- Registro “P100”: Demonstração da receita do estabelecimento, da base de cálculo e do 
correspondente valor da contribuição; 

- Registro “P200”: Consolidação do valor da contribuição devida pela empresa.  

Obrigado. Funcionou certinho.

Link to comment
Share on other sites

OK, mazuka.net

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

  • 4 weeks later...

Isaque você que está mais por dentro do PIS/COFINS me dá uma ajuda por favor, quanto as tabelas utilizadas na apuração das contribuições para PIS/PASEP e COFINS. Você considera melhor é criar estas tabelas no sistema para gravar no banco de dados ou apenas relacionar aos CST cfe o codigo que a empresa precisa em cada CST? Nao sei se fui claro...

Att,

Michael Belmonte
Gestor em TI
http://www.systronic.com.br
"Ha 15 anos desenvolvendo soluções criativas!"

Link to comment
Share on other sites

Você diz as tabelas em modo geral utilizadas pelo PVA? Se foi isso que entendi, estou criando o mesmo recurso que o PVA tem, baixar as tabelas do portal, coloca-las em uma pasta e ter o recurso de atualiza-las em meu banco de dados.

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

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