📄 c_hoteldata.pas
字号:
ParamByName('BD').AsDate := ADdrq;
try
Open;
if Fields[0].IsNull then Result := 0
else
Result := Fields[0].AsCurrency;
Close;
except
On E:Exception do
begin
ShowWarning('打开DHFDATA.DBF出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
//新程序
{ASj := FormatDateTime('yyyymmdd',ADdrq)+FormatDateTime('hhnnss',ADdsj);
with qryDhf do
begin
if Active then Active := False;
//DatabaseName := JF_DIR; //获取电话费数据库的路径
SQL.Clear;
s := 'select sum(TOTAL) from DHF where (ROOM="'
+AKfbh+'")and((SDATE+STIME)>"'+ASj+'")';
SQL.Add(s);
try
Open;
if Fields[0].IsNull then Result := 0
else
Result := Fields[0].AsCurrency;
Close;
except
On E:Exception do
begin
ShowWarning('打开DHF.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;}
end;
//夜审时获取电话费 23:00以前
function THotelData.GetDhf1(const AKfbh: string;Addrq,Addsj: TDateTime): Currency;
var
s: string;
ARoom: string;
ASj: string;
begin
//连接旧的程序
if Length(Akfbh)=3 then
//if Copy(AKfbh,1,2) = '10' then
//ARoom := '1' + Copy(AKfbh,3,3)
ARoom := '1' + AKfbh
else
//ARoom := Copy(AKfbh,1,1) + Copy(AKfbh,3,3);
ARoom := AKfbh;
ASj := FormatDateTime('hh:nn',ADdsj);
with qryDhf do
begin
if Active then Active := False;
DatabaseName := JF_DIR;
SQL.Clear;
s := 'select sum(TOTAl) from DHFDATA.DBF where (ROOM = "'
+ARoom+'")and((SDate>:BD)or((SDate=:BD)and(STime>="'+ASj+'")and(STime<="23:00")))';
SQL.Add(s);
ParamByName('BD').DataType := ftDate;
ParamByName('BD').AsDate := ADdrq;
try
Open;
if Fields[0].IsNull then Result := 0
else
Result := Fields[0].AsCurrency;
Close;
except
On E:Exception do
begin
ShowWarning('打开DHFDATA.DBF出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
//新程序
{ASj := FormatDateTime('yyyymmdd',ADdrq)+FormatDateTime('hhnnss',ADdsj);
with qryDhf do
begin
if Active then Active := False;
//DatabaseName := JF_DIR; //获取电话费数据库的路径
SQL.Clear;
s := 'select sum(TOTAL) from DHF where (ROOM="'
+AKfbh+'")and((SDATE+STIME)>"'+ASj+'")';
SQL.Add(s);
try
Open;
if Fields[0].IsNull then Result := 0
else
Result := Fields[0].AsCurrency;
Close;
except
On E:Exception do
begin
ShowWarning('打开DHF.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;}
end;
//添加员工开房情况
procedure THotelData.YgkfAppend(const ACzyxm,AKfbh,AKrxm: string;ASjfj: Currency;ADdrq,ADdsj: TDateTime);
var
s : string;
begin
s := 'insert into YGKF (D_CZYXM,D_KFRQ,D_KFSJ,D_KFBH,D_KRXM,D_SJFJ) values '+
'("'+ACzyxm+'","'+FormatDateTime('yyyy-mm-dd',ADdrq)+'","'+FormatDateTime('yyyy-mm-dd hh:nn:ss',ADdsj)+
'","'+AKfbh+'","'+AKrxm+'",'+CurrToStr(ASjfj)+
')';
ExecSql(s);
{with tblUserData do
begin
if Active then Active := False;
TableName := 'YGKF';
try
Open;
Append;
FieldByName('D_CZYXM').AsString := ACzyxm;
FieldByName('D_KFRQ').AsDateTime := Date;
FieldByName('D_KFSJ').AsDateTime := Time;
FieldByName('D_KFBH').AsString := AKfbh;
FieldByName('D_KRXM').AsString := AKrxm;
FieldByName('D_SJFJ').AsCurrency := ASjfj;
Post;
Close;
except
On E:Exception do
begin
ShowWarning('打开YGKF.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;}
end;
//判断客人姓名和身份证号码是否在黑名单中,如果是则返回True
function THotelData.IsHmd(const AKrxm,AZjhm: string): string;
begin
Result := '';
with tblSysData do
begin
if Active then Active := False;
TableName := 'HMD';
try
Open;
if Locate('D_XM',AKrxm,[]) then
Result := '姓名:'+FieldByName('D_XM').AsString+#13#10
+'身份证号码:'+FieldByName('D_ZJHM').AsString+#13#10
+'年龄:'+FieldByName('D_NL').AsString+#13#10
+'家庭地址:'+FieldByName('D_JTDZ').AsString+#13#10
+'备注:'+FieldByName('D_BZ').AsString;
if Locate('D_ZJHM',AZjhm,[]) then
Result := '姓名:'+FieldByName('D_XM').AsString+#13#10
+'身份证号码:'+FieldByName('D_ZJHM').AsString+#13#10
+'年龄:'+FieldByName('D_NL').AsString+#13#10
+'家庭地址:'+FieldByName('D_JTDZ').AsString+#13#10
+'备注:'+FieldByName('D_BZ').AsString;
Close;
except
On E:Exception do
begin
ShowWarning('打开HMD.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
end;
//判断预定客房是否冲突,如果是则返回True
function THotelData.IsValidKfyd(const AKfbh,AYdbh: string;ADdrq,ALdrq: TDateTime): Boolean;
var
s: string;
begin
Result := True;
with qryUserData do
begin
s := 'select * from YDKF where (D_KFBH=:KFBH)and(D_YDBH<>:YDBH)';
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
ParamByName('KFBH').DataType := ftString;
ParamByName('YDBH').DataType := ftString;
ParamByName('KFBH').Value := AKfbh;
ParamByName('YDBH').Value := AYdbh;
try
Open;
First;
while not Eof do
begin
if (FieldByName('D_DDRQ').AsDateTime<=ALdrq)and(FieldByName('D_LDRQ').AsDateTime>=ALdrq) then
Result := False;
if (FieldByName('D_DDRQ').AsDateTime<=ADdrq)and(FieldByName('D_LDRQ').AsDateTime>=ADdrq) then
Result := False;
if (FieldByName('D_DDRQ').AsDateTime>=ADdrq)and(FieldByName('D_LDRQ').AsDateTime<=ALdrq) then
Result := False;
Next;
end;
Close;
except
On E:Exception do
begin
ShowWarning('打开YDKF.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
end;
//判断预定餐饮是否冲突,如果是则返回True
function THotelData.IsValidCyyd(const ACtbh,ASjdm: string;ADate: TDateTime): Boolean;
var
s: string;
begin
Result := True;
with qryUserData do
begin
s := 'select * from YDCY '
+'where (D_SYRQ=:SYRQ)and(D_CTBH=:CTBH)and(D_SJDM=:SJDM)and(D_RZBZ="F")';
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
ParamByName('SYRQ').DataType := ftDate;
ParamByName('CTBH').DataType := ftString;
ParamByName('SJDM').DataType := ftString;
ParamByName('SYRQ').Value := ADate;
ParamByName('CTBH').Value := ACtbh;
ParamByName('SJDM').Value := ASjdm;
try
Open;
if not IsEmpty then
Result := False;
Close;
except
On E:Exception do
begin
ShowWarning('打开YDCY.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
end;
//判断预定会场是否冲突,如果冲突则返回True
function THotelData.IsValidHcyd(const AHcbh,ASjdm: string;ADate: TDateTime): Boolean;
var
s: string;
begin
Result := True;
with qryUserData do
begin
if ASjdm='全天' then
begin
s := 'select * from YDHC where (D_SYRQ=:SYRQ)and(D_HCBH=:HCBH)and(D_JSBZ<>"'+JS_YES+'")';
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
ParamByName('SYRQ').DataType := ftDate;
ParamByName('HCBH').DataType := ftString;
ParamByName('SYRQ').Value := ADate;
ParamByName('HCBH').Value := AHcbh;
try
Open;
if not IsEmpty then
Result := False;
except
On E:Exception do
begin
ShowWarning('打开YDHC.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end
else
begin
s := 'select * from YDHC where (D_SYRQ=:SYRQ)and(D_HCBH=:HCBH)and((D_SJDM="全天")or(D_SJDM=:SJDM))and(D_JSBZ<>"'+JS_YES+'")';
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
ParamByName('SYRQ').DataType := ftDate;
ParamByName('HCBH').DataType := ftString;
ParamByName('SJDM').DataType := ftString;
ParamByName('SYRQ').Value := ADate;
ParamByName('HCBH').Value := AHcbh;
ParamByName('SJDM').Value := ASjdm;
try
Open;
if not IsEmpty then
Result := False;
except
On E:Exception do
begin
ShowWarning('打开YDHC.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
Close;
end;
end;
//获取客人来店次数
function THotelData.Ldcs(const AKrxm: string): Integer;
begin
Result := 0;
try
qryUserData.SQL.Clear;
qryUserData.SQL.Add('select count(*) from KRXXDA where D_KRXM="'
+AKrxm+'"');
try
qryUserData.Open;
Result := qryUserData.Fields[0].AsInteger;
except
On E:Exception do
begin
ShowWarning('打开KRXXDA.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
finally
qryUserData.Close;
end;
end;
//团队结帐时,是否还有没有退的房间 如果有则返回True
function THotelData.IsTdtf(const AKrbh: string): Boolean;
begin
Result := False;
with tblSysData do
begin
if Active then Active := False;
TableName := 'KFZT';
try
Open;
if Locate('D_KRBH',AKrbh,[]) then
Result := True;
Close;
except
On E:Exception do
begin
ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
end;
//通过押金编号获取押金信息
function THotelData.GetYjxx(const AYjbh: string): TYjxx;
begin
try
tblKryj.Filter := 'D_YJBH='''+AYjbh+'''';//过滤出所有等于YJBH的记录
tblKryj.Filtered := True;
try
tblKryj.Open;
except
On E:Exception do
begin
ShowWarning('打开KRYJ.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
tblKryj.First;
Result.AYjbh := AYjbh;
Result.AFkfs := tblKryj.FieldByName('D_FKFS').AsString;
Result.AXykbh:= tblKryj.FieldByName('D_XYKBH').AsString;
Result.AKhbh := tblKryj.FieldByName('D_KHBH').AsString;
if (Result.AFkfs = FKFS_RMB) then //如果押金方式为人民币,则累计押金金额
begin
while not tblKryj.Eof do
begin
Result.AYfje := Result.AYfje + tblKryj.FieldByName('D_YFJE').AsCurrency;
tblKryj.Next;
end;
end
else
Result.AYfje := 0; //否则押金金额为零
tblKryj.Last; //获取当前押金记录的行号
Result.AYjhh := tblKryj.FieldByName('D_HH').AsInteger + 1;
finally
tblKryj.Filter := '';
tblKryj.Filtered := False;
tblKryj.Close;
end;
end;
//根据客人编号获取团队信息
function THotelData.GetTdxx(const AKrbh: string): TTdxx;
begin
with qryUserData do
begin
Close;
SQL.Clear;
SQL.Add('select * from KRZD where (D_KRBH="'+AKrbh+'")and(D_HH=0)');
Prepare;
Open;
Result.AKrbh := AKrbh;
Result.AZdbh := FieldByName('D_ZDBH').AsString;
Result.AYjbh := FieldByName('D_YJBH').AsString;
Result.AZdlb := ZDLB_TD;
Close;
Result.AZdhh := GetMaxZdhh(Result.AZdbh);
Result.AKrxm := FindMc('KRXX','D_KRBH','D_KRXM',Result.AKrbh);
end;
{ try
try
tblKrzd.Open;
tblKrxx.Open;
except
On E:Exception do
begin
ShowWarning('打开KRZD.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKrzd.Locate('D_KRBH',AKrbh,[]) then
begin
Result.AKrbh := AKrbh;
Result.AZdbh := tblKrzd.FieldByName('D_ZDBH').AsString;
Result.AYjbh := tblKrzd.FieldByName('D_YJBH').AsString;
if tblKrxx.FindKey([AKrbh]) then
Result.AKrxm := tblKrxx.FieldByName('D_KRXM').AsString;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -