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

📄 groupdj.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
   lsxb,i:integer;
   ss,groupno,zjno,accno,ls:string;
   aa:array [0..1] of string;
begin
   if length(trim(groupname.text))=0 then
      begin
      showmessage('团体名称不能为空');
      groupname.SetFocus ;
      exit;
      end;
   if length(trim(workunit.text))=0 then
      begin
      showmessage('单位不能为空');
      workunit.SetFocus ;
      exit;
      end;
   if length(trim(ttjc.text))>2 then
      begin
      showmessage('简称必须为汉语拼音且为两位');
      workunit.SetFocus ;
      exit;
      end;
   if length(trim(master.text))=0 then
      begin
      showmessage('领队不能为空');
      master.setfocus;
      exit;
      end;
   if (trim(zj.Items[zj.itemindex])='身份证') and (length(trim(id.text))>0) then
      begin
      if length(trim(id.text))<>15 then
         begin
         showmessage('身份证号码错误');
         id.setfocus;
         exit;
         end
      else
         begin
         lsxb:=strtoint(copy(trim(id.text),length(trim(id.text)),1)) mod 2;
         if lsxb=1 then
            man.Checked :=true
         else
            woman.Checked :=true;
         end;
      end;
   if length(trim(ttjc.text))=0 then
      begin
      showmessage('团体简称不能为空');
      ttjc.SetFocus ;
      exit;
      end;
   if rmnum.Value =0 then
      begin
      showmessage('房间数量不能为 0 ');
      rmtypegrid.SetFocus ;
      exit;
      end;
  if xj.Checked =true then
     ss:='01';
  if zp.Checked =true then
     ss:='02';
  if gz.Checked =true then
     ss:='04';
  if mf.Checked =true then
     ss:='05';
  if card.Checked =true then
     begin
     if cardlist.ItemIndex =0 then
        ss:='13';
     if cardlist.ItemIndex =1 then
        ss:='23';
     if cardlist.ItemIndex =2 then
        ss:='33';
     end;
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('insert into room_dwshowcolor values(:pdw,:ptext)');
   q1.ParamByName ('pdw').asstring:=trim(workunit.text);
   q1.ParamByName ('ptext').asstring:=copy(trim(ttjc.text),1,4);
   q1.Prepare;
   q1.ExecSQL ;
   q1.active:=false;
   s2.Prepare;
   s2.ExecProc ;
   groupno:=s2.Parambyname('@oBeforeid').asstring;
   if length(trim(id.text))>0 then
      begin
      aa[0]:='';
      getvalue(aa,'select code from zj where name='''+trim(zj.items[zj.itemindex])+'''');
      zjno:=aa[0];
      end
   else
      zjno:='';
   accno:=getnewcode('accno');
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('insert into groupnowin values(:pgroupid,:pgroupname,:pothername,:pcause,:pcountry,:pworkunit,:pmastername,');
   q1.sql.add(':psex,:page,:pzj,:pzjid,:pdjtime,:pdjfs,:pjzfs,:pdaynum,:pmoney,:proomnum,:ppeonum,:pisrmmoney,:pisphone,:pisallcus,:pisreginfo,:preg)');
   q1.ParamByName ('pgroupid').asstring:=trim(groupno);
   q1.ParamByName ('pgroupname').asstring:=trim(groupname.text);
   q1.ParamByName ('pothername').asstring:=trim(ttjc.text);
   q1.ParamByName ('pcause').asstring:=sy.Text ;
   q1.ParamByName ('pcountry').asstring:=country.text;
   q1.ParamByName ('pworkunit').asstring:=workunit.text;
   q1.ParamByName ('pmastername').asstring:=master.text;
   if man.Checked =true then
      q1.ParamByName ('psex').asstring:='1'
   else
      q1.ParamByName ('psex').asstring:='0';
   q1.ParamByName ('page').asinteger:=30;
   q1.parambyname ('pzj').asstring:=aa[0];
   q1.ParamByName ('pzjid').asstring:=id.text;
   q1.ParamByName ('pdjtime').asstring:=trim(djtime.text);
   q1.ParamByName ('pdjfs').asstring:=ss;
   q1.ParamByName ('pjzfs').asstring:=ss;
   q1.parambyname ('pdaynum').asinteger:=daynum.value;
   q1.ParamByName ('pmoney').asinteger:=yj.value;
   q1.ParamByName ('proomnum').asinteger:=rmnum.Value;
   q1.ParamByName ('ppeonum').asinteger:=pnum.Value ;
   q1.ParamByName ('pisrmmoney').asboolean:=rmf.Checked ;
   q1.ParamByName ('pisphone').asboolean:=phonef.Checked ;
   q1.ParamByName ('pisallcus').asboolean:=xf.Checked ;
   q1.ParamByName ('pisreginfo').asboolean:=isreg.Checked ;
   q1.ParamByName ('preg').asstring:=curper.code;
   q1.Prepare;
   q1.ExecSQL ;
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('insert into grouproom select beforeid,roomtype,roomnum,0 from beforeinmx where beforeid=:pid');
   q1.ParamByName ('pid').asstring:=trim(groupno);
   q1.Prepare;
   q1.ExecSQL ;
   i:=1;
   while i<rmgrid.RowCount do
     begin
     if length(trim(rmgrid.cells[0,i]))>0 then
        begin
        ls:=getnewcode('welid');
        q1.Active :=false;
        q1.sql.clear;
        q1.sql.add('insert into  grouprmmx values(:pgroupid,:proomno,:pprice)');
        q1.sql.add('insert into  nowin values(:pRoomno,:pRoomNo,'''+accno+''',:pWelid,:pnum,0,1,''2'',0,0,1,0,0,0,'''',:pbegtime,0,0,0,:pbegtime,:pendtime,:pRegId,'''','''',0,''01'',:pczy,100)');
        q1.sql.add('insert into  GuestMx values(:pRoomNo,:pWelid,:pName,''1'',null,null,null,'''+trim(WorkUnit.Text)+''','''+accno+''',:pgroupid)');
        q1.ParamByName ('pgroupid').asstring:=trim(groupno);
        q1.ParamByName ('proomno').asstring:=trim(rmgrid.cells[0,i]);
        q1.ParamByName ('pname').asstring:=trim(ttjc.Text)+'  '+trim(rmgrid.cells[0,i]);
        q1.ParamByName ('pnum').asinteger:=1;
        q1.ParamByName ('pprice').asinteger:=strtoint(trim(rmgrid.Cells [1,i]));
        q1.ParamByName ('pWelid').asstring:=ls;
        q1.ParamByName ('pbegtime').asdatetime:=strtodatetime(djtime.Text);
        q1.ParamByName ('pendtime').asdatetime:=strtodatetime(djtime.Text)+daynum.Value;
        q1.ParamByName ('pregid').asstring:=curper.code;
        q1.ParamByName ('pczy').asstring:=curper.name;
        q1.Prepare;
        q1.ExecSQL ;
        q1.Active :=false;
        end;
//        wic(1,i,ls,accno);
     i:=i+1;
     end;
   i:=1;
   while I<rmgrid.rowcount do
   begin
     if length(trim(rmgrid.cells[0,i]))>0 then
        begin
        q1.Active :=false;
        q1.sql.clear;
        q1.sql.add('update room set status=:ps where roomno=:prmno');
        q1.parambyname('ps').asstring:='1';
        q1.ParamByName ('prmno').asstring:=trim(rmgrid.cells[0,i]);
        q1.Prepare;
        q1.ExecSQL ;
        q1.Active :=false;
        end;
     i:=i+1;
   end;
   if rmf.Checked then
   begin
        q1.Active :=false;
        q1.sql.clear;
        q1.sql.add('insert into groupzfcus values(:pgroupid,:pcustype,:pcusname)');
        q1.ParamByName ('pgroupid').asstring:=trim(groupno);
        q1.ParamByName ('pcustype').asstring:='-1';
        q1.ParamByName ('pcusname').asstring:='房间费';
        q1.ExecSQL ;
   end;
   if phonef.Checked then
   begin
        q1.Active :=false;
        q1.sql.clear;
        q1.sql.add('insert into groupzfcus values(:pgroupid,:pcustype,:pcusname)');
        q1.ParamByName ('pgroupid').asstring:=trim(groupno);
        q1.ParamByName ('pcustype').asstring:='-2';
        q1.ParamByName ('pcusname').asstring:='电话费';
        q1.ExecSQL ;
   end;
   i:=1;
   while i<cusgrid.RowCount do
   begin
     if trim(cusgrid.cells[1,i])='团体付' then
        begin
        q1.Active :=false;
        q1.sql.clear;
        q1.sql.add('insert into groupzfcus values(:pgroupid,:pcustype,:pcusname)');
        q1.ParamByName ('pgroupid').asstring:=trim(groupno);
        q1.ParamByName ('pcustype').asstring:=custp[i];
        q1.ParamByName ('pcusname').asstring:=trim(cusgrid.Cells [0,i]);
        q1.Prepare;
        q1.ExecSQL ;
        q1.Active :=false;
        end;
     i:=i+1;
   end;
  showmessage('团体登记成功');
  cleargrid(groupdjform.rmgrid,0);
  formini;
  datatoctl(trim(djtime.text));
end;

procedure Tgroupdjform.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  q1.Free;
  s1.free;
  s2.free;
  s3.free;
   action:=cafree;
end;

procedure addroomno(rmno:string);
var
  i:integer;
begin
with groupdjform do
  begin
  i:=1;
  while  i<rmgrid.RowCount do
     begin
     if length(trim(rmgrid.cells[0,i]))=0 then
        begin
        rmgrid.Cells [0,i]:=rmno;
        rmgrid.Cells [1,i]:=inttostr(roommoney(rmno,1,0));
        exit;
        end;
     i:=i+1;
     end
  end
end;

procedure autogiveroomno;
var
  xysl,i,sl,y:integer;
begin
with groupdjform do
  begin
  i:=1;
  while i<rmtypegrid.rowcount do
     begin
     if length(trim(rmtypegrid.cells[3,i]))>0 then
        if strtoint(trim(rmtypegrid.cells[3,i]))>0 then
           begin
           q1.Active :=false;
           q1.sql.clear;
           q1.sql.add('select roomno from room where (roomtype=:prmtp) and (status=:ps)');
           q1.ParamByName ('prmtp').asstring:=rmtp[i];
           q1.ParamByName ('ps').asstring:='0';
           q1.Prepare;
           q1.open;
           xysl:=q1.RecordCount ;
           y:=0;
           sl:=strtoint(trim(rmtypegrid.cells[3,i]));
           if xysl<sl then
              begin
              showmessage(trim(rmtypegrid.cells[0,i])+'只有'+trim(inttostr(xysl))+'间');
              rmtypegrid.cells[3,i]:=trim(inttostr(xysl));
              exit;
              end;
           while y<sl do
              begin
              addroomno(q1.fieldbyname('roomno').asstring);
              y:=y+1;
              q1.Next;
              end;
           q1.Active :=false;
           end;
     i:=i+1;
     end;
  end;
end;

procedure Tgroupdjform.BitBtn1Click(Sender: TObject);
begin
  if rmnum.Value =0 then
     cleargrid(rmgrid,0)
  else
     begin
     cleargrid(rmgrid,0);
     autogiveroomno;
     end;
end;

procedure Tgroupdjform.rmtypegridExit(Sender: TObject);
begin
  if rmnum.Value=0 then
     rmgrid.enabled:=false
  else
     begin
     rmgrid.enabled:=true;
     rmgrid.RowCount :=rmnum.Value+1;
     end;
end;

procedure Tgroupdjform.groupnameExit(Sender: TObject);
var
  aa:array [0..1] of string;
begin
  if length(trim(groupname.text))>0 then
     begin
     aa[0]:='';
     getvalue(aa,'select groupname from groupnowin where groupname='''+trim(groupname.text)+'''');
     if length(trim(aa[0]))>0 then
        begin
        showmessage('团体名称已存在,请换名后重新输入');
        groupname.SetFocus ;
        exit;
        end;
     end
end;

procedure Tgroupdjform.djtimeExit(Sender: TObject);
var
  lsdate:tdatetime;
begin
  try
     lsdate:=strtodatetime(trim(djtime.text))
  except
     showmessage('时间错误');
     exit;
  end;
end;

procedure Tgroupdjform.idExit(Sender: TObject);
begin
  { if (trim(zj.Items[zj.itemindex])='身份证') and (length(trim(id.text))>0) then
      begin
      if length(trim(id.text))=15 then
         begin
         lsnl:=strtoint(copy(datetostr(date()),1,4))-strtoint('19'+copy(trim(id.text),7,2));
         lsxb:=strtoint(copy(trim(id.text),length(trim(id.text)),1)) mod 2;
         if lsxb=1 then
            man.Checked :=true
         else
            woman.Checked :=true;
         nl.Value :=lsnl;
         end
      else
         begin
         showmessage('身份证号码错误');
         id.SetFocus ;
         exit;
         end;
      end;}
end;

procedure Tgroupdjform.xjClick(Sender: TObject);
begin
  if xj.Checked =true then
     begin
     cardlist.Enabled :=false;
     yj.Value :=1000;
     yj.Enabled :=true;
     end;
end;

procedure Tgroupdjform.zpClick(Sender: TObject);
begin
  if zp.Checked =true then
     begin
     cardlist.Enabled :=false;
     yj.Value :=0;
     yj.Enabled :=false;
     end;
end;

procedure Tgroupdjform.gzClick(Sender: TObject);
begin
  if gz.Checked =true then
     begin
     cardlist.Enabled :=false;
     yj.Value :=0;
     yj.Enabled :=false;
     end;
end;

procedure Tgroupdjform.mfClick(Sender: TObject);
begin
  if mf.Checked =true then
     begin
     cardlist.Enabled :=false;
     yj.Value :=0;
     yj.Enabled :=false;
     end;
end;

procedure Tgroupdjform.cardClick(Sender: TObject);
begin
  if card.Checked =true then
     begin
     cardlist.Enabled :=true;
     yj.Value :=0;
     yj.Enabled :=false;
     end;
end;

end.

⌨️ 快捷键说明

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