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); }
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); } }