📄 ucheckin.pas
字号:
begin
with Dmo.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('update binkeInfo set cishu=cishu+1');
sql.Add('where sfz=:sfz');
parameters.ParamByName('sfz').Value:=EDsfz.Text;
execsql;
close;
sql.Clear;
sql.Add('select ruzhutime from binkeinfo where sfz=:sfz');
parameters.ParamByName('sfz').Value:=EDsfz.Text;
open;
edit;
fields.Fields[0].Value:=strTodatetime(EDtime.Text);
Post;
end;
end else//如果是新顾客则把他的信息写入
begin
with Dmo.ADOQuery1 do
begin
close;
Sql.clear;
SQl.Add('insert into binkeInfo');
Sql.Add('(SFZ,Na,sex,country,works,'
+'address,birthday,cishu,xiaofei,jibie,'
+'ruzhutime,likaitime)');
SQl.Add(' values(:SFZ,:Names,:sex,:country,'
+':works,:address,:birthday,:cishu,:xiaofei,:jibie,'
+':ruzhutime,:likaitime)');
Parameters.ParamByName('SFZ').Value:=EDsfz.Text;
Parameters.ParamByName('names').Value:=EDname.Text;
parameters.ParamByName('sex').Value:=CBoxSex.Text;
parameters.ParamByName('country').Value:=CBoxcountry.Text;
parameters.ParamByName('works').Value:=EDwork.Text;
parameters.ParamByName('address').Value:=EDaddress.Text;
parameters.ParamByName('birthday').Value:=strTodate(EDbirthday.Text);
parameters.ParamByName('cishu').Value:=1;
parameters.ParamByName('xiaofei').Value:=0.00;
parameters.ParamByName('jibie').Value:=CBoxjibie.Text;
str:=EDtime.Text; //从EDtime中取出他的年月日,去掉时间
parameters.ParamByName('ruzhutime').Value:=strTodatetime(str);
str:=EDbacktime.Text;
parameters.ParamByName('likaitime').Value:=strTodatetime(str);
prepared:=true;
//Sql.Add('commit');//提交事务
execSql;
end;
end;
//判断有无其他客人,如果有则执行写入数据库
if (EDQname.Text<>'') and (EDQsfz.text<>'') then
begin
Dmo.ADOQuery1.Close;
Dmo.ADOQuery1.SQL.Clear;
Dmo.ADOQuery1.SQL.Add('select * from binkeInfo where sfz=:sfz');
Dmo.ADOQuery1.Parameters.ParamByName('sfz').Value:=EDQsfz.text;
Dmo.ADOQuery1.Open;
//判断顾客是否来过
if Dmo.ADOQuery1.RecordCount=1 then
begin
with Dmo.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('update binkeInfo set cishu=cishu+1');
sql.Add('where sfz=:sfz');
parameters.ParamByName('sfz').Value:=EDQsfz.Text;
execsql;
close;
sql.Clear;
sql.Add('select ruzhutime from binkeinfo where sfz=:sfz');
parameters.ParamByName('sfz').Value:=EDQsfz.Text;
open;
edit;
fields.Fields[0].Value:=strTodatetime(EDQtime.Text);
Post;
end;//end of with
end else //是新顾客,把信息写入数据库
begin
with Dmo.ADOQuery1 do
begin
close;
Sql.clear;
SQl.Add('insert into binkeInfo');
Sql.Add('(SFZ,Na,sex,country,works,'
+'address,birthday,cishu,xiaofei,jibie,'
+'ruzhutime,likaitime)');
SQl.Add(' values(:SFZ,:Names,:sex,:country,'
+':works,:address,:birthday,:cishu,:xiaofei,:jibie,'
+':ruzhutime,:likaitime)');
Parameters.ParamByName('SFZ').Value:=EDQsfz.Text;
Parameters.ParamByName('names').Value:=EDQname.Text;
parameters.ParamByName('sex').Value:=CBoxQSex.Text;
parameters.ParamByName('country').Value:=CBoxQcountry.Text;
parameters.ParamByName('works').Value:=EDQwork.Text;
parameters.ParamByName('address').Value:=EDqaddress.Text;
parameters.ParamByName('birthday').Value:=strTodate(EDQbirthday.Text);
parameters.ParamByName('cishu').Value:=1;
parameters.ParamByName('xiaofei').Value:=0.00;
parameters.ParamByName('jibie').Value:='普通客人';
str:=EDtime.Text; //从EDtime中取出他的年月日,去掉时间
parameters.ParamByName('ruzhutime').Value:=strTodatetime(str);
str:=EDbacktime.Text;
parameters.ParamByName('likaitime').Value:=strTodatetime(str);
//prepared:=true;
//Sql.Add('commit');//提交事务
execSql;
end;//and of with
end;//end of else
end;//end of if EDQname<>'' then
with DMO.ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add('insert into dengji');
SQL.Add('values(:dengjiID,:sfz,:leixing,:kaifang,:renshu,:yajin)');
Parameters.ParamByName('dengjiID').Value:=strToint(Pnumber.Caption);
Parameters.ParamByName('sfz').Value:=EDsfz.Text;
parameters.ParamByName('leixing').Value:=CBoxLeibie.Text;
parameters.ParamByName('kaifang').Value:=LCount.Tag;
parameters.ParamByName('renshu').Value:=strToint(EDcount.Text);
parameters.ParamByName('yajin').Value:=strTofloat(EDyajin.Text);
//Sql.Add('commit');//提交事务
execsql;
end;
for i:=0 to listBox1.Items.Count-1 do
begin
with Dmo.ADOQuery1 do
begin
str:=listBox1.Items.Strings[i];
str:=copy(str,1,9);
str:=trimright(str);
Close;
sql.Clear;
sql.Add('update zhuangtai set zhuangtai=''有客''');
sql.Add('where fangjian=:fangjian');
parameters.ParamByName('fangjian').Value:=str;
execsql;
end;
end;
for i:=0 to listBox1.Items.Count-1 do
begin
with Dmo.ADOQuery1 do
begin
str:=listBox1.Items.Strings[i];
str:=copy(str,1,9);
str:=trimright(str);
zh:=Pnumber.Caption;
zh:=zh+'-'+str;
xiaofei:=listbox1.Items.Strings[i];
xiaofei:=copy(xiaofei,30,6);
xiaofei:=trim(xiaofei);
xiaofei:=trimright(xiaofei);
close;
sql.Clear;
sql.Add('insert into zhanghao(zhanghaoID,dengjiID,fangjian,xiaofei,yifu,beizhu,zhuangtai)');
sql.Add('values(:zh,:dengjiID,:fangjian,:xiaofei,:yifu,:beizhu,:zhuangtai)');
parameters.ParamByName('fangjian').Value:=str;
parameters.ParamByName('xiaofei').Value:=strTofloat(xiaofei);
parameters.ParamByName('yifu').Value:=0.00;
parameters.ParamByName('beizhu').Value:='';
parameters.ParamByName('dengjiID').Value:=strToint(Pnumber.Caption);
parameters.ParamByName('zh').Value:=zh;
parameters.ParamByName('zhuangtai').Value:=1;
execsql;
end;
end;
//把信息写入消费明细表
Dmo.ADOQuery1.Close;
Dmo.ADOQuery1.SQL.Clear;
Dmo.ADOQuery1.SQL.Add('select max(xfID) from mingxi');
Dmo.ADOQuery1.Open;
if Dmo.ADOQuery1.Fields.Fields[0].DisplayText='' then
ID:='0'
else ID:=Dmo.ADOQuery1.Fields.Fields[0].DisplayText;
for i:=0 to listBox1.Items.Count-1 do
begin
ID:=intTostr(strToint(ID)+1);
with dmo.ADOQuery1 do
begin
str:=listBox1.Items.Strings[i];
str:=copy(str,1,9);
str:=trimright(str);
close;
sql.Clear;
sql.Add('insert into mingxi');
sql.Add('values(:ID,:zhanghao,:shangpin,:mingcheng,:danwei,:danjia'
+',:xiaofei,:beizhu,:Time,:ld,:fk)');
parameters.ParamByName('ID').Value:=strToint(ID);
parameters.ParamByName('zhanghao').Value:=zh;
parameters.ParamByName('shangpin').value:=str;
parameters.ParamByName('mingcheng').Value:=str+'房费';
parameters.ParamByName('danwei').Value:='间';
parameters.ParamByName('danjia').Value:=strTofloat(xiaofei);
parameters.ParamByName('xiaofei').Value:=strTofloat(xiaofei);
parameters.ParamByName('beizhu').Value:=' ';
parameters.ParamByName('time').Value:=strTodatetime(EDtime.Text);
parameters.ParamByName('ld').Value:='n';
parameters.ParamByName('fk').Value:='n';
execsql;
//CLOSE;
end;
end;
except//如果出错,回滚数据库
Dmo.ADOQuery1.Close;
Dmo.ADOQuery1.SQL.Clear;
//Dmo.ADOQuery1.SQL.Add('rollback');
//Dmo.ADOQuery1.ExecSQL;
exit;
end; //end of except
timer1.Enabled:=true;
Finfo.ShowModal;
clearInfo;
end;
procedure TFCheckIn.Timer1Timer(Sender: TObject);
begin
Finfo.Close;
Timer1.enabled:=false;
end;
//清空列表
procedure TFCheckIn.BTCenterClick(Sender: TObject);
begin
clearInfo;
end;
procedure TFCheckIn.EDQsfzExit(Sender: TObject);
var
NEWsfzNumber:string;
begin
NEWSFZnumber:=FindSFZ(EDQsfz.Text);
if length(NEWsfzNumber)<15 then
begin
exit;
EDQsfz.SetFocus;
end;
EDQBirthday.Text:=copy(NEWSFZnumber,7,4)+'-'+
copy(NEWSFZnumber,11,2)+'-'+copy(NEWSFZNumber,13,2); //判断生日
if (strToint(copy(NEWSFZnumber,17,1)) mod 2)=0 then //判断性别
CBoxQsex.ItemIndex:=1
else CBoxQsex.ItemIndex:=0;
EDQaddress.Text:=address;
end;
procedure TFCheckIn.EDBumenChange(Sender: TObject);
begin
if EDBumen.Text='客房' then
begin
CBoxguige.Items.Clear;
CBoxguige.Items.Add('全部');
CBoxguige.Items.Add('标准间');
CBoxguige.Items.Add('单人间');
CBoxguige.Items.Add('豪华套间');
CBoxguige.Items.Add('普通套间');
CBoxguige.ItemIndex:=0;
CBoxloucheng.Items.Clear;
CBoxloucheng.Items.Add('全部');
CBoxloucheng.Items.Add('四楼');
CBoxloucheng.Items.Add('五楼');
CBoxloucheng.Items.Add('六楼');
CBoxloucheng.ItemIndex:=0;
end
else if (EDbumen.Text='商务中心') or (EDbumen.Text='休闲娱乐') then
begin
CBoxloucheng.Items.Clear;
CBoxloucheng.Items.Add('全部');
CBoxloucheng.ItemIndex:=0;
CBoxguige.Items.Clear;
CBoxguige.Items.Add('全部');
CBoxguige.ItemIndex:=0;
end
else if EDbumen.Text='餐饮' then
begin
CBoxloucheng.Items.Clear;
CBoxloucheng.Items.Add('全部');
CBoxloucheng.Items.Add('一楼');
CBoxloucheng.Items.Add('二楼');
CBoxloucheng.ItemIndex:=0;
CBoxguige.Items.Clear;
CBoxguige.Items.Add('全部');
CBoxguige.Items.Add('10人桌');
CBoxguige.Items.Add('8人桌');
CBoxguige.Items.Add('4人桌');
CBoxguige.Items.Add('包厢');
CBoxguige.Items.Add('贵宾包厢');
CBoxguige.ItemIndex:=0;
end
else if EDbumen.Text='桑拿' then
begin
CBoxloucheng.Items.Clear;
CBoxloucheng.Items.Add('全部');
CBoxloucheng.Items.Add('一楼');
CBoxloucheng.Items.Add('二楼');
CBoxloucheng.Items.Add('三楼');
CBoxloucheng.ItemIndex:=0;
CBoxguige.Items.Clear;
CBoxguige.Items.Add('全部');
CBoxguige.Items.Add('男包厢');
CBoxguige.Items.Add('男普通');
CBoxguige.Items.Add('女普通');
CBoxguige.ItemIndex:=0;
end;
Readinfo;
DisplayInfo;
end;
procedure TFCheckIn.CBoxLouchengChange(Sender: TObject);
begin
ReadInfo;
displayInfo;
end;
procedure TFCheckIn.CBoxGuigeChange(Sender: TObject);
begin
readInfo;
displayInfo;
end;
procedure TFCheckIn.FormShow(Sender: TObject);
begin
readinfo;
displayinfo;
//listview1.Items.Item[0].Selected:=true;
end;
procedure TFCheckIn.ListView1DblClick(Sender: TObject);
var
i:integer;
info:string;
temp:string;
ID:string;
begin
try
Lcount.Tag:=Lcount.Tag+1;
settime;
i:=Listview1.Selected.Index;
info:='';
temp:=listview1.Items.Item[i].Caption;
temp:=trimright(temp);
info:=temp+' | ';
temp:=listview1.Items.Item[i].SubItems.Strings[4];
temp:=trimright(temp);
info:=info+temp+' | ';
temp:=listview1.Items.Item[i].SubItems.Strings[1];
temp:=trimright(temp);
info:=info+temp;
EDyujia.Text:=temp;//显示预设价
EDQyuse.Text:=temp;
EDshijia.Text:=temp;
EDQshiji.Text:=temp;
ListBox1.Items.Add(info);
Listview1.DeleteSelected;
ListView1.SortType:=stText;
ListView1.Refresh;
Dmo.ADOQuery1.Close;
Dmo.ADOQuery1.SQL.Clear;
Dmo.ADOQuery1.SQL.Add('select max(dengjiID) from dengji');
Dmo.ADOQuery1.Open;
if Dmo.ADOQuery1.Fields.Fields[0].DisplayText='' then
ID:='1000'
else ID:=intTostr(strtoint(Dmo.ADOQuery1.Fields.Fields[0].DisplayText)+1);
Pnumber.Caption:=ID;
LCount.Caption:=intTostr(LCount.Tag);
BTok.Enabled:=true;
BTcenter.Enabled:=true;
except
//
end;
end;
procedure TFCheckIn.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
try
EDbianhao.Text:=item.Caption;
LBbian.Caption:=item.Caption;
LBceng.Caption:=item.SubItems.Strings[3];
LBgui.Caption:=item.SubItems.Strings[4];
LBjia.Caption:=item.SubItems.Strings[1];
except
//
end;
end;
procedure TFCheckIn.SpeedButton1Click(Sender: TObject);
begin
ListView1.ViewStyle:=vsIcon;
end;
procedure TFCheckIn.SpeedButton2Click(Sender: TObject);
begin
ListView1.ViewStyle:= vsSmallIcon;
end;
procedure TFCheckIn.SpeedButton3Click(Sender: TObject);
begin
ListView1.ViewStyle:=vsReport;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -