?? c_sktf.pas
字號(hào):
{立方酒店管理系統(tǒng) v1.0
Copyright by CubicSoft
program by ls.
Date:20020301-20020601
20020627 加入注釋
}
unit C_Sktf;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, C_StdJd, DosMove, StdCtrls, Buttons, ExtCtrls, DB, DBTables, C_Define;
type
TSktfForm = class(TStdJdForm)
Label1: TLabel;
edtDcfh: TEdit;
Label2: TLabel;
edtDcfj: TEdit;
Label3: TLabel;
edtDrfh: TEdit;
Label4: TLabel;
edtDrfj: TEdit;
tblKrzd: TTable;
tblKfzt: TTable;
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;
tblKfztD_KFBH: TStringField;
tblKfztD_ZDBH: TStringField;
tblKfztD_KRBH: TStringField;
tblKfztD_YJBH: TStringField;
tblKfztD_SJFJ: TFloatField;
tblKfztD_KFZT: TStringField;
tblKfztD_KFBZ: TStringField;
tblKfztD_KRSL: TIntegerField;
tblKfztD_DHKT: TStringField;
tblKfztD_BZFJ: TFloatField;
tblKfztD_CWS: TIntegerField;
tblKfztD_BJS: TIntegerField;
tblKfztD_QJS: TIntegerField;
tblKfztD_JJFJ: TFloatField;
tblKfztD_FXBH: TStringField;
tblKfztD_LCBH: TStringField;
tblKfztD_KRXM: TStringField;
tblBqj: TTable;
procedure edtDcfhKeyPress(Sender: TObject; var Key: Char);
procedure edtDcfhExit(Sender: TObject);
procedure edtDrfhExit(Sender: TObject);
procedure btnOKClick(Sender: TObject);
private
{ Private declarations }
FDcfh: string;
FDrfh: string;
FDrfj: Currency;
FKfxx: TKfxx;
FKfzt: string;
procedure UpdateKrzd;
procedure UpdateKfzt;
procedure UpdateBqj;
public
{ Public declarations }
end;
var
SktfForm: TSktfForm;
procedure Sktf;
procedure SktfEnter(const AKfbh: string);
implementation
uses C_HotelData;
{$R *.dfm}
//散客調(diào)房
procedure Sktf;
begin
SktfForm := TSktfForm.Create(Application);
try
with SktfForm do
begin
try
tblKrzd.Open;
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打開(kāi)數(shù)據(jù)庫(kù)出錯(cuò),請(qǐng)檢查網(wǎng)絡(luò)連接是否正常!'
+#13#10
+'錯(cuò)誤信息:'
+E.Message);
raise;
end;
end;
ShowModal;
end;
finally
SktfForm.tblKrzd.Close;
SktfForm.tblKfzt.Close;
SktfForm.Free;
end;
end;
//散客調(diào)房
procedure SktfEnter(const AKfbh: string);
begin
SktfForm := TSktfForm.Create(Application);
try
with SktfForm do
begin
try
tblKrzd.Open;
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打開(kāi)數(shù)據(jù)庫(kù)出錯(cuò),請(qǐng)檢查網(wǎng)絡(luò)連接是否正常!'
+#13#10
+'錯(cuò)誤信息:'
+E.Message);
raise;
end;
end;
edtDcfh.Text := AKfbh;
ShowModal;
end;
finally
SktfForm.tblKrzd.Close;
SktfForm.tblKfzt.Close;
SktfForm.Free;
end;
end;
procedure TSktfForm.edtDcfhKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if (not(Key in ['0'..'9']))and(Ord(Key)<>VK_BACK) then
begin
Key := #0;
Beep;
end;
end;
procedure TSktfForm.edtDcfhExit(Sender: TObject);
var
AKfzt: string;
begin
inherited;
if edtDcfh.Text<>'' then
begin
AKfzt := HotelData.CheckKfzt(edtDcfh.Text);
if (AKfzt<>KFZT_BF)and(AKfzt<>KFZT_TD) then
begin
ShowWarning('請(qǐng)選擇其他房間!');
edtDcfh.SetFocus;
end
else
begin
FDcfh := edtDcfh.Text;
if tblKfzt.FindKey([FDcfh]) then
edtDcfj.Text := CurrToStr(tblKfztD_SJFJ.Value);
end;
end;
end;
procedure TSktfForm.edtDrfhExit(Sender: TObject);
begin
inherited;
if edtDrfh.Text<>'' then
begin
if HotelData.CheckKfzt(edtDrfh.Text)<>KFZT_OK then
begin
ShowWarning('請(qǐng)選擇其他房間!');
edtDrfh.SetFocus;
end
else
FDrfh := edtDrfh.Text;
end;
end;
//更新客人帳單
procedure TSktfForm.UpdateKrzd;
begin
tblKrzd.Filter := 'D_ZDBH='''+FKfxx.AZdbh+''' and D_JZBZ=''1''';
tblKrzd.Filtered := True;
//找到總單
if tblKrzd.FindKey([FKfxx.AZdbh,0]) then
begin
//如果是散客 修改房號(hào)和房?jī)r(jià)
if tblKrzdD_ZDLB.Value = ZDLB_YK then
begin
tblKrzd.Edit;
tblKrzdD_KFBH.Value := FDrfh;
tblKrzdD_SJFJ.Value := FDrfj;
tblKrzdD_BZ.Value := tblKrzdD_BZ.Value + '調(diào)入'+FDrfh;
tblKrzd.Post;
end;
//如果是團(tuán)隊(duì)
if tblKrzdD_ZDLB.Value = ZDLB_TD then
begin
tblKrzd.Filter := 'D_ZDBH='''+FKfxx.AZdbh+''' and D_JZBZ=''1'' and D_XMBH=''00001''';
tblKrzd.Filtered := True;
//找到調(diào)出房號(hào)修改為調(diào)入房號(hào)和房?jī)r(jià)
if tblKrzd.Locate('D_KFBH',FDcfh,[]) then
begin
tblKrzd.Edit;
tblKrzdD_KFBH.Value := FDrfh;
tblKrzdD_SJFJ.Value := FDrfj;
tblKrzdD_BZ.Value := tblKrzdD_BZ.Value+'調(diào)入'+FDrfh;
tblKrzd.Post;
end;
end;
end;
tblKrzd.Filter := '';
tblKrzd.Filtered := False;
end;
//更新客房狀態(tài)
procedure TSktfForm.UpdateKfzt;
begin
if tblKfzt.FindKey([FDrfh]) then
begin
tblKfzt.Edit;
tblKfztD_ZDBH.Value := FKfxx.AZdbh;
tblKfztD_KRBH.Value := FKfxx.AKrbh;
tblKfztD_YJBH.Value := FKfxx.AYjbh;
tblKfztD_KFBZ.Value := FKfxx.AKfbz;
tblKfztD_KRSL.Value := 1;
tblKfztD_KFZT.Value := FKfzt;
tblKfztD_SJFJ.Value := FDrfj;
tblKfztD_KRXM.Value := FKfxx.AKrxm;
tblKfzt.Post;
end;
end;
procedure TSktfForm.UpdateBqj;
begin
with tblBqj do
begin
Open;
if FindKey([FDcfh]) then
begin
Edit;
FieldByName('D_SJFJ').AsCurrency := 0;
Post;
end;
if FindKey([FDrfh]) then
begin
Edit;
FieldByName('D_SJFJ').AsCurrency := FDrfj;
Post;
end
else
begin
Insert;
FieldByName('D_KFBH').AsString := FDrfh;
FieldByName('D_SJFJ').AsCurrency := FDrfj;
FieldByName('D_BJS').AsInteger := 0;
FieldByName('D_QJS').AsInteger := 0;
FieldByName('D_JJFJ').AsCurrency := 0;
FieldByName('D_BJ').AsString := '';
FieldByName('D_QJ').AsString := '';
Post;
end;
Close;
end;
end;
//確認(rèn)
procedure TSktfForm.btnOKClick(Sender: TObject);
begin
inherited;
if (edtDcfh.Text='')or(edtDrfh.Text='')or(edtDrfj.Text='') then
begin
ShowWarning('請(qǐng)錄全數(shù)據(jù)!');
Exit;
end;
try
FDrfj := StrToCurr(edtDrfj.Text);
except
Exit;
raise;
end;
if not Confirm('你確認(rèn)調(diào)換房間嗎?') then Exit;
//統(tǒng)計(jì)調(diào)出房號(hào)的電話費(fèi),記入帳單
//修改總單的客房號(hào)、實(shí)際房?jī)r(jià)
FKfxx := HotelData.GetKfxx(FDcfh);
FKfzt := HotelData.CheckKfzt(FDcfh);
//事務(wù)啟動(dòng)
HotelData.DatabaseUser.StartTransaction;
try
//初始化調(diào)出客房
HotelData.InitKfztOK(FDcfh);
UpdateKrzd;
UpdateKfzt;
UpdateBqj;
//事務(wù)提交
HotelData.DatabaseUser.Commit;
except
//事務(wù)回滾
HotelData.DatabaseUser.Rollback;
raise;
end;
Close;
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -