📄 mc_gzfyfrom.pas
字号:
//--------------------------------------
//----------------------------------------------------------------------
end;
GroupBox5.Visible:=False;
Bitbtn1.SetFocus;
//---------------------------------
end;
end;
procedure TGZFYFrom.BitBtn3Click(Sender: TObject);
begin
GroupBox5.Visible:=True;
ListBox1.ItemIndex:=17;
Edit3.Text:='';
Edit4.Text:='';
Edit3.SetFocus;
end;
procedure TGZFYFrom.BitBtn9Click(Sender: TObject);
begin
GroupBox5.Visible:=False;
end;
procedure TGZFYFrom.Edit3Enter(Sender: TObject);
begin
Edit3.Color:=ClAqua;
end;
procedure TGZFYFrom.Edit3Exit(Sender: TObject);
begin
Edit3.Color:=ClWindow;
end;
procedure TGZFYFrom.Edit4Enter(Sender: TObject);
begin
Edit4.Color:=ClAqua;
end;
procedure TGZFYFrom.Edit4Exit(Sender: TObject);
begin
Edit4.Color:=ClAqua;
end;
procedure TGZFYFrom.BitBtn10Click(Sender: TObject);
//begin
var zJJE:Real;
begin
if ((Length(Edit5.Text)=0) or (Length(Edit6.Text)=0) or (Length(Edit7.Text)=0) or (Length(Edit8.Text)=0)) then
begin
ShowMessage('请输入减免单原因');
Edit7.SetFocus;
end
else
if StrToFloat(Edit5.Text)>=(StrToFloat(Label6.Caption)
+TLCYGLXT.FJTHXXB.FieldByName('服务费').AsFloat) then
begin
ShowMessage('对不起,减免金额大于或等于应收金额.');
Edit5.SetFocus;
end
else
if MessageDlg('确认挂帐吗?',mtCustom,[mbYes,mbNo],0)=mrYes then
begin
//--------------------------------------------------------------
QRLabel18.Caption:=Label12.Caption;
QRLabel16.Caption:=FloatToStr(StrToFloat(Label38.Caption)-StrToFloat(Edit5.Text));
QRLabel4.Caption:=Edit7.Text;
QRLabel8.Caption:=Edit8.Text;
DYYLBrose.Show;
QuickRep1.Preview;
//--------------------------------------------------------------
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('update 点菜临时表 Set 是否结单=:A,结单日期=:B Where 房间台号=:C');
Query2.Params[0].AsString:='是';
Query2.Params[1].AsDateTime:=StrToDateTime(DateTimeToStr(now));
Query2.Params[2].AsInteger:=TLCYGLXT.FJTHXXB.FieldByName('编号').AsInteger;
Query2.ExecSQL;
//--------------------------------------
{Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Select Sum(合计) From 点菜临时表 where 状态=:A');
Query2.Params[0].AsString:='点单';
Query2.Open;}
//ZJJE:=Query2.Fields[0].AsFloat+TLCYGLXT.FJTHXXB.FieldByName('服务费').AsFloat;
ZJJE:=StrToFloat(Label6.Caption)+TLCYGLXT.FJTHXXB.FieldByName('服务费').AsFloat;
//--------------------------------------
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('insert 日点菜信息表(房间台号,类别,编号,名称,类型,单位,数量,价格,合计,服务员编号,服务员姓名,状态,点单日期,结单日期,结帐编号,是否结单)');
Query2.SQL.Add('Select 房间台号,类别,编号,名称,类型,单位,数量,价格,合计,服务员编号,服务员姓名,状态,点单日期,结单日期,结帐编号,是否结单');
Query2.SQl.Add('From 点菜临时表');
Query2.SQL.Add('Where 房间台号=:A');
Query2.Params[0].AsInteger:=TLCYGLXT.FJTHXXB.FieldByName('编号').AsInteger;
Query2.ExecSQL;
//--------------------------------------
//-----插入挂帐信息--------------------------------------------------------
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('insert 挂帐临时点单表(房间台号,类别,编号,名称,类型,单位,数量,价格,合计,服务员编号,服务员姓名,状态,点单日期,结单日期,结帐编号,是否结单)');
Query2.SQL.Add('Select 房间台号,类别,编号,名称,类型,单位,数量,价格,合计,服务员编号,服务员姓名,状态,点单日期,结单日期,结帐编号,是否结单');
Query2.SQl.Add('From 点菜临时表');
Query2.SQL.Add('Where 房间台号=:A');
Query2.Params[0].AsInteger:=TLCYGLXT.FJTHXXB.FieldByName('编号').AsInteger;
Query2.ExecSQL;
//-----结束----------------------------------------------------------------
//-----返回库存酒水数量-----------------
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select 点菜临时表.编号,点菜临时表.名称,点菜临时表.数量,酒水费用信息表.货存编号');
Query2.SQL.Add('from 点菜临时表,酒水费用信息表');
Query2.SQL.Add(' where 是否结单=''是'' and 点菜临时表.编号>=10000 and 点菜临时表.编号<=20000 and 点菜临时表.编号=酒水费用信息表.编号');
//------------------------后加的--------------
Query2.SQL.Add('and 房间台号=:C');
Query2.ParamByName('C').AsInteger:=TLCYGLXT.FJTHXXB.FieldByName('编号').AsInteger;
//--------------------------------------------
Query2.Open;
While not Query2.Eof do
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('update 库存信息表 set 数量=数量-:A');
Query3.SQL.Add('Where 编号=:B');
Query3.Params[0].AsInteger:=Query2.FieldByName('数量').AsInteger;
Query3.Params[1].AsInteger:=Query2.FieldByName('货存编号').AsInteger;
Query3.ExecSQL;
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Select * From 库存信息表 where 编号=:A');
Query3.Params[0].AsInteger:=Query2.FieldByName('货存编号').AsInteger;
Query3.Open;
if Query3.FieldByName('数量').AsInteger<=Query3.FieldByName('提醒下限').AsInteger then
begin
ShowMessage('['+Query3.FieldByName('商品名称').AsString+']库存不足');
end;
Query2.Next;
end;
//--------------------------------------
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Delete 点菜临时表 Where 房间台号=:A and 是否结单=:B');
Query2.ParamByName('A').AsInteger:=TLCYGLXT.FJTHXXB.FieldByName('编号').AsInteger;
Query2.paramByName('B').AsString:='是';
Query2.ExecSQL;
//--------------------------------------
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Insert 日结帐费用表(结帐编号,房间台号,日期,费用,结款人,结款方式,结款说明)');
Query2.SQL.Add('Values(:A,:B,:C,:D,:E,:F,:G)');
Query2.Params[0].AsInteger:=Query1.FieldByName('结帐编号').AsInteger;
Query2.params[1].AsInteger:=Query1.FieldByName('房间台号').AsInteger;
Query2.Params[2].AsDateTime:=StrToDateTime(DateTimeToStr(now));
Query2.Params[3].AsFloat:=ZJJE-StrToFloat(Edit5.Text);
Query2.Params[4].AsString:=Query1.FieldByName('服务员姓名').AsString;
Query2.Params[5].AsString:='挂帐';
Query2.Params[6].AsString:='减免'+Edit6.Text+'['+Edit5.Text+']元挂帐';
Query2.ExecSQL;
//--------------------------------------
//--------插入挂帐记录-----------------------------------------------------
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Insert 挂帐表(单据编号,挂帐时间,挂帐人,经手人,挂帐原因,挂帐金额,是否还帐)');
Query2.SQL.Add('Values(:A,:B,:D,:E,:F,:I,:G)');
Query2.ParamByName('A').AsInteger:=Query1.FieldByName('结帐编号').AsInteger;//单据编号
Query2.ParamByName('B').AsDateTime:=StrToDateTime(DateTimeToStr(now));//挂帐时间
Query2.ParamByName('D').AsString:=Edit7.Text;//经手人
Query2.ParamByName('E').AsString:=Query1.FieldByName('服务员姓名').AsString;//挂帐人;
Query2.ParamByName('F').AsString:=Edit8.Text;//挂帐原因
Query2.ParamByName('I').AsFloat:=ZJJE-StrToFloat(Edit5.Text);//挂帐金额
Query2.ParamByName('G').AsString:='否';//是否还帐
Query2.ExecSQL;
//--------结束-------------------------------------------------------------
TLCYGLXT.FJTHXXB.Edit;
TLCYGLXT.FJTHXXB.FieldByName('状态').AsSTring:='空闲';
TLCYGLXT.FJTHXXB.Post;
ShowMessage('挂帐完毕');
Close;
//--------------------------------------
end
else
Groupbox7.Visible:=False;
end;
procedure TGZFYFrom.Edit7Enter(Sender: TObject);
begin
TEdit(Sender).Color:=ClAqua;
end;
procedure TGZFYFrom.Edit7Exit(Sender: TObject);
begin
TEdit(Sender).Color:=ClWindow;
end;
procedure TGZFYFrom.BitBtn6Click(Sender: TObject);
begin
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
GroupBox7.Visible:=True;
Edit7.SetFocus;
end;
procedure TGZFYFrom.BitBtn11Click(Sender: TObject);
begin
GroupBox7.Visible:=False;
end;
procedure TGZFYFrom.Edit5KeyPress(Sender: TObject; var Key: Char);
var a,c:integer;
b:String;
begin
if key=#13 then Edit6.SetFocus
else
if key=#8 then key:=#8
else
if key<>'.' then
begin
if (key<'0') or (key>'9') then key:=#0;
end
else
begin
{if Pos(Edit5.Text,'.')=0 then
begin
key:=#0;
end
else
begin}
key:='.';
//end;
end;
end;
procedure TGZFYFrom.Edit5Exit(Sender: TObject);
var a,b,c:integer;
begin
TEdit(sender).color:=ClWindow;
a:=Length(Edit5.Text);
For b:=0 to a do
begin
if Copy(Edit5.Text,b,1)='.' then
begin
C:=C+1;
end;
end;
if C>1 then
begin
ShowMessage('对不起,减免金额有误.');
Edit5.setFocus;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -