public UpdateKpiTargetItemResponse SaveKpiTargetItem(SaveKpiTargetRequest request) { var response = new UpdateKpiTargetItemResponse(); try { var kpiTarget = request.MapTo <KpiTarget>(); if (request.Id != 0) { var attachedEntity = DataContext.KpiTargets.Find(request.Id); if (attachedEntity != null && DataContext.Entry(attachedEntity).State != EntityState.Detached) { DataContext.Entry(attachedEntity).State = EntityState.Detached; } DataContext.KpiTargets.Attach(kpiTarget); DataContext.Entry(kpiTarget).State = EntityState.Modified; DataContext.SaveChanges(); } else { kpiTarget.Kpi = DataContext.Kpis.FirstOrDefault(x => x.Id == request.KpiId); DataContext.KpiTargets.Add(kpiTarget); DataContext.SaveChanges(); } response.Id = kpiTarget.Id; response.IsSuccess = true; response.Message = "KPI Target item has been updated successfully"; } catch (DbUpdateException dbUpdateException) { response.Message = dbUpdateException.Message; } return(response); }
private BaseResponse UpdateKpiTarget(IEnumerable <ConfigurationViewModel.Item> data) { var response = new BaseResponse { IsSuccess = false, Message = "Data Not Valid" }; if (data != null) { var batch = new BatchUpdateTargetRequest(); foreach (var datum in data) { var prepare = new SaveKpiTargetRequest() { Value = datum.Value, KpiId = datum.KpiId, Periode = datum.Periode, PeriodeType = datum.PeriodeType, Remark = datum.Remark }; batch.BatchUpdateKpiTargetItemRequest.Add(prepare); } response = _kpiTargetService.BatchUpdateKpiTargetss(batch); } return(response); }
public UpdateKpiTargetItemResponse UpdateOriginalData(SaveKpiTargetRequest request) { var response = new UpdateKpiTargetItemResponse(); try { var action = request.MapTo <BaseAction>(); var kpiTarget = request.MapTo <KpiTarget>(); var user = DataContext.Users.First(x => x.Id == request.UserId); if (request.Id != 0) { if ((string.IsNullOrEmpty(request.Value) && request.Remark == null) || request.Value == "-" || (!string.IsNullOrEmpty(request.Value) && request.Value.ToLowerInvariant() == "null")) { kpiTarget = DataContext.KpiTargets.Single(x => x.Id == request.Id); DataContext.KpiTargets.Remove(kpiTarget); } else { kpiTarget = DataContext.KpiTargets .Include(x => x.Kpi) .Include(x => x.UpdatedBy) .Single(x => x.Id == request.Id); if (request.Value != null) { kpiTarget.Value = request.RealValue; } if (request.Remark != null) { kpiTarget.Remark = request.Remark; } //request.MapPropertiesToInstance<KpiAchievement>(kpiAchievement); kpiTarget.UpdatedBy = user; kpiTarget.Kpi = DataContext.Kpis.Single(x => x.Id == request.KpiId); } } else { var exist = DataContext.KpiTargets.FirstOrDefault(x => x.Kpi.Id == request.KpiId && x.PeriodeType == request.PeriodeType && x.Periode == request.Periode); if (exist != null) { if (request.Remark != null || !string.IsNullOrEmpty(request.Remark)) { exist.Remark = request.Remark; } if (!string.IsNullOrEmpty(request.Value) && request.Value.ToLowerInvariant() != "null" && request.Value != "-") { exist.Value = double.Parse(request.Value); } exist.UpdatedBy = user; exist.UpdatedDate = DateTime.Now; kpiTarget = exist; } else { kpiTarget.CreatedBy = user; kpiTarget.UpdatedBy = user; kpiTarget.Kpi = DataContext.Kpis.FirstOrDefault(x => x.Id == request.KpiId); DataContext.KpiTargets.Add(kpiTarget); } /* * if (((string.IsNullOrEmpty(request.Value) && request.Remark == null) || request.Value == "-" || * (!string.IsNullOrEmpty(request.Value) && request.Value.ToLowerInvariant() == "null")) && request.Id == 0) * { * response.IsSuccess = false; * response.Message = "You can not update this item because it is not existed"; * return response; * } * else { * kpiTarget.CreatedBy = user; * kpiTarget.UpdatedBy = user; * kpiTarget.Kpi = DataContext.Kpis.FirstOrDefault(x => x.Id == request.KpiId); * DataContext.KpiTargets.Add(kpiTarget); * } */ } DataContext.SaveChanges(action); response.Id = kpiTarget.Id; response.IsSuccess = true; response.Message = "KPI Target item has been updated successfully"; } catch (DbUpdateException dbUpdateException) { response.Message = dbUpdateException.Message; } catch (Exception exception) { response.Message = exception.Message; } return(response); }
public ActionResult UpdateKpi(UpdateKpiOriginalViewModel viewModel) { if (viewModel.Id == 0 && viewModel.Value == null) { return(null); } var sPeriodeType = viewModel.Type.Split('-')[0]; var periodeType = (PeriodeType)Enum.Parse(typeof(PeriodeType), sPeriodeType, true); var theDate = DateTime.ParseExact(viewModel.Date, "MM/dd/yyyy", CultureInfo.InvariantCulture); switch (periodeType) { case PeriodeType.Monthly: theDate = new DateTime(theDate.Year, theDate.Month, 1); break; case PeriodeType.Yearly: theDate = new DateTime(theDate.Year, 1, 1); break; } switch (viewModel.Type) { case "daily-actual": { var request = new UpdateKpiAchievementItemRequest { Periode = theDate, PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = viewModel.ValueType == "value" ? viewModel.Value : null, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI daily-actual KPI:{0}", viewModel.KpiId), ValueType = viewModel.ValueType }; var resp = _kpiAchievementService.UpdateOriginalData(request, true); return(Json(resp)); } case "monthly-actual": { var request = new UpdateKpiAchievementItemRequest { Periode = theDate, PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = viewModel.ValueType == "value" ? viewModel.Value : null, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI monthly-actual KPI:{0}", viewModel.KpiId), ValueType = viewModel.ValueType }; var resp = _kpiAchievementService.UpdateOriginalData(request, true); return(Json(resp)); } case "yearly-actual": { var request = new UpdateKpiAchievementItemRequest { Periode = theDate, PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = viewModel.ValueType == "value" ? viewModel.Value : null, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI yearly-actual KPI:{0}", viewModel.KpiId), ValueType = viewModel.ValueType }; var resp = _kpiAchievementService.UpdateOriginalData(request, true); return(Json(resp)); } // case gila-gilaan case "monthly-actual-prev": { var request = new UpdateKpiAchievementItemRequest { Periode = theDate.AddMonths(-1), PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = viewModel.ValueType == "value" ? viewModel.Value : null, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI monthly-actual-prev KPI:{0}", viewModel.KpiId), ValueType = viewModel.ValueType }; var resp = _kpiAchievementService.UpdateOriginalData(request, true); return(Json(resp)); } case "monthly-actual-jcc": { var request = new UpdateKpiAchievementItemRequest { Periode = theDate, PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = viewModel.ValueType == "value" ? viewModel.Value : null, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI monthly-actual-jcc KPI:{0}", viewModel.KpiId), }; var resp = _kpiAchievementService.UpdateCustomJccFormula(request); return(Json(resp)); } case "monthly-actual-bunker": { var request = new UpdateKpiAchievementItemRequest { Periode = theDate, PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = viewModel.ValueType == "value" ? viewModel.Value : null, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI monthly-actual-bunker KPI:{0}", viewModel.KpiId), }; var resp = _kpiAchievementService.UpdateCustomBunkerPriceFormula(request); return(Json(resp)); } case "daily-actual-dafwc": { string value = viewModel.ValueType == "value" ? viewModel.Value : null; if (viewModel.Value != null && viewModel.ValueType == "remark") { DateTime lastDAFWC; DateTime.TryParse(viewModel.Value, out lastDAFWC); if (lastDAFWC != null) { value = (theDate - lastDAFWC).TotalDays.ToString(); } } var request = new UpdateKpiAchievementItemRequest { Periode = theDate, PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = value, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI monthly-actual-dafwc KPI:{0}", viewModel.KpiId), ValueType = viewModel.ValueType }; var resp = _kpiAchievementService.UpdateOriginalData(request, true); return(Json(resp)); } default: { var request = new SaveKpiTargetRequest { Periode = theDate, PeriodeType = periodeType, Id = viewModel.Id, KpiId = viewModel.KpiId, UserId = UserProfile().UserId, Value = viewModel.ValueType == "value" ? viewModel.Value : null, Remark = viewModel.ValueType == "remark" ? viewModel.Value : null, ControllerName = "Der Input Form", ActionName = string.Format("UpdateKPI Save KPI Target Request KPI:{0}", viewModel.KpiId) }; var resp = _kpiTargetService.UpdateOriginalData(request); return(Json(resp)); } } }