⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skkdunit.pas

📁 东华休闲山庄洗浴、餐饮、客房管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
          ClientDataSet1.Open;
          suiEdit14.SetFocus;
        except
          suiEdit12.SetFocus;
        end;
      end;
end;

procedure TSKKDForm.suiEdit14KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in [#48..#57,#13,#8]) then
    key:=#0
  else
    if key=#13 then
      suiEdit15.SetFocus;
end;

procedure TSKKDForm.suiEdit15KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in [#48..#57,#46,#13,#8]) then
    key:=#0
  else
    if key=#13 then
      suiComboBox8.SetFocus;
end;

procedure TSKKDForm.suiComboBox8KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    suiButton1.SetFocus;
end;

procedure TSKKDForm.suiButton1Click(Sender: TObject);
var
  temp:string;
  source,name,sex,peoplenum,phone,cardtype,cardnum,address,memo:string;
  room,price,ifclock,clock,scale,factprice,days,deposit,paymode:string;
  entertime,leavetime:string;
  flag:boolean;
begin
  flag:=false;
  source:=suiComboBox1.Text;
  name:=suiEdit6.Text;
  sex:=suiComboBox2.Text;
  peoplenum:=suiEdit1.Text;
  phone:=suiEdit2.Text;
  cardtype:=suiComboBox7.Text;
  cardnum:=suiEdit3.Text;
  address:=suiEdit4.Text;
  if not ifguest then
    begin
      loginform.ExecuteSQL('insert into guest(source,name,sex,phone,cardtype,cardnum,address,'+
                                             'cometime,expenditure,payment,nopayment) '+
                           'values('''+source+''','''+name+''','''+sex+''','''+phone+''','''+cardtype+
                                   ''','''+cardnum+''','''+address+''',''0'',''0.00'',''0.00'',''0.00'')');
      loginform.ExecuteSQL('select max(id) from guest');
      self.guestid:=LoginForm.dsQuery.Fields[0].AsString;
      LoginForm.dsQuery.Close;
    end;
  memo:=suiEdit5.Text;
  room:=memo;
  Delete(room,1,9);
  room:=Copy(room,1,5);
  loginform.ExecuteSQL('select * from roomselect where id=''1''');
  price:=loginform.dsQuery.fieldbyname('price').AsString;
  if suiCheckBox1.Checked then
    ifclock:='Y'
  else
    ifclock:='N';
  clock:=MainForm.roomhourprice;
  factprice:=loginform.dsQuery.fieldbyname('factprice').AsString;
  scale:=suiEdit12.Text;
  days:=suiEdit14.Text;
  deposit:=suiEdit15.Text;
  paymode:=suiComboBox8.Text;
  LoginForm.dsQuery.Close;
  entertime:=FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
  leavetime:=FormatDateTime('yyyy-mm-dd hh:nn:ss',now+strtoint(days));
  temp:=memo;
  Delete(temp,1,9);
  while Pos(';',temp)>0 do
    begin
      room:=Copy(temp,1,Pos(';',temp)-1);
      if not flag then
        begin
          loginform.ExecuteSQL('insert into house '+
                               'values('''+id+''','''+guestid+''','''+peoplenum+''','''+memo+''','''+room+
                                       ''','''+price+''','''+ifclock+''','''+clock+''','''+scale+
                                       ''','''+factprice+''','''+days+''','''+deposit+
                                       ''','''+paymode+''','''+entertime+''','''+leavetime+''')');
          flag:=true;
        end
      else
        loginform.ExecuteSQL('insert into house '+
                             'values('''+id+''','''+guestid+''','''+peoplenum+''','''+memo+''','''+room+
                                       ''','''+price+''','''+ifclock+''','''+clock+''','''+scale+
                                       ''','''+factprice+''','''+days+''',''0'','''+paymode+
                                       ''','''+entertime+''','''+leavetime+''')');
      if (ifclock='Y') or (ifclock='y') then
        begin
          loginform.ExecuteSQL('insert into consume '+
                               'values('''+id+''','''+room+''',''房间费'','''+FormatFloat('¥0.00',strtofloat(price))+
                                       ''','''+scale+''',''0.50'','''+FormatFloat('¥0.00',strtofloat(factprice)*0.50)+
                                       ''','''+entertime+''','''+FormatFloat('¥0.00',strtofloat(factprice))+
                                       '元/小时'','''+loginform.username+''')');
          loginform.ExecuteSQL('update room set room_state=''钟点'',room_ID='''+id+''' where room_num='''+room+'''');
        end
      else
        begin
          loginform.ExecuteSQL('insert into consume '+
                               'values('''+id+''','''+room+''',''房间费'','''+FormatFloat('¥0.00',strtofloat(price))+
                                       ''','''+scale+''',''0.50'','''+FormatFloat('¥0.00',strtofloat(factprice)*0.50)+
                                       ''','''+entertime+''','''+FormatFloat('¥0.00',strtofloat(factprice))+
                                       '元/天'','''+loginform.username+''')');
          loginform.ExecuteSQL('update room set room_state=''散客'',room_ID='''+id+''' where room_num='''+room+'''');
        end;
      Delete(temp,1,Pos(';',temp))
    end;
  Delete(memo,1,9);
  Delete(memo,Length(memo),1);
  if Pos(';',memo)>0 then
    room:=Copy(memo,1,Pos(';',memo)-1)
  else
    room:=memo;
  loginform.ExecuteSQL('insert into yjgl '+
                       'values('''+id+''','''+room+''','''+deposit+''','''+entertime+''','''+loginform.username+
                               ''','''+days+''','''+paymode+''')');
  if (ifclock='Y') or (ifclock='y') then
    loginform.ExecuteSQL('insert into log '+
                         'values('''+entertime+''','''+loginform.userid+''','''+LoginForm.username+
                                 ''',''钟点客人【'+name+'】成功入住【'+memo+'】'')')
  else
    loginform.ExecuteSQL('insert into log '+
                         'values('''+entertime+''','''+loginform.userid+''','''+LoginForm.username+
                                 ''',''散客客人【'+name+'】成功入住【'+memo+'】'')');
  MessageDlg('当前宾客【'+name+'】入住【'+memo+'】成功!',mtConfirmation, [mbYes], 0);
  ifsave:=true;
  close;
end;

procedure TSKKDForm.suiEdit16KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in [#48..#57,#45,#13,#8]) then
    key:=#0
  else
    if key=#13 then
      suiComboBox4.SetFocus;
end;

procedure TSKKDForm.suiCheckBox1Click(Sender: TObject);
begin
  if suiCheckBox1.Checked then
    begin
      suiEdit12.Text:='1.00';
      loginform.ExecuteSQL('update roomselect '+
                           'set price='''+formatfloat('¥0.00',strtofloat(mainform.roomhourprice))+''','+
                               'salce='''+suiEdit12.Text+''','+
                               'factprice='''+formatfloat('¥0.00',strtofloat(mainform.roomhourprice))+'''');
      suiEdit12.Enabled:=False;
      suiEdit14.SetFocus;
    end
  else
    begin
      loginform.ExecuteSQL('update roomselect '+
                           'set price='''+formatfloat('¥0.00',strtofloat(mainform.roomprice))+''','+
                               'salce='''+suiEdit12.Text+''','+
                               'factprice='''+formatfloat('¥0.00',strtofloat(mainform.roomprice)*strtofloat(suiEdit12.Text))+'''');
      suiEdit12.Enabled:=true;
      suiEdit12.SetFocus;
    end;
  ClientDataSet1.Close;
  ClientDataSet1.Open;
end;

procedure TSKKDForm.btn3Click(Sender: TObject);
var
  index:Integer;
  roomnum:string;
  roomtype:string;
  roomprice:string;
  roomhourprice:string;
  roomyajin:string;
  temp:string;
begin
  for index:=suiListBox2.Items.Count-1 downto 0 do
    if suiListBox2.Selected[index] then
      begin
        temp:=suiListBox2.Items.Strings[index]+'@'+temp;
        suiListBox2.Items.Delete(index);
      end;
  if temp<>'' then
    begin
      loginform.ExecuteSQL('select count(*)+1 from roomselect');
      index:=loginform.dsQuery.Fields[0].AsInteger;
      LoginForm.dsQuery.Close;
      while Pos('@',temp)>0 do
        begin
          roomnum:=Copy(temp,1,Pos('@',temp)-1);
          roomtype:=Copy(roomnum,1,Pos(':',roomnum)-1);
          Delete(roomnum,1,Pos(':',roomnum));
          loginform.ExecuteSQL('select * from roomtype where type_mc='''+roomtype+'''');
          roomprice:=loginform.dsQuery.fieldbyname('type_csdj').AsString;
          roomhourprice:=loginform.dsQuery.fieldbyname('type_mp').AsString;
          roomyajin:=loginform.dsQuery.fieldbyname('type_yj').AsString;
          LoginForm.dsQuery.Close;
          suiEdit5.Text:=suiEdit5.Text+roomnum+';';
          if suiCheckBox1.Checked then
            loginform.ExecuteSQL('insert into roomselect '+
                                 'values('''+inttostr(index)+''','''+roomtype+''','''+roomnum+
                                         ''','''+formatfloat('¥0.00',strtofloat(roomhourprice))+
                                         ''','''+suiedit12.Text+
                                         ''','''+formatfloat('¥0.00',strtofloat(roomhourprice))+
                                         ''','''+formatfloat('¥0.00',strtofloat(roomyajin))+''')')
          else
            loginform.ExecuteSQL('insert into roomselect '+
                                 'values('''+inttostr(index)+''','''+roomtype+''','''+roomnum+
                                         ''','''+formatfloat('¥0.00',strtofloat(roomprice))+
                                         ''','''+suiedit12.Text+
                                         ''','''+formatfloat('¥0.00',strtofloat(roomprice))+
                                         ''','''+formatfloat('¥0.00',strtofloat(roomyajin))+''')');
          Delete(temp,1,Pos('@',temp));
          inc(index);
        end;
      loginform.ExecuteSQL('select sum(yajin) from roomselect');
      suiEdit15.Text:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat);
      LoginForm.dsQuery.Close;
      ClientDataSet1.Close;
      ClientDataSet1.Open;
    end;
end;

procedure TSKKDForm.btn4Click(Sender: TObject);
var
  id,roomtype,roomnum:string;
  temp:string;
  index:Integer;
begin
  id:=ClientDataSet1.fieldbyname('id').AsString;
  roomtype:=ClientDataSet1.fieldbyname('roomtype').AsString;
  roomnum:=ClientDataSet1.fieldbyname('roomnum').AsString;
  if (ClientDataSet1.RecordCount>1) and (id<>'1') then
    begin
      temp:=suiEdit5.Text;
      Delete(temp,Pos(roomnum,temp),6);
      suiEdit5.Text:=temp;
      LoginForm.ExecuteSQL('delete from roomselect where id='''+id+'''');
      LoginForm.ExecuteSQL('select id from roomselect where id<>''1'' order by id');
      LoginForm.dsQuery.First;
      while not LoginForm.dsQuery.Eof do
        begin
          temp:=temp+loginform.dsQuery.Fields[0].AsString+'@';
          LoginForm.dsQuery.Next;
        end;
      LoginForm.dsQuery.Close;
      index:=2;
      while Pos('@',temp)>0 do
        begin
          id:=Copy(temp,1,Pos('@',temp)-1);
          LoginForm.ExecuteSQL('update roomselect set id='''+inttostr(index)+''' where id='''+id+'''');
          Delete(temp,1,Pos('@',temp));
          Inc(index);
        end;
      suiListBox2.Items.Add(roomtype+':'+roomnum);
      suiListBox2.Sorted:=true;
    end
  else
    MessageDlg('主客房不可以执行删除操作!',mtConfirmation, [mbYes], 0);
  loginform.ExecuteSQL('select sum(yajin) from roomselect');
  suiEdit15.Text:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat);
  LoginForm.dsQuery.Close;
  ClientDataSet1.Close;
  ClientDataSet1.Open;
end;

procedure TSKKDForm.btn1Click(Sender: TObject);
begin
  LoginForm.ExecuteSQL('insert into roompeople '+
                       'values('''+id+''','''+ClientDataSet1.fieldbyname('roomnum').AsString+
                               ''','''+suiedit7.Text+''','''+suiComboBox3.Text+
                               ''','''+suiEdit16.Text+''','''+suiComboBox4.Text+
                               ''','''+suiEdit8.Text+''','''+suiEdit9.Text+''')');
  ds3.Close;
  ds3.Open;
  ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
  ds3.Filtered:=true;
  LoginForm.ExecuteSQL('select count(*) from roompeople where id='''+id+'''');
  suiEdit1.Text:=IntToStr(LoginForm.dsQuery.Fields[0].AsInteger);
  LoginForm.dsQuery.Close;
end;

procedure TSKKDForm.suiButton3Click(Sender: TObject);
begin
  if not ((ds3.Active) and (ds3.RecordCount>0)) then
    exit;
  if (suiedit6.Text=ds3.fieldbyname('name').AsString) and (suiedit3.Text=ds3.fieldbyname('cardnum').AsString) then
    begin
      MessageDlg('主客信息不可以执行此操作!',mtConfirmation, [mbYes], 0);
      exit;
    end;
  LoginForm.ExecuteSQL('update roompeople set name='''+suiedit7.Text+''','+
                                             'sex='''+suiComboBox3.Text+''','+
                                             'phone='''+suiEdit16.Text+''','+
                                             'cardtype='''+suiComboBox4.Text+''','+
                                             'cardnum='''+suiEdit8.Text+''','+
                                             'address='''+suiEdit9.Text+''' '+
                       'where id='''+id+''' and '+
                             'room='''+ClientDataSet1.fieldbyname('roomnum').AsString+''' and '+
                             'name='''+ds3.fieldbyname('name').AsString+''' and '+
                             'cardnum='''+ds3.fieldbyname('cardnum').AsString+'''');
  ds3.Close;
  ds3.Open;
  ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
  ds3.Filtered:=true;
  LoginForm.ExecuteSQL('select count(*) from roompeople where id='''+id+'''');
  suiEdit1.Text:=IntToStr(LoginForm.dsQuery.Fields[0].AsInteger);
  LoginForm.dsQuery.Close;
end;

procedure TSKKDForm.btn2Click(Sender: TObject);
begin
  if not ((ds3.Active) and (ds3.RecordCount>0)) then
    exit;
  if (suiedit6.Text=ds3.fieldbyname('name').AsString) and (suiedit3.Text=ds3.fieldbyname('cardnum').AsString) then
    begin
      MessageDlg('主客信息不可以执行此操作!',mtConfirmation, [mbYes], 0);
      exit;
    end;
  LoginForm.ExecuteSQL('delete from roompeople '+
                       'where id='''+id+''' and '+
                             'room='''+ClientDataSet1.fieldbyname('roomnum').AsString+''' and '+
                             'name='''+ds3.fieldbyname('name').AsString+''' and '+
                             'cardnum='''+ds3.fieldbyname('cardnum').AsString+'''');
  ds3.Close;
  ds3.Open;
  ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
  ds3.Filtered:=true;
  LoginForm.ExecuteSQL('select count(*) from roompeople where id='''+id+'''');
  suiEdit1.Text:=IntToStr(LoginForm.dsQuery.Fields[0].AsInteger);
  LoginForm.dsQuery.Close;
end;

procedure TSKKDForm.ds3AfterScroll(DataSet: TDataSet);
begin
  suiedit7.Text:=ds3.fieldbyname('name').AsString;
  suiComboBox3.Text:=ds3.fieldbyname('sex').AsString;
  suiEdit16.Text:=ds3.fieldbyname('phone').AsString;
  suiComboBox4.Text:=ds3.fieldbyname('cardtype').AsString;
  suiEdit8.Text:=ds3.fieldbyname('cardnum').AsString;
  suiEdit9.Text:=ds3.fieldbyname('address').AsString;
end;

procedure TSKKDForm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 theN
    DBGrid1.Canvas.Brush.Color:=clSilver
  else
    DBGrid1.Canvas.Brush.Color:=clYellow;
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure TSKKDForm.dbgrd1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if dbgrd1.DataSource.DataSet.RecNo mod 2 = 0 theN
    dbgrd1.Canvas.Brush.Color:=clSilver
  else
    dbgrd1.Canvas.Brush.Color:=clYellow;
  dbgrd1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure TSKKDForm.N1Click(Sender: TObject);
begin
  ds3.Close;
  ds3.Open;
  ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
  ds3.Filtered:=true;
end;

procedure TSKKDForm.N2Click(Sender: TObject);
begin
  ds3.Close;
  ds3.Open;
  ds3.Filter:='id='''+id+'''';
  ds3.Filtered:=true;
end;

procedure TSKKDForm.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
  ds3.Close;
  ds3.Open;
  ds3.Filter:='id='''+id+''' and room='''+ClientDataSet1.fieldbyname('roomnum').AsString+'''';
  ds3.Filtered:=true;
end;

end.

⌨️ 快捷键说明

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