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

📄 ctjz.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
字号:
unit ctjz;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons, Mask, Spin, Grids, ComCtrls, Db, DBGrids,
  DBTables;

type
  TctjzForm = class(TForm)
    TabControl1: TTabControl;
    xfbm: TComboBox;
    Label1: TLabel;
    tabno: TEdit;
    GroupBox2: TGroupBox;
    Label20: TLabel;
    Label21: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label4: TLabel;
    GroupBox6: TGroupBox;
    gzno: TComboBox;
    mfw: TCheckBox;
    mbj: TCheckBox;
    jzfsname: TComboBox;
    jzfs: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    mcf: TCheckBox;
    Label5: TLabel;
    Label6: TLabel;
    hdno: TEdit;
    Label7: TLabel;
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn2: TBitBtn;
    zs: TLabel;
    Panel1: TPanel;
    Label9: TLabel;
    yy: TEdit;
    wy: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    qb: TEdit;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Query1: TQuery;
    Panel3: TPanel;
    bjf: TMaskEdit;
    cf: TMaskEdit;
    fwf: TMaskEdit;
    hj: TMaskEdit;
    Panel4: TPanel;
    yf: TMaskEdit;
    jm: TMaskEdit;
    Panel5: TPanel;
    man: TRadioButton;
    woman: TRadioButton;
    zk: TSpinEdit;
    zkhj: TEdit;
    Label8: TLabel;
    MaskEdit1: TMaskEdit;
    Label12: TLabel;
    Label13: TLabel;
    jzdh: TEdit;
    czy: TLabel;
    BitBtn4: TBitBtn;
    state: TComboBox;
    zke: TEdit;
    Label14: TLabel;
    StoredProc1: TStoredProc;
    Query2: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure tabnoDblClick(Sender: TObject);
    procedure TabControl1Change(Sender: TObject);
    procedure jzfsnameChange(Sender: TObject);
    procedure mfwClick(Sender: TObject);
    procedure jmChange(Sender: TObject);
    procedure hdnoDblClick(Sender: TObject);
    procedure zkChange(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure jzfsnameExit(Sender: TObject);
    procedure tabnoExit(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ctjzForm: TctjzForm;

implementation

uses ctdj, dataproc, newdj;

var acc,bkwelid:string;
    bje,cfe,jme:real;

{$R *.DFM}

procedure init;
begin
with ctjzform do
  begin
    xfbm.text:='';
    tabno.text:='';
    gzno.text:='';
    mfw.Checked:=false;
    mbj.Checked:=false;
    mcf.Checked:=false;
    hdno.text:='';
    yy.text:='';
    wy.text:='';
    qb.text:='';
    bjf.text:='0';
    cf.text:='0';
    fwf.text:='0';
    hj.text:='0';
    zke.text:='0';
    yf.text:='0';
    jm.text:='0';
    zk.text:='100';
    zkhj.text:='0';
    jzfs.ItemIndex:=0;
    jzfsname.ItemIndex:=0;

  end;
end;




procedure js;
begin
with ctjzform do
  begin
     if mbj.Checked then
       bjf.text:='0'
      else
        bjf.text:=floattostr(bje);
     if mcf.Checked then
       cf.text:='0'
     else
       cf.Text:=floattostr(cfe);
     if mfw.Checked then
       fwf.text:='0'
      else
        fwf.Text:=floattostr((strtofloat(bjf.text)+strtofloat(cf.text)-strtofloat(jm.text)-strtofloat(zke.text))*0.1);
     hj.text:=floattostr(strtofloat(bjf.text)+strtofloat(cf.text)+strtofloat(fwf.text));
     yf.Text:=floattostr(strtofloat(hj.text)-strtofloat(zke.Text)-strtofloat(jm.Text));
  end;
end;




procedure seemx(d:integer;dd:string);
begin
with ctjzform do
  begin
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select sum(Money) from custom where accno='''+acc+''' and iszk=1 and tabno='''+trim(TabControl1.Tabs[d])+'''');
     Query1.Open;
     zkhj.Text:=floattostr(Query1.Fields[0].asfloat);
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select sum(Money) from custom where accno='''+acc+''' and tabno='''+trim(TabControl1.Tabs[d])+'''');
     Query1.Open;
     qb.Text:=floattostr(Query1.Fields[0].asfloat);
//     cf.Text:=floattostr(Query1.Fields[0].asfloat);
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select sum(Money) from custom where accno='''+acc+''' and isuse=1 and tabno='''+trim(TabControl1.Tabs[d])+'''');
     Query1.Open;
     yy.Text:=floattostr(Query1.Fields[0].asfloat);
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select sum(Money) from custom where accno='''+acc+''' and isuse=0 and tabno='''+trim(TabControl1.Tabs[d])+'''');
     Query1.Open;
     wy.Text:=floattostr(Query1.Fields[0].asfloat);
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select cusitem.cusname,CusPrice,CusNum,Money,Isuse,Regtime,fwy,Djcode from custom,cusitem where cusitem.Cuscode=custom.Cuscode and tabno='''+trim(TabControl1.Tabs[d])+''' order by '+dd);
     Query1.Open;
     DataSource1.DataSet:=Query1;
     chinesegrid(dbgrid1);
     DBGrid1.fields[0].displaylabel:='  菜  名  称';
     DBGrid1.fields[1].displaylabel:='价格';
     DBGrid1.fields[2].displaylabel:='数量';
     DBGrid1.fields[3].displaylabel:='金额';
     DBGrid1.fields[4].displaylabel:='上菜否';
     DBGrid1.fields[6].displaylabel:='服务员';
//     dbgrid1.Columns[0].width:=60;
     dbgrid1.Columns[1].width:=30;
     dbgrid1.Columns[2].width:=30;
     dbgrid1.Columns[3].width:=30;
     js;
  end;
end;


procedure TctjzForm.FormCreate(Sender: TObject);
begin
     shortdateformat:='yyyy-mm-dd';
//    lc:=copy(curper.Headship,1,1);
    comadd(gzno,2,'select gzno,gzname from gzdbf');
    gzno.ItemIndex:=-1;
    fm.query2.Active :=false;
    fm.query2.sql.Clear ;
    fm.query2.sql.add('select * from mode');
    fm.query2.Prepare;
    fm.query2.open;
    jzfsname.Items.Clear;
    jzfs.Items.Clear;
    while not fm.query2.Eof do
    begin
      jzfs.Items.Add(fm.query2.FieldByName('Code').asstring);
      jzfsname.Items.Add(fm.query2.FieldByName('name').asstring);
      fm.query2.Next;
    end;
    fm.query2.Close;
    fm.query2.UnPrepare;
    czy.Caption:=curper.name;
    init;
end;

procedure TctjzForm.tabnoDblClick(Sender: TObject);
begin
  Application.CreateForm(Tycdjform, ycdjform);
  ycdjform.Caption:='';
  ycdjform.ydj.Enabled:=false;
  ycdjform.showmodal;
  tabno.Text:=ycdjform.ydj.Text;
  ycdjform.free;
  DBGrid1.SetFocus ;

end;

procedure TctjzForm.TabControl1Change(Sender: TObject);
begin
    if state.Items[TabControl1.TabIndex]='1' then
    begin
      BitBtn4.Enabled:=true;
      Label14.Caption:='';
    end
    else
    begin
      BitBtn4.Enabled:=false;
      Label14.Caption:='已撤台';
    end;
    seemx(TabControl1.TabIndex,'custom.Cuscode');
end;

procedure TctjzForm.jzfsnameChange(Sender: TObject);
begin
   jzfs.ItemIndex:=jzfsname.ItemIndex;
   if (trim(jzfsname.text)='记帐') or (trim(jzfsname.text)='挂帐') then
      gzno.Enabled:=true
   else
   begin
      gzno.ItemIndex:=-1;// .Text:='';
      gzno.Enabled:=false;
   end;
   if trim(jzfsname.text)='免费' then
   begin
      mfw.Checked:=true;
      mbj.Checked:=true;
      mcf.Checked:=true;
      js;
   end
   else
   begin
      mfw.Checked:=false;
      mbj.Checked:=false;
      mcf.Checked:=false;
      js;
   end;

end;

procedure TctjzForm.mfwClick(Sender: TObject);
begin
  js;
end;

procedure TctjzForm.jmChange(Sender: TObject);
begin
   js;
end;

procedure TctjzForm.hdnoDblClick(Sender: TObject);
begin
  Application.CreateForm(Tdjform, djform);
  djform.Panel1.Visible:=false;
  djform.rmnogrid.Visible:=false;
  djform.Button1.Enabled:=false;
  djform.Timer1.Free;
  djform.showmodal;
  hdno.Text:=copy(trim(djform.xfrmno.Text),1,6);
  if length(trim(djform.xfrmno.Text))>6 then
  begin
    Panel5.Visible:=true;
    if trim(copy(trim(djform.xfrmno.Text),7,6))='1' then
    begin
      man.Checked:=true;
      woman.Checked:=false;
    end
    else
    begin
      man.Checked:=false;
      woman.Checked:=true;
    end;
  end
  else Panel5.Visible:=false;
  djform.Free;

end;

procedure TctjzForm.zkChange(Sender: TObject);
begin
   zke.text:=floattostr((strtofloat(zkhj.text)*(1-(zk.Value/100))));
end;

procedure TctjzForm.BitBtn1Click(Sender: TObject);
var i:integer;
begin
  if trim(HDNO.text)<>'' then
  begin //餐厅挂帐
    if bkwelid='' then
    begin
     fm.Query2.Active:=false;
     fm.Query2.SQL.Clear;
     fm.Query2.SQL.Add('select welid from nowin where roomno='''+hdno.Text+''' and sex=:psex');
     if Panel5.Visible then
     begin
       if man.Checked then
         fm.Query2.ParamByName('psex').asstring:='1'
       else
         fm.Query2.ParamByName('psex').asstring:='0';
     end
     else
     begin
       if copy(trim(hdno.text),1,1)='Y' then
         fm.Query2.ParamByName('psex').asstring:='3'
       else
         fm.Query2.ParamByName('psex').asstring:='2';
     end;
     fm.Query2.Open;
     if fm.Query2.Eof then
     begin
       fm.Query2.Active:=false;
       fm.Query2.SQL.Clear;
       showmessage('挂帐房间不对,不能挂帐!');
       exit;
     end;
     bkwelid:=fm.Query2.Fields[0].asstring;
     fm.Query2.Active:=false;
     fm.Query2.SQL.Clear;
    end;
  end;
  Query2.Active :=false;
  Query2.sql.clear;
  for i:=0 to TabControl1.Tabs.Count-1 do
  begin
     seemx(i,'custom.Cuscode');
     Query2.SQL.add('update ctnowin set money='+yy.text+' where isjz=0 and tabno='''+trim(TabControl1.Tabs[i])+''' and accno='''+acc+'''');
  end;
  Query2.SQL.Add('update tabledb set state='''+'2'+''' where tabno in (select tabno from ctnowin where accno='''+trim(acc)+''') and not tabno in (select tabno from ctnowin where accno<>'''+trim(acc)+''') and state=''1''');
  Query2.SQL.add('update custom set jzfs='''+jzfs.Text+''',Moditime='''+formatdatetime('yyyy-mm-dd hh:mm',now)+''' where accno='''+acc+'''');
  Query2.SQL.add('update ctnowin set jzfs='''+jzfs.Text+''',isjz=1,isgz=:pgz,gzno='''+gzno.Text+''',isbk=:pbk,bkroom='''+hdno.Text+''',czy='''+curper.name+''',EndTime='''+formatdatetime('yyyy-mm-dd hh:mm',now)+''' where isjz=0 and accno='''+trim(acc)+'''');
  Query2.SQL.add('insert into ctjz values('''+jzdh.Text+''','''+acc+''','+bjf.text+','+cf.text+','+fwf.text+','+hj.text+','+inttostr(ZK.value)+','+zke.Text+','+jm.Text+','+yf.Text+',:pmcf,:pmfwf,:pmbjf,'''+jzfs.Text+''',');
  Query2.SQL.Add(':pgz,'''+gzno.Text+''',:pbk,'''+hdno.Text+''','''+curper.name+''','''+formatdatetime('yyyy-mm-dd hh:mm',now)+''','''+curper.curbc+''')');
  Query2.ParamByName('pgz').asboolean:=gzno.Enabled;
  Query2.ParamByName('pbk').asboolean:=(trim(hdno.text)<>'');
  Query2.ParamByName('pmfwf').asboolean:=mfw.Checked;
  Query2.ParamByName('pmcf').asboolean:=mcf.Checked;
  Query2.ParamByName('pmbjf').asboolean:=mbj.Checked;
//     showmessage(Query1.sql.text);
  Query2.Prepare;
  Query2.ExecSQL;
  Query2.Active :=false;
  Query2.sql.clear;
  Query2.SQL.Add('insert into lsctnowin select * from ctnowin where accno='''+trim(acc)+''' and isjz=1');
  Query2.SQL.Add('delete from ctnowin where accno='''+trim(acc)+''' and isjz=1');
  Query2.SQL.Add('insert into lscustom select * from custom where accno='''+trim(acc)+'''');
  Query2.SQL.Add('delete from custom where accno='''+trim(acc)+'''');
  Query2.Prepare;
  Query2.ExecSQL;
  Query2.Active :=false;
  Query2.sql.clear;
  if trim(bkwelid)<>'' then
  begin //餐厅挂帐
     fm.Query2.Active:=false;
     fm.Query2.SQL.Clear;
     fm.Query2.SQL.Add('insert into custom select handno,sex,accno,welid,''8801'',''880101'','+yf.Text+',1,'+yf.Text+',0,0,'''','''',:ptime,null,'''','''+curper.name+''','''','''' from nowin where welid='''+bkwelid+'''');
     fm.Query2.ParamByName('ptime').asdatetime:=now;
     fm.Query2.ExecSQL;
     fm.Query2.Active:=false;
     fm.Query2.SQL.Clear;
     StoredProc1.Prepare;
     StoredProc1.ParamByName('@iwelid').asstring:=bkwelid;
     StoredProc1.ParamByName('@iwdno').asstring:='餐厅';
     StoredProc1.ExecProc;
  end;
  showmessage('结帐完毕');
  init;
end;

procedure TctjzForm.jzfsnameExit(Sender: TObject);
begin
  if trim(jzfsname.Text)='' then
  begin
    jzfsname.ItemIndex:=0;
    jzfs.ItemIndex:=0;
  end;
end;

procedure TctjzForm.tabnoExit(Sender: TObject);
var i:integer;
begin
  if trim(tabno.text)<>'' then
  begin
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select distinct ctnowin.tabno,accno,price,bkwelid,bkroom,state from ctnowin,tabtype,tabledb where accno in (select accno from ctnowin where tabno='''+trim(Tabno.text)+''') and ctnowin.tabno=tabledb.tabno and tabledb.ztype=tabtype.code');
     Query1.Open;
     acc:=Query1.Fields[1].asstring;
     state.Items.Clear;
     TabControl1.Tabs.Clear;
     bje:=0;
     i:=0;
     while not Query1.Eof do
     begin
       state.Items.Add(Query1.Fieldbyname('state').asstring);
       TabControl1.Tabs.Add(Query1.Fields[0].asstring);
       bje:=bje+Query1.Fields[2].asfloat;
       Query1.Next;
       i:=i+1;
     end;
     hdno.Text:=Query1.Fieldbyname('bkroom').asstring;
     bkwelid:=Query1.Fieldbyname('bkwelid').asstring;
     zs.Caption:='共 '+inttostr(i)+' 桌';
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select sum(Money) from custom where accno='''+acc+''' and isuse=0');
     Query1.Open;
     jme:=Query1.Fields[0].asfloat;
     jm.Text:=floattostr(jme);
     Query1.Active :=false;
     Query1.sql.clear;
     Query1.SQL.Add('select sum(Money) from custom where accno='''+acc+'''');
     Query1.Open;
     cfe:=Query1.Fields[0].asfloat;
     BitBtn1.Enabled:=true;
     BitBtn2.Enabled:=true;
     if TabControl1.Tabs.Count>0 then
       TabControl1Change(nil);
  end
  else
  begin
     Query1.Active :=false;
     Query1.sql.clear;
     init;
  end;

end;

procedure TctjzForm.BitBtn4Click(Sender: TObject);
var i,hj:integer;
begin
   hj:=0;
   for i:=0 to state.Items.Count-1 do
    if  trim(state.Items[i])='1' then hj:=hj+1;
   if hj<=1 then
   begin
     showmessage('不能撤台');
     exit;
   end;
   Query1.Active :=false;
   Query1.sql.clear;
   Query1.SQL.Add('update tabledb set state=''2'' where tabno='''+TabControl1.Tabs[TabControl1.TabIndex]+''' and state=''1''');
   Query1.ExecSQL;
   Query1.Active :=false;
   Query1.sql.clear;
end;

procedure TctjzForm.BitBtn3Click(Sender: TObject);
begin
     close;
end;

end.

⌨️ 快捷键说明

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