Esempio n. 1
0
        public void Delete(etblPropertyPromotionMap prop)
        {
            try
            {
                string tmpStatus = prop.cStatus;
                if (prop.cStatus == "A")
                {
                    prop.cStatus = "I";
                }
                else if (prop.cStatus == "I")
                {
                    prop.cStatus = "A";
                }

                int result = BL_tblPropertyPromotionMap.DeleteRecord(prop);
                if (result == 1)
                {
                    if (tmpStatus == "A")
                    {
                        TempData["msg"] = "Record Disabled Successfully";
                    }
                    else if (tmpStatus == "I")
                    {
                        TempData["msg"] = "Record Enabled Successfully";
                    }
                }
            }
            catch (Exception) { throw; }
        }
        //Delete a record
        public static int DeleteRecord(etblPropertyPromotionMap eobj)
        {
            int retval = 0;

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                try
                {
                    using (OneFineRateEntities db1 = new OneFineRateEntities())
                    {
                        var PP = db1.tblPropertyPromotionMaps.Where(a => a.iID == eobj.iID).ToList();
                        if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies))
                        {
                            eobj.bParentActive = (bool)PP[0].bParentActive;
                        }
                        eobj.iPromoId = PP[0].iPromoId;
                    }

                    OneFineRate.tblPropertyPromotionMap obj = (OneFineRate.tblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblPropertyPromotionMap());
                    db.tblPropertyPromotionMaps.Attach(obj);
                    db.Entry(obj).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                    retval = 1;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(retval);
        }
Esempio n. 3
0
        public ActionResult OFR()
        {
            int id = 0;

            if (Session["PropId"] != null)
            {
                id = Convert.ToInt32(Session["PropId"].ToString());
            }
            etblPropertyPromotionMap obj = new etblPropertyPromotionMap();

            obj.iPropId            = id;
            Session["Entrytype"]   = "N";
            Session["PromoID"]     = BL_tblPromotionManagement.GetPromoID("OFR Freebies");
            obj.RoomTypeItems      = BL_tblPromotionManagement.GetRoomTypeCheckBox(id);
            obj.Amenties           = BL_tblPromotionManagement.GetAmentiesCheckBox();
            obj.CancellationPolicy = BL_tblPromotionManagement.GetCancellationPolicy(id);
            obj.iCancelationChkBox = obj.CancellationPolicy.Count();
            return(View(obj));
        }
Esempio n. 4
0
        public ActionResult SetData(etblPropertyPromotionMap Modelprop, bool IsError)
        {
            try
            {
                if (IsError == true && Modelprop != null)
                {
                    Session["IsError"] = "True";
                    if (Session["PromoID"] != null)
                    {
                        Modelprop.iPromoId = Convert.ToInt32(Session["PromoID"]);
                    }
                    Modelprop.iIsPlus    = Modelprop.bIsPlus == true ? 1 : 0;
                    Modelprop.iIsPercent = Modelprop.bIsPercent == true ? 1 : 0;

                    if (Modelprop.iPromoId == Convert.ToInt32(Promotions.OFRFreebies))
                    {
                        Modelprop.RoomTypeItems = BL_tblPromotionManagement.GetRoomTypeCheckBox(Convert.ToInt32(Session["PropId"].ToString()));
                        Modelprop.Amenties      = BL_tblPromotionManagement.GetAmentiesCheckBox();
                    }
                    else
                    {
                        if (Modelprop.SelectedRoomType != null)
                        {
                            Modelprop.sRoomTypeId = Modelprop.SelectedRoomType.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2);
                        }
                        if (Modelprop.SelectedAmenityID != null)
                        {
                            Modelprop.sAmenityId = Modelprop.SelectedAmenityID.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2);
                        }
                        Modelprop.RoomTypeItems      = BL_tblPromotionManagement.GetRoomTypeCheckBox(Modelprop.iPropId, Modelprop.iID, Modelprop.iRPId);
                        Modelprop.Amenties           = BL_tblPromotionManagement.GetAmentiesCheckBox(Modelprop.sAmenityId);
                        Modelprop.CancellationPolicy = BL_tblPromotionManagement.GetCancellationPolicy(Modelprop.iPropId, Modelprop.sCancellationPolicy);
                        Modelprop.iCancelationChkBox = Modelprop.CancellationPolicy.Count();
                    }



                    ViewData["ValiditFrom"] = Modelprop.dtRPValidFrom;
                    ViewData["ValiditTo"]   = Modelprop.dtRPValidTo;


                    var jsonSerialiser = new JavaScriptSerializer();
                    var json           = Modelprop.CancellationPolicyJSonData;
                    ViewData["cancellationJSON"] = json;


                    if (Modelprop.iPromoId == Convert.ToInt32(Promotions.BasicDeal))
                    {
                        return(View("BasicPromotions", Modelprop));
                    }
                    if (Modelprop.iPromoId == Convert.ToInt32(Promotions.MinimumStay))
                    {
                        return(View("MinimumLengthPromotion", Modelprop));
                    }
                    if (Modelprop.iPromoId == Convert.ToInt32(Promotions.EarlyBooker))
                    {
                        return(View("EarlyBookerPromotion", Modelprop));
                    }
                    if (Modelprop.iPromoId == Convert.ToInt32(Promotions.LastMinutes))
                    {
                        return(View("LastMinutePromotion", Modelprop));
                    }
                    if (Modelprop.iPromoId == Convert.ToInt32(Promotions.HrsPromotion))
                    {
                        return(View("HrsPromotions", Modelprop));
                    }
                    if (Modelprop.iPromoId == Convert.ToInt32(Promotions.OFRFreebies))
                    {
                        return(View("OFR", Modelprop));
                    }
                    else
                    {
                        return(View("../PromotionManagement"));
                    }
                }
                else
                {
                    List <etblPropertyPromotionMap> prop = new List <etblPropertyPromotionMap>();
                    if (HttpContext.Request.Params["Entrytype"] != null)
                    {
                        Session["Entrytype"] = HttpContext.Request.Params["Entrytype"];
                    }
                    if (HttpContext.Request.Params["promo"] != null)
                    {
                        Session["PromoID"] = Convert.ToInt32(HttpContext.Request.Params["promo"]);
                    }
                    if (HttpContext.Request.Params["id"] != null)
                    {
                        Session["id"] = Convert.ToInt32(HttpContext.Request.Params["id"]);
                    }

                    int a = Convert.ToInt32(Session["id"]) == null ? 0 : Convert.ToInt32(Session["id"]);

                    if (a > 0)
                    {
                        prop               = BL_tblPromotionManagement.getPropertyPromoDataByID(a);
                        prop[0].iIsPlus    = prop[0].bIsPlus == true ? 1 : 0;
                        prop[0].iIsPercent = prop[0].bIsPercent == true ? 1 : 0;

                        prop[0].dtBValidFrom = prop[0].dtBookingDateFrom.ToString("dd/MM/yyyy");
                        prop[0].dtBValidTo   = prop[0].dtBookingDateTo.ToString("dd/MM/yyyy");
                        prop[0].dtSValidFrom = prop[0].dtStayDateFrom.ToString("dd/MM/yyyy");
                        prop[0].dtSValidTo   = prop[0].dtStayDateTo.ToString("dd/MM/yyyy");


                        if (Convert.ToInt32(Session["PromoID"].ToString()) == Convert.ToInt32(Promotions.OFRFreebies))
                        {
                            prop[0].RoomTypeItems = BL_tblPromotionManagement.GetRoomTypeCheckBox(prop[0].iPropId, prop[0].iID);
                            prop[0].Amenties      = BL_tblPromotionManagement.GetAmentiesCheckBox(prop[0].sAmenityId);
                        }
                        else
                        {
                            prop[0].RoomTypeItems      = BL_tblPromotionManagement.GetRoomTypeCheckBox(prop[0].iPropId, prop[0].iID, prop[0].iRPId);
                            prop[0].Amenties           = BL_tblPromotionManagement.GetAmentiesCheckBox(prop[0].sAmenityId);
                            prop[0].CancellationPolicy = BL_tblPromotionManagement.GetCancellationPolicy(prop[0].iPropId, prop[0].sCancellationPolicy);
                            prop[0].iCancelationChkBox = prop[0].CancellationPolicy.Count();
                        }



                        ViewData["ValiditFrom"] = prop[0].dtRPValidFrom;
                        ViewData["ValiditTo"]   = prop[0].dtRPValidTo;


                        var jsonSerialiser = new JavaScriptSerializer();
                        var json           = jsonSerialiser.Serialize(prop[0].CancellationPolicyGrid);
                        ViewData["cancellationJSON"] = json;


                        if (Session["Entrytype"].ToString() == "D")
                        {
                            Delete(prop[0]);
                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            if (prop[0].iPromoId == Convert.ToInt32(Promotions.BasicDeal))
                            {
                                return(View("BasicPromotions", prop[0]));
                            }
                            if (prop[0].iPromoId == Convert.ToInt32(Promotions.MinimumStay))
                            {
                                return(View("MinimumLengthPromotion", prop[0]));
                            }
                            if (prop[0].iPromoId == Convert.ToInt32(Promotions.EarlyBooker))
                            {
                                return(View("EarlyBookerPromotion", prop[0]));
                            }
                            if (prop[0].iPromoId == Convert.ToInt32(Promotions.LastMinutes))
                            {
                                return(View("LastMinutePromotion", prop[0]));
                            }
                            if (prop[0].iPromoId == Convert.ToInt32(Promotions.HrsPromotion))
                            {
                                return(View("HrsPromotions", prop[0]));
                            }
                            if (prop[0].iPromoId == Convert.ToInt32(Promotions.OFRFreebies))
                            {
                                return(View("OFR", prop[0]));
                            }
                            else
                            {
                                return(View("../PromotionManagement"));
                            }
                        }
                    }
                    else
                    {
                        if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.BasicDeal))
                        {
                            return(RedirectToAction("BasicPromotions"));
                        }
                        if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.MinimumStay))
                        {
                            return(RedirectToAction("MinimumLengthPromotion"));
                        }
                        if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.EarlyBooker))
                        {
                            return(RedirectToAction("EarlyBookerPromotion"));
                        }
                        if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.LastMinutes))
                        {
                            return(RedirectToAction("LastMinutePromotion"));
                        }
                        if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.HrsPromotion))
                        {
                            return(RedirectToAction("HrsPromotions"));
                        }
                        if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.OFRFreebies))
                        {
                            return(RedirectToAction("OFR"));
                        }
                        else
                        {
                            return(View("../PromotionManagement"));
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 5
0
        public int Update(etblPropertyPromotionMap prop)
        {
            try
            {
                prop.iPropId      = Convert.ToInt32(Session["PropId"].ToString());
                prop.iPromoId     = Convert.ToInt32(Session["PromoID"].ToString());
                prop.iActionBy    = ((OneFineRateBLL.BL_Login.UserDetails)(Session["UserDetails"])).iUserId;
                prop.dtActionDate = DateTime.Now;
                prop.bIsPlus      = Convert.ToBoolean(prop.iIsPlus);
                prop.bIsPercent   = Convert.ToBoolean(prop.iIsPercent);
                prop.cStatus      = "A";
                List <CancellationPolicyGrid> jArray = new List <CancellationPolicyGrid>();
                if (prop.iPromoId == Convert.ToInt32(Promotions.OFRFreebies))
                {
                    //get all Cancellation Policies comma seperated
                    if (prop.SelectedRoomType != null)
                    {
                        prop.sRoomTypeId = prop.SelectedRoomType.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2);
                    }
                    //get all Cancellation Policies comma seperated
                    if (prop.SelectedAmenityID != null)
                    {
                        prop.sAmenityId = prop.SelectedAmenityID.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2);
                    }
                }
                else
                {
                    JArray jsonResponse = JArray.Parse(prop.CancellationPolicyJSonData.Replace("\\", "\""));
                    jArray = (List <CancellationPolicyGrid>)JsonConvert.DeserializeObject <List <CancellationPolicyGrid> >(jsonResponse.ToString());


                    //get all Cancellation Policies comma seperated
                    if (prop.SelectedRoomType != null)
                    {
                        prop.sRoomTypeId = prop.SelectedRoomType.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2);
                    }
                    //get all Cancellation Policies comma seperated
                    if (prop.SelectedAmenityID != null)
                    {
                        prop.sAmenityId = prop.SelectedAmenityID.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2);
                    }
                    //get all Cancellation Policies comma seperated
                    if (prop.SelectedCancellationPolicy != null)
                    {
                        prop.sCancellationPolicy = prop.SelectedCancellationPolicy.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2);
                    }
                }



                int result = BL_tblPropertyPromotionMap.UpdateRecord(prop, jArray);
                if (result == 1)
                {
                    TempData["msg"] = "Record Updated Successfully";
                    return(result);
                }
                else
                {
                    TempData["Error"] = "Something Went Wrong Please check";
                    return(result);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 6
0
        public ActionResult Save(etblPropertyPromotionMap prop)
        {
            foreach (ModelState modelState in ViewData.ModelState.Values)
            {
                foreach (ModelError error in modelState.Errors)
                {
                    if (Session["ErrorMsg"] == null)
                    {
                        Session["ErrorMsg"] = error.ErrorMessage;
                    }
                    //string str;
                    //str = "a";
                    // DoSomethingWith(error);
                }
            }

            int    val       = 0;
            string Entrytype = HttpContext.Session["Entrytype"].ToString();
            int    id        = 0;

            if (Session["PropId"] != null)
            {
                id = Convert.ToInt32(Session["PropId"].ToString());
            }
            if (ModelState.IsValid)
            {
                if (Session["PromoID"].ToString() == Convert.ToInt32(Promotions.OFRFreebies).ToString())
                {
                    prop.dtBookingDateFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidFrom.ToString());
                    prop.dtBookingDateTo   = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidTo.ToString());
                    prop.dtStayDateFrom    = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidFrom.ToString());
                    prop.dtStayDateTo      = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidTo.ToString());

                    #region Date Validations
                    if (prop.dtBookingDateFrom > prop.dtBookingDateTo)
                    {
                        TempData["Error"] = "BookingFrom Date Can't be greater than BookingTo Date"; return(SetData(prop, true));
                    }

                    if (prop.dtStayDateFrom > prop.dtStayDateTo)
                    {
                        TempData["Error"] = "StayFrom Date Can't be greater than StayTo Date"; return(SetData(prop, true));
                    }

                    if (prop.dtStayDateFrom < prop.dtBookingDateFrom)
                    {
                        TempData["Error"] = "StayFrom Date Can't be less than BookingFrom Date"; return(SetData(prop, true));
                    }


                    #endregion
                }
                else
                {
                    prop.dtBookingDateFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidFrom.ToString());
                    prop.dtBookingDateTo   = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidTo.ToString());

                    prop.dtStayDateFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidFrom.ToString());
                    prop.dtStayDateTo   = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidTo.ToString());

                    prop.dtRPValidityFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtRPValidFrom.ToString());
                    prop.dtRPValidityTo   = clsUtils.ConvertddmmyyyytoDateTime(prop.dtRPValidTo.ToString());

                    #region Date Validations
                    if (prop.dtBookingDateFrom > prop.dtBookingDateTo)
                    {
                        TempData["Error"] = "BookingFrom Date Can't be greater than BookingTo Date"; return(SetData(prop, true));
                    }

                    if (prop.dtStayDateFrom > prop.dtStayDateTo)
                    {
                        TempData["Error"] = "StayFrom Date Can't be greater than StayTo Date"; return(SetData(prop, true));
                    }

                    if (prop.dtStayDateFrom < prop.dtBookingDateFrom)
                    {
                        TempData["Error"] = "StayFrom Date Can't be less than BookingFrom Date"; return(SetData(prop, true));
                    }

                    if (prop.iMinLengthStay > prop.iMaxLengthStay)
                    {
                        TempData["Error"] = "Minimum length of stay should be less than Maximum length of stay"; return(SetData(prop, true));
                    }

                    if ((prop.dtRPValidityFrom <= prop.dtStayDateFrom && prop.dtRPValidityTo >= prop.dtStayDateFrom) && (prop.dtRPValidityFrom <= prop.dtStayDateTo && prop.dtRPValidityTo >= prop.dtStayDateTo))
                    {
                    }
                    else
                    {
                        TempData["Error"] = "Stay Validity should be within range of Rate Plan Validity"; return(SetData(prop, true));
                    }

                    if (prop.CancellationPolicyJSonData == "[]" || prop.CancellationPolicyJSonData == null)
                    {
                        TempData["Error"] = "Please Select Cancellation Policy."; return(SetData(prop, true));
                    }
                    else
                    {
                        JArray jsonResponse = JArray.Parse(prop.CancellationPolicyJSonData.Replace("\\", "\""));
                        List <CancellationPolicyGrid> jArray = (List <CancellationPolicyGrid>)JsonConvert.DeserializeObject <List <CancellationPolicyGrid> >(jsonResponse.ToString());

                        var counter = 0;
                        foreach (var item in jArray)
                        {
                            if (clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidFrom) <= clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidTo) &&
                                prop.dtStayDateFrom <= clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidFrom) &&
                                prop.dtStayDateTo >= clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidTo))
                            {
                            }
                            else
                            {
                                counter = counter + 1;
                            }
                        }

                        if (counter > 0)
                        {
                            TempData["Error"] = "Cancellation policy validity should be with in range of stay dates."; return(SetData(prop, true));
                        }
                    }


                    #endregion
                }

                // E => Edit, N=> New,  U => Update

                if (Entrytype == "E" || Entrytype == "N")
                {
                    val = Edit(prop);
                }
                else if (Entrytype == "U")
                {
                    val = Update(prop);
                }
                if (val == 1)
                {
                    return(RedirectToAction("Index"));
                }
                else if (val == 2)
                {
                    TempData["Error"] = "Record already exists with similar values"; return(SetData(prop, true));
                }
                else if (val == 6)
                {
                    TempData["Error"] = "Cancellation policy for all dates must be added in selected stay validity range"; return(SetData(prop, true));
                }
                else
                {
                    TempData["Error"] = "Please select atleast one room type"; return(SetData(prop, true));
                }
            }
            else
            {
                if (Session["ErrorMsg"] != null)
                {
                    TempData["Error"]   = Session["ErrorMsg"].ToString();
                    Session["ErrorMsg"] = null;
                }
                return(SetData(prop, true));
            }
        }
        //Update a record
        public static int UpdateRecord(etblPropertyPromotionMap eobj, List <CancellationPolicyGrid> jArray)
        {
            int retval = 0;

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                try
                {
                    if (jArray.Count > 0)
                    {
                        for (int i = 0; i < jArray.Count; i++)
                        {
                            if (eobj.sCancellationPolicy == null)
                            {
                                eobj.sCancellationPolicy = jArray[i].sPolicyId;
                            }
                            else
                            {
                                eobj.sCancellationPolicy = eobj.sCancellationPolicy + "," + jArray[i].sPolicyId;
                            }
                        }
                    }



                    if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies))
                    {
                        #region Check Cancellation Policy Dates
                        int CancellationPolicyDateCount = 0;
                        int SelectedValidityDateCount   = 0;

                        DateTime SelectedValidityCurrentDate = eobj.dtStayDateFrom;
                        while (SelectedValidityCurrentDate <= eobj.dtStayDateTo)
                        {
                            SelectedValidityDateCount++;
                            SelectedValidityCurrentDate = SelectedValidityCurrentDate.AddDays(1);
                        }

                        for (int i = 0; i < jArray.Count; i++)
                        {
                            DateTime CancellationPolicyCurrentDate = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom));
                            while (CancellationPolicyCurrentDate <= Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo)))
                            {
                                CancellationPolicyDateCount++;
                                CancellationPolicyCurrentDate = CancellationPolicyCurrentDate.AddDays(1);
                            }
                        }

                        if (SelectedValidityDateCount != CancellationPolicyDateCount)
                        {
                            return(retval = 6);
                        }

                        #endregion
                    }



                    int iPropPromoID = 0;
                    if (eobj.iPromoId == Convert.ToInt32(Promotions.OFRFreebies))
                    {
                        eobj.iRPId = null;
                    }

                    var vRoom = eobj.sRoomTypeId.Split(',').ToList();
                    iPropPromoID = eobj.iID;
                    if (vRoom != null)
                    {
                        IEnumerable <tblPropertyPromotionRoomTypeMap> list = db.tblPropertyPromotionRoomTypeMaps.Where(u => u.iPropPromoID == iPropPromoID).ToList();
                        db.tblPropertyPromotionRoomTypeMaps.RemoveRange(list);
                        //db.SaveChanges();

                        db.tblPropertyPromotionRoomTypeMaps.AddRange(vRoom.Select(x => new tblPropertyPromotionRoomTypeMap()
                        {
                            iPropPromoID = iPropPromoID,
                            iRoomId      = Convert.ToInt16(x),//x.iRoomTypeId,
                            dtActionDate = DateTime.Now,
                            iActionBy    = eobj.iActionBy
                        }).ToList());
                        //  db.SaveChanges();
                    }

                    var recChekCancellationData = (from m in db.tblPropertyPromotionCancellationMainMaps
                                                   select new
                    {
                        m.iID,
                        m.dtCancellationValidFrom,
                        m.dtCancellationValidTo,
                    }).Where(u => u.iID == iPropPromoID).AsQueryable().ToList();

                    if (jArray.Count > 0 || recChekCancellationData.Count > 0)
                    {
                        List <CancellationPolicyGridMain> objjArray = new List <CancellationPolicyGridMain>();

                        for (int i = 0; i < jArray.Count; i++)
                        {
                            objjArray.Add(new CancellationPolicyGridMain()
                            {
                                CancellationValidFrom = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom)),
                                CancellationValidTo   = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo)),
                                sPolicyId             = jArray[i].sPolicyId
                            });
                        }

                        IEnumerable <tblPropertyPromotionCancellationMainMap> list = db.tblPropertyPromotionCancellationMainMaps.Where(u => u.iID == iPropPromoID).ToList();
                        db.tblPropertyPromotionCancellationMainMaps.RemoveRange(list);
                        //db.SaveChanges();

                        db.tblPropertyPromotionCancellationMainMaps.AddRange(objjArray.Select(x => new tblPropertyPromotionCancellationMainMap()
                        {
                            iID = iPropPromoID,
                            dtCancellationValidFrom = Convert.ToDateTime(x.CancellationValidFrom),
                            dtCancellationValidTo   = Convert.ToDateTime(x.CancellationValidTo),
                            sCancellationPolicyId   = x.sPolicyId,
                            dtActionDate            = DateTime.Now,
                            iActionBy = eobj.iActionBy
                        }).ToList());

                        IEnumerable <tblPropertyPromotionCancellationMap> list1 = db.tblPropertyPromotionCancellationMaps.Where(u => u.iID == iPropPromoID).ToList();
                        db.tblPropertyPromotionCancellationMaps.RemoveRange(list1);
                        List <tblPropertyPromotionCancellationMap> LPRPC = new List <tblPropertyPromotionCancellationMap>();
                        for (int i = 0; i < objjArray.Count; i++)
                        {
                            string[] IDs = objjArray[i].sPolicyId.Split(',');

                            for (int j = 0; j < IDs.Length; j++)
                            {
                                DateTime CurrentDate = objjArray[i].CancellationValidFrom;
                                while (CurrentDate <= objjArray[i].CancellationValidTo)
                                {
                                    tblPropertyPromotionCancellationMap PRPC = new tblPropertyPromotionCancellationMap();
                                    PRPC.dtDate = CurrentDate;
                                    PRPC.iCancellationPolicyId = Convert.ToInt32(IDs[j]);
                                    PRPC.iID          = iPropPromoID;
                                    PRPC.iActionBy    = eobj.iActionBy;
                                    PRPC.dtActionDate = DateTime.Now;

                                    LPRPC.Add(PRPC);
                                    CurrentDate = CurrentDate.AddDays(1);
                                }
                            }
                        }

                        db.tblPropertyPromotionCancellationMaps.AddRange(LPRPC);
                    }

                    using (OneFineRateEntities db1 = new OneFineRateEntities())
                    {
                        var PP = db1.tblPropertyPromotionMaps.Where(a => a.iID == eobj.iID).ToList();
                        if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies))
                        {
                            eobj.bParentActive = (bool)PP[0].bParentActive;
                        }
                        eobj.iPromoId = PP[0].iPromoId;
                    }

                    OneFineRate.tblPropertyPromotionMap obj = (OneFineRate.tblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblPropertyPromotionMap());
                    db.tblPropertyPromotionMaps.Attach(obj);
                    db.Entry(obj).State = System.Data.Entity.EntityState.Modified;

                    //db.SaveChanges();
                    //db.SaveChanges();
                    //db.uspSetActiveDeactiveByParent(eobj.iRPId);
                    db.SaveChanges();
                    retval = 1;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(retval);
        }
        //Add new record
        public static int AddRecord(etblPropertyPromotionMap eobj, List <CancellationPolicyGrid> jArray)
        {
            int  retval    = 0;
            bool chkExists = false;

            using (var transactionScope = new TransactionScope())
            {
                using (OneFineRateEntities db = new OneFineRateEntities())
                {
                    try
                    {
                        if (jArray.Count > 0)
                        {
                            for (int i = 0; i < jArray.Count; i++)
                            {
                                if (eobj.sCancellationPolicy == null)
                                {
                                    eobj.sCancellationPolicy = jArray[i].sPolicyId;
                                }
                                else
                                {
                                    eobj.sCancellationPolicy = eobj.sCancellationPolicy + "," + jArray[i].sPolicyId;
                                }
                            }
                        }

                        if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies))
                        {
                            #region Check Cancellation Policy Dates
                            int CancellationPolicyDateCount = 0;
                            int SelectedValidityDateCount   = 0;

                            DateTime SelectedValidityCurrentDate = eobj.dtStayDateFrom;
                            while (SelectedValidityCurrentDate <= eobj.dtStayDateTo)
                            {
                                SelectedValidityDateCount++;
                                SelectedValidityCurrentDate = SelectedValidityCurrentDate.AddDays(1);
                            }

                            for (int i = 0; i < jArray.Count; i++)
                            {
                                DateTime CancellationPolicyCurrentDate = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom));
                                while (CancellationPolicyCurrentDate <= Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo)))
                                {
                                    CancellationPolicyDateCount++;
                                    CancellationPolicyCurrentDate = CancellationPolicyCurrentDate.AddDays(1);
                                }
                            }

                            if (SelectedValidityDateCount != CancellationPolicyDateCount)
                            {
                                return(retval = 6);
                            }

                            #endregion

                            chkExists = db.tblPropertyPromotionMaps.Any(
                                p => p.dtBookingDateFrom == eobj.dtBookingDateFrom &&
                                p.dtBookingDateTo == eobj.dtBookingDateTo &&
                                p.dtStayDateFrom == eobj.dtStayDateFrom &&
                                p.dtStayDateTo == eobj.dtStayDateTo &&
                                p.iRPId == eobj.iRPId &&
                                p.bIsPercent == eobj.bIsPercent &&
                                p.bIsPlus == eobj.bIsPlus &&
                                p.dValue == eobj.dValue &&
                                p.sAmenityId == eobj.sAmenityId &&
                                p.sAmenity == eobj.sAmenity &&
                                p.sCancellationPolicy == eobj.sCancellationPolicy &&
                                p.sRoomTypeId == eobj.sRoomTypeId &&
                                p.bIsSecretDeal == eobj.bIsSecretDeal &&
                                p.cStatus == eobj.cStatus
                                );
                        }


                        if (chkExists != true)
                        {
                            int iPropPromoID = 0;
                            if (eobj.iPromoId == Convert.ToInt32(Promotions.OFRFreebies))
                            {
                                eobj.iRPId = null;
                            }
                            else
                            {
                                var RP = db.tblPropertyRatePlanMaps.Where(a => a.iRPId == eobj.iRPId).ToList();

                                if (RP[0].cStatus == "I" || RP[0].bParentActive == false)
                                {
                                    eobj.bParentActive = false;
                                }
                                else
                                {
                                    eobj.bParentActive = true;
                                }
                            }

                            OneFineRate.tblPropertyPromotionMap dbuser = (OneFineRate.tblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblPropertyPromotionMap());
                            db.tblPropertyPromotionMaps.Add(dbuser);
                            db.SaveChanges();
                            var vRoom = eobj.sRoomTypeId.Split(',').ToList();
                            iPropPromoID = dbuser.iID;
                            if (vRoom != null)
                            {
                                db.tblPropertyPromotionRoomTypeMaps.AddRange(vRoom.Select(x => new tblPropertyPromotionRoomTypeMap()
                                {
                                    iPropPromoID = iPropPromoID,
                                    iRoomId      = Convert.ToInt16(x),//x.iRoomTypeId,
                                    dtActionDate = DateTime.Now,
                                    iActionBy    = eobj.iActionBy
                                }).ToList());
                            }

                            if (jArray.Count > 0)
                            {
                                List <CancellationPolicyGridMain> objjArray = new List <CancellationPolicyGridMain>();

                                for (int i = 0; i < jArray.Count; i++)
                                {
                                    objjArray.Add(new CancellationPolicyGridMain()
                                    {
                                        CancellationValidFrom = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom)),
                                        CancellationValidTo   = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo)),
                                        sPolicyId             = jArray[i].sPolicyId
                                    });
                                }

                                db.tblPropertyPromotionCancellationMainMaps.AddRange(objjArray.Select(x => new tblPropertyPromotionCancellationMainMap()
                                {
                                    iID = iPropPromoID,
                                    dtCancellationValidFrom = Convert.ToDateTime(x.CancellationValidFrom),
                                    dtCancellationValidTo   = Convert.ToDateTime(x.CancellationValidTo),
                                    sCancellationPolicyId   = x.sPolicyId,
                                    dtActionDate            = DateTime.Now,
                                    iActionBy = eobj.iActionBy
                                }).ToList());

                                List <tblPropertyPromotionCancellationMap> LPRPC = new List <tblPropertyPromotionCancellationMap>();
                                for (int i = 0; i < objjArray.Count; i++)
                                {
                                    string[] IDs = objjArray[i].sPolicyId.Split(',');

                                    for (int j = 0; j < IDs.Length; j++)
                                    {
                                        DateTime CurrentDate = objjArray[i].CancellationValidFrom;
                                        while (CurrentDate <= objjArray[i].CancellationValidTo)
                                        {
                                            tblPropertyPromotionCancellationMap PRPC = new tblPropertyPromotionCancellationMap();
                                            PRPC.dtDate = CurrentDate;
                                            PRPC.iCancellationPolicyId = Convert.ToInt32(IDs[j]);
                                            PRPC.iID          = iPropPromoID;
                                            PRPC.iActionBy    = eobj.iActionBy;
                                            PRPC.dtActionDate = DateTime.Now;

                                            LPRPC.Add(PRPC);
                                            CurrentDate = CurrentDate.AddDays(1);
                                        }
                                    }
                                }

                                db.tblPropertyPromotionCancellationMaps.AddRange(LPRPC);
                            }
                            db.SaveChanges();
                            retval = 1;
                        }
                        else
                        {
                            retval = 2;
                        }
                        transactionScope.Complete();
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                    finally
                    {
                        transactionScope.Dispose();
                    }
                }
            }
            return(retval);
        }
Esempio n. 9
0
        public static List <etblPropertyPromotionMap> getPropertyPromoDataByID(int a)
        {
            List <etblPropertyPromotionMap> promorec = new List <etblPropertyPromotionMap>();

            using (OneFineRateEntities db = new OneFineRateEntities())
            {
                var rec = (from m in db.tblPropertyPromotionMaps
                           join n in db.tblPropertyRatePlanMaps on m.iRPId equals n.iRPId into result
                           from r in result.DefaultIfEmpty()
                           join c in db.tblUserMs on m.iActionBy equals c.iUserId
                           select new
                {
                    m.iID,
                    m.dtBookingDateFrom,
                    m.dtBookingDateTo,
                    m.dtStayDateFrom,
                    m.dtStayDateTo,
                    m.iRPId,
                    m.sRoomTypeId,
                    m.dValue,
                    m.iActionBy,
                    m.iPromoId,
                    m.iPropId,
                    m.bIsPlus,
                    m.bIsPercent,
                    m.sAmenityId,
                    m.sAmenity,
                    m.sCancellationPolicy,
                    m.bIsSecretDeal,
                    m.iHrsDays,
                    m.iMinLengthStay,
                    m.iMaxLengthStay,
                    m.dtActionDate,
                    m.cStatus,
                    r.dtValidFrom,
                    r.dtValidTo,
                    UserName = c.sFirstName + " " + c.sLastName,
                    m.dNegotiationPer,
                }
                           ).Where(u => u.iID == a).AsQueryable();

                var data = rec.ToList();

                etblPropertyPromotionMap objMain = new etblPropertyPromotionMap();
                objMain = (etblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(data[0], objMain);
                promorec.Add(new etblPropertyPromotionMap()
                {
                    iID = objMain.iID,
                    dtBookingDateFrom   = objMain.dtBookingDateFrom,
                    dtBookingDateTo     = objMain.dtBookingDateTo,
                    dtStayDateFrom      = objMain.dtStayDateFrom,
                    dtStayDateTo        = objMain.dtStayDateTo,
                    iRPId               = objMain.iRPId,
                    sRoomTypeId         = objMain.sRoomTypeId,
                    dValue              = objMain.dValue,
                    iActionBy           = objMain.iActionBy,
                    iPromoId            = objMain.iPromoId,
                    iPropId             = objMain.iPropId,
                    bIsPlus             = objMain.bIsPlus,
                    bIsPercent          = objMain.bIsPercent,
                    sAmenityId          = objMain.sAmenityId,
                    sAmenity            = objMain.sAmenity,
                    sCancellationPolicy = objMain.sCancellationPolicy,
                    bIsSecretDeal       = objMain.bIsSecretDeal,
                    iHrsDays            = objMain.iHrsDays,
                    iMinLengthStay      = objMain.iMinLengthStay,
                    iMaxLengthStay      = objMain.iMaxLengthStay,
                    dtActionDate        = objMain.dtActionDate,
                    cStatus             = objMain.cStatus,
                    UserName            = objMain.UserName,
                    dtRPValidFrom       = objMain.dtValidFrom.ToString("dd/MM/yyyy"),
                    dtRPValidTo         = objMain.dtValidTo.ToString("dd/MM/yyyy"),
                    dNegotiationPer     = objMain.dNegotiationPer
                });

                var CancellationData = (from m in db.tblPropertyPromotionCancellationMainMaps
                                        select new
                {
                    m.iID,
                    m.dtCancellationValidFrom,
                    m.dtCancellationValidTo,
                    m.sCancellationPolicyId,
                }).Where(u => u.iID == a).AsQueryable();

                var data1 = CancellationData.ToList();
                List <CancellationPolicyGrid> objPolicy = new List <CancellationPolicyGrid>();
                for (int i = 0; i < data1.Count; i++)
                {
                    objPolicy.Add(new CancellationPolicyGrid()
                    {
                        CancellationPolicyId  = data1[i].sCancellationPolicyId.Split(',').ToList(),
                        CancellationValidFrom = data1[i].dtCancellationValidFrom.ToString("dd/MM/yyyy"),
                        CancellationValidTo   = data1[i].dtCancellationValidTo.ToString("dd/MM/yyyy"),
                        sPolicyId             = data1[i].sCancellationPolicyId
                    });
                    var sName = objPolicy[i].sPolicyId.Split(',').ToList();
                    foreach (var item in sName)
                    {
                        int CanId   = Convert.ToInt16(item);
                        var getName = (from m in db.tblPropertyCancellationPolicyMaps select new { m.iCancellationPolicyId, m.sPolicyName, m.cStatus }).Where(u => u.iCancellationPolicyId == CanId).AsQueryable().ToList();
                        if (objPolicy[i].sPolicyName == null)
                        {
                            objPolicy[i].sPolicyName = getName[0].sPolicyName + (getName[0].cStatus == "A" ? "" : "(Disabled)");
                        }
                        else
                        {
                            objPolicy[i].sPolicyName = objPolicy[i].sPolicyName + "," + getName[0].sPolicyName + (getName[0].cStatus == "A" ? "" : "(Disabled)");
                        }
                    }
                    objPolicy[i].CancellationPolicyName = objPolicy[i].sPolicyName.Split(',').ToList();
                }
                promorec[0].CancellationPolicyGrid = objPolicy;

                //foreach (var item in data)
                //{
                //    promorec.Add((etblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(item, new etblPropertyPromotionMap()));
                //}

                return(promorec);
            }
        }