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

📄 c_nbjd.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      ShowModal;
    end;
  finally
    NbjdForm.tblKrzd.Close;
    NbjdForm.Free;
  end;
end;

//历史客人信息载入
procedure TNbjdForm.LoadKrxx(const AKrxm: string);
var
  s : string;
begin
  with HotelData.qryUserData do
  begin
    s := 'select * from KRXXDA where D_KRXM="'+AKrxm+'"';
    SQL.Clear;
    SQL.Add(s);
    Open;
    if IsEmpty then
    begin
      Close;
      Exit;
    end;
    if Confirm('是否自动调入该客人在客史档案中的信息?') then
    begin
      //内宾
      Last;
      tblKrxxD_XB.Value   := FieldByName('D_XB').AsString;
      tblKrxxD_MZBH.Value := FieldByName('D_MZBH').AsString;
      tblKrxxD_DQBH.Value := FieldByName('D_DQBH').AsString;
      tblKrxxD_ZJBH.Value := FieldByName('D_ZJBH').AsString;
      tblKrxxD_ZJHM.Value := FieldByName('D_ZJHM').AsString;
      tblKrxxD_CSNY.Value := FieldByName('D_CSNY').AsDateTime;
      tblKrxxD_ZY.Value   := FieldByName('D_ZY').AsString;
      tblKrxxD_JTDZ.Value := FieldByName('D_JTDZ').AsString;
      tblKrxxD_DWMC.Value := FieldByName('D_DWMC').AsString;
      tblKrxxD_HCL.Value  := FieldByName('D_HCL').AsString;
      tblKrxxD_HCQ.Value  := FieldByName('D_HCQ').AsString;
      //外宾
      tblKrxxD_YWM.Value  := FieldByName('D_YWM').AsString;
      tblKrxxD_YWX.Value  := FieldByName('D_YWX').AsString;
      tblKrxxD_GBBH.Value := FieldByName('D_GBBH').AsString;
      tblKrxxD_QZBH.Value := FieldByName('D_QZBH').AsString;
      tblKrxxD_QZYXQ.Value:= FieldByName('D_QZYXQ').AsDateTime;
      
    end;
    Close;
  end;
end;

//将数据库中的内容添加到下拉框中
procedure TNbjdForm.ShowJdxx;
begin
  HotelData.ListDbDm(dbcCzyxm,'YGDA','D_YGXM');
  HotelData.ListDbDm(dbcJzyxm,'YGDA','D_YGXM');
  HotelData.ListDbDm(dbcXykbh,'XYK','D_XYKMC');
  HotelData.ListDbDm(dbcKhbh,'KHDA','D_KHMC');
  HotelData.ListDbDm(dbcMz,'MZDM','D_MZMC');
  HotelData.ListDbDm(dbcDqbh,'DQDM','D_DQMC');
  HotelData.ListDbDm(dbcZjlx,'ZJDM','D_ZJMC');
end;

//判断身份证号码的有效性
function TNbjdForm.ValidSfz(const AZjhm: string): Boolean;
begin
  Result := False;

  //判断15位身份证号码
  if Length(AZjhm)=15 then
  begin
    try
      tblKrxxD_CSNY.Value :=
        EnCodeDate(StrToInt('19'+Copy(AZjhm,7,2)),
                   StrToInt(Copy(AZjhm,9,2)),
                   StrToInt(Copy(AZjhm,11,2)));
      if StrToInt(Copy(AZjhm,15,1)) mod 2 = 0 then
        tblKrxxD_XB.Value := '女'
      else
        tblKrxxD_XB.Value := '男';
      Result := True;
    except
      raise Exception.Create('非法身份证号码!');
    end;
  end;

  //判断18位身份证号码
  if Length(AZjhm)=18 then
  begin
    try
      tblKrxxD_CSNY.Value :=
        EnCodeDate(StrToInt(Copy(AZjhm,7,4)),
                   StrToInt(Copy(AZjhm,11,2)),
                   StrToInt(Copy(AZjhm,13,2)));
      if StrToInt(Copy(AZjhm,17,1)) mod 2 = 0 then
        tblKrxxD_XB.Value := '女'
      else
        tblKrxxD_XB.Value := '男';
      Result := True;
    except
      raise Exception.Create('非法身份证号码!');
    end;
  end;
