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

📄 newjzform.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
📖 第 1 页 / 共 5 页
字号:

    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 + -