📄 c_zd.pas
字号:
FTfje := FYfje-FSjje
else
FTfje := 0;
end
else
FTfje := FYfje;
lblYfje.Caption := FormatFloat('#.##',FYfje);//CurrToStr(FYfje)+'元';
lblXfje.Caption := FormatFloat('#.##',FXfje);//CurrToStr(FXfje)+'元';
lblYjje.Caption := FormatFloat('#.##',FYjje);//CurrToStr(FYjje)+'元';
lblYhje.Caption := FormatFloat('#.##',FYhje);//CurrToStr(FYhje)+'元';
lblJsje.Caption := FormatFloat('#.##',FJsje);//CurrToStr(FJsje)+'元';
lblTfje.Caption := FormatFloat('#.##',FTfje);//CurrToStr(FTfje)+'元';
edtSjje.Text := FormatFloat('#.##',FSjje);//CurrToStr(FSjje);
end;
//结帐库中添加额外费
procedure TZdForm.AddEwf;
begin
IsAppend := True;
tblKrjz.Insert;
tblKrjzD_XMBH.Value := XMBH_EWF;
tblKrjzD_XFJE.Value := FEwf;
tblKrjz.Post;
IsAppend := False;
end;
//结帐库中添加当天房价
procedure TZdForm.AddDtfj;
begin
IsAppend := True;
if tblKrjz.Locate('D_XMBH',XMBH_FJ,[]) then
begin
tblKrjz.Edit;
tblKrjzD_XFJE.Value := tblKrjzD_XFJE.Value + FDtfj;
tblKrjz.Post;
end
else
begin
tblKrjz.Insert;
tblKrjzD_XMBH.Value := XMBH_FJ;
tblKrjzD_XFJE.Value := FDtfj;
tblKrjz.Post;
end;
IsAppend := False;
end;
//结帐库中添加电话费
procedure TZdForm.AddDhf;
begin
IsAppend := True;
if tblKrjz.Locate('D_XMBH',XMBH_DHF,[]) then
begin
tblKrjz.Edit;
tblKrjzD_XFJE.Value := tblKrjzD_XFJE.Value + FDhf;
tblKrjz.Post;
end
else
begin
tblKrjz.Insert;
tblKrjzD_XMBH.Value := XMBH_DHF;
tblKrjzD_XFJE.Value := FDhf;
tblKrjz.Post;
end;
IsAppend := False;
end;
//帐单中添加记录
procedure TZdForm.AddKrzd(AHh: Integer;const AXmbh: string;AXfje: Currency;AKfxx: TKFXX);
begin
qryKrzd.Insert;
qryKrzdD_ZDBH.Value := AKfxx.AZdbh;
qryKrzdD_HH.Value := AHh;
qryKrzdD_KRBH.Value := AKfxx.AKrbh;
qryKrzdD_YJBH.Value := AKfxx.AYjbh;
qryKrzdD_ZDLB.Value := AKfxx.AZdlb;
qryKrzdD_XMBH.Value := AXmbh;
qryKrzdD_XFJE.Value := AXfje;
qryKrzdD_XFRQ.Value := FJzxx.AJzrq;
qryKrzdD_XFSJ.Value := FJzxx.AJzsj;
qryKrzdD_JZBZ.Value := JZ_YES;
qryKrzdD_JSBZ.Value := JS_YES;
qryKrzdD_CZYXM.Value:= CZY.CzyXm;
qryKrzdD_JZYXM.Value:= CZY.CzyXm;
qryKrzdD_BMBH.Value := FBmbh;
qryKrzd.Post;
end;
//更新客人帐单
procedure TZdForm.UpdateKrzd(const ABz: string);
var
I,AHh: Integer;
SqlStr: string;
begin
SqlStr := '';
for I:= 0 to FItemNo do
begin
if I>0 then SqlStr := SqlStr + 'or';
SqlStr := SqlStr + '(D_ZDBH="'+FKfxx[i].AZdbh+'")';
end;
SqlStr := 'select * from KRZD where '+SqlStr;
//过滤
with qryKrzd do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add(SqlStr);
try
Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
//逐个帐单添加
for I:=0 to FItemNo do
begin
//获得行号
AHh := FKfxx[i].AZdhh;
//如果当天房价不等于零
if FDtfj<>0 then
begin
if FKfxx[i].ADtfj<>0 then
begin
AddKrzd(AHh,XMBH_FJ,FKfxx[i].ADtfj,FKfxx[i]);
Inc(AHh);
end;
end;
//如果电话费不等于零
if FDhf<>0 then
begin
if FKfxx[i].ADhf<>0 then
begin
AddKrzd(AHh,XMBH_DHF,FKfxx[i].ADhf,FKfxx[i]);
Inc(AHh);
end;
end;
//如果额外费不等于零,添加到第一个帐单中
if (FEwf<>0)and(i=0) then
AddKrzd(AHh,XMBH_EWF,FEwf,FKfxx[i]);
//累加总单的消费金额
qryKrzd.Filter := 'D_ZDBH='''+FKfxx[i].AZdbh+'''';
qryKrzd.Filtered := True;
if qryKrzd.Locate('D_HH',0,[]) then
begin
qryKrzd.Edit;
qryKrzdD_XFJE.Value := qryKrzdD_XFJE.Value + FDtfj + FDhf + FEwf;
qryKrzd.Post;
end;
qryKrzd.Filter := '';
qryKrzd.Filtered := False;
end;
//修改所有帐单
qryKrzd.First;
while not qryKrzd.Eof do
begin
qryKrzd.Edit;
//结帐/未结帐
if FJzxx.AJzfs<>JZFS_WJZ then
qryKrzdD_JSBZ.Value := JS_YES
else
qryKrzdD_JSBZ.Value := JS_WJ;
qryKrzdD_JZRQ.Value := FJzxx.AJzrq;
qryKrzdD_JZSJ.Value := FJzxx.AJzsj;
qryKrzdD_JZBH.Value := FJzbh;
//edit by ls. 20020824
if qryKrzdD_JZBZ.Value = JZ_NO then
qryKrzdD_JZBZ.Value := JZ_YES;
//qryKrzdD_JSBZ.Value := JS_YES;
if qryKrzdD_JZYXM.Value = '' then
qryKrzdD_JZYXM.Value := CZY.CzyXm;
qryKrzdD_BZ.Value := qryKrzdD_BZ.Value+' '+ABz;
qryKrzdD_BMBH.Value := FBmbh;
//qryKrzdD_JZYXM.Value:= CZY.CzyXm;
qryKrzd.Post;
qryKrzd.Next;
end;
end;
//插入结帐库总单 行号=0
procedure TZdForm.UpdateKrjz;
begin
IsAppend := True;
FHh := 0;
tblKrjz.Insert;
//edit by ls.20021020
tblKrjzD_XFJE.Value := FSjje+FYhje+FYjje;//????????
tblKrjzD_YJJE.Value := 0-FYjje;
tblKrjzD_YHJE.Value := FYhje;
tblKrjz.Post;
IsAppend := False;
end;
//列出客人帐单
procedure TZdForm.AddKrjz;
var
I: Integer;
SqlStr: string;
begin
SqlStr := '';
for I:= 0 to FItemNo do
begin
if I>0 then SqlStr := SqlStr + 'or';
SqlStr := SqlStr + '(D_ZDBH="'+FKfxx[i].AZdbh+'")';
end;
SqlStr := 'select D_XMBH,sum(D_XFJE) as XFJE from KRZD where (D_HH<>0)'
+'and('+SqlStr+') group by D_XMBH';
//统计消费项目
with qryZd do
begin
SQL.Clear;
SQL.Add(SqlStr);
try
Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
//添加到结帐库中
tblKrjz.DisableControls;
try
IsAppend := True;
//获得结帐编号
FJzbh := HotelData.GetBh('D_JZBH',PREV_JZBH);
//行号=1
FHh := 1;
try
tblKrjz.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
tblKrjz.Filter := 'D_JZBH='''+FJzbh+'''';
tblKrjz.Filtered := True;
qryZd.First;
while not qryZd.Eof do
begin
if qryZd.FieldByName('D_XMBH').AsString<>'' then
begin
tblKrjz.Insert;
tblKrjzD_XMBH.Value := qryZd.FieldByName('D_XMBH').AsString;
tblKrjzD_XFJE.Value := qryZd.FieldByName('XFJE').AsCurrency;
tblKrjz.Post;
end;
qryZd.Next;
end;
//如果当天房价不等于零
if FDtfj<>0 then AddDtfj;
//如果电话费不等于零
if FDhf <>0 then AddDhf;
finally
IsAppend := False;
tblKrjz.First;
tblKrjz.EnableControls;
end;
end;
procedure TZdForm.tblKrjzNewRecord(DataSet: TDataSet);
begin
inherited;
if IsAppend then
begin
tblKrjzD_JZBH.Value := FJzbh;
tblKrjzD_HH.Value := FHh;
tblKrjzD_JZRQ.Value := FJzxx.AJzrq;
tblKrjzD_JZSJ.Value := FJzxx.AJzsj;
tblKrjzD_JZFS.Value := FJzxx.AJzfs;
tblKrjzD_XYKBH.Value:= FJzxx.AXykbh;
tblKrjzD_KHBH.Value := FJzxx.AKhbh;
tblKrjzD_JZLX.Value := JZLX_YK;
tblKrjzD_CZYXM.Value:= CZY.CzyXm;
tblKrjzD_BMBH.Value := FBmbh;
tblKrjzD_BZ.Value := JZBZ_SK+FJzfhs ;
end;
end;
procedure TZdForm.tblKrjzAfterPost(DataSet: TDataSet);
begin
inherited;
if not IsAppend then
SumYhje
else
Inc(FHh);
end;
procedure TZdForm.tblKrjzBeforeInsert(DataSet: TDataSet);
begin
inherited;
if not IsAppend then
Abort;
end;
procedure TZdForm.tblKrjzBeforeDelete(DataSet: TDataSet);
begin
inherited;
Abort;
end;
//检查优惠金额
procedure TZdForm.tblKrjzD_YHJEValidate(Sender: TField);
begin
inherited;
if tblKrjzD_XMBH.Value <> XMBH_YJK then
begin
if tblKrjzD_YHJE.AsCurrency>tblKrjzD_XFJE.AsCurrency then
begin
//tblKrjzD_YHJE.Value := tblKrjzD_XFJE.Value;
raise Exception.Create('优惠金额不能大于消费金额!');
end
end
else
begin
if tblKrjzD_YHJE.Value <> 0 then
raise Exception.Create('预交款不能优惠!');
end;
end;
//取消
procedure TZdForm.btnCancClick(Sender: TObject);
begin
inherited;
tblKrjz.CancelUpdates;
end;
//更新客房状态 间接房价
procedure TZdForm.UpdateKfzt;
var
I: Integer;
begin
for I:=0 to FItemNo do
begin
//初始化客房
HotelData.InitKfzt(FKFxx[i].AKfbh);
//更新间接房价
if FKfxx[i].ADtfj<>0 then
HotelData.UpdateJjfj(FKfxx[i].AKfbh,FKfxx[i].ABqj,FKfxx[i].ADtfj);
end;
end;
//更新客人信息的离店日期
procedure TZdForm.UpdateKrxx;
var
I: Integer;
begin
for I:=0 to FItemNo do
HotelData.UpdateKrxxJz(FKfxx[i].AKrbh,FJzxx.AJzrq,FJzxx.AJzsj);
end;
//备份客人信息
procedure TZdForm.BakKrxx;
var
I: Integer;
begin
for I:=0 to FItemNo do
HotelData.BakData('select * from KRXX where D_KRBH="'+FKfxx[i].AKrbh+'"','KRXXDA');
end;
//备份客人帐单
procedure TZdForm.BakKrzd;
var
I: Integer;
begin
for I:=0 to FItemNo do
HotelData.BakData('select * from KRZD where D_ZDBH="'+FKfxx[i].AZdbh+'"','KRZDDA');
end;
//清空客人帐单
procedure TZdForm.EmptyKrzd;
var
I: Integer;
begin
for I:=0 to FItemNo do
//HotelData.EmptyData('select * from KRZD where D_ZDBH="'+FKfxx[i].AZdbh+'"');
HotelData.EmptyData('delete from KRZD where D_ZDBH="'+FKfxx[i].AZdbh+'"');
end;
//清空客人信息
procedure TZdForm.EmptyKrxx;
var
I: Integer;
begin
for I:=0 to FItemNo do
HotelData.EmptyData('delete from KRXX where D_KRBH="'+FKfxx[i].AKrbh+'"');
//HotelData.EmptyData('select * from KRXX where D_KRBH="'+FKfxx[i].AKrbh+'"');
end;
//清空客人押金
procedure TZdForm.EmptyKryj;
var
I: Integer;
begin
//如果结帐方式为挂帐,押金不退,则押金转到挂帐对象上 ????
if not FJzxx.AYjtf then
begin
try
tblKryj.Open;
if tblKryj.FindKey([FGzxx.AYjbh,0]) then
if tblKryj.FieldByName('D_FKFS').AsString=FKFS_RMB then
begin
tblKryj.Edit;
tblKryj.FieldByName('D_YFJE').AsCurrency :=
tblKryj.FieldByName('D_YFJE').AsCurrency + FYfje;
tblKryj.Post;
end;
finally
tblKryj.Close;
end;
end;
//清空押金信息
for I:=0 to FItemNo do
//HotelData.EmptyData('select * from KRYJ where D_YJBH="'+FKfxx[i].AYjbh+'"');
HotelData.EmptyData('delete from KRYJ where D_YJBH="'+FKfxx[i].AYjbh+'"');
end;
//更新额外费
procedure TZdForm.UpdateEwf;
begin
//获得额外费
FEwf := SumEwf;
//如果不等于零,写入结帐库中
if FEwf<>0 then
begin
//写入结帐库
AddEwf;
//写入额外费库
HotelData.UpdateEwfDbf(FJzbh,FKfxx[0].AKrxm,FEwf,FJzxx.AJzrq,FJzxx.AJzsj);
end;
end;
//获取挂帐信息
procedure TZdForm.GetGzxx;
var
aTdxx : TTdxx;
begin
if FJzxx.AJzfs=JZFS_GSK then
FGzxx := HotelData.GetKfxx(FJzxx.AKfbh);
if FJzxx.AJzfs=JZFS_GTD then//edit by ls.2002.12.01
begin
aTdxx := HotelData.GetTdxx(FJzxx.AKrbh);
FGzxx.AZdbh := aTdxx.AZdbh;
FGzxx.AKrbh := aTdxx.AKrbh;
FGzxx.AYjbh := aTdxx.AYjbh;
FGzxx.AZdlb := aTdxx.AZdlb;
FGzxx.AZdhh := aTdxx.AZdhh;
//FGzxx := HotelData.GetKfxx(HotelData.GetKfbh(FJzxx.AKrbh));
end;
end;
//更新挂帐对象信息
procedure TZdForm.UpdateGz;
var
AHh: Integer;
begin
//获取挂帐信息
GetGzxx;
qryGz.Close;
qryGz.Params[0].Value := FGzxx.AZdbh;
try
qryGz.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -