Jump to content

dev botao

Contimatic - Alguem conseguiu gerar o registro C470 ?


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

Recommended Posts

Estou tentando gerar o registro C470 com as informações adicionais do G5 Phoenix;

Estou encontrando dificuldade em função do C470 ser um filho de C460 e então nao consigo pegar no evento a relação entre o item que esta formatando o texto e a quem se refer para adicionar as informações do G5.

Os eventos não indicam qual o registro que esta sendo montado,ele só passa a string em construção, assim não tem como fazer relação dos dados em construção com os dados que devem ser adicionados;

Se alguem coseguiu fazer, poderia dar um exemplo ?

Reflexões:

- Penso que a declaração do evento ficou simplista ao ponto de não identificar quem é o chamador o que dificulta identificar o documento e cruzar informações em meio ao processo; Deveria indicar qual o registro esta chamando o evento;

- As funções que criam os registros, poderiam ser declarados como VIRTUAL, assim possibilitaria acomodar estas situações que precisam de informações adicionais ligadas ao registro, ou, se existisse uma função virtual que retornasse qual a classes de registro a ser instanciada;

Amarildo Lacerda

Storeware Team

Link to comment
Share on other sites

Tentando alterar o mínimo possível no ACBr consegui gerar o 470 criando TACBrEFD_G5 = class(TACBrSpedFiscalExt); (veja o codigo anexo);

Para inicializar o object:

sped := TACBrEFD_G5.create(nil); // herda de TACBrSpedFiscal

Para criar o registro C470....

C470 := sped.RegistroC470New;

With C470 {bloco_C.registroC470New} Do

Begin

COD_ITEM := '1';

QTD := 1;

UNID := 'KG';

QTD_CANC := 0;

VL_ITEM := 100;

CST_ICMS := '000';

CFOP := '5102';

Aliq_ICMS := 18;

VL_PIS := 0,65;

VL_COFINS := 3,00;

if C470 is TRegistroC470_G5 then // avalia se é para gerar dados do G5

with TRegistroC470_G5(C470) do

begin

CST_PIS := '01';

VL_BC_PIS := 100;

ALIQ_PIS := 0,65;

CST_COFINS := '01';

VL_BC_COFINS := 100;

ALIQ_COFINS := 3;

IND_MOV := '1';

end;

End;

nao precisa fazer mais nada... o evento da classe é que vai adicionar a informação na linha;

O que precisa mudar no ACBr:

- passar para Protected/Virtual -> procedure WriteRegistroC470(RegC460: TRegistroC460);virtual

em ACBrEFDBloco_C_Class.pas;

[fim]

ACBrEFD_G5.pas

Amarildo Lacerda

Storeware Team

Link to comment
Share on other sites

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

The popup will be closed in 10 seconds...