Exemple #1
0
        /// <summary>
        /// online
        /// </summary>
        /// <param name="order"></param>
        private List <AccomodationPolicy> GetRoomPolicy(DateTime checkin, DateTime checkout, List <AccomodationDiscountPolicy> allDiscountRate)
        {
            StringBuilder sql = new StringBuilder();

            sql.AppendLine("SELECT ");
            sql.AppendLine(" P.RoomPolicyID, P.StartDate, P.EndDate, P.RoomType,");
            sql.AppendLine(" P.WeekDays, P.BasicRate as BasicRateID, P.DiscountRate, R.BasicRate");
            sql.AppendLine(" FROM RoomPolicy P WITH(NOLOCK)");
            sql.AppendLine(" left join RoomRate R WITH(NOLOCK) on P.BasicRate = R.RoomRateID and R.IsDelete = 0");
            sql.AppendLine(" WHERE P.IsDelete = 0");
            sql.AppendLine(" and ((P.StartDate <= @CheckinDate and P.EndDate>=@CheckinDate)");
            sql.AppendLine(" or (P.StartDate <= @CheckoutDate and P.EndDate>=@CheckoutDate))");

            SqlParameter[] paras = new SqlParameter[2];
            paras[0] = new SqlParameter("@CheckinDate", checkin);
            paras[1] = new SqlParameter("@CheckoutDate", checkout);

            SqlAccess mySqlAccess = new SqlAccess();
            DataSet   ds          = mySqlAccess.ExecuteAdapter(sql.ToString(), paras);

            List <AccomodationPolicy> accomodationPolicys = new List <AccomodationPolicy>();

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow rw in ds.Tables[0].Rows)
                {
                    AccomodationPolicy policy = new AccomodationPolicy();
                    policy.RoomType  = Convert.ToInt32(rw["RoomType"]);
                    policy.StartDate = Convert.ToDateTime(rw["StartDate"]);
                    policy.EndDate   = Convert.ToDateTime(rw["EndDate"]);
                    policy.WeekDays  = rw["WeekDays"].ToString();

                    policy.BasicRateID = Convert.ToInt32(rw["BasicRateID"]);
                    policy.BasicRate   = Convert.ToDouble(rw["BasicRate"]);

                    policy.DiscountPolicy = new List <AccomodationDiscountPolicy>();

                    List <AccomodationDiscountPolicy> lst = new List <AccomodationDiscountPolicy>();
                    if (!string.IsNullOrEmpty(rw["DiscountRate"].ToString()))
                    {
                        string[] ratesID = rw["DiscountRate"].ToString().Split(',');
                        foreach (string rateID in ratesID)
                        {
                            AccomodationDiscountPolicy discountPolicy = allDiscountRate.Find(m => m.RoomRateID.ToString() == rateID);
                            if (discountPolicy != null)
                            {
                                lst.Add(discountPolicy);
                            }
                        }

                        var a = from t in lst orderby t.DiscountDays descending select t;
                        policy.DiscountPolicy = a.ToList <AccomodationDiscountPolicy>();
                    }
                    accomodationPolicys.Add(policy);
                }
            }

            return(accomodationPolicys);
        }
Exemple #2
0
        private List <AccomodationPolicy> CalcBasicRate(List <AccomodationPolicy> roomPolicy, string weekDays, int roomType)
        {
            AccomodationPolicy policy = roomPolicy.Find(m => m.WeekDays.Contains(weekDays.ToString()) && m.RoomType == roomType);

            policy.StayDays = policy.StayDays + 1;
            policy.Price    = policy.StayDays * policy.BasicRate;
            //policy.SubTotal = policy.Price;

            return(roomPolicy);
        }