Beispiel #1
0
        /// <summary>
        /// Add Seasonal Discount
        /// </summary>
        /// <param name="seasonalDiscountMain"></param>
        private void AddSeasonalDiscount(SeasonalDiscountMain seasonalDiscountMain)
        {
            //Validate Seasonal Discount
            SeasonalDiscountValidation(seasonalDiscountMain, true);
            seasonalDiscountMain.IsActive         = true;
            seasonalDiscountMain.IsDeleted        =
                seasonalDiscountMain.IsPrivate    = seasonalDiscountMain.IsReadOnly = false;
            seasonalDiscountMain.RecLastUpdatedBy =
                seasonalDiscountMain.RecCreatedBy = seasonalDiscountMainRepository.LoggedInUserIdentity;
            seasonalDiscountMain.RecCreatedDt     = seasonalDiscountMain.RecLastUpdatedDt = DateTime.Now;
            seasonalDiscountMain.RowVersion       = 0;
            seasonalDiscountMain.UserDomainKey    = seasonalDiscountMainRepository.UserDomainKey;

            if (seasonalDiscountMain.SeasonalDiscounts != null)
            {
                foreach (var item in seasonalDiscountMain.SeasonalDiscounts)
                {
                    item.IsActive         = true;
                    item.IsDeleted        = item.IsPrivate = item.IsReadOnly = false;
                    item.RecLastUpdatedBy = item.RecCreatedBy = seasonalDiscountMainRepository.LoggedInUserIdentity;
                    item.RecCreatedDt     = item.RecLastUpdatedDt = DateTime.Now;
                    item.RowVersion       = 0;
                    item.RevisionNumber   = 0;
                    item.UserDomainKey    = seasonalDiscountMainRepository.UserDomainKey;
                }
            }
            seasonalDiscountMainRepository.Add(seasonalDiscountMain);
        }
Beispiel #2
0
        /// <summary>
        /// Save Seasonal Discount Main
        /// </summary>
        /// <param name="seasonalDiscountMain"></param>
        /// <returns></returns>
        public SeasonalDiscountMainContent SaveSeasonalDiscount(SeasonalDiscountMain seasonalDiscountMain)
        {
            SeasonalDiscountMain seasonalDiscountMainDbVersion =
                seasonalDiscountMainRepository.Find(seasonalDiscountMain.SeasonalDiscountMainId);
            TariffType tariffType = tariffTypeRepository.Find(long.Parse(seasonalDiscountMain.TariffTypeCode));

            seasonalDiscountMain.TariffTypeCode = tariffType.TariffTypeCode;
            if (seasonalDiscountMainDbVersion == null) //Add Case
            {
                AddSeasonalDiscount(seasonalDiscountMain);
            }
            else //Update
            {
                UpdateSeasonalDiscount(seasonalDiscountMain, seasonalDiscountMainDbVersion);
            }
            seasonalDiscountMainRepository.SaveChanges();
            return(new SeasonalDiscountMainContent
            {
                SeasonalDiscountMainId = seasonalDiscountMain.SeasonalDiscountMainId,
                Code = seasonalDiscountMain.SeasonalDiscountMainCode,
                Name = seasonalDiscountMain.SeasonalDiscountMainName,
                Description = seasonalDiscountMain.SeasonalDiscountMainDescription,
                StartDt = seasonalDiscountMain.StartDt,
                EndDt = seasonalDiscountMain.EndDt,
                TariffTypeId = tariffType.TariffTypeId,
                CompanyId = tariffType.Operation.Department.Company.CompanyId,
                CompanyCodeName = tariffType.Operation.Department.Company.CompanyCode + " - " + tariffType.Operation.Department.Company.CompanyName,
                DepartmentId = tariffType.Operation.Department.DepartmentId,
                TariffTypeCodeName = tariffType.TariffTypeCode + " - " + tariffType.TariffTypeName,
                OperationId = tariffType.OperationId,
                OperationCodeName = tariffType.Operation.OperationCode + " - " + tariffType.Operation.OperationName,
            });
        }
Beispiel #3
0
 public IEnumerable <SeasonalDiscount> Get([FromUri] SeasonalDiscountMain discountMain)
 {
     if (!ModelState.IsValid)
     {
         throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request");
     }
     return(seasonalDiscountService.GetSeasonalDiscountsBySeasonalDiscountMainId(discountMain.SeasonalDiscountMainId).Select(seasonalDiscount => seasonalDiscount.CreateFrom()));
 }
Beispiel #4
0
        /// <summary>
        /// Validate Seasonal Discount Main
        /// </summary>
        /// <param name="seasonalDiscountMain"></param>
        /// <param name="addFlag"></param>
        private void SeasonalDiscountValidation(SeasonalDiscountMain seasonalDiscountMain, bool addFlag)
        {
            DateTime sDisMainStDt, sDisMainEndDt, sDisMainDbStDt, sDisMainDbEndDt;

            sDisMainStDt  = Convert.ToDateTime(seasonalDiscountMain.StartDt);
            sDisMainEndDt = Convert.ToDateTime(seasonalDiscountMain.EndDt);
            if (addFlag)
            {
                if (sDisMainStDt.Date < DateTime.Now.Date)
                {
                    throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.InvalidStartDate));
                }
                if (sDisMainEndDt < sDisMainStDt)
                {
                    throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.InvalidEndDate));
                }
                IEnumerable <SeasonalDiscountMain> seasonalDiscountMains = seasonalDiscountMainRepository.LoadSeasonalDiscountMainByTariffTypeCode(seasonalDiscountMain.TariffTypeCode);
                foreach (var item in seasonalDiscountMains)
                {
                    sDisMainDbStDt  = item.StartDt;
                    sDisMainDbEndDt = item.EndDt;
                    if ((sDisMainStDt <= sDisMainDbStDt) && ((sDisMainDbEndDt) <= (sDisMainEndDt)))
                    {
                        throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.ExistingSeasonalDiscountOverlaps));
                    }
                    if ((sDisMainDbStDt <= sDisMainStDt) && ((sDisMainEndDt) <= (sDisMainDbEndDt)))
                    {
                        throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.CurrentSeasonalDiscountOverlaps));
                    }
                    if ((sDisMainDbStDt <= sDisMainStDt) && (sDisMainStDt <= (sDisMainDbEndDt)) && ((sDisMainDbEndDt) <= (sDisMainEndDt)))
                    {
                        throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.StartSeasonalDiscountDurationOverlaps));
                    }
                    if ((sDisMainStDt <= sDisMainDbStDt) && (sDisMainDbStDt <= (sDisMainEndDt)) && ((sDisMainEndDt) <= (sDisMainDbEndDt)))
                    {
                        throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.EndSeasonalDiscountDurationOverlaps));
                    }
                }
            }
            if (seasonalDiscountMain.SeasonalDiscounts != null)
            {
                foreach (var item in seasonalDiscountMain.SeasonalDiscounts)
                {
                    //if (CheckSeasonalDiscountDuplicate(oSeasonalDiscountParam, i))
                    //{
                    //    throw new CaresBusinessException("Pricing-SeasonalDiscountDuplicated", null);
                    //}
                    DateTime sDisStDt  = item.SeasonalDiscountStartDt;
                    DateTime sDisEndDt = item.SeasonalDiscountStartDt;
                    if (item.SeasonalDiscountId == 0)
                    {
                        if (sDisStDt < DateTime.Now || sDisEndDt < DateTime.Now)
                        {
                            throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.SeasonalDiscountInvalidEffectiveDates));
                        }
                        if (sDisEndDt < sDisStDt)
                        {
                            throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.SeasonalDiscountInvalidEndDate));
                        }
                        if (sDisStDt < sDisMainStDt || sDisEndDt > sDisMainEndDt)
                        {
                            throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.SeasonalDiscountInvalidRangeEffectiveDate));
                        }
                    }
                    else
                    {
                        if (sDisEndDt < sDisStDt)
                        {
                            throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.SeasonalDiscountInvalidEndDate));
                        }
                        if (sDisStDt < sDisMainStDt || sDisEndDt > sDisMainEndDt)
                        {
                            throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.SeasonalDiscount.SeasonalDiscountInvalidRangeEffectiveDate));
                        }
                    }
                }
            }
        }
Beispiel #5
0
 /// <summary>
 /// Delete Seasonal Discount Main
 /// </summary>
 /// <param name="seasonalDiscountMain"></param>
 public void DeleteSeasonalDiscount(SeasonalDiscountMain seasonalDiscountMain)
 {
     seasonalDiscountMainRepository.Delete(seasonalDiscountMain);
     seasonalDiscountMainRepository.SaveChanges();
 }
Beispiel #6
0
 /// <summary>
 /// Update Seasonal Discount
 /// </summary>
 /// <param name="seasonalDiscountMain"></param>
 /// <param name="seasonalDiscountMainDbVersion"></param>
 private void UpdateSeasonalDiscount(SeasonalDiscountMain seasonalDiscountMain,
                                     SeasonalDiscountMain seasonalDiscountMainDbVersion)
 {
     //Validate Seasonal Discount
     SeasonalDiscountValidation(seasonalDiscountMain, false);
     seasonalDiscountMainDbVersion.RecLastUpdatedBy = seasonalDiscountMainRepository.LoggedInUserIdentity;
     seasonalDiscountMainDbVersion.RecLastUpdatedDt = DateTime.Now;
     seasonalDiscountMainDbVersion.StartDt          = seasonalDiscountMain.StartDt;
     if (seasonalDiscountMain.SeasonalDiscounts != null)
     {
         foreach (var item in seasonalDiscountMain.SeasonalDiscounts)
         {
             if (
                 seasonalDiscountMainDbVersion.SeasonalDiscounts.All(
                     x =>
                     x.SeasonalDiscountId != item.SeasonalDiscountId ||
                     item.SeasonalDiscountId == 0))
             {
                 item.IsActive         = true;
                 item.IsDeleted        = item.IsPrivate = item.IsReadOnly = false;
                 item.RecLastUpdatedBy =
                     item.RecCreatedBy = seasonalDiscountMainRepository.LoggedInUserIdentity;
                 item.RecCreatedDt     = item.RecLastUpdatedDt = DateTime.Now;
                 item.RowVersion       = 0;
                 item.RevisionNumber   = 0;
                 item.UserDomainKey    = seasonalDiscountMainRepository.UserDomainKey;
                 seasonalDiscountMainDbVersion.SeasonalDiscounts.Add(item);
             }
             else
             {
                 if (seasonalDiscountMainDbVersion.SeasonalDiscounts.Any(
                         x =>
                         x.SeasonalDiscountId == item.SeasonalDiscountId))
                 {
                     SeasonalDiscount seasonalDiscountDbVesion =
                         seasonalDiscountMainDbVersion.SeasonalDiscounts.First(
                             x => x.SeasonalDiscountId == item.SeasonalDiscountId);
                     if (seasonalDiscountDbVesion.OperationsWorkPlaceId != item.OperationsWorkPlaceId ||
                         seasonalDiscountDbVesion.CustomerType != item.CustomerType ||
                         seasonalDiscountDbVesion.BpRatingTypeId != item.BpRatingTypeId || seasonalDiscountDbVesion.HireGroupId != item.HireGroupId ||
                         seasonalDiscountDbVesion.VehicleCategoryId != item.VehicleCategoryId || seasonalDiscountDbVesion.VehicleMakeId != item.VehicleMakeId ||
                         seasonalDiscountDbVesion.VehicleModelId != item.VehicleModelId || seasonalDiscountDbVesion.ModelYear != item.ModelYear ||
                         seasonalDiscountDbVesion.SeasonalDiscountStartDt != item.SeasonalDiscountStartDt || seasonalDiscountDbVesion.SeasonalDiscountEndDt != item.SeasonalDiscountEndDt ||
                         // ReSharper disable once CompareOfFloatsByEqualityOperator
                         seasonalDiscountDbVesion.DiscountPerc != item.DiscountPerc)
                     {
                         item.IsActive               = true;
                         item.IsDeleted              = item.IsPrivate = item.IsReadOnly = false;
                         item.RecLastUpdatedBy       =
                             item.RecCreatedBy       = seasonalDiscountMainRepository.LoggedInUserIdentity;
                         item.RecCreatedDt           = item.RecLastUpdatedDt = DateTime.Now;
                         item.RowVersion             = 0;
                         item.SeasonalDiscountMainId = seasonalDiscountMain.SeasonalDiscountMainId;
                         item.RevisionNumber         = seasonalDiscountDbVesion.RevisionNumber + 1;
                         item.SeasonalDiscountId     = 0;
                         item.UserDomainKey          = seasonalDiscountMainRepository.UserDomainKey;
                         seasonalDiscountRepository.Add(item);
                         seasonalDiscountRepository.SaveChanges();
                         seasonalDiscountDbVesion.ChildSeasonalDiscountId = item.SeasonalDiscountMainId;
                     }
                 }
             }
         }
     }
 }