📄 control_tableu.pas
字号:
unit Control_tableU;
interface
uses DAHelper,ClassesU,ADODB,SysUtils;
//添加菜或酒水信息
function AddTableDetail(TableDetail:TTableDetail):boolean;
//修改菜或酒水信息
function EditTableDetail(TableDetail:TTableDetail):boolean;
//删除菜或酒水信息
function DelTableDetail(TableDetailID:integer):boolean;
//得到开桌信息集
function GetTableArray:TADOQuery;
//查找开桌的详细信息
function GetTableDetailByTableID(tableID:integer):TADOQuery;
//开单
function AddTable(tableNo:integer):boolean;
//结帐,输入桌号和其它费用,所有费用
function EndTable(tableNo:integer;otherFee,allFee:real):boolean;
//某一桌的当前状态,结果是已结帐和未结帐
function TableState(TableNo:integer):string;
//得到某一类型的桌位信息
function GetTableByState(TableState:string):TADOQuery;
implementation
function GetTableByState(TableState:string):TADOQuery;
var
sql:string;
begin
if TableState='全部' then
begin
result:=GetTableArray;
exit;
end;
if TableState='未结帐' then
sql:='select id,桌号,开单时间,结帐时间,其它费用,实际收费金额 '+
' from 开单信息 where 结帐时间 is null order by 开单时间 desc';
if TableState='已结帐' then
sql:='select id,桌号,开单时间,结帐时间,其它费用,实际收费金额 '+
' from 开单信息 where 结帐时间 is not null order by 开单时间 desc';
result:=DAHelper.ExeSqlQuery(sql);
end;
function TableState(TableNo:integer):string;
var
sql:string;
Query:TADOQuery;
begin
sql:='select count(*) from 开单信息 where 结帐时间 is null and 桌号='+
inttostr(TableNo);
Query:=TADOQuery.Create(nil);
Query:=DAHelper.ExeSqlQuery(sql);
if Query.Fields[0].Value<1 then
begin
result:='已结帐';
end
else
begin
result:='未结帐';
end;
Query:=nil;
end;
function EndTable(tableNo:integer;otherFee,allFee:real):boolean;
var
sql:string;
begin
sql:='update 开单信息 set 结帐时间=getDate(),其它费用='+
floatToStr(otherFee)+',实际收费金额='+floatToStr(allFee)+
' where 桌号='+inttostr(tableNo)+' and 结帐时间 is null';
result:=DAHelper.ExeSqlNoQuery(sql);
end;
function AddTable(tableNo:integer):boolean;
var
sql:string;
begin
sql:='insert into 开单信息(桌号,开单时间)'+
' values('+inttostr(tableNo)+','+'getDate())';
result:=DAHelper.ExeSqlNoQuery(sql);
end;
//查找开桌的详细信息
function GetTableDetailByTableID(tableID:integer):TADOQuery;
var
sql:string;
begin
sql:='select id,开单id,菜酒名,份数,单价,'+
'CASE 菜或酒 WHEN '+''''+'0'+''''+
' THEN '+''''+'菜'+''''+' ELSE '+''''+'酒'+''''+
' END AS 菜或酒 from 点菜明细'+
' where 开单ID='+inttostr(tableID) ;
result:=DAHelper.ExeSqlQuery(sql);
end;
function GetTableArray:TADOQuery;
var
sql:string;
begin
sql:='select id,桌号,开单时间,结帐时间,其它费用,实际收费金额 from 开单信息 order by 开单时间 desc';
result:=DAHelper.ExeSqlQuery(sql);
end;
function DelTableDetail(TableDetailID:integer):boolean;
var
sql:string;
begin
sql:='delete from 点菜明细 where id='+inttostr(TableDetailID);
result:=DAHelper.ExeSqlNoQuery(sql);
end;
function EditTableDetail(TableDetail:TTableDetail):boolean;
var
sql:string;
begin
sql:='update 点菜明细 set 开单id='+inttostr(TableDetail.tableID)+
',菜酒名='+''''+TableDetail.DishesOrDrinkName+''''+
',份数='+inttostr(TableDetail.num)+
',单价='+floattostr(TableDetail.price)+
',菜或酒='+''''+TableDetail.DishesOrDrink+''''+
' where id='+inttostr(TableDetail.id);
result:=DAHelper.ExeSqlNoQuery(sql);
end;
function AddTableDetail(TableDetail:TTableDetail):boolean;
var
sql:string;
begin
sql:='insert into 点菜明细(开单id,菜酒名,份数,单价,菜或酒'+
')'+' values('+inttostr(TableDetail.tableID)+
','+''''+TableDetail.DishesOrDrinkName+''''+
','+inttostr(TableDetail.num)+
','+floattostr(TableDetail.price)+
','+''''+TableDetail.DishesOrDrink+''''+ ')';
result:=DAHelper.ExeSqlNoQuery(sql);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -