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