📄 c_yjsh.pas
字号:
//累加散客房价
AddSkfj(AKfxx);
//累计散客房价
FSkfj := FSkfj + AKfxx.ASjfj;
qryKfztsk.Next;
end;
//修改客房状态
//s := 'update KFZT set D_KFBZ="'+KFBZ_FT+'",D_JJFJ=0,D_BJS=0,D_QJS=0 where D_KFZT="'+KFZT_BF+'"';
s := 'update KFZT set D_KFBZ="'+KFBZ_FT+'" where D_KFZT="'+KFZT_BF+'"';
HotelData.ExecSql(s);
end;
//更新团队客房状态
procedure TYjshForm.UpdateKfztTd;
var
s : string;
begin
//s := 'update KFZT set D_KFBZ="'+KFBZ_FT+'",D_JJFJ=0,D_BJS=0,D_QJS=0 where D_KFZT="'+KFZT_TD+'"';
s := 'update KFZT set D_KFBZ="'+KFBZ_FT+'" where D_KFZT="'+KFZT_TD+'"';
HotelData.ExecSql(s);
end;
//更新客房状态 间接房价=0;半全价数=0
procedure TYjshForm.UpdateKfzt;
var
s : string;
begin
s := 'update KFZT set D_JJFJ=0,D_QJS=0,D_BJS=0 where D_JJFJ<>0';
HotelData.ExecSql(s);
end;
//房金滚帐
procedure TYjshForm.UpdateFj;
var
s : string;
begin
FFjze := GetFjze;
//更新散客客房状态 累加房金
UpdateKfztSk;
//更新团队客房状态
UpdateKfzttd;
//累加团队房价
AddTdfj;
//edit by ls.2002.11.02
//更新客房状态
//UpdateKfzt;
//FFjze := FJjfj+FSkfj+FTdfj+FYjfj;
s := 'select sum(D_XFJE) from KRZD where (D_YSRQ is null)and(D_XMBH="'+XMBH_FJ+'")and (D_KRBH in (select D_KRBH from KRXX where D_KRLX="'+KRLX_WB+'"))';
FWbfj := HotelData.SumJe(s);
end;
//更新结帐库
procedure TYjshForm.UpdateKrjz;
var
s : string;
begin
s := 'update KRJZ set D_YSRQ="'+FYsrq+'"';
HotelData.ExecSql(s);
//备份
tblKrjz.Open;
HotelData.BakTable(tblKrjz,tblKrjzda);
tblKrjz.Close;
//清空
s := 'delete from KRJZ';
HotelData.ExecSql(s);
end;
function TYjshForm.SumJrshyjk: Currency;
var
s : string;
begin
s := 'select sum(D_RMB+D_XYK+D_ZP) from YJK where (D_YSRQ is null)and(D_YJLX<>"'+YJLX_SJ+'")';
Result := HotelData.SumJe(s);
end;
function TYjshForm.SumSjyjk: Currency;
var
s : string;
begin
s := 'select sum(D_RMB+D_XYK+D_ZP) from CWJS where (D_JSLX="'
+JSLX_YJSJ+'")and(D_YSRQ is null)';
Result := HotelData.SumJe(s);
end;
function TYjshForm.SumSjcwe: Currency;
var
s: string;
begin
s := 'select sum(D_RMB+D_XYK+D_ZP) from CWJS where (D_JSLX="'
+JSLX_CWSJ+'")and(D_YSRQ is null)';
Result := HotelData.SumJe(s);
end;
function TYjshForm.SumCtsje: Currency;
var
s: string;
begin
s := 'select sum(D_RMB+D_XYK+D_ZP) from CWJS where (D_JSLX="'
+JSLX_CTSJ+'")and(D_YSRQ is null)';
Result := HotelData.SumJe(s);
end;
function TYjshForm.SumCtshe: Currency;
var
s,ABmbh: string;
begin
ABmbh := HotelData.FindBh('YGDA','D_BMBH','D_YGBH',CZY.CzyBh);
s := 'select sum(D_XFJE-D_YHJE) from KRJZ where (D_XMBH="'
+XMBH_CF+'")and(D_HH<>0)and(D_BMBH<>"'+ABmbh+'")';
{s := 'select sum(D_XFJE) from KRJZ where (D_XMBH="'
+XMBH_CF+'")and(D_BMBH<>"'+ABmbh+'")';}
Result := HotelData.SumJe(s);
end;
function TYjshForm.SumLkysk: Currency;
begin
//统计零客应收款
//Result := HotelData.SumJe('select sum(D_XFJE-D_YHJE) from LKYSKZ');
Result := HotelData.SumJe('select sum(D_XFJE-D_YHJE) from KRZD where (D_HH<>0)and(D_JSBZ<>"2")');
end;
function TYjshForm.SumKhysk: Currency;
begin
//统计记帐应收款?????是否要统计预交款
Result := HotelData.SumJe('select sum(D_XFJE) from YSK');
//Result := HotelData.SumJe('select sum(D_XFJE) from YSK where D_XMBH<>"'+XMBH_YJK+'"');
end;
//更新上交统计
procedure TYjshForm.UpdateSjtj;
var
AFpe,ACtfpe,AYjkye: Currency;
ATs : Integer;
ARpjj : Currency;
ARpjzkl: Double;
s : string;
begin
s := 'select count(*),sum(D_RPJJ),sum(D_RPJCZL) from SJTJ where D_YSRQ like "'+Copy(FYsrq,1,6)+'%"';
with HotelData.qryUserData do
begin
Close;
SQL.Clear;
SQL.Add(s);
Open;
if Fields[0].IsNull then ATs := 0
else ATs := Fields[0].AsInteger;
if Fields[1].IsNull then ARpjj := 0
else ARpjj := Fields[1].AsCurrency;
if Fields[2].IsNull then ARpjzkl := 0
else ARpjzkl := Fields[2].AsFloat;
Close;
end;
try
try
tblSjtj.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
tblSjtj.Last;
AFpe := tblSjtj.FieldbyName('D_FPE').AsCurrency;
ACtfpe:= tblSjtj.FieldByName('D_CTFPE').AsCurrency;
AYjkye := tblSjtj.FieldByName('D_YJKYE').AsCurrency;
tblSjtj.Insert;
tblSjtj.FieldByName('D_YSRQ').AsString := FYsrq;
tblSjtj.FieldByName('D_FPE').AsCurrency := AFpe + FJrsh - FSjcwe;
tblSjtj.FieldByName('D_CWSJE').AsCurrency := FSjcwe;
tblSjtj.FieldByName('D_CTFPE').AsCurrency := ACtfpe + FCtshe - FCtsje;
tblSjtj.FieldByName('D_LKYSK').AsCurrency := FLkysk;
tblSjtj.FieldByName('D_KHYSK').AsCurrency := FKhysk;
tblSjtj.FieldByName('D_CTSHE').AsCurrency := FCtshe;
tblSjtj.FieldByName('D_CTSJE').AsCurrency := FCtsje;
//今日收回预交款
tblSjtj.FieldByName('D_YJKSH').AsCurrency := FJrshyjk;
tblSjtj.FieldByName('D_YJKSJ').AsCurrency := FSjyjk;
tblSjtj.FieldByName('D_YJKYE').AsCurrency := AYjkye+FJrshyjk-FSjyjk;
tblSjtj.FieldByName('D_YJKKC').AsCurrency := FYjkkc;
tblSjtj.FieldByName('D_RPJJ').AsCurrency := FRpjj;
tblSjtj.FieldByName('D_YPJJ').AsCurrency := (FRpjj+ARpjj)/(ATs+1);
tblSjtj.FieldByName('D_RPJCZL').AsFloat := FRpjzkl;
tblSjtj.FieldByName('D_YPJCZL').AsFloat := (FRpjzkl+ARpjzkl)/(ATs+1);
tblSjtj.FieldByName('D_WBFF').AsCurrency := FWbfj;
tblSjtj.FieldByName('D_NBFF').AsCurrency := FFjze-FWbfj;
tblSjtj.FieldByName('D_BQF').AsCurrency := FBqf;
tblSjtj.FieldByName('D_DBF').AsCurrency := FDbf;
tblSjtj.Post;
finally
tblSjtj.Close;
end;
end;
//更新财务结算、餐厅上交
procedure TYjshForm.UpdateCwjs;
var
s : string;
begin
s := 'update CWJS set D_YSRQ="'+FYsrq+'" where D_YSRQ is null';
HotelData.ExecSql(s);
end;
//更新结帐分类统计
procedure TYjshForm.UpdateJzfltj;
var
s: string;
begin
try
tblJzfltj.Open;
s := 'select D_JZFS,D_XMBH,sum(D_XFJE),sum(D_YHJE)'
+' from KRJZ where (D_HH<>0)and(D_XMBH<>"'+XMBH_YJK+'") group by D_JZFS,D_XMBH';
qryUser.Close;
qryUser.SQL.Clear;
qryUser.SQL.Add(s);
qryUser.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
qryUser.First;
while not qryUser.Eof do
begin
if qryUser.Fields[0].AsString <> '' then
begin
tblJzfltj.Insert;
tblJzfltj.FieldByName('D_YSRQ').AsString := FYsrq;
tblJzfltj.FieldByName('D_JZFS').AsString := qryUser.Fields[0].AsString;
tblJzfltj.FieldByName('D_XMBH').AsString := qryUser.Fields[1].AsString;
tblJzfltj.FieldByName('D_SH').AsCurrency := qryUser.Fields[2].AsCurrency-qryUser.Fields[3].AsCurrency;
tblJzfltj.FieldByName('D_YH').AsCurrency := qryUser.Fields[3].AsCurrency;
tblJzfltj.Post;
end;
qryUser.Next;
end;
tblJzfltj.Close;
end;
//更新餐饮 ???????
procedure TYjshForm.UpdateCy;
begin
with HotelData do
begin
try
BakTable(tblCtdc,tblCtdcda);
//BakTable(tblDcmx,tblDcmxda);
BatchMove1.Mode:= batAppend;
BatchMove1.Source:= tblDcmx;
BatchMove1.Destination:= tblDcmxda;
BatchMove1.Execute;
finally
EmptyData('delete from CTDC');
EmptyData('delete from DCMX');
end;
end;
end;
procedure TYjshForm.BakData;//夜审前备份
var
DDir,SDir : string;
begin
//用户数据
SDir := DBF_Dir;
DDir := BAK_Dir + '\BakData';
if DirectoryExists(SDir) then
CopyDir(SDir,DDir);
//系统数据
{SDir := App_Dir + 'DataBase\SysData';
DDir := App_Dir + 'DataBase\BakData\SysData';
if DirectoryExists(SDir) then
CopyDir(SDir,DDir);}
end;
procedure TYjshForm.Backup;//夜审后备份
var
DDir,SDir : string;
begin
//用户数据
SDir := DBF_Dir;
DDir := BAK_Dir + '\Backup';
if DirectoryExists(SDir) then
CopyDir(SDir,DDir);
//系统数据
{SDir := App_Dir + 'DataBase\SysData';
DDir := App_Dir + 'DataBase\Backup\SysData';
if DirectoryExists(SDir) then
CopyDir(SDir,DDir);}
end;
//清空半全价
procedure TYjshForm.EmptyBqj;
begin
//edit by ls. 20020825
HotelData.ExecSql('update BQJ set D_BJS=0,D_QJS=0,D_BJ="",D_QJ="",D_JJFJ=0');
HotelData.EmptyData('delete from BQJ where D_SJFJ=0');
end;
//开始夜审
procedure TYjshForm.btnOKClick(Sender: TObject);
begin
inherited;
//获得部门编号
FBmbh := HotelData.FindBh('YGDA','D_BMBH','D_YGBH',CZY.CzyBh);
if not FileExists(JF_DIR+'DHFDATA.DBF') then
begin
ShowMessage('找不到电话费数据库'+JF_DIR+'DHFDATA.DBF,你不能夜审,请检查网络是否正常。');
Exit;
end;
//备份夜审前的数据
//BakData;
HotelData.DatabaseUser.StartTransaction;
try
ProgressBar1.Position := 5;
//获取当天房金的间接价
//FJjfj := GetJjfj;
//获取已经结算但未夜审的房价
//FYjfj := GetYjfj;
//房金滚帐 FSkfj FTdfj
UpdateFj;
ProgressBar1.Position := 20;
//上交财务
FSjcwe := SumSjcwe;
FSjyjk := SumSjyjk;
FJrshyjk := SumJrshyjk;
//楼层统计
//初始化
InitLctj;
UpdateLctj;
//统计今日营业
//初始化
InitYytj;
//统计
UpdateYytj;
ProgressBar1.Position := 40;
//更新客房状态
UpdateKfzt;
ProgressBar1.Position := 60;
//写入夜审日期
UpdateKrzd;
//更新结帐分类统计
UpdateJzfltj;
ProgressBar1.Position := 80;
//获取餐厅收回金额
FCtshe := SumCtshe;
//清空已结算的客人帐单
EmptyKrzd;
//写入夜审日期,备份并请空
UpdateKrjz;
//餐厅上交
FCtsje := SumCtsje;
//零客应收
FLkysk := SumLkysk;
//客户应收款
FKhysk := SumKhysk;
//统计零客应收款
InitLkyskz;
UpdateLkyskz;
//更新上交统计
UpdateSjtj;
//更新财务上交、餐厅上交
UpdateCwjs;
//更新预交款
UpdateYjk;
//清空半全价库
EmptyBqj;
//更新餐饮
UpdateCy;
if IS_EMPTYDHF then
begin
//备份电话费
HotelData.BakDhf;
//清空当前电话费
HotelData.EmptyDhf;
end;
//设置夜审时间
SetYssj;
ProgressBar1.Position := 100;
HotelData.DatabaseUser.Commit;
except
HotelData.DatabaseUser.Rollback;
raise;
end;
//备份夜审后的数据
//Backup;
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -