Ir para conteúdo
  • Cadastre-se

dev botao

Compartilhar código entre Fiscal e Pis/Cofins


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

Recommended Posts

Que possa ser usado tanto no Fiscal quanto no Pis/Cofins. Por exemplo, o Fiscal usa um C400 que é idêntico ao C400 do Pis/Cofins, ambos têm um C405 que também é idêntico, mas o Fiscal tem um C410 que não existe no Pis/Cofins.

Por outro lado o Pis/Cofins tem os registros C481 até C489 que não estão no Fiscal e os registros C490, C495, etc são diferentes nos dois layouts.

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

  • Consultores

Exatamente por causa dessas diferenças deixar em código separado facilita na hora de dar manutenção do código.

Se a receita levasse os dois projetos como um projeto apenas, juntar os códigos seria muito bom.

Mas ela trata o SPED Fiscal, PIS/COFINS e etc, cada um como um projeto separado. Cada um tem seu Guia Prático, e cada um tem seu próprio validador. Cada um tem uma legislação pertinente e as vezes os mesmos registros tem formatos diferentes pra cada projeto como você mesmo constatou. Já aconteceu deles mudarem um registro em um e só meses depois mudar no outro, isso quando mudam.

Assim, não dá pra tratar o código como o mesmo, quando na prática, os registros não são tratados como os mesmos.

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

Mas poderia haver um parâmetro, por exemplo: a chamada "GeraRegistro0200(tpPisCofins)" acrescentaria o campo 12 "ALIQ_ICMS", que é a única diferença entre os dois atualmente. Quando são totalmente diferentes a procedure poderia ser apenas um "wrapper" para as procedures específicas -- que seriam poucas.

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

  • Consultores

Sim. Seria possível. Exigiria uma refatoração total do código. Poderia se usar classes abstratas ou interfaces também.

Só não sei se seria viável levando em conta o número reduzido de usuários do ACBr que participam fazendo o desenvolvimento.

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

Só para encerrar, acabei optando por criar uma "stored procedure":

SELECT * FROM sp_gera_sped(tipo,cnpj,dataini,datafim,params);

Onde tipo é uma das strings: "FISCAL" ou "PIS/COFINS".

A procedure usa N views chamadas vw_sped_registro_NNNN que buscam os dados e colocam em colunas com os mesmos nomes dos registros, facilitando o desenvolvimento.

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Só para encerrar, acabei optando por criar uma "stored procedure":

SELECT * FROM sp_gera_sped(tipo,cnpj,dataini,datafim,params);

Onde tipo é uma das strings: "FISCAL" ou "PIS/COFINS".

A procedure usa N views chamadas vw_sped_registro_NNNN que buscam os dados e colocam em colunas com os mesmos nomes dos registros, facilitando o desenvolvimento.

No lançamento do SPED, o SPED Fiscal e PIS/Cofins eram juntos, depois eles mesmos separaram, a questão que você levantou até daria para ser feito com um bom tempo de trabalho, e é o que falta de alguns colaboradores, pois temos muitas melhorias a serem feitas no que já temos, e ninguém se propõe a faze-la, sem contar o receio de até onde essa igualdade entre alguns registros irão permanecer, pois as informações do SPED muda diariamente.

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

Confesso que achei os componentes SPED pouco práticos, pois é preciso preencher os campos um por um, fica uma tarefa repetitiva. Com as VIEWS ficou bem mais fácil, eu busco os dados na VIEW e formato os campos na procedure.


CREATE VIEW vw_sped_registro_c420 AS

SELECT cod_trib_fk||case when cod_trib_fk <> 'T' then '1' else '' end||

  case when aliquota = 0 then '' else to_char(aliquota*100,'FM0000') end as cod_tot_par, 

  valor as vlr_acum_tot, case when cod_trib_fk = 'T' then '1' else '' end as nr_tot,

  data_proc_fk, cod_empresa_fk, num_pdv_fk FROM cf_reducao_trib WHERE valor > 0;


(...)

        -- REGISTRO C420

        FOR reg_C420 IN SELECT * FROM vw_sped_registro_c420 r

          WHERE cod_empresa_fk = reg_C405.emp AND data_proc_fk = reg_C405.dt_doc 

          AND num_pdv_fk = reg_C405.pdv ORDER BY cod_tot_par LOOP

          linha := delim||'C420'||delim||reg_C420.cod_tot_par||delim||

            to_char(reg_C420.vlr_acum_tot,'FM9999999990D00')||delim||

            reg_C420.nr_tot||delim||delim;

          RETURN NEXT linha;

(...)


Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

  • Consultores

Confesso que achei os componentes SPED pouco práticos, pois é preciso preencher os campos um por um, fica uma tarefa repetitiva.

Não entendi. Como um componente para gerar o arquivo SPED poderia ser mais prático e não precisar preencher os campos?

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

Confesso que achei os componentes SPED pouco práticos, pois é preciso preencher os campos um por um, fica uma tarefa repetitiva.

Não entendi. Como um componente para gerar o arquivo SPED poderia ser mais prático e não precisar preencher os campos?

Muitas informações são repetidas. Por exemplo, o Bloco C pode ser quase todo preenchido com informações de 4 tabelas (Reduções Z, Tributo da Redução Z, Cupom, Item do Cupom). Se houvesse 4 classes com estas informações, daria pra preencher apenas 4 objetos e gerar quase todo o bloco. Isso sem contar as repetições entre PIS/COFINS e Fiscal mencionadas anteriormente.

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

Alexsande, você deve estar confundindo as partes, também tenho views em meu db, para agrupar os registros e alimentar o componente.

O Componente só tem a finalidade de gerar o TXT, agora vc falar que gerar o arquivo via view, é mais fácil que via componente, me desculpe, mas você é marinheiro de 1a viagem em desenvolvimento e não tem noção alguma sobre oop.

Mas respeito sua escolha, mas não aceito criticas de quem vejo que esta começando a programar agora, pela opinião que declarou, seja feliz com suas sps, e a manutenção delas no futuro, e se um dia precisar o ACBr, ele estará qui para te ajudar.

T+

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

Alexsande, você deve estar confundindo as partes, também tenho views em meu db, para agrupar os registros e alimentar o componente.

O Componente só tem a finalidade de gerar o TXT, agora vc falar que gerar o arquivo via view, é mais fácil que via componente, me desculpe, mas você é marinheiro de 1a viagem em desenvolvimento e não tem noção alguma sobre oop.

Mas respeito sua escolha, mas não aceito criticas de quem vejo que esta começando a programar agora, pela opinião que declarou, seja feliz com suas sps, e a manutenção delas no futuro, e se um dia precisar o ACBr, ele estará qui para te ajudar.

T+

Leia meus posts anteriores, eu disse que fiz uma Stored Procedure para gerar o TXT, não uma VIEW. Pra minha necessidade, que inclui poder rodar a dita procedure num console via SSH, ficou melhor assim.

Cuidado com a soberba, não ofenda os outros sem pesquisar antes [1]. Saber aceitar críticas e sugestões é uma virtude importante. Tem contribuições minhas no ACBr, eu continuo usando-o, apenas optei por não usar no SPED. Acho um excelente projeto e recomendo, estão todos de parabéns.

[1] http://www.linkedin.com/in/alexsander

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

Caro, critique, sugira, mas tb faça algo melhor e nos made para avaliarmos, teremos enorme prazer e agradeceremos por sua contribuição.

Só critica sem ajuda, não resolve nada, se for para só criticar sem ajudar, melhor ficar quieto, este é um projeto open source.

Sobre a ofensa, você deveria pensar antes de comentar:

Confesso que achei os componentes SPED pouco práticos, pois é preciso preencher os campos um por um, fica uma tarefa repetitiva.

Se achas pouco pratico, ajude para que ele fique mais pratico e colabore com ele.

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

Os objetivos dos 2 projetos são distintos (SPED Fiscal(ICMS e IPI) está mais pra saber quais suas movimentações e SPED Contribuições(Pis/Cofins) está para saber o seu Lucro), a obrigatoriedade dos campos, a hierarquia, o uso dos campos também pode variar...

Se fossem tão parecidos nem precisaria 2 validadores diferentes, não acha?

A forma que foi feito o SPED no ACBr obedece os padrões dos outros projetos por aqui desenvolvidos (Nf-e, Ct-e, PAF, outros...) e faz uso das melhores práticas de orientação a objetos para ser preenchido, depois que tu pega o "jeito", o desenvolvimento flui e a manutenção fica muito fácil.

Alexandre De Carli,
Gerente de Projetos na empresa Econtabil Software.


email: [email protected]
site: http://www.extremeprogramming.wordpress.com
Pato Branco - PR

Link para o comentário
Compartilhar em outros sites

A forma que foi feito o SPED no ACBr obedece os padrões dos outros projetos por aqui desenvolvidos (Nf-e, Ct-e, PAF, outros...) e faz uso das melhores práticas de orientação a objetos para ser preenchido, depois que tu pega o "jeito", o desenvolvimento flui e a manutenção fica muito fácil.

Alguns registros são 100% idênticos entre os dois SPED; outros são quase iguais. Num post anterior eu dei o exemplo do registro 0200: a diferença é UM campo. Poderia haver uma classe com os campos básicos e outra com os campos extras, assim não haveria duplicação de código. Se no futuro criarem mais campos novos, bastaria acrescentar nas classes derivadas.

A resposta do EMBarbosa foi:

Sim. Seria possível. Exigiria uma refatoração total do código. Poderia se usar classes abstratas ou interfaces também.

Só não sei se seria viável levando em conta o número reduzido de usuários do ACBr que participam fazendo o desenvolvimento.

Eu dei a sugestão, apenas isso. Se ela é ruim, ou se é boa mas não há horas-homem para fazer, tudo bem, a decisão é dos mantenedores. Sei como funciona software livre, sei que tem pouca gente ajudando neste componente em especial, mas também sei que cada um ajuda no que usa. Já mandei contribuições tanto para o ACBr quanto para o Lazarus, mas não fico ofendido se alguém reclamar da TACBrETQ ou da TStringGrid...

De qualquer forma eu precisava de algo que pudesse ser rodado via linha de comando (SSH para um servidor Linux), então fiz a minha procedure. Também não preciso de TODOS os registros, então só fiz o que precisava, quando tiver um cliente que venda armas de fogo ou preste serviço de energia elétrica, completo a implementação.

Um abraço a todos e mais uma vez parabéns!

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Isaque,

 

Cai de para-quedas numa empresa e eles me pediram para montar via procedure a geração do SPED PIS COFINS (CONTRIBUIÇÕES) nem sei por onde começar. Como vi no forum que você utiliza procedures para geração do arquivo não poderia me enviar para que possa tentar adaptar para geração do arquivo aqui na empresa?

 

Amigo, estou precisando mesmo de ajuda!

Link para o comentário
Compartilhar em outros sites

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