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

📄 mc_gzfyfrom.pas

📁 星级酒店管理系统最初功能演示版,提供所有星级酒店管理中的客房管理, 房态管理,客史管理,客人资料管理,帐务管理,报表管理,餐饮收费管理 菜谱管理,夜审处理,数据库备份等功能.所有功能皆可以运行,
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                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;
                Query2.Params[4].AsString:=Query1.FieldByName('服务员姓名').AsString;
                Query2.Params[5].AsString:='挂帐';
                //Query2.Params[6].AsString:='普通挂帐';
                Query2.Params[6].AsString:='['+Edit1.Text+']'+Edit2.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:=Edit1.Text;//挂帐人;
                Query2.ParamByName('E').AsString:=Query1.FieldByName('服务员姓名').AsString;//经手人
                Query2.ParamByName('F').AsString:=Edit2.Text;//挂帐原因
                Query2.ParamByName('I').AsFloat:=ZJJE;//挂帐金额
                Query2.ParamByName('G').AsString:='否';//是否还帐
                Query2.ExecSQL;
                //--------结束-------------------------------------------------------------
                TLCYGLXT.FJTHXXB.Edit;
                TLCYGLXT.FJTHXXB.FieldByName('状态').AsSTring:='空闲';
                TLCYGLXT.FJTHXXB.Post;
                ShowMessage('挂帐完毕');
                Close;
                //--------------------------------------
                end;
//------------------------------------------------------------------------------
        end;
end;

procedure TGZFYFrom.BitBtn1Click(Sender: TObject);
begin
     Edit1.Text:='';
     Edit2.Text:='';
     GroupBox6.Visible:=True;
     Edit1.SetFocus;
end;

procedure TGZFYFrom.BitBtn8Click(Sender: TObject);
begin
     GroupBox6.Visible:=False;
end;

procedure TGZFYFrom.BitBtn5Click(Sender: TObject);
//begin
var a:Real;
    b:String;
    c:Real;
    ZJJE:Real;    
begin
     if (Length(Edit3.Text)=0) or (Length(Edit4.Text)=0) then
        begin
             ShowMessage('请将挂帐人、挂帐原因添全。');
             Edit3.SetFocus;
        end
     else
        begin
//------------------------------------------------------------------------------
             b:=Listbox1.Items.Strings[ListBox1.ItemIndex];
             if b='一折' then a:=0.1;
             if b='一五折' then a:=0.15;
             if b='二折' then a:=0.2;
             if b='二五折' then a:=0.25;
             if b='三折' then a:=0.3;
             if b='三五折' then a:=0.35;
             if b='四折' then a:=0.4;
             if b='四五折' then a:=0.45;
             if b='五折' then a:=0.5;
             if b='五五折' then a:=0.55;
             if b='六折' then a:=0.6;
             if b='六五折' then a:=0.65;
             if b='七折' then a:=0.7;
             if b='七五折' then a:=0.75;
             if b='八折' then a:=0.8;
             if b='八五折' then a:=0.85;
             if b='九折' then a:=0.9;
             if b='九五折' then a:=0.95;
             //---------------------------------
             c:=(StrToFloat(Label6.Caption)+TLCYGLXT.FJTHXXB.FieldByName('服务费').AsFloat)*a;
             if MessageDLG('打折后是['+FloatToStr(c)
                +']元人民币.',mtCustom,[mbYes,mbNo],0)=mrYes then
                begin
                //------------------------------------------------------------------------------
                     QRLabel18.Caption:=Label12.Caption;
                     QRLabel16.Caption:=FloatToStr(c);
                     QRLabel4.Caption:=Edit3.Text;
                     QRLabel8.Caption:=Edit4.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;
                     //--------------------------------------
                     ZJJE:=c;
                     //--------------------------------------
                     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;
                     Query2.Params[4].AsString:=Query1.FieldByName('服务员姓名').AsString;
                     Query2.Params[5].AsString:='挂帐';
                     Query2.Params[6].AsString:='打['+FloatToStr(A)+']折挂帐';
                     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:=Edit3.Text;//挂帐人
                     Query2.ParamByName('E').AsString:=Query1.FieldByName('服务员姓名').AsString;//经帐人;
                     Query2.ParamByName('F').AsString:=Edit4.Text;//挂帐原因
                     Query2.ParamByName('I').AsFloat:=c;//挂帐金额
                     Query2.ParamByName('G').AsString:='否';//是否还帐
                     Query2.ExecSQL;
                     //--------结束-------------------------------------------------------------
                     TLCYGLXT.FJTHXXB.Edit;
                     TLCYGLXT.FJTHXXB.FieldByName('状态').AsSTring:='空闲';
                     TLCYGLXT.FJTHXXB.Post;
                     ShowMessage('挂帐完毕');
                     Close;

⌨️ 快捷键说明

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