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

📄 groupdj.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit groupdj;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Db, DBTables, StdCtrls, Grids, Spin, Mask, ExtCtrls, Buttons;

type
  Tgroupdjform = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Bevel2: TBevel;
    Label8: TLabel;
    Label9: TLabel;
    labed10: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    country: TEdit;
    workunit: TMaskEdit;
    master: TEdit;
    djtime: TMaskEdit;
    daynum: TSpinEdit;
    yj: TSpinEdit;
    rmnum: TSpinEdit;
    pnum: TSpinEdit;
    sy: TEdit;
    zj: TComboBox;
    GroupBox2: TGroupBox;
    man: TRadioButton;
    woman: TRadioButton;
    rmtypegrid: TStringGrid;
    rmgrid: TStringGrid;
    rmf: TCheckBox;
    xf: TCheckBox;
    cusgrid: TStringGrid;
    phonef: TCheckBox;
    Button1: TButton;
    Button2: TButton;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    groupname: TEdit;
    Bevel1: TBevel;
    S1: TStoredProc;
    q1: TQuery;
    s2: TStoredProc;
    isreg: TCheckBox;
    Label13: TLabel;
    ttjc: TMaskEdit;
    BitBtn1: TBitBtn;
    s3: TStoredProc;
    id: TMaskEdit;
    Label14: TLabel;
    nl: TSpinEdit;
    Bevel4: TBevel;
    Bevel5: TBevel;
    Panel1: TPanel;
    xj: TRadioButton;
    zp: TRadioButton;
    card: TRadioButton;
    cardlist: TComboBox;
    gz: TRadioButton;
    mf: TRadioButton;
    Label15: TLabel;
    Bevel3: TBevel;
    Bevel6: TBevel;
    Bevel7: TBevel;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure rmtypegridKeyPress(Sender: TObject; var Key: Char);
    procedure rmgridKeyPress(Sender: TObject; var Key: Char);
    procedure rmtypegridSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure xfClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure rmgridExit(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure rmtypegridExit(Sender: TObject);
    procedure groupnameExit(Sender: TObject);
    procedure djtimeExit(Sender: TObject);
    procedure idExit(Sender: TObject);
    procedure xjClick(Sender: TObject);
    procedure zpClick(Sender: TObject);
    procedure gzClick(Sender: TObject);
    procedure mfClick(Sender: TObject);
    procedure cardClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  groupdjform: Tgroupdjform;

implementation
uses dataproc;

{$R *.DFM}
var
   rmtp,custp:array [0..30] of string;

procedure formini;
begin
with groupdjform do
   begin
   groupname.text:='';
   sy.text:='';
   country.text:='中国';
   workunit.text:='';
   master.Text :='';
   man.Checked :=true;
   zj.Clear ;
   id.Text :='';
   ttjc.Text :='';
   djtime.Text :=datetimetostr(now);
   daynum.Value :=3;
   yj.Value :=1000;
   rmnum.Value :=0;
   pnum.Value :=0;
   rmf.Checked :=false;
   phonef.Checked :=false;
   xf.Checked :=false;
   isreg.Checked :=false;
   end
end;

procedure datatoctl(ss:string);
var
  i:integer;
begin
with groupdjform do
  begin
  i:=1;
  q1.Active :=false;
  q1.sql.clear;
  q1.sql.add('select roomtype,name,bednum from roomtype');
  q1.Prepare;
  q1.open;
  q1.Active :=true;
  rmtypegrid.RowCount :=q1.RecordCount+1 ;
  while not q1.EOF do
     begin
     rmtp[i]:=q1.fieldbyname('roomtype').asstring;
     rmtypegrid.cells[0,i]:=q1.fieldbyname('name').asstring;
     rmtypegrid.Cells [1,i]:=inttostr(q1.fieldbyname('bednum').asinteger);
     s1.ParamByName('@iroomtype').asstring:=trim(rmtp[i]);
     s1.ParamByName ('@idatetime').asdatetime:=strtodatetime(trim(ss));
     s1.ParamByName ('@idate').asdatetime:=strtodatetime(copy(trim(ss),1,10));
     s1.Prepare;
     s1.ExecProc ;
     rmtypegrid.cells[2,i]:=inttostr(s1.ParamByname('@oroomnum').asinteger);
     rmtypegrid.cells[3,i]:='';
     q1.Next ;
     i:=i+1;
     end;
  i:=1;
  q1.Active :=false;
  q1.sql.clear;
  q1.sql.Add('select custype,cusname from custype where parentcode=:pid');
  q1.ParamByName ('pid').asstring:='0';
  q1.Prepare;
  q1.open;
  q1.Active :=true;
  cusgrid.rowcount:=q1.recordcount+1 ;
  while not q1.eof do
     begin
     custp[i]:=q1.fieldbyname('custype').asstring;
     cusgrid.Cells[0,i]:=q1.fieldbyname('cusname').asstring;
     cusgrid.cells[1,i]:='自己付';
     q1.Next ;
     i:=i+1;
     end;
  q1.Active :=false;
  end;
end;
{procedure wic(k,i:integer;welid,accno:string);
var ss,ls,rq,bx:string;
    bb:Word;
    fd:smallint;
begin
   with groupdjform do
   begin
      if not xfk.Checked then exit;
      if Application.MessageBox(pchar('请插入IC卡(房号:'+trim(rmgrid.cells[0,i])+')!'),'房卡信息',49)=2 then exit;;
      ss:='                         ';
      rq:=formatdatetime('yyyy-mm-dd hh:mm:ss',now);
      bx:='001';
      fd:=open_com('');
      if fd=0 then exit;
      ls:=HotelNo+copy('0000000'+trim(rmgrid.Cells[0,k]),length(trim(rmgrid.Cells[0,k])),8)+bx+'00'+formatdatetime('hh',strtodatetime(rq))+newDate(strtodatetime(rq))+'0012'+newdate(strtodatetime(djtime.text)+daynum.value)+'2050000000000';
      bb:=write_ic(fd,$30,1,ls);
      if bb=0 then
      begin
        bb:=CT_close(fd);
        exit;
      end;
      ls:=copy(trim(rmgrid.Cells[0,k])+ss,1,7)+copy(trim(trim(ttjc.Text)+'  '+trim(rmgrid.cells[0,i]))+ss,1,21)
      +copy(formatdatetime('yyyymmddhhmmss',strtodatetime(djtime.text))+ss,1,14)
      +copy(formatdatetime('yyyymmddhhmmss',strtodatetime(djtime.text)+daynum.value)+ss,1,14)+copy(trim(id.Text)+ss,1,19)
      +copy(welid+ss,1,6)+copy(accno+ss,1,6)+'000000000000';
      bb:=write_ic(fd,$70,0,ls);
      bb:=CT_close(fd);
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('insert into iccmx values(:pRoomNo,:pName,:pWelid,:paccno,:pcodeno,:ptime)');
      q1.ParamByName ('proomno').asstring:=trim(rmgrid.Cells[0,k]);
      q1.ParamByName ('paccno').asstring:=accno;
      q1.ParamByName ('pwelid').asstring:=welid;
      q1.ParamByName ('pname').asstring:=trim(ttjc.Text)+'  '+trim(rmgrid.cells[0,i]);
    // q1.ParamByName ('page').asinteger:=age.Value;
      q1.ParamByName ('pcodeno').asstring:=xdh('iccmx','','codeno',5);
      q1.ParamByName ('ptime').asstring:=rq;
      q1.Prepare;
      q1.ExecSQL ;
      q1.Active :=false;
   end;
end;      }


procedure Tgroupdjform.FormCreate(Sender: TObject);
begin
   shortdateformat:='yyyy-mm-dd';
   bitbtn1.Caption :='自'+#13+'动'+#13+'分'+#13'房';
   rmtypegrid.Cells [0,0]:=' 房间类型';
   rmtypegrid.Cells [1,0]:=' 房间床数';
   rmtypegrid.Cells [2,0]:=' 可用房间';
   rmtypegrid.Cells [3,0]:='  数量';
   rmgrid.cells[0,0]:='房间';
   rmgrid.cells[1,0]:='价格';
   cusgrid.Cells [0,0]:='   消费类型';
   cusgrid.Cells [1,0]:='付款方式';
   formini;
   comadd(groupdjform.zj,1,'select name from zj');
   datatoctl(trim(djtime.text));
   cardlist.Clear;
   cardlist.items.add('牡丹卡');
   cardlist.items.add('龙卡');
   cardlist.items.add('长城卡');
   cardlist.itemindex:=0;
end;

procedure Tgroupdjform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
     selectnext(activecontrol,true,true);
  if key=27 then
     groupdjform.close;
end;

procedure Tgroupdjform.rmtypegridKeyPress(Sender: TObject; var Key: Char);
begin
  if ((key<'0') or (key>'9')) then
     if (key<>char(8))  then
        key:=char(0);
end;

procedure Tgroupdjform.rmgridKeyPress(Sender: TObject; var Key: Char);
begin
  if ((key<'0') or (key>'9')) then
     if (key<>char(8))  then
        key:=char(0);
end;

procedure Tgroupdjform.rmtypegridSetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
var
  i,rmsl,psl:integer;
begin
  if length(trim(rmtypegrid.cells[3,arow]))>0 then
     begin
     if strtoint(trim(rmtypegrid.cells[3,arow]))>strtoint(trim(rmtypegrid.cells[2,arow])) then
        begin
        showmessage('只有 '+trim(rmtypegrid.cells[2,arow])+' 间房间可用');
        rmtypegrid.cells[3,arow]:='';
        end;
     end;
   i:=1;
   rmsl:=0;
   psl:=0;
   while i<rmtypegrid.RowCount do
     begin
     if length(trim(rmtypegrid.cells[3,i]))>0 then
        begin
        rmsl:=rmsl+strtoint(trim(rmtypegrid.cells[3,i]));
        psl:=psl+strtoint(trim(rmtypegrid.cells[3,i]))*strtoint(trim(rmtypegrid.cells[1,i]));
        end;
     i:=i+1;
     end;
   rmnum.Value :=rmsl;
   pnum.Value :=psl;
end;

procedure Tgroupdjform.PopupMenu1Popup(Sender: TObject);
begin
   if trim(cusgrid.Cells [1,cusgrid.Row])='自己付' then
      begin
      n2.Enabled :=false;
      n1.Enabled :=true;
      end;
   if trim(cusgrid.Cells [1,cusgrid.Row])='团体付' then
      begin
      n1.Enabled :=false;
      n2.Enabled :=true;
      end;
end;

procedure Tgroupdjform.xfClick(Sender: TObject);
var
  i:integer;
begin
  i:=1;
  while i<cusgrid.RowCount do
     begin
     if xf.Checked =true then
        cusgrid.Cells [1,i]:='团体付'
     else
        cusgrid.Cells [1,i]:='自己付';
     i:=i+1;
     end;
end;

procedure Tgroupdjform.N1Click(Sender: TObject);
begin
   cusgrid.cells[1,cusgrid.row]:='团体付';
end;

procedure Tgroupdjform.N2Click(Sender: TObject);
begin
   cusgrid.cells[1,cusgrid.row]:='自己付';
end;

procedure Tgroupdjform.rmgridExit(Sender: TObject);
var
  aa:array [0..1] of string;
  i,j:integer;
  ls,ss:string;
begin
  j:=rmgrid.rowcount-1;
  i:=1;
  ss:=' ';
  while i<rmgrid.RowCount do
     begin
     if length(trim(rmgrid.cells[0,i]))>0 then
        begin
        aa[0]:='';
        ls:=trim(rmgrid.cells[0,i]);
        getvalue(aa,'select status from room where roomno='''+ls+'''');
        if trim(aa[0])<>'0' then
           begin
           if j>i then
              j:=i;
           ss:=ss+' '+ls;
           end
        end;
     i:=i+1;
     end;
  if length(trim(ss))>0 then
     begin
     showmessage('房间 '+ss+' 错误');
     rmgrid.SetFocus ;
     rmgrid.row:=j;
     end;
  i:=1;
  while i<rmgrid.rowcount do
     begin
     ls:=rmgrid.Cells [0,i];
     if length(trim(ls))>0 then
        begin
        j:=i+1;
        while j<rmgrid.RowCount do
           begin
           if length(trim(rmgrid.cells[0,j]))>0 then
              if trim(rmgrid.cells[0,j])=ls then
                 begin
                 showmessage('房间 '+ls+' 重号');
                 rmgrid.setfocus;
                 rmgrid.row:=j;
                 exit;
                 end;
           j:=j+1;
           end;
        end;
     i:=i+1;
     end;
  i:=1;
  while i<rmgrid.rowcount do
     begin
     if length(trim(rmgrid.Cells [0,i]))=0 then
        rmgrid.Cells [1,i]:=''
     else
        if  length(trim(rmgrid.Cells [1,i]))=0 then
            rmgrid.Cells [1,i]:=inttostr(roommoney(trim(rmgrid.Cells [0,i]),1,0));
     i:=i+1;
     end;
end;

procedure Tgroupdjform.Button2Click(Sender: TObject);
begin
  groupdjform.close;
end;

procedure Tgroupdjform.Button1Click(Sender: TObject);
var

⌨️ 快捷键说明

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