Ejemplo n.º 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;
        }
Ejemplo n.º 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;
        }
Ejemplo n.º 3
0
        private BaseResponse _UpdateKpiTarget(List<ConfigurationViewModel.Item> datas)
        {
            var response = new BaseResponse();
            if (datas != null)
            {
                var batch = new BatchUpdateTargetRequest();
                foreach (var data in datas)
                {
                    var prepare = new SaveKpiTargetRequest() { Value = data.Value, KpiId = data.KpiId, Periode = data.Periode, PeriodeType = data.PeriodeType, Remark = data.Remark };
                    batch.BatchUpdateKpiTargetItemRequest.Add(prepare);
                }
                response = _kpiTargetService.BatchUpdateKpiTargetss(batch);

            }
            return response;
        }
Ejemplo n.º 4
0
        public UpdateKpiTargetItemResponse UpdateOriginalData(SaveKpiTargetRequest request)
        {
            var response = new UpdateKpiTargetItemResponse();
            try
            {
                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.Id = exist.Id;
                    }
                    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();
                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;
        }
Ejemplo n.º 5
0
        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":
                case "monthly-actual":
                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
                        };
                        var resp = _kpiAchievementService.UpdateOriginalData(request);
                        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
                        };
                        var resp = _kpiAchievementService.UpdateOriginalData(request);
                        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
                        };
                        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
                        };
                        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
                        };
                        var resp = _kpiAchievementService.UpdateOriginalData(request);
                        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
                        };
                        var resp = _kpiTargetService.UpdateOriginalData(request);
                        return Json(resp);
                    }
            }
        }