end;

//有半全价
procedure TNbjdForm.AddZd;
begin
  try
  
    try
      tblZd.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    tblZd.Insert;
    tblZdD_ZDBH.Value := FZdbh;
    tblZdD_KRBH.Value := FKrbh;
    tblZdD_YJBH.Value := FYjbh;
    tblZdD_ZDLB.Value := ZDLB_YK;
    tblZdD_HH.Value   := FItemNo;
    tblZdD_JZBZ.Value := JZ_NO;
    tblZdD_JSBZ.Value := JS_NO;
    tblZdD_KFBH.Value := tblKrzdD_KFBH.Value;
    //edit by ls.2003.01.11
    tblZdD_SJFJ.Value := 0;
    //tblZdD_SJFJ.Value := tblKrzdD_SJFJ.Value;
    tblZdD_XMBH.Value := XMBH_FJ;
    tblZdD_XFDJ.Value := tblKfztD_JJFJ.Value;
    tblZdD_XFSL.Value := 1;
    tblZdD_XFJE.Value := tblZdD_XFSL.Value*tblZdD_XFDJ.Value;
    tblZdD_XFRQ.Value := tblKrzdD_XFRQ.Value;
    tblZdD_XFSJ.Value := tblKrzdD_XFSJ.Value;
    tblZdD_CZYXM.Value:= FCzyxm;
    tblZdD_JZYXM.Value:= FJzyxm;
    tblZdD_BMBH.Value := FBmbh;
    tblZd.Post;
    if tblZd.FindKey([FZdbh,0]) then
    begin
      tblZd.Edit;
      tblZdD_XFJE.Value := HotelData.SumJe('select sum(D_XFJE) from KRZD'
                                           +' where (D_ZDBH="'
                                           +FZdbh+'")and(D_HH<>0)');

      tblZd.Post;
    end;
  finally
    tblZd.Close;
  end;
end;

//添加客人帐单总单 行号=0
procedure TNbjdForm.UpdateKrzd;
begin
  FZdbh := HotelData.GetBh('D_ZDBH',PREV_ZDBH);
  FKrbh := HotelData.GetBh('D_KRBH',PREV_KRBH);
  FYjbh := HotelData.GetBh('D_YJBH',PREV_YJBH);
  tblKrzdD_ZDBH.Value := FZdbh;
  tblKrzdD_KRBH.Value := FKrbh;
  tblKrzdD_YJBH.Value := FYjbh;
  tblKrzdD_HH.Value   := 0;
  tblKrzdD_ZDLB.Value := ZDLB_YK;
  tblKrzdD_XFRQ.Value := tblKrxxD_DDRQ.Value;
  tblKrzdD_XFSJ.Value := tblKrxxD_DDSJ.Value;
  tblKrzdD_JZBZ.Value := JZ_NO;
  tblKrzdD_JSBZ.Value := JS_NO;
  tblKrzdD_BZ.Value   := FBmbh;
  tblKrzdD_BZ.Value   := ZDBZ_SK+' '+tblKrzdD_KFBH.Value+' '+tblKrxxD_KRXM.Value;
end;

//更新客人信息的客人编号
procedure TNbjdForm.UpdateKrxx;
begin
  tblKrxx.Edit;
  tblKrxxD_KRBH.Value := FKrbh;
  tblKrxx.Post;
end;

//添加客人押金
procedure TNbjdForm.UpdateKryj;
begin
  tblKryj.Edit;
  tblKryjD_YJBH.Value := FYjbh;
  tblKryjD_HH.Value   := 0;
  tblKryjD_YFRQ.Value := tblKrxxD_DDRQ.Value;
  tblKryjD_YFSJ.Value := tblKrxxD_DDSJ.Value;
  tblKryjD_BZ.Value   := YJBZ_YJ;
  tblKryj.Post;
end;

//更新客房状态库
procedure TNbjdForm.UpdateKfzt;
begin
  if tblKfzt.FindKey([tblKrzdD_KFBH.Value]) then
  begin
    tblKfzt.Edit;
    FBqj := CheckDdsj(tblKrxxD_DDSJ.Value);
    case FBqj of
      BQJ_ZC:
        tblKfztD_KFBZ.Value := KFBZ_DT;
      BQJ_BJ:
        begin
          tblKfztD_KFBZ.Value := KFBZ_FT;
          tblKfztD_BJS.Value  := tblKfztD_BJS.Value + 1;
          //20020627 edit by ls. 改为求和
          tblKfztD_JJFJ.Value := tblKfztD_JJFJ.Value+tblKrzdD_SJFJ.Value/2;
        end;
      BQJ_QJ:
        begin
          tblKfztD_KFBZ.Value := KFBZ_FT;
          tblKfztD_QJS.Value  := tblKfztD_QJS.Value + 1;
          //20020627 edit by ls. 改为求和
          tblKfztD_JJFJ.Value := tblKfztD_JJFJ.Value+tblKrzdD_SJFJ.Value;
        end;
    end;
    tblKfztD_ZDBH.Value := FZdbh;
    tblKfztD_KRBH.Value := FKrbh;
    tblKfztD_YJBH.Value := FYjbh;
    tblKfztD_SJFJ.Value := tblKrzdD_SJFJ.Value;
    tblKfztD_KRSL.Value := tblKfztD_KRSL.Value + 1;
    tblKfztD_DHKT.Value := 'F';
    tblKfztD_KFZT.Value := KFZT_BF;
    tblKfztD_KRXM.Value := tblKrxxD_KRXM.Value;
    tblKfzt.Post;

    //更新半全价库
    if FBqj<>BQJ_ZC then
      HotelData.UpdateBqj(tblKfztD_KFBH.Value,FBqj,tblKfztD_SJFJ.Value,tblKfztD_JJFJ.Value)
    else
      HotelData.UpdateBqj(tblKfztD_KFBH.Value,FBqj,tblKfztD_SJFJ.Value,0);
  end;
end;

procedure TNbjdForm.tblKrzdBeforeOpen(DataSet: TDataSet);
begin
  inherited;
  tblKfzt.Open;
  tblKrxx.Open;
  tblKryj.Open;
end;

procedure TNbjdForm.tblKrzdBeforeClose(DataSet: TDataSet);
begin
  inherited;
  tblKfzt.Close;
  tblKrxx.Close;
  tblKryj.Close;
end;

procedure TNbjdForm.tblKrzdNewRecord(DataSet: TDataSet);
begin
  inherited;
  FItemNo := 1;
  tblKrzdD_CZYXM.Value := DQCZY.CzyXm;
  tblKrzdD_JZYXM.Value := DQJZY.CzyXm;
  tblKrxx.Insert;
  tblKryj.Insert;
end;

procedure TNbjdForm.tblKrxxNewRecord(DataSet: TDataSet);
var
  ARecInfo: TRecInfo;
begin
  inherited;
  tblKrxxD_KRLX.Value := KRLX_NB;
  tblKrxxD_DDRQ.Value := Date;
  tblKrxxD_DDSJ.Value := Time;
  tblKrxxD_NZTS.Value := 1;
  tblKrxxD_XB.Value   := XB_MAN;

  //-------20020627 edit by ls.获取默认第一个记录
  ARecInfo            := HotelData.GetFirstRec('MZDM','D_MZBH','D_MZMC');
  tblKrxxD_MZBH.Value := ARecInfo.ABh;
  lblMz.Caption       := ARecInfo.AMc;
  ARecInfo            := HotelData.GetFirstRec('DQDM','D_DQBH','D_DQMC');
  tblKrxxD_DQBH.Value := ARecInfo.ABh;
  lblDqmc.Caption     := ARecInfo.AMc;
  ARecInfo            := HotelData.GetFirstRec('ZJDM','D_ZJBH','D_ZJMC');
  tblKrxxD_ZJBH.Value := ARecInfo.ABh;
  lblZjmc.Caption     := ARecInfo.AMc;
  //-----------------------------------------------

  tblKrxxD_TLSY.Value := '商务';
end;

//付款方式默认为人民币
procedure TNbjdForm.tblKryjNewRecord(DataSet: TDataSet);
begin
  inherited;
  tblKryjD_FKFS.Value := FKFS_RMB;
end;

procedure TNbjdForm.btnCancClick(Sender: TObject);
begin
  inherited;
  tblKrzd.Cancel;
end;

procedure TNbjdForm.tblKrzdAfterCancel(DataSet: TDataSet);
begin
  inherited;
  tblKrzd.CancelUpdates;
  tblKrxx.CancelUpdates;
  tblKryj.CancelUpdates;
  tblKfzt.CancelUpdates;
end;

//添加信息导出库
procedure TNbjdForm.AddXxdc;
begin
  with HotelData.tblXxdc do
  begin
    try
      Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    Append;
    FieldByName('D_KRBH').AsString := tblKrxxD_KRBH.Value;
    FieldByName('D_KFBH').AsString := tblKrzdD_KFBH.Value;
    FieldByName('D_DDRQ').AsString := FormatDateTime('yyyymmdd',tblKrxxD_DDRQ.AsDateTime);
    FieldByName('D_KRXM').AsString := tblKrxxD_KRXM.Value;
    FieldByName('D_XB').AsString := tblKrxxD_XB.Value;
    FieldByName('D_CSNY').AsString := FormatDateTime('yyyymmdd',tblKrxxD_CSNY.AsDateTime);
    FieldByName('D_MZ').AsString := HotelData.FindMc('MZDM','D_MZBH','D_MZMC',tblKrxxD_MZBH.Value);
    FieldByName('D_JG').AsString := HotelData.FindMc('DQDM','D_DQBH','D_DQMC',tblKrxxD_DQBH.Value);
    FieldByName('D_GZDW').AsString := tblKrxxD_DWMC.Value;
    FieldByName('D_ZY').AsString := tblKrxxD_ZY.Value;
    FieldByName('D_JTDZ').AsString := tblKrxxD_JTDZ.Value;
    FieldByName('D_ZJLX').AsString := HotelData.FindMc('ZJDM','D_ZJBH','D_ZJMC',tblKrxxD_ZJBH.Value);
    FieldByName('D_ZJHM').AsString := tblKrxxD_ZJHM.Value;
    Post;
    Close;
  end;
end;

//确认
procedure TNbjdForm.btnOKClick(Sender: TObject);
begin
  inherited;
  //获得部门编号
  FBmbh := HotelData.FindBh('YGDA','D_BMBH','D_YGBH',CZY.CzyBh);

  //客人帐单存盘
  tblKrzd.Post;

  //事务启动
  HotelData.DatabaseUser.StartTransaction;
  try
    tblKrxx.ApplyUpdates;
    tblKryj.ApplyUpdates;
    tblKrzd.ApplyUpdates;
    tblKfzt.ApplyUpdates;

    //如果有半全价,添加到帐单中
    if FBqj<>BQJ_ZC then
      AddZd;

    //添加员工开房库
    HotelData.YgkfAppend(DQCZY.CzyXm,tblKrzdD_KFBH.Value,tblKrxxD_KRXM.Value,tblKRZDD_SJFJ.Value,tblKrxxD_DDRQ.Value,tblKrxxD_DDSJ.Value);
    HotelData.YgkfAppend(DQJZY.CzyXm,tblKrzdD_KFBH.Value,tblKrxxD_KRXM.Value,tblKRZDD_SJFJ.Value,tblKrxxD_DDRQ.Value,tblKrxxD_DDSJ.Value);

    //添加到信息导出库
    AddXxdc;

    //事务提交
    HotelData.DatabaseUser.Commit;
  except
    //事务回滚
    HotelData.DatabaseUser.Rollback;
    raise;
  end;
  //清除缓存
  tblKrxx.CommitUpdates;
  tblKryj.CommitUpdates;
  tblKrzd.CommitUpdates;
  tblKfzt.CommitUpdates;
  if Confirm('继续录入新客人吗?') then
  begin
    tblKrzd.Insert;
    ShowJdxx;
    dbeKfbh.SetFocus;
  end
  else
  Close;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -