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

📄 posut.~pas

📁 宾馆客房管理系统,功能强大,界面美观,全部delphi源代码
💻 ~PAS
字号:
unit posut;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons;

type
  Tposfm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    posado: TADOQuery;
    pos1ado: TADOQuery;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    yszk: TLabeledEdit;
    sszk: TLabeledEdit;
    zl: TLabeledEdit;
    fkfs: TComboBox;
    Label1: TLabel;
    sybt: TBitBtn;
    gbbt: TBitBtn;
    dybt: TBitBtn;
    qxbt: TBitBtn;
    rzdh: TEdit;
    procedure gbbtClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure sszkChange(Sender: TObject);
    procedure sybtClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  posfm: Tposfm;

implementation

{$R *.dfm}

procedure Tposfm.gbbtClick(Sender: TObject);
begin
close;
end;

procedure Tposfm.FormCreate(Sender: TObject);
begin
  with posado do
    begin
      close;
      sql.Clear;
      sql.Add('select * from 入住单表 where 是否结帐=false order by 编号');
      open;
    end;
    with pos1ado do
    begin
      close;
      sql.Clear;
      sql.Add('select * from 帐单明细表  where id<>"" order by 编号');
      open;
    end;
    yszk.Text:='';
    sszk.Text:='';
    zl.Text:='';
    fkfs.Text:='';
end;

procedure Tposfm.DBGrid1CellClick(Column: TColumn);
begin
rzdh.Text:=posado.fieldbyname('入住单号').AsString;
end;

procedure Tposfm.DBGrid1DblClick(Sender: TObject);
var
totle:double;

begin
with posado do
    begin
      close;
      sql.Clear;
      sql.Add('select * from 入住单表 where 入住单号=:rzdh');
       Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
      open;
      totle:=fieldbyname('入住价格').AsFloat*(date()-fieldbyname('抵店时间').AsDateTime)+fieldbyname('加床价格').AsFloat;
      totle:=totle-fieldbyname('预收款').AsFloat;
     end;
 with pos1ado do
   begin
    close;
    sql.Clear;
    sql.Add('select sum(消费金额) as totle from 帐单明细表 where 入住单号=:rzdh');
    Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
    open;
    totle:=totle+fieldbyname('totle').AsFloat;
   end;
 with pos1ado do
   begin
    close;
    sql.Clear;
    sql.Add('select * from 帐单明细表 where 入住单号=:rzdh');
    Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
    open;
   end;
   with posado do
    begin
      close;
      sql.Clear;
      sql.Add('select * from 入住单表 where 是否结帐=false order by 编号');
      open;
    end;
  yszk.Text:=floattostr(totle);
end;

procedure Tposfm.sszkChange(Sender: TObject);
begin
if sszk.Text='' then
 zl.Text:='0'
 else
   zl.Text:=floattostr(strtofloat(sszk.Text)-strtofloat(yszk.Text));
end;

procedure Tposfm.sybtClick(Sender: TObject);
var
vnum:string;
begin
if sszk.Text='' then
  begin
    showmessage('请输入实收帐款');
    exit;
  end;
if fkfs.Text='' then
  begin
    showmessage('请输入付款方式');
    exit;
  end;
  with posado do
    begin
      close;
      sql.Clear;
      sql.Add('update 入住单表 set 离店时间=date(),单据状态="离店",应收帐款=:yszk,结帐金额=:jzje,是否结帐=:sfjz,结帐日期=date(),付款方式=:fkfs where 入住单号=:rzdh');
      Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
      Parameters.ParamByName('yszk').Value:=trim(yszk.Text);
      Parameters.ParamByName('jzje').Value:=trim(yszk.Text);
      Parameters.ParamByName('sfjz').Value:=true;
      Parameters.ParamByName('fkfs').Value:=trim(fkfs.Text);
      execsql;
    end;
   with posado do
     begin
       close;
       sql.Clear;
       sql.Add('select * from 入住单表 where 入住单号=:rzdh');
       Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
       open;
       vnum:=fieldbyname('客房编号').asstring;
     end;
    with posado do
    begin
      close;
      sql.Clear;
      sql.Add('update 客房信息表 set 状态="空房"  where 客房编号=:kfbh');
      Parameters.ParamByName('kfbh').Value:=vnum;
      execsql;
    end;
    with posado do
      begin
       close;
       sql.Clear;
       sql.Add('insert into 入住单历史表 select * from 入住单表 where 入住单号=:rzdh');
       Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
       execsql;
      end;
      with posado do
      begin
       close;
       sql.Clear;
       sql.Add('insert into 帐单明细历史表 select * from 帐单明细表 where 入住单号=:rzdh');
       Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
       execsql;
      end;
       with posado do
      begin
       close;
       sql.Clear;
       sql.Add('delete from 入住单表 where 入住单号=:rzdh');
       Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
       execsql;
      end;
       with posado do
      begin
       close;
       sql.Clear;
       sql.Add('delete from 帐单明细表 where 入住单号=:rzdh');
       Parameters.ParamByName('rzdh').Value:=trim(rzdh.Text);
       execsql;
      end;
  qxbt.click;
end;

end.

⌨️ 快捷键说明

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