示例#1
0
 /// <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";
 }
示例#2
0
 /// <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;
 }
示例#3
0
        /// <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;
            }
        }
示例#4
0
        /// <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;
            }
        }
示例#5
0
 /// <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>();
     }
 }
示例#6
0
        /// <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;
        }
示例#7
0
 /// <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;
 }
示例#8
0
        /// <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;
            }
        }
示例#9
0
 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);
 }
示例#10
0
 /// <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);
 }
示例#11
0
 /// <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);
 }
示例#12
0
 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);
 }
示例#13
0
        /// <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;
            }
        }
示例#14
0
        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;
        }
示例#15
0
        /// <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;
            }
        }
示例#16
0
 /// <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);
 }
示例#17
0
 /// <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);
 }
示例#18
0
        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);
            }
        }