Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom Dia a Todos.

No meu paf eu Implementei uma função para iniciar o Dia Fiscal, é uma espécie de caixa que server também para atender alguns requisitos do paf, como por exemplo a posição do estoque e o requisito que tem que gravar a data e hora do primeiro documento emitido.

Mas nas ecfs daruma o comando "DataMovimento" retorna 01/01/00, e só fica correto quando emito um cupom.

Vejam as duas funções

Funcao Confere DIA

*/*/*/*/*/*/*/*/*/*/*/*/*/*/

Decodedate (DMECF.DataMovimento, Ano, Mes, Dia );

Data := EncodeDate(Ano, Mes, Dia);

Sql := ' SELECT COO_LX FROM DIA_FISCAL D ' +

' WHERE CAST(D.data AS DATE) = :DATA' ;

With DMDia_Fiscal do

begin

Confere.Close;

Confere.SQL.Clear;

Confere.SQL.Add( Sql );

Confere.ParamByName('DATA').AsDate := Data;

Confere.Open;

if Confere.Fields[0].IsNull then

Result := true

else begin

Result := False;

MessageDlg('Já existe um dia Fiscal aberto para o Movimento Atual = ' + DatetoStr(Data), mtError, [mbOK], 0);

end;

Confere.Close;

end;

/*/*/*/*/*/*/*/*/*/*/*/*/*/*

if (Conferedia) then

Begin

//Chamando a Leitura X

DMECF.LeituraX(False);

//

dsEditar.DataSet.Open;

dsEditar.DataSet.Append;

Decodedate (DMECF.DataMovimento, Ano, Mes, Dia );

dsEditar.DataSet.FieldByName('DATA').AsDateTime := EncodeDate(Ano, Mes, Dia);

dsEditar.DataSet.Post;

dsEditar.DataSet.Close;

//Grava o Estoque Atual

Grava_Estoque;

DsSelecionar.DataSet.Refresh;

MessageDlg('Dia Fiscal Aberto com sucesso, Bom trabalho!', mtError, [mbOK], 0);

End;

*/*/*/*/*/*/*/*/*/*

Alguem sabe como resolver isso na daruma sem ter que abrir um cupom Fiscal?

Ou tem outra solução para este caso.

Agradeço a Atenção

Wendel Wagner

  • Moderadores
Postado

Data movimento só recebe um valor quando você emite um cupom fiscal, porque é a data de movimento fiscal, isso vale para a maioria das impressoras fiscais. O que eu faço aqui e controlar a data eu mesmo para fazer isso ai que você falou, tenho um campo onde eu guardo a data de emissão do primeiro documento e comparo com a data do computador, assim eu sei que mudou.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • 3 semanas depois ...
  • Membros Pro
Postado

O que pode ser feito também é ao verificar a data de movimento e for detectado que a mesma é diferente da data atual do ECF, verificar se o estado atual do ECF é diferente de estRequerZ, se for assumir a data de movimento como sendo a data do dia.


function TECF.LerDataMovimento: TDateTime;

var

  DtDia: TDateTime;

begin

  Result := 0;

  try

    Result := frmPDV.ECFACBr.DataMovimento;

    DtDia := DateOf(frmPDV.ECFACBr.DataHora);

    if Result < DtDia then

      if frmPDV.ECFACBr.Estado <> estRequerZ then

        Result := DtDia;

  except

    on E: Exception do

      MsgErro(E.Message);

  end;

end;

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

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