📄 mainunit.pas
字号:
if (state='散客') or (state='团体') or (state='包房') or (state='钟点')then
begin
suiPanel1.Caption:='【'+state+'】当前房间'+lv1.Selected.Caption+' 消费清单如下';
loginform.ExecuteSQL('select guest from house where id='''+id+'''');
guestid:=LoginForm.dsQuery.Fields[0].AsString;
LoginForm.dsQuery.Close;
loginform.ExecuteSQL('select * from guest where id='+guestid);
Label25.Caption:=LoginForm.dsQuery.fieldbyname('name').AsString+
'【'+LoginForm.dsQuery.fieldbyname('sex').AsString+'】';
LoginForm.dsQuery.Close;
loginform.ExecuteSQL('select * from house where id='''+id+''' and room='''+lv1.Selected.Caption+'''');
Label26.Caption:=FormatFloat('¥0.00',LoginForm.dsQuery.fieldbyname('price').AsFloat);
Label27.Caption:=FormatFloat('¥0.00',LoginForm.dsQuery.fieldbyname('factprice').AsFloat);
factprice:=FormatFloat('¥0.00',LoginForm.dsQuery.fieldbyname('factprice').AsFloat);
entertime:=LoginForm.dsQuery.fieldbyname('entertime').AsDateTime;
if LoginForm.dsQuery.fieldbyname('room').AsString=lv1.Selected.Caption then
Label32.Caption:=FormatFloat('¥0.00',LoginForm.dsQuery.fieldbyname('deposit').AsFloat)
else
Label32.Caption:='¥0.00';
LoginForm.dsQuery.Close;
Label28.Caption:=floor;
temp:=DateTimeToStr(entertime);
Label29.Caption:=Copy(temp,1,10);
Delete(temp,1,11);
Label30.Caption:=temp;
minute:=MinutesBetween(now,entertime);
Day:=Minute div 1440;
minute:=minute mod 1440;
hour:=minute div 60;
minute:=minute mod 60;
Label31.Caption:=IntToStr(day)+'天'+inttostr(hour)+'小时'+inttostr(minute)+'分';
if (state='钟点') or (self.Label26.Caption=hourprice) then
begin
if minute>=30 then
temp:=IntToStr(day*24+hour+1)
else
temp:=IntToStr(day*24+hour)+'.5';
end
else
begin
if hour>=12 then
temp:=IntToStr(day+1)
else
temp:=IntToStr(day)+'.5';
end;
Delete(factprice,1,2);
loginform.ExecuteSQL('select max(Lbxf_xfBegin) from consume '+
'where Lbxf_xfbh='''+id+''' and Lbxf_sph='''+lv1.Selected.Caption+''' 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='''+lv1.Selected.Caption+''' and '+
'Lbxf_xfBegin='''+time+''' and Lbxf_xfxm=''房间费''');
LoginForm.ExecuteSQL('select sum(Lbxf_xfje) from consume '+
'where Lbxf_xfbh='''+id+''' and Lbxf_sph='''+lv1.Selected.Caption+'''');
Label33.Caption:=FormatFloat('¥0.00',LoginForm.dsQuery.Fields[0].AsFloat);
LoginForm.dsQuery.Close;
end
else
begin
suiPanel1.Caption:='房间【'+lv1.Selected.Caption+'】正处于'+'【'+state+'】状态';
Label26.Caption:=FormatFloat('¥0.00',strtofloat(price));
Label27.Caption:=FormatFloat('¥0.00',strtofloat(price));
Label28.Caption:=floor;
end;
lv1.PopupMenu:=pm2;
ds2.Close;
ds2.CommandText:='select * from consume';
ds2.Open;
ds2.Filter:='Lbxf_xfbh='''+id+''' and Lbxf_sph='''+lv1.Selected.Caption+'''';
ds2.Filtered:=true;
end
else
lv1.PopupMenu:=pm1;
end;
procedure TMainForm.btn1Click(Sender: TObject);
var
num,state,vtype:string;
count:integer;
begin
if (lv1.Selected<>nil) and (lv1.Selected.Index>=0) then
num:=lv1.Selected.Caption
else
begin
num:= InputBox('请输入房间号', '房间号', '');
if num='' then
exit;
loginform.ExecuteSQL('select count(*) from room where room_num='''+num+'''');
count:=loginform.dsQuery.Fields[0].AsInteger;
loginform.dsQuery.Close;
if count<>1 then
begin
MessageDlg('没有发现此房间,请确认输入是否正确!',mtConfirmation, [mbYes], 0);
exit;
end;
end;
roomnum:=num;
loginform.ExecuteSQL('select * from room where room_num='''+roomnum+'''');
vtype:=loginform.dsQuery.fieldbyname('room_type').AsString;
state:=loginform.dsQuery.fieldbyname('room_state').AsString;
roomfloor:=loginform.dsQuery.fieldbyname('room_floor').AsString;
loginform.dsQuery.Close;
if state='可供' then
begin
loginform.ExecuteSQL('select * from roomtype where type_xh='''+vtype+'''');
roomtype:=loginform.dsQuery.fieldbyname('type_mc').AsString;
roomprice:=loginform.dsQuery.fieldbyname('type_csdj').AsString;
roomhour:=loginform.dsQuery.fieldbyname('type_zd').AsString;
roomhourprice:=loginform.dsQuery.fieldbyname('type_mp').AsString;
roomdeposit:=loginform.dsQuery.fieldbyname('type_yj').AsString;
loginform.dsQuery.Close;
end
else
begin
MessageDlg('房间【'+roomnum+'】正处于【'+state+'】状态,不可以执行开单操作!',mtConfirmation, [mbYes], 0);
exit;
end;
application.CreateForm(TSKKDForm,SKKDForm);
SKKDForm.Show;
Enabled:=False;
end;
procedure TMainform.TotalRoomState;
var
temp:double;
begin
loginform.ExecuteSQL('select count(*) from room');
Label17.Caption:=loginform.dsQuery.Fields[0].AsString;
loginform.dsQuery.Close;
loginform.ExecuteSQL('select count(*) from room where room_state=''可供''');
Label18.Caption:=loginform.dsQuery.Fields[0].AsString;
loginform.dsQuery.Close;
loginform.ExecuteSQL('select count(*) from room '+
'where room_state=''散客'' or room_state=''团体'' or '+
'room_state=''包房'' or room_state=''钟点''');
Label19.Caption:=loginform.dsQuery.Fields[0].AsString;
loginform.dsQuery.Close;
loginform.ExecuteSQL('select count(*) from room where room_state=''预订''');
Label20.Caption:=loginform.dsQuery.Fields[0].AsString;
loginform.dsQuery.Close;
loginform.ExecuteSQL('select count(*) from room where room_state=''清理''');
Label21.Caption:=loginform.dsQuery.Fields[0].AsString;
loginform.dsQuery.Close;
loginform.ExecuteSQL('select count(*) from room where room_state=''停用''');
Label22.Caption:=loginform.dsQuery.Fields[0].AsString;
loginform.dsQuery.Close;
temp:=strtoint(Label19.Caption)/strtoint(Label17.Caption)*100;
Label24.Caption:=FormatFloat('0.00',temp)+'%';
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
RefrushRoomState(0);
end;
procedure TMainForm.N15Click(Sender: TObject);
begin
RefrushRoomState(1);
end;
procedure TMainForm.N16Click(Sender: TObject);
begin
RefrushRoomState(2);
end;
procedure TMainForm.N17Click(Sender: TObject);
begin
RefrushRoomState(3);
end;
procedure TMainForm.N18Click(Sender: TObject);
begin
RefrushRoomState(4);
end;
procedure TMainForm.N19Click(Sender: TObject);
begin
RefrushRoomState(5);
end;
procedure TMainForm.N21Click(Sender: TObject);
begin
RefrushRoomState(6);
end;
procedure TMainForm.N22Click(Sender: TObject);
begin
RefrushRoomState(7);
end;
procedure TMainForm.N24Click(Sender: TObject);
begin
RefrushRoomState(8);
end;
procedure TMainForm.N25Click(Sender: TObject);
begin
RefrushRoomState(9);
end;
procedure TMainForm.N26Click(Sender: TObject);
begin
RefrushRoomState(10);
end;
procedure TMainForm.N28Click(Sender: TObject);
begin
RefrushRoomState(0);
end;
procedure TMainForm.btn11Click(Sender: TObject);
begin
application.CreateForm(TSysSetForm,SysSetForm);
SysSetForm.Show;
Enabled:=False;
end;
procedure TMainForm.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 TMainForm.A2Click(Sender: TObject);
begin
application.CreateForm(TAbortForm,AbortForm);
AbortForm.Show;
Enabled:=False;
end;
procedure TMainForm.R2Click(Sender: TObject);
var
result:OleVariant;
begin
LoginForm.SocketConnection1.AppServer.DBBackup(result);
MessageDlg(string(result) ,mtConfirmation , [mbYes], 0);
end;
procedure TMainForm.R1Click(Sender: TObject);
var
result:OleVariant;
begin
LoginForm.SocketConnection1.AppServer.DBRecovery(result);
MessageDlg(string(result) ,mtConfirmation , [mbYes], 0);
end;
procedure TMainForm.Z3Click(Sender: TObject);
begin
application.CreateForm(TLogForm,LogForm);
LogForm.Show;
Enabled:=False;
end;
procedure TMainForm.N11Click(Sender: TObject);
begin
application.CreateForm(TPasswordForm,PasswordForm);
PasswordForm.Show;
Enabled:=False;
end;
procedure TMainForm.O1Click(Sender: TObject);
begin
LoginForm.Visible:=True;
self.Enabled:=False;
end;
procedure TMainForm.btn2Click(Sender: TObject);
var
num,state,vtype:string;
count:integer;
begin
if (lv1.Selected<>nil) and (lv1.Selected.Index>=0) then
num:=lv1.Selected.Caption
else
begin
num:= InputBox('请输入房间号', '房间号', '');
if num='' then
exit;
loginform.ExecuteSQL('select count(*) from room where room_num='''+num+'''');
count:=loginform.dsQuery.Fields[0].AsInteger;
loginform.dsQuery.Close;
if count<>1 then
begin
MessageDlg('没有发现此房间,请确认输入是否正确!',mtConfirmation, [mbYes], 0);
exit;
end;
end;
roomnum:=num;
loginform.ExecuteSQL('select * from room where room_num='''+roomnum+'''');
vtype:=loginform.dsQuery.fieldbyname('room_type').AsString;
state:=loginform.dsQuery.fieldbyname('room_state').AsString;
roomfloor:=loginform.dsQuery.fieldbyname('room_floor').AsString;
loginform.dsQuery.Close;
if state='可供' then
begin
loginform.ExecuteSQL('select * from roomtype where type_xh='''+vtype+'''');
roomtype:=loginform.dsQuery.fieldbyname('type_mc').AsString;
roomprice:=loginform.dsQuery.fieldbyname('type_csdj').AsString;
roomhour:=loginform.dsQuery.fieldbyname('type_zd').AsString;
roomhourprice:=loginform.dsQuery.fieldbyname('type_mp').AsString;
roomdeposit:=loginform.dsQuery.fieldbyname('type_yj').AsString;
loginform.dsQuery.Close;
end
else
begin
MessageDlg('房间【'+roomnum+'】正处于【'+state+'】状态,不可以执行开单操作!',mtConfirmation, [mbYes], 0);
exit;
end;
application.CreateForm(TTTKDForm,TTKDForm);
TTKDForm.Show;
Enabled:=False;
end;
procedure TMainForm.Z1Click(Sender: TObject);
var
state:string;
count:integer;
begin
if (lv1.Selected<>nil) and (lv1.Selected.Index>=0) then
roomnum:=lv1.Selected.Caption
else
begin
roomnum:= InputBox('请输入房间号', '房间号', '');
if roomnum='' then
exit;
loginform.ExecuteSQL('select count(*) from room where room_num='''+roomnum+'''');
count:=loginform.dsQuery.Fields[0].AsInteger;
loginform.dsQuery.Close;
if count<>1 then
begin
MessageDlg('没有发现此房间,请确认输入是否正确!',mtConfirmation, [mbYes], 0);
exit;
end;
end;
loginform.ExecuteSQL('select * from room where room_num='''+roomnum+'''');
state:=loginform.dsQuery.fieldbyname('room_state').AsString;
loginform.dsQuery.Close;
if (state='散客') or (state='团体') or (state='包房') or (state='钟点')then
begin
application.CreateForm(TPayForm,PayForm);
PayForm.Show;
Enabled:=False;
end
else
MessageDlg('不能对处于非占用状态的房间进行此操作!',mtConfirmation, [mbYes], 0);
end;
procedure TMainForm.N5Click(Sender: TObject);
var
state:string;
count:integer;
vtype:string;
begin
if (lv1.Selected<>nil) and (lv1.Selected.Index>=0) then
roomnum:=lv1.Selected.Caption
else
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -