📄 unit_ct.~pas
字号:
unit Unit_CT;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ExtCtrls,DB, DBClient,Data_DL,Grids;
type
TCT_info=class(TObject)
private
Mydata:TDL_Data;
SCds,MCds:TclientDataSet;
Str:string;
public
constructor create;
destructor destroy;override;
Function CTList(TmpRoom:String):OLEVariant; //获取餐台列表
Procedure CTStatus(RoomName,CT_Name:String;Tmp_Status:Integer); //修改餐台状态
Function CTTotal:Integer; //获取餐台总数
Function CTUsed:Integer; //获取餐台当前占用数
Function CTEmpty:Integer; //获取餐台当前可供使用数
Function CTYD:Integer; //获取餐台当前预订数
Function CTStop:Integer; //获取餐台当前停用数
Function CTUseRate:Real; //获取餐台当前上座率
Function Get_KTTime(CTID:Integer):TdateTime; //获取宾客进店时间
Function Get_RoomID(Room:String):Integer; //获取指定餐台的房间ID号
Function Get_RoomList:TStrings; //获取房间名称列表信息
Function Get_CTNameList(RoomName:String):TStrings; //获取餐台名称列表信息
Function CTCurr_LSH:String; //生成餐台定单号
Procedure Update_LSH(CTID:Integer;Flag:Integer); //修改餐台库里的定单号
Function CT_ID(RoomName,CT_Name:String):Integer; //获取对应餐台的ID
Function Get_CTStatus(CTID:Integer):Integer; //获取餐台当前状态
Procedure UpdataLSH; //更新计数器值
Procedure UpDateCTStatus(CTID,Status:Integer); //根据餐台ID,修改餐台状态 (0:空闲;1:占用;2:停用;3:预订)
Procedure UpDateMark(CTID:Integer;Memo:String); //根据餐台ID,修改备注信息
Procedure UpDateKT_Time(CTID:Integer;Time:TDateTime); //根据餐台ID更新开单时间
Function Get_CTCurr_LSH(CTID:Integer):String; //根据餐台ID返回当前定单号
end;
implementation
{ TCT_info }
constructor TCT_info.create;
begin
Mydata:=TDL_Data.Create(nil);
SCds:=TClientDataSet.Create(nil);
Mcds:=TClientDataSet.Create(nil);
end;
function TCT_info.CTCurr_LSH: String;
Var
Tmp,CntS:String;
TmpCnt,CntLen,i:Integer;
begin
TmpCnt:=-1;
CntS:='';
Tmp:=FormatDateTime('YYMMDD',Now);
Str:='Select * From XF_Counter Where Xf_Date='''+DateToStr(Now)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
If Mcds.RecordCount=0 Then
Begin
Str:='Insert Into XF_Counter(Lsh,Xf_Date) Values (1,'''+DateToStr(Now)+''')';
MyData.Exec_SQL(Str);
TmpCnt:=1;
end
Else
TmpCnt:=MCds.FieldByName('Lsh').AsInteger;
CntLen:=Length(IntToStr(TmpCnt));
if CntLen<4 Then
For i:=CntLen To 3 do
Cnts:=Cnts+'0';
Result:='LSH-'+Tmp+Cnts+IntToStr(TmpCnt);
end;
function TCT_info.CTEmpty: Integer;
begin
Result:=-1;
Str:='select * from CT_Info Where (Lv=2) And (CT_Status=0)';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.RecordCount;
end;
function TCT_info.CTList(TmpRoom: String): OLEVariant;
begin
Str:='Select * from CT_Info Where Type_Name='''+Trim(TmpRoom)+'''';
Mcds.Data:=Mydata.Open_SQL(Str);
if MCds.RecordCount<>0 Then
Begin
Str:='Select * From CT_Info Where SS_ID='+Mcds.fieldByName('IID').AsString+'';
Result:=Mydata.Open_SQL(Str);
End;
end;
procedure TCT_info.CTStatus(RoomName, CT_Name: String; Tmp_Status: Integer);
Var
Tmp_IID,Tmp:Integer;
begin
Str:='Select * from CT_Info Where Type_name='''+Trim(RoomName)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
Tmp_IID:=Mcds.FieldByname('IID').AsInteger;
Str:='Select * From CT_info Where (Type_Name='''+Trim(CT_Name)+''') And (';
Str:=Str+'SS_ID='+IntToStr(Tmp_IID)+')';
Mcds.Data:=MyData.Open_SQL(Str);
Tmp_IID:=Mcds.FieldByname('IID').AsInteger;
Str:='Update CT_Info Set CT_Status='+IntTostr(Tmp_Status);
Str:=Str+' Where IID='+IntToStr(Tmp_IID);
MyData.Exec_SQL(Str);
end;
function TCT_info.CTStop: Integer;
begin
Result:=-1;
Str:='select * from CT_Info Where (Lv=2) And (CT_Status=2)';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.RecordCount;
end;
function TCT_info.CTTotal: Integer;
begin
Result:=-1;
Str:='select * from CT_Info Where Lv=2';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.RecordCount;
end;
function TCT_info.CTUsed: Integer;
begin
Result:=-1;
Str:='select * from CT_Info Where (Lv=2) And (CT_Status=1)';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.RecordCount;
end;
function TCT_info.CTUseRate: Real;
Var
TmpTotal,TmpUsed:Integer;
begin
Result:=CTUsed/CTTotal;
end;
function TCT_info.CTYD: Integer;
begin
Result:=-1;
Str:='select * from CT_Info Where (Lv=2) And (CT_Status=3)';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.RecordCount;
end;
function TCT_info.CT_ID(RoomName, CT_Name: String): Integer;
Var
Tmp_IID,Tmp:Integer;
begin
Result:=-1;
Str:='Select * from CT_Info Where Type_name='''+Trim(RoomName)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
Tmp_IID:=Mcds.FieldByname('IID').AsInteger;
Str:='Select * From CT_info Where (Type_Name='''+Trim(CT_Name)+''') And (';
Str:=Str+'SS_ID='+IntToStr(Tmp_IID)+')';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.FieldByname('ID').AsInteger;
end;
destructor TCT_info.destroy;
begin
FreeAndNil(MYdata);
FreeAndNil(SCds);
FreeAndNil(Mcds);
inherited;
end;
function TCT_info.Get_CTCurr_LSH(CTID: Integer): String;
begin
Result:='';
Str:='Select * From CT_Info Where ID='+IntToStr(CTID);
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.FieldByName('Curr_LSH').AsString;
end;
function TCT_info.Get_CTNameList(RoomName:String): TStrings;
Var
Tmp:TStrings;
RoomID:integer;
begin
Tmp:=TStringList.Create;
Str:='Select * from CT_Info Where Type_name='''+Trim(RoomName)+'''';
Mcds.Data:=Mydata.Open_SQL(Str);
RoomID:=Mcds.FieldByName('IID').AsInteger;
Str:='Select * from Ct_info Where (SS_ID='+IntTostr(RoomID)+') and (ct_STatus=0)';
Mcds.Data:=Mydata.Open_SQL(Str);
While Not MCds.Eof Do
Begin
Tmp.Add(Mcds.FieldByName('Type_Name').AsString);
Mcds.Next;
End;
Result:=Tmp;
end;
function TCT_info.Get_CTStatus(CTID: Integer): Integer;
begin
Result:=-1;
Str:='Select * From CT_Info Where ID='+IntToStr(CTID);
MCds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.FieldByName('CT_Status').AsInteger;
end;
function TCT_info.Get_KTTime(CTID: Integer): TdateTime;
begin
Str:='Select * from Ct_info Where ID='+IntToStr(CTID);
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.fieldByName('KT_Time').AsVariant;
end;
function TCT_info.Get_RoomID(Room: String): Integer;
begin
Result:=-1;
Str:='Select * From Ct_Info Where Type_name='''+Trim(Room)+'''';
Mcds.Data:=Mydata.Open_SQL(Str);
Result:=Mcds.FieldByName('IID').AsInteger;
end;
function TCT_info.Get_RoomList: TStrings;
Var
Tmp:TStrings;
begin
Tmp:=TStringList.Create;
Mcds.Data:=Mydata.Open_SQL('Select * from CT_Info Where Lv=1 Order By Id');
While Not MCds.Eof Do
Begin
Tmp.Add(Mcds.FieldByName('Type_Name').AsString);
Mcds.Next;
End;
Result:=Tmp;
end;
procedure TCT_info.UpdataLSH;
Var
TmpCnt:Integer;
begin
Str:='Select * From XF_Counter Where Xf_Date='''+DateToStr(Now)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
TmpCnt:=Mcds.FieldByName('Lsh').AsInteger;
Str:='Update Xf_Counter Set Lsh='+IntToStr(TmpCnt+1);
Str:=Str+' Where Xf_Date='''+DateToStr(Now)+'''';
MyData.Exec_SQL(Str);
end;
procedure TCT_info.UpDateCTStatus(CTID,Status:Integer);
begin
Str:='Update CT_Info Set CT_Status='+IntTostr(Status);
Str:=Str+' Where ID='+IntToStr(CTID);
MyData.Exec_SQL(Str);
end;
procedure TCT_info.UpDateKT_Time(CTID: Integer; Time: TDateTime);
begin
Str:='Update CT_Info Set Kt_time='''+DatetimeToStr(time)+'''';
Str:=Str+' Where ID='+IntToStr(CTID);
MyData.Exec_SQL(Str);
end;
procedure TCT_info.UpDateMark(CTID: Integer; Memo: String);
begin
Str:='Update CT_Info Set Mark='''+Memo+'''';
Str:=Str+' Where ID='+IntToStr(CTID);
MyData.Exec_SQL(Str);
end;
procedure TCT_info.Update_LSH(CTID:Integer;Flag:Integer);
begin
if Flag=0 Then
Begin
UpDateMark(CTID,'');
UpDateKT_Time(CTID,StrToDateTime('1973-10-07 11:00:00'));
Str:='Update CT_Info Set Curr_LSH='''+''+'''';
Str:=Str+' Where ID='+IntToStr(CTID);
end;
if Flag=1 Then
begin
Str:='Update CT_Info Set Curr_LSH='''+CTCurr_LSH+'''';
Str:=Str+' Where ID='+IntToStr(CTID);
End;
MyData.Exec_SQL(Str);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -