📄 uy_yyt.pas
字号:
// 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 + -