Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia amigos,

Tenho umas empresas que dão férias coletivas, e nesse períodos não há entradas e nem saídas, desta forma não há movimento fiscal, ao gerar o sintegrar ele é rejeitado pelo validador pois não possui movimento e possui 2 registros tipo 90.

Observei nos fontes que sempre é gerado 2 registros do tipo 90, então fiz umas alterações nesta rotina para atender minha necessidade, onde somente será gerado mais de um registro 90 quando realmente precisar, ou seja, quando não couber tudo em apenas um registro.

Segue abaixo minha alteração:



procedure TACBrSintegra.GerarRegistros90;

var

  wregistro, s: string;

  wtotal88, wtotal90, i,p: Integer;


  procedure _calcTotal90;

  begin

    wtotal90 := 1;

    // +10 do registro 99

    if (Length(s)+10)>90 then

    begin

      wtotal90 := 2;

      if (Length(s)+10)>180 then

        wtotal90 := 3;

    end;

  end;


begin

  s := '';

if Registros50.Count>0 then

  s:=s+'50'+TBStrZero(IntToStr(Registros50.Count),8);

if Registros51.Count>0 then

  s:=s+'51'+TBStrZero(IntToStr(Registros51.Count),8);

if Registros53.Count>0 then

  s:=s+'53'+TBStrZero(IntToStr(Registros53.Count),8);

if Registros54.Count>0 then

  s:=s+'54'+TBStrZero(IntToStr(Registros54.Count),8);

if Registros55.Count>0 then

  s:=s+'55'+TBStrZero(IntToStr(Registros55.Count),8);

if Registros56.Count>0 then

  s:=s+'56'+TBStrZero(IntToStr(Registros56.Count),8);


if Registros60M.Count>0 then

  s:=s+'60'+TBStrZero(IntToStr(Registros60M.Count+Registros60A.Count+

    Registros60D.Count+Registros60I.Count+Registros60R.Count),8);

if Registros61.Count>0 then

  s:=s+'61'+TBStrZero(IntToStr(Registros61.Count+Registros61R.Count),8);

if Registros70.Count>0 then

  s:=s+'70'+TBStrZero(IntToStr(Registros70.Count),8);

if Registros71.Count>0 then

  s:=s+'71'+TBStrZero(IntToStr(Registros71.Count),8);

if Registros74.Count>0 then

  s:=s+'74'+TBStrZero(IntToStr(Registros74.Count),8);

if Registros75.Count>0 then

  s:=s+'75'+TBStrZero(IntToStr(Registros75.Count),8);

if Registros76.Count>0 then

  s:=s+'76'+TBStrZero(IntToStr(Registros76.Count),8);

if Registros77.Count>0 then

  s:=s+'77'+TBStrZero(IntToStr(Registros77.Count),8);


if Registros85.Count>0 then

  s:=s+'85'+TBStrZero(IntToStr(Registros85.Count),8);

if Registros86.Count>0 then

  s:=s+'86'+TBStrZero(IntToStr(Registros86.Count),8);


//totalizador para registros 88

wtotal88:=0;

if FInforma88EAN then

  wtotal88:=wtotal88+Registros88Ean.Count;


if Trim(Registro88EC.CRCContabilista) <> '' then

  Inc(wtotal88);

if Trim(Registro88SF.FCNPJEmpresa) <> '' then

  Inc(wtotal88);


if FInforma88SME then

  inc(wtotal88);


if FInforma88SMS then

  inc(wtotal88);


if wtotal88>0 then

  s:=s+'88'+TBStrZero(IntToStr(wtotal88),8);


  _calcTotal90;


  s:=s+'99'+TBStrZero(IntToStr(Registros50.Count+Registros51.Count+

    Registros53.Count+Registros54.Count+Registros55.Count+registros56.count+

    (Registros60M.Count+Registros60A.Count+Registros60D.Count+Registros60I.Count+Registros60R.Count)+

    (Registros61.Count+Registros61R.Count)+Registros70.Count+Registros71.Count+

    Registros74.Count+Registros75.Count+Registros76.Count+Registros77.Count+

    Registros85.Count+Registros86.Count+wtotal88+

     2 + // tipo 10,11

     wtotal90 ),8);


  p := 1;

  for i := 1 to wtotal90 do

  begin

    wregistro:='90'+TBStrZero(TiraPontos(Registro10.CNPJ),14);

    wregistro:=wregistro+Padl(TiraPontos(Registro10.Inscricao),14);


    wregistro:=wregistro+ Copy(s,p,90);

    p := p + 90;


    wregistro:=wregistro+Space(125-length(wregistro))+ IntToStr(wtotal90);

    WriteRecord(wregistro);

  end;

end;

  • 2 meses depois ...
  • Este tópico foi criado há 4980 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.