public async Task <ActionResult> CreateVat(AddVatViewModel request) { if (!ModelState.IsValid) { Alert($"Invalid Request.", NotificationType.error, Int32.Parse(_appConfig.Value.NotificationDisplayTime)); return(RedirectToAction(nameof(Vats), new { id = request.VatCategoryId })); } try { var addVatRequest = new AddVatRequest { VatCategoryId = request.VatCategoryId, Rate = request.Rate, EffectiveDate = request.EffectiveDate, EndDate = request.EndDate }; var result = await _vatService.Create(addVatRequest); if (!result.Success) { Alert($"{result.Message}", NotificationType.info, Int32.Parse(_appConfig.Value.NotificationDisplayTime)); return(RedirectToAction(nameof(Vats), new { id = request.VatCategoryId })); } Alert($"Vat Created Successfully", NotificationType.success, Int32.Parse(_appConfig.Value.NotificationDisplayTime)); return(RedirectToAction(nameof(Vats), new { id = request.VatCategoryId })); } catch (Exception ex) { Alert($"Error! {ex.Message}.", NotificationType.error, Int32.Parse(_appConfig.Value.NotificationDisplayTime)); return(RedirectToAction(nameof(Vats), new { id = request.VatCategoryId })); } }
public async Task <ServiceResponse <Vat> > Create(AddVatRequest request) { try { var vatCategory = await _vatService.FindByIdInclusive(request.VatCategoryId, x => x.Include(p => p.Vats)); if (!vatCategory.Success) { return(new ServiceResponse <Vat>($"The Packaging type does not exist")); } if (vatCategory.Data.Vats.Count > 0 && vatCategory.Data.Vats.Any(x => x.Rate.Equals(request.Rate))) { return(new ServiceResponse <Vat>($"The Packaging already exist exist")); } var vat = new Vat { Rate = request.Rate, Code = GenerateCode(8), EffectiveDate = request.EffectiveDate, EndDate = request.EndDate, VatCategoryId = vatCategory.Data.Id }; var exist = await _baseRepository.GetByIdAndCode(vat.Id, vat.Code); if (exist != null) { return(new ServiceResponse <Vat>($"A Vat With the Provided Code and or Id Already Exist")); } var exist2 = await _baseRepository.FindOneByConditions(x => x.Rate.Equals(vat.Rate)); if (exist2 != null) { return(new ServiceResponse <Vat>($"A Vat With the Provided Name Already Exist")); } await _baseRepository.Create(vat); return(new ServiceResponse <Vat>(vat)); } catch (Exception ex) { return(new ServiceResponse <Vat>($"An Error Occured While Creating The Vat. {ex.Message}")); } }