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

📄 c_tdjd.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{立方酒店管理系统 v1.0
 Copyright by CubicSoft
 program by ls.
 Date:20020301-20020601
 20020627 加入注释
}
unit C_Tdjd;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, C_StdJd, DosMove, StdCtrls, Buttons, ExtCtrls, DB, DBTables, C_Define,
  DBCtrls, Mask, Grids, ValEdit, DBGrids;

type
  TKf = record
    AKfbh: string;
    ASjfj: Currency;
    AJjfj: Currency;
  end;

type
  TTdjdForm = class(TStdJdForm)
    tblKrzd: TTable;
    dsKrzd: TDataSource;
    tblKrxx: TTable;
    dsKrxx: TDataSource;
    tblKryj: TTable;
    dsKryj: TDataSource;
    Label24: TLabel;
    Label25: TLabel;
    Label4: TLabel;
    Label7: TLabel;
    lblYfje: TLabel;
    dbeKrxm: TDBEdit;
    dbcFkfs: TDBComboBox;
    dbeYfje: TDBEdit;
    Label5: TLabel;
    Label6: TLabel;
    dbeDdrq: TDBEdit;
    dbeDdsj: TDBEdit;
    Label17: TLabel;
    dbeJdr: TDBEdit;
    Label1: TLabel;
    dbeJddw: TDBEdit;
    Label2: TLabel;
    dbeDwdz: TDBEdit;
    Label3: TLabel;
    dbeLxdh: TDBEdit;
    Label11: TLabel;
    dbeBz: TDBEdit;
    Label12: TLabel;
    dbeQdr1: TDBEdit;
    Label13: TLabel;
    dbeQdr2: TDBEdit;
    Label14: TLabel;
    dbeQdr3: TDBEdit;
    Label15: TLabel;
    dbeQdr4: TDBEdit;
    Panel4: TPanel;
    Panel5: TPanel;
    lblBfh: TLabeledEdit;
    lblEfh: TLabeledEdit;
    lblFj: TLabeledEdit;
    btnInsert: TBitBtn;
    vleKf: TValueListEditor;
    dbcCzyxm: TDBComboBox;
    dbcJzyxm: TDBComboBox;
    dbcXykbh: TDBComboBox;
    dbcKhbh: TDBComboBox;
    lblMc: TLabel;
    lblInfo: TLabel;
    tblKrzdD_ZDBH: TStringField;
    tblKrzdD_HH: TIntegerField;
    tblKrzdD_ZDLB: TStringField;
    tblKrzdD_KRBH: TStringField;
    tblKrzdD_YJBH: TStringField;
    tblKrzdD_KFBH: TStringField;
    tblKrzdD_SJFJ: TFloatField;
    tblKrzdD_XMBH: TStringField;
    tblKrzdD_XFDJ: TFloatField;
    tblKrzdD_XFSL: TFloatField;
    tblKrzdD_XFJE: TFloatField;
    tblKrzdD_XFRQ: TDateTimeField;
    tblKrzdD_XFSJ: TDateTimeField;
    tblKrzdD_YHJE: TFloatField;
    tblKrzdD_JZRQ: TDateTimeField;
    tblKrzdD_JZSJ: TDateTimeField;
    tblKrzdD_JZBZ: TStringField;
    tblKrzdD_JSBZ: TStringField;
    tblKrzdD_DLR1: TStringField;
    tblKrzdD_DLR2: TStringField;
    tblKrzdD_DLR3: TStringField;
    tblKrzdD_DLR4: TStringField;
    tblKrzdD_CZYXM: TStringField;
    tblKrzdD_JZYXM: TStringField;
    tblKrzdD_TYR: TStringField;
    tblKrzdD_BZ: TStringField;
    tblKrzdD_YSRQ: TStringField;
    tblKrzdD_JZBH: TStringField;
    tblKrxxD_KRBH: TStringField;
    tblKrxxD_KRXM: TStringField;
    tblKrxxD_KRLX: TStringField;
    tblKrxxD_DDRQ: TDateTimeField;
    tblKrxxD_DDSJ: TDateTimeField;
    tblKrxxD_LDRQ: TDateTimeField;
    tblKrxxD_LDSJ: TDateTimeField;
    tblKrxxD_YWX: TStringField;
    tblKrxxD_YWM: TStringField;
    tblKrxxD_XB: TStringField;
    tblKrxxD_MZBH: TStringField;
    tblKrxxD_DQBH: TStringField;
    tblKrxxD_GBBH: TStringField;
    tblKrxxD_NZTS: TIntegerField;
    tblKrxxD_TLSY: TStringField;
    tblKrxxD_ZJBH: TStringField;
    tblKrxxD_ZJHM: TStringField;
    tblKrxxD_CSNY: TDateTimeField;
    tblKrxxD_HCL: TStringField;
    tblKrxxD_HCQ: TStringField;
    tblKrxxD_QZBH: TStringField;
    tblKrxxD_QZYXQ: TDateTimeField;
    tblKrxxD_ZY: TStringField;
    tblKrxxD_LXDH: TStringField;
    tblKrxxD_DWMC: TStringField;
    tblKrxxD_JTDZ: TStringField;
    tblKrxxD_JDR: TStringField;
    tblKrxxD_JDDW: TStringField;
    tblKrxxD_BZ: TStringField;
    tblKryjD_YJBH: TStringField;
    tblKryjD_HH: TIntegerField;
    tblKryjD_FKFS: TStringField;
    tblKryjD_XYKBH: TStringField;
    tblKryjD_KHBH: TStringField;
    tblKryjD_YFJE: TFloatField;
    tblKryjD_YFRQ: TDateTimeField;
    tblKryjD_YFSJ: TDateTimeField;
    tblKryjD_BZ: TStringField;
    tblKrxxD_QDR1: TStringField;
    tblKrxxD_QDR2: TStringField;
    tblKrxxD_QDR3: TStringField;
    tblKrxxD_QDR4: TStringField;
    tblKrzdD_BMBH: TStringField;
    procedure tblKrzdBeforeOpen(DataSet: TDataSet);
    procedure tblKrzdBeforeClose(DataSet: TDataSet);
    procedure tblKrzdNewRecord(DataSet: TDataSet);
    procedure tblKrzdBeforePost(DataSet: TDataSet);
    procedure tblKrzdAfterCancel(DataSet: TDataSet);
    procedure tblKrxxNewRecord(DataSet: TDataSet);
    procedure tblKryjNewRecord(DataSet: TDataSet);
    procedure btnCancClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure tblKryjD_YFJEValidate(Sender: TField);
    procedure tblKryjD_FKFSChange(Sender: TField);
    procedure tblKrzdD_CZYXMChange(Sender: TField);
    procedure tblKrzdD_JZYXMChange(Sender: TField);
    procedure vleKfKeyPress(Sender: TObject; var Key: Char);
    procedure btnInsertClick(Sender: TObject);
    procedure tblZdAfterPost(DataSet: TDataSet);
    procedure dbeKrxmExit(Sender: TObject);
    procedure dbcCzyxmExit(Sender: TObject);
    procedure dbcJzyxmExit(Sender: TObject);
    procedure dbcXykbhExit(Sender: TObject);
    procedure dbcKhbhExit(Sender: TObject);
    procedure dbcFkfsKeyPress(Sender: TObject; var Key: Char);
    procedure dbeYfjeExit(Sender: TObject);
  private
    { Private declarations }
    FBmbh: string;
    FItemNo: Integer;
    FZdbh: string;
    FKrbh: string;
    FYjbh: string;
    FCzyxm: string;
    FJzyxm: string;
    FBqj: Integer;
    procedure ShowJdxx;
    procedure UpdateKrzd;
    procedure UpdateKrxx;
    procedure UpdateKryj;
    procedure UpdateKfzt(AKf: TKf);
    procedure AddZd(AKf: TKf);
    procedure LoadKrxx(const AKrxm: string);
  public
    { Public declarations }
  end;


var
  TdjdForm: TTdjdForm;

procedure Tdjd;
procedure TdjdYd(const AKrxm: string;AKfh,ASjfj: TDynamicArray);

implementation

uses C_HotelData, C_Wait;

{$R *.dfm}

//团队接待
procedure Tdjd;
begin
  if Application.FindComponent('TdjdForm') is TTdjdForm then
  begin
    ShowInfo('对不起,团队接待正在运行中!');
    Exit;
  end;
  TdjdForm := TTdjdForm.Create(Application);
  try
    with TdjdForm do
    begin
      try
        tblKrzd.Open;
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      tblKrzd.Insert;
      ShowJdxx;
      ShowModal;
    end;
  finally
    TdjdForm.tblKrzd.Close;
    TdjdForm.Free;
  end;
end;

//团队预定转接待
procedure TdjdYd(const AKrxm: string;AKfh,ASjfj: TDynamicArray);
var
  i: Integer;
begin
  if Application.FindComponent('TdjdForm') is TTdjdForm then
  begin
    ShowInfo('对不起,团队接待正在运行中!');
    Exit;
  end;
  TdjdForm := TTdjdForm.Create(Application);
  try
    with TdjdForm do
    begin
      try
        tblKrzd.Open;
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      tblKrzd.Insert;
      tblKrxxD_KRXM.Value := AKrxm;
      for i:=Low(AKfh) to High(AKfh) do
      begin
        vleKf.InsertRow(AKfh[i],ASjfj[i],True);
      end;
      ShowJdxx;
      ShowModal;
    end;
  finally
    TdjdForm.tblKrzd.Close;
    TdjdForm.Free;
  end;
end;

//将数据库记录添加到下拉框中
procedure TTdjdForm.ShowJdxx;
begin
  HotelData.ListDbDm(dbcCzyxm,'YGDA','D_YGXM');
  HotelData.ListDbDm(dbcJzyxm,'YGDA','D_YGXM');
  HotelData.ListDbDm(dbcXykbh,'XYK','D_XYKMC');
  HotelData.ListDbDm(dbcKhbh,'KHDA','D_KHMC');
end;

//添加客人帐单
procedure TTdjdForm.AddZd(AKf: TKf);
var
  s : string;
begin
  s := 'insert into KRZD (D_ZDBH,D_HH,D_ZDLB,D_KRBH,D_YJBH,D_KFBH,'
                        +'D_SJFJ,D_XMBH,D_XFJE,D_XFRQ,D_XFSJ,D_JZBZ,'
                        +'D_JSBZ,D_DLR1,D_DLR2,D_DLR3,D_DLR4,D_CZYXM,'
                        +'D_JZYXM,D_BMBH,D_BZ) values ('
                        +'"'+FZdbh+'",'
                        +IntToStr(FItemNo)+','
                        +'"'+ZDLB_TD+'",'
                        +'"'+FKrbh+'",'
                        +'"'+FYjbh+'",'
                        +'"'+AKf.AKfbh+'",'
                        +CurrToStr(AKf.ASjfj)+','
                        +'"'+XMBH_FJ+'",'
                        +CurrToStr(AKf.AJjfj)+','
                        +'"'+tblKrzdD_XFRQ.AsString+'",'
                        +'"'+tblKrzdD_XFSJ.AsString+'",'
                        +'"'+JZ_NO+'",'
                        +'"'+JS_NO+'",'
                        +'"'+tblKrzdD_DLR1.AsString+'",'
                        +'"'+tblKrzdD_DLR2.AsString+'",'
                        +'"'+tblKrzdD_DLR3.AsString+'",'
                        +'"'+tblKrzdD_DLR4.AsString+'",'
                        +'"'+tblKrzdD_CZYXM.AsString+'",'
                        +'"'+tblKrzdD_JZYXM.AsString+'",'
                        +'"'+FBmbh+'",'
                        +'"'+ZDBZ_TD+AKf.AKfbh+' '+dbeKrxm.Text+'")';
  HotelData.ExecSql(s);
{
    tblZd.Insert;
    tblZdD_ZDBH.Value := FZdbh;
    tblZdD_HH.Value   := FItemNo;
    tblZdD_ZDLB.Value := ZDLB_TD;
    tblZdD_KRBH.Value := FKrbh;
    tblZdD_YJBH.Value := FYjbh;
    tblZdD_KFBH.Value := AKf.AKfbh;
    tblZdD_SJFJ.Value := AKf.ASjfj;
    tblZdD_XMBH.Value := XMBH_FJ;
    tblZdD_XFDJ.Value := AKf.AJjfj;
    tblZdD_XFSL.Value := 1;
    tblZdD_XFJE.Value := tblZdD_XFJE.Value+tblZdD_XFSL.Value*tblZdD_XFDJ.Value;
    tblZdD_XFRQ.Value := tblKrzdD_XFRQ.Value;
    tblZdD_XFSJ.Value := tblKrzdD_XFSJ.Value;
    tblZdD_JZBZ.Value := JZ_NO;
    tblZdD_JSBZ.Value := JS_NO;
    tblZdD_DLR1.Value := tblKrzdD_DLR1.Value;
    tblZdD_DLR2.Value := tblKrzdD_DLR2.Value;
    tblZdD_DLR3.Value := tblKrzdD_DLR3.Value;
    tblZdD_DLR4.Value := tblKrzdD_DLR4.Value;
    tblZdD_CZYXM.Value:= tblKrzdD_CZYXM.Value;
    tblZdD_JZYXM.Value:= tblKrzdD_JZYXM.Value;
    tblZdD_BMBH.Value := FBmbh;
    tblZdD_BZ.Value   := ZDBZ_TD+AKf.AKfbh+' '+dbeKrxm.Text;
    tblZd.Post;}
end;

//更新客房状态
procedure TTdjdForm.UpdateKfzt(AKf: TKf);
var
  s : string;
begin
  if FBqj = BQJ_ZC then
  begin
    s := 'update KFZT set D_KFBZ="'+KFBZ_DT+'",'
        +'D_ZDBH="'+FZdbh+'",'
        +'D_KRBH="'+FKrbh+'",'
        +'D_YJBH="'+FYjbh+'",'
        +'D_SJFJ='+CurrToStr(AKf.ASjfj)+','
        +'D_KRSL=D_KRSL+1,'
        +'D_DHKT="F",'
        +'D_KFZT="'+KFZT_TD+'",'
        +'D_KRXM="'+tblKrxxD_KRXM.Value+'"  where D_KFBH="'+AKf.AKfbh+'"';

  end
  else
  begin
    AKf.AJjfj := AKf.ASjfj;
    s := 'update KFZT set D_KFBZ="'+KFBZ_FT+'",D_QJS=D_QJS+1,'
        +'D_JJFJ=D_JJFJ+'+CurrToStr(AKf.AJjfj)+','
        +'D_ZDBH="'+FZdbh+'",'
        +'D_KRBH="'+FKrbh+'",'
        +'D_YJBH="'+FYjbh+'",'
        +'D_SJFJ='+CurrToStr(AKf.ASjfj)+','
        +'D_KRSL=D_KRSL+1,'
        +'D_DHKT="F",'
        +'D_KFZT="'+KFZT_TD+'",'
        +'D_KRXM="'+tblKrxxD_KRXM.Value+'"  where D_KFBH="'+AKf.AKfbh+'"';
  end;

  HotelData.ExecSql(s);

  if FBqj<>BQJ_ZC then
    HotelData.UpdateBqj(Akf.AKfbh,FBqj,AKf.ASjfj,AKf.AJjfj)
  else
    HotelData.UpdateBqj(Akf.AKfbh,FBqj,AKf.ASjfj,0);

  {
  if tblKfzt.FindKey([AKf.AKfbh]) then
  begin
    tblKfzt.Edit;

    case FBqj of
      BQJ_ZC:
        tblKfztD_KFBZ.Value := KFBZ_DT;
      else
        begin
          tblKfztD_KFBZ.Value := KFBZ_FT;
          tblKfztD_QJS.Value  := tblKfztD_QJS.Value + 1;
          //20020627 edit by ls. 改为求和
          AKf.AJjfj := AKf.ASjfj;
          tblKfztD_JJFJ.Value := tblKfztD_JJFJ.Value+AKf.ASjfj;
        end;
    end;
    tblKfztD_ZDBH.Value := FZdbh;
    tblKfztD_KRBH.Value := FKrbh;
    tblKfztD_YJBH.Value := FYjbh;
    tblKfztD_SJFJ.Value := AKf.ASjfj;
    tblKfztD_KRSL.Value := tblKfztD_KRSL.Value + 1;
    tblKfztD_DHKT.Value := 'F';
    tblKfztD_KFZT.Value := KFZT_TD;
    tblKfztD_KRXM.Value := tblKrxxD_KRXM.Value;
    tblKfzt.Post;
  end;}
end;

//更新客人帐单总单
procedure TTdjdForm.UpdateKrzd;
begin
  FZdbh := HotelData.GetBh('D_ZDBH',PREV_ZDBH);
  FKrbh := HotelData.GetBh('D_KRBH',PREV_KRBH);
  FYjbh := HotelData.GetBh('D_YJBH',PREV_YJBH);
  tblKrzdD_ZDBH.Value := FZdbh;
  tblKrzdD_KRBH.Value := FKrbh;
  tblKrzdD_YJBH.Value := FYjbh;
  tblKrzdD_HH.Value   := 0;
  tblKrzdD_ZDLB.Value := ZDLB_TD;
  tblKrzdD_XFRQ.Value := tblKrxxD_DDRQ.Value;
  tblKrzdD_XFSJ.Value := tblKrxxD_DDSJ.Value;
  tblKrzdD_JZBZ.Value := JZ_NO;
  tblKrzdD_JSBZ.Value := JS_NO;
  tblKrzdD_BMBH.Value := FBmbh;
  tblKrzdD_BZ.Value   := ZDBZ_TD+' '+tblKrxxD_KRXM.Value;
end;

//更新客人信息
procedure TTdjdForm.UpdateKrxx;
begin
  tblKrxx.Edit;
  tblKrxxD_KRBH.Value := FKrbh;
  tblKrxx.Post;
end;

//更新客人押金
procedure TTdjdForm.UpdateKryj;
begin
  tblKryj.Edit;
  tblKryjD_YJBH.Value := FYjbh;
  tblKryjD_HH.Value   := 0;
  tblKryjD_YFRQ.Value := tblKrxxD_DDRQ.Value;
  tblKryjD_YFSJ.Value := tblKrxxD_DDSJ.Value;
  tblKryjD_BZ.Value   := YJBZ_YJ;
  tblKryj.Post;
end;

⌨️ 快捷键说明

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