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

📄 ucheckin.pas

📁 前言 随着旅游业的发展
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    begin
      with Dmo.ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add('update binkeInfo set cishu=cishu+1');
        sql.Add('where sfz=:sfz');
        parameters.ParamByName('sfz').Value:=EDsfz.Text;
        execsql;
        close;
        sql.Clear;
        sql.Add('select ruzhutime from binkeinfo where sfz=:sfz');
        parameters.ParamByName('sfz').Value:=EDsfz.Text;
        open;
        edit;
        fields.Fields[0].Value:=strTodatetime(EDtime.Text);
        Post;
      end;
    end else//如果是新顾客则把他的信息写入
    begin
      with Dmo.ADOQuery1 do
      begin
        close;
        Sql.clear;
        SQl.Add('insert into binkeInfo');
        Sql.Add('(SFZ,Na,sex,country,works,'
            +'address,birthday,cishu,xiaofei,jibie,'
            +'ruzhutime,likaitime)');
        SQl.Add(' values(:SFZ,:Names,:sex,:country,'
            +':works,:address,:birthday,:cishu,:xiaofei,:jibie,'
            +':ruzhutime,:likaitime)');
        Parameters.ParamByName('SFZ').Value:=EDsfz.Text;
        Parameters.ParamByName('names').Value:=EDname.Text;
        parameters.ParamByName('sex').Value:=CBoxSex.Text;
        parameters.ParamByName('country').Value:=CBoxcountry.Text;
        parameters.ParamByName('works').Value:=EDwork.Text;
        parameters.ParamByName('address').Value:=EDaddress.Text;
        parameters.ParamByName('birthday').Value:=strTodate(EDbirthday.Text);
        parameters.ParamByName('cishu').Value:=1;
        parameters.ParamByName('xiaofei').Value:=0.00;
        parameters.ParamByName('jibie').Value:=CBoxjibie.Text;
        str:=EDtime.Text; //从EDtime中取出他的年月日,去掉时间
        parameters.ParamByName('ruzhutime').Value:=strTodatetime(str);
        str:=EDbacktime.Text;
        parameters.ParamByName('likaitime').Value:=strTodatetime(str);
        prepared:=true;
        //Sql.Add('commit');//提交事务
        execSql;
      end;
    end;
//判断有无其他客人,如果有则执行写入数据库
    if (EDQname.Text<>'') and (EDQsfz.text<>'') then
    begin
      Dmo.ADOQuery1.Close;
      Dmo.ADOQuery1.SQL.Clear;
      Dmo.ADOQuery1.SQL.Add('select * from binkeInfo where sfz=:sfz');
      Dmo.ADOQuery1.Parameters.ParamByName('sfz').Value:=EDQsfz.text;
      Dmo.ADOQuery1.Open;
      //判断顾客是否来过
      if Dmo.ADOQuery1.RecordCount=1 then
      begin
        with Dmo.ADOQuery1 do
        begin
          close;
          sql.Clear;
          sql.Add('update binkeInfo set cishu=cishu+1');
          sql.Add('where sfz=:sfz');
          parameters.ParamByName('sfz').Value:=EDQsfz.Text;
          execsql;
          close;
          sql.Clear;
          sql.Add('select ruzhutime from binkeinfo where sfz=:sfz');
          parameters.ParamByName('sfz').Value:=EDQsfz.Text;
          open;
          edit;
          fields.Fields[0].Value:=strTodatetime(EDQtime.Text);
          Post;
        end;//end of with
      end else //是新顾客,把信息写入数据库
      begin
        with Dmo.ADOQuery1 do
        begin
          close;
          Sql.clear;
          SQl.Add('insert into binkeInfo');
          Sql.Add('(SFZ,Na,sex,country,works,'
            +'address,birthday,cishu,xiaofei,jibie,'
            +'ruzhutime,likaitime)');
          SQl.Add(' values(:SFZ,:Names,:sex,:country,'
            +':works,:address,:birthday,:cishu,:xiaofei,:jibie,'
            +':ruzhutime,:likaitime)');
          Parameters.ParamByName('SFZ').Value:=EDQsfz.Text;
          Parameters.ParamByName('names').Value:=EDQname.Text;
          parameters.ParamByName('sex').Value:=CBoxQSex.Text;
          parameters.ParamByName('country').Value:=CBoxQcountry.Text;
          parameters.ParamByName('works').Value:=EDQwork.Text;
          parameters.ParamByName('address').Value:=EDqaddress.Text;
          parameters.ParamByName('birthday').Value:=strTodate(EDQbirthday.Text);
          parameters.ParamByName('cishu').Value:=1;
          parameters.ParamByName('xiaofei').Value:=0.00;
          parameters.ParamByName('jibie').Value:='普通客人';
          str:=EDtime.Text; //从EDtime中取出他的年月日,去掉时间
          parameters.ParamByName('ruzhutime').Value:=strTodatetime(str);
          str:=EDbacktime.Text;
          parameters.ParamByName('likaitime').Value:=strTodatetime(str);
          //prepared:=true;
          //Sql.Add('commit');//提交事务
          execSql;
        end;//and of with
      end;//end of else
    end;//end of if EDQname<>'' then
    with DMO.ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      sql.Add('insert into dengji');
      SQL.Add('values(:dengjiID,:sfz,:leixing,:kaifang,:renshu,:yajin)');
      Parameters.ParamByName('dengjiID').Value:=strToint(Pnumber.Caption);
      Parameters.ParamByName('sfz').Value:=EDsfz.Text;
      parameters.ParamByName('leixing').Value:=CBoxLeibie.Text;
      parameters.ParamByName('kaifang').Value:=LCount.Tag;
      parameters.ParamByName('renshu').Value:=strToint(EDcount.Text);
      parameters.ParamByName('yajin').Value:=strTofloat(EDyajin.Text);
      //Sql.Add('commit');//提交事务
      execsql;
    end;
    for i:=0 to listBox1.Items.Count-1 do
    begin
      with Dmo.ADOQuery1 do
      begin
        str:=listBox1.Items.Strings[i];
        str:=copy(str,1,9);
        str:=trimright(str);
        Close;
        sql.Clear;
        sql.Add('update zhuangtai set zhuangtai=''有客''');
        sql.Add('where fangjian=:fangjian');
        parameters.ParamByName('fangjian').Value:=str;
        execsql;
      end;
    end;
    for i:=0 to listBox1.Items.Count-1 do
    begin
      with Dmo.ADOQuery1 do
      begin
        str:=listBox1.Items.Strings[i];
        str:=copy(str,1,9);
        str:=trimright(str);
        zh:=Pnumber.Caption;
        zh:=zh+'-'+str;
        xiaofei:=listbox1.Items.Strings[i];
        xiaofei:=copy(xiaofei,30,6);
        xiaofei:=trim(xiaofei);
        xiaofei:=trimright(xiaofei);
        close;
        sql.Clear;
        sql.Add('insert into zhanghao(zhanghaoID,dengjiID,fangjian,xiaofei,yifu,beizhu,zhuangtai)');
        sql.Add('values(:zh,:dengjiID,:fangjian,:xiaofei,:yifu,:beizhu,:zhuangtai)');
        parameters.ParamByName('fangjian').Value:=str;
        parameters.ParamByName('xiaofei').Value:=strTofloat(xiaofei);
        parameters.ParamByName('yifu').Value:=0.00;
        parameters.ParamByName('beizhu').Value:='';
        parameters.ParamByName('dengjiID').Value:=strToint(Pnumber.Caption);
        parameters.ParamByName('zh').Value:=zh;
        parameters.ParamByName('zhuangtai').Value:=1;
        execsql;
      end;
    end;
    //把信息写入消费明细表
    Dmo.ADOQuery1.Close;
    Dmo.ADOQuery1.SQL.Clear;
    Dmo.ADOQuery1.SQL.Add('select max(xfID) from mingxi');
    Dmo.ADOQuery1.Open;
    if Dmo.ADOQuery1.Fields.Fields[0].DisplayText='' then
       ID:='0'
    else ID:=Dmo.ADOQuery1.Fields.Fields[0].DisplayText;
    for i:=0 to listBox1.Items.Count-1 do
    begin
       ID:=intTostr(strToint(ID)+1);
       with dmo.ADOQuery1 do
       begin
         str:=listBox1.Items.Strings[i];
         str:=copy(str,1,9);
         str:=trimright(str);
         close;
         sql.Clear;
         sql.Add('insert into mingxi');
         sql.Add('values(:ID,:zhanghao,:shangpin,:mingcheng,:danwei,:danjia'
                +',:xiaofei,:beizhu,:Time,:ld,:fk)');
         parameters.ParamByName('ID').Value:=strToint(ID);
         parameters.ParamByName('zhanghao').Value:=zh;
         parameters.ParamByName('shangpin').value:=str;
         parameters.ParamByName('mingcheng').Value:=str+'房费';
         parameters.ParamByName('danwei').Value:='间';
         parameters.ParamByName('danjia').Value:=strTofloat(xiaofei);
         parameters.ParamByName('xiaofei').Value:=strTofloat(xiaofei);
         parameters.ParamByName('beizhu').Value:='  ';
         parameters.ParamByName('time').Value:=strTodatetime(EDtime.Text);
         parameters.ParamByName('ld').Value:='n';
         parameters.ParamByName('fk').Value:='n';
         execsql;
         //CLOSE;
       end;
    end;
  except//如果出错,回滚数据库
    Dmo.ADOQuery1.Close;
    Dmo.ADOQuery1.SQL.Clear;
    //Dmo.ADOQuery1.SQL.Add('rollback');
    //Dmo.ADOQuery1.ExecSQL;
    exit;
  end; //end of except
  timer1.Enabled:=true;
  Finfo.ShowModal;
  clearInfo;
end;

procedure TFCheckIn.Timer1Timer(Sender: TObject);
begin
  Finfo.Close;
  Timer1.enabled:=false;
end;

//清空列表
procedure TFCheckIn.BTCenterClick(Sender: TObject);
begin
  clearInfo;
end;

procedure TFCheckIn.EDQsfzExit(Sender: TObject);
var
  NEWsfzNumber:string;
begin
  NEWSFZnumber:=FindSFZ(EDQsfz.Text);
  if length(NEWsfzNumber)<15 then
  begin
    exit;
    EDQsfz.SetFocus;
  end;
  EDQBirthday.Text:=copy(NEWSFZnumber,7,4)+'-'+
      copy(NEWSFZnumber,11,2)+'-'+copy(NEWSFZNumber,13,2); //判断生日
  if (strToint(copy(NEWSFZnumber,17,1)) mod 2)=0 then //判断性别
      CBoxQsex.ItemIndex:=1
  else CBoxQsex.ItemIndex:=0;
  EDQaddress.Text:=address;
end;

procedure TFCheckIn.EDBumenChange(Sender: TObject);
begin
  if EDBumen.Text='客房' then
  begin
    CBoxguige.Items.Clear;
    CBoxguige.Items.Add('全部');
    CBoxguige.Items.Add('标准间');
    CBoxguige.Items.Add('单人间');
    CBoxguige.Items.Add('豪华套间');
    CBoxguige.Items.Add('普通套间');
    CBoxguige.ItemIndex:=0;
    CBoxloucheng.Items.Clear;
    CBoxloucheng.Items.Add('全部');
    CBoxloucheng.Items.Add('四楼');
    CBoxloucheng.Items.Add('五楼');
    CBoxloucheng.Items.Add('六楼');
    CBoxloucheng.ItemIndex:=0;
  end
  else if (EDbumen.Text='商务中心') or (EDbumen.Text='休闲娱乐') then
  begin
    CBoxloucheng.Items.Clear;
    CBoxloucheng.Items.Add('全部');
    CBoxloucheng.ItemIndex:=0;
    CBoxguige.Items.Clear;
    CBoxguige.Items.Add('全部');
    CBoxguige.ItemIndex:=0;
  end
  else if EDbumen.Text='餐饮' then
  begin
    CBoxloucheng.Items.Clear;
    CBoxloucheng.Items.Add('全部');
    CBoxloucheng.Items.Add('一楼');
    CBoxloucheng.Items.Add('二楼');
    CBoxloucheng.ItemIndex:=0;
    CBoxguige.Items.Clear;
    CBoxguige.Items.Add('全部');
    CBoxguige.Items.Add('10人桌');
    CBoxguige.Items.Add('8人桌');
    CBoxguige.Items.Add('4人桌');
    CBoxguige.Items.Add('包厢');
    CBoxguige.Items.Add('贵宾包厢');
    CBoxguige.ItemIndex:=0;
  end
  else if EDbumen.Text='桑拿' then
  begin
    CBoxloucheng.Items.Clear;
    CBoxloucheng.Items.Add('全部');
    CBoxloucheng.Items.Add('一楼');
    CBoxloucheng.Items.Add('二楼');
    CBoxloucheng.Items.Add('三楼');
    CBoxloucheng.ItemIndex:=0;
    CBoxguige.Items.Clear;
    CBoxguige.Items.Add('全部');
    CBoxguige.Items.Add('男包厢');
    CBoxguige.Items.Add('男普通');
    CBoxguige.Items.Add('女普通');
    CBoxguige.ItemIndex:=0;
  end;
  Readinfo;
  DisplayInfo;

end;

procedure TFCheckIn.CBoxLouchengChange(Sender: TObject);
begin
  ReadInfo;
  displayInfo;
end;

procedure TFCheckIn.CBoxGuigeChange(Sender: TObject);
begin
  readInfo;
  displayInfo;
end;

procedure TFCheckIn.FormShow(Sender: TObject);
begin
  readinfo;
  displayinfo;
  //listview1.Items.Item[0].Selected:=true;
end;

procedure TFCheckIn.ListView1DblClick(Sender: TObject);
var
  i:integer;
  info:string;
  temp:string;
  ID:string;
begin
  try
    Lcount.Tag:=Lcount.Tag+1;
    settime;
    i:=Listview1.Selected.Index;
    info:='';
    temp:=listview1.Items.Item[i].Caption;
    temp:=trimright(temp);
    info:=temp+'    |    ';
    temp:=listview1.Items.Item[i].SubItems.Strings[4];
    temp:=trimright(temp);
    info:=info+temp+'    |    ';
    temp:=listview1.Items.Item[i].SubItems.Strings[1];
    temp:=trimright(temp);
    info:=info+temp;
    EDyujia.Text:=temp;//显示预设价
    EDQyuse.Text:=temp;
    EDshijia.Text:=temp;
    EDQshiji.Text:=temp;
    ListBox1.Items.Add(info);
    Listview1.DeleteSelected;
    ListView1.SortType:=stText;
    ListView1.Refresh;
    Dmo.ADOQuery1.Close;
    Dmo.ADOQuery1.SQL.Clear;
    Dmo.ADOQuery1.SQL.Add('select max(dengjiID) from dengji');
    Dmo.ADOQuery1.Open;
    if Dmo.ADOQuery1.Fields.Fields[0].DisplayText='' then
       ID:='1000'
    else ID:=intTostr(strtoint(Dmo.ADOQuery1.Fields.Fields[0].DisplayText)+1);
    Pnumber.Caption:=ID;
    LCount.Caption:=intTostr(LCount.Tag);
    BTok.Enabled:=true;
    BTcenter.Enabled:=true;
  except
  //
  end;
end;

procedure TFCheckIn.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
    try
      EDbianhao.Text:=item.Caption;
      LBbian.Caption:=item.Caption;
      LBceng.Caption:=item.SubItems.Strings[3];
      LBgui.Caption:=item.SubItems.Strings[4];
      LBjia.Caption:=item.SubItems.Strings[1];
    except
    //
    end;
end;

procedure TFCheckIn.SpeedButton1Click(Sender: TObject);
begin
  ListView1.ViewStyle:=vsIcon;
end;

procedure TFCheckIn.SpeedButton2Click(Sender: TObject);
begin
  ListView1.ViewStyle:= vsSmallIcon;
end;

procedure TFCheckIn.SpeedButton3Click(Sender: TObject);
begin
  ListView1.ViewStyle:=vsReport;
end;
end.

⌨️ 快捷键说明

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