Ejemplo n.º 1
0
        private PMS03001EditViewModel MakeEditViewModel(int id)
        {
            string companyCode = GetLoginUser().CompanyCode;
            var    model       = new PMS03001EditViewModel()
            {
                PHASE_LIST                  = this.GetPhaseList(companyCode, id),
                CATEGORY_LIST               = this.GetCategoryList(companyCode, id),
                CONTRACT_TYPE_PHASE_LIST    = new List <ContractTypePhasePlus>(),
                CONTRACT_TYPE_CATEGORY_LIST = new List <ContractTypeCategoryPlus>(),
                CheckPlanFlag               = true,
                CheckProgressFlag           = true,
                CheckPeriodFlag             = true,
                CheckSalesFlag              = true
            };

            if (id > 0)
            {
                model.ContractTypeInfo            = this.mainService.GetContractTypeInfo(companyCode, id);
                model.CONTRACT_TYPE_PHASE_LIST    = this.mainService.GetContractTypePhaseList(companyCode, id);
                model.CONTRACT_TYPE_CATEGORY_LIST = this.mainService.GetContractTypeCategoryList(companyCode, id);
            }

            return(model);
        }
Ejemplo n.º 2
0
        public ActionResult EditContractType(PMS03001EditViewModel model)
        {
            try
            {
                var loginUser = GetLoginUser();

                if (ModelState.IsValid)
                {
                    bool validData  = true;
                    bool existPhase = false;

                    foreach (var obj in model.CONTRACT_TYPE_PHASE_LIST)
                    {
                        if (obj.phase_id > 0)
                        {
                            existPhase = true;
                            break;
                        }
                    }

                    // Check not exist phase by contract type
                    if (!existPhase)
                    {
                        validData = false;
                        ModelState.AddModelError(string.Empty, string.Format(Resources.Messages.E017, "フェーズ"));
                    }

                    if (validData && model.ContractTypeInfo.contract_type_id > 0)
                    {
                        var oldContractTypePhaseList = this.mainService.GetContractTypePhaseList(loginUser.CompanyCode, model.ContractTypeInfo.contract_type_id);

                        foreach (var dataOld in oldContractTypePhaseList)
                        {
                            if (dataOld.project_count > 0)
                            {
                                bool validPhase = false;

                                foreach (var dataNew in model.CONTRACT_TYPE_PHASE_LIST)
                                {
                                    if (dataNew.phase_id == dataOld.phase_id)
                                    {
                                        validPhase = true;
                                        break;
                                    }
                                }

                                // Check phase existed in project cannot delete
                                if (!validPhase)
                                {
                                    validData = false;
                                    ModelState.AddModelError(string.Empty, string.Format(Resources.Messages.E059));
                                    break;
                                }
                            }
                        }
                    }

                    if (validData)
                    {
                        // Check limit data by license of company
                        if ((model.ContractTypeInfo.contract_type_id == 0 ||
                             (model.OLD_DEL_FLAG &&
                              Constant.DeleteFlag.NON_DELETE.Equals(model.ContractTypeInfo.del_flg))) &&
                            !this.commonService.CheckValidUpdateData(loginUser.CompanyCode, Constant.LicenseDataType.CONTRACT_TYPE))
                        {
                            JsonResult result = Json(
                                new
                            {
                                statusCode = 500,
                                message    = string.Format(Resources.Messages.E067, "契約種別")
                            },
                                JsonRequestBehavior.AllowGet);

                            return(result);
                        }

                        model.ContractTypeInfo.upd_date     = Utility.GetCurrentDateTime();
                        model.ContractTypeInfo.upd_id       = loginUser.UserId;
                        model.ContractTypeInfo.company_code = loginUser.CompanyCode;

                        int contractTypeID = 0;

                        // Update info
                        if (this.mainService.EditContractTypeInfo(model.ContractTypeInfo, model.CONTRACT_TYPE_PHASE_LIST, model.CONTRACT_TYPE_CATEGORY_LIST, out contractTypeID))
                        {
                            string action = model.ContractTypeInfo.contract_type_id > 0 ? "更新" : "登録";

                            model.ContractTypeInfo.contract_type_id = contractTypeID;
                            string message = String.Format(Resources.Messages.I007, "契約種別", action);

                            var data = this.mainService.GetContractTypeInfo(GetLoginUser().CompanyCode, contractTypeID);

                            JsonResult result = Json(
                                new
                            {
                                statusCode = 201,
                                message    = message,
                                id         = contractTypeID,
                                insDate    = (data.ins_date != null) ? data.ins_date.Value.ToString("yyyy/MM/dd HH:mm") : "",
                                updDate    = (data.upd_date != null) ? data.upd_date.Value.ToString("yyyy/MM/dd HH:mm") : "",
                                insUser    = data.ins_user,
                                updUser    = data.upd_user,
                                deleted    = data.del_flg.Equals(Constant.DeleteFlag.DELETE) ? true : false,
                            },
                                JsonRequestBehavior.AllowGet);

                            return(result);
                        }
                        else // has error when update
                        {
                            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);
            }
        }