📄 newjzform.pas
字号:
while not q1.Eof do
begin
jzfs.Items.Add(q1.FieldByName('Code').asstring);
jzfsname.Items.Add(q1.FieldByName('name').asstring);
q1.Next;
end;
q1.Close;
q1.UnPrepare;
xfhdno.Text :='';
kh.Text:='';
formini;
end;
procedure Tnewjz.zkChange(Sender: TObject);
begin
if length(trim(hm.text))>0 then
begin
mxffjval;
bitbtn1.Enabled :=false;
bitbtn2.Enabled :=false;
// bitbtn6.Enabled :=false;
bitbtn5.Enabled :=false;
end;
end;
procedure Tnewjz.BitBtn1Click(Sender: TObject);
var jje,dje:array [0..1] of Currency;
kmdm,bmdm:array [0..1] of string;
bb:array [0..1] of string;
rmnum,sannum,totnum,bz,i,k,j:integer;
begin
servertime(NIL);
if not BitBtn1.Enabled then
exit;
BitBtn1.Enabled:=false;
bb[0]:='';
if (length(trim(paccount))=0) then
begin
showmessage('操作有误请重来!');
exit;
end;
{ if (trim(jzfsname.Text)='记帐')and(trim(gzno.Text)='') then
begin
showmessage('没有选择挂帐单位,请检测!');
exit;
end; }
for i:=0 to 1 do
begin
jje[i]:=0;dje[i]:=0;kmdm[i]:='';bmdm[i]:='';
end;
getvalue(bb,'select wdno from lockacc where ((accno='''+trim(paccount)+''' ) and (locknum>0)) ');
if length(trim(bb[0]))>0 then
begin
showmessage('网点'+bb[0]+'将'+trim(xfhdno.text)+'手号锁定');
exit;
end;
if (trim(jzfsname.Text)='会员卡') and (strtofloat(yjm.Text)<>0) then
begin
showmessage('用会员卡结帐请先退还客人押金!');
exit;
end;
if trim(kye.text)='' then kye.text:='0';
if (trim(kh.text)<>'') and (strtofloat(kye.Text)<=-1*strtofloat(ling.text)) then
begin
showmessage('卡内余额不足,'+#13+'请用现金结帐或储值后再结帐!');
exit;
end;
if (trim(kh.text)='') and (jzfsname.Text='会员卡') then
begin
showmessage('请插入会员卡后再结帐!');
exit;
end;
if (jzfsname.Text='现金')and(strtofloat(ling.Text)<0) then
begin
showmessage('所付金额不足,无法结帐!');
exit;
end;
// BitBtn6Click(nil);
if messagedlg('打印成功吗?',mtInformation, [mbYes, mbNo], 0) = mrno then
exit;
if (length(trim(paccount))>0) then
begin
if (strtofloat(ling.text)<0) and (trim(jzfsname.Text)='会员卡') then
// function ICKxf(je:real;kh,jsr,xfdz,djcode,cz,xf:string):integer;
if (jzfsname.Text='会员卡') and (trim(kh.text)<>'') then
if ICKxf(-1*strtofloat(ling.text),kh.text,czy.text,'桑拿',paccount,kcz.Text,kxf.Text)<>0 then
begin
showmessage('IC卡结帐不成功!'+#13+'请用现金或重试一次');
exit;
end;
{ if (jzfsname.Text='会员卡') then
begin
query5.Active:=false;
query5.SQL.Clear;
query5.SQL.Add('select max(pzr) from nowin where accno=:paccno ');
query5.parambyname('paccno').asstring:=trim(paccount);
query5.Prepare;
query5.Open;
if trim(query5.Fields[0].asstring)='' then
begin
query3.Active:=false;
query3.SQL.Clear;
query3.SQL.Add('update nowin set pzr='''+curper.name+'会员'+''' where accno=:paccno ');
query3.ParamByName('paccno').asstring:=paccount;
query3.Prepare;
query3.ExecSQL;
end;
end; }
rmmx.Checked :=true;
totnum:=q2.RecordCount ;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('select count(roomno) as gs from nowin where (isbj=:pbj and accno=:pacc)');
q1.ParamByName ('pbj').asboolean:=true;
q1.ParamByName ('pacc').asstring:=trim(paccount);
q1.Prepare;
q1.open;
rmnum:=q1.fieldbyname('gs').asinteger;
sannum:=totnum-rmnum;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('insert into lsjz values(:phandno,:paccno,:proomnum,:psannum,:proommoney,:proomcsmoney,:prmzklevel,:psanmoney,:psancsmoney,:pcusmoney,:pphmoney,:pyjmoney,:pmcsmoney,');
q1.sql.add(' :pjjmoeny,:pmmmoney,:pysmoney,:pdjqmoney,:pismf,:pismxf,:pgzno,:pjztime,:pclass,:pregid,:pjzfs)');
q1.ParamByName ('phandno').asstring:=trim(xfhdno.text);
q1.ParamByName ('paccno').asstring:=trim(paccount);
q1.ParamByName ('proomnum').asinteger:=rmnum;
q1.ParamByName ('psannum').asinteger:=sannum;
q1.ParamByName ('proommoney').asfloat:=strtofloat(trim(rm.text));
q1.ParamByName ('proomcsmoney').asfloat:=strtofloat(trim(rcsm.text));
q1.ParamByName ('prmzklevel').asinteger:=zk.value;
q1.ParamByName ('psanmoney').asfloat:=strtofloat(trim(sm.text));
q1.ParamByName ('psancsmoney').asfloat:=strtofloat(trim(scsm.text));
q1.ParamByName ('pcusmoney').asfloat:=strtofloat(trim(xm.text));
q1.ParamByName ('pphmoney').asfloat:=strtofloat(trim(dhf.text));
q1.ParamByName ('pyjmoney').asfloat:=strtofloat(trim(yjm.text));
q1.ParamByName ('pmcsmoney').asfloat:=strtofloat(trim(mcs.text));
q1.ParamByName ('pjjmoeny').asfloat:=strtofloat(trim(jj.text));
q1.ParamByName ('pmmmoney').asfloat:=strtofloat(trim(mm.text));
q1.ParamByName ('pysmoney').asfloat:=strtofloat(trim(ym.text));
q1.ParamByName ('pdjqmoney').asfloat:=strtofloat(trim(djq.text));
q1.ParamByName ('pismf').asboolean:=mfj.Checked;
q1.ParamByName ('pismxf').asboolean:=mxf.Checked ;
if gzno.Enabled then
// q1.ParamByName ('pgzno').asstring:=copy(gzno.Items[gzno.itemindex],1,6)
q1.ParamByName ('pgzno').asstring:=copy(trim(gzno.text),1,6)
else
q1.ParamByName ('pgzno').asstring:='';
q1.ParamByName ('pjztime').asdatetime:=dqdate.DateTime;
//strtodatetime(maskedit1.text);
q1.ParamByName ('pclass').asstring:=curper.curbc;
q1.ParamByName ('pregid').asstring:=trim(copy(czy.text,1,10));
// if jzfsname.Enabled then
q1.ParamByName ('pjzfs').asstring:=jzfs.Items[jzfsname.ItemIndex];
// else
// q1.ParamByName ('pjzfs').asstring:='05';
q1.Prepare;
q1.execsql;
q1.active:=false;
q1.sql.clear;
q1.sql.add('update nowin set jzfs=:pjzfs where (accno=:pno)');
q1.ParamByName ('pjzfs').asstring:=jzfs.Items[jzfsname.ItemIndex];
q1.ParamByName ('pno').asstring:=trim(paccount);
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
if mxf.Checked then
begin
q1.sql.clear;
q1.sql.add('update custom set ismd=1 where isxj<>1 and (accno=:pno)');
q1.sql.add('update nowin set zkl='+zk.text+',ismxf=1,pzr='''+czy1.Caption+''' where (accno=:pno)');
// q1.ParamByName ('pxj').asboolean:=false;
// q1.ParamByName ('pmd').asboolean:=true;
q1.ParamByName ('pno').asstring:=trim(paccount);
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
end;
if mfj.Checked then
begin
q1.sql.clear;
q1.sql.add('update nowin set ismff=1 where (accno=:pno)');
q1.ParamByName ('pno').asstring:=trim(paccount);
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
end;
for j:=0 to jzfsname.Items.Count-1 do
if jzfsname.Items[j]=trim(jzfsname.text) then
begin
jzfsname.ItemIndex:=j;
jzfs.ItemIndex:=jzfsname.ItemIndex;
jzfsname.TEXT:=jzfsname.Items[jzfsname.ItemIndex];
end;
q1.UnPrepare;
s1.ParamByName ('@ihdno').asstring:=trim(xfhdno.text);
s1.ParamByName ('@isex').asstring:=plssex;
s1.ParamByName ('@jzfs').asstring:=jzfs.text ;
// s1.ParamByName ('@iscard').asboolean:=card.Checked ;
// s1.parambyname ('@iszp').asboolean:=zp.checked;
s1.ParamByName ('@isgz').asboolean:=gzno.Enabled;
if gzno.Enabled then
// s1.ParamByName ('@igzno').asstring:=copy(gzno.Items[gzno.itemindex],1,6)
s1.ParamByName ('@igzno').asstring:=copy(trim(gzno.text),1,6)
else
s1.ParamByName ('@igzno').asstring:='';
s1.ParamByName ('@itime').asdatetime:=dqdate.DateTime;
//strtodatetime(maskedit1.text);
s1.ParamByName ('@lftime').asdatetime:=strtodatetime(datetostr(lfdate.date)+' '+timetostr(lftime.time));
s1.Prepare;
s1.ExecProc;
s1.UnPrepare;
/////////重新更新结帐的房间的房态
{ q1.Active :=false;
q1.sql.clear;
q1.SQL.Add('select roomno,sex from nowin where accno=:pacc ');
q1.ParamByName('pacc').asstring:=trim(paccount);
q1.Prepare;
q1.Open;
while not q1.Eof do
begin
query2.Active:=false;
query2.SQL.Clear;
if trim(q1.FieldByName('sex').asstring)='2' then
query2.SQL.Add('update room1 set status=''2'' where roomno='''+q1.Fieldbyname('roomno').asstring+'''');
if trim(q1.FieldByName('sex').asstring)='0' then
query2.SQL.Add('update WOMANSAN set status=''0'' where roomno='''+q1.Fieldbyname('roomno').asstring+'''');
if trim(q1.FieldByName('sex').asstring)='1' then
query2.SQL.Add('update mansan set status=''0'' where roomno='''+q1.Fieldbyname('roomno').asstring+'''');
if trim(q1.FieldByName('sex').asstring)='3' then
query2.SQL.Add('update jy1 set status=''0'' where roomno='''+q1.Fieldbyname('roomno').asstring+'''');
query2.Prepare;
query2.ExecSQL;
q1.Next;
end; }
q1.sql.clear;
q1.sql.add('insert into lsGuestMx select * from GuestMx where not welid in (select welid from nowin )');
q1.ExecSQL;
q1.sql.clear;
q1.sql.add('delete GuestMx where not welid in (select welid from nowin )');
q1.ExecSQL;
q1.Active :=false;
q1.sql.clear;
if (trim(gzno.Text)<>'')and(trim(jzfsname.text)='记帐') then
begin
q1.Active :=false;
q1.sql.clear;
q1.sql.text:='insert into gzdb (zhanghao,rq,cdh,yshj,sfjz,skr,gzlx,qianzhangflag,jzpzh)';
q1.sql.add(' values('''+copy(trim(gzno.text),1,6)+''','''+formatdatetime('yyyy-mm-dd',now)+''','''+trim(paccount)+''','+trim(ym.text)+',''0'','''+curper.name+''','''+'记帐'+''','''+'0'+''','''')');
q1.ExecSQL;
end;
/////////////////////////////////
{ if trim(jzfsname.Text)='记帐' then
begin
if Application.MessageBox('是否产生财务记帐凭证?','提示信息', 36)=6 then
kmdm[0]:=trim('113'+copy(trim(gzno.Text),1,6));
bmdm[0]:=trim(copy(trim(gzno.Text),1,6));
jje[0]:=strtofloat(ym.text);
dje[0]:=0;
kmdm[1]:='501002';
bmdm[1]:=trim(copy(trim(gzno.Text),1,6));
jje[1]:=0;
dje[1]:=strtofloat(ym.text);
bz:=yysrpz(formatdatetime('yyyy-mm-dd',dqDate.Date),'1','前台交来营业收入',kmdm,bmdm,jje,dje,1);
if bz=1 then
Application.MessageBox('要产生的财务记帐凭证中借贷不平衡!','提示信息', 16);
if bz=2 then
Application.MessageBox('产生财务记帐凭证时有错误!','提示信息', 16);
end; }
addlogo(curper.code,datetimetostr(now),trim(paccount)+'结帐'+trim(xfhdno.text)+str);
showmessage('结帐成功');
str:='';
if not xfhdno.Enabled then
begin
close;
end;
bitbtn1.Enabled :=false;
bitbtn2.Enabled :=false;
// bitbtn6.Enabled :=false;
q2.active:=false;
q2.UnPrepare;
xfhdno.setfocus;
xfhdno.Text :='';
formini;
s1.UnPrepare;
end;
end;
procedure Tnewjz.xfmxClick(Sender: TObject);
begin
seemx;
end;
procedure Tnewjz.rmmxClick(Sender: TObject);
begin
seemx;
end;
procedure Tnewjz.mcsExit(Sender: TObject);
begin
if trim(mcs.text)='' then mcs.text:='0';
if trim(jj.text)='' then jj.text:='0';
if trim(mm.text)='' then mm.text:='0';
if trim(sk.text)='' then sk.text:='0';
mxffjval;
end;
procedure Tnewjz.FormClose(Sender: TObject; var Action: TCloseAction);
begin
q1.free;
q2.free;
caljz.free;
s1.free;
s3.free;
end;
procedure Tnewjz.BitBtn6Click(Sender: TObject);
begin
application.CreateForm(Tjzbprintform,jzbprintform);
jzbprintform.hide;
if dy.Checked then
jzbprintform.qr1.print
else
jzbprintform.qr1.Preview;
jzbprintform.Close;
jzbprintform.free;
// bitbtn2.Enabled :=false;
// bitbtn6.Enabled :=false;
bitbtn1.SetFocus;
end;
procedure Tnewjz.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure gridadd(gg:tstringGrid;lssex:string);
var i :integer;
begin
with newjz do
begin
for i:=1 to gg.RowCount-1 do
if length(trim(gg.cells[0,i]))>0 then
begin
q1.Active :=false;
q1.sql.Clear ;
q1.sql.add('insert into endaccpara values(:phdno,:paccno,:psex)');
q1.ParamByName ('phdno').asstring:=trim(gg.cells[0,i]);
q1.ParamByName ('paccno').asstring:=paccount;
q1.Parambyname ('psex').asstring:=lssex;
q1.Prepare;
q1.ExecSQL;
end;
end
end ;
function empeygrid(tg:tstringgrid):boolean;
var
i:integer;
begin
i:=1;
empeygrid:=true;
while i<=tg.rowcount do
begin
if length(trim(tg.cells[0,i]))>0 then
begin
empeygrid:=false;
break;
end;
i:=i+1;
end;
end;
procedure Tnewjz.BitBtn4Click(Sender: TObject);
var ls:string;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -