📄 posut.~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 + -