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

📄 c_yjsh.pas

📁 酒店管理系统 酒店管理系统 酒店管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    //累加散客房价
    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 + -