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

📄 c_hoteldata.pas

📁 立方酒店管理系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:
    tblKrzd.Filter   := 'D_ZDBH='''+Result.AZdbh+'''';
    tblKrzd.Filtered := True;

    tblKrzd.Last;       //获取帐单的下一个行号
    Result.AZdhh := tblKrzd.FieldByName('D_HH').AsInteger + 1;
  finally
    tblKrzd.Filter   := '';
    tblKrzd.Filtered := False;
    tblKrzd.Close;
    tblKrxx.Close;
  end;}
end;

//通过客人编号获取帐单编号
function THotelData.GetZdbh(const AKrbh: string): string;
begin
  Result := '';
  with qryUserData do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from KRZD where (D_KRBH="'+AKrbh+'")and(D_HH=0)');
    Prepare;
    Open;
    Result := FieldByName('D_ZDBH').AsString;
    Close;
  end;
{  try

    try
      tblKfzt.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.Locate('D_KRBH',AKrbh,[]) then
      Result := tblKfzt.FieldByName('D_ZDBH').AsString;

  finally
    tblKfzt.Close;
  end;}
end;

//通过客人编号获取客房编号
function THotelData.GetKfbh(const AKrbh: string): string;
begin
  Result := '';
  try

    try
      tblKfzt.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.Locate('D_KRBH',AKrbh,[]) then
      Result := tblKfzt.FieldByName('D_KFBH').AsString;

  finally
    tblKfzt.Close;
  end;
end;

//设置客房状态
procedure THotelData.SetKfzt(const AKfbh,AKfzt: string);
begin
  ExecSql('update KFZT set D_KFZT="'+AKfzt+'" where D_KFBH="'+AKfbh+'"');
  {try

    try
      tblKfzt.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.FindKey([AKfbh]) then
    begin
      tblKfzt.Edit;
      tblKfzt.FieldByName('D_KFZT').AsString := AKfzt;
      tblKfzt.Post;
    end;

  finally
    tblKfzt.Close;
  end;}
end;

//清空数据库
procedure THotelData.EmptyData(const ASqlStr: string);
begin
  ExecSql(ASqlStr);
  {
  with qryUserData do
  begin
    if Active then Active := False;
    RequestLive := True;
    SQL.Clear;
    SQL.Add(ASqlStr);

    try
      Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    First;
    while not Eof do Delete;
    Close;
    RequestLive := False;
  end;}
end;

//备份数据库
procedure THotelData.BakData(const ASqlStr,ATableName: string);
begin
  with qryUserData do
  begin
    if Active then Active := False;
    SQL.Clear;
    SQL.Add(ASqlStr);

    try
      Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

  end;

  with tblUserData do
  begin
    if Active then Active := False;
    TableName := ATableName;
  end;

  BatchMove1.Mode:= batAppendUpdate;
  BatchMove1.Source:= qryUserData;
  BatchMove1.Destination:= tblUserData;
  BatchMove1.Execute;
end;

//备份数据
procedure THotelData.BakTable(S,D: TTable);
begin
  BatchMove1.Mode:= batAppendUpdate;
  BatchMove1.Source:= S;
  BatchMove1.Destination:= D;
  BatchMove1.Execute;
end;

//结帐时,修改客人信息的离店日期和时间
procedure THotelData.UpdateKrxxJz(const AKrbh: string;ALdrq,ALdsj: TDateTime);
begin
  try

    try
      tblKrxx.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KRXX.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKrxx.FindKey([AKrbh]) then
    begin
      tblKrxx.Edit;
      tblKrxx.FieldByName('D_LDRQ').AsDateTime := ALdrq;
      tblKrxx.FieldByName('D_LDSJ').AsDateTime := ALdsj;
      tblKrxx.Post;
    end;

  finally
    tblKrxx.Close;
  end;
end;

//清除客房状态
procedure THotelData.ClearKfzt(const AKfbh: string);
var
  s : string;
begin
  s := 'update KFZT set '+
       'D_ZDBH="",D_KRBH="",D_YJBH="",D_KFBZ="",D_KRXM="",'+
       'D_KFZT="'+KFZT_OK+'",'+
       'D_SJFJ=0,D_JJFJ=0,D_KRSL=0,D_BJS=0,D_QJS=0 '+
       'where D_KFBH="'+AKfbh+'"';
  ExecSql(s);
  {try

    try
      tblKfzt.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.FindKey([AKfbh]) then
    begin
      tblKfzt.Edit;
      tblKfzt.FieldByName('D_ZDBH').AsString   := '';
      tblKfzt.FieldByName('D_KRBH').AsString   := '';
      tblKfzt.FieldByName('D_YJBH').AsString   := '';
      tblKfzt.FieldByName('D_KFBZ').AsString   := '';
      tblKfzt.FieldByName('D_KFZT').AsString   := KFZT_OK;
      tblKfzt.FieldByName('D_SJFJ').AsCurrency := 0;
      tblKfzt.FieldByName('D_JJFJ').AsCurrency := 0;
      tblKfzt.FieldByName('D_KRSL').AsInteger  := 0;
      tblKfzt.FieldByName('D_BJS').AsInteger   := 0;
      tblKfzt.FieldByName('D_QJS').AsInteger   := 0;
      tblKfzt.FieldByName('D_KRXM').AsString   := '';
      tblKfzt.Post;
    end;

  finally
    tblKfzt.Close;
  end;}
end;

//初始化客房状态
procedure THotelData.InitKfzt(const AKfbh: string);
var
  s : string;
begin
  s := 'update KFZT set '+
       'D_ZDBH="",D_KRBH="",D_YJBH="",D_KFBZ="",'+
       'D_KFZT="'+KFZT_ZK+'",'+
       'D_SJFJ=0,D_KRSL=0,D_KRXM="" '+
       'where D_KFBH="'+AKfbh+'"';
  ExecSql(s); 

  {try

    try
      tblKfzt.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.FindKey([AKfbh]) then
    begin
      tblKfzt.Edit;
      tblKfzt.FieldByName('D_ZDBH').AsString   := '';
      tblKfzt.FieldByName('D_KRBH').AsString   := '';
      tblKfzt.FieldByName('D_YJBH').AsString   := '';
      tblKfzt.FieldByName('D_KFBZ').AsString   := '';
      tblKfzt.FieldByName('D_KFZT').AsString   := KFZT_ZK;
      tblKfzt.FieldByName('D_SJFJ').AsCurrency := 0;
      tblKfzt.FieldByName('D_KRSL').AsInteger  := 0;
      //tblKfzt.FieldByName('D_JJFJ').AsCurrency := 0;
      //tblKfzt.FieldByName('D_BJS').AsInteger := 0;
      //tblKfzt.FieldByName('D_QJS').AsInteger := 0;
      tblKfzt.FieldByName('D_KRXM').AsString   := '';
      tblKfzt.Post;
    end;
  finally
    tblKfzt.Close;
  end;}
end;

//初始化客房状态
procedure THotelData.InitKfztOK(const AKfbh: string);
var
  s : string;
begin
  s := 'update KFZT set '+
       'D_ZDBH="",D_KRBH="",D_YJBH="",D_KFBZ="",'+
       'D_KFZT="'+KFZT_OK+'",'+
       'D_SJFJ=0,D_KRSL=0,D_KRXM="" '+
       'where D_KFBH="'+AKfbh+'"';
  ExecSql(s);

  {try

    try
      tblKfzt.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.FindKey([AKfbh]) then
    begin
      tblKfzt.Edit;
      tblKfzt.FieldByName('D_ZDBH').AsString   := '';
      tblKfzt.FieldByName('D_KRBH').AsString   := '';
      tblKfzt.FieldByName('D_YJBH').AsString   := '';
      tblKfzt.FieldByName('D_KFBZ').AsString   := '';
      tblKfzt.FieldByName('D_KFZT').AsString   := KFZT_ZK;
      tblKfzt.FieldByName('D_SJFJ').AsCurrency := 0;
      tblKfzt.FieldByName('D_KRSL').AsInteger  := 0;
      //tblKfzt.FieldByName('D_JJFJ').AsCurrency := 0;
      //tblKfzt.FieldByName('D_BJS').AsInteger := 0;
      //tblKfzt.FieldByName('D_QJS').AsInteger := 0;
      tblKfzt.FieldByName('D_KRXM').AsString   := '';
      tblKfzt.Post;
    end;
  finally
    tblKfzt.Close;
  end;}
end;

//获取最大的帐单行号
function THotelData.GetMaxZdhh(const AZdbh: string): Integer;
begin
  with qryUserData do
  begin
    if Active then Active := False;
    SQL.Clear;
    SQL.Add('select max(D_HH) from KRZD where D_ZDBH="'+AZdbh+'"');

    try
      Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开KRZD.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if Fields[0].IsNull then Result := 1
    else Result := Fields[0].AsInteger + 1;
    Close;
  end;
end;

//添加额外费
procedure THotelData.UpdateEwfDbf(const AJzbh,AKrxm: string;AEwf: Currency;AJzrq,AJzsj: TDateTime);
begin
  if not tblEwf.Active then
    try
      tblEwf.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开EWF.DB出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

  if tblEwf.FindKey([AJzbh]) then
  begin
    tblEwf.Edit;
    tblEwf.FieldByName('D_EWF').AsCurrency :=
      tblEwf.FieldByName('D_EWF').AsCurrency + AEwf;
    tblEwf.Post;
  end
  else
  begin
    tblEwf.Insert;
    tblEwf.FieldByName('D_JZBH').AsString   := AJzbh;
    tblEwf.FieldByName('D_KRXM').AsString   := AKrxm;
    tblEwf.FieldByName('D_EWF').AsCurrency  := AEwf;
    tblEwf.FieldByName('D_JZRQ').AsDateTime := AJzrq;
    tblEwf.FieldByName('D_JZSJ').AsDateTime := AJzsj;
    tblEwf.Post;
  end;

  //tblEwf.ApplyUpdates;
  //tblEwf.CommitUpdates;
  tblEwf.Close;
end;

//通过客房编号获取客房信息
function THotelData.GetKfxx1(const AKfbh: string): TKFXX;
begin
  try

    try
      tblKfzt.Open;
      tblKrxx.Open;
      //tblKryj.Open;
      //tblKrzd.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.FindKey([AKfbh]) then
    begin
      Result.AKfbh := AKfbh;
      //Result.AZdbh := tblKfzt.FieldByName('D_ZDBH').AsString;
      Result.AKrbh := tblKfzt.FieldByName('D_KRBH').AsString;
      //Result.AYjbh := tblKfzt.FieldByName('D_YJBH').AsString;
      Result.AKfbz := tblKfzt.FieldByName('D_KFBZ').AsString;
      Result.ASjfj := tblKfzt.FieldByName('D_SJFJ').AsCurrency;

      if tblKrxx.FindKey([Result.AKrbh]) then
      begin
        Result.AKrxm := tblKrxx.FieldByName('D_KRXM').AsString;
        //Result.AKrlx := tblKrxx.FieldByName('D_KRLX').AsString;
        Result.ADdrq := tblKrxx.FieldByName('D_DDRQ').AsDateTime;
        Result.ADdsj := tblKrxx.FieldByName('D_DDSJ').AsDateTime;
      end;

      {if tblKryj.FindKey([Result.AYjbh,0]) then
      begin
        Result.AFkfs := tblKryj.FieldByName('D_FKFS').AsString;
        Result.AYfrq := tblKryj.FieldByName('D_YFRQ').AsDateTime;
        Result.AYfsj := tblKryj.FieldByName('D_YFSJ').AsDateTime;
      end;

      if tblKrzd.FindKey([Result.AZdbh,0]) then
      begin
        Result.AZdlb := tblKrzd.FieldByName('D_ZDLB').AsString;
        Result.AXfje := tblKrzd.FieldByName('D_XFJE').AsCurrency;
      end;

      Result.AZdhh := GetMaxZdhh(Result.AZdbh);}
    end;
  finally
    //tblKfzt.Close;
    //tblKrxx.Close;
    //tblKryj.Close;
    //tblKrzd.Close;
  end;
end;


//通过客房编号获取客房信息
function THotelData.GetKfxx(const AKfbh: string): TKFXX;
begin
  try

    try
      tblKfzt.Open;
      tblKrxx.Open;
      tblKryj.Open;
      tblKrzd.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

⌨️ 快捷键说明

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