📄 unit_xf.pas
字号:
unit Unit_XF;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ExtCtrls,DB, DBClient,Data_DL,Grids;
Type
TxfProj=Record
lsh,Memo:String;
CP_ID,AdminID,Zsflag:integer;
Dj,rate,Num,Totalmoney:Currency;
OperTime:TdateTime;
end;
Type
TXfMaster=Record
LshCode,VipCode,FpCode:String;
Xf_Money,Rate,Ys_Money,SS_Money:Currency;
Xf_Type,AdminID,ManNum,jz_flag,Fp_flag:integer;
OperTime:TdateTime;
End;
type
TXF_info=class(TObject)
private
Mydata:TDL_Data;
SCds,MCds:TclientDataSet;
Str:string;
public
constructor create;
destructor destroy;override;
//开单后是否有消费
Function Is_Xf_Data(CTID:Integer):Boolean;
//增加消费项目
Procedure Add_XfProject(XfCpInfo:TxfProj);
//获取指定消费流水号的消费项目信息
Function GetDatailTmpList(Lsh:String):OLEVariant;
//获取消费金额
Function GetXfMoney(Lsh:String):Currency;
//获取消费数量
Function GetXfNum(Lsh:String):Integer;
//消费单品打折
Procedure XfCp_Rate(XfCpID:integer;TmpRate,RateMoney:Currency);
//删除菜品
Procedure DelCp(CpID:Integer);
//菜品备注
Procedure Update_CpMemo(CpID:Integer;TmpMemo:String);
//菜品备注列表
Function GetMemoInfo:TStrings;
//生成结帐单号
Function JZD_Code:String;
//写入消费主数据库
Procedure AddXfMaster(Tmp:TXfMaster);
end;
implementation
{ TCT_info }
procedure TXF_info.AddXfMaster(Tmp: TXfMaster);
begin
Str:='Insert Into Xf_Master (LshCode,XFmoney,Rate,YSmoney,SSMoney,XF_Type,';
Str:=Str+'AdminID,OperTime,VipCode,Jz_Flag,Fp_Flag,FpCode,ManNum) Values (';
Str:=Str+''''+Tmp.LshCode+''',';
Str:=Str+FloatTostr(Tmp.Xf_Money)+',';
Str:=Str+FloatToStr(Tmp.Rate)+',';
Str:=Str+FloatToStr(Tmp.Ys_Money)+',';
Str:=Str+FloatToStr(Tmp.SS_Money)+',';
Str:=Str+IntToStr(Tmp.Xf_Type)+',';
Str:=Str+IntToStr(Tmp.AdminID)+',';
Str:=Str+''''+DatetimeToStr(Tmp.OperTime)+''',';
Str:=Str+''''+Tmp.VipCode+''',';
Str:=Str+IntToStr(Tmp.jz_flag)+',';
Str:=Str+IntToStr(tmp.Fp_flag)+',';
Str:=Str+''''+Tmp.FpCode+''',';
Str:=Str+IntToStr(Tmp.ManNum)+')';
MyData.Exec_SQL(Str);
end;
procedure TXF_info.Add_XfProject(XfCpInfo:TxfProj);
begin
Str:='Insert Into Xf_Datail_Tmp(Lsh,Cp_id,Num,Dj,Rate,TotalMoney,Memo,Admin_id,Oper_time,Zsflag) values (';
Str:=Str+''''+trim(XfCpinfo.lsh)+''',';
Str:=Str+Inttostr(XfCpinfo.CP_ID)+',';
Str:=Str+floatToStr(XfCpInfo.Num)+',';
Str:=Str+FloatToStr(XfCpInfo.Dj)+',';
Str:=Str+FloattoStr(XfCpinfo.rate)+',';
Str:=Str+FloatToStr(XfCpinfo.Num*XfCpinfo.Dj*XfCpinfo.rate)+',';
Str:=Str+''''+trim(XfCpinfo.Memo)+''',';
Str:=Str+IntToStr(XfCpinfo.AdminID)+',';
Str:=Str+''''+DateTimeToStr(XfCpinfo.OperTime)+''',';
Str:=Str+IntToStr(XfCpInfo.Zsflag)+')';
Mydata.Exec_SQL(Str);
end;
constructor TXF_info.create;
begin
Mydata:=TDL_Data.Create(nil);
SCds:=TClientDataSet.Create(nil);
Mcds:=TClientDataSet.Create(nil);
end;
procedure TXF_info.DelCp(CpID: Integer);
begin
if MessageDlg('是否删除该菜品?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then
Begin
Str:='Delete From Xf_Datail_Tmp Where ID='+IntToStr(CpID);
Mydata.Exec_SQL(Str);
Showmessage('删除菜品成功');
End;
end;
destructor TXF_info.destroy;
begin
FreeAndNil(MYdata);
FreeAndNil(SCds);
FreeAndNil(Mcds);
inherited;
end;
function TXF_info.GetDatailTmpList(Lsh: String): OLEVariant;
begin
Str:='Select * from View_Datail_Tmp Where Lsh='''+trim(Lsh)+'''';
Result:=Mydata.Open_SQL(Str);
end;
function TXF_info.GetMemoInfo: TStrings;
Var
Tmp:TStrings;
begin
Tmp:=TStringList.Create;
Mcds.Data:=Mydata.Open_SQL('Select * from Cp_MemoInfo Order By Id');
While Not MCds.Eof Do
Begin
Tmp.Add(Mcds.FieldByName('Name').AsString);
Mcds.Next;
End;
Result:=Tmp;
end;
function TXF_info.GetXfMoney(Lsh: String): Currency;
begin
Result:=-1;
Str:='Select Sum(TotalMoney) AS TotalMoney From Xf_Datail_tmp Where Lsh='''+Trim(Lsh)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.FieldByName('TotalMoney').AsCurrency;
end;
function TXF_info.GetXfNum(Lsh: String): Integer;
begin
Result:=-1;
Str:='Select Count(*) AS TotalNum From Xf_Datail_tmp Where Lsh='''+Trim(Lsh)+'''';
Mcds.Data:=MyData.Open_SQL(Str);
Result:=Mcds.FieldByName('TotalNum').AsInteger;
end;
function TXF_info.Is_Xf_Data(CTID: Integer): Boolean;
Var
TmpZdh:String;
begin
Result:=False;
Str:='Select Curr_LSH from CT_info Where Id='+IntToStr(CTID);
Mcds.Data:=MyData.Open_SQL(Str);
TmpZdh:=Mcds.FieldByName('Curr_LSH').AsString;
Str:='Select * From XF_Datail_Tmp Where LSH='''+Trim(TmpZdh)+'''';
Mcds.Data:=Mydata.Open_SQL(Str);
if Mcds.RecordCount<>0 Then Result:=True;
end;
function TXF_info.JZD_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(ZDh,Xf_Date) Values (1,'''+DateToStr(Now)+''')';
MyData.Exec_SQL(Str);
TmpCnt:=1;
end
Else
TmpCnt:=MCds.FieldByName('ZDh').AsInteger;
CntLen:=Length(IntToStr(TmpCnt));
if CntLen<4 Then
For i:=CntLen To 3 do
Cnts:=Cnts+'0';
Result:='ZDH-'+Tmp+Cnts+IntToStr(TmpCnt);
end;
procedure TXF_info.Update_CpMemo(CpID: Integer;TmpMemo:String);
begin
Str:='Update Xf_Datail_Tmp Set Memo='''+Trim(TmpMemo)+''' ';
Str:=Str+'Where ID='+InttoStr(CpID);
MyData.Exec_SQL(Str);
end;
procedure TXF_info.XfCp_Rate(XfCpID: integer; TmpRate,RateMoney: Currency);
begin
if (TmpRate>0) and (TmpRate<1) Then
Begin
Str:='Update Xf_Datail_Tmp Set Rate='+FloatToStr(TmpRate)+',';
Str:=Str+'TotalMoney='+FloatToStr(RateMoney)+',';
Str:=Str+'zsflag='+'3'+' ';
Str:=Str+'Where ID='+IntToStr(XfCpID);
End;
if TmpRate=1 Then
Begin
Str:='Update Xf_Datail_Tmp Set Rate='+FloatToStr(TmpRate)+',';
Str:=Str+'TotalMoney='+FloatToStr(RateMoney)+',';
Str:=Str+'zsflag='+'1'+' ';
Str:=Str+'Where ID='+IntToStr(XfCpID);
End;
if TmpRate=0 then
Begin
Str:='Update Xf_Datail_Tmp Set Rate='+FloatToStr(TmpRate)+',';
Str:=Str+'TotalMoney='+FloatToStr(RateMoney)+',';
Str:=Str+'zsflag='+'2'+' ';
Str:=Str+'Where ID='+IntToStr(XfCpID);
end;
MyData.Exec_SQL(Str);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -