【delphi开源代码栏目提醒】:网学会员--在 delphi开源代码编辑为广大网友搜集整理了:OrderRoomBalance_Unit.pas绩等信息,祝愿广大网友取得需要的信息,参考学习。
unit OrderRoomBalance_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Menus, Grids, StdCtrls, Buttons, ExtCtrls,
DBCtrls, DBGrids, ComCtrls, Mask;
type
TfrmRoomBalance = class(TForm)
GroupBox3: TGroupBox;
Label10: TLabel;
edtTableID: TEdit;
Label12: TLabel;
edtCustomer: TEdit;
dtpDate: TDateTimePicker;
chkDate: TCheckBox;
RadioGroup1: TRadioGroup;
GroupBox1: TGroupBox;
btnQuery: TBitBtn;
btnBalance: TBitBtn;
DBNavigator1: TDBNavigator;
Label5: TLabel;
Label9: TLabel;
Label11: TLabel;
Label13: TLabel;
Label14: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Splitter1: TSplitter;
edtLeaveDate: TDBEdit;
SpeedButton1: TSpeedButton;
Label19: TLabel;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label3: TLabel;
Label6: TLabel;
DBText1: TDBText;
DBText3: TDBText;
DBText4: TDBText;
DBText5: TDBText;
Label7: TLabel;
DBText7: TDBText;
txtRoomID: TDBText;
Label8: TLabel;
DBText2: TDBText;
Label15: TLabel;
DBText6: TDBText;
Label16: TLabel;
DBText8: TDBText;
Label17: TLabel;
DBText9: TDBText;
Label18: TLabel;
DBText10: TDBText;
Label20: TLabel;
txtRoomPrice: TDBText;
Label21: TLabel;
edtKipDays: TDBEdit;
edtTotalsMoeny: TEdit;
procedure btnQueryClick(Sender: TObject);
procedure edtTableIDKeyPress(Sender: TObject; var Key: Char);
procedure btnBalanceClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure edtKipDaysExit(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
end;
var
frmRoomBalance: TfrmRoomBalance;
implementation
uses DM_Unit;
{$R *.dfm}
procedure TfrmRoomBalance.btnQueryClick(Sender: TObject);
begin
with DM.qryOrderRooms do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM OrderRooms');
SQL.Add('WHERE 0=0');
if RadioGroup1.ItemIndex = 0 then
SQL.Add('AND IsBalance= 0 ');
if RadioGroup1.ItemIndex = 1 then
SQL.Add('AND IsBalance= 1 ');
if edtTableID.Text <> '' then
SQL.Add('AND RoomID LIKE '+ QuotedStr('%'+ edtTableID.Text +'%'));
if edtCustomer.Text <> '' then
SQL.Add('AND GuestName LIKE '+ QuotedStr('%'+ edtCustomer.Text +'%'));
if chkDate.Checked then
SQL.Add('AND BeginDate LIKE '+ QuotedStr('%'+ DateToStr(dtpDate.Date) +'%'));
SQL.Add('ORDER BY BeginDate DESC');
Open; First;
end;
end;
procedure TfrmRoomBalance.edtTableIDKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = #13 then
begin
Perform(WM_NEXTDLGCTL, 0, 0);
Key := #0;
end;
end;
procedure TfrmRoomBalance.btnBalanceClick(Sender: TObject);
begin
with DM do
begin
if qryOrderRooms.Active then
begin
if qryOrderRooms.FieldByName('IsBalance').AsBoolean = True then
begin
MessageDlg('已经结账不能修改', mtError, [mbOk], 0);
Exit;
end;
if MessageDlg('当前支付【'+ edtTotalsMoeny.Text +'元】 折扣【' +
qryOrderRooms.FieldByName('RebateMoney').AsString + '元】 确定结账吗?',
mtConfirmation, [mbOk, mbCancel], 0) =IDOK then
begin
qryOrderRooms.Edit;
qryOrderRooms.FieldByName('PaymentMoney').AsFloat := StrToFloat(edtTotalsMoeny.Text)
- qryOrderRooms.FieldByName('RebateMoney').AsFloat;
///////////更新结账状态
qryOrderRooms.FieldByName('IsBalance').AsBoolean := True;
qryOrderRooms.Post;
//////更新房间状态
qryTemp.Close;
qryTemp.SQL.Clear;
qryTemp.SQL.Add('UPDATE Rooms SET Status=''空闲''');
qryTemp.SQL.Add('WHERE RoomID = ' + QuotedStr(txtRoomID.Caption));
qryTemp.ExecSQL;
end;
end;
end;
end;
procedure TfrmRoomBalance.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
DM.qryOrderRooms.Close;
Action := caFree;
end;
procedure TfrmRoomBalance.FormDestroy(Sender: TObject);
begin
frmRoomBalance := nil;
end;
procedure TfrmRoomBalance.SpeedButton1Click(Sender: TObject);
begin
edtLeaveDate.Text := DM.SelectDate(DM.qryOrderRooms);
end;
procedure TfrmRoomBalance.edtKipDaysExit(Sender: TObject);
begin
edtTotalsMoeny.Text := FloatToStr(StrToInt(edtKipDays.Text) * StrToInt(txtRoomPrice.Caption));
end;
procedure TfrmRoomBalance.FormShow(Sender: TObject);
begin
DM.qryOrderRooms.Open;
end;
end.