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

📄 groupydzdj.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
                 end;
           j:=j+1;
           end;
        end;
     i:=i+1;
     end;
  i:=1;
  while i<rmgrid.rowcount do
     begin
     if length(trim(rmgrid.Cells [0,i]))=0 then
        rmgrid.Cells [1,i]:=''
     else
        if  length(trim(rmgrid.Cells [1,i]))=0 then
            rmgrid.Cells [1,i]:=inttostr(roommoney(trim(rmgrid.Cells [0,i]),1,0));
     i:=i+1;
     end;
end;

Function roomnum:integer;
var
  i,lsnum:integer;
begin
with ttydtodjform do
   begin
   i:=1;
   lsnum:=0;
   while i< rmgrid.RowCount do
      begin
      if length(trim(rmgrid.cells[0,i]))>0 then
         begin
         lsnum:=lsnum+1;
         end;
      i:=i+1;
      end;
   roomnum:=lsnum;
   end;
end;

procedure TTTydtodjform.Button1Click(Sender: TObject);
var
   aa:array [0..1] of string;
   i:integer;
   djfsflag,accno,ls:string;
begin
   aa[0]:='';
   if length(trim(groupname.Items[groupname.itemindex]))=0 then
      begin
      showmessage('团体名称不能为空');
      groupname.SetFocus ;
      exit;
      end;
   if length(trim(workunit.text))=0 then
      begin
      showmessage('单位不能为空');
      workunit.SetFocus ;
      exit;
      end;
   if length(trim(master.text))=0 then
      begin
      showmessage('领队不能为空');
      master.setfocus;
      exit;
      end;
   if length(trim(ttjc.text))=0 then
      begin
      showmessage('团体简称不能为空');
      ttjc.setFocus ;
      exit;
      end;
   if roomnum <>rmnum.Value then
      begin
      showmessage('预订数量与房间数量不一致 ');
      rmgrid.SetFocus ;
      exit;
      end;
   //cal djfs //
   if xj.Checked =true then
      djfsflag:='01';
   if zp.Checked =true then
      djfsflag:='02';
   if gz.Checked =true then
      djfsflag:='04';
   if mf.Checked =true then
      djfsflag:='05';
   if card.Checked =true then
      begin
      if cardlist.ItemIndex =0 then
         djfsflag:='13';
      if cardlist.ItemIndex =1 then
         djfsflag:='23';
      if cardlist.ItemIndex =2 then
         djfsflag:='33';
      end;
   //insert into data//
   getvalue(aa,'select code from zj where name='''+trim(zj.items[zj.itemindex])+'''');
   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.Items[groupname.itemindex]);
   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:=djfsflag;
   q1.ParamByName ('pjzfs').asstring:=djfsflag;
   q1.parambyname ('pdaynum').asinteger:=daynum.value;
   q1.ParamByName ('pmoney').asinteger:=yj.value;
   q1.ParamByName ('proomnum').asinteger:=roomnum;
   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,0,0,null,null)');
        q1.sql.add('insert into  GuestMx values(:pRoomNo,:pWelid,:pName,'''',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;
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('delete beforein where beforeid=:pid');
   q1.sql.add('delete ydroommx where beforeid=:pid');
   q1.sql.add('delete beforeinmx where beforeid=:pid');
   q1.ParamByName ('pid').asstring:=trim(groupno);
   q1.Prepare;
   q1.ExecSQL ;
   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;
  showmessage('团体登记成功');
  cleargrid(ydgrid,1);
  cleargrid(rmgrid,0);
  formini;
  comadd(ttydtodjform.groupname ,1,'select groupname from beforein where isgroup=1');
  datatoctrl;
end;

procedure TTTydtodjform.Button2Click(Sender: TObject);
begin
  TTydtodjform.close;
end;

procedure TTTydtodjform.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  q1.free;
   action:=cafree;
end;

procedure addroomno(rmno:string);
var
  i:integer;
begin
with TTydtodjform 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 TTydtodjform do
  begin
  i:=1;
  while i<ydgrid.rowcount do
     begin
     if length(trim(ydgrid.cells[2,i]))>0 then
        if strtoint(trim(ydgrid.cells[2,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(ydgrid.cells[2,i]));
           if xysl<sl then
              begin
              showmessage(trim(ydgrid.cells[0,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 TTTydtodjform.BitBtn1Click(Sender: TObject);
begin
  if rmnum.Value =0 then
     cleargrid(rmgrid,0)
  else
     begin
     cleargrid(rmgrid,0);
     autogiveroomno;
     end;
end;

procedure TTTydtodjform.idExit(Sender: TObject);
var
   lsxb:integer;
begin
   if (trim(zj.items[zj.ItemIndex])='身份证') and (length(trim(id.text))>0) then
      begin
      if length(trim(id.text))=15 then
         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
      else
         begin
         showmessage('身份证号码错误');
         id.SetFocus ;
         exit;
         end;
      end;
end;

procedure TTTydtodjform.ydgridSetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
var
  i,rmsl,psl:integer;
begin
  i:=1;
  rmsl:=0;
  psl:=0;
   while i<ydgrid.RowCount do
     begin
     if length(trim(ydgrid.cells[2,i]))>0 then
        begin
        rmsl:=rmsl+strtoint(trim(ydgrid.cells[2,i]));
        psl:=psl+strtoint(trim(ydgrid.cells[2,i]))*strtoint(trim(ydgrid.cells[1,i]));
        end;
     i:=i+1;
     end;
   rmnum.Value :=rmsl;
   pnum.Value :=psl;
end;

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

procedure TTTydtodjform.ydgridKeyPress(Sender: TObject; var Key: Char);
begin
  if ((key<'0') or (key>'9')) then
     if (key<>char(8))  then
        key:=char(0);
end;

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

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

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

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

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

end.

⌨️ 快捷键说明

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