📄 c_nbjd.pas
字号:
ShowModal;
end;
finally
NbjdForm.tblKrzd.Close;
NbjdForm.Free;
end;
end;
//历史客人信息载入
procedure TNbjdForm.LoadKrxx(const AKrxm: string);
var
s : string;
begin
with HotelData.qryUserData do
begin
s := 'select * from KRXXDA where D_KRXM="'+AKrxm+'"';
SQL.Clear;
SQL.Add(s);
Open;
if IsEmpty then
begin
Close;
Exit;
end;
if Confirm('是否自动调入该客人在客史档案中的信息?') then
begin
//内宾
Last;
tblKrxxD_XB.Value := FieldByName('D_XB').AsString;
tblKrxxD_MZBH.Value := FieldByName('D_MZBH').AsString;
tblKrxxD_DQBH.Value := FieldByName('D_DQBH').AsString;
tblKrxxD_ZJBH.Value := FieldByName('D_ZJBH').AsString;
tblKrxxD_ZJHM.Value := FieldByName('D_ZJHM').AsString;
tblKrxxD_CSNY.Value := FieldByName('D_CSNY').AsDateTime;
tblKrxxD_ZY.Value := FieldByName('D_ZY').AsString;
tblKrxxD_JTDZ.Value := FieldByName('D_JTDZ').AsString;
tblKrxxD_DWMC.Value := FieldByName('D_DWMC').AsString;
tblKrxxD_HCL.Value := FieldByName('D_HCL').AsString;
tblKrxxD_HCQ.Value := FieldByName('D_HCQ').AsString;
//外宾
tblKrxxD_YWM.Value := FieldByName('D_YWM').AsString;
tblKrxxD_YWX.Value := FieldByName('D_YWX').AsString;
tblKrxxD_GBBH.Value := FieldByName('D_GBBH').AsString;
tblKrxxD_QZBH.Value := FieldByName('D_QZBH').AsString;
tblKrxxD_QZYXQ.Value:= FieldByName('D_QZYXQ').AsDateTime;
end;
Close;
end;
end;
//将数据库中的内容添加到下拉框中
procedure TNbjdForm.ShowJdxx;
begin
HotelData.ListDbDm(dbcCzyxm,'YGDA','D_YGXM');
HotelData.ListDbDm(dbcJzyxm,'YGDA','D_YGXM');
HotelData.ListDbDm(dbcXykbh,'XYK','D_XYKMC');
HotelData.ListDbDm(dbcKhbh,'KHDA','D_KHMC');
HotelData.ListDbDm(dbcMz,'MZDM','D_MZMC');
HotelData.ListDbDm(dbcDqbh,'DQDM','D_DQMC');
HotelData.ListDbDm(dbcZjlx,'ZJDM','D_ZJMC');
end;
//判断身份证号码的有效性
function TNbjdForm.ValidSfz(const AZjhm: string): Boolean;
begin
Result := False;
//判断15位身份证号码
if Length(AZjhm)=15 then
begin
try
tblKrxxD_CSNY.Value :=
EnCodeDate(StrToInt('19'+Copy(AZjhm,7,2)),
StrToInt(Copy(AZjhm,9,2)),
StrToInt(Copy(AZjhm,11,2)));
if StrToInt(Copy(AZjhm,15,1)) mod 2 = 0 then
tblKrxxD_XB.Value := '女'
else
tblKrxxD_XB.Value := '男';
Result := True;
except
raise Exception.Create('非法身份证号码!');
end;
end;
//判断18位身份证号码
if Length(AZjhm)=18 then
begin
try
tblKrxxD_CSNY.Value :=
EnCodeDate(StrToInt(Copy(AZjhm,7,4)),
StrToInt(Copy(AZjhm,11,2)),
StrToInt(Copy(AZjhm,13,2)));
if StrToInt(Copy(AZjhm,17,1)) mod 2 = 0 then
tblKrxxD_XB.Value := '女'
else
tblKrxxD_XB.Value := '男';
Result := True;
except
raise Exception.Create('非法身份证号码!');
end;
end;
end;
//有半全价
procedure TNbjdForm.AddZd;
begin
try
try
tblZd.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
tblZd.Insert;
tblZdD_ZDBH.Value := FZdbh;
tblZdD_KRBH.Value := FKrbh;
tblZdD_YJBH.Value := FYjbh;
tblZdD_ZDLB.Value := ZDLB_YK;
tblZdD_HH.Value := FItemNo;
tblZdD_JZBZ.Value := JZ_NO;
tblZdD_JSBZ.Value := JS_NO;
tblZdD_KFBH.Value := tblKrzdD_KFBH.Value;
//edit by ls.2003.01.11
tblZdD_SJFJ.Value := 0;
//tblZdD_SJFJ.Value := tblKrzdD_SJFJ.Value;
tblZdD_XMBH.Value := XMBH_FJ;
tblZdD_XFDJ.Value := tblKfztD_JJFJ.Value;
tblZdD_XFSL.Value := 1;
tblZdD_XFJE.Value := tblZdD_XFSL.Value*tblZdD_XFDJ.Value;
tblZdD_XFRQ.Value := tblKrzdD_XFRQ.Value;
tblZdD_XFSJ.Value := tblKrzdD_XFSJ.Value;
tblZdD_CZYXM.Value:= FCzyxm;
tblZdD_JZYXM.Value:= FJzyxm;
tblZdD_BMBH.Value := FBmbh;
tblZd.Post;
if tblZd.FindKey([FZdbh,0]) then
begin
tblZd.Edit;
tblZdD_XFJE.Value := HotelData.SumJe('select sum(D_XFJE) from KRZD'
+' where (D_ZDBH="'
+FZdbh+'")and(D_HH<>0)');
tblZd.Post;
end;
finally
tblZd.Close;
end;
end;
//添加客人帐单总单 行号=0
procedure TNbjdForm.UpdateKrzd;
begin
FZdbh := HotelData.GetBh('D_ZDBH',PREV_ZDBH);
FKrbh := HotelData.GetBh('D_KRBH',PREV_KRBH);
FYjbh := HotelData.GetBh('D_YJBH',PREV_YJBH);
tblKrzdD_ZDBH.Value := FZdbh;
tblKrzdD_KRBH.Value := FKrbh;
tblKrzdD_YJBH.Value := FYjbh;
tblKrzdD_HH.Value := 0;
tblKrzdD_ZDLB.Value := ZDLB_YK;
tblKrzdD_XFRQ.Value := tblKrxxD_DDRQ.Value;
tblKrzdD_XFSJ.Value := tblKrxxD_DDSJ.Value;
tblKrzdD_JZBZ.Value := JZ_NO;
tblKrzdD_JSBZ.Value := JS_NO;
tblKrzdD_BZ.Value := FBmbh;
tblKrzdD_BZ.Value := ZDBZ_SK+' '+tblKrzdD_KFBH.Value+' '+tblKrxxD_KRXM.Value;
end;
//更新客人信息的客人编号
procedure TNbjdForm.UpdateKrxx;
begin
tblKrxx.Edit;
tblKrxxD_KRBH.Value := FKrbh;
tblKrxx.Post;
end;
//添加客人押金
procedure TNbjdForm.UpdateKryj;
begin
tblKryj.Edit;
tblKryjD_YJBH.Value := FYjbh;
tblKryjD_HH.Value := 0;
tblKryjD_YFRQ.Value := tblKrxxD_DDRQ.Value;
tblKryjD_YFSJ.Value := tblKrxxD_DDSJ.Value;
tblKryjD_BZ.Value := YJBZ_YJ;
tblKryj.Post;
end;
//更新客房状态库
procedure TNbjdForm.UpdateKfzt;
begin
if tblKfzt.FindKey([tblKrzdD_KFBH.Value]) then
begin
tblKfzt.Edit;
FBqj := CheckDdsj(tblKrxxD_DDSJ.Value);
case FBqj of
BQJ_ZC:
tblKfztD_KFBZ.Value := KFBZ_DT;
BQJ_BJ:
begin
tblKfztD_KFBZ.Value := KFBZ_FT;
tblKfztD_BJS.Value := tblKfztD_BJS.Value + 1;
//20020627 edit by ls. 改为求和
tblKfztD_JJFJ.Value := tblKfztD_JJFJ.Value+tblKrzdD_SJFJ.Value/2;
end;
BQJ_QJ:
begin
tblKfztD_KFBZ.Value := KFBZ_FT;
tblKfztD_QJS.Value := tblKfztD_QJS.Value + 1;
//20020627 edit by ls. 改为求和
tblKfztD_JJFJ.Value := tblKfztD_JJFJ.Value+tblKrzdD_SJFJ.Value;
end;
end;
tblKfztD_ZDBH.Value := FZdbh;
tblKfztD_KRBH.Value := FKrbh;
tblKfztD_YJBH.Value := FYjbh;
tblKfztD_SJFJ.Value := tblKrzdD_SJFJ.Value;
tblKfztD_KRSL.Value := tblKfztD_KRSL.Value + 1;
tblKfztD_DHKT.Value := 'F';
tblKfztD_KFZT.Value := KFZT_BF;
tblKfztD_KRXM.Value := tblKrxxD_KRXM.Value;
tblKfzt.Post;
//更新半全价库
if FBqj<>BQJ_ZC then
HotelData.UpdateBqj(tblKfztD_KFBH.Value,FBqj,tblKfztD_SJFJ.Value,tblKfztD_JJFJ.Value)
else
HotelData.UpdateBqj(tblKfztD_KFBH.Value,FBqj,tblKfztD_SJFJ.Value,0);
end;
end;
procedure TNbjdForm.tblKrzdBeforeOpen(DataSet: TDataSet);
begin
inherited;
tblKfzt.Open;
tblKrxx.Open;
tblKryj.Open;
end;
procedure TNbjdForm.tblKrzdBeforeClose(DataSet: TDataSet);
begin
inherited;
tblKfzt.Close;
tblKrxx.Close;
tblKryj.Close;
end;
procedure TNbjdForm.tblKrzdNewRecord(DataSet: TDataSet);
begin
inherited;
FItemNo := 1;
tblKrzdD_CZYXM.Value := DQCZY.CzyXm;
tblKrzdD_JZYXM.Value := DQJZY.CzyXm;
tblKrxx.Insert;
tblKryj.Insert;
end;
procedure TNbjdForm.tblKrxxNewRecord(DataSet: TDataSet);
var
ARecInfo: TRecInfo;
begin
inherited;
tblKrxxD_KRLX.Value := KRLX_NB;
tblKrxxD_DDRQ.Value := Date;
tblKrxxD_DDSJ.Value := Time;
tblKrxxD_NZTS.Value := 1;
tblKrxxD_XB.Value := XB_MAN;
//-------20020627 edit by ls.获取默认第一个记录
ARecInfo := HotelData.GetFirstRec('MZDM','D_MZBH','D_MZMC');
tblKrxxD_MZBH.Value := ARecInfo.ABh;
lblMz.Caption := ARecInfo.AMc;
ARecInfo := HotelData.GetFirstRec('DQDM','D_DQBH','D_DQMC');
tblKrxxD_DQBH.Value := ARecInfo.ABh;
lblDqmc.Caption := ARecInfo.AMc;
ARecInfo := HotelData.GetFirstRec('ZJDM','D_ZJBH','D_ZJMC');
tblKrxxD_ZJBH.Value := ARecInfo.ABh;
lblZjmc.Caption := ARecInfo.AMc;
//-----------------------------------------------
tblKrxxD_TLSY.Value := '商务';
end;
//付款方式默认为人民币
procedure TNbjdForm.tblKryjNewRecord(DataSet: TDataSet);
begin
inherited;
tblKryjD_FKFS.Value := FKFS_RMB;
end;
procedure TNbjdForm.btnCancClick(Sender: TObject);
begin
inherited;
tblKrzd.Cancel;
end;
procedure TNbjdForm.tblKrzdAfterCancel(DataSet: TDataSet);
begin
inherited;
tblKrzd.CancelUpdates;
tblKrxx.CancelUpdates;
tblKryj.CancelUpdates;
tblKfzt.CancelUpdates;
end;
//添加信息导出库
procedure TNbjdForm.AddXxdc;
begin
with HotelData.tblXxdc do
begin
try
Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
Append;
FieldByName('D_KRBH').AsString := tblKrxxD_KRBH.Value;
FieldByName('D_KFBH').AsString := tblKrzdD_KFBH.Value;
FieldByName('D_DDRQ').AsString := FormatDateTime('yyyymmdd',tblKrxxD_DDRQ.AsDateTime);
FieldByName('D_KRXM').AsString := tblKrxxD_KRXM.Value;
FieldByName('D_XB').AsString := tblKrxxD_XB.Value;
FieldByName('D_CSNY').AsString := FormatDateTime('yyyymmdd',tblKrxxD_CSNY.AsDateTime);
FieldByName('D_MZ').AsString := HotelData.FindMc('MZDM','D_MZBH','D_MZMC',tblKrxxD_MZBH.Value);
FieldByName('D_JG').AsString := HotelData.FindMc('DQDM','D_DQBH','D_DQMC',tblKrxxD_DQBH.Value);
FieldByName('D_GZDW').AsString := tblKrxxD_DWMC.Value;
FieldByName('D_ZY').AsString := tblKrxxD_ZY.Value;
FieldByName('D_JTDZ').AsString := tblKrxxD_JTDZ.Value;
FieldByName('D_ZJLX').AsString := HotelData.FindMc('ZJDM','D_ZJBH','D_ZJMC',tblKrxxD_ZJBH.Value);
FieldByName('D_ZJHM').AsString := tblKrxxD_ZJHM.Value;
Post;
Close;
end;
end;
//确认
procedure TNbjdForm.btnOKClick(Sender: TObject);
begin
inherited;
//获得部门编号
FBmbh := HotelData.FindBh('YGDA','D_BMBH','D_YGBH',CZY.CzyBh);
//客人帐单存盘
tblKrzd.Post;
//事务启动
HotelData.DatabaseUser.StartTransaction;
try
tblKrxx.ApplyUpdates;
tblKryj.ApplyUpdates;
tblKrzd.ApplyUpdates;
tblKfzt.ApplyUpdates;
//如果有半全价,添加到帐单中
if FBqj<>BQJ_ZC then
AddZd;
//添加员工开房库
HotelData.YgkfAppend(DQCZY.CzyXm,tblKrzdD_KFBH.Value,tblKrxxD_KRXM.Value,tblKRZDD_SJFJ.Value,tblKrxxD_DDRQ.Value,tblKrxxD_DDSJ.Value);
HotelData.YgkfAppend(DQJZY.CzyXm,tblKrzdD_KFBH.Value,tblKrxxD_KRXM.Value,tblKRZDD_SJFJ.Value,tblKrxxD_DDRQ.Value,tblKrxxD_DDSJ.Value);
//添加到信息导出库
AddXxdc;
//事务提交
HotelData.DatabaseUser.Commit;
except
//事务回滚
HotelData.DatabaseUser.Rollback;
raise;
end;
//清除缓存
tblKrxx.CommitUpdates;
tblKryj.CommitUpdates;
tblKrzd.CommitUpdates;
tblKfzt.CommitUpdates;
if Confirm('继续录入新客人吗?') then
begin
tblKrzd.Insert;
ShowJdxx;
dbeKfbh.SetFocus;
end
else
Close;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -