/// <summary> /// 检测房间在这段时间内被预定或者处于不可预定状态.不可预定状态一般为RoomStatus为D /// </summary> /// <param name="listOrderedInfo">已预定的信息</param> /// <param name="mRoom">预定的房间</param> /// <param name="dtStartTime">预抵时间</param> /// <param name="dtEndTime">预离时间</param> /// <returns>如果验证通过返回True,反之返回False</returns> public bool CheckRoomOrdered(List <OrderInfoModel> listOrderedInfo, BasRoomModel mRoom, DateTime dtStartTime, DateTime dtEndTime) { if (Cmn.CheckEOF(listOrderedInfo)) { var qOrder = listOrderedInfo.Where(c => c.RoomInfo.RoomId == mRoom.RoomId); if (qOrder.Count() > 0 && (qOrder.First().RoomInfo.Status != 'E' || (qOrder.First().CommonInfo.StartDate < dtStartTime && qOrder.First().CommonInfo.EndDate > dtStartTime) || (qOrder.First().CommonInfo.StartDate < dtEndTime && qOrder.First().CommonInfo.EndDate > dtEndTime) )) { if (!Cmn.Confirm("该房间目前处于非可用状态或者已经被预定,是否继续?")) { return(false); } } } else if (mRoom.Status != 'E') { if (!Cmn.Confirm("该房间目前处于非可用状态,是否继续?")) { return(false); } } return(true); }
/// <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; } }
/// <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); }
public void DoStayRate(StayRateModel mStayRate) { List <StayRateModel> listStayRate = bStayRate.GetStayRate(mStayRate, new ObjectControls(MCtrl.ByCreateDate)); if (Cmn.CheckEOF(listStayRate)) { listStayRate[0].StayRate = mStayRate.StayRate; bStayRate.UpdateStayRate(listStayRate[0]); } else { bStayRate.InsertStayRate(mStayRate); } }
/// <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; } }
/// <summary> /// 计算总费用 /// </summary> /// <param name="mCustomerStay">宾客信息</param> /// <param name="listConsumeInfo">费用明细</param> /// <param name="listSysParameter">系统参数</param> /// <param name="dtNow">当前时间</param> /// <param name="mJf">电话号码,入住起始结束时间</param> /// <returns></returns> public double GetTotalRates(CustomerStayModel mCustomerStay, List <ConsumeDetailModel> listConsumeInfo, List <SysParameterModel> listSysParameter, DateTime dtNow, double dPhoneRate) { DateTime dtEndDate = dtNow; double dTotal = 0.0; #region 计算商品费用 if (Cmn.CheckEOF(listConsumeInfo)) { foreach (ConsumeDetailModel mConsume in listConsumeInfo) { dTotal += mConsume.Total; } } #endregion #region 计算电话费用 if (dPhoneRate > 0 && ToParameter(listSysParameter, "PHONE_JF").Value1.Equals("Y")) { //List<JFModel> listJF = new List<JFModel>(); //listJF = GetPhoneList(mJf, dtNow); dTotal += dPhoneRate;//GetPhoneJFFromWS(listJF, mJf.CatList); } #endregion #region 计算房间费 if (mCustomerStay.RoomStayType == 'D') { double dDays = GetCustomerStayDays(mCustomerStay.CommonInfo.StartDate, dtEndDate, dtNow, RoomStayType.Day, listSysParameter); dTotal += mCustomerStay.RoomRate * dDays; } else { double dHour = GetStayHours(mCustomerStay.CommonInfo.StartDate, dtEndDate, listSysParameter); dTotal += mCustomerStay.RoomRate * dHour; } #endregion return(dTotal); }
/// <summary> /// 从WebService获取电话计费总额 /// </summary> /// <param name="mCustomerStay"></param> /// <param name="listSysParameter"></param> /// <returns></returns> public double GetPhoneJF(List <JFModel> listJf, List <PhoneCatModel> listCat) { try { double dPhoneTotal = 0.0; if (Cmn.CheckEOF(listJf)) { foreach (JFModel mjfTmp in listJf) { dPhoneTotal += GetPhoneRate(mjfTmp, listCat); } } return(dPhoneTotal); } catch (Exception err) { throw err; } }
/// <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="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> /// <param name="listLatestConsume">最新的消费列表,一定要包括之前消费的</param> /// <param name="listConsumeOld">上次消费的列表</param> public void AddConsume(List <ConsumeDetailModel> listLatestConsume, List <ConsumeDetailModel> listConsumeOld) { try { if (Cmn.CheckEOF(listLatestConsume)) { if (Cmn.CheckEOF(listConsumeOld)) { var query = listLatestConsume.Except(listConsumeOld); foreach (ConsumeDetailModel mConsume in query) { if (mConsume.ConsumeId == -1) { bConsume.InsertConsumeDetail(mConsume); } } query = listConsumeOld.Except(listLatestConsume); foreach (ConsumeDetailModel mConsume in query) { bConsume.DeleteConsumeDetail(mConsume); } } else { foreach (ConsumeDetailModel mConsume in listLatestConsume) { bConsume.InsertConsumeDetail(mConsume); } } } } catch (Exception err) { throw err; } }
/// <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> /// 根据设置信息,将值进行处理,返回符合当前需求的打印设置信息. /// </summary> /// <param name="mPrint"></param> /// <param name="parame"></param> /// <returns></returns> public PrintModel GetPrintSet(PrintModel mPrint, Object[] parame) { if (Cmn.CheckEOF(mPrint.PrintDetailList)) { foreach (PrintDetailModel mPrintDetail in mPrint.PrintDetailList) { object objValue = ""; PropertyInfo pi; if (mPrintDetail.ValueType == 'D') { if (parame != null) { foreach (Object obj in parame) { if (obj.GetType().Name == mPrintDetail.BindValue.Split('.')[0]) { pi = obj.GetType().GetProperty(mPrintDetail.BindValue.Split('.')[1]); if (pi != null) { objValue = pi.GetValue(obj, null); } objValue = objValue != null ? objValue : ""; mPrintDetail.ContentDesc = string.Format(mPrintDetail.ContentDesc, objValue); } } } } //switch (mPrintDetail.ValueType.ToString()) //{ // case "S": // break; // case "U": // break; // case "O": // foreach (Object obj in parame) // { // if (obj.GetType().Name == mPrintDetail.BindValue.Split('.')[0]) // { // pi = obj.GetType().GetProperty(mPrintDetail.BindValue.Split('.')[1]); // if (pi != null) // { // objValue = pi.GetValue(obj, null); // } // objValue = objValue != null ? objValue : ""; // mPrintDetail.ContentDesc = string.Format(mPrintDetail.ContentDesc, objValue); // } // } // //if (obj != null) // //{ // // pi = obj.GetType().GetProperty(mPrintDetail.BindValue); // // if (pi != null) // // { // // objValue = pi.GetValue(obj, null); // // } // // objValue = objValue != null ? objValue : ""; // //} // //mPrintDetail.ContentDesc = string.Format(mPrintDetail.ContentDesc, objValue); // break; // default: // break; //} } } return(mPrint); }