Esempio n. 1
0
        public ActionResult GetModelProfessionState(int modelVersionId, int professionId)
        {
            var modelVersion = new FileVersionService().Get(e => e.Id == modelVersionId);

            if (modelVersion == null)
            {
                throw new ArgumentNullException(nameof(modelVersion));
            }

            if (!new PermissionService().CanUserVisitProject(CurrentCustomer, modelVersion.EngineeringFile.Engineering.ProjectId))
            {
                return(NoAuthorityJson());
            }

            var modelProfession = new ModelProfessionService().Get(e => e.ModelVersionId == modelVersionId && e.ProfessionId == professionId);

            var customerRoles = CurrentCustomer.CustomerRoles.Where(e => e.ProjectId == modelVersion.EngineeringFile.Engineering.ProjectId && e.FinishTime == null);

            string roleDes = CurrentCustomer.GetCurrentRoleDes(professionId, modelVersion.EngineeringFile.Engineering);

            ModelProfessionOperateModel operateModel = null;

            if (professionId != 0 && modelProfession != null)
            {
                var roles = CurrentCustomer.GetCurrentRoles(professionId, modelProfession.EngineerFile.Engineering);
                operateModel = PrepareOperateModel(modelProfession, roles);
            }

            return(Json(new { result = true, roleDes = roleDes, htmlStr = base.RenderPartialViewToString("_ModelProfessionOperate", operateModel) }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        protected ModelProfessionOperateModel PrepareOperateModel(ModelProfession modelProfession, List <Role> roles)
        {
            if (!roles.Contains(Role.Checker) && !roles.Contains(Role.Reviewer))
            {
                return(null);
            }

            if (modelProfession.EngineerFile.Engineering.Project.FileTime.HasValue)
            {
                return(null);
            }

            ModelProfessionOperateModel model = new ModelProfessionOperateModel();

            model.ModelProfessionId = modelProfession.Id;
            model.Status            = modelProfession.Status;
            model.Roles             = roles;

            if (roles.Contains(Role.Checker) && (modelProfession.Status == FlowCode.Pre_AuditCompany_ProjectManager_ConformComplate || modelProfession.Status == FlowCode.AuditCompany_ProfessionReaudit_Reject_ProfessionAudit || modelProfession.Status == FlowCode.AuditCompany_ProjectManager_Sign_BuildCompany))
            {
                model.CanCheckerSubmit = !new CommentService().HasAuditorNoAuditComment(modelProfession.ProfessionId, modelProfession.EngineeringFileId);
            }
            if (roles.Contains(Role.Reviewer) && modelProfession.Status == FlowCode.AuditCompany_ProfessionAudit_Submit)
            {
                model.CanReviewerSubmit = new CommentService().HasReaudorCanSubmitToProjectManagerComment(modelProfession.ProfessionId, modelProfession.EngineeringFileId);
                model.CanReviewerReturn = !new CommentService().ReaudorHasNoOperationToProfessionAudit(modelProfession.ProfessionId, modelProfession.EngineeringFileId);
            }
            if (roles.Contains(Role.Reviewer) && modelProfession.Status == FlowCode.DesignCompany_Submit_AuditCompany_ProfessionReaudit)
            {
                model.CanReviewerSubmit = new CommentService().HasReaudorCanSubmitToProjectManagerComment(modelProfession.ProfessionId, modelProfession.EngineeringFileId);
            }

            return(model);
        }