📄 c_tdjd.pas
字号:
//打开
procedure TTdjdForm.tblKrzdBeforeOpen(DataSet: TDataSet);
begin
inherited;
tblKrxx.Open;
tblKryj.Open;
end;
//关闭
procedure TTdjdForm.tblKrzdBeforeClose(DataSet: TDataSet);
begin
inherited;
tblKrxx.Close;
tblKryj.Close;
end;
//增加新纪录
procedure TTdjdForm.tblKrzdNewRecord(DataSet: TDataSet);
begin
inherited;
FItemNo := 1;
tblKrzdD_CZYXM.Value := CZY.CzyXm;
tblKrzdD_JZYXM.Value := JZY.CzyXm;
tblKrxx.Insert;
tblKryj.Insert;
end;
//存盘前更新
procedure TTdjdForm.tblKrzdBeforePost(DataSet: TDataSet);
var
I: Integer;
AKf: TKf;
begin
inherited;
UpdateKrzd;
UpdateKrxx;
UpdateKryj;
for I:=1 to vleKf.RowCount-1 do
begin
AKf.AKfbh := vleKf.Keys[I];
AKf.ASjfj := StrToCurr(vleKf.Values[vleKf.Keys[I]]);
AKf.AJjfj := 0;
UpdateKfzt(AKf);
end;
end;
//取消
procedure TTdjdForm.tblKrzdAfterCancel(DataSet: TDataSet);
begin
inherited;
tblKrzd.CancelUpdates;
tblKrxx.CancelUpdates;
tblKryj.CancelUpdates;
end;
procedure TTdjdForm.tblKrxxNewRecord(DataSet: TDataSet);
begin
inherited;
tblKrxxD_KRLX.Value := KRLX_TD;
tblKrxxD_DDRQ.Value := Date;
tblKrxxD_DDSJ.Value := Time;
end;
procedure TTdjdForm.tblKryjNewRecord(DataSet: TDataSet);
begin
inherited;
tblKryjD_FKFS.Value := FKFS_RMB;
end;
//取消
procedure TTdjdForm.btnCancClick(Sender: TObject);
begin
inherited;
tblKrzd.Cancel;
end;
//确认
procedure TTdjdForm.btnOKClick(Sender: TObject);
var
I: Integer;
AKf: TKf;
AFjze : Currency;
s : string;
begin
inherited;
//判断是否输入了团队名称
if tblKrxxD_KRXM.Value='' then
raise Exception.Create('请输入团队名称!');
//判断是否输入了预付金额
if (tblKryjD_FKFS.Value=FKFS_RMB)and(tblKryjD_YFJE.IsNull) then
raise Exception.Create('请输入预付金额!');
//判断是否添加了客房
if vleKf.Cells[0,1]='' then
raise Exception.Create('请添加客房!');
//获得部门编号
FBmbh := HotelData.FindBh('YGDA','D_BMBH','D_YGBH',CZY.CzyBh);
//判断半全价
FBqj := CheckDdsj(tblKrxxD_DDSJ.Value);
//事务启动
HotelData.DatabaseUser.StartTransaction;
try
WaitForm := TWaitForm.Create(Application);
//添加帐单子项目
try
WaitForm.FTitle := '团队分配客房';
WaitForm.Show;
WaitForm.Update;
//存盘
tblKrzd.Post;
tblKrxx.ApplyUpdates;
tblKryj.ApplyUpdates;
tblKrzd.ApplyUpdates;
{try
tblZd.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
}
AFjze := 0;
for I:=1 to vleKf.RowCount-1 do
begin
AKf.AKfbh := vleKf.Keys[I];
AKf.ASjfj := StrToCurr(vleKf.Values[vleKf.Keys[I]]);
if FBqj<>BQJ_ZC then AKf.AJjfj := AKf.ASjfj else AKf.AJjfj := 0;
AFjze := AFjze + AKf.AJjfj;
//添加帐单
AddZd(AKf);
Inc(FItemNo);
//添加员工开房
//HotelData.YgkfAppend(CZY.CzyXm,AKf.AKfbh,tblKrxxD_KRXM.Value,AKf.ASjfj);
//HotelData.YgkfAppend(JZY.CzyXm,AKf.AKfbh,tblKrxxD_KRXM.Value,AKf.ASjfj);
end;
//修改总单
if AFjze > 0 then
begin
s := 'update KRZD set D_XFJE='+CurrToStr(AFjze)+' where (D_ZDBH="'+FZdbh+'")and(D_HH=0)';
HotelData.ExecSql(s);
end;
{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;
WaitForm.Hide;
WaitForm.Free;
end;
//事务提交
HotelData.DatabaseUser.Commit;
except
//事务回滚
HotelData.DatabaseUser.Rollback;
raise;
end;
//清除缓存
tblKrxx.CommitUpdates;
tblKryj.CommitUpdates;
tblKrzd.CommitUpdates;
Close;
end;
//检查预付金额有效性
procedure TTdjdForm.tblKryjD_YFJEValidate(Sender: TField);
begin
inherited;
if (tblKryjD_YFJE.Required)and(tblKryjD_YFJE.Value<=0) then
raise Exception.Create('预付金额必须大于零!');
end;
//改变付款方式
procedure TTdjdForm.tblKryjD_FKFSChange(Sender: TField);
begin
inherited;
tblKryjD_YFJE.Required := tblKryjD_FKFS.Value = FKFS_RMB;
tblKryjD_XYKBH.Required:= tblKryjD_FKFS.Value = FKFS_XYK;
tblKryjD_KHBH.Required := tblKryjD_FKFS.Value = FKFS_JZ;
dbeYfje.Visible := tblKryjD_FKFS.Value = FKFS_RMB;
dbcXykbh.Visible := tblKryjD_FKFS.Value = FKFS_XYK;
dbcKhbh.Visible := tblKryjD_FKFS.Value = FKFS_JZ;
lblYfje.Visible := tblKryjD_FKFS.Value <> FKFS_ZP;
if dbeYfje.Visible then lblYfje.Caption := '预付金额';
if dbcXykbh.Visible then lblYfje.Caption := '信用卡';
if dbcKhbh.Visible then lblYfje.Caption := '记帐客户';
lblMc.Caption := '';
dbcXykbh.Left := dbeYfje.Left;
dbcXYkbh.Top := dbeYfje.Top;
dbcKhbh.Left := dbeYfje.Left;
dbcKhbh.Top := dbeYfje.Top;
end;
procedure TTdjdForm.tblKrzdD_CZYXMChange(Sender: TField);
begin
inherited;
FCzyxm := tblKrzdD_CZYXM.Value;
end;
procedure TTdjdForm.tblKrzdD_JZYXMChange(Sender: TField);
begin
inherited;
FJzyxm := tblKrzdD_JZYXM.Value;
end;
procedure TTdjdForm.vleKfKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if (not(Key in ['0'..'9']))and(Ord(Key)<>VK_BACK) then
begin
Key := #0;
Beep;
end;
end;
//增加客房
procedure TTdjdForm.btnInsertClick(Sender: TObject);
var
ABfh,AEfh,I,Row: Integer;
begin
inherited;
try
if (lblBfh.Text='')or(lblEfh.Text='')or(lblFj.Text='') then
raise Exception.Create('请输入完整数据!');
try
ABfh := StrToInt(lblBfh.Text);
AEfh := StrToInt(lblEfh.Text);
except
Exit;
raise;
end;
if AEfh>=ABfh then
begin
if HotelData.CheckKfzt(IntToStr(AEfh))='' then Exit;
if HotelData.CheckKfzt(IntToStr(ABfh))='' then Exit;
for I := ABfh to AEfh do
begin
if (not vleKf.FindRow(IntToStr(I),Row))
and(HotelData.CheckKfzt(IntToStr(I))=KFZT_OK) then
vleKf.InsertRow(IntToStr(I),lblFj.Text,True);
end;
end;
lblBfh.Text := '';
lblEfh.Text := '';
lblFj.Text := '';
lblBfh.SetFocus;
except
Exit;
raise;
end;
end;
//增加行号
procedure TTdjdForm.tblZdAfterPost(DataSet: TDataSet);
begin
inherited;
end;
//历史客人信息载入
procedure TTdjdForm.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
//内宾
//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_JDR.Value := FieldByName('D_JDR').AsString;
tblKrxxD_JDDW.Value := FieldByName('D_JDDW').AsString;
tblKrxxD_DWMC.Value := FieldByName('D_DWMC').AsString;
tblKrxxD_LXDH.Value := FieldByName('D_LXDH').AsString;
tblKrxxD_QDR1.Value := FieldByName('D_QDR1').AsString;
tblKrxxD_QDR2.Value := FieldByName('D_QDR2').AsString;
tblKrxxD_QDR3.Value := FieldByName('D_QDR3').AsString;
tblKrxxD_QDR4.Value := FieldByName('D_QDR4').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 TTdjdForm.dbeKrxmExit(Sender: TObject);
var
i : Integer;
begin
inherited;
if dbeKrxm.Text='' then
begin
dbeKrxm.SetFocus;
Exit;
end;
i := HotelData.Ldcs(dbeKrxm.Text);
if i=0 then
lblInfo.Caption := '友情提醒:该客人是首次来店'
else
lblInfo.Caption := '友情提醒:该客人是第'+IntToStr(i+1)+'次来店';
LoadKrxx(dbeKrxm.Text);
end;
procedure TTdjdForm.dbcCzyxmExit(Sender: TObject);
begin
inherited;
if HotelData.FindBh('YGDA','D_YGBH','D_YGXM',tblKrzdD_CZYXM.Value)='' then
begin
FCzyxm := GetMc(dbcCzyxm.Items[dbcCzyxm.ItemIndex]);
if HotelData.FindBh('YGDA','D_YGBH','D_YGXM',FCzyxm)<>'' then
tblKrzdD_CZYXM.Value := FCzyxm
else
dbcCzyxm.SetFocus;
end;
end;
procedure TTdjdForm.dbcJzyxmExit(Sender: TObject);
var
AJzybh: string;
begin
inherited;
if HotelData.FindBh('YGDA','D_YGBH','D_YGXM',tblKrzdD_JZYXM.Value)='' then
begin
FJzyxm := GetMc(dbcJzyxm.Items[dbcJzyxm.ItemIndex]);
AJzybh := HotelData.FindBh('YGDA','D_YGBH','D_YGXM',FJzyxm);
if AJzybh<>'' then
begin
tblKrzdD_JZYXM.Value := FJzyxm;
JZY.CzyBh := AJzybh;
JZY.CzyXm := FJzyxm;
end
else
dbcJzyxm.SetFocus;
end;
end;
procedure TTdjdForm.dbcXykbhExit(Sender: TObject);
var
AXykbh,AXykmc: string;
begin
inherited;
AXykmc := HotelData.FindMc('XYK','D_XYKBH','D_XYKMC',tblKryjD_XYKBH.Value);
if AXykmc='' then
begin
AXykmc := GetMc(dbcXykbh.Items[dbcXykbh.ItemIndex]);
AXykbh := HotelData.FindBh('XYK','D_XYKBH','D_XYKMC',AXykmc);
if AXykbh<>'' then
begin
tblKryjD_XYKBH.Value := AXykbh;
lblMc.Caption := AXykmc;
end
else
dbcXykbh.SetFocus;
end
else
lblMC.Caption := AXykmc;
end;
procedure TTdjdForm.dbcKhbhExit(Sender: TObject);
var
AKhbh,AKhmc: string;
begin
inherited;
AKhmc := HotelData.FindMc('KHDA','D_KHBH','D_KHMC',tblKryjD_KHBH.Value);
if AKhmc='' then
begin
AKhmc := GetMc(dbcKhbh.Items[dbcKhbh.ItemIndex]);
AKhbh := HotelData.FindBh('KHDA','D_KHBH','D_KHMC',AKhmc);
if AKhbh<>'' then
begin
tblKryjD_KHBH.Value := AKhbh;
lblMc.Caption := AKhmc;
end
else
dbcKhbh.SetFocus;
end
else
lblMc.Caption := AKhmc;
end;
procedure TTdjdForm.dbcFkfsKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key = '1' then tblKryjD_FKFS.Value := '人民币'
else
if Key = '2' then tblKryjD_FKFS.Value := '信用卡'
else
if Key = '3' then tblKryjD_FKFS.Value := '支票'
else
if Key = '4' then tblKryjD_FKFS.Value := '记帐';
end;
procedure TTdjdForm.dbeYfjeExit(Sender: TObject);
begin
inherited;
if dbeYfje.Text = '' then dbeYfje.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -