⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_yjsh.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    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 + -