📄 c_tdjd.pas
字号:
{立方酒店管理系统 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 + -