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

📄 cfzdunit.pas

📁 东华休闲山庄洗浴、餐饮、客房管理系统
💻 PAS
字号:
unit CFZDUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, SUIListBox, ComCtrls, SUITreeView, SUIButton,
  ExtCtrls, SUIImagePanel;

type
  TCFZDForm = class(TForm)
    suiPanel2: TsuiPanel;
    suiPanel1: TsuiPanel;
    btn1: TsuiButton;
    btn2: TsuiButton;
    suiTreeView2: TsuiTreeView;
    suiListBox1: TsuiListBox;
    btn3: TsuiButton;
    btn4: TsuiButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btn2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  CFZDForm: TCFZDForm;

implementation

uses LoginUnit, MainUnit;

{$R *.dfm}

procedure TCFZDForm.FormCreate(Sender: TObject);
var
  sql:string;
  node:TTreeNode;
  temp:string;
begin
  sql:='select distinct memozs,id from house '+
       'where (id in (select distinct room_id from room where room_id<>'''')) '+
       'order by id,memozs';
  LoginForm.ExecuteSQL(sql);
  LoginForm.dsQuery.First;
  while not LoginForm.dsQuery.Eof do
    begin
      temp:=LoginForm.dsQuery.Fields[0].AsString;
      node:=self.suiTreeView2.Items.Add(nil,Copy(temp,1,Pos('@',temp)-1)+':'+LoginForm.dsQuery.Fields[1].AsString);
      Delete(temp,1,Pos('@',temp));
      while Pos(';',temp)>0 do
        begin
          Self.suiTreeView2.Items.AddChild(node,Copy(temp,1,Pos('@',temp)-1));
          Delete(temp,1,Pos('@',temp));
        end;
      LoginForm.dsQuery.Next;
    end;
  LoginForm.dsQuery.Close;
  self.suiTreeView2.Items.EndUpdate;
  self.suiListBox1.Clear;
end;

procedure TCFZDForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  MainForm.RefrushRoomState(0);
  MainForm.Enabled:=true;
end;

procedure TCFZDForm.btn2Click(Sender: TObject);
begin
  Close;
end;

procedure TCFZDForm.FormActivate(Sender: TObject);
var
  node:TTreeNode;
begin
  if MainForm.roomnum<>'' then
    begin
      node:=self.suiTreeView2.Items.GetFirstNode;
      while node<>nil do
        begin
          if Pos(MainForm.roomnum,node.Text)>0 then
            begin
              self.suiTreeView2.SetFocus;
              node.Selected:=True;
              Break;
            end;
          node:=node.GetNext;
        end;
    end;
end;

procedure TCFZDForm.btn3Click(Sender: TObject);
var
  node:TTreeNode;
  id:string;
begin
  node:=suiTreeView2.Selected;
  if node.Level>0 then
    begin
      id:=node.Parent.Text;
      self.suiListBox1.Items.Add(id+':'+node.Text);
      node.Delete;
    end
  else
    MessageDlg('主房间账单不可执行拆分操作!',mtConfirmation, [mbYes], 0);
end;

procedure TCFZDForm.btn1Click(Sender: TObject);
var
  index:Integer;
  info:string;
  room,roomid,roomnum:string;
  roomstate:string;
  roommemo:string;
  time:string;
  id:string;
begin
  time:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
  for index:=0 to suiListBox1.Items.Count-1 do
    begin
      roomnum:=SUIListBox1.Items.Strings[index];
      room:=Copy(roomnum,1,Pos(':',roomnum)-1);
      Delete(roomnum,1,Pos(':',roomnum));
      roomid:=Copy(roomnum,1,Pos(':',roomnum)-1);
      Delete(roomnum,1,Pos(':',roomnum));
      loginform.ExecuteSQL('select memozs from house where id='''+roomid+''' and room='''+room+'''');
      roommemo:=LoginForm.dsQuery.Fields[0].AsString;
      LoginForm.dsQuery.Close;
      Delete(roommemo,Pos(roomnum,roommemo),Length(roomnum)+1);
      loginform.ExecuteSQL('select room_state from room where room_num='''+roomnum+'''');
      roomstate:=LoginForm.dsQuery.Fields[0].AsString;
      LoginForm.dsQuery.Close;
      if roomstate='团体' then
        id:='TT'+formatdatetime('yyyymmddhhnnss',now)
      else
        id:='SD'+formatdatetime('yyyymmddhhnnss',now);
      loginform.ExecuteSQL('update consume set Lbxf_xfbh='''+id+''' '+
                           'where Lbxf_xfbh='''+roomid+''' and lbxf_sph='''+roomnum+'''');
      loginform.ExecuteSQL('update house set id='''+id+''',memozs=''拆分账单:'+roomnum+';'' '+
                           'where id='''+roomid+''' and room='''+roomnum+'''');
      loginform.ExecuteSQL('update house set memozs='''+roommemo+''' '+
                           'where id='''+roomid+''' and room<>'''+roomnum+'''');
      loginform.ExecuteSQL('update room set room_id='''+id+''' where room_num='''+roomnum+'''');
      loginform.ExecuteSQL('update yjgl set yj_bh='''+id+''' '+
                           'where yj_bh='''+roomid+''' and yj_sph='''+roomnum+'''');
      loginform.ExecuteSQL('insert into log '+
                           'values('''+time+''','''+loginform.userid+''','''+LoginForm.username+
                                   ''',''账单由房间【'+room+'】拆分到【'+roomnum+'】'')');
      if index=suiListBox1.Items.Count-1 then
        info:=info+'账单由房间【'+room+'】拆分到【'+roomnum+'】'
      else
        info:=info+'账单由房间【'+room+'】拆分到【'+roomnum+'】'+#13#10;
    end;
  if info<>'' then
    begin
      MessageDlg(info,mtConfirmation, [mbYes], 0);
      close;
    end
  else
    MessageDlg('尚无需要拆分账单信息!',mtConfirmation, [mbYes], 0);
end;

procedure TCFZDForm.btn4Click(Sender: TObject);
var
  index:integer;
  room:string;
  node:TTreeNode;
begin
  for index:=suiListBox1.Items.Count-1 downto 0 do
    if suiListBox1.Selected[index] then
      begin
        room:=SUIListBox1.Items.Strings[index];
        suiListBox1.Items.Delete(index);
        node:=self.suiTreeView2.Items.GetFirstNode;
        while node<>nil do
          begin
            if Pos(node.Text,room)>0 then
              begin
                Delete(room,Pos(node.Text,room),Length(node.Text)+1);
                self.suiTreeView2.Items.AddChild(node,room);
                Break;
              end;
            node:=node.GetNext;
          end;
      end;
end;

end.

⌨️ 快捷键说明

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