unitroomcheck.pas

来自「自己做过的工程」· PAS 代码 · 共 1,358 行 · 第 1/4 页

PAS
1,358
字号
begin
     if    ed_oldcustomername.Text='' then
           begin
                showmessage('你输入的要查询的人的姓名为空,请重新输入!');
               exit;
           end;
      DMhotel.SetCustomerView(ed_oldcustomername.Text,totalfee);
      ed_olddebttotalfee.Text:=floattostr(totalfee);
      Button6.Enabled:=true;
      cb_customerjudge.Enabled:=true;
       cb_customerjudge.Checked:=false;
      but_customerprint.Enabled:=false;
      
end;

procedure Tformroomcheck.Button6Click(Sender: TObject);
//var
//totalfee:extended;
begin
  if MessageDlg('您确定要进行'+ed_oldcustomername.text+'的结帐操作吗吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
         exit;
        //   DMHotel.ADODataSet_customerdebt.Open;
        //    DMhotel.SetCustomerView(ed_oldcustomername.Text,totalfee);

             DMHotel.ADODataSet_customerdebt.First;
            // showmessage('aa');
//这个地方收银实际上就是要将room_debt 中的checkornot字段的值改变 ’欠帐 ‘该为’已还‘


  while not  DMHotel.ADODataSet_customerdebt.Eof  do
    begin
     if DMHotel.ADODataSet_customerdebt.FieldByName('customername').Value<>ed_oldusername.Text then
        begin
            DMHotel.ADODataSet_customerdebt.Edit;
            DMHotel.ADODataSet_customerdebt.FieldByName('checkornot').AsString:='帐务已还清';
            DMHotel.ADODataSet_customerdebt.FieldValues['checktime']:=date+time;
            DMHotel.ADODataSet_customerdebt.Post;
            // showmessage('bb');
        end;
      DMHotel.ADODataSet_customerdebt.Next;
    end;
 showmessage(ed_oldusername.Text+'房客的帐单已经还清,记录已写入数据库中!');
   DMHotel.ADODataSet_customerdebt.Open;
   DMHotel.ADODataSet_customerdebt.Requery;
ed_oldcustomername.Clear;
ed_olddebttotalfee.Clear;
 Button6.Enabled:=false;

 //刷新数据库
 
  DMHotel.ADODataSet_customerdebt.Close;
  DMHotel.ADODataSet_customerdebt.Prepared:=false;
  DMHotel.ADODataSet_customerdebt.CommandText:='select * from customer_debt where '+
  ' checkornot=:yesornot' ;
  DMHotel.ADODataSet_customerdebt.Parameters.ParamByName('yesornot').Value:='欠帐' ;
  DMHotel.ADODataSet_customerdebt.Prepared:=true;
  DMHotel.ADODataSet_customerdebt.Open;
  end;

procedure Tformroomcheck.but_printClick(Sender: TObject);
var
codeid:integer;
begin
{DMHotel.ADODataSet_itemnumber.Open;
DMHotel.ADODataSet_itemnumber.Locate('itemtype','roomcheckmanagecode',[]);
codeid:=DMHotel.ADODataSet_itemnumber.FieldByName(itemno).AsString;    }
{DMHotel.ADODataSet_roomfee.Open;

DMHotel.ADODataSet_roomfee.Requery;
DMHotel.ADODataSet_roomfee.Last;
codeid:=DMHotel.ADODataSet_roomfee.FieldByName('code').Value;
showmessage(inttostr(codeid));
showmessage('awh');
DMHotel.ADODataSet_roomfee.Locate('code',codeid,[]);}
DMHotel.ADODataSet_roomfee.Close;
DMHotel.ADODataSet_roomfee.Prepared:=false;
DMHotel.ADODataSet_roomfee.CommandText:='select * from  room_fee where code=:vcodeid';
DMHotel.ADODataSet_roomfee.Parameters.ParamByName('vcodeid').Value:=vcodeid;

DMHotel.ADODataSet_roomfee.Prepared:=true;
DMHotel.ADODataSet_roomfee.Open;
//DMHotel.ADODataSet_roomfee.First;
//DMHotel.ADODataSet_roomfee.Requery;
//DMHotel.ADODataSet_roomfee.Last;
//DMHotel.ADODataSet_roomfee.CommandText:='select  ';
//formroomrep:=Tformroomrep.Create(formroomcheck);
//DMhotel.ADODataSet_roomfee.First;
//用一个变量去做
{DMHotel.ADODataSet_roomfee.Open;
DMHotel.ADODataSet_roomfee.Locate('code',vcodeid,[]);  }

//showmessage('aa');
formroomrep.quickrep1.PreviewModal;
but_print.Enabled:=false;
end;


//房客帐单打印
procedure Tformroomcheck.but_printdebtClick(Sender: TObject);
var
oldusername:string;
//time:string;
begin
//用还帐时间时间和人的姓名进行唯一的查询
 {   oldusername:=ed_oldusername.Text;
    //time:=ed_indebttime.Text;
  DMHotel.ADODataSet_roomdebt.Close;
  DMHotel.ADODataSet_roomdebt.Prepared:=false;
 DMHotel.ADODataSet_roomdebt.CommandText:='select * from room_debt where '+
     'username=:oldusername and checkornot=:yesornot' ;
  DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('oldusername').Value:=oldusername;
  DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('yesornot').Value:='欠账';
  //在这里进行统一的结算所有的帐单
  DMHotel.ADODataSet_roomdebt.Prepared:=true;
  DMHotel.ADODataSet_roomdebt.Open;    }
   //将本身设置为无效

   but_printdebt.Enabled:=false;
  button9.Enabled:=true;
  cb_judge.Checked:=false;
  Fromroomdebtrep.QuickRep1.PreviewModal;
   but_printdebt.Enabled:=false;
   button9.Enabled:=true;
     cb_judge.Checked:=false;
end;

procedure Tformroomcheck.TabSheet2Show(Sender: TObject);
begin
//ed_indebttime.Text:=datetimetostr(date+time);
DMHotel.ADODataSet_roomdebt.Open;
DMHotel.ADODataSet_roomdebt.Requery;
//DMhotel.ADODataSet_roomdebt.Close;
//ed_time.Text:=datetimetostr(date+time);
end;

procedure Tformroomcheck.cb_judgeClick(Sender: TObject);

begin
  //让两中状态相互进行变化
  if   (but_printdebt.Enabled=false)  and   (button9.Enabled=true) then
        begin
          but_printdebt.Enabled:=true;
          button9.Enabled:=false;
          exit;
        end;
    if   (but_printdebt.Enabled=true)  and   (button9.Enabled=false) then
        begin
          but_printdebt.Enabled:=false;
          button9.Enabled:=true;
          exit;
        end;

end;

procedure Tformroomcheck.TabSheet3Show(Sender: TObject);
begin
ed_indebttime.Text:=datetimetostr(date+time);
end;

procedure Tformroomcheck.Button3Click(Sender: TObject);
begin
   if MessageDlg('您确定要重新填写吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
         exit;

ed_customername.Clear;
ed_indebttime.Text:=datetimetostr(date+time);
ed_debtkalaok.Clear;
ed_debtballroom.Clear;
ed_debtcommerce.Clear;
ed_debtsuproom.Clear;
ed_debtsupsecond.Clear;
ed_debthairdressing.Clear;
ed_debtdiscount.Text:='10';
//ed_debtemployeeid.Clear;
ed_debtremark.Clear;
ed_debttotalfee.Clear;
end;

procedure Tformroomcheck.cb_customerjudgeClick(Sender: TObject);
begin
  if   (but_customerprint.Enabled=false)  and   (button6.Enabled=true) then
        begin
          but_customerprint.Enabled:=true;
          button6.Enabled:=false;
          exit;
        end;
    if   (but_customerprint.Enabled=true)  and   (button6.Enabled=false) then
        begin
          but_customerprint.Enabled:=false;
          button6.Enabled:=true;
          exit;
        end;
end;

procedure Tformroomcheck.but_customerprintClick(Sender: TObject);
begin
Button6.Enabled:=false;
cb_customerjudge.Checked:=false;
formcustomerdebtrep.QuickRep1.PreviewModal;
end;

procedure Tformroomcheck.TabSheet4Show(Sender: TObject);
begin
DMhotel.ADODataSet_customerdebt.Open;
DMHotel.ADODataSet_customerdebt.Requery;
end;

procedure Tformroomcheck.Button12Click(Sender: TObject);
//var
//oldcustomername:string;
begin
   if MessageDlg('您确定要重新填写吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
         exit;
//oldcustomername:=ed_oldusername.Text;

ed_oldcustomername.Clear;
ed_olddebttotalfee.Clear;
   //重新显示当前的所有的帐单
  DMHotel.ADODataSet_customerdebt.Close;
  DMHotel.ADODataSet_customerdebt.Prepared:=false;
  DMHotel.ADODataSet_customerdebt.CommandText:='select * from customer_debt where '+
     ' checkornot=:yesornot';
 // DMHotel.ADODataSet_customerdebt.Parameters.ParamByName('oldcustomername').Value:=oldcustomername;
  DMHotel.ADODataSet_customerdebt.Parameters.ParamByName('yesornot').Value:='欠帐' ;
  DMHotel.ADODataSet_customerdebt.Prepared:=true;
  DMHotel.ADODataSet_customerdebt.Open;
//  DMHotel.ADODataSet_customerdebt.Requery;
end;

procedure Tformroomcheck.Button8Click(Sender: TObject);
begin
close;
end;

procedure Tformroomcheck.FormShow(Sender: TObject);
begin
ed_employeeid.Text:=username;
ed_debtemployeeid.Text:=username;
end;

procedure Tformroomcheck.but_allroomdebtClick(Sender: TObject);
//var
//oldusername:string;
begin
// oldusername:=ed_oldusername.Text;
    //time:=ed_indebttime.Text;
  DMHotel.ADODataSet_roomdebt.Close;
  DMHotel.ADODataSet_roomdebt.Prepared:=false;
 DMHotel.ADODataSet_roomdebt.CommandText:='select * from room_debt where '+
     ' checkornot=:yesornot' ;
//  DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('oldusername').Value:=oldusername;
  DMHotel.ADODataSet_roomdebt.Parameters.ParamByName('yesornot').Value:='欠账';
  //在这里进行统一的结算所有的帐单
  DMHotel.ADODataSet_roomdebt.Prepared:=true;
  DMHotel.ADODataSet_roomdebt.Open;
end;

procedure Tformroomcheck.but_allcustomerdebtClick(Sender: TObject);
begin
DMHotel.ADODataSet_customerdebt.Close;
DMhotel.ADODataSet_customerdebt.Prepared:=false;
DMHotel.ADODataSet_customerdebt.CommandText:='select * from customer_debt where'+
     ' checkornot=:yesornot';
DMhotel.ADODataSet_customerdebt.Parameters.ParamByName('yesornot').Value:='欠账';
DMHotel.ADODataSet_customerdebt.Prepared:=true;
DMHotel.ADODataSet_customerdebt.Open;
end;

procedure Tformroomcheck.but_changeroomClick(Sender: TObject);
 var
      vtest:integer;
      vroomstatus:string;
      vroomid:string;
begin

     vroomid:=ed_roomid.Text;
     if ed_roomid.Text='' then
        begin
           showmessage('你的输入的要换的房间号为空,请重新输入!');
           exit;   //exit跳出本次事件!:)
        end;


    if not  trystrtoint(ed_roomid.Text,vtest)     then
        begin
           messagebox(handle,'你输入的房间号不是个整数,请重新输入!','错误',MB_OK OR MB_ICONERROR);
           EXIT;
        end;

        DMHotel.ADODataSetroomstatus.Open;


    if  not DMHotel.ADODataSetroomstatus.Locate('roomid',ed_roomid.Text,[])then
        begin
            showmessage('房间编号'+ed_roomid.Text+'不存在!');
            exit;
        end
        else
        begin
             DMHotel.ADODataSet_roomstatus.Open;
             DMHotel.ADODataSet_roomstatus.Locate('roomid',vroomid,[]);
             vroomstatus:=DMHotel.ADODataSet_roomstatus.FieldByName('roomstatus').AsString;
             DMHotel.ADODataSet_roomstatus.Close;
             if vroomstatus='停用' then
                 begin
                      showmessage(vroomid+'房间处于停用状态,不可以进行换房!!');
                      exit;
                 end;
             if vroomstatus='预定' then
                 begin
                      showmessage(vroomid+'房间处于预定中,不可以进行换房!!');
                      exit;
                 end;
              if vroomstatus='空闲' then
                 begin
                      showmessage(vroomid+'房间处于空闲中,不可以进行换房!!');
                      exit;
                 end;
        end;
      //将目前的信息写入下一个记录之中,其中的信息也就是
      //房间的消费和房内物品的消费,其它的消费等最后结帐的
      //时候再结帐,这些信息要写到备注之中去
      //首先要将现在这个房间结帐
      if((ed_roomfee.Text='') or (ed_roomthings.Text='') or (ed_username.Text=''))    then
           showmessage('请先填写好住宿费用和房内费用信息!!!')
         else
         begin
          roomfee:=strtofloat(ed_roomfee.Text);
           roomthings:=strtofloat(ed_roomthings.Text);

           roomid:=strtoint(ed_roomid.text);
           formchangeroom.ShowModal;
          end;

end;

end.

⌨️ 快捷键说明

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