unit AlteraCamposPedido;

interface

uses
  Windows, system.UItypes, IB_Access,  Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TelaComum, Mask, IB_Controls, StdCtrls, ExtCtrls, Buttons, Rotinas,
  ImgList, IB_EditButton, System.ImageList;

type
  TfrmAlteraCamposPedido = class(TfrmTelaComum)
    lblInicio: TLabeledEdit;
    lblFim: TLabeledEdit;
    dbData: TIB_Date;
    rdDatas: TRadioGroup;
    procedure BtGravarClick(Sender: TObject);
    procedure BtCancelarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmAlteraCamposPedido: TfrmAlteraCamposPedido;

implementation

uses DataModulo, Pedidos;

{$R *.dfm}

procedure TfrmAlteraCamposPedido.BtGravarClick(Sender: TObject);
var i, Inicio , Fim : integer;
begin
  inherited;
  try
     Inicio := StrToINt(lblInicio.Text);
  except
    MessageDlg('VALOR INVÁLIDO PARA PEDIDO', mtError, [mbOK], 0);
    lblInicio.SetFocus;
    Exit;
  end;

  try
      fim := StrToINt(lblFIM.Text);
  except
    MessageDlg('VALOR INVÁLIDO PARA PEDIDO', mtError, [mbOK], 0);
    lblFIM.SetFocus;
    Exit;
  end;

  if dbData.Value = 0
  then
    begin
      MessageDlg('INFORME A NOVA DATA DO PEDIDO', mtError, [mbOK], 0);
      dbData.SetFocus;
      Exit;
    end;
  Dados.script.SQL.Clear;
  if rdDatas.ItemIndex = 0 then
    begin
      Dados.script.SQL.Add('UPDATE pedidos ');
      Dados.script.SQL.Add('  SET DATA_PEDIDO ='+QuotedStr(FormatDateTime('dd.mm.yyyy',dbData.Value)) );
      Dados.script.SQL.Add('  WHERE COD_PEDIDO between '+ inttostr(Inicio) + ' AND ' + inttostr(Fim) );
    end
  else
    begin
      Dados.script.SQL.Add('UPDATE pedidos ');
      Dados.script.SQL.Add('  SET DATA_SAIDA ='+QuotedStr(FormatDateTime('dd.mm.yyyy',dbData.Value)) );
      Dados.script.SQL.Add('  WHERE COD_PEDIDO between '+ IntToStr(Inicio) + ' AND ' + IntToStr(Fim) );
    end;
  Dados.script.Execute;


  //============= realiaza um lancamento de contas a receber para os pedidos que nao tem nada lancado

  MostraTelaEspera;

  frmPedidos := TfrmPedidos.create(self);
  frmPedidos.Gerando_boletos_da_tela_alera_campos_pedido := true;
  frmPedidos.TbPrincipal.SQLWhere.clear;
  frmPedidos.TbPrincipal.SQLWhere.add(' where PEDIDOS.COD_PEDIDO = :codPedido ');
  frmPedidos.TbPrincipal.Prepare;

  for i := inicio to fim do
  begin
     frmPedidos.TbPrincipal.ParamByName('codPedido').value := i;
     frmPedidos.TbPrincipal.open;
     frmPedidos.AtualizaTela;
     frmPedidos.ContasReceber;

  end;

  frmPedidos.destroy;

  DestroiTelaEspera;

  MessageDlg('Datas alteradas', mtInformation, [mbOK], 0);
end;

procedure TfrmAlteraCamposPedido.BtCancelarClick(Sender: TObject);
begin
  inherited;
  Close;
end;

end.
