📄 sanydtodj.pas
字号:
if fd=0 then exit;
ls:=HotelNo+copy('0000000'+trim(rmgrid.Cells[0,k]),length(trim(rmgrid.Cells[0,k])),8)+bx+'00'+formatdatetime('hh',strtodatetime(rq))+newDate(strtodatetime(rq))+'0012'+newdate(strtodatetime(cometime.text)+yzday.value)+'2050000000000';
bb:=write_ic(fd,$30,1,ls);
if bb=0 then
begin
bb:=CT_close(fd);
exit;
end;
ls:=copy(trim(rmgrid.Cells[0,k])+ss,1,7)+copy(trim(name.text)+ss,1,21)
+copy(formatdatetime('yyyymmddhhmmss',strtodatetime(cometime.text))+ss,1,14)
+copy(formatdatetime('yyyymmddhhmmss',strtodatetime(cometime.text)+yzday.value)+ss,1,14)+copy(trim(id.Text)+ss,1,19)
+copy(welid+ss,1,6)+copy(accno+ss,1,6)+'000000000000';
bb:=write_ic(fd,$70,0,ls);
bb:=CT_close(fd);
q1.Active :=false;
q1.sql.clear;
q1.sql.add('insert into iccmx values(:pRoomNo,:pName,:pWelid,:paccno,:pcodeno,:ptime)');
q1.ParamByName ('proomno').asstring:=trim(rmgrid.Cells[0,k]);
q1.ParamByName ('paccno').asstring:=accno;
q1.ParamByName ('pwelid').asstring:=welid;
q1.ParamByName ('pname').asstring:=trim(name.text);
// q1.ParamByName ('page').asinteger:=age.Value;
q1.ParamByName ('pcodeno').asstring:=xdh('iccmx','','codeno',5);
q1.ParamByName ('ptime').asstring:=rq;
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
end; }
end;
procedure Tsanydtodjform.Button1Click(Sender: TObject);
var i:integer;
begin
if djdh.Text='' then
begin
showmessage('登记单号没有输入!');
exit;
end;
for i:=1 to rmgrid.RowCount do
if trim(rmgrid.cells[0,i])<>'' then
begin
if trim(rmgrid.cells[2,i])='' then
begin
showmessage('房间:'+trim(rmgrid.cells[0,i])+'手牌号没有输入');
exit;
end;
end;
for i:=1 to rmgrid.RowCount-1 do
if trim(rmgrid.Cells[0,i])<>'' then
begin
q1.Active :=false;
q1.sql.clear;
q1.sql.add('select roomno,price from room where (roomno=:prmno) and ((status=:ps)or(status=:tt))');
q1.ParamByName ('prmno').asstring:=trim(rmgrid.Cells[0,i]);
q1.ParamByName ('ps').asstring:='0';
q1.ParamByName ('tt').asstring:='5';
q1.Prepare;
q1.open;
if q1.IsEmpty then
begin
showmessage('房间不对');
q1.Active :=false;
q1.sql.clear;
// ydgrid.SetFocus ;
exit;
end;
// rmgrid.Cells[1,i]:=q1.fieldbyname('price').asstring;
end;
if length(trim(beforeno))>0 then
begin
if nyj.Value<yj.Value then
begin
if Application.MessageBox(pchar('需补交'+inttostr(nyj.Value-yj.Value)+'元押金!'), '提示信息', 65)=IDCANCEL then
exit;
end;
accno:=getnewcode('accno');
i:=1;
while i<rmgrid.RowCount do
begin
if length(trim(rmgrid.cells[0,i]))>0 then
begin
welid:=getnewcode('welid');
q1.Active :=false;
q1.sql.clear;
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,:pdjdh,'''',0,''01'',:pczy,100,0,0,:pxcode,null)');
q1.sql.add('insert into GuestMx values(:pRoomNo,:pWelid,:pName,'''',null,null,null,'''+trim(WorkUnit.Text)+''','''+accno+''','''')');
q1.ParamByName ('proomno').asstring:=trim(rmgrid.cells[0,i]);
q1.ParamByName ('pname').asstring:=trim(name.Text);
q1.ParamByName ('pnum').asinteger:=2;
// q1.ParamByName ('pprice').asinteger:=strtoint(trim(rmgrid.Cells [1,i]));
q1.ParamByName ('pWelid').asstring:=welid;
q1.ParamByName ('pbegtime').asdatetime:=strtodatetime(cometime.Text);
q1.ParamByName ('pendtime').asdatetime:=strtodatetime(cometime.Text)+yzday.Value;
q1.ParamByName ('pregid').asstring:=curper.code;
q1.ParamByName ('pdjdh').asstring:=trim(djdh.Text);
q1.ParamByName ('pxcode').asstring:=trim(rmgrid.cells[2,i]);
q1.ParamByName ('pczy').asstring:=curper.name;
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
end;
wic(i);
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;
q1.sql.clear;
q1.sql.add('insert into deposit values(:proomno,''2'',:pwel,:pacc,:pdeposit,:pdate)');
// q1.sql.add('insert into positsj values('''+yjdyform.bh.Caption+''',:proomno,:pacc,:pname,:pdeposit,:pdate,:pregid)');
q1.sql.add('insert into account values(:pacc,:pdeposit,0)');
q1.ParamByName('pwel').asstring:=welid;
q1.ParamByName('pacc').asstring:=accno;
q1.ParamByName('pdeposit').asfloat:=nyj.Value;
q1.ParamByName('pdate').asdatetime:=now;
q1.ParamByName ('proomno').asstring:=rmgrid.Cells[0,1];
q1.Prepare;
q1.ExecSQL;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('delete beforein where beforeid=:pid');
q1.ParamByName ('pid').asstring:=trim(beforeno);
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('delete beforeinmx where beforeid=:pid');
q1.ParamByName ('pid').asstring:=trim(beforeno);
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
q1.sql.clear;
showmessage('散客预订转登记成功');
cleargrid(sanydtodjform.ydgrid,2);
formini;
comadd(sanydtodjform.name,1,'select name from beforein ');
datetoctrl;
end
else
name.SetFocus ;
end;
procedure Tsanydtodjform.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
q1.free;
action:=cafree;
end;
procedure Tsanydtodjform.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
selectnext(activecontrol,true,true);
if key=27 then
close;
end;
procedure addroomno(rmno:string);
var
i:integer;
begin
with sanydtodjform 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));
if phone.Checked then
nyj.Value:=(nyj.Value+strtoint(rmgrid.Cells [1,i])+100)*yzday.Value;
exit;
end;
i:=i+1;
end
end
end;
procedure Tsanydtodjform.BitBtn1Click(Sender: TObject);
var
xysl,i,sl,y:integer;
begin
if rmnum.Value =0 then
cleargrid(rmgrid,0)
else
begin
if phone.Checked then
nyj.Value:=0
else
nyj.Value:=yj.Value;
cleargrid(rmgrid,0);
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 Tsanydtodjform.nameChange(Sender: TObject);
begin
cleargrid(ydgrid,2);
cleargrid(rmgrid,0);
datetoctrl;
end;
procedure Tsanydtodjform.djdhKeyPress(Sender: TObject; var Key: Char);
begin
if ((key>'9') or (key<'0')) and (key<>#8) then
key:=#0;
end;
procedure Tsanydtodjform.rmgridKeyPress(Sender: TObject; var Key: Char);
begin
// if (rmgrid.Col=0) or (rmgrid.Col=1) then key:=#0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -