/// <summary> /// 绑定系统代码与描述.用于ComboBox的显示与选取. /// </summary> /// <param name="cboTarget"></param> /// <param name="sTableName"></param> /// <param name="sColumnName"></param> public void BindCodeInfo(ComboBox cboTarget, string sTableName, string sColumnName) { SysLookUpCodeInfo bSysLookupCode = new SysLookUpCodeInfo(); SysLookupCodeModel mSysLookupCode = new SysLookupCodeModel(); mSysLookupCode.TableName = sTableName; mSysLookupCode.ColumnName = sColumnName; ObjectControls oLookCode = new ObjectControls(); oLookCode.Add(MCtrl.ByColumnName); oLookCode.Add(MCtrl.ByTableName); cboTarget.DataSource = bSysLookupCode.GetSysLookUpCode(mSysLookupCode, oLookCode); cboTarget.DisplayMember = "CodeDesc"; cboTarget.ValueMember = "CodeNo"; }
/// <summary> /// 根据编号表名列名,获取对应的描述 /// </summary> /// <param name="sTableName"></param> /// <param name="sColumn"></param> /// <param name="sCodeNo"></param> /// <returns></returns> public string ToLookupCodeDesc(string sTableName, string sColumn, string sCodeNo) { SysLookupCodeModel mCode = new SysLookupCodeModel(); mCode.TableName = sTableName; mCode.ColumnName = sColumn; mCode.CodeNo = sCodeNo; ObjectControls oCtrl = new ObjectControls(); oCtrl.Add(MCtrl.ByCodeNo); oCtrl.Add(MCtrl.ByColumnName); oCtrl.Add(MCtrl.ByTableName); List<SysLookupCodeModel> listLookUpCode = bLookUpCode.GetSysLookUpCode(mCode, oCtrl); if (Cmn.CheckEOF(listLookUpCode)) { return listLookUpCode[0].CodeDesc; } return string.Empty; }
/// <summary> /// 换房逻辑,换房只能从一个已入住房间换到状态为可用的房间. /// </summary> /// <param name="mCustomerStay">入住信息</param> /// <param name="mNewRoomInfo">新房信息</param> /// <param name="dNewRoomRate">新房费用</param> /// <param name="mUserInfo">系统用户信息</param> /// <param name="listSysParameter">系统参数</param> public void ChangeRoom(CustomerStayModel mCustomerStay, BasRoomModel mNewRoomInfo,double dNewRoomRate, SysUserInfoModel mUserInfo, List<SysParameterModel> listSysParameter) { try { #region 将之前房间费用(光房间费用)加入到消费清单中. ConsumeDetailModel mConsume = new ConsumeDetailModel(); BasGoodsModel mGoods = new BasGoodsModel(); mGoods.Type = 'R'; List<BasGoodsModel> listGoods = bGoods.GetGoodsInfo(mGoods, new ObjectControls(MCtrl.ByGoodsType)); if (Cmn.CheckEOF(listGoods)) { mConsume.GoodsId = listGoods[0].GoodsId; } else { throw new Exception("未定义类型的R的商品,该类型为房间费."); } mConsume.StayId = mCustomerStay.StayId; mConsume.UnitPrice = mCustomerStay.RoomRate; RoomStayType eRst = mCustomerStay.RoomStayType == 'D' ? RoomStayType.Day : RoomStayType.Hour; DateTime dtNow = Cmn.DateBaseDate; mConsume.Number = GetCustomerStayDays(mCustomerStay.CommonInfo.StartDate, dtNow,dtNow, eRst, listSysParameter); mConsume.Total = GetTotalRates(mCustomerStay, null, listSysParameter, dtNow, 0.0); mConsume.CommonInfo = new CommonModel(); mConsume.CommonInfo.CreateDate = mCustomerStay.CommonInfo.StartDate; mConsume.CommonInfo.CreateUserId = mUserInfo.UserId; mConsume.CommonInfo.UpdateUserId = mUserInfo.UserId; bConsume.InsertConsumeDetail(mConsume); #endregion #region 是否团队房间 if (mCustomerStay.MainRoomId == mCustomerStay.RoomId) { if (Cmn.Confirm(string.Format("{0}为主房间,变更后{1}将成为主房间,是否继续?", mCustomerStay.RoomInfo.RoomNo, mNewRoomInfo.RoomNo))) { #region 将团队房间的MainRoomId变为新ID List<BasRoomModel> listTeamRoom = GetTeamRoomListByRoomId(mCustomerStay.RoomInfo, 'I'); if (Cmn.CheckEOF(listTeamRoom)) { ObjectControls oCtrl = new ObjectControls(); oCtrl.Add(MCtrl.SetMainRoomId); foreach (BasRoomModel mRoom in listTeamRoom) { CustomerStayModel mCs = new CustomerStayModel(); mCs.RoomId = mRoom.RoomId; mCs.Status = 'I'; ObjectControls oc = new ObjectControls(); oc.Add(MCtrl.ByStayStatus); oc.Add(MCtrl.ByRoomId); mCs = bCustomerStay.GetCustomerStayInfo(mCs, oc); if (mCs != null) { mCs.MainRoomId = mNewRoomInfo.RoomId; bCustomerStay.UpdateCustomerStay(mCs, oCtrl); } } } #endregion } } #endregion #region 将原来房间置为清理,将新房间设置为入住 ObjectControls oCtrlMain = new ObjectControls(); oCtrlMain.Add(MCtrl.SetRoomId); oCtrlMain.Add(MCtrl.SetStartDate); oCtrlMain.Add(MCtrl.SetHours); oCtrlMain.Add(MCtrl.SetRoomRate); mCustomerStay.RoomId = mNewRoomInfo.RoomId; mCustomerStay.CommonInfo.StartDate = Cmn.DateBaseDate; double dDays = GetCustomerStayDays(mCustomerStay.CommonInfo.StartDate, mCustomerStay.CommonInfo.EndDate,mCustomerStay.CommonInfo.StartDate, eRst, listSysParameter); mCustomerStay.Hours = eRst == RoomStayType.Day ? Convert.ToInt32(dDays * 24) : Convert.ToInt32(dDays); mCustomerStay.RoomRate = dNewRoomRate; bCustomerStay.UpdateCustomerStay(mCustomerStay, oCtrlMain); mNewRoomInfo.Status = mCustomerStay.RoomInfo.Status; UpdateRoomStatusByRoomId(mNewRoomInfo, mUserInfo); mCustomerStay.RoomInfo.Status = 'C'; UpdateRoomStatusByRoomId(mCustomerStay.RoomInfo, mUserInfo); #endregion } catch (Exception err) { throw err; } }
/// <summary> /// 开房以及修改房间信息逻辑.支持房间多人以及团体开房.支持房间人数变更以及宾客信息变更. /// </summary> /// <param name="listCustomerStayInfo"></param> /// <param name="listCustomerInfo"></param> /// <param name="eRmType"></param> /// <returns></returns> public bool OpendOrUpdateRoom(List<CustomerStayModel> listCustomerStayInfo, List<CustomerModel> listCustomerInfo, RoomLogicType eRmType) { try { if (listCustomerStayInfo[0].RoomStayType == 'D' && listCustomerStayInfo[0].Hours == 0) { throw new Exception("非钟点房,预住天数不能为零."); } if (eRmType == RoomLogicType.OpenRoom) { #region 开单 //如团体开房,则每个房间新增一个StayId foreach (CustomerStayModel mCustomerStay in listCustomerStayInfo) { int nStayId = bCustomerStay.InsertCustomerStay(mCustomerStay); BasRoomModel mRoom = new BasRoomModel(); mRoom.RoomId = mCustomerStay.RoomId; mRoom.Status = mCustomerStay.RoomInfo.Status; mRoom.CommonInfo = mCustomerStay.CommonInfo; UpdateRoomStatusByRoomId(mRoom, new SysUserInfoModel(mCustomerStay.CommonInfo.UpdateUserId)); //每个房间可能多个入住人员 foreach (CustomerModel mCustomer in listCustomerInfo) { //检查宾客信息是否存在,存在则更新较新的信息.姓名和证件号不更新 List<CustomerModel> listCustomerOld = GetExistCustomerInfo(mCustomer); int nCustomerId = 0; if (Cmn.CheckEOF(listCustomerOld)) { UpdateExsitCustomerInfo(mCustomer, listCustomerOld[0]); nCustomerId = listCustomerOld[0].CustomerId; } else { nCustomerId = bCustomer.InsertCustomer(mCustomer); } CustomerStayHisModel mHis = new CustomerStayHisModel(); mHis.StayId = nStayId; mHis.CustomerId = nCustomerId; mHis.StayType = mCustomer.CustomerStayHisInfo.StayType; mHis.HisStatus = 'E'; mHis.CommonInfo = new CommonModel(); mHis.CommonInfo.StartDate = mCustomerStay.CommonInfo.StartDate; mHis.CommonInfo.EndDate = mCustomerStay.CommonInfo.EndDate; mHis.CommonInfo.CreateDate = mCustomerStay.CommonInfo.CreateDate; mHis.CommonInfo.CreateUserId = mCustomerStay.CommonInfo.CreateUserId; bCustomerStay.InsertCustomerStayHis(mHis); } } #endregion } else { #region 修改房间信息 foreach (CustomerStayModel mCustomerStay in listCustomerStayInfo) { ObjectControls oCtrl = new ObjectControls(); oCtrl.Add(MCtrl.SetDeposit); oCtrl.Add(MCtrl.SetMainRoomId); oCtrl.Add(MCtrl.SetNotice); oCtrl.Add(MCtrl.SetPayType); oCtrl.Add(MCtrl.SetRoomId); oCtrl.Add(MCtrl.SetRoomRate); oCtrl.Add(MCtrl.SetCustomerStayStatus); oCtrl.Add(MCtrl.SetRoomStayType); oCtrl.Add(MCtrl.SetEndDate); oCtrl.Add(MCtrl.SetHours); //修改入住信息 bCustomerStay.UpdateCustomerStay(mCustomerStay, oCtrl); foreach (CustomerModel mCustomer in listCustomerInfo) { //检查宾客信息是否存在,存在则更新较新的信息.姓名和证件号不更新 List<CustomerModel> listCustomerOld = GetExistCustomerInfo(mCustomer); int nCustomerId = 0; if (Cmn.CheckEOF(listCustomerOld)) { mCustomer.CommonInfo.UpdateUserId = mCustomerStay.CommonInfo.UpdateUserId; UpdateExsitCustomerInfo(mCustomer, listCustomerOld[0]); nCustomerId = listCustomerOld[0].CustomerId; } else { nCustomerId = bCustomer.InsertCustomer(mCustomer); } CustomerStayHisModel mHis = new CustomerStayHisModel(); mHis.StayId = mCustomerStay.StayId; mHis.CustomerId = nCustomerId; oCtrl.Reset(); oCtrl.Add(MCtrl.ByStayId); oCtrl.Add(MCtrl.ByCustomerId); List<CustomerStayHisModel> listStayHis = bCustomerStay.GetStayHis(mHis, oCtrl); if (Cmn.CheckEOF(listStayHis)) { mHis.HisId = listStayHis[0].HisId; mHis.HisStatus = mCustomer.CustomerStayHisInfo.HisStatus; mHis.StayType = mCustomer.CustomerStayHisInfo.StayType; mHis.CommonInfo = new CommonModel(); mHis.CommonInfo.UpdateUserId = mCustomerStay.CommonInfo.UpdateUserId; oCtrl.Reset(); oCtrl.Add(MCtrl.SetHisStatus); oCtrl.Add(MCtrl.SetHisType); //如果用户选择将房间内某一宾客离店,则该宾客的离店时间为现在.开始时间不变 if (mHis.HisStatus == 'O') { mHis.CommonInfo.EndDate = Cmn.DateBaseDate; oCtrl.Add(MCtrl.SetEndDate); } bCustomerStay.UpdateStayHis(mHis, oCtrl); } else { mHis.StayType = mCustomer.CustomerStayHisInfo.StayType; mHis.HisStatus = mCustomer.CustomerStayHisInfo.HisStatus; mHis.CommonInfo = new CommonModel(); mHis.CommonInfo.CreateUserId = mCustomerStay.CommonInfo.UpdateUserId; mHis.CommonInfo.UpdateUserId = mCustomerStay.CommonInfo.UpdateUserId; //如宾客为新增加到该房间内的.则他的入住时间从现在开始,到该房间的预住结束时间为止. mHis.CommonInfo.StartDate = Cmn.DateBaseDate; mHis.CommonInfo.EndDate = mCustomerStay.CommonInfo.EndDate; bCustomerStay.InsertCustomerStayHis(mHis); } } } #endregion } return true; } catch (Exception err) { throw err; } }
/// <summary> /// 根据一个RoomId获取团队所有房间 /// </summary> /// <param name="mRoom"></param> /// <returns></returns> public List<BasRoomModel> GetTeamRoomListByRoomId(BasRoomModel mRoom,char cStayStatus) { CustomerStayModel mCustomerStay = new CustomerStayModel(); mCustomerStay.RoomId = mRoom.RoomId; mCustomerStay.Status = cStayStatus; ObjectControls oCtrl = new ObjectControls(); oCtrl.Add(MCtrl.ByStayStatus); oCtrl.Add(MCtrl.ByRoomId); CustomerStayModel mC = bCustomerStay.GetCustomerStayInfo(mCustomerStay, oCtrl); if (mC.MainRoomId > 0) { oCtrl.Reset(); oCtrl.Add(MCtrl.ByStayStatus); oCtrl.Add(MCtrl.ByMainRoomId); return bRoom.GetTeamRoomList(mC, oCtrl); } else { return new List<BasRoomModel>(); } }
/// <summary> /// 获取在宾客信息清单 /// </summary> /// <param name="listRoomInfo"></param> /// <param name="cStayStatus">该入住单是否在住</param> /// <param name="sStayType">宾客类型,主客Or从客</param> /// <param name="HisStayStatus">宾客是否退房</param> /// <param name="IsCountConsume">是否统计消费</param> /// <returns></returns> public List<CustomerStayModel> GetStayInRoomInfo(List<BasRoomModel> listRoomInfo, char cStayStatus,string sStayType, bool IsCountConsume) { List<CustomerStayModel> listCustomerStayInfo = new List<CustomerStayModel>(); CustomerStayModel mStayInfo = new CustomerStayModel(); ObjectControls oCtrl = new ObjectControls(); foreach (BasRoomModel mRoom in listRoomInfo) { mStayInfo.RoomInfo.RoomIdGroup += Cmn.MakeGroup(mRoom.RoomId.ToString()); } mStayInfo.RoomInfo.RoomIdGroup = Cmn.RemoveLastDou(mStayInfo.RoomInfo.RoomIdGroup); mStayInfo.Status = cStayStatus; mStayInfo.CustomerList = new List<CustomerModel>(); CustomerModel mc = new CustomerModel(); mc.CustomerStayHisInfo = new CustomerStayHisModel(); if (!string.IsNullOrEmpty(sStayType)) { mc.CustomerStayHisInfo.StayType = Cmn.ToChar(sStayType); oCtrl.Add(MCtrl.ByStayType); } mc.CustomerStayHisInfo.HisStatus = cStayStatus == 'I' ? 'E' : 'O'; mStayInfo.CustomerList.Add(mc); if (Cmn.CheckEOF(listRoomInfo)) { oCtrl.Add(MCtrl.ByRoomIdGroup); } oCtrl.Add(MCtrl.ByStayStatus); oCtrl.Add(MCtrl.ByHisStatus); listCustomerStayInfo = bCustomerStay.GetCustomerStayList(mStayInfo, oCtrl); if (Cmn.CheckEOF(listCustomerStayInfo) && IsCountConsume) { foreach (CustomerStayModel mCustomerStay in listCustomerStayInfo) { List<ConsumeDetailModel> listGetConsumeDetail = new List<ConsumeDetailModel>(); ConsumeDetailModel mConsume = new ConsumeDetailModel(); mConsume.StayId = mCustomerStay.StayId; oCtrl.Reset(); oCtrl.Add(MCtrl.ByStayId); listGetConsumeDetail = bConsume.GetConsumeList(mConsume, oCtrl); if (Cmn.CheckEOF(listGetConsumeDetail)) { mCustomerStay.ConSumeDetailList = listGetConsumeDetail; } } } return listCustomerStayInfo; }
/// <summary> /// 获取宾客入住信息,消费明细 /// </summary> /// <param name="mRoom">房间信息</param> /// <param name="cStayStatus">入住状态 I In / O off</param> /// <param name="sStayType">入住类型,主客M从客S,如包含主从则为""</param> /// <returns></returns> public CustomerStayModel GetStayInRoomInfo(BasRoomModel mRoom, char cStayStatus, string sStayType) { CustomerStayModel mStayInfo = new CustomerStayModel(); ObjectControls oCtrl = new ObjectControls(); mStayInfo.RoomId = mRoom.RoomId; mStayInfo.Status = cStayStatus; mStayInfo.CustomerList = new List<CustomerModel>(); CustomerModel mc = new CustomerModel(); mc.CustomerStayHisInfo = new CustomerStayHisModel(); if (!string.IsNullOrEmpty(sStayType)) { mc.CustomerStayHisInfo.StayType = Cmn.ToChar(sStayType); oCtrl.Add(MCtrl.ByStayType); } mc.CustomerStayHisInfo.HisStatus = cStayStatus == 'I' ? 'E' : 'O'; mStayInfo.CustomerList.Add(mc); oCtrl.Add(MCtrl.ByRoomId); oCtrl.Add(MCtrl.ByStayStatus); oCtrl.Add(MCtrl.ByHisStatus); CustomerStayModel mCustomerStay = bCustomerStay.GetCustomerStayInfo(mStayInfo, oCtrl); if (mCustomerStay != null) { List<ConsumeDetailModel> listGetConsumeDetail = new List<ConsumeDetailModel>(); ConsumeDetailModel mConsume = new ConsumeDetailModel(); mConsume.StayId = mCustomerStay.StayId; oCtrl.Reset(); oCtrl.Add(MCtrl.ByStayId); listGetConsumeDetail = bConsume.GetConsumeList(mConsume, oCtrl); if (Cmn.CheckEOF(listGetConsumeDetail)) { mCustomerStay.ConSumeDetailList = listGetConsumeDetail; } } return mCustomerStay; }
/// <summary> /// 获取交接班信息 /// </summary> /// <returns></returns> public HandOverModel GetHandOverInfo() { try { HandOverInfo bHandOver = new HandOverInfo(); int nHandOverId = bHandOver.GetHandOverLatestId(); ObjectControls oCtrl = new ObjectControls(); List<HandOverModel> listHandOver = new List<HandOverModel>(); HandOverModel mHandOver = new HandOverModel(); CustomerStayModel mCustomerStay = new CustomerStayModel(); if (nHandOverId > 0) { mHandOver.HandOverId = nHandOverId; listHandOver = bHandOver.GetHandOverList(mHandOver, new ObjectControls(MCtrl.ByHandOverId)); if (Cmn.CheckEOF(listHandOver)) { mCustomerStay.CommonInfo.CreateDate = listHandOver[0].CommonInfo.EndDate; mHandOver.CommonInfo.StartDate = listHandOver[0].CommonInfo.EndDate; mHandOver.FromLastMoney = listHandOver[0].ToNextMoney; } } else { mCustomerStay.CommonInfo.CreateDate = DateTime.Parse("2005-01-01"); mHandOver.CommonInfo.StartDate = mCustomerStay.CommonInfo.CreateDate; mHandOver.FromLastMoney = 0.0; } oCtrl.Add(MCtrl.ByCreateDate); mCustomerStay.Status = 'I'; oCtrl.Add(MCtrl.ByStayStatus); mHandOver.CurrentDeposit = bCustomerStay.GetHandOverStayInfo(mCustomerStay, oCtrl).CurrentDeposit; mCustomerStay.Status = 'O'; mHandOver.CurrentPaidMoney = bCustomerStay.GetHandOverStayInfo(mCustomerStay, oCtrl).CurrentPaidMoney; mHandOver.CommonInfo.EndDate = Cmn.DateBaseDate; mHandOver.HandInMoney = 0; mHandOver.HandOverMoney = mHandOver.FromLastMoney + mHandOver.CurrentDeposit + mHandOver.CurrentPaidMoney; mHandOver.ToNextMoney = mHandOver.HandOverMoney; return mHandOver; } catch (Exception err) { throw err; } }
public List<JFModel> GetPhoneList(JFModel mJf, DateTime dtmNow) { ObjectControls oCtrl = new ObjectControls(); oCtrl.Add(MCtrl.ByPhone); oCtrl.Add(MCtrl.ByStartDate); mJf.PhoneNoGroup = Cmn.RemoveLastDou(mJf.PhoneNoGroup); return bPhone.GetPhoneDetail(mJf, oCtrl, dtmNow); }
/// <summary> /// 仅获取宾客入住信息 /// </summary> /// <param name="mRoom"></param> /// <param name="cStayStatus"></param> /// <returns></returns> public CustomerStayModel GetCustomerStayInfoByRoom(BasRoomModel mRoom, char cStayStatus) { CustomerStayModel mStayInfo = new CustomerStayModel(); ObjectControls oCtrl = new ObjectControls(); mStayInfo.RoomId = mRoom.RoomId; mStayInfo.Status = cStayStatus; oCtrl.Add(MCtrl.ByRoomId); oCtrl.Add(MCtrl.ByStayStatus); return bCustomerStay.GetCustomerStayInfo(mStayInfo, oCtrl); }
/// <summary> /// By用户证件以及姓名获取用户信息 /// </summary> /// <param name="mCustomer"></param> /// <returns></returns> public List<CustomerModel> GetExistCustomerInfo(CustomerModel mCustomer) { ObjectControls oCtrl = new ObjectControls(); if (mCustomer.CustomerId > 0) { oCtrl.Add(MCtrl.ByCustomerId); } else { oCtrl.Add(MCtrl.ByIdCard); oCtrl.Add(MCtrl.ByName); } return bCustomer.GetCustomerInfo(mCustomer, oCtrl); }
public List<SysLookupCodeModel> GetCodeDesc(string sTable, string sColumn) { SysLookupCodeModel mSysLookupCode = new SysLookupCodeModel(); mSysLookupCode.TableName = sTable; mSysLookupCode.ColumnName = sColumn; ObjectControls oLookCode = new ObjectControls(); oLookCode.Add(MCtrl.ByColumnName); oLookCode.Add(MCtrl.ByTableName); return bLookUpCode.GetSysLookUpCode(mSysLookupCode, oLookCode); }
/// <summary> /// 退房逻辑 /// </summary> /// <param name="listCustomerStayInfo"></param> /// <returns></returns> public bool CheckOutRoom(List<CustomerStayModel> listCustomerStayInfo) { try { ObjectControls oCtrl=new ObjectControls (); foreach (CustomerStayModel mCustomerStay in listCustomerStayInfo) { #region 修改房间状态 mCustomerStay.RoomInfo.Status = 'C'; UpdateRoomStatusByRoomId(mCustomerStay.RoomInfo, new SysUserInfoModel(mCustomerStay.CommonInfo.UpdateUserId)); #endregion #region 更新入住信息 oCtrl.Reset(); oCtrl.Add(MCtrl.SetCustomerStayStatus); oCtrl.Add(MCtrl.SetDeposit); oCtrl.Add(MCtrl.SetEndDate); oCtrl.Add(MCtrl.SetHours); oCtrl.Add(MCtrl.SetNotice); oCtrl.Add(MCtrl.SetPayType); oCtrl.Add(MCtrl.SetPaidMoney); oCtrl.Add(MCtrl.SetStayNo); oCtrl.Add(MCtrl.SetTotal); bCustomerStay.UpdateCustomerStay(mCustomerStay,oCtrl); //退房时将stayhis的入住状态改为离店模式,以区分每个宾客的状态。有时候宾馆房间某一宾客会提前离开,所以需要设置每个宾客的状态。 //如提前离开需修改宾客登记,右击宾客详细列表,在菜单中进行离店操作。 //如要遇到宾客信息登记错误,需要删除,则启用DELETE键删除即可。 if (Cmn.CheckEOF(mCustomerStay.CustomerList)) { foreach (CustomerModel mcustomer in mCustomerStay.CustomerList) { CustomerStayHisModel mcshis = mcustomer.CustomerStayHisInfo; //整个房间退房时,将HIS状态不为O的人改为O:OFF 离店.离店时间为现在.如果该宾客以及事先离店,则不更新. if (mcshis.HisStatus != 'O') { oCtrl.Reset(); mcshis.HisStatus = 'O'; mcshis.CommonInfo.EndDate = Cmn.DateBaseDate; mcshis.CommonInfo.UpdateUserId = mCustomerStay.CommonInfo.UpdateUserId;//更新人员为操作员ID oCtrl.Add(MCtrl.SetEndDate); oCtrl.Add(MCtrl.SetHisStatus); bCustomerStay.UpdateStayHis(mcshis, oCtrl); } } } #endregion } return true; } catch (Exception err) { throw err; } }
private void LoadInfo() { BindCodeInfo(cboPayType, "CUSTOMER_STAY_INFO", "PAY_TYPE"); BindCodeInfo(cboCustomerType, "CUSTOMER_STAY_HIS", "STAY_TYPE"); cboSex.SelectedIndex = 0; lblRoomInfo.Text = mRoomInfo.RoomNo; lblRoomType.Text = mRoomInfo.RoomTypeDesc; lblRoomRate.Text = mRoomInfo.RoomRate + "元"; if (!mRoomInfo.Status.Equals('E')) { CustomerStayModel mCustomerStayInfo = new CustomerStayModel(); mCustomerStayInfo.RoomId = mRoomInfo.RoomId; mCustomerStayInfo.Status = 'I'; mCustomerStayInfo.CustomerList = new List<CustomerModel>(); CustomerModel mc = new CustomerModel(); mc.CustomerStayHisInfo = new CustomerStayHisModel(); mc.CustomerStayHisInfo.HisStatus = 'E'; mCustomerStayInfo.CustomerList.Add(mc); oCtrl = new ObjectControls(); oCtrl.Add(MCtrl.ByRoomId); oCtrl.Add(MCtrl.ByStayStatus); oCtrl.Add(MCtrl.ByHisStatus); CustomerStayModel mCustomerStay =bCustomer.GetCustomerStayInfo(mCustomerStayInfo, oCtrl); if (mCustomerStay != null) { this.Text = "修改登记"; listCustomerStay.Add(mCustomerStay); txtDay.Text = (mCustomerStay.Hours / 24).ToString(); //hml.GetCustomerStayDays(mCustomerStay.CommonInfo.StartDate, mCustomerStay.CommonInfo.EndDate, listSysParameter).ToString("0.0"); //listSysParameter.Where(c => c.ParamNo == "DEFAULT_STAY_DAYS").Select(c => c.Value1).First(); txtCurrentDeposit.Text = mCustomerStay.Deposit.ToString(); txtCurrentRate.Text = mCustomerStay.RoomRate.ToString(); txtDiskonRate.Enabled = false; //txtDiskonRate.Text = (mCustomerStay.RoomRate / mCustomerStay.RoomInfo.RoomRate).ToString("0.00"); txtCustomerNumber.Text = mCustomerStay.CustomerList.Count.ToString(); txtNotice.Text = mCustomerStay.Notice; chkHourRoom.Checked = mCustomerStay.RoomStayType == 'H' ? true : false; cboPayType.SelectedIndex = GetComboxIndexByKey(cboPayType, mCustomerStay.PayType); if (cmn.FileExsit(cmn.GetImgFilePath(mCustomerStay.CustomerList[0].Picture))) { pbxUserImg.Image = Image.FromFile(cmn.GetImgFilePath(mCustomerStay.CustomerList[0].Picture)); } listCustomer = mCustomerStay.CustomerList; BindCustomer(listCustomer); return; } } this.Text = "散客开单"; List<OrderInfoModel> listOrder = hml.GetRoomOrder(mRoomInfo); if (cmn.CheckEOF(listOrder)) { FormSelectOrder frmSelectOrder = new FormSelectOrder(listOrder); if (frmSelectOrder.ShowDialog() == DialogResult.OK) { mOrderInfo = frmSelectOrder.mOrderInfo; if (mOrderInfo != null) { txtCustomerName.Text = mOrderInfo.Name; txtPhone.Text = mOrderInfo.Phone; txtIDCard.Text = mOrderInfo.IdCardNo; txtCurrentRate.Text = mOrderInfo.OrderRoomRate.ToString(); txtNotice.Text = mOrderInfo.Notice; btnAddCustomer_Click(null, new EventArgs()); } } } txtDay.Text = hml.ToParameter(listSysParameter, "DEFAULT_STAY_DAYS").Value1; //listSysParameter.Where(c => c.ParamNo == "DEFAULT_STAY_DAYS").Select(c => c.Value1).First(); txtCurrentDeposit.Text = hml.ToParameter(listSysParameter, "DEFAULT_DEPOSIT").Value1; txtCurrentRate.Text = txtCurrentRate.Text.Equals("") ? mRoomInfo.RoomRate.ToString() : txtCurrentRate.Text; txtDiskonRate.Text = hml.ToParameter(listSysParameter, "DEFAULT_DISKON").Value1; txtCustomerNumber.Text = hml.ToParameter(listSysParameter, "DEFAULT_CUSTOMER_NUMBER").Value1; }
/// <summary> /// 更新团体房间的MainId,用于将团体房变为散客房 /// </summary> /// <param name="mCustomerStay"></param> /// <returns></returns> public bool UpdateCustomerStayMainRoomId(CustomerStayModel mCustomerStay) { try { ObjectControls oCtrl = new ObjectControls(); oCtrl.Add(MCtrl.ByStayStatus); oCtrl.Add(MCtrl.ByMainRoomId); //获取该房所在的团体所有房间 List<BasRoomModel> listTeamRoom = bRoom.GetTeamRoomList(mCustomerStay, oCtrl); //是否有其他房间可以作为主房间 var query = listTeamRoom.Where(c => c.RoomId != mCustomerStay.RoomId); if (query.Count() > 0) { if (Cmn.Confirm(string.Format("房间{0}是主房间,变为散客房之后,团队的主房间将变为{1},继续?", mCustomerStay.RoomInfo.RoomNo, query.First().RoomNo))) { List<CustomerStayModel> listTeamCustomer = new List<CustomerStayModel>(); listTeamCustomer = GetStayInRoomInfo(listTeamRoom, 'I',"M", false); int nMainRoomId = query.First().RoomId; foreach (CustomerStayModel mcs in listTeamCustomer) { if (mcs.RoomId == mCustomerStay.RoomId) { mcs.MainRoomId = -1; ; } else { mcs.MainRoomId = nMainRoomId; } bCustomerStay.UpdateCustomerStay(mcs, new ObjectControls(MCtrl.SetMainRoomId)); } return true; } } else { throw new Exception("无主房间可供接替,无法变更为散客房!"); } return false; } catch (Exception err) { throw err; } }
/// <summary> /// 获取房间有效的预定 /// </summary> /// <param name="mRoom"></param> /// <returns></returns> public List<OrderInfoModel> GetRoomOrder(BasRoomModel mRoom) { OrderInfoModel mOrder = new OrderInfoModel(); mOrder.RoomInfo = mRoom; mOrder.KeepDate = Cmn.DateBaseDate; mOrder.Status = 'E'; ObjectControls oCtrl = new ObjectControls(); oCtrl.Reset(); oCtrl.Add(MCtrl.ByRoomId); oCtrl.Add(MCtrl.ByKeepDateEnable); oCtrl.Add(MCtrl.ByOrderStatus); return bOrder.GetOrderInfo(mOrder, oCtrl); }
/// <summary> /// 更新用户信息 /// </summary> /// <param name="mCustomerNew">新的信息</param> /// <param name="mCustomerOld">以前旧信息</param> public void UpdateExsitCustomerInfo(CustomerModel mCustomerNew,CustomerModel mCustomerOld) { ObjectControls oCtrl = new ObjectControls(); if (!string.IsNullOrEmpty(mCustomerNew.Name)) { mCustomerOld.Name = mCustomerNew.Name; oCtrl.Add(MCtrl.SetName); } if (!string.IsNullOrEmpty(mCustomerNew.IdCardNo)) { mCustomerOld.IdCardNo = mCustomerNew.IdCardNo; oCtrl.Add(MCtrl.SetIdCard); } if (!string.IsNullOrEmpty(mCustomerNew.Address)) { mCustomerOld.Address = mCustomerNew.Address; oCtrl.Add(MCtrl.SetAddress); } if (mCustomerNew.Birthday != DateTime.MinValue) { mCustomerOld.Birthday = mCustomerNew.Birthday; oCtrl.Add(MCtrl.SetBirthday); } if (!string.IsNullOrEmpty(mCustomerNew.Company)) { mCustomerOld.Company = mCustomerNew.Company; oCtrl.Add(MCtrl.SetCompanyName); } if (!string.IsNullOrEmpty(mCustomerNew.Nation)) { mCustomerOld.Nation = mCustomerNew.Nation; oCtrl.Add(MCtrl.SetNation); } if (!string.IsNullOrEmpty(mCustomerNew.Phone)) { mCustomerOld.Phone = mCustomerNew.Phone; oCtrl.Add(MCtrl.SetPhone); } if (!string.IsNullOrEmpty(mCustomerNew.Picture)) { mCustomerOld.Picture = mCustomerNew.Picture; oCtrl.Add(MCtrl.SetPicture); } if (!string.IsNullOrEmpty(mCustomerNew.Sex)) { mCustomerOld.Sex = mCustomerNew.Sex; oCtrl.Add(MCtrl.SetSex); } if (!mCustomerNew.Type.Equals(mCustomerOld.Type)) { mCustomerOld.Type = mCustomerNew.Type; oCtrl.Add(MCtrl.SetCustomerType); } mCustomerNew.CustomerId = mCustomerOld.CustomerId; mCustomerOld.CommonInfo.UpdateUserId = mCustomerNew.CommonInfo.UpdateUserId; bCustomer.UpdateCustomer(mCustomerOld, oCtrl); }
private void pbtnSearch_Click(object sender, EventArgs e) { try { CustomerStayModel mCustomerStay = new CustomerStayModel(); mCustomerStay.CommonInfo.StartDate = GetDateTimePickValue(dtpStart, cboHourS); mCustomerStay.CommonInfo.EndDate = GetDateTimePickValue(dtpEnd, cboHourE); mCustomerStay.Status = 'O'; ObjectControls oCtrl = new ObjectControls(); mCustomerStay.CustomerList = new List<CustomerModel>(); CustomerModel mc = new CustomerModel(); mc.CustomerStayHisInfo = new CustomerStayHisModel(); //mc.CustomerStayHisInfo.StayType = 'M'; mc.CustomerStayHisInfo.HisStatus = 'O';//取离店宾客入住历史记录. mCustomerStay.CustomerList.Add(mc); oCtrl.Add(MCtrl.ByStayStatus); oCtrl.Add(MCtrl.ByHisStatus); oCtrl.Add(MCtrl.ByUpdateDate); listCustomerStay = bCustomerStay.GetCustomerStayList(mCustomerStay, oCtrl); BindDgv(listCustomerStay); } catch (Exception err) { cmn.Show(err.Message); } }