📄 c_yjsh.pas
字号:
tblYytj.FieldByName('D_LJYH').AsCurrency := 0;
tblYytj.FieldByName('D_LJSH').AsCurrency := 0;
tblYytj.FieldByName('D_LJYS').AsCurrency := 0;
end;
end;
//初始化营业统计
procedure TYjshForm.InitYytj;
var
AXmbh: string;
begin
//备份营业统计
HotelData.BakTable(tblYytj,tblYytjda);
tblXmdm.First;
while not tblXmdm.Eof do
begin
AXmbh := tblXmdm.FieldByName('D_XMBH').AsString;
//初始化消费项目记录
InitYytjRecord(AXmbh);
tblXmdm.Next;
end;
//初始化合计
InitYytjRecord('0');
end;
//更新零客应收款
procedure TYjshForm.UpdateLkyskz;
var
AXmbh: string;
AXfje: Currency;
begin
try
try
qryLkyskz.Open;
tblLkyskz.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
qryLkyskz.First;
while not qryLkyskz.Eof do
begin
AXmbh := qryLkyskz.Fields[0].AsString;
if qryLkyskz.Fields[1].IsNull then AXfje := 0
else AXfje := qryLkyskz.Fields[1].AsCurrency;
if tblLkyskz.FindKey([FYsrq,AXmbh]) then
begin
tblLkyskz.Edit;
tblLkyskz.FieldByName('D_XFJE').AsCurrency :=
tblLkyskz.FieldByName('D_XFJE').AsCurrency + AXfje;
tblLkyskz.Post;
end;
qryLkyskz.Next;
end;
finally
tblLkyskz.Close;
qryLkyskz.Close;
end;
end;
//初始化零客应收款
procedure TYjshForm.InitLkyskz;
var
AXmbh: string;
begin
try
tblLkyskz.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
//备份
HotelData.BakTable(tblLkyskz,tblLkyskzda);
tblXmdm.First;
while not tblXmdm.Eof do
begin
AXmbh := tblXmdm.FieldByName('D_XMBH').AsString;
if tblLkyskz.Locate('D_XMBH',AXmbh,[]) then
begin
tblLkyskz.Edit;
tblLkyskz.FieldByName('D_YSRQ').AsString := FYsrq;
tblLkyskz.FieldByName('D_XFJE').AsCurrency := 0;
tblLkyskz.FieldByName('D_YJJE').AsCurrency := 0;
tblLkyskz.Post;
end
else
begin
tblLkyskz.Insert;
tblLkyskz.FieldByName('D_YSRQ').AsString := FYsrq;
tblLkyskz.FieldByName('D_XMBH').AsString := AXmbh;
tblLkyskz.FieldByName('D_XFJE').AsCurrency := 0;
tblLkyskz.FieldByName('D_YJJE').AsCurrency := 0;
tblLkyskz.Post;
end;
tblXmdm.Next;
end;
tblLkyskz.Close;
end;
//清空客人帐单
procedure TYjshForm.EmptyKrzd;
var
s : string;
begin
s := 'delete from KRZD where D_JSBZ="'+JS_YES+'"';
HotelData.EmptyData(s);
end;
//更新客人帐单 写入夜审日期
procedure TYjshForm.UpdateKrzd;
var
s : string;
begin
s := 'update KRZD set D_YSRQ="'+FYsrq+'"';
HotelData.ExecSql(s);
end;
//营业统计
procedure TYjshForm.UpdateYytj;
var
AXmbh,s : string;
AJryy,AJrsh,AJryh : Currency;
AZrbyyy,AZrbyyh,AZrljyy,AZrljyh,AZrljsh,AZrljys: Currency;
AByyyda,AByyy: Currency;
ARq: string;
begin
FJrsh := 0;
FJryh := 0;
s := 'select sum(D_XFJE) from KRJZ where (D_XMBH="'+XMBH_YJK+'")and(D_XFJE<0)';
FYjkkc := 0-HotelData.SumJe(s);
try
try
qryZd.Close;
qryZd.SQL.Clear;
s := 'select D_XMBH,sum(D_XFJE) from KRZD where (D_HH<>0)and(D_XMBH<>"'
+XMBH_FJ+'")and(D_XMBH<>"'+XMBH_YJK+'")and(D_JZBZ<>"'+JZ_YX+'")and(D_YSRQ is null) group by D_XMBH';
qryZd.SQL.Add(s);
qryZd.Open;
qryJz.Close;
qryJz.SQL.Clear;
s := 'select D_XMBH,sum(D_XFJE),sum(D_YHJE) from KRJZ where(D_HH<>0) group by D_XMBH';
qryJz.SQL.Add(s);
qryJz.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
tblXmdm.First;
while not tblXmdm.Eof do
begin
AXmbh := tblXmdm.FieldByName('D_XMBH').AsString;
AJryy := 0;
AJrsh := 0;
AJryh := 0;
if tblYytj.FindKey([FYsrq,AXmbh]) then
begin
tblYytj.Edit;
//今日营业
//房金
if AXmbh=XMBH_FJ then
//AJryy := FJjfj+FSkfj+FTdfj+FYjfj
AJryy := FFjze
else
if qryZd.Locate('D_XMBH',AXmbh,[]) then
begin
if qryZd.Fields[1].IsNull then AJryy := 0
else AJryy := qryZd.Fields[1].AsCurrency;
end;
//今日优惠、今日收回
if qryJz.Locate('D_XMBH',AXmbh,[]) then
begin
if qryJz.Fields[2].IsNull then AJryh := 0
else AJryh := qryJz.Fields[2].AsCurrency;
if qryJz.Fields[1].IsNull then AJrsh := 0 - AJryh
else AJrsh := qryJz.Fields[1].AsCurrency - AJryh;
end;
AZrbyyy := tblYytj.FieldByName('D_ZRBYYY').AsCurrency;
AZrbyyh := tblYytj.FieldByName('D_ZRBYYH').AsCurrency;
AZrljyy := tblYytj.FieldByName('D_ZRLJYY').AsCurrency;
AZrljyh := tblYytj.FieldByName('D_ZRLJYH').AsCurrency;
AZrljsh := tblYytj.FieldByName('D_ZRLJSH').AsCurrency;
AZrljys := tblYytj.FieldByName('D_ZRLJYS').AsCurrency;
tblYytj.FieldByName('D_JRYY').AsCurrency :=
tblYytj.FieldByName('D_JRYY').AsCurrency+AJryy;
tblYytj.FieldByName('D_JRSH').AsCurrency :=
tblYytj.FieldByName('D_JRSH').AsCurrency + AJrsh;
tblYytj.FieldByName('D_JRYH').AsCurrency :=
tblYytj.FieldByName('D_JRYH').AsCurrency + AJryh;
tblYytj.FieldByName('D_BYYY').AsCurrency := AJryy + AZrbyyy;
tblYytj.FieldByName('D_BYYH').AsCurrency := AJryh + AZrbyyh;
tblYytj.FieldByName('D_LJYY').AsCurrency := AJryy + AZrljyy;
tblYytj.FieldByName('D_LJYH').AsCurrency := AJryh + AZrljyh;
tblYytj.FieldByName('D_LJSH').AsCurrency := AJrsh + AZrljsh;
tblYytj.FieldByName('D_LJYS').AsCurrency := AJryy-AJrsh-AJryh+AZrljys;
FJryy := FJryy + AJryy;
FJrsh := FJrsh + AJrsh;
FJryh := FJryh + AJryh;
tblYytj.Post;
end;
tblXmdm.Next;
end;
//全部营业
if tblYytj.FindKey([FYsrq,'0']) then
begin
FZrbyyy := tblYytj.FieldByName('D_ZRBYYY').AsCurrency;
FZrbyyh := tblYytj.FieldByName('D_ZRBYYH').AsCurrency;
FZrljyy := tblYytj.FieldByName('D_ZRLJYY').AsCurrency;
FZrljyh := tblYytj.FieldByName('D_ZRLJYH').AsCurrency;
FZrljsh := tblYytj.FieldByName('D_ZRLJSH').AsCurrency;
FZrljys := tblYytj.FieldByName('D_ZRLJYS').AsCurrency;
tblYytj.Edit;
tblYytj.FieldByName('D_JRYY').AsCurrency :=
tblYytj.FieldByName('D_JRYY').AsCurrency + FJryy;
tblYytj.FieldByName('D_JRSH').AsCurrency :=
tblYytj.FieldByName('D_JRSH').AsCurrency + FJrsh;
tblYytj.FieldByName('D_JRYH').AsCurrency :=
tblYytj.FieldByName('D_JRYH').AsCurrency + FJryh;
tblYytj.FieldByName('D_BYYY').AsCurrency := FJryy + FZrbyyy;
tblYytj.FieldByName('D_BYYH').AsCurrency := FJryh + FZrbyyh;
tblYytj.FieldByName('D_LJYY').AsCurrency := FJryy + FZrljyy;
tblYytj.FieldByName('D_LJYH').AsCurrency := FJryh + FZrljyh;
tblYytj.FieldByName('D_LJSH').AsCurrency := FJrsh + FZrljsh;
//tblYytj.FieldByName('D_LJYS').AsCurrency := FJryy-FJrsh-FJryh+FZrljys-FSjcwe;
tblYytj.FieldByName('D_LJYS').AsCurrency := FJryy-FJryh+FZrljys-FSjcwe;
tblYytj.Post;
end;
//同期相比
ARq := FormatDateTime('yyyymmdd',IncDay(Date,-30));
tblYytj.First;
while not tblYytj.Eof do
begin
s := 'select D_BYYY from YYTJDA where (D_YSRQ="'+ARq+'")and(D_XMBH="'+tblYytj.FieldByName('D_XMBH').AsString+'")';
with HotelData.qryUserData do
begin
Close;
SQL.Clear;
SQL.Add(s);
Open;
if Fields[0].IsNull then AByyyda := 0
else AByyyda := Fields[0].AsCurrency;
Close;
end;
AByyy := tblYytj.FieldByName('D_BYYY').AsCurrency;
tblYytj.Edit;
if AByyyda<>0 then
tblYytj.FieldByName('D_SYTQB').AsFloat := (AByyy-AByyyda)/AByyyda
else
tblYytj.FieldByName('D_SYTQB').AsFloat := 0;
tblYytj.Post;
tblYytj.Next;
end;
finally
qryJz.Close;
qryZd.Close;
end;
end;
//获取房金总额
function TYjshForm.GetFjze: Currency;
var
s : string;
aZe,aJe: Double;
begin
//edit by ls.2002.11.02
s := 'select sum(D_JJFJ+D_SJFJ) from KFZT';
//s := 'select sum(D_JJFJ+D_SJFJ) from BQJ';
aJe := HotelData.SumJe(s);
aZe := aJe;
//edit by ls.2003.05.22
s := 'select sum(D_XFJE) from KRZD where (D_BZ like "%杂单录入%")and(D_YSRQ is null)and(D_XMBH="'+XMBH_FJ+'")';
aJe := HotelData.SumJe(s);
aZe := aZe + aJe;
s := 'select sum(D_XFJE) from KRZD where (D_ZDLB="'+ZDLB_FYK+'")and(D_YSRQ is null)and(D_XMBH="'+XMBH_FJ+'")';
aJe := HotelData.SumJe(s);
aZe := aZe + aJe;
Result := aZe;
end;
{
//获取当天的间接房价
function TYjshForm.GetJjfj: Currency;
var
s: string;
begin
s := 'select sum(D_JJFJ) from KFZT where D_KFBZ="'+KFBZ_FT+'"';
Result := HotelData.SumSysJe(s);
end;
}
{
//获取已经结算但是没有夜审的房价
function TYjshForm.GetYjfj: Currency;
var
s: string;
begin
//edit by ls. 20020824 d_xfje>0 不统计预先结帐的房价
s := 'select sum(D_XFJE) from KRZD where ((D_JSBZ="'
+JS_YES+'") or (D_JSBZ="'
+JS_WJ +'") or (D_JZBZ="'
+JZ_YES+'"))and(D_JZBZ<>"'+JZ_YX+'")and(D_YSRQ is null)and(D_XMBH="'
+XMBH_FJ+'")';
Result := HotelData.SumJe(s);
end;
}
//累加散客房价、电话费
procedure TYjshForm.AddSkfj(AKfxx: TKfxx);
var
ADhf: Currency;
begin
ADhf := HotelData.GetDhf1(AKfxx.AKfbh,AKfxx.ADdrq,AKfxx.ADdsj);
HotelData.InsertKrzd(AKfxx.AZdbh,AKfxx.AZdlb,AKfxx.AKrbh,AKfxx.AYjbh,
AKfxx.AKfbh,XMBH_FJ,JZ_NO,JS_NO,FBmbh,
ZDBZ_SK+AKfxx.AKfbh,AKfxx.AZdhh,AKfxx.ASjfj,0);
if ADhf <> 0 then
HotelData.InsertKrzd(AKfxx.AZdbh,AKfxx.AZdlb,AKfxx.AKrbh,AKfxx.AYjbh,
AKfxx.AKfbh,XMBH_DHF,JZ_NO,JS_NO,FBmbh,
ZDBZ_SK+AKfxx.AKfbh,AKfxx.AZdhh+1,ADhf,0);
//修改总单
HotelData.AddKrzdZdXfje(AKfxx.AZdbh,AKfxx.ASjfj+ADhf);
end;
//累加团队房价、电话费
procedure TYjshForm.AddTdfj;
var
AKrbh,s : string;
AFjTotal: Currency;
ASjfj : Currency;
ADhf,ADhfTotal : Currency;
AKfbh : string;
ADdrq,ADdsj: TDateTime;
ATdxx : TTdxx;
AHh : Integer;
begin
AFjTotal := 0;
ADhfToTal := 0;
qryKrxxtd.First;
while not qryKrxxtd.Eof do
begin
AKrbh := qryKrxxtd.FieldByName('D_KRBH').AsString;
ATdxx := HotelData.GetTdxx(AKrbh);
qryZd.Close;
qryZd.SQL.Clear;
s := 'select * from KRZD where (D_KRBH="'+AKrbh+'")and(D_XMBH="'+XMBH_FJ+'")and(D_JZBZ="'+JZ_NO+'")and(D_SJFJ<>0)';
qryZd.SQL.Add(s);
qryZd.Open;
qryZd.First;
AHh := 0;
while not qryZd.Eof do
begin
ASjfj := qryZd.FieldByName('D_SJFJ').AsCurrency;
AKfbh := qryZd.FieldByName('D_KFBH').AsString;
ADdrq := qryZd.FieldByName('D_XFRQ').AsDateTime;
ADdsj := qryZd.FieldByName('D_XFSJ').AsDateTime;
ADhf := HotelData.GetDhf1(AKfbh,ADdrq,ADdsj);
//插入电话费
if ADhf<>0 then
begin
HotelData.InsertKrzd(ATdxx.AZdbh,ZDLB_TD,ATdxx.AKrbh,ATdxx.AYjbh,
'',XMBH_DHF,JZ_NO,JS_NO,FBmbh,
ZDBZ_TD+ATdxx.AKrxm,ATdxx.AZdhh+AHh,ADhf,0);
Inc(AHh);
end;
ADhfTotal := ADhfTotal + ADhf;
AFjTotal := AFjTotal + ASjfj;
qryZd.Next;
end;
qryZd.Close;
//累加所有房价
s := 'update KRZD set D_XFJE=D_XFJE+D_SJFJ where (D_KRBH="'+AKrbh+'")and(D_XMBH="'+XMBH_FJ+'")and(D_JZBZ="'+JZ_NO+'")and(D_SJFJ<>0)';
HotelData.ExecSql(s);
//修改总单
HotelData.AddKrzdZdXfje(ATdxx.AZdbh,AFjToTal+ADhfToTal);
qryKrxxtd.Next;
end;
FTdfj := AFjTotal;
end;
//更新散客的客房状态
procedure TYjshForm.UpdateKfztSk;
var
AKfxx: TKfxx;
s : string;
begin
FSkfj := 0;
qryKfztsk.First;
while not qryKfztsk.Eof do
begin
//获取客房信息
AKfxx := HotelData.GetKfxx(qryKfztsk.FieldByName('D_KFBH').AsString);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -