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

📄 c_ctmain.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  IS_YDXS := False;
  ShowCtzt;
end;

procedure TCtmainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  tblCtzt.Close;
end;

//刷新餐厅状态
procedure TCtmainForm.sgdCtztDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  i : Integer;
begin
  i := ARow*sgdCtzt.ColCount + ACol;
  if i<FCtNum then
  begin
    with sgdCtzt do
    begin
      Canvas.Brush.Color := FCtzt[i].AColor;
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left,Rect.Top,FCtzt[i].ACtmc);
      Canvas.TextOut(Rect.Left,Rect.Top+14,FCtzt[i].AKrxm);
      if FCtzt[i].AXfje<>0 then
        Canvas.TextOut(Rect.Left,Rect.Top+28,CurrToStr(FCtzt[i].AXfje)+'元');
      if (FCtzt[i].ACtzt = CTZT_OK)and IS_YDXS then
      begin
        Canvas.TextOut(Rect.Left,Rect.Top+14,FCtzt[i].AYdbz);
        Canvas.TextOut(Rect.Left,Rect.Top+28,FCtzt[i].ASjdm);
      end;
      //ImageList1.Draw(Canvas,Rect.Left,Rect.Top+48,FCtzt[i].AImage);
    end;
  end;
end;

procedure TCtmainForm.sgdCtztSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
  s: string;
begin
  sgdCtzt.ShowHint := False;
  FSelect := ARow*sgdCtzt.ColCount + ACol;
  if FSelect < FCtnum then
  begin
    tblCtzt.Locate('D_CTBH',FCtzt[FSelect].ACtbh,[]);
    s := '客人姓名:'+tblCtztD_KRXM.Value+#13#10;
    s := s+'客人人数:'+IntToStr(tblCtztD_KRSL.Value)+#13#10;
    s := s + '开台时间:'+TimeToStr(tblCtztD_XFSJ.Value);
    sgdCtzt.Hint := s;
    sgdCtzt.ShowHint := True;
    tblCtdc.FindKey([FCtzt[FSelect].ADcbh,FCtzt[FSelect].ACtbh]);
  end;
end;

procedure TCtmainForm.sgdCtztDblClick(Sender: TObject);
var
  ACtzt: TCtzt;
begin
  if (FSelect < FCtNum)and(FCtzt[FSelect].ACtzt = CTZT_OK) then
  begin
    ACtzt := FCtzt[FSelect];
    Ctkt(ACtzt);
    if ACtzt.ADcbh <> '' then
      CtdcForm.Ctdc(ACtzt);
    ShowCtzt;
    Exit;
  end;
  if (FSelect < FCtNum)and((FCtzt[FSelect].ACtzt = CTZT_USE)or(FCtzt[FSelect].ACtzt = CTZT_JZ)) then
  begin
    ACtzt := FCtzt[FSelect];
    CtdcForm.Ctdc(ACtzt);
    ShowCtzt;
    Exit;
  end;
end;

procedure TCtmainForm.N18Click(Sender: TObject);
begin
  Close;
end;

//选台
procedure TCtmainForm.btnXtClick(Sender: TObject);
var
  ACtzts: TCtzts;
begin
  with CtxtmForm do
  begin
    ACtzts := Ctxtm;
    if ModalResult = mrOK then
    begin
      Ctktm(ACtzts);
      if CtktForm.ModalResult = mrOk then
      begin
        CtdcForm.Ctdc(ACtzts[0]);
        ShowCtzt;
      end;
    end;
  end;
end;

//转台
procedure TCtmainForm.btnZtClick(Sender: TObject);
var
  ACtzts,ACtztd: TCtzt;
  ACtbhd: string;
begin
  if (FSelect < FCtNum)and(FCtzt[FSelect].ACtzt = CTZT_USE) then
  begin
    ACtzts := FCtzt[FSelect];
    ACtbhd := Ctzt;
    if ACtbhd<>'' then
    begin
      ACtztd := ACtzts;
      ACtztd.ACtbh := ACtbhd;
      CtData.DatabaseUser.StartTransaction;
      try
        //设置目的餐台的状态
        CtData.SetCtzt(ACtztd);
        //初始化源餐台的状态
        CtData.InitCtzt(ACtzts);
        //修改餐厅编号
        CtData.UpdateCtbh(ACtztd.ADcbh,ACtzts.ACtbh,ACtbhd);
        //修改点菜明细
        CtData.UpdateDcmx(ACtztd.ADcbh,ACtzts.ACtbh,ACtbhd);

        CtData.DatabaseUser.Commit;
      except
        CtData.DatabaseUser.Rollback;
        raise;
      end;
      ShowCtzt;
    end;
  end;
end;

//并台
procedure TCtmainForm.btnBtClick(Sender: TObject);
var
  ACtzts,ACtztd: TCtzt;
  ACtbhd: string;
begin
  if (FSelect < FCtNum)and(FCtzt[FSelect].ACtzt = CTZT_USE) then
  begin
    ACtzts := FCtzt[FSelect];
    ACtbhd := Ctbt;
    if ACtbhd<>'' then
    begin
      ACtztd := CtData.GetCtzt(ACtbhd);
      CtData.DatabaseUser.StartTransaction;
      try
        CtData.Dcmxbt(ACtzts.ADcbh,ACtztd.ADcbh);
        CtData.UpdateCtdcbt(ACtzts.ADcbh,ACtztd.ADcbh);
        ACtzts.ADcbh := ACtztd.ADcbh;
        CtData.SetCtzt(ACtzts);
        CtData.DatabaseUser.Commit;
      except
        CtData.DatabaseUser.Rollback;
        raise;
      end;

      ShowCtzt;
    end;
  end;
end;

//清台
procedure TCtmainForm.btnQtClick(Sender: TObject);
var
  i : Integer;
begin
  for i := 0 to FCtNum -1 do
    if FCtzt[i].ACtzt = CTZT_JZ then
      CtData.InitCtzt(FCtzt[i]);
  ShowCtzt;
end;

//非餐费结帐
procedure TCtmainForm.N16Click(Sender: TObject);
begin
  Fcfjz;
  ShowCtzt;
end;

//营业查询
procedure TCtmainForm.N10Click(Sender: TObject);
begin
  Yycx;
end;

//消耗统计
procedure TCtmainForm.N8Click(Sender: TObject);
begin
  Xhtj;
end;

//点菜变动
procedure TCtmainForm.N9Click(Sender: TObject);
begin
  Dcbd;
end;

//刷新
procedure TCtmainForm.btnRefreshClick(Sender: TObject);
begin
  ShowCtzt;
end;

procedure TCtmainForm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if tblCtdcD_JZFS.Value <> '' then
    DBGrid1.Canvas.Font.Color := clRed;
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

//预定开台
procedure TCtmainForm.Ydcykt(const ADcbh,ACtbh,AKrxm,AYcbz,AYdbz: string;AYcje: Currency);
var
  ACtzt: TCtzt;
begin
  tblCtdc.Insert;
  tblCtdcD_DCBH.Value := ADcbh;
  tblCtdcD_CTBH.Value := ACtbh;
  tblCtdcD_KRSL.Value := 1;
  tblCtdcD_KRXM.Value := AKrxm;
  tblCtdcD_XFRQ.Value := Date;
  tblCtdcD_XFSJ.Value := Time;
  tblCtdcD_YCBZ.Value := AYcbz;
  tblCtdcD_SJDM.Value := GetSjdm(Time);
  tblCtdcD_XMBH.Value := '0';
  tblCtdcD_DCLB.Value := DCLB_YC;
  tblCtdcD_JSBZ.Value := JS_NO;
  tblCtdcD_CZYXM.Value:= CZY.CzyXm;
  tblCtdc.Post;
  ACtzt.ACtbh := tblCtdcD_CTBH.Value;
  ACtzt.ACtzt := CTZT_USE;
  ACtzt.AKrxm := tblCtdcD_KRXM.Value;
  ACtzt.AKrsl := tblCtdcD_KRSL.Value;
  ACtzt.ADcbh := tblCtdcD_DCBH.Value;
  ACtzt.AXfrq := tblCtdcD_XFRQ.AsDateTime;
  ACtzt.AXfsj := tblCtdcD_XFSJ.AsDateTime;
  CtData.SetCtzt(ACtzt);
  if AYcje<>0 then
    CtData.InsertBzc(ACtzt.ADcbh,ACtzt.ACtbh,ACtzt.AXfrq,AYcje);

  {if AYdbz = 'P' then
  begin
    if AYcje<>0 then
      CtData.InsertBzc(ACtzt.ADcbh,ACtzt.ACtbh,ACtzt.AXfrq,AYcje);
  end
  else
  begin
    if AYcje<>0 then
      CtData.InsertBzc(ACtzt.ADcbh,ACtzt.ACtbh,ACtzt.AXfrq,tblYdcydD_XFJE.Value);
  end;}
end;


//口令设置
procedure TCtmainForm.N20Click(Sender: TObject);
begin
  Klsz(CZY.CzyBh);
end;

//重新登录
procedure TCtmainForm.N21Click(Sender: TObject);
begin
  if (not CzyDl)or(not CtData.CheckYgqx(CZY.CzyBh,'餐饮管理系统')) then
    Application.Terminate;
  Caption := '餐饮管理系统(操作员:' + CZY.CzyXm+')';
end;

//关于
procedure TCtmainForm.N23Click(Sender: TObject);
begin
  About;
end;

//系统设置
procedure TCtmainForm.N24Click(Sender: TObject);
begin
  Xtsz;
end;

procedure TCtmainForm.tblYdcyD_YDBZGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if DisPlayText then
  begin
    if Sender.AsString = 'P' then Text := '散客预定'
    else Text := '团队预定';
  end;
end;

procedure TCtmainForm.N26Click(Sender: TObject);
begin
  Yytj(0);
end;

procedure TCtmainForm.N30Click(Sender: TObject);
begin
  Yytj(1);
end;

procedure TCtmainForm.N31Click(Sender: TObject);
begin
  Yytj(2);
end;

procedure TCtmainForm.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_F1 : btnYdClick(nil);
    VK_F2 : btnXtClick(nil);
    VK_F3 : sgdCtztDblClick(nil);
    VK_F4 : btnZtClick(nil);
    VK_F5 : btnBtClick(nil);
    VK_F6 : btnQtClick(nil);
    VK_F7 : btnJtClick(nil);
    VK_F8 : btnRefreshClick(nil);
    VK_F10: begin
              IS_YDXS := not IS_YDXS;
              //N33.Checked := IS_YDXS;
              ShowCtzt;
            end;
  end;
end;

procedure TCtmainForm.btnYdClick(Sender: TObject);
begin
  Ydcy;
end;

procedure TCtmainForm.btnJtClick(Sender: TObject);
begin
  Ctjt;
end;

procedure TCtmainForm.sgdCtztKeyPress(Sender: TObject; var Key: Char);
var
  ACtzt: TCtzt;
begin
  if Key=#13 then
  begin
  if (FSelect < FCtNum)and(FCtzt[FSelect].ACtzt = CTZT_OK) then
  begin
    ACtzt := FCtzt[FSelect];
    Ctkt(ACtzt);
    if ACtzt.ADcbh <> '' then
      CtdcForm.Ctdc(ACtzt);
    ShowCtzt;
    Exit;
  end;
  if (FSelect < FCtNum)and((FCtzt[FSelect].ACtzt = CTZT_USE)or(FCtzt[FSelect].ACtzt = CTZT_JZ)) then
  begin
    ACtzt := FCtzt[FSelect];
    CtdcForm.Ctdc(ACtzt);
    ShowCtzt;
    Exit;
  end;
  end;
end;

procedure TCtmainForm.DBGrid1DblClick(Sender: TObject);
var
  aDcbh : string;
begin
  if tblCtdc.IsEmpty then Exit;
  aDcbh := tblCtdcD_DCBH.Value;
  YycxEnter(aDcbh);
end;

procedure TCtmainForm.N33Click(Sender: TObject);
begin
  IS_YDXS := N33.Checked;
  ShowCtzt;
end;

procedure TCtmainForm.OnWjzcx(Sender: TObject);
begin
  Wjzcx;
end;

end.

⌨️ 快捷键说明

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