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

📄 unit_yd.~pas

📁 一个小型餐饮管理系统,可支持小票打印.还存在一些小问题,希望朋友们帮助完成. QQ:15372627 E-mail:hdw802.163.com
💻 ~PAS
字号:
unit Unit_YD;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, ExtCtrls,DB, DBClient,Data_DL,Grids;

Type
  TYdRec=Record
  Yd_Code,Dc_Name,Tel,Phone,Memo:String;
  Time_ID,Yd_Room_ID,Ct_Name_ID,Admin_ID,AutoStop:Integer;
  YD_Time,Stop_Time,OperTime:TdateTime;
  Money:Currency;

End;
type
 TYD_info=class(TObject)

 private
  Mydata:TDL_Data;
  SCds,MCds:TclientDataSet;
  Str:string;
 public
  constructor create;
  destructor destroy;override;

  //新增预订记录
  Procedure Add_Yd_Rec(TmpRec:TYdRec);

  //根据预订编码返回预订记录ID号
  Function Get_Yd_ID(Tmp_YD_code:String):Integer;

  //生成预订编码
  Function YdCurr_Code:String;

  //更新预订编码
  Procedure UpdateYdCode;

  //获取预订时段列表
  Function TimeField:TStrings;

  //返回预订时段信息表
  Function TimeFieldInfo:OLEVariant;

  //增加预订时段
  Procedure AddTimeField(TimeName:String;BTime,ETime:TDateTime);
  //修改预订时段
  Procedure UpdateTimeField(ID:Integer;TimeName:String;BTime,ETime:TDateTime);
  //删除预订时段
  Procedure DelTimefield(ID:Integer);

  //获取所有预订信息
  Function AllYDinfo:OLEVariant;




 End;

implementation

{ TYD_info }

procedure TYD_info.AddTimeField(TimeName:String;BTime,ETime:TDateTime);
begin
 Str:='Insert Into TimeField(TimeName,BeginTime,EndTime) Values (';
 Str:=Str+''''+Trim(timeName)+''',';
 Str:=Str+''''+TimeToStr(BTime)+''',';
 Str:=Str+''''+timeToStr(ETime)+''')';
 MyData.Exec_SQL(Str);
end;

procedure TYD_info.Add_Yd_Rec(TmpRec: TYdRec);
begin
 Str:='Insert Into YD_info(Yd_Code,Dc_Name,Tel,Phone,Time_ID,Yd_Time,';
 Str:=Str+'Stop_Time,YD_room_ID,CT_Name_ID,Memo,Money,AutoStop,Admin_ID,';
 Str:=Str+'OperTime) Values (';
 Str:=Str+''''+TmpRec.Yd_Code+''',';
 Str:=Str+''''+TmpRec.Dc_Name+''',';
 Str:=Str+''''+TmpRec.Tel+''',';
 Str:=Str+''''+TmpRec.Phone+''',';
 Str:=Str+IntToStr(TmpRec.Time_ID)+',';
 Str:=Str+''''+DateTimeToStr(TmpRec.YD_Time)+''',';
 Str:=Str+''''+DateTimeToStr(TmpRec.Stop_Time)+''',';
 Str:=Str+IntToStr(TmpRec.Yd_Room_ID)+',';
 Str:=Str+IntToStr(TmpRec.Ct_Name_ID)+',';
 Str:=Str+''''+TmpRec.Memo+''',';
 Str:=Str+FloatToStr(TmpRec.Money)+',';
 Str:=Str+IntToStr(TmpRec.AutoStop)+',';
 Str:=Str+IntToStr(TmpRec.Admin_ID)+',';
 Str:=Str+''''+DateTimeToStr(TmpRec.OperTime)+''')';
 MyData.Exec_SQL(Str);
end;

function TYD_info.AllYDinfo: OLEVariant;
begin
 Str:='Select * from View_YdInfo ';//Where 取消时间>='''+DateTimeToStr(Now)+'''';
 Result:=MyData.Open_SQL(Str);
end;

constructor TYD_info.create;
begin
 Mydata:=TDL_Data.Create(nil);
 SCds:=TClientDataSet.Create(nil);
 Mcds:=TClientDataSet.Create(nil);
end;

procedure TYD_info.DelTimefield(ID: Integer);
begin
 Str:='delete From TimeField Where Id='+IntToStr(ID);
if MessageDlg('是否真的要删除预订时段设定?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then
  MyData.Exec_SQL(Str)
 Else
  Exit;
end;

destructor TYD_info.destroy;
begin
  FreeAndNil(MYdata);
  FreeAndNil(SCds);
  FreeAndNil(Mcds);
  inherited;
end;

function TYD_info.Get_Yd_ID(Tmp_YD_code: String): Integer;
begin
 Result:=-1;
 Str:='Select * From Yd_info Where Yd_Code='''+Trim(Tmp_YD_Code)+'''';
 Mcds.Data:=MyData.Open_SQL(Str);
 Result:=Mcds.FieldByName('ID').AsInteger;
end;

function TYD_info.TimeField: TStrings;
Var
 Tmp:TStrings;
begin
 Tmp:=TStringList.Create;
 Mcds.Data:=Mydata.Open_SQL('Select * from TimeField Order By Id');
 While Not MCds.Eof Do
 Begin
  Tmp.Add(Mcds.FieldByName('TimeName').AsString+'|'+Mcds.FieldByName('BeginTime').AsString+'--'+Mcds.FieldByName('EndTime').AsString);
  Mcds.Next;
 End;
 Result:=Tmp;
end;

function TYD_info.TimeFieldInfo: OLEVariant;
begin
 Str:='Select * from TimeField ';
 Result:=Mydata.Open_SQL(Str);
end;

procedure TYD_info.UpdateTimeField(ID: Integer; TimeName:String;BTime, ETime: TDateTime);
begin
 Str:='Update TimeField Set TimeName='''+timeName+''',';
 Str:=Str+'beginTime='''+TimeTostr(BTime)+''',';
 Str:=Str+'EndTime='''+TimeToStr(ETime)+''' ';
 Str:=Str+'Where Id='+IntTostr(ID);
 MyData.Exec_SQL(Str);
end;

procedure TYD_info.UpdateYdCode;
var
 TmpCnt:integer;
begin
 Str:='Select * From XF_Counter Where Xf_Date='''+DateToStr(Now)+'''';
 Mcds.Data:=MyData.Open_SQL(Str);
 TmpCnt:=Mcds.FieldByName('ydh').AsInteger;
 Str:='Update Xf_Counter Set ydh='+IntToStr(TmpCnt+1);
 Str:=Str+' Where Xf_Date='''+DateToStr(Now)+'''';
 MyData.Exec_SQL(Str);
end;

function TYD_info.YdCurr_Code: 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(ydh,Xf_Date) Values (1,'''+DateToStr(Now)+''')';
  MyData.Exec_SQL(Str);
  TmpCnt:=1;
 end
 Else
  TmpCnt:=MCds.FieldByName('ydh').AsInteger;

 CntLen:=Length(IntToStr(TmpCnt));
 if CntLen<4 Then
  For i:=CntLen To 3 do
   Cnts:=Cnts+'0';
 Result:='YD-'+Tmp+Cnts+IntToStr(TmpCnt);

end;

end.
 

⌨️ 快捷键说明

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