/// <summary> /// Delete a Tariff Rate /// </summary> public void Delete(StandardRateMain standardRateMain) { if (standardRateMain == null || !ModelState.IsValid) { throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request"); } tariffRateService.DeleteTariffRate(tariffRateService.Find(standardRateMain.StandardRtMainId)); }
/// <summary> /// Get Hire group Detail For Tariff Rate /// </summary> /// <returns></returns> public HireGroupDetailResponse Get([FromUri] StandardRateMain standardRateMain) { if (!ModelState.IsValid) { throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request"); } return(tariffRateService.GetHireGroupDetailsForTariffRate(standardRateMain.StandardRtMainId).CreateFromHireGroupDetail()); }
public TariffRateContent Post(StandardRateMain standardRateMain) { if (standardRateMain == null || !ModelState.IsValid) { throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request"); } TariffRateContent tariffRateContent = tariffRateService.SaveTariffRate(standardRateMain.CreateFrom()).CreateFrom(); return(tariffRateContent); }
/// <summary> /// Standard Rate Validation /// </summary> /// <param name="standardRateMain"></param> /// <param name="addFlag"></param> private void StandardRateValidation(StandardRateMain standardRateMain, bool addFlag) { DateTime a, b, c, d; a = Convert.ToDateTime(standardRateMain.StartDt); b = Convert.ToDateTime(standardRateMain.EndDt); if (addFlag) { if (a.Date < DateTime.Now.Date) { throw new Exception(); } //throw new CaresBusinessException("Pricing-InvalidStartDate", null); if (b.Date < a.Date) { throw new Exception(); } //throw new CaresBusinessException("Pricing-InvalidEndDate", null); DomainModels.TariffType tariffType = tariffRateService.FindTariffTypeById(standardRateMain.TariffTypeId); IEnumerable <DomainModels.StandardRateMain> oStRateMain = tariffRateService.FindByTariffTypeCode(tariffType.TariffTypeCode).Select(s => s); foreach (var rateMain in oStRateMain) { c = rateMain.StartDt; d = rateMain.EndDt; if ((a <= c) && ((d) <= (b))) { throw new Exception(); } //throw new CaresBusinessException("Pricing-ExistingStandardRtOverlaps", null); if ((c <= a) && ((b) <= (d))) { throw new Exception(); } //throw new CaresBusinessException("Pricing-CurrentStandardRtOverlaps", null); if ((c <= a) && (a <= (d)) && ((d) <= (b))) { throw new Exception(); } //throw new CaresBusinessException("Pricing-StartStandardRtDurationOverlaps", null); if ((a <= c) && (c <= (b)) && ((b) <= (d))) { throw new Exception(); } //throw new CaresBusinessException("Pricing-EndStandardRtDurationOverlaps", null); } } if (standardRateMain.HireGroupDetailsInStandardRtMain != null) { foreach (var standardRate in standardRateMain.HireGroupDetailsInStandardRtMain) { c = Convert.ToDateTime(standardRate.StartDate); d = Convert.ToDateTime(standardRate.EndDt); if (c.Date < DateTime.Now.Date || d.Date < DateTime.Now.Date) { throw new Exception(); } // throw new CaresBusinessException("Pricing-StRateInvalidEffectiveDates", null); if (d < c) { throw new Exception(); } //throw new CaresBusinessException("Pricing-StRateInvalidEndDate", null); if (c < a || d > b) { throw new Exception(); } //throw new CaresBusinessException("Pricing-StRateInvalidRangeEffectiveDate", null); } } }
/// <summary> /// Standard Rate Validation /// </summary> /// <param name="standardRateMain"></param> /// <param name="addFlag"></param> private void StandardRateValidation(StandardRateMain standardRateMain, bool addFlag) { // ReSharper disable once JoinDeclarationAndInitializer DateTime strMainStartDate, strMainEndDate, dbStartDate, dbEndDate; strMainStartDate = Convert.ToDateTime(standardRateMain.StartDt); strMainEndDate = Convert.ToDateTime(standardRateMain.EndDt); if (addFlag) { if (strMainStartDate.Date < DateTime.Now.Date) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.InvalidStartDate)); } if (strMainEndDate.Date < strMainStartDate.Date) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.InvalidEndDate)); } IEnumerable <StandardRateMain> oStRateMain = FindByTariffTypeCode(standardRateMain.TariffTypeCode).Select(s => s); foreach (var rateMain in oStRateMain) { dbStartDate = rateMain.StartDt; dbEndDate = rateMain.EndDt; if ((strMainStartDate <= dbStartDate) && ((dbEndDate) <= (strMainEndDate))) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.ExistingStandardRtOverlaps)); } if ((dbStartDate <= strMainStartDate) && ((strMainEndDate) <= (dbEndDate))) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.CurrentStandardRtOverlaps)); } if ((dbStartDate <= strMainStartDate) && (strMainStartDate <= (dbEndDate)) && ((dbEndDate) <= (strMainEndDate))) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.StartStandardRtDurationOverlaps)); } if ((strMainStartDate <= dbStartDate) && (dbStartDate <= (strMainEndDate)) && ((strMainEndDate) <= (dbEndDate))) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.EndStandardRtDurationOverlaps)); } } } if (standardRateMain.StandardRates != null) { foreach (var standardRate in standardRateMain.StandardRates) { dbStartDate = Convert.ToDateTime(standardRate.StandardRtStartDt); dbEndDate = Convert.ToDateTime(standardRate.StandardRtEndDt); if (dbStartDate.Date < DateTime.Now.Date || dbEndDate.Date < DateTime.Now.Date) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.StRateInvalidEffectiveDates)); } if (dbEndDate < dbStartDate) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.StRateInvalidEndDate)); } if (dbStartDate < strMainStartDate || dbEndDate > strMainEndDate) { throw new CaresException(string.Format(CultureInfo.InvariantCulture, Resources.Tariff.TariffRate.StRateInvalidRangeEffectiveDate)); } } } }
/// <summary> /// Delete Tariff Rate /// </summary> /// <param name="standardRateMain"></param> public void DeleteTariffRate(StandardRateMain standardRateMain) { standardRateMainRepository.Delete(standardRateMain); standardRateMainRepository.SaveChanges(); }
/// <summary> /// Add Tariff Rate /// </summary> /// <param name="standardRateMain"></param> /// <returns></returns> public TariffRateContent SaveTariffRate(StandardRateMain standardRateMain) { TariffType tariffType = tariffTypeRepository.Find(long.Parse(standardRateMain.TariffTypeCode)); standardRateMain.TariffTypeCode = tariffType.TariffTypeCode; #region Add if (standardRateMain.StandardRtMainId == 0) { StandardRateValidation(standardRateMain, true); standardRateMain.UserDomainKey = standardRateMainRepository.UserDomainKey; standardRateMain.IsActive = true; standardRateMain.IsDeleted = false; standardRateMain.IsPrivate = false; standardRateMain.IsReadOnly = false; standardRateMain.RecCreatedDt = DateTime.Now; standardRateMain.RecLastUpdatedDt = DateTime.Now; standardRateMain.RecCreatedBy = standardRateMainRepository.LoggedInUserIdentity; standardRateMain.RecLastUpdatedBy = standardRateMainRepository.LoggedInUserIdentity; standardRateMain.RowVersion = 0; //set child (Standard Rate in Standard Rate Main) properties #region Standard Rate in Standard Rate Main if (standardRateMain.StandardRates != null) { // set properties foreach (StandardRate item in standardRateMain.StandardRates) { item.IsActive = true; item.IsDeleted = false; item.IsPrivate = false; item.IsReadOnly = false; item.RecCreatedDt = DateTime.Now; item.RecLastUpdatedDt = DateTime.Now; item.RecCreatedBy = standardRateMainRepository.LoggedInUserIdentity; item.RecLastUpdatedBy = standardRateMainRepository.LoggedInUserIdentity; item.UserDomainKey = standardRateMainRepository.UserDomainKey; } } #endregion standardRateMainRepository.Add(standardRateMain); standardRateMainRepository.SaveChanges(); } #endregion #region Edit else { StandardRateValidation(standardRateMain, false); if (standardRateMain.StandardRates != null) { foreach (StandardRate standardRate in standardRateMain.StandardRates) { standardRate.IsActive = true; standardRate.IsDeleted = false; standardRate.IsPrivate = false; standardRate.IsReadOnly = false; standardRate.RecCreatedDt = DateTime.Now; standardRate.RecLastUpdatedDt = DateTime.Now; standardRate.RecCreatedBy = standardRateMainRepository.LoggedInUserIdentity; standardRate.RecLastUpdatedBy = standardRateMainRepository.LoggedInUserIdentity; standardRate.UserDomainKey = standardRateMainRepository.UserDomainKey; standardRate.StandardRtMainId = standardRateMain.StandardRtMainId; if (standardRate.StandardRtId > 0) { long oldRecordId = standardRate.StandardRtId; standardRate.StandardRtId = 0; standardRate.RevisionNumber = standardRate.RevisionNumber + 1; standardRateRepository.Add(standardRate); standardRateRepository.SaveChanges(); StandardRate oldStandardRate = standardRateRepository.Find(oldRecordId); oldStandardRate.ChildStandardRtId = standardRate.StandardRtId; standardRateRepository.SaveChanges(); } else { standardRateRepository.Add(standardRate); standardRateRepository.SaveChanges(); } } } } #endregion return(new TariffRateContent { StandardRtMainId = standardRateMain.StandardRtMainId, StandardRtMainCode = standardRateMain.StandardRtMainCode, StandardRtMainName = standardRateMain.StandardRtMainName, StandardRtMainDescription = standardRateMain.StandardRtMainDescription, StartDt = standardRateMain.StartDt, EndDt = standardRateMain.EndDt, TariffTypeId = tariffType.TariffTypeId, TariffTypeCodeName = tariffType.TariffTypeCode + " - " + tariffType.TariffTypeName, OperationId = tariffType.OperationId, OperationCodeName = tariffType.Operation.OperationCode + " - " + tariffType.Operation.OperationName, }); }