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

📄 c_kfzt.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  with qryTd do
  begin
    DisableControls;
    for i:=1 to 10 do
      (KfztForm.FindComponent('lblTdmc'+IntToStr(i)) as TStaticText).Caption := '';
    Close;
    Open;
    First;
    while not Eof do
    begin
      (KfztForm.FindComponent('lblTdmc'+IntToStr(qryTd.RecNo)) as TStaticText).Caption := qryTd.FieldbyName('D_KRXM').AsString;
      for i:=0 to FKfNum-1 do
        if FKfzt[i].AKrxm = qryTd.FieldByName('D_KRXM').AsString then
          FKfzt[i].AColor := (KfztForm.FindComponent('lblTdmc'+IntToStr(qryTd.RecNo)) as TStaticText).Color;
      Next;
    end;
    EnableControls;
  end;

  sgdKfzt.Refresh;
  tblXxbd.Refresh;

  Screen.Cursor := crDefault;
end;

//入住率图表显示
procedure TKfztForm.ShowRzl;
var
  AOk,ABf,ATd,AWx,AMf,AZk: Integer;
  ACzl: Double;
begin
  tblkfzt.DisableControls;
  AOk := 0;ABf := 0;ATd := 0;AWx := 0;AMf := 0;AZk := 0;
  with tblKfzt do
  begin
    First;
    while not Eof do
    begin
      if FieldByName('D_KFZT').AsString = KFZT_OK then Inc(AOk)
      else
      if FieldByName('D_KFZT').AsString = KFZT_BF then Inc(ABf)
      else
      if FieldByName('D_KFZT').AsString = KFZT_TD then Inc(ATd)
      else
      if FieldByName('D_KFZT').AsString = KFZT_WX then Inc(AWx)
      else
      if FieldByName('D_KFZT').AsString = KFZT_MF then Inc(AMf)
      else
      if FieldByName('D_KFZT').AsString = KFZT_ZK then Inc(AZk);
      Next;
    end;
  end;
  with Series1 do
  begin
    Clear;
    AddPie(AOk,'空房',clWhite);
    AddPie(ABf,'散客',clGreen);
    AddPie(ATd,'团队',clBlue);
    AddPie(AWx,'维修',clRed);
    AddPie(AMf,'免费',clYellow);
    AddPie(AZk,'脏空',clBlack);
  end;
  with Series2 do
  begin
    Clear;
    if (AOk+ABf+ATd+AMf+AZk)=0 then ACzl := 0
    else
      ACzl := (ABf+ATd+AMf)/(AOk+ABf+ATd+AMf+AZk);
    AddBar(AOk+ABf+ATd+AMf+AZk,'客房总数',clBlue);
    AddBar(ABf+ATd+AMf,'出租数',clGreen);
    AddBar(ACzl*100,'出租率%',clRed)
  end;
  tblKfzt.EnableControls;
end;

//右键菜单
procedure TKfztForm.PopupMenu1Popup(Sender: TObject);
var
  Enable: Boolean;
  AKfzt : string;
begin
  inherited;
  Enable := False;

  menuNbdj.Enabled := Enable;
  menuWbdj.Enabled := Enable;
  menuMfdj.Enabled := Enable;
  menuTddj.Enabled := Enable;
  menuXxxg.Enabled := Enable;
  menuCyxf.Enabled := Enable;
  menuDhfj.Enabled := Enable;
  menuYksy.Enabled := Enable;
  menuJz.Enabled   := Enable;
  menuOkf.Enabled  := Enable;
  menuWxf.Enabled  := Enable;

  if FSelect >= FKfNum then Exit;

  AKfzt := FKfzt[FSelect].AKfzt;

  if (AKfzt<>KFZT_WX)and(AKfzt<>KFZT_MF)and(AKfzt<>KFZT_ZK) then
  begin
    Enable := AKfzt<> KFZT_OK;
    menuNbdj.Enabled := not Enable;
    menuWbdj.Enabled := not Enable;
    menuMfdj.Enabled := not Enable;
    menuTddj.Enabled := not Enable;
    menuXxxg.Enabled := Enable;
    menuDhfj.Enabled := Enable;
    menuYksy.Enabled := Enable;
    menuCyxf.Enabled := Enable;
    menuJz.Enabled   := Enable and (AKfzt<>KFZT_TD);
  end;

  if AKfzt=KFZT_OK then menuWxf.Enabled := True;

  if  (AKfzt=KFZT_ZK)
    or(AKfzt=KFZT_WX)
    or(AKfzt=KFZT_MF) then
      menuOkf.Enabled := True;

end;

//内宾接待
procedure TKfztForm.menuNbdjClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  NbjdEnter(tblKfztD_KFBH.Value);

  //刷新
  ShowKfzt;
  ShowRzl;
end;

//信息修改
procedure TKfztForm.menuXxxgClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  XxxgEnter(tblKfztD_KRBH.Value);

  ShowKfzt;
end;

//房态刷新
procedure TKfztForm.btnRefreshClick(Sender: TObject);
begin
  inherited;
  ShowKfzt;
  ShowRzl;
  ShowYjxf;
end;

//外宾接待
procedure TKfztForm.menuWbdjClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  WbjdEnter(tblKfztD_KFBH.Value);

  ShowKfzt;
  ShowRzl;
end;

//团队接待
procedure TKfztForm.menuTddjClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  Tdjd;
  
  ShowKfzt;
  ShowRzl;
end;

//调换房间
procedure TKfztForm.menuDhfjClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  SktfEnter(tblKfztD_KFBH.Value);

  ShowKfzt;
  ShowRzl;
end;

//押金查询
procedure TKfztForm.menuCyyjClick(Sender: TObject);
begin
  inherited;
end;

//帐单查询
procedure TKfztForm.menuCyxfClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
  if tblKfztD_KFZT.Value=KFZT_BF then
    ZdcxEnter(tblKfztD_KFBH.Value);
  if tblKfztD_KFZT.Value=KFZT_TD then
    ZdcxtdEnter(tblKfztD_KRBH.Value);
end;

//寓客收银
procedure TKfztForm.menuYksyClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
  YksyEnter(tblKfztD_KFBH.Value);
end;

//散客结帐
procedure TKfztForm.menuJzClick(Sender: TObject);
var
  AJzxx: TJZXX;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
  AJzxx := SkjzEnter(tblKfztD_KFBH.Value);
  if AJzxx.AJzfs<>'' then
    Zd(AJzxx);
    
  ShowKfzt;
  ShowRzl;
end;

//设置OK房
procedure TKfztForm.menuOkfClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;

  //如果是免费房
  if tblKfztD_KFZT.Value = KFZT_MF then
  begin
    //20020627 edit by ls.
    HotelData.EmptyData('select * from KRXX where D_KRBH="'+tblKfztD_KRBH.Value+'"');
    tblKfzt.Edit;
    tblKfztD_KRBH.Value := '';
    tblKfzt.Post;
  end;

  HotelData.SetKfzt(tblKfztD_KFBH.Value,KFZT_OK);

  ShowKfzt;
  ShowRzl;
end;

//设置维修房
procedure TKfztForm.menuWxfClick(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;

  HotelData.SetKfzt(tblKfztD_KFBH.Value,KFZT_WX);

  ShowKfzt;
  ShowRzl;
end;

//显示时间
procedure TKfztForm.Timer1Timer(Sender: TObject);
begin
  inherited;
  lblTime.Caption := DateToStr(Date)+' '+TimeToStr(Time);
end;

//房态导航
procedure TKfztForm.btnFtdhClick(Sender: TObject);
begin
  inherited;
  FtdhForm.Show;
end;

//房态导航函数
procedure TKfztForm.Ftdh;
begin
  ShowKfzt;
end;

//团队补登
procedure TKfztForm.BitBtn1Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;

  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    Tdbd(AKrbh);
    ShowKfzt;
  end;
end;

//团队退房
procedure TKfztForm.BitBtn2Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;

  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    Tdtf(AKrbh);
    ShowKfzt;
  end;
end;

//团队结帐
procedure TKfztForm.BitBtn3Click(Sender: TObject);
var
  AKrbh: string;
  AJzxx: TTdJzxx;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;

  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    AJzxx := Tdjz(AKrbh);
    if AJzxx.AJzfs<>'' then
    begin
      Tdzd(AJzxx);
      ShowKfzt;
    end;
  end;
end;

//团队补交押金
procedure TKfztForm.BitBtn4Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;

  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    Bjyjtd(AKrbh);
  end;
end;

//团队变更押金
procedure TKfztForm.BitBtn5Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;

  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    Tdyjbg(AKrbh);
  end;
end;

//团队押金查询

//团队预先结帐
procedure TKfztForm.BitBtn7Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
  
  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    YxjzTd(AKrbh);
  end;
end;

//团队用房
procedure TKfztForm.BitBtn8Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;

  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    Tdyfcx(AKrbh);
  end;
end;

//团队接待
procedure TKfztForm.BitBtn9Click(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;

  Tdjd;
  ShowKfzt;
end;

//房价变更
procedure TKfztForm.BitBtn10Click(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'房价变更') then Exit;
  Fjbg;
end;

//当天半全价
procedure TKfztForm.BitBtn11Click(Sender: TObject);
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
  Dtbqj;
end;

//团队信息修改
procedure TKfztForm.BitBtn12Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
  begin
    XxxgEnter(AKrbh);
  end;
end;

//押金消费
procedure TKfztForm.tblKfztD_KFZTGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  inherited;
  if DisplayText then
  begin
    if Sender.AsString=KFZT_BF then Text := '包房';
    if Sender.AsString=KFZT_TD then Text := '团队';
    if Sender.AsString=KFZT_MF then Text := '免费';
    if Sender.AsString=KFZT_WX then Text := '维修';
    if Sender.AsString=KFZT_OK then Text := '空房';
    if Sender.AsString=KFZT_ZK then Text := '脏空';
  end;
end;

//刷新客房时
procedure TKfztForm.sgdKfztDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  i : Integer;
begin
  inherited;
  i := ARow*sgdKfzt.ColCount + ACol;

  if i<FKfNum then
  begin
    with sgdKfzt do
    begin
      Canvas.Brush.Color := FKfzt[i].AColor;
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left,Rect.Top,FKfzt[i].AKfbh);
      Canvas.TextOut(Rect.Left,Rect.Top+13,FKfzt[i].ACjbz+FKfzt[i].AYdbz);
      //20020627 edit by ls.
      {if FKfzt[i].ASjfj<>0 then
        Canvas.TextOut(Rect.Left,Rect.Top+13,CurrToStr(FKfzt[i].ASjfj)+'元');
      if IS_SHOWIMAGE then
        ImageList1.Draw(Canvas,Rect.Left,Rect.Top+13,FKfzt[i].AImage);}
    end;
  end;
end;

//当选择客房时
procedure TKfztForm.sgdKfztSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  inherited;
  sgdKfzt.ShowHint := False;
  FSelect := ARow*sgdKfzt.ColCount + ACol;
  if FSelect < FKfnum then
  begin
    tblKfzt.Locate('D_KFBH',FKfzt[FSelect].AKfbh,[]);
    sgdKfzt.Hint :=  '客人姓名:' + tblKfztD_KRXM.Value+#13#10
                   + '实际房价:' + CurrToStr(tblKfztD_SJFJ.Value);
    sgdKfzt.ShowHint := True;
  end;
end;

//免费登记
procedure TKfztForm.menuMfdjClick(Sender: TObject);
var
  AKfbh: string;
begin
  inherited;
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  AKfbh := tblKfztD_KFBH.Value;
  MfjdEnter(AKfbh);
  ShowKfzt;
  ShowRzl;
end;

//团帐查询
procedure TKfztForm.BitBtn14Click(Sender: TObject);
var
  AKrbh: string;
begin
  inherited;
  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if AKrbh<>'' then
    ZdcxTdEnter(AKrbh);
end;

//团队取消客房
procedure TKfztForm.BitBtn15Click(Sender: TObject);
var

⌨️ 快捷键说明

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