Ir para conteúdo
  • Cadastre-se

dev botao

ABCrSPED com G5 da contmatic


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

Recommended Posts

Ok, Isaque vou analisar aqui e ver o que consigo fazer também, infelizmente meu conhecimento sobre criação de componente é meio limitado, então teve alguns casos que não achei outra opção, mas vou analisar aqui.

Obrigado pela a atenção e pelas dicas.

Até.

Vou anexar uma Unit aqui, em alguns minutos para vc testar e vê se atende ai para vc.

Bom de uma olhada nessas units e tente analisar se atende a necessidade.

Obs: o registro 0208 que precisa para o G5, deve ser adicionado no evento After do 0206, pois não deve ter nada com o nome 0208, no componente, pois não existe esse registro no leiaute do SPED, então usaremos o evento que ele deve se o próximo a ele, n.esse caso 0206.

ACBrSpedFiscal.pas

ACBrEFDBloco_0_Class.pas

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

Isaque, dei uma matada no tempo aqui e fiz alguns ajustes aqui no componente.

Poderia verificar, por favor.

Até.

Ei Willians, tente implementar o que esta nas Unit que eu anexei e testar se funciona para vc, e depois me retorne, se funcionar implementarei os eventos dos demais registros e subirei para o SVN.

Pelo que olhei é quase isso que vc fez, com algumas coisas poucas diferentes na implementaçã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

Isaque estive analisando aqui os fontes que você disponibilizou e percebi o seguinte, me corrija se estiver errado.

Você implementou eventos After e Before para a minhas alterações, onde o evento OnAfterWriteRegistro0200 vai substituir o meu eventro OnWriteRegistro0200 assim como nas demais alterações, porém o eventro OnBeforeWriteRegistro0200, na minha opinião não seria utilizado , pelo menos até o momento, pois para este evento ocorrer antes de adicionar o linha do 0200 no arquivo isso seria para, por exemplo, adicionar um registro XXXX antes do 0200 ou complementar o registro XXXX anterior ao 0200, o que imagino eu também poderia ser feito em um eventro OnAfterWriteRegistro????.

Realmente eu havia pensado nesses eventos mas devido ao fato de pensar na não utilização dos mesmos fiz a alteração conforme você já verificou.

Pode ser feito conforme você fez no arquivo irá funciona do mesmo jeito, ficaria até mais completo afinal em outros componentes onde tem um After sempre tem um Before, mas pra mim é indiferente pois a minha preocupação é com o arquivo final, a gente conseguindo adicionar as informações complementares ao arquivo, está excelente.

Posso implementar os eventos sem problema, atendendo as exigências para que seja adicionado ao projeto principal.

Referente a minha ultima alteração eu removi a rotina WriteBloco_A e WriteBloco_F que eu havia criado, você chegou a ver pode ser da maneira como ficou ou precisaria de mais alguma alteração.

Até.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Isaque estive analisando aqui os fontes que você disponibilizou e percebi o seguinte, me corrija se estiver errado.

Você implementou eventos After e Before para a minhas alterações, onde o evento OnAfterWriteRegistro0200 vai substituir o meu eventro OnWriteRegistro0200 assim como nas demais alterações, porém o eventro OnBeforeWriteRegistro0200, na minha opinião não seria utilizado , pelo menos até o momento, pois para este evento ocorrer antes de adicionar o linha do 0200 no arquivo isso seria para, por exemplo, adicionar um registro XXXX antes do 0200 ou complementar o registro XXXX anterior ao 0200, o que imagino eu também poderia ser feito em um eventro OnAfterWriteRegistro????.

Realmente eu havia pensado nesses eventos mas devido ao fato de pensar na não utilização dos mesmos fiz a alteração conforme você já verificou.

Pode ser feito conforme você fez no arquivo irá funciona do mesmo jeito, ficaria até mais completo afinal em outros componentes onde tem um After sempre tem um Before, mas pra mim é indiferente pois a minha preocupação é com o arquivo final, a gente conseguindo adicionar as informações complementares ao arquivo, está excelente.

Posso implementar os eventos sem problema, atendendo as exigências para que seja adicionado ao projeto principal.

Referente a minha ultima alteração eu removi a rotina WriteBloco_A e WriteBloco_F que eu havia criado, você chegou a ver pode ser da maneira como ficou ou precisaria de mais alguma alteração.

Até.

Ei Willians, se do jeito que fiz atende, vou implementar desse jeito assim como vc mesmo falou fica mais completo e cada um usa o evento que mais lhe for conveniente. Blz vou começar a implementar nos demais registros então e te mando por anexo para teste antes de subir para o SVN, obrigado pelo retorno rápido, agora é comigo, te dou retorno o mais rápido possível.

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

Ok Isaque, ficarei no aguardo, ou melhor ficaremos no aguardo, pois pelo que vi tem bastante gente esperando está alteração..rs.

Agradeço mais uma vez pela atenção e ajuda que tem nos dado para resolvermos esse nosso probleminha... :D .

Obrigado.

Até.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Prezados,

Estou com uma dúvida aqui ao gerar o registro 170 do Bloco C, e gostaria de um auxílio.

Ao passar o CST do PIS e do COFINS, o componente do ACBR solicita que sejam passados valores do tipo:

- pisSemIncidenciaContribuicao = 08

- pisValorAliquotaNormal = 01, etc.

Estes valores correspondem á CST de PIS e COFINS das vendas.

O problema é que estou contabilizando os registros de entrada, e neste caso, não estou vendo opção no componente para gerar estes registros com os CST que começam com 50, 51, etc.

O que deve ser feito?

Obrigado,

Michel.

Link para o comentário
Compartilhar em outros sites

Prezados,

Estou com uma dúvida aqui ao gerar o registro 170 do Bloco C, e gostaria de um auxílio.

Ao passar o CST do PIS e do COFINS, o componente do ACBR solicita que sejam passados valores do tipo:

- pisSemIncidenciaContribuicao = 08

- pisValorAliquotaNormal = 01, etc.

Estes valores correspondem á CST de PIS e COFINS das vendas.

O problema é que estou contabilizando os registros de entrada, e neste caso, não estou vendo opção no componente para gerar estes registros com os CST que começam com 50, 51, etc.

O que deve ser feito?

Obrigado,

Michel.

Michel eu fiz da seguinte forma criei a function abaixo e não tive problemas, na geração do arquivo apenas quando a pessoa informa o CST errado.

function TfrmPisCofins.DefinirCST_PIS( cstPIS : integer ) : TACBrSituacaoTribPIS;

begin

  Case cstPIS of

    01: Result := stpisValorAliquotaNormal;

    02: Result := stpisValorAliquotaDiferenciada;

    03: Result := stpisQtdeAliquotaUnidade;

    04: Result := stpisMonofaticaAliquotaZero;

    05: Result := stpisValorAliquotaPorST;

    06: Result := stpisAliquotaZero;

    07: Result := stpisIsentaContribuicao;

    08: Result := stpisSemIncidenciaContribuicao;

    09: Result := stpisSuspensaoContribuicao;

    49: Result := stpisOutrasOperacoesSaida;

    50: Result := stpisOperCredExcRecTribMercInt;

    51: Result := stpisOperCredExcRecNaoTribMercInt;

    52: Result := stpisOperCredExcRecExportacao;

    53: Result := stpisOperCredRecTribNaoTribMercInt;

    54: Result := stpisOperCredRecTribMercIntEExportacao;

    55: Result := stpisOperCredRecNaoTribMercIntEExportacao;

    56: Result := stpisOperCredRecTribENaoTribMercIntEExportacao;

    60: Result := stpisCredPresAquiExcRecTribMercInt;

    61: Result := stpisCredPresAquiExcRecNaoTribMercInt;

    62: Result := stpisCredPresAquiExcExcRecExportacao;

    63: Result := stpisCredPresAquiRecTribNaoTribMercInt;

    64: Result := stpisCredPresAquiRecTribMercIntEExportacao;

    65: Result := stpisCredPresAquiRecNaoTribMercIntEExportacao;

    66: Result := stpisCredPresAquiRecTribENaoTribMercIntEExportacao;

    67: Result := stpisOutrasOperacoes_CredPresumido;

    70: Result := stpisOperAquiSemDirCredito;

    71: Result := stpisOperAquiComIsensao;

    72: Result := stpisOperAquiComSuspensao;

    73: Result := stpisOperAquiAliquotaZero;

    74: Result := stpisOperAqui_SemIncidenciaContribuicao;

    75: Result := stpisOperAquiPorST;

    98: Result := stpisOutrasOperacoesEntrada;

    else

      Result := stpisOutrasOperacoes;

  end;

end;

Não sei se resolve o seu problema, pelo menos aqui pra mim atendeu perfeitamente. A verificação se o CST é de saida ou entrada eu já faço no sistema na entrada/saída por isso na geração apenas passo o CST que foi informado.

Att.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Olá Pessoal estou de volta, tirei umas férias afinal ninguém é de ferro e precisava de um tempo longe do SPED....rsrs,

Isaque gostaria de saber como está o andamento das alterações no componente?

Baixei o ACBr hoje pelo svn, e percebi que já tem algumas alterações na unit bloco 0, estas já são definitivas?

Obrigado.

Até.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Olá Pessoal estou de volta, tirei umas férias afinal ninguém é de ferro e precisava de um tempo longe do SPED....rsrs,

Isaque gostaria de saber como está o andamento das alterações no componente?

Baixei o ACBr hoje pelo svn, e percebi que já tem algumas alterações na unit bloco 0, estas já são definitivas?

Obrigado.

Até.

Acho que teremos que ter 3 eventos

BeforeWrite - Antes de iniciar a escrita do registro

Write - Linha a linha do registro

AfterWrite - Depois de terminar a escrita de todas as linhas do registro

BeforeWrite - podemos escrever registros antes

Write - podemos mudar se quiser linha a linha

AfterWrite - podemos escrever registros depois

Vou subir essas alterações dai vc poderá baseado nela implementar nos registros que precisar, e vamos implementando aos poucos nos outros, pois são muitos.

Acredito dessa forma atender a todas as necessidades em todos os pontos.

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

Enviei as alterações, baixe e confira se atenderá, se atender baseado nele pode implementar nos demais que precisar, em seguida anexe aqui que baixo avalio e subo pro 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

Olá Isaque

Baixei as alterações, mas ainda não cheguei a ver e testá-las.

Hoje me veio um idéia e gostaria de saber o que você acha, acho que ficaria mais simples de se implementar, e eu vou ficaria com bastante raiva de só ter pensado nisso agora.

Bom no nosso caso aqui, temos registro com campos adicionados e Blocos criados, para os registros que precisamos add informaçoes teriamos um eventos OnWriteRegistroXXXX(...), como ja foi feito e para as informações que serão adicionadas no arquivos como o Bloco A por exemplo teríamos uma rotina chamado WriteLinhaArquivo( ... ), a função dessa rotina seria apenas adicionar uma linha arquivo independente do bloco, ai para adicionar o Bloco A fariamos o seguinte:


ACBrSpedFiscal.WriteLinhaArquivo('|A100|0|');

ACBrSpedFiscal.WriteLinhaArquivo('|A100|...|');

ACBrSpedFiscal.WriteLinhaArquivo('|A170|...|');

ACBrSpedFiscal.WriteLinhaArquivo('|A990|...|');

Pelo menos até onde pensei aqui, essa rotina atende as nossas necessidades e até mais, gostaria de saber a sua opinião e a do pessoal sobre isso, esta seria uma forma que resolve nosso problema e fica mais simples de se implementar.

Até.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

e para as informações que serão adicionadas no arquivos como o Bloco A por exemplo teríamos uma rotina chamado WriteLinhaArquivo( ... ),

Não, nesse caso você usará o evento Before ou After a sua escolha e usará a chamada, como mostrado no código abaixo.

Me desculpe Willians, mas na minha visão sempre foi dessa forma, por isso achei a necessidade no terceiro evento, se observar no meu ultimo post tentei explicar exatamente essa visão

No evento OnWriteRegistro, você recebe a linha e pode incluir, remover mudar totalmente ela.

Nos OnBeforeWrite ou OnAfterWrite, você é quem escolhe, você pode escrever registro que não existem no SPED como o registro "A".

Para gerar esse novo registro "A" no evento BeforeWrite ou AfterWrite como falei a sua escolha, basta chamar


ACBrSpedFiscal.Bloco_?.Add('|A100|0|');
ACBrSpedFiscal.Bloco_?.Add('|A100|...|');
ACBrSpedFiscal.Bloco_?.Add('|A170|...|');
ACBrSpedFiscal.Bloco_?.Add('|A990|...|');
[/code]

"?" seria o bloco o qual esta sendo chamado o evento tipo:

BeforeWrite0200, se o evento é do bloco "0" então usamos o ACBrSpedFiscal.Bloco_0.Add('') se do bloco "1" usamos ACBrSpedFiscal.Bloco_1.Add('') e assim por diante.

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

Realmente Isaque, é que eu estava pensando em uma forma de simplificar toda a manutenção.

O evento OnWriteRegistro, esse não tenho o que falar, ele está perfeito!!

Meu pensamento é referente a os outros eventos, porque criar o evento OnBeforeWrite e o OnAfterWrite é fácil, vamos abrir novas possibilidades com esses eventos, só acho que não ficaria legal criar apenas para o registros e blocos que a Contmatic alterou, e criar esses eventos para todos os registros e blocos do arquivos vai ser um pouco trabalhoso. Por isso o que eu queria sugerir no post anterior era uma forma para que conseguissemos realizar estas alterações no layout, sem alterar muita coisa dentro do componenente, mas sem não tiver outra possibilidade vamos ao Before e After.

Analisando o código que você colocou abaixo, que você enviou:

Para gerar esse novo registro "A" no evento BeforeWrite ou AfterWrite como falei a sua escolha, basta chamar o código:

ACBrSpedFiscal.Bloco_?.Add('|A100|0|');

ACBrSpedFiscal.Bloco_?.Add('|A100|...|');

ACBrSpedFiscal.Bloco_?.Add('|A170|...|');

ACBrSpedFiscal.Bloco_?.Add('|A990|...|');

Percebi que eu poderia fazer o seguinte (Não testei apenas imaginei):


  ACBrSpedFiscal.WriteBloco_0;


  ACBrSpedFiscal.Bloco_0.Add('|A100|0|');  

  ACBrSpedFiscal.Bloco_0.Add('|A100|...|');

  ACBrSpedFiscal.Bloco_0.Add('|A170|...|');

  ACBrSpedFiscal.Bloco_0.Add('|A990|...|');

Se isso funcionar, e acredito que funcione, eu já não precisaria utilizar o evento Before e After, o que você acha?

Lembrando que são apenas idéias para diminuir a quantidade de alterações dentro do componentes, mas se não tiver como fugir, vamos colocar a mão na massa.

Att.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Realmente Isaque, é que eu estava pensando em uma forma de simplificar toda a manutenção.

O evento OnWriteRegistro, esse não tenho o que falar, ele está perfeito!!

Meu pensamento é referente a os outros eventos, porque criar o evento OnBeforeWrite e o OnAfterWrite é fácil, vamos abrir novas possibilidades com esses eventos, só acho que não ficaria legal criar apenas para o registros e blocos que a Contmatic alterou, e criar esses eventos para todos os registros e blocos do arquivos vai ser um pouco trabalhoso. Por isso o que eu queria sugerir no post anterior era uma forma para que conseguissemos realizar estas alterações no layout, sem alterar muita coisa dentro do componenente, mas sem não tiver outra possibilidade vamos ao Before e After.

Analisando o código que você colocou abaixo, que você enviou:

Para gerar esse novo registro "A" no evento BeforeWrite ou AfterWrite como falei a sua escolha, basta chamar o código:

ACBrSpedFiscal.Bloco_?.Add('|A100|0|');

ACBrSpedFiscal.Bloco_?.Add('|A100|...|');

ACBrSpedFiscal.Bloco_?.Add('|A170|...|');

ACBrSpedFiscal.Bloco_?.Add('|A990|...|');

Percebi que eu poderia fazer o seguinte (Não testei apenas imaginei):


ACBrSpedFiscal.WriteBloco_0;

ACBrSpedFiscal.Bloco_0.Add('|A100|0|');
ACBrSpedFiscal.Bloco_0.Add('|A100|...|');
ACBrSpedFiscal.Bloco_0.Add('|A170|...|');
ACBrSpedFiscal.Bloco_0.Add('|A990|...|');
[/code]

Se isso funcionar, e acredito que funcione, eu já não precisaria utilizar o evento Before e After, o que você acha?

Lembrando que são apenas idéias para diminuir a quantidade de alterações dentro do componentes, mas se não tiver como fugir, vamos colocar a mão na massa.

Att.

Pode até funcionar, porque vc está disparando o método manualmente "ACBrSpedFiscal.WriteBloco_0;"

Mas sem os eventos Before e After não atenderia para quem usa o método "SaveFileTXT", pois esse método é quem chama os métodos de escritas internamente.

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

Ah sim entendi, e acabei de descobrir uma coisa, na realidade eu nem tinha percebido o método "SaveFileTXT", aqui eu gero o arquivo utilizando os métodos WriteBloco? e no final eu chamo eu chamo o SaveFileTXT, agora estive olhando e percebi que eu gero o arquivo duas vezes...rsrs.... :D, fazer as coisas meio correndo é complicado...hein...rs

Bom então pelo jeito vai ter ser pelos Before e After mesmo, o jeito é começar a trabalhar então, pelo que vi você já implementou alguns eventos no bloco 0.

Vou terminar algumas coisas aqui no sistema que estou mexendo e dar andamento as demais alterações.

Teria como você já liberar no SVN as outras as alterações para os bloco e registros que já fiz? É que la já tem os eventos onWriteRegistro e Alguns After/Before de todos os que precisamos no momento assim já facilitaria aqui, pois eu atualizo o meu componente, meu sistema continua funcionando atualizado, e ai eu trabalho em cima de uma versão atualizada, ai conforme eu for ajustando te passo para ir adicionando ao projeto e também quem está utilizando o componente alterado já poderia atualizar o componente, pois tirando estes eventos que foram criados já tem vários ajustes no componente, pelo que percebi aqui..

Até.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Ah sim entendi, e acabei de descobrir uma coisa, na realidade eu nem tinha percebido o método "SaveFileTXT", aqui eu gero o arquivo utilizando os métodos WriteBloco? e no final eu chamo eu chamo o SaveFileTXT, agora estive olhando e percebi que eu gero o arquivo duas vezes...rsrs.... :D, fazer as coisas meio correndo é complicado...hein...rs

Bom então pelo jeito vai ter ser pelos Before e After mesmo, o jeito é começar a trabalhar então, pelo que vi você já implementou alguns eventos no bloco 0.

Vou terminar algumas coisas aqui no sistema que estou mexendo e dar andamento as demais alterações.

Teria como você já liberar no SVN as outras as alterações para os bloco e registros que já fiz? É que la já tem os eventos onWriteRegistro e Alguns After/Before de todos os que precisamos no momento assim já facilitaria aqui, pois eu atualizo o meu componente, meu sistema continua funcionando atualizado, e ai eu trabalho em cima de uma versão atualizada, ai conforme eu for ajustando te passo para ir adicionando ao projeto e também quem está utilizando o componente alterado já poderia atualizar o componente, pois tirando estes eventos que foram criados já tem vários ajustes no componente, pelo que percebi aqui..

Até.

Sim, claro anexe aqui que pego, faço o merge dentro do padrão que fiz o bloco 0 e subo.

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

Isaque estou anexando as alterações.

Fico no aguardo da versão atualizado do componente, vou dar uma olhada no bloco 0 pra confirmar e já vou preparando os demais eventos, na medida do possível.

Obrigado.

Até.

ACBrSPEDFiscal.rar

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Na minha região o mais utilizado e que reconheço como um dos melhores da área contábil é o JB CEPIL, inclusive ele importa o SPED diretamente do proprio formato da receita...

O que o pessoal utiliza por aqui, ele importa também o layout da receita, só que é apenas o SPED FISCAL, e os contadores tem que add as info de pis e cofins na mão, ai tiveram a "brilhante idéia" de alterar o layout do SPED FISCAL para incluir informações do pis cofins nele, ai ele fica completo tendo informações de ICMS, IPI, PIS e COFINS

Esse programa que você citou importa o arquivo do SPED FISCAL e SPED PIS COFINS ou somente SPED FISCAL??

Gera o arquivo do SPED?

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Isaque estou anexando as alterações.

Fico no aguardo da versão atualizado do componente, vou dar uma olhada no bloco 0 pra confirmar e já vou preparando os demais eventos, na medida do possível.

Obrigado.

Até.

Willians, agora ficou do jeito que eu queria, bem estruturado, estou anexando uma cópia aqui antes de subir para o SVN para vc testar, assim que me der o ok eu subo.

ACBrSped.pas

ACBrSpedFiscal.zip

ACBr_SPED.dpk.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

Olá Isaque, Bom Dia!

Acabei de verificar as alterações e ficaram perfeitas, tive somente que reajustar umas coisas no meu programa devido a forma como ficaram os eventos.

Fiz alguns ajustes no componente pois faltaram dois eventos que eu preciso, AfterWriteRegistro0990 e o AfterWriteRegistroE990, que eu utilizo para gerar o Bloco A e o Bloco F, já criei o trio de eventos para manter o padrão e adicionei uma nova unit a "ACBrEFDBloco_E_Events.pas".

Estou anexando aqui as alterações que fiz.

Obrigado.

Até.

ACBrSPEDFiscal.rar

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

Olá Isaque, Bom Dia!

Acabei de verificar as alterações e ficaram perfeitas, tive somente que reajustar umas coisas no meu programa devido a forma como ficaram os eventos.

Fiz alguns ajustes no componente pois faltaram dois eventos que eu preciso, AfterWriteRegistro0990 e o AfterWriteRegistroE990, que eu utilizo para gerar o Bloco A e o Bloco F, já criei o trio de eventos para manter o padrão e adicionei uma nova unit a "ACBrEFDBloco_E_Events.pas".

Estou anexando aqui as alterações que fiz.

Obrigado.

Até.

Willians, implementado e disponível no SVN, obrigado pela paciência e ajuda para chegarmos a mais este sucesso, 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

Willians, implementado e disponível no SVN, obrigado pela paciência e ajuda para chegarmos a mais este sucesso, abração.

Fiz apenas minha a parte! :D

Agradeço a sua paciência e empenho em nos ajudar nessa empreitada, para que pudéssemos adicionar essas rotinas ao componente e facilitar a vida muitos programadores por ai....rsrs...inclusive a minha.

Vou continuar com a implementação dos eventos para os demais registros na medida do possível, de momento já resolvemos o problema, mas futuramente pode haver mais alterações e assim ja estaremos previnidos.

Mais uma vez obrigado pela atenção e paciência.

Até.

Abraço.

Willians R. Gonçalves

[email protected]

"Sou louco porque vivo em um mundo que não merece minha lucidez" (Bob Marley)

Link para o comentário
Compartilhar em outros sites

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