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

📄 c_kfzt.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
    Tdqx(AKrbh);
end;

//房态说明
procedure TKfztForm.BitBtn16Click(Sender: TObject);
begin
  inherited;
  Ftsm;
end;

//双击客房
procedure TKfztForm.sgdKfztDblClick(Sender: TObject);
begin
  inherited;
  if FSelect < FKfNum then
  begin
    //如果是OK房,则登记
    if FKfzt[FSelect].AKfzt=KFZT_OK then
    begin
      if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
      NbjdEnter(tblKfztD_KFBH.Value);
      ShowKfzt;
      ShowRzl;
      Exit;
    end;

    //如果是散客
    if FKfzt[FSelect].AKfzt = KFZT_BF then
      ZdcxEnter(tblKfztD_KFBH.Value);
      //20020630 edit by ls.
      //YjxfEnter(tblKfztD_KFBH.Value);

    //如果是团队
    if FKfzt[FSelect].AKfzt = KFZT_TD then
      ZdcxTdEnter(tblKfztD_KRBH.Value);
      //YjxfEnter1(tblKfztD_KRBH.Value);

  end;
end;

//信息补登
procedure TKfztForm.DBGrid3DblClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  XxxgEnter(tblXxbd.FieldByName('D_KRBH').AsString);
end;

//刷新预定餐饮
procedure TKfztForm.ShowYdcy;
var
  i: Integer;
begin
  FCyNum := qryYdcy.RecordCount; //预定数量
  SetLength(FYdcy,FCyNum);
  sgdYdcy.ColCount := CyColNum;
  sgdYdcy.RowCount := (FCyNum div CyColNum)+1;

  qryYdcy.First;
  i := 0;
  while not qryYdcy.Eof do
  begin
    FYdcy[i].AYdbh := qryYdcy.FieldByName('D_YDBH').AsString;
    FYdcy[i].AKrbh := qryYdcy.FieldByName('D_KRBH').AsString;
    FYdcy[i].AKrxm := qryYdcy.FieldByName('D_KRXM').AsString;
    FYdcy[i].ASyrq := qryYdcy.FieldByName('D_SYRQ').AsDateTime;
    FYdcy[i].ASjdm := qryYdcy.FieldByName('D_SJDM').AsString;
    FYdcy[i].ACtbh := qryYdcy.FieldByName('D_CTBH').AsString;
    FYdcy[i].ACtmc := qryYdcy.FieldByName('D_CTMC').AsString;
    FYdcy[i].AXfje := qryYdcy.FieldByName('D_XFJE').AsCurrency;
    FYdcy[i].ARzbz := qryYdcy.FieldByName('D_RZBZ').AsBoolean;
    FYdcy[i].AJsbz := qryYdcy.FieldByName('D_JSBZ').AsString;
    FYdcy[i].AYcbz := qryYdcy.FieldbyName('D_YCBZ').AsString;
    FYdcy[i].AColor := cl3DLight;

    //如果过期
    if FYdcy[i].ASyrq < Date then FYdcy[i].ASjgq := True
    else FYdcy[i].ASjgq := False;
    if FYdcy[i].ASjgq then FYdcy[i].AColor := clYellow;

    //如果入帐确认
    if FYdcy[i].ARzbz then FYdcy[i].AColor := clGreen;

    //如果结算
    if FYdcy[i].AJsbz = JS_YES then FYdcy[i].AColor := clRed;

    FYdcy[i].AImage := 0;
    if FYdcy[i].ARzbz          then FYdcy[i].AImage := 1;
    if FYdcy[i].AJsbz = JS_YES then FYdcy[i].AImage := 2;
    if FYdcy[i].ASjgq          then FYdcy[i].AImage := 3;

    qryYdcy.Next;
    Inc(i);
  end;
  sgdYdcy.Refresh;
end;

//刷新预定客房
procedure TKfztForm.ShowYdkf;
var
  i: Integer;
begin
  FYdkfNum := qryYdkf.RecordCount;//预定数量
  SetLength(FYdkf,FYdkfNum);
  sgdYdkf.ColCount := KfColNum;
  sgdYdkf.RowCount := (FYdkfNum div KfColNum)+1;

  qryYdkf.First;
  i := 0;
  while not qryYdkf.Eof do
  begin
    FYdkf[i].AYdbh := qryYdkf.FieldByName('D_YDBH').AsString;
    FYdkf[i].AKrbh := qryYdkf.FieldByName('D_KRBH').AsString;
    FYdkf[i].AKrxm := qryYdkf.FieldByName('D_KRXM').AsString;
    FYdkf[i].ADdrq := qryYdkf.FieldByName('D_DDRQ').AsDateTime;
    FYdkf[i].ADdsj := qryYdkf.FieldByName('D_DDSJ').AsDateTime;
    FYdkf[i].ALdrq := qryYdkf.FieldByName('D_LDRQ').AsDateTime;
    FYdkf[i].ALdsj := qryYdkf.FieldByName('D_LDSJ').AsDateTime;
    FYdkf[i].AKfbh := qryYdkf.FieldByName('D_KFBH').AsString;
    FYdkf[i].AXfje := qryYdkf.FieldByName('D_XFJE').AsCurrency;
    FYdkf[i].ARzbz := qryYdkf.FieldByName('D_RZBZ').AsBoolean;
    FYdkf[i].AJsbz := qryYdkf.FieldByName('D_JSBZ').AsString;
    FYdkf[i].AYdbz := qryYdkf.FieldByName('D_YDBZ').AsString;
    FYdkf[i].AColor := cl3DLight;

    //如果过期
    if FYdkf[i].ADdrq < Date then FYdkf[i].ASjgq := True
    else FYdkf[i].ASjgq := False;
    if FYdkf[i].ASjgq then FYdkf[i].AColor := clYellow;

    //如果确认
    if FYdkf[i].ARzbz then FYdkf[i].AColor := clGreen;

    //如果结算
    if FYdkf[i].AJsbz = JS_YES then FYdkf[i].AColor := clRed;

    FYdkf[i].AImage := 0;
    if FYdkf[i].ARzbz          then FYdkf[i].AImage := 1;
    if FYdkf[i].AJsbz = JS_YES then FYdkf[i].AImage := 2;
    if FYdkf[i].ASjgq          then FYdkf[i].AImage := 3;

    qryYdkf.Next;
    Inc(i);
  end;
  sgdYdkf.Refresh;
end;

//刷新预定会场
procedure TKfztForm.ShowYdhc;
var
  i: Integer;
begin
  FHcNum := qryYdhc.RecordCount;//预定数量
  SetLength(FYdhc,FHcNum);
  sgdYdhc.ColCount := HcColNum;
  sgdYdhc.RowCount := (FHcNum div HcColNum)+1;

  qryYdhc.First;
  i := 0;
  while not qryYdhc.Eof do
  begin
    FYdhc[i].AYdbh := qryYdhc.FieldByName('D_YDBH').AsString;
    FYdhc[i].AKrbh := qryYdhc.FieldByName('D_KRBH').AsString;
    FYdhc[i].AKrxm := qryYdhc.FieldByName('D_KRXM').AsString;
    FYdhc[i].ASyrq := qryYdhc.FieldByName('D_SYRQ').AsDateTime;
    FYdhc[i].ASjdm := qryYdhc.FieldByName('D_SJDM').AsString;
    FYdhc[i].AHcdm := qryYdhc.FieldByName('D_HCBH').AsString;
    FYdhc[i].AHcmc := qryYdhc.FieldByName('D_HCMC').AsString;
    FYdhc[i].AHczj := qryYdhc.FieldByName('D_HCZJ').AsCurrency;
    FYdhc[i].ARzbz := qryYdhc.FieldByName('D_RZBZ').AsBoolean;
    FYdhc[i].AJsbz := qryYdhc.FieldByName('D_JSBZ').AsString;
    FYdhc[i].AColor := cl3DLight;

    //如果过期
    if FYdhc[i].ASyrq < Date then FYdhc[i].ASjgq := True
    else FYdhc[i].ASjgq := False;
    if FYdhc[i].ASjgq then FYdhc[i].AColor := clYellow;

    //如果确认
    if FYdhc[i].ARzbz then FYdhc[i].AColor := clGreen;

    //如果结算
    if FYdhc[i].AJsbz = JS_YES then FYdhc[i].AColor := clRed;

    FYdhc[i].AImage := 0;
    if FYdhc[i].ARzbz          then FYdhc[i].AImage := 1;
    if FYdhc[i].ASjgq          then FYdhc[i].AImage := 3;
    if FYdhc[i].AJsbz = JS_YES then FYdhc[i].AImage := 2;
    
    qryYdhc.Next;
    Inc(i);
  end;
  sgdYdhc.Refresh;
end;

//预定刷新
procedure TKfztForm.btnYdRefreshClick(Sender: TObject);
begin
  inherited;
  ShowYdhc;
  ShowYdcy;
  ShowYdkf;
end;

//预定会场
procedure TKfztForm.btnYdhcClick(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  AKrbh := YdxxSel;
  if AKrbh<>'' then
  begin
    YdhcNew(AKrbh);
    ShowYdhc;
  end;
end;

procedure TKfztForm.sgdYdhcDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  i : Integer;
begin
  inherited;
  i := ARow*sgdYdhc.ColCount + ACol;

  if i<FHcNum then
  begin
    with sgdYdhc do
    begin
      Canvas.Brush.Color := FYdhc[i].AColor;
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left,Rect.Top,DateToStr(FYdhc[i].ASyrq)+FYdhc[i].ASjdm);
      Canvas.TextOut(Rect.Left,Rect.Top+20,FYdhc[i].AHcmc+' '+CurrToStr(FYdhc[i].AHczj)+'元');
      Canvas.TextOut(Rect.Left,Rect.Top+40,FYdhc[i].AKrxm);
      ImageList3.Draw(Canvas,Rect.Left,Rect.Top+60,FYdhc[i].AImage);
    end;
  end;
end;

//预定信息
procedure TKfztForm.btnYdxxClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  Ydxx;
  ShowYdhc;
end;

procedure TKfztForm.sgdYdhcDblClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  if FHcSelect < FHcNum then
  begin
    if (not FYdhc[FHcSelect].ARzbz)and(FYdhc[FHcSelect].AJsbz=JS_NO) then
    begin
      YdhcEdit(FYdhc[FHcSelect].AKrbh,FYdhc[FHcSelect].AYdbh);
      ShowYdhc;
      Exit;
    end;
    if (FYdhc[FHcSelect].ARzbz)and(FYdhc[FHcSelect].AJsbz = JS_NO) then
    begin
      YdhcJs(FYdhc[FHcSelect].AKrbh,FYdhc[FHcSelect].AYdbh);
      ShowYdhc;
    end;
  end;
end;

procedure TKfztForm.sgdYdhcSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  inherited;
  FHcSelect := ARow*sgdYDhc.ColCount + ACol;
end;

procedure TKfztForm.sgdYdcyDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  i : Integer;
begin
  inherited;
  i := ARow*sgdYdcy.ColCount + ACol;
  if i<FCyNum then
  begin
    with sgdYdcy do
    begin
      Canvas.Brush.Color := FYdcy[i].AColor;
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left,Rect.Top,DateToStr(FYdcy[i].ASyrq)+FYdcy[i].ASjdm);
      Canvas.TextOut(Rect.Left,Rect.Top+20,FYdcy[i].ACtmc+' '+FYdcy[i].AYcbz);
      Canvas.TextOut(Rect.Left,Rect.Top+40,FYdcy[i].AKrxm);
      ImageList3.Draw(Canvas,Rect.Left,Rect.Top+60,FYdcy[i].AImage);
    end;
  end;
end;

procedure TKfztForm.sgdYdcySelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  inherited;
  FCySelect := ARow*sgdYdcy.ColCount + ACol;
end;

procedure TKfztForm.sgdYdcyDblClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  if FCySelect < FCyNum then
  begin
    if FYdcy[FCySelect].ACtmc<>'团队定餐' then
      YdcyskEdit(FYdcy[FCySelect].AKrbh,FYdcy[FCySelect].AYdbh)
    else
      YdcytdEdit(FYdcy[FCySelect].AKrbh,FYdcy[FCySelect].AYdbh);
    ShowYdcy;
  end;
end;

procedure TKfztForm.btnHcjsClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
  if (FHcSelect < FHcNum) then
  begin
    if (FYdhc[FHcSelect].ARzbz)and(FYdhc[FHcSelect].AJsbz = JS_NO) then
    begin
      YdhcJs(FYdhc[FHcSelect].AKrbh,FYdhc[FHcSelect].AYdbh);
      ShowYdhc;
    end;
  end;
end;

//预定清理
procedure TKfztForm.btnYdClearClick(Sender: TObject);
var
  s: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  s := 'delete from YDHC where D_SYRQ<:D';
  with HotelData.qryUserData do
  begin
    if Active then Active := False;
    SQL.Clear;
    SQL.Add(s);
    Params[0].DataType := ftDate;
    Params[0].Value := Date;
    ExecSQL;
    Close;
  end;
  s := 'delete from YDCY where D_SYRQ<:D';
  with HotelData.qryUserData do
  begin
    if Active then Active := False;
    SQL.Clear;
    SQL.Add(s);
    Params[0].DataType := ftDate;
    Params[0].Value := Date;
    ExecSQL;
    Close;
  end;
  s := 'delete from YDKF where D_DDRQ<:D';
  with HotelData.qryUserData do
  begin
    if Active then Active := False;
    SQL.Clear;
    SQL.Add(s);
    Params[0].DataType := ftDate;
    Params[0].Value := Date;
    ExecSQL;
    Close;
  end;

  s := 'delete from YDXX '
      +'where (D_KRBH<>any(select D_KRBH from YDHC))'
      +'and(D_KRBH<>any(select D_KRBH from YDCY))';
  with HotelData.qryUserData do
  begin
    if Active then Active := False;
    SQL.Clear;
    SQL.Add(s);
    ExecSQL;
    Close;
  end;
  ShowYdhc;
  ShowYdcy;
  ShowYdkf;
end;

//散客预定餐饮
procedure TKfztForm.btnYdcyskClick(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  AKrbh := YdxxSel;
  if AKrbh<>'' then
  begin
    YdcyskNew(AKrbh);
    ShowYdcy;
  end;
end;

//团队预定餐饮
procedure TKfztForm.btnYdcytdClick(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  AKrbh := YdxxSel;
  if AKrbh<>'' then
  begin
    YdcytdNew(AKrbh);
    ShowYdcy;
  end;
end;

procedure TKfztForm.sgdYdkfDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  i : Integer;
begin
  inherited;
  i := ARow*sgdYdkf.ColCount + ACol;
  if i<FYdkfNum then
  begin
    with sgdYdkf do
    begin
      Canvas.Brush.Color := FYdkf[i].AColor;
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left,Rect.Top,DateToStr(FYdkf[i].ADdrq)+' '+FormatDateTime('hh:mm',FYdkf[i].ADdsj));
      Canvas.TextOut(Rect.Left,Rect.Top+15,DateToStr(FYdkf[i].ALdrq)+' '+FormatDateTime('hh:mm',FYdkf[i].ALdsj));
      Canvas.TextOut(Rect.Left,Rect.Top+30,FYdkf[i].AKfbh+'房 '+CurrToStr(FYdkf[i].AXfje)+'元');
      Canvas.TextOut(Rect.Left,Rect.Top+45,FYdkf[i].AKrxm);
      ImageList3.Draw(Canvas,Rect.Left,Rect.Top+60,FYdkf[i].AImage);
    end;
  end;
end;

procedure TKfztForm.sgdYdkfDblClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  if FKfSelect < FYdkfNum then
  begin
    if FYdKf[FKfSelect].AKfbh<>'' then
    begin
      if FYdkf[FKfSelect].AYdbz = YDKF_SK then
        YdkfskEdit(FYdkf[FKfSelect].AKrbh,FYdkf[FKfSelect].AYdbh)
      else
        YdkftdEdit(FYdkf[FKfSelect].AKrbh,FYdkf[FKfSelect].AYdbh);
    end;
    ShowYdkf;
  end;
end;

//散客预定客房
procedure TKfztForm.btnYdkfskClick(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  AKrbh := YdxxSel;
  if AKrbh<>'' then
  begin
    YdKfskNew(AKrbh);
    ShowYdkf;
  end;
end;


procedure TKfztForm.sgdYdkfSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  inherited;
  FKfSelect := ARow*sgdYdkf.ColCount + ACol;
end;


//团队预定客房
procedure TKfztForm.btnYdkftdClick(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
  AKrbh := YdxxSel;
  if AKrbh<>'' then
  begin
    YdKfTdNew(AKrbh);
    ShowYdkf;
  end;
end;

//预定说明
procedure TKfztForm.BitBtn17Click(Sender: TObject);
begin
  inherited;
  Ydsm;
end;

procedure TKfztForm.FormCreate(Sender: TObject);
begin
  inherited;
  KfztInit;
end;

end.

⌨️ 快捷键说明

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