📄 c_fykjz.pas
字号:
{立方酒店管理系统 v1.0
Copyright by CubicSoft
program by ls.
Date:20020301-20020601
20020627 加入注释
}
unit C_FykJz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, C_StdJd, DosMove, StdCtrls, Buttons, ExtCtrls, Mask, Grids,
DBGrids, C_Define, DB, DBTables;
type
TFykJzForm = class(TStdJdForm)
Label2: TLabel;
edtJzrq: TMaskEdit;
Label3: TLabel;
edtJzsj: TMaskEdit;
radJzfs: TRadioGroup;
cmbJz: TComboBox;
Label1: TLabel;
lblXfje: TLabel;
Label11: TLabel;
lblYhje: TLabel;
DBGrid1: TDBGrid;
tblKrjz: TTable;
dsKrjz: TDataSource;
tblKrjzD_XFXM: TStringField;
Label5: TLabel;
lblJsje: TLabel;
tblKrzd: TTable;
btnPrint: TBitBtn;
Bevel2: TBevel;
tblKrjzD_JZBH: TStringField;
tblKrjzD_HH: TIntegerField;
tblKrjzD_XMBH: TStringField;
tblKrjzD_XFDJ: TFloatField;
tblKrjzD_XFSL: TFloatField;
tblKrjzD_XFGG: TStringField;
tblKrjzD_XFJE: TFloatField;
tblKrjzD_YJJE: TFloatField;
tblKrjzD_YHJE: TFloatField;
tblKrjzD_JZFS: TStringField;
tblKrjzD_JZLX: TStringField;
tblKrjzD_KHBH: TStringField;
tblKrjzD_XYKBH: TStringField;
tblKrjzD_JZRQ: TDateTimeField;
tblKrjzD_JZSJ: TDateTimeField;
tblKrjzD_CZYXM: TStringField;
tblKrjzD_BZ: TStringField;
tblKrjzD_YSRQ: TStringField;
tblKrjzD_BMBH: TStringField;
tblYsk: TTable;
procedure radJzfsClick(Sender: TObject);
procedure edtJzrqExit(Sender: TObject);
procedure edtJzsjExit(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure tblKrjzNewRecord(DataSet: TDataSet);
procedure tblKrjzAfterPost(DataSet: TDataSet);
procedure btnCancClick(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1ColEnter(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure tblKrjzD_XFJEValidate(Sender: TField);
procedure tblKrjzD_YHJEValidate(Sender: TField);
procedure tblKrjzD_XMBHValidate(Sender: TField);
procedure cmbJzDblClick(Sender: TObject);
private
{ Private declarations }
FBmbh: string;
FKey: string;
FJzrq: TDateTime;
FJzsj: TDateTime;
FJzfs: string;
FXykbh: string;
FXfje: Currency;
FYhje: Currency;
FJsje: Currency;
FJzbh: string;
FKhbh: string;
FHh: Integer;
IsUpdate: Boolean;
IsSum : Boolean;
function IsValid: Boolean;
procedure ShowJzxx;
procedure ShowZd;
procedure SumXfje;
procedure UpdateKrjz;
procedure UpdateKrzd;
procedure AddYjk(AGbkJzxx: TGbkJzxx);
procedure UpdateYsk;
public
{ Public declarations }
end;
var
FykJzForm: TFykJzForm;
procedure Fykjz;
implementation
uses C_HotelData, C_Sysprint, C_CardXf, C_KhdaSel;
{$R *.dfm}
//非寓客结帐
procedure Fykjz;
begin
FykjzForm := TFykjzForm.Create(Application);
try
with FykjzForm do
begin
//获取部门编号
FBmbh := HotelData.FindBh('YGDA','D_BMBH','D_YGBH',CZY.CzyBh);
//初始化
edtJzrq.Text := FormatDateTime('yyyy-mm-dd',Date);
edtJzsj.Text := FormatDateTime('hh:mm',Time);
FJzrq := Date;
FJzsj := Time;
FJzfs := JZFS_RMB;
IsUpdate := True;
IsSum := True;
//打开帐单
ShowZd;
ShowModal;
end;
finally
FykjzForm.Free;
end;
end;
//打开帐单
procedure TFykJzForm.ShowZd;
begin
//获取结帐编号
FJzbh := HotelData.GetBh('D_JZBH',PREV_JZBH);
tblKrjz.Filter := 'D_JZBH='''+FJzbh+'''';
tblKrjz.Filtered := True;
try
tblKrjz.Close;
tblKrjz.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
FHh := 1;
end;
//消费金额、优惠金额
procedure TFykJzForm.SumXfje;
var
PrevRecord: TBookMark;
begin
PrevRecord := tblKrjz.GetBookmark;
try
tblKrjz.DisableControls;
FXfje := 0;
FYhje := 0;
tblKrjz.First;
while not tblKrjz.Eof do
begin
FXfje := FXfje + tblKrjzD_XFJE.Value;
FYhje := FYhje + tblKrjzD_YHJE.Value;
tblKrjz.Next;
end;
finally
tblKrjz.EnableControls;
if PrevRecord<>nil then
begin
tblKrjz.GotoBookmark(PrevRecord);
tblKrjz.FreeBookmark(PrevRecord);
end;
ShowJzxx;
end;
end;
//显示结帐信息
procedure TFykJzForm.ShowJzxx;
begin
//结算金额
FJsje := FXfje-FYhje;
lblXfje.Caption := CurrToStr(FXfje)+'元';
lblYhje.Caption := CurrToStr(FYhje)+'元';
lblJsje.Caption := CurrToStr(FJsje)+'元';
end;
//选择结帐方式
procedure TFykJzForm.radJzfsClick(Sender: TObject);
begin
inherited;
cmbJz.Items.Clear;
cmbJz.Style := csDropDownList;
case radJzfs.ItemIndex of
0: FJzfs := JZFS_RMB;
1:
begin
HotelData.ListMc(cmbJz,'XYK','D_XYKMC');
FJzfs := JZFS_XYK;
end;
2: FJzfs := JZFS_ZP;
3:
begin
cmbJz.Style := csDropDown;
HotelData.ListDm(cmbJz,'KHDA','D_KHMC');
FJzfs := JZFS_JZ;
end;
4: FJzfs := JZFS_GBK;
end;
end;
procedure TFykJzForm.edtJzrqExit(Sender: TObject);
begin
inherited;
FJzrq := StrToDate(edtJzrq.Text);
end;
procedure TFykJzForm.edtJzsjExit(Sender: TObject);
begin
inherited;
FJzsj := StrToTime(edtJzsj.Text);
end;
//检查有效性
function TFykjzForm.IsValid: Boolean;
var
s : string;
begin
Result := False;
case radJzfs.ItemIndex of
1:
begin
FXykbh := HotelData.FindBh('XYK','D_XYKBH','D_XYKMC',cmbJz.Text);
if FXykbh<>'' then
Result := True
else
ShowInfo('请选择信用卡!');
end;
3:
begin
s := GetMc(cmbJz.Text);
FKhbh := HotelData.FindBh('KHDA','D_KHBH','D_KHMC',s);
if FKhbh<>'' then
Result := True
else
ShowInfo('请选择记帐客户!');
end;
else
Result := True;
end;
end;
//添加结帐总单 行号=0
procedure TFykJzForm.UpdateKrjz;
begin
IsUpdate := True;
IsSum := False;
FHh := 0;
tblKrjz.Insert;
tblKrjzD_XFJE.Value := FXfje;
tblKrjzD_YHJE.Value := FYhje;
tblKrjzD_JZFS.Value := FJzfs;
tblKrjzD_XYKBH.Value:= FXykbh;
tblKrjzD_JZRQ.Value := FJzrq;
tblKrjzD_JZSJ.Value := FJzsj;
tblKrjzD_CZYXM.Value:= CZY.CzyXm;
tblKrjzD_BMBH.Value := FBmbh;
tblKrjzD_BZ.Value := JZBZ_FYK;
tblKrjz.Post;
//修改结帐信息
tblKrjz.First;
while not tblKrjz.Eof do
begin
tblKrjz.Edit;
tblKrjzD_JZFS.Value := FJzfs;
tblKrjzD_XYKBH.Value:= FXykbh;
tblKrjzD_JZRQ.Value := FJzrq;
tblKrjzD_JZSJ.Value := FJzsj;
tblKrjz.Post;
tblKrjz.Next;
end;
IsUpdate := False;
IsSum := True;
end;
//更新应收款
procedure TFykjzForm.UpdateYsk;
var
AZdbh: string;
begin
try
try
tblYsk.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
AZdbh := HotelData.GetBh('D_ZDBH',PREV_ZDBH);
tblKrjz.First;
while not tblKrjz.Eof do
begin
tblYsk.Insert;
tblYsk.FieldByName('D_KHBH').AsString := FKhbh;
tblYsk.FieldByName('D_ZDBH').AsString := AZdbh;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -