Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
            }
            }
        }