Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
            }
        }