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

📄 uy_yyt.pas

📁 一个针对酒店大堂管理的delphi应用管理软件
💻 PAS
📖 第 1 页 / 共 3 页
字号:
//     gd.Enabled:=false;
     jz.Enabled:=true;
     jc.Enabled:=true;
     zc.Enabled:=true;
     tc.Enabled:=true;
     bz.Enabled:=true;
     my_yyt_gd.Enabled:=false;
     my_yyt_jz.Enabled:=true;
     my_yyt_jc.Enabled:=true;
     my_yyt_zc.Enabled:=true;
     my_yyt_tc.Enabled:=true;
     my_yyt_bz.Enabled:=true;
    end;
  if zt.caption='2' then
    begin
     ztc.caption:='预结';
     DBGrid1.ReadOnly:=false;
//     gd.Enabled:=false;
     jz.Enabled:=true;
     jc.Enabled:=true;
     zc.Enabled:=true;
     tc.Enabled:=true;
     bz.Enabled:=true;
     my_yyt_gd.Enabled:=false;
     my_yyt_jz.Enabled:=true;
     my_yyt_jc.Enabled:=true;
     my_yyt_zc.Enabled:=true;
     my_yyt_tc.Enabled:=true;
     my_yyt_bz.Enabled:=true;
    end;
  if zt.caption='3' then
    begin
     ztc.caption:='结帐';
     DBGrid1.ReadOnly:=true;
//     gd.Enabled:=false;
     jz.Enabled:=false;
     jc.Enabled:=false;
     zc.Enabled:=false;
     tc.Enabled:=false;
     bz.Enabled:=false;
     my_yyt_gd.Enabled:=false;
     my_yyt_jz.Enabled:=false;
     my_yyt_jc.Enabled:=false;
     my_yyt_zc.Enabled:=false;
     my_yyt_tc.Enabled:=false;
     my_yyt_bz.Enabled:=false;
   end;
  yh.Enabled:=false;
  bz.Enabled:=false;
  my_yyt_yh.Enabled:=false;
  my_yyt_bz.Enabled:=false;
  tai.ReadOnly:=true;
  krs.enabled:=false;
  fwyh.ReadOnly:=true;
  cdmx.filter:='cdbh='+s_cdbh;
  cd.Close;
  cd.SQL.Clear;
  cd.sql.add('select * from cd where cdbh='+quotedstr(s_cdbh));
  cd.Open;
//计算菜单金额
  h_xjje(q_cdje,'s_cdbh',s_cdbh,0);
end;
procedure Ty_yyt.q_cdcz;
begin
 esc_enter:=0;
 y_cd_cx:=ty_cd_cx.create(self);
 y_cd_cx.ShowModal;
 if  esc_enter=0 then exit;

 with y_cd_cx.q_cdcx do
  begin
   s_cdbh:=fieldbyname('cdbh').asstring;
   th.caption:='['+fieldbyname('th').asstring+']';
   tm.caption:=fieldbyname('tm').asstring;
   tai.text:=fieldbyname('tht').asstring;
  // krs.text:=fieldbyname('krs').asstring;
   zws.caption:=fieldbyname('zws').asstring;
   fwyh.text:=fieldbyname('fwyh').asstring;
   zt.caption:=fieldbyname('zt').asstring;
  end;
 cdcz_sz;
end;
procedure Ty_yyt.cdcsh;
begin
  s_cdbh:=hn_cdbh;
 // c_cdbh.caption:=s_cdbh;
//主表初始化
  th.caption:='';
  tm.caption:='';
  zws.caption:='';
  tai.text:='';
 // krs.text:='';
  fwyh.text:='';
  zt.caption:='0';
  ztc.caption:='新单';
  srlb.Caption:='1'; //收入类别默认值设为‘普通’
  skyh.caption:=s_czyh;
  yddh.caption:='';
  DBGrid1.ReadOnly:=false;
  krs.enabled:=true;
  tai.ReadOnly:=false;
  fwyh.ReadOnly:=false;
  cd.Close;
  cd.SQL.Clear;
  cd.sql.add('select * from cd where id=0');
  cd.Open;
  cd.append;
  cd.fieldbyname('fdbh').asstring:=s_fdbh;
  cd.fieldbyname('skth').asstring:=s_skth;
  cd.fieldbyname('cdbh').asstring:=s_cdbh;
  cd.fieldbyname('ycrq').asdatetime:=date();
  cd.fieldbyname('ycsj').asdatetime:=time();
  cd.fieldbyname('krs').asstring:='1';  
//明细表初始化
  cdmx.filter:='cdbh='+s_cdbh;
//  gd.Enabled:=false;
  jz.Enabled:=false;
  jc.Enabled:=false;
  zc.Enabled:=false;
  zc.Enabled:=false;
  tc.Enabled:=false;
  yh.Enabled:=true;
  bz.Enabled:=true;
  my_yyt_gd.Enabled:=false;
  my_yyt_jz.Enabled:=false;
  my_yyt_jc.Enabled:=false;
  my_yyt_zc.Enabled:=false;
  my_yyt_tc.Enabled:=false;
  my_yyt_yh.Enabled:=true;
  my_yyt_bz.Enabled:=false;
//计算小计金额,置为0值
  h_xjje(q_cdje,'s_cdbh',s_cdbh,0);

  if yhyd.RecordCount<>0 then
    begin
     yh.enabled:=true;
     my_yyt_yh.enabled:=true;
    end
   else
    begin
     yh.enabled:=false;
     my_yyt_yh.enabled:=false;
    end;

  tai.setfocus;
end;
procedure Ty_yyt.dccz;
begin
with cdmx do
 begin
  esc_enter:=0;
  g_dc:=tg_dc.Create(self);
  g_dc.showmodal;
  if esc_enter=0 then  exit;
  edit;
  //fieldbyname('bh').value:=hn_cdmxbh;
  fieldbyname('cdbh').value:=s_cdbh;
  fieldbyname('clh').value:=g_dc.q_dc.fieldbyname('clh').asstring;
  fieldbyname('ch').value:=g_dc.q_dc.fieldbyname('ch').asstring;
  fieldbyname('cm').value:=g_dc.q_dc.fieldbyname('mc').asstring;
  fieldbyname('dj').value:=g_dc.q_dc.fieldbyname('dj').asfloat;
  fieldbyname('sl').value:=1;
  fieldbyname('dzl').value:=g_dc.q_dc.fieldbyname('dzl').asfloat;
  fieldbyname('gg').value:=g_dc.q_dc.fieldbyname('gg').asstring;
  fieldbyname('lbh').value:=g_dc.q_dc.fieldbyname('lbh').asstring;
  post;
 end;
// gd.Enabled:=true;
 jz.Enabled:=true;
 jc.Enabled:=true;
 zc.Enabled:=true;
 tc.Enabled:=true;
 bz.Enabled:=true;
 my_yyt_gd.Enabled:=true;
 my_yyt_jz.Enabled:=true;
 my_yyt_jc.Enabled:=true;
 my_yyt_zc.Enabled:=true;
 my_yyt_tc.Enabled:=true;
 my_yyt_bz.Enabled:=true;
end;
procedure Ty_yyt.FormShow(Sender: TObject);
begin
 if not cdmx_cz.Active then cdmx_cz.Active:=true;
 if not t_cdbh.Active then t_cdbh.Active:=true;
  if not t_tai.Active then t_tai.Active:=true;
 if not t.Active then t.Active:=true;
 if not cd.Active then cd.Active:=true;
 if not cdmx.Active then cdmx.Active:=true;
 if not bzc.Active then bzccd.Active:=true;
 if not bzccd.Active then bzccd.Active:=true;
 if not yhyd.Active then yhyd.Active:=true;
 if not yhydcd.Active then yhydcd.Active:=true;
 {if  g_ckcx=NIL then  g_ckcx:=Tg_ckcx.Create(self);
 if y_cd_cx=NIL then y_cd_cx:=Ty_cd_cx.Create(self);
 if g_dc=NIL then g_dc:=Tg_dc.Create(self);
 if y_yyt_jc=NIL then y_yyt_jc:=Ty_yyt_jc.Create(self);
 if y_yyt_jz=NIL then y_yyt_jz:=Ty_yyt_jz.Create(self);
 if y_yyt_jz_dz=NIL then y_yyt_jz_dz:=Ty_yyt_jz_dz.Create(self);
 if y_yyt_md=NIL then y_yyt_md:=Ty_yyt_md.Create(self);
 if y_yyt_qd=NIL then y_yyt_qd:=Ty_yyt_qd.Create(self);
 if y_yyt_rt=NIL then y_yyt_rt:=Ty_yyt_rt.Create(self);
 if y_yyt_tc=NIL then y_yyt_tc:=Ty_yyt_tc.Create(self);
 if y_yyt_zc=NIL then y_yyt_zc:=Ty_yyt_zc.Create(self);
 if yp_yyt1=NIL then yp_yyt1:=Typ_yyt1.Create(self);  }
 y_yyt_cldz.Checked:=main.fdxx.fieldbyname('yycldz').asboolean;
 y_yyt_sfbz.Checked:=main.fdxx.fieldbyname('sfbz').asboolean;
 y_yyt_zdxf.Checked:=main.fdxx.fieldbyname('zdxf').asboolean;
 y_yyt_jzdz.Checked:=main.fdxx.fieldbyname('jzdz').asboolean;
 y_yyt_fwfl.Checked:=main.fdxx.fieldbyname('fwfl').asboolean;
 y_yyt_zkfl.Checked:=main.fdxx.fieldbyname('zkfl').asboolean;
// sb.panels[2].text:=s_czym;
 main.h_del('delete from cd where cdbh is NULL');
// t_a_set; 不能重新设置台状态,因为有可能重新启动
 yd_set;
// yhyd.filter:='y_n=false and yhrq='+formatdatetime('yyyy.mm.dd',date())+' and yhsj>='+s_yd_sj1+' and yhsj<='+s_yd_sj2;
// Timer2.Enabled:=true;
 cdcsh;
 g_wait.close;
end;
procedure Ty_yyt.t_a_set;
begin
 with main.query1 do
  begin
   sql.Clear;
   sql.add('update tai set zt="2" where zt<>"3"');
   ExecSQL;
  end;
end;

procedure Ty_yyt.t_set(string1:string);
begin
 with main.query1 do
  begin
   sql.Clear;
   sql.add('update tai set zt='+''''+'5'+''''+' where tht=:s_tht');
   ParamByName('s_tht').asstring:=string1;
   ExecSQL;
  end;
end;
procedure Ty_yyt.t_u_set(string1:string);
begin
 with main.query1 do
  begin
   sql.Clear;
   sql.add('update tai set zt='+''''+'2'+''''+' where tht=:s_tht');
   ParamByName('s_tht').asstring:=string1;
   ExecSQL;
  end;
end;
procedure Ty_yyt.yd_set;
var
 i,ii:integer;
begin
 //根据预定信息,初始化台的当前状态
 with main.query1 do
  begin
   sql.clear;
   sql.add('select * from yhyd where yhrq=:s_rq and yhsj>=:s_sj1 and yhsj <=:s_sj2 and y_n=false');
   ParamByName('s_rq').asstring:=formatdatetime('yyyy.mm.dd',date());
   ParamByName('s_sj1').asstring:=s_yd_sj1;
   ParamByName('s_sj2').asstring:=s_yd_sj2;
   active:=false;
   active:=true;
   if recordcount<>0 then
    begin
     first;
     for i:=0 to recordcount-1 do
      begin     //找出预定台
       if length(trim(fieldbyname('thts').asstring))>2 then s_ths:=s_ths+trim(fieldbyname('thts').asstring)
         else s_ths:=s_ths+trim(fieldbyname('tht').asstring);
       next;
      end;
   end;
  end;
 ii:=length(s_ths);
 if ii<>0 then
  for i:=1 to ii  do
   begin
    if i>ii/2 then break;
    t_set(copy(s_ths,1,2));    //设为预定台
    s_ths:=copy(s_ths,3,length(s_ths));
   end;
end;

procedure Ty_yyt.taiKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then  krs.setfocus;
{ if trim(zt.caption)<>'0' then exit; //如已挂单返回,否则可以重新选厅
 if key=#13 then
  begin
   esc_enter:=0;
   y_yyt_rt:=ty_yyt_rt.Create(self);    
   y_yyt_rt.showmodal;
   if esc_enter=0 then exit;
   krs.setfocus;
   with y_yyt_rt.q_xt do
    begin
     th.caption:='['+fieldbyname('th').asstring+']';
     tm.caption:=fieldbyname('tm').asstring;
     tai.text:=fieldbyname('tht').asstring;
     zws.caption:=fieldbyname('zws').asstring;
     fwyh.text:=fieldbyname('fwyh').asstring;
    end;
  krs.setfocus;
 end;  }
end;

procedure Ty_yyt.y_closeClick(Sender: TObject);
begin
 if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then //如果是新菜单
   begin
    if not t_tai.Locate('tht',y_yyt.tai.text,[loCaseInsensitive]) then
     begin
      messagebox(handle,'选台操作有误!'+#13+'请一定要先删除当前点菜单的所有菜肴,然后重新启动〈阳光管理软件系统-餐饮〉','系统提示信息',MB_OK+MB_ICONWARNING);
      main.h_del_p1('c_cdbh','s_cdbh','delete from cdmx where cdbh=:c_cdbh');
      exit;
     end;
    gdcz;
   end;
 close;
end;
procedure Ty_yyt.t_cdClick(Sender: TObject);
begin
 if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then //如果是新菜单
    begin
     gdcz;
    end;
 //krs.setfocus;   
 q_cdcz;
end;

procedure Ty_yyt.jzClick(Sender: TObject);
begin
 if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then gdcz;
 try
  cdmx.edit;
  cdmx.post;    //如能保存就保存,不能保存,就cancel掉
 except
  cdmx.cancel;
 end;
 h_xjje(q_cdje,'s_cdbh',s_cdbh,0);  //计算小计金额
 if q_cdje.fieldbyname('hj_all').ascurrency=0 then
   begin
    messagebox(handle,'小计金额为0,不能结帐!','系统提示信息',MB_OK+MB_ICONWARNING);
    exit;
   end;
 if not cd.Locate('cdbh',s_cdbh,[loCaseInsensitive])  then
   begin
     messagebox(handle,'菜单查询操作有误!','系统提示信息',MB_OK+MB_ICONWARNING);
     exit;
   end;
 if not t_tai.Locate('tht',y_yyt.tai.text,[loCaseInsensitive])  then
  begin
   messagebox(handle,'台查询操作有误!','系统提示信息',MB_OK+MB_ICONWARNING);
   exit;
  end;
 esc_enter:=0;
 y_yyt_jz:=ty_yyt_jz.Create(self);
 y_yyt_jz.showmodal;
 if esc_enter=0 then exit;
//置当前台状态为'空闲'
 t_tai.edit;
 t_tai.fieldbyname('zt').value:='2';
 t_tai.post;
//置当前菜单状态为'结帐'
 with cd do
  begin
   edit;
   fieldbyname('zt').value:='3';
   fieldbyname('jzrq').value:=date;
   fieldbyname('jzsj').value:=time();
   post;
  end;
 zt.caption:='3';
 ztc.caption:='结帐';
 DBGrid1.ReadOnly:=true;
// gd.Enabled:=false;
 jz.Enabled:=false;
 jc.Enabled:=false;
 zc.Enabled:=false;
 tc.Enabled:=false;
 bz.Enabled:=false;
 my_yyt_gd.Enabled:=false;
 my_yyt_jz.Enabled:=false;
 my_yyt_jc.Enabled:=false;
 my_yyt_zc.Enabled:=false;
 my_yyt_tc.Enabled:=false;
 my_yyt_bz.Enabled:=false;
end;

procedure Ty_yyt.fwyhKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then DBGrid1.setfocus;
end;

procedure Ty_yyt.krsKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then fwyh.setfocus;
end;

procedure Ty_yyt.tcClick(Sender: TObject);
var
 clh,ch,cm,gg,lbh:string;
 dj,sl:currency;
begin
 if zt.caption='0' then
     begin
       messagebox(handle,'此菜单还没挂单!,您可直接按[Alt+Del]删掉该菜!','系统提示信息',MB_OK+MB_ICONWARNING);
       exit;
     end;
 if zt.caption='3' then
     begin
       messagebox(handle,'此菜单已结帐!,不能再退菜!','系统提示信息',MB_OK+MB_ICONWARNING);
       exit;
     end;
 with cdmx do
  begin
   if fieldbyname('sl').value=fieldbyname('tsl').value then
       exit;
   if (trim(fieldbyname('cz').asstring)='1') or (trim(fieldbyname('cz').asstring)='2') then
       exit;
   if trim(fieldbyname('cm').asstring)='' then
       exit;
   f_tcsl:=fieldbyname('sl').ascurrency-fieldbyname('tsl').ascurrency;
   esc_enter:=0;
   y_yyt_tc:=ty_yyt_tc.Create(self);
   y_yyt_tc.showmodal;
   if esc_enter=0 then exit;
   edit;
   clh:=fieldbyname('clh').asstring;
   ch:=fieldbyname('ch').asstring;
   cm:=fieldbyname('cm').asstring;
   gg:=fieldbyname('gg').asstring;
   dj:=fieldbyname('dj').ascurrency;
   sl:=fieldbyname('tsl').ascurrency;
   lbh:=fieldbyname('lbh').asstring;
   fieldbyname('tsl').value:=sl+f_tcsl;
   append;
  // fieldbyname('bh').value:=hn_cdmxbh;
   fieldbyname('cdbh').value:=s_cdbh;
   fieldbyname('clh').value:=clh;
   fieldbyname('ch').value:=ch;
   fieldbyname('cm').value:=cm;
   fieldbyname('gg').value:=gg;
   fieldbyname('dj').value:=dj;
   fieldbyname('sl').value:=-f_tcsl;
   fieldbyname('cz').value:='1';
   fieldbyname('tcyyh').value:=s_tcyyh;
   fieldbyname('tcyy').value:=s_tcyy;
   fieldbyname('pzrh').value:=s_pzrh;
   fieldbyname('lbh').value:=lbh;
 end;
end;
procedure Ty_yyt.dcClick(Sender: TObject);
begin
//判断当前的菜单是否是新菜单
 if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then  gdcz;
 main.h_del('delete from cd where cdbh is NULL');
 main.h_del('delete from cdmx where cm is NULL');
 cdcsh;
end;
procedure Ty_yyt.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=6 then exit; //屏蔽del键
  if key=9 then tai.setfocus;
//删菜操作
  if (key=46) and (zt.caption='0')  and (cdmx.fieldbyname('sl').value<>cdmx.fieldbyname('tsl').value) then
    if messagebox(handle,'您真的要删除该菜吗','系统提示信息',MB_OKCANCEL+MB_ICONQUESTION)=IDOK then
      begin
       cdmx.Delete;
//       h_xjje(q_cdje,'s_cdbh',s_cdbh,0);        //计算菜单金额
      end;
 if (key=13) and (zt.Caption<>'3') then
  begin
    cdmx.append; //回车键新增
    DBGrid1.SelectedIndex:=0; 
  end;
 if (trim(cdmx.fieldbyname('cm').asstring)='') and (zt.caption<>'3')  then
   begin
     if  (  (key>=65) and (key<=90) ) or ( (key>=48) and (key<=57) )  then
       begin
         c_key:=chr(key);
         dccz;   //点菜操作
         DBGrid1.SelectedIndex:=3;
       end;
     if (key>=96) and (key<=105) then  //判断小键盘数字键, 并转换
       begin
         c_key:=chr(key-48);
         dccz;   //点菜操作
         DBGrid1.SelectedIndex:=3;
       end;
   end;
 h_xjje(q_cdje,'s_cdbh',s_cdbh,0);        //计算菜单金额
end;

procedure Ty_yyt.krsKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key=39) or (key=40) then fwyh.setfocus;

⌨️ 快捷键说明

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