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

📄 c_main.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_ZK then
    begin
      FKfzt[i].AColor := COLOR_ZK;
      FKfzt[i].AImage := 5;
      FKfzt[i].ACjbz  := '';
    end;

    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_MF then
    begin
      FKfzt[i].AColor := COLOR_MF;
      FKfzt[i].AImage := 4;
      FKfzt[i].ACjbz  := '';
    end;

    sgdKfzt.Refresh;
    ShowRzl;
    qryKfxx.Close;
    qryKfxx.Open;
  end;
end;

//显示结帐客房状态
procedure TMainForm.ShowJzkfzt;
var
  i : Integer;
begin
  tblKfzt.Refresh;
  tblKfzt.First;
  while not tblKfzt.Eof do
  begin
    if tblKfzt.FieldByName('D_KFZT').AsString = KFZT_ZK then
    begin
      i := FindKfbhId(tblKfzt.FieldByName('D_KFBH').AsString);
    if i<0 then raise Exception.Create('刷新房态发生错误!请重新运行程序。');
    FKfzt[i].AKfbh := tblKfzt.FieldbyName('D_KFBH').AsString;
    FKfzt[i].AKfzt := tblKfzt.FieldByName('D_KFZT').AsString;
    FKfzt[i].AKrbh := tblKfzt.FieldByName('D_KRBH').AsString;
    FKfzt[i].AKrxm := tblKfzt.FieldByName('D_KRXM').AsString;
    FKfzt[i].ASjfj := tblKfzt.FieldByName('D_SJFJ').AsCurrency;
    FKfzt[i].AYjbh := tblKfzt.FieldByName('D_YJBH').AsString;
    FKfzt[i].AColor := COLOR_ZK;
    FKfzt[i].AImage := 5;
    FKfzt[i].ACjbz  := '';

    //判断是否被预定
    if IsYdkf(FKfzt[i].AKfbh) then
      FKfzt[i].AYdbz := '★'
    else
      FKfzt[i].AYdbz := '';

    end;
    tblKfzt.Next;
  end;

    sgdKfzt.Refresh;
    ShowRzl;
    qryKfxx.Close;
    qryKfxx.Open;
end;

//显示所有客房状态
procedure TMainForm.ShowKfzt;
var
  i,j : Integer;
begin
  //刷新客房
  sgdKfzt.Color := COLOR_BJ;
  sgdKfzt.Font.Color := COLOR_ZT;
  
  tblKfzt.Refresh;
  qryKfxx.Close;
  qryKfxx.Open;
  //获取团队信息
  qryTd.Close;
  qryTd.Open;
  //获取团队信息
  GetTdInfo;

  //团队信息刷新
  for i:=1 to 10 do
    (MainForm.FindComponent('lblTdmc'+IntToStr(i)) as TStaticText).Caption := '';

  //显示团队信息
  for i:=0 to FTdNum - 1 do
    (MainForm.FindComponent('lblTdmc'+IntToStr(i+1)) as TStaticText).Caption := FTdInfo[i].ATdxx.AKrxm;

  FKfNum := tblKfzt.RecordCount;//客房总数
  SetLength(FKfzt,FKfNum);
  //edit by ls. 20020823
  //sgdKfzt.ColCount := ColNum;
  //sgdKfzt.RowCount := (FKfNum div ColNum) + 1;

  sgdKfzt.ColCount := (FKfNum div ColNum)*2 + 1;
  sgdKfzt.RowCount := ColNum;

  tblKfzt.First;
  i := 0;

  while not tblKfzt.Eof do
  begin
    FKfzt[i].AKfbh := tblKfzt.FieldbyName('D_KFBH').AsString;
    FKfzt[i].AKfzt := tblKfzt.FieldByName('D_KFZT').AsString;
    FKfzt[i].AKrbh := tblKfzt.FieldByName('D_KRBH').AsString;
    FKfzt[i].AKrxm := tblKfzt.FieldByName('D_KRXM').AsString;
    FKfzt[i].ASjfj := tblKfzt.FieldByName('D_SJFJ').AsCurrency;
    FKfzt[i].AYjbh := tblKfzt.FieldByName('D_YJBH').AsString;

    //判断是否被预定
    {if IsYdkf(FKfzt[i].AKfbh) then
      FKfzt[i].AYdbz := '★'
    else
      FKfzt[i].AYdbz := '';}
    FKfzt[i].AYdbz := '';
    if IS_SHOWDDTS then
      FKfzt[i].ADdts := HotelData.GetDdts(FKfzt[i].AKfbh)
    else
      FKfzt[i].ADdts := '';
    
    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_OK then
    begin
      FKfzt[i].AColor := COLOR_OK;
      FKfzt[i].AImage := 0;
      FKfzt[i].ACjbz  := '';
    end;

    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_BF then
    begin
      FKfzt[i].AColor := COLOR_BF;
      FKfzt[i].AImage := 1;
      {if IsYjcj(FKfzt[i].AKfbh) then
        FKfzt[i].ACjbz := '¥'
      else
        FKfzt[i].ACjbz := '';}
    end;

    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_TD then
    begin
      FKfzt[i].AColor := COLOR_TD;
      FKfzt[i].AImage := 2;
      for j:=0 to FTdNum - 1 do
        if FTdInfo[j].ATdxx.AKrxm = FKfzt[i].AKrxm then
        begin
          FKfzt[i].AColor := (MainForm.FindComponent('lblTdmc'+IntToStr(j+1)) as TStaticText).Color;
          {if (FTdInfo[j].AYfje<>0)and(FTdInfo[j].AXfje>(FTdInfo[j].AYfje-100)) then
            FKfzt[i].ACjbz := '¥'
          else
            FKfzt[i].ACjbz := '';}
          Break;
        end;
      end;

    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_WX then
    begin
      FKfzt[i].AColor := COLOR_WX;
      FKfzt[i].AImage := 3;
      FKfzt[i].ACjbz  := '';
    end;

    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_ZK then
    begin
      FKfzt[i].AColor := COLOR_ZK;
      FKfzt[i].AImage := 5;
      FKfzt[i].ACjbz  := '';
    end;

    if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_MF then
    begin
      FKfzt[i].AColor := COLOR_MF;
      FKfzt[i].AImage := 4;
      FKfzt[i].ACjbz  := '';
    end;

    Inc(i);
    tblKfzt.Next;
  end;

  sgdKfzt.Refresh;
  qryXxbd.Close;
  qryXxbd.Open;
end;

//入住率图表显示
procedure TMainForm.ShowRzl;
var
  AOk,ABf,ATd,AWx,AMf,AZk: Integer;
  ACzs,ACzl              : Double;
  s                      : string;
  APjfj,AJjfj            : Currency;
begin
  //AOk := 0;ABf := 0;ATd := 0;AWx := 0;AMf := 0;AZk := 0;
  s := 'select count(*) from KFZT where D_KFZT="'+KFZT_OK+'"';
  AOk := HotelData.SumCount(s);
  s := 'select count(*) from KFZT where D_KFZT="'+KFZT_BF+'"';
  ABf := HotelData.SumCount(s);
  s := 'select count(*) from KFZT where D_KFZT="'+KFZT_TD+'"';
  ATd := HotelData.SumCount(s);
  s := 'select count(*) from KFZT where D_KFZT="'+KFZT_WX+'"';
  AWx := HotelData.SumCount(s);
  s := 'select count(*) from KFZT where D_KFZT="'+KFZT_MF+'"';
  AMf := HotelData.SumCount(s);
  s := 'select count(*) from KFZT where D_KFZT="'+KFZT_ZK+'"';
  AZk := HotelData.SumCount(s);

  ACZS := 0;
  APJFJ := 0;
  with tblKfzt do
  begin
    DisableControls;
    First;
    while not Eof do
    begin
      if (tblKfzt.FieldByName('D_KFZT').AsString=KFZT_BF)or
         (tblKfzt.FieldByName('D_KFZT').AsString=KFZT_TD)or
         (tblKfzt.FieldByName('D_KFZT').AsString=KFZT_MF) then
      begin
        if tblKfzt.FieldByName('D_KFBZ').AsString = KFBZ_DT then
        begin
          ACzs := ACzs + 1;
          APjfj := APjfj + tblKfzt.FieldByName('D_SJFJ').AsCurrency;
        end
        else
        begin
          if (Time>EnCodeTime(12,0,0,0))
          and(Time<=EnCodeTime(18,0,0,0))
          and(TIme<EnCodeTime(23,0,0,0)) then
            begin
              ACzs := ACzs+0.5;
              APjfj:= APjfj + tblKfzt.FieldByName('D_SJFJ').AsCurrency*0.5;
            end
          else if (Time>EnCodeTime(18,0,0,0))and(Time<EnCodeTime(23,0,0,0)) then
            begin
              ACzs := ACzs+1;
              APjfj:= APjfj + tblKfzt.FieldByName('D_SJFJ').AsCurrency;
            end;
        end;
      end;
      Next;
    end;

    EnableControls;
  end;
    {ACzs := ACzs
          + HotelData.SumCount('select sum(D_QJS) from KFZT')
          + HotelData.SumCount('select sum(D_BJS) from KFZT')*0.5;

    AJjfj := HotelData.SumJe('select sum(D_JJFJ) from KFZT');}
    ACzs := ACzs
          + HotelData.SumCount('select sum(D_QJS) from BQJ')
          + HotelData.SumCount('select sum(D_BJS) from BQJ')*0.5;

    AJjfj := HotelData.SumJe('select sum(D_JJFJ) from BQJ');

  if (AOk+ABf+ATd+AMf+AZk)=0 then ACzl := 0
  else
    ACzl := ACzs/141;//(AOk+ABf+ATd+AMf+AZk);
  if ACzs=0 then APjfj := 0
  else
    APjfj := (APjfj+AJjfj)/ACzs;
  lblPjfj.Caption := '均价:'+FormatFloat('#.##',APjfj);
  with Series1 do
  begin
    Clear;
    AddBar(AOk,'空房',COLOR_OK);
    AddBar(ABf,'散客',COLOR_BF);
    AddBar(ATd,'团队',COLOR_TD);
    AddBar(AWx,'维修',COLOR_WX);
    AddBar(AMf,'免费',COLOR_MF);
    AddBar(AZk,'脏空',COLOR_ZK);
  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;

end;


procedure TMainForm.PopupMenu1Popup(Sender: TObject);
var
  Enable: Boolean;
  AKfzt : string;
begin
  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 := tblKfzt.FieldByName('D_KFZT').AsString;
  
  //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 TMainForm.menuNbdjClick(Sender: TObject);
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  NbjdEnter(tblKfzt.FieldByName('D_KFBH').AsString);
  //刷新
  if NbjdForm.ModalResult <> mrOK then
  begin
    ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
    //RefreshKfzt;
  end;
end;

//信息修改
procedure TMainForm.menuXxxgClick(Sender: TObject);
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  XxxgEnter(tblKfzt.FieldByName('D_KRBH').AsString);
end;

//房态刷新
procedure TMainForm.btnRefreshClick(Sender: TObject);
begin
  RefreshKfzt;
end;

//外宾接待
procedure TMainForm.menuWbdjClick(Sender: TObject);
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  WbjdEnter(tblKfzt.FieldByName('D_KFBH').AsString);
  if WbjdForm.ModalResult <> mrOK then
  begin
    ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
    //RefreshKfzt;
  end;
end;

//团队接待
procedure TMainForm.menuTddjClick(Sender: TObject);
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  Tdjd;
  if TdjdForm.ModalResult <> mrOK then
    RefreshKfzt;
end;

//调换房间
procedure TMainForm.menuDhfjClick(Sender: TObject);
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
  SktfEnter(tblKfzt.FieldByName('D_KFBH').AsString);
  if SktfForm.ModalResult <> mrOK then
    RefreshKfzt;
end;

//帐单查询
procedure TMainForm.menuCyxfClick(Sender: TObject);
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
  if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_BF then
    ZdcxEnter(tblKfzt.FieldByName('D_KFBH').AsString);
  if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_TD then
    ZdcxtdEnter(tblKfzt.FieldByName('D_KRBH').AsString);
end;

//寓客收银
procedure TMainForm.menuYksyClick(Sender: TObject);
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
  YksyEnter(tblKfzt.FieldByName('D_KFBH').AsString);
end;

//散客结帐
procedure TMainForm.menuJzClick(Sender: TObject);
//var
  //AJzxx: TJZXX;
begin
  if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
  SkjzEnter(tblKfzt.FieldByName('D_KFBH').AsString);
  ShowJzkfzt;
  //AJzxx := SkjzEnter(tblKfzt.FieldByName('D_KFBH').AsString);
  //if AJzxx.AJzfs<>'' then
  //begin
    //Zd(AJzxx);
    //if ZdForm.ModalResult <> mrOK then
      //ShowJzkfzt;
  //end;
end;

//设置OK房
procedure TMainForm.menuOkfClick(Sender: TObject);
begin
//  if not HotelData.CheckYgqx(CZY.CzyBh,'房态变更') then Exit;

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

  HotelData.SetKfzt(tblKfzt.FieldByName('D_KFBH').AsString,KFZT_OK);
  ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
  //RefreshKfzt;

end;

//设置维修房
procedure TMainForm.menuWxfClick(Sender: TObject);
begin
//  if not HotelData.CheckYgqx(CZY.CzyBh,'房态变更') then Exit;

  HotelData.SetKfzt(tblKfzt.FieldByName('D_KFBH').AsString,KFZT_WX);
  ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
  //RefreshKfzt;
end;

//显示时间
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
  lblTime.Caption := FormatDateTime('yyyymmdd hh:nn:ss',Now);
end;

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

//房态导航函数
procedure TMainForm.Ftdh;
begin
  RefreshKfzt;
end;

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

  AKrbh := qryTd.FieldByName('D_KRBH').AsString;
  if not CheckTd(AKrbh) then
  begin
    ShowWarning('该团队不存在!请刷新房态。');
    Exit;
  end;
  if AKrbh<>'' then
  begin
    Tdbd(AKrbh);
    if TdbdForm.ModalResult <> mrOK then
      RefreshKfzt;
  end;
end;

//团队退房
procedure

⌨️ 快捷键说明

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