/// <summary> /// Make company Detail View /// </summary> /// <returns>Company Detail View Model</returns> private PMS10003CompanyDetailViewModel MakeCompanyDetailViewModel() { var model = new PMS10003CompanyDetailViewModel(); model.COMPANY_SETTING = this._service.GetCompanySetting(GetLoginUser().CompanyCode); model.SPECIAL_HOLIDAY_LIST = this._service.GetListSpecialHoliday(GetLoginUser().CompanyCode); List <int> listWeeklyHoliday = new List <int>(); if (model.COMPANY_SETTING.default_holiday_type != null) { listWeeklyHoliday = model.COMPANY_SETTING.default_holiday_type.Split(',').Select(int.Parse).ToList(); } for (int i = 0; i < 7; i++) { if (listWeeklyHoliday.Contains(i)) { model.HOLIDAY_TYPE_LIST.Add(new Weekday(true)); } else { model.HOLIDAY_TYPE_LIST.Add(new Weekday(false)); } } int checkPointWeek = 0; if (!string.IsNullOrEmpty(model.COMPANY_SETTING.check_point_week)) { checkPointWeek = int.Parse(model.COMPANY_SETTING.check_point_week); } for (int i = 0; i < 7; i++) { if (checkPointWeek == i) { model.CHECK_POINT_WEEK_LIST.Add(new WeekPointDay(true)); } else { model.CHECK_POINT_WEEK_LIST.Add(new WeekPointDay(false)); } } return(model); }
public ActionResult EditCompanyDetail(PMS10003CompanyDetailViewModel model) { try { if (ModelState.IsValid) { int checkPointWeek = 0; for (int i = 0; i < 7; i++) { if (model.CHECK_POINT_WEEK_LIST.ElementAt(i).isCheckPointWeek) { checkPointWeek = i; } } List <int> listHolidayInWeek = new List <int>(); for (int i = 0; i < 7; i++) { if (model.HOLIDAY_TYPE_LIST.ElementAt(i).isHoliday) { listHolidayInWeek.Add(i); } } // check default holiday type if (listHolidayInWeek.Count == 7) { ModelState.AddModelError("", Messages.E061); ViewBag.ErrorClass = "label-validation-error"; return(View("CompanyDetail", model)); } else { // create list of special holiday date List <DateTime> listSpecialHolidayDate = new List <DateTime>(); foreach (var holiday in model.SPECIAL_HOLIDAY_LIST) { if (holiday.holiday_date != null) { listSpecialHolidayDate.Add((DateTime)holiday.holiday_date); } } // create list of special holiday year-month List <YearMonth> listSpecialYearMonth = new List <YearMonth>(); foreach (var holiday_date in listSpecialHolidayDate) { YearMonth ym = new YearMonth(); ym.Year = holiday_date.Year; ym.Month = holiday_date.Month; // Check if this month has been checked if (!listSpecialYearMonth.Contains(ym)) { // check if thif month have non of working time if (isNonOfWorkingDay(ym, listHolidayInWeek, listSpecialHolidayDate)) { ModelState.AddModelError("", Messages.E062); ViewBag.ErrorClass = "label-validation-error"; ViewBag.ErrorClassNonWorking = "label-validation-error"; return(View("CompanyDetail", model)); } listSpecialYearMonth.Add(ym); } } } var DateTimeNow = Utility.GetCurrentDateTime(); var currentUserId = GetLoginUser().UserId; model.COMPANY_SETTING.default_holiday_type = string.Join(",", listHolidayInWeek); model.COMPANY_SETTING.upd_date = DateTimeNow; model.COMPANY_SETTING.upd_id = currentUserId; model.COMPANY_SETTING.company_code = GetLoginUser().CompanyCode; model.COMPANY_SETTING.check_point_week = checkPointWeek.ToString(); foreach (var holiday in model.SPECIAL_HOLIDAY_LIST) { holiday.ins_id = currentUserId; holiday.ins_date = DateTimeNow; } if (_service.EditCompanyDetail(model.COMPANY_SETTING, model.SPECIAL_HOLIDAY_LIST)) { var currentUser = GetLoginUser(); if (currentUser.DecimalCalculationType != model.COMPANY_SETTING.decimal_calculation_type) { currentUser.DecimalCalculationType = model.COMPANY_SETTING.decimal_calculation_type; } if (currentUser.Working_time_unit_minute != model.COMPANY_SETTING.working_time_unit_minute) { currentUser.Working_time_unit_minute = model.COMPANY_SETTING.working_time_unit_minute; } SetLoginUser(currentUser); string action = !string.IsNullOrEmpty(model.COMPANY_SETTING.company_code) ? "更新" : "登録"; string message = string.Format(Resources.Messages.I007, "会社情報詳細", action); var data = this._service.GetCompanySetting(model.COMPANY_SETTING.company_code); JsonResult result = Json( new { statusCode = 201, message = message, id = model.COMPANY_SETTING.company_code, insDate = (data.ins_date != null) ? data.ins_date.ToString("yyyy/MM/dd HH:mm") : "", updDate = (data.upd_date != null) ? data.upd_date.ToString("yyyy/MM/dd HH:mm") : "", insUser = data.user_regist, updUser = data.user_update, }, JsonRequestBehavior.AllowGet); return(result); } else { ModelState.AddModelError("", Resources.Messages.E001); JsonResult result = Json( new { statusCode = 500, message = string.Format(Resources.Messages.E045, "フェーズ情報") }, JsonRequestBehavior.AllowGet); return(result); } } return(new EmptyResult()); } catch { JsonResult result = Json( new { statusCode = 500, message = string.Format(Resources.Messages.E045, "会社情報詳細") }, JsonRequestBehavior.AllowGet); return(result); } }