?? 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 + -