public ActionResult ConfigurationPartial(ConfigurationParamViewModel paramViewModel) { int roleGroupId = paramViewModel.Id; PeriodeType pType = string.IsNullOrEmpty(paramViewModel.PeriodeType) ? PeriodeType.Yearly : (PeriodeType)Enum.Parse(typeof(PeriodeType), paramViewModel.PeriodeType); var request = new GetKpiAchievementsConfigurationRequest(); request.PeriodeType = pType.ToString(); request.RoleGroupId = roleGroupId; request.Year = paramViewModel.Year; request.Month = paramViewModel.Month; var response = _kpiAchievementService.GetKpiAchievementsConfiguration(request); if (response.IsSuccess) { var viewModel = response.MapTo <ConfigurationKpiAchievementsViewModel>(); viewModel.Year = request.Year; viewModel.Month = request.Month; viewModel.Years = _dropdownService.GetYears().MapTo <SelectListItem>(); viewModel.Months = _dropdownService.GetMonths().MapTo <SelectListItem>(); viewModel.PeriodeType = pType.ToString(); viewModel.FileName = this._ExportToExcel(viewModel); return(PartialView("Configuration/_" + pType.ToString(), viewModel)); } return(base.ErrorPage(response.Message)); }
private OperationDataConfigurationViewModel ConfigurationViewModel(OperationDataParamConfigurationViewModel paramViewModel, bool?isIncludeGroup) { PeriodeType pType = string.IsNullOrEmpty(paramViewModel.PeriodeType) ? PeriodeType.Yearly : (PeriodeType)Enum.Parse(typeof(PeriodeType), paramViewModel.PeriodeType); var request = paramViewModel.MapTo <GetOperationDataConfigurationRequest>(); request.PeriodeType = pType; request.IsPartial = isIncludeGroup.HasValue && isIncludeGroup.Value; var response = _operationDataService.GetOperationDataConfiguration(request); var viewModel = response.MapTo <OperationDataConfigurationViewModel>(); viewModel.Years = _dropdownService.GetYearsForOperationData().MapTo <SelectListItem>(); viewModel.PeriodeType = pType.ToString(); viewModel.Year = request.Year; viewModel.ConfigType = ConfigType.OperationData.ToString(); return(viewModel); }
public ActionResult DownloadTemplateForAllGroup(OperationDataParamConfigurationViewModel paramViewModel) { PeriodeType pType = string.IsNullOrEmpty(paramViewModel.PeriodeType) ? PeriodeType.Yearly : (PeriodeType)Enum.Parse(typeof(PeriodeType), paramViewModel.PeriodeType); var request = paramViewModel.MapTo <GetOperationDataConfigurationRequest>(); request.PeriodeType = pType; request.IsPartial = false; var response = _operationDataService.GetOperationDataConfigurationForAllGroup(request); var viewModel = response.MapTo <OperationDataConfigurationViewModel>(); viewModel.Years = _dropdownService.GetYearsForOperationData().MapTo <SelectListItem>(); viewModel.PeriodeType = pType.ToString(); viewModel.Year = request.Year; viewModel.ConfigType = ConfigType.OperationData.ToString(); return(ConvertToExcelFile(paramViewModel, viewModel)); }
public ActionResult UpdatePartial(int id, string periodeType) { int pmsSummaryId = id; PeriodeType pType = (PeriodeType)Enum.Parse(typeof(PeriodeType), periodeType); var request = new GetKpiAchievementsRequest { PeriodeType = pType, PmsSummaryId = pmsSummaryId }; var response = _kpiAchievementService.GetKpiAchievements(request); string view = pType == PeriodeType.Yearly ? "_yearly" : "_monthly"; if (response.IsSuccess) { var viewModel = response.MapTo <UpdateKpiAchievementsViewModel>(); viewModel.PeriodeType = pType.ToString(); viewModel.PmsSummaryId = pmsSummaryId; return(PartialView(view, viewModel)); } return(Content(response.Message)); }
public ActionResult Update(int id, string periodeType) { int pmsSummaryId = id; PeriodeType pType = string.IsNullOrEmpty(periodeType) ? PeriodeType.Yearly : (PeriodeType)Enum.Parse(typeof(PeriodeType), periodeType); var request = new GetKpiAchievementsRequest { PeriodeType = pType, PmsSummaryId = pmsSummaryId }; var response = _kpiAchievementService.GetKpiAchievements(request); if (response.IsSuccess) { var viewModel = response.MapTo <UpdateKpiAchievementsViewModel>(); viewModel.PmsSummaryId = pmsSummaryId; viewModel.PeriodeType = pType.ToString(); viewModel.PeriodeTypes = _dropdownService.GetPeriodeTypesForKpiTargetAndAchievement().MapTo <SelectListItem>(); return(View("Update", viewModel)); } return(base.ErrorPage(response.Message)); }
private DisplayKpiInformationViewModel GetGeneralDerKpiInformations(int numberOfKpi, GetDerLayoutitemResponse layout, DateTime date, PeriodeType periodeType) { var viewModel = new DisplayKpiInformationViewModel(); for (int i = 0; i < numberOfKpi; i++) { var kpiInformationVm = new DisplayKpiInformationViewModel.KpiInformationViewModel { Position = i }; var item = layout.KpiInformations.FirstOrDefault(x => x.Position == i) ?? new GetDerLayoutitemResponse.KpiInformationResponse { Position = i }; if (item.Kpi != null) { kpiInformationVm = item.MapTo<DisplayKpiInformationViewModel.KpiInformationViewModel>(); //var achievement = _kpiAchievementService.GetKpiAchievement(item.Kpi.Id, date, periodeType); //kpiInformationVm.DerItemValue = achievement.MapTo<DerItemValueViewModel>(); if (item.ConfigType.Equals(ConfigType.KpiAchievement)) { var achievement = new Services.Responses.KpiAchievement.GetKpiAchievementResponse(); if (item.Kpi.Id == 62) { achievement = _kpiAchievementService.GetKpiAchievement(item.Kpi.Id, new DateTime(date.Year, date.Month, 1), PeriodeType.Monthly); } else if (item.Kpi.Id == 385) { var prevMonth = date.AddMonths(-1); achievement = _kpiAchievementService.GetKpiAchievement(item.Kpi.Id, new DateTime(prevMonth.Year, prevMonth.Month, 1), PeriodeType.Monthly); } else { achievement = _kpiAchievementService.GetKpiAchievement(item.Kpi.Id, date, periodeType); } kpiInformationVm.DerItemValue = achievement.MapTo<DerItemValueViewModel>(); } else if (item.ConfigType.Equals(ConfigType.KpiTarget)) { var target = _kpiTargetService.GetKpiTargetByValue(new GetKpiTargetRequestByValue { Kpi_Id = item.Kpi.Id, periode = date, PeriodeType = periodeType.ToString() }); kpiInformationVm.DerItemValue = target.MapTo<DerItemValueViewModel>(); } } viewModel.KpiInformationViewModels.Add(kpiInformationVm); } return viewModel; }
private ReadExcelFileModel _ReadExcelFile(string filename) { var response = new ReadExcelFileModel(); try { int inserted = 0; int skipped = 0; int rejected = 0; var listPrev = new List <UpdateKpiAchievementsViewModel.KpiAchievementItem>(); var file = Server.MapPath(filename); var userId = UserProfile().UserId; Workbook workbook = new Workbook(); using (FileStream stream = new FileStream(file, FileMode.Open)) { workbook.LoadDocument(stream, DevExpress.Spreadsheet.DocumentFormat.OpenXml); foreach (var worksheet in workbook.Worksheets) { string[] name = worksheet.Name.Split('_'); //if (name.Count() > 0 && name[0] != "Sheet1" && (name[0] == PeriodeType.Daily.ToString() || name[0] == PeriodeType.Hourly.ToString() || name[0] == PeriodeType.Monthly.ToString() || name[0] == PeriodeType.Weekly.ToString() || name[0] == PeriodeType.Yearly.ToString())) if (name[0] == "Daily" || name[0] == "Monthly" || name[0] == "Yearly") { string periodType = name[0]; PeriodeType pType = string.IsNullOrEmpty(periodType) ? PeriodeType.Yearly : (PeriodeType)Enum.Parse(typeof(PeriodeType), periodType); string period = name[name.Count() - 1]; string[] periodes = null; int tahun, bulan; //validate and switch value by periodType if (periodType != period && !string.IsNullOrEmpty(period)) { switch (periodType) { case "Daily": periodes = period.Split('-'); tahun = int.Parse(periodes[0]); bulan = int.Parse(periodes[periodes.Count() - 1]); break; case "Monthly": tahun = int.Parse(period); break; case "Yearly": default: break; } } //coba baca value workbook.Worksheets.ActiveWorksheet = worksheet; //get row Range range = worksheet.GetUsedRange(); int rows = range.RowCount; int column = range.ColumnCount - 2; int kpiId = 0; DateTime periodData = new DateTime(); double? nilai = null; for (int i = 1; i < rows; i++) { //get rows for (int j = 0; j < column; j++) { bool fromExistedToNull = false; var prepareDataContainer = new UpdateKpiAchievementsViewModel.KpiAchievementItem(); //get rows header and period if (j == 0) { if (worksheet.Cells[i, j].Value.Type == CellValueType.Numeric) { kpiId = int.Parse(worksheet.Cells[i, j].Value.ToString()); } } else if (j > 1) { if (worksheet.Cells[0, j].Value.Type == CellValueType.DateTime) { periodData = DateTime.Parse(worksheet.Cells[0, j].Value.ToString()); } if (worksheet.Cells[i, j].Value.Type == CellValueType.Numeric) { nilai = double.Parse(worksheet.Cells[i, j].Value.ToString()); } else if (worksheet.Cells[i, j].Value.Type == CellValueType.Text) { fromExistedToNull = true; nilai = null; } else { nilai = null; } bool isValidKpi = false; if (!this.UserProfile().IsSuperAdmin) { skipped++; isValidKpi = _kpiService.IsValidKpi(new Services.Requests.Kpi.GetKpiByRole { RoleId = this.UserProfile().RoleId }); } else { isValidKpi = true; } if (isValidKpi && (nilai != null || fromExistedToNull)) { prepareDataContainer.Value = nilai.ToString(); prepareDataContainer.KpiId = kpiId; prepareDataContainer.Periode = periodData; prepareDataContainer.PeriodeType = pType; var oldKpiAchievement = _kpiAchievementService.GetKpiAchievementByValue( new GetKpiAchievementRequestByValue { KpiId = kpiId, Periode = periodData, PeriodeType = periodType }); if (oldKpiAchievement.IsSuccess) { prepareDataContainer.Id = oldKpiAchievement.Id; } else { var fixedError = false; if (oldKpiAchievement.ExceptionType != null && oldKpiAchievement.ExceptionType == typeof(InvalidOperationException)) { //var delete = _kpiAchievementService.DeleteKpiAchievement(kpiId, periodData, pType); var delete = _kpiAchievementService.DeleteKpiAchievement(new DeleteKpiAchievementRequest { kpiId = kpiId, periode = periodData, periodeType = pType, ControllerName = "KPI Achievement", ActionName = "Read Excel File", UserId = UserProfile().UserId }); fixedError = delete.IsSuccess; } if (!fixedError) { throw new Exception(string.Format(@"KPI with id {0} and periode {1} and periode type {2} can't be inserted", kpiId, periodData.ToShortDateString(), pType.ToString())); } } var request = prepareDataContainer.MapTo <UpdateKpiAchievementItemRequest>(); request.UserId = userId; request.UpdateFrom = "KPIAchievementForm"; var insert = _kpiAchievementService.UpdateKpiAchievementItem(request); if (insert.IsSuccess) { inserted++; } else { rejected++; } } } } } response.isSuccess = true; response.Message = "Success :" + inserted + "\r\n"; response.Message += "Skipped :" + skipped + "\r\n"; response.Message += "Rejected :" + rejected + "\r\n"; } else { response.isSuccess = false; response.Message = "File Not Valid"; break; } } } } catch (Exception exception) { response.Message = exception.Message; response.isSuccess = false; } return(response); }