changeunit.pas

来自「东华休闲山庄洗浴、餐饮、客房管理系统」· PAS 代码 · 共 241 行

PAS
241
字号
unit ChangeUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SUIButton, StdCtrls, SUIEdit, SUIComboBox, ExtCtrls,
  SUIImagePanel, DateUtils;

type
  TChangeForm = class(TForm)
    suiPanel1: TsuiPanel;
    Label12: TLabel;
    suiComboBox5: TsuiComboBox;
    Label11: TLabel;
    suiComboBox6: TsuiComboBox;
    suiButton1: TsuiButton;
    suiButton2: TsuiButton;
    procedure suiButton2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure suiComboBox5KeyPress(Sender: TObject; var Key: Char);
    procedure suiComboBox5DropDown(Sender: TObject);
    procedure suiComboBox6KeyPress(Sender: TObject; var Key: Char);
    procedure suiComboBox6DropDown(Sender: TObject);
    procedure suiComboBox6Select(Sender: TObject);
    procedure suiComboBox5Change(Sender: TObject);
    procedure suiButton1Click(Sender: TObject);
    procedure suiComboBox5Select(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    id:string;
    ifclock:boolean;
    price,clock,scale,factprice,days,deposit,paymode:string;
    guestname:string;
    memo:string;
  end;

var
  ChangeForm: TChangeForm;

implementation

uses MainUnit, LoginUnit;

{$R *.dfm}

procedure TChangeForm.suiButton2Click(Sender: TObject);
begin
  close;
end;

procedure TChangeForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  mainform.RefrushRoomState(0);
  mainform.Enabled:=true;
end;

procedure TChangeForm.FormActivate(Sender: TObject);
begin
  self.suiComboBox5.SetFocus;
end;

procedure TChangeForm.FormCreate(Sender: TObject);
var
  guestid:string;
begin
  ifclock:=false;
  self.suiComboBox5.Clear;
  self.suiComboBox6.Clear;
  self.suiPanel1.Caption:='原房间【'+mainform.roomnum+'】';
  loginform.ExecuteSQL('select room_id from room where room_num='''+mainform.roomnum+'''');
  id:=LoginForm.dsQuery.Fields[0].AsString;
  LoginForm.dsQuery.Close;
  loginform.ExecuteSQL('select * from house where id='''+id+'''');
  guestid:=LoginForm.dsQuery.fieldbyname('guest').AsString;
  memo:=LoginForm.dsQuery.fieldbyname('memozs').AsString;
  LoginForm.dsQuery.Close;
  loginform.ExecuteSQL('select * from guest where id='+guestid);
  guestname:=LoginForm.dsQuery.fieldbyname('name').AsString;
  LoginForm.dsQuery.Close;
end;

procedure TChangeForm.suiComboBox5KeyPress(Sender: TObject; var Key: Char);
begin
  key:=#0;
end;

procedure TChangeForm.suiComboBox5DropDown(Sender: TObject);
begin
  loginform.AddCombobox(suiComboBox5,'select type_mc from roomtype');
  self.suiComboBox5.ItemIndex:=0;
end;

procedure TChangeForm.suiComboBox6KeyPress(Sender: TObject; var Key: Char);
begin
  key:=#0;
end;

procedure TChangeForm.suiComboBox6DropDown(Sender: TObject);
begin
  loginform.AddCombobox(suiComboBox6,'select room_num from room '+
                                     'where (room_state=''可供'') and '+
                                           '(room_type in (select type_xh from roomtype '+
                                                          'where type_mc='''+suiComboBox5.Text+'''))');
end;

procedure TChangeForm.suiComboBox6Select(Sender: TObject);
begin
  self.suiButton1.SetFocus;
end;

procedure TChangeForm.suiComboBox5Change(Sender: TObject);
begin
  self.suiComboBox6.Clear;
end;

procedure TChangeForm.suiButton1Click(Sender: TObject);
var
  state:string;
  dayprice,hourprice,deposit:string;
  entertime:tdatetime;
  day,hour,Minute:integer;
  temp:string;
  index:integer;
  time:string;
begin
  if self.suiComboBox6.Text='' then
    begin
      MessageDlg('调换到房间信息不可以为空,请重新选择!',mtConfirmation, [mbYes], 0);
      exit;
    end;
  loginform.ExecuteSQL('select * from room where room_num='''+mainform.roomnum+'''');
  state:=loginform.dsQuery.fieldbyname('room_state').AsString;
  loginform.dsQuery.Close;
  loginform.ExecuteSQL('update room set room_state=''清理'' where room_num='''+mainform.roomnum+'''');
  loginform.ExecuteSQL('update room set room_state='''+state+''',room_ID='''+id+''' '+
                       'where room_num='''+self.suiComboBox6.Text+'''');
  loginform.ExecuteSQL('select * from house where id='''+id+''' and room='''+mainform.roomnum+'''');
  entertime:=LoginForm.dsQuery.fieldbyname('entertime').AsDateTime;
  factprice:=LoginForm.dsQuery.fieldbyname('factprice').AsString;
  deposit:=loginform.dsQuery.fieldbyname('deposit').AsString;
  LoginForm.dsQuery.Close;
  minute:=MinutesBetween(now,entertime);
  Day:=Minute div 1440;
  minute:=minute mod 1440;
  hour:=minute div 60;
  minute:=minute mod 60;
  if state='钟点' then
    begin
      if minute>=30 then
        temp:=IntToStr(hour+1)
      else
        temp:=IntToStr(hour)+'.5';
    end
  else
    begin
      if hour>=12 then
        temp:=IntToStr(day+1)
      else
        temp:=IntToStr(day)+'.5';
    end;
  loginform.ExecuteSQL('select max(Lbxf_xfBegin) from consume '+
                       'where Lbxf_xfbh='''+id+''' and Lbxf_sph='''+mainform.roomnum+''' and Lbxf_xfxm=''房间费''');
  time:=LoginForm.dsQuery.fields[0].AsString;
  LoginForm.dsQuery.Close;
  LoginForm.ExecuteSQL('update consume set Lbxf_xfsl='''+FormatFloat('0.0',strtofloat(temp))+''','+
                                          'Lbxf_xfje='''+
                                          FormatFloat('¥0.00',StrToFloat(temp)*StrToFloat(factprice))+''' '+
                       'where Lbxf_xfbh='''+id+''' and Lbxf_sph='''+mainform.roomnum+''' and '+
                             'Lbxf_xfBegin='''+time+''' and Lbxf_xfxm=''房间费''');
  loginform.ExecuteSQL('update consume set Lbxf_sph='''+self.suiComboBox6.Text+''' '+
                       'where Lbxf_xfbh='''+id+''' and Lbxf_sph='''+mainform.roomnum+'''');
  index:=pos(mainform.roomnum,memo);
  delete(memo,index,length(mainform.roomnum));
  insert(self.suiComboBox6.Text,memo,index);
  loginform.ExecuteSQL('update house set memozs='''+memo+''' where id='''+id+'''');
  if copy(self.suiComboBox6.Text,1,2)<>copy(mainform.roomnum,1,2) then
    begin
      loginform.ExecuteSQL('select * from roomtype where type_mc='''+self.suiComboBox5.Text+'''');
      dayprice:=loginform.dsQuery.fieldbyname('type_csdj').AsString;
      hourprice:=loginform.dsQuery.fieldbyname('type_mp').AsString;
      loginform.dsQuery.Close;
      if state='钟点' then
        begin
          loginform.ExecuteSQL('insert into consume '+
                               'values('''+id+''','''+self.suiComboBox6.Text+''',''房间费'+
                                       ''','''+FormatFloat('¥0.00',strtofloat(hourprice))+
                                       ''',''1.0'',''1.0'','''+FormatFloat('¥0.00',strtofloat(hourprice))+
                                       ''','''+FormatDateTime('yyyy-mm-dd hh:nn:ss',now)+
                                       ''','''+FormatFloat('¥0.00',strtofloat(hourprice))+
                                       '元/小时'','''+loginform.username+''')');
          loginform.ExecuteSQL('update house set room='''+self.suiComboBox6.Text+''','+
                                                'price='''+hourprice+''',ifclock=''Y'',clock='''+hourprice+''','+
                                                'scale=''1.0'',factprice='''+hourprice+''',deposit='''+deposit+''','+
                                                'entertime='''+FormatDateTime('yyyy-mm-dd hh:nn:ss',now)+''' '+
                               'where id='''+id+''' and room='''+mainform.roomnum+'''');
        end
      else
        begin
          loginform.ExecuteSQL('insert into consume '+
                               'values('''+id+''','''+self.suiComboBox6.Text+''',''房间费'+
                                       ''','''+FormatFloat('¥0.00',strtofloat(dayprice))+
                                       ''',''1.0'',''1.0'','''+FormatFloat('¥0.00',strtofloat(dayprice))+
                                       ''','''+FormatDateTime('yyyy-mm-dd hh:nn:ss',now)+
                                       ''','''+FormatFloat('¥0.00',strtofloat(dayprice))+
                                       '元/天'','''+loginform.username+''')');
          loginform.ExecuteSQL('update house set room='''+self.suiComboBox6.Text+''','+
                                                'price='''+dayprice+''',ifclock=''N'',clock='''+dayprice+''','+
                                                'scale=''1.0'',factprice='''+dayprice+''',deposit='''+deposit+''','+
                                                'entertime='''+FormatDateTime('yyyy-mm-dd hh:nn:ss',now)+''' '+
                               'where id='''+id+''' and room='''+mainform.roomnum+'''');
        end;

    end
  else
    begin
      loginform.ExecuteSQL('update house set room='''+self.suiComboBox6.Text+''' '+
                           'where id='''+id+''' and room='''+mainform.roomnum+'''');
    end;
  loginform.ExecuteSQL('update yjgl set yj_sph='''+self.suiComboBox6.Text+''' '+
                       'where yj_bh='''+id+''' and yj_sph='''+mainform.roomnum+'''');
  loginform.ExecuteSQL('insert into log '+
                       'values('''+FormatDatetime('yyyy-mm-dd hh:nn:ss',now)+''','''+loginform.userid+
                               ''','''+LoginForm.username+''',''宾客【'+guestname+'】'+
                               '房间由【'+mainform.roomnum+'】调换到【'+self.suiComboBox6.Text+'】'')');
  MessageDlg('宾客【'+guestname+'】房间由【'+mainform.roomnum+'】调换到【'+self.suiComboBox6.Text+'】!',
             mtConfirmation, [mbYes], 0);
  close;
end;

procedure TChangeForm.suiComboBox5Select(Sender: TObject);
begin
  self.suiComboBox6.SetFocus;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?