public ActionResult SendToOP(OBK_AssessmentDeclaration declaration) { var declarationStage = repo.OBK_AssessmentStage.FirstOrDefault(x => x.DeclarationId == declaration.Id && x.StageId == 15); if (declarationStage == null) { declarationStage = new OBK_AssessmentStage { Id = Guid.NewGuid(), StageId = 15, StageStatusId = 2, DeclarationId = declaration.Id, StartDate = DateTime.Now }; repo.OBK_AssessmentStage.Add(declarationStage); } else { declarationStage.StageStatusId = 2; declarationStage.StartDate = DateTime.Now; } var executor = repo.OBK_AssessmentStageExecutors.FirstOrDefault(x => x.AssessmentStageId == declarationStage.Id && x.ExecutorType == 2); if (executor == null) { executor = new OBK_AssessmentStageExecutors { AssessmentStageId = declarationStage.Id, ExecutorId = UserHelper.GetCurrentEmployee().Id, ExecutorType = 2 }; repo.OBK_AssessmentStageExecutors.Add(executor); } else { executor.ExecutorId = UserHelper.GetCurrentEmployee().Id; } var stage = repo.OBK_AssessmentStage.FirstOrDefault(x => x.DeclarationId == declaration.Id && x.StageId == 2); stage.StageStatusId = 13; stage.EndDate = DateTime.Now; stage.FactEndDate = stage.EndDate; declaration = repo.OBK_AssessmentDeclaration.FirstOrDefault(x => x.Id == declaration.Id); var status = repo.OBK_Ref_Status.FirstOrDefault(x => x.Code == "30"); declaration.StatusId = status.Id; repo.SaveChanges(); return(Json(new { isSuccess = true })); }
public string GetSignData(Guid id) { var reslutStage = AppContext.OBK_AssessmentStage.FirstOrDefault( e => e.DeclarationId == id && e.StageId == CodeConstManager.STAGE_OBK_EXPERTISE_DOC); if (reslutStage == null) { return(null); } OBK_AssessmentStage ad = new OBK_AssessmentStage { Id = reslutStage.Id, DeclarationId = reslutStage.DeclarationId }; var xmlData = SerializeHelper.SerializeDataContract(ad); return(xmlData.Replace("utf-16", "utf-8")); }
public ActionResult GetSign(Guid id) { var reslutStage = repo.OBK_AssessmentStage.FirstOrDefault( e => e.DeclarationId == id && e.StageId == CodeConstManager.STAGE_OBK_PIMS); if (reslutStage == null) { return(null); } OBK_AssessmentStage ad = new OBK_AssessmentStage { Id = reslutStage.Id, DeclarationId = reslutStage.DeclarationId }; var xmlData = SerializeHelper.SerializeDataContract(ad); var signData = xmlData.Replace("utf-16", "utf-8"); return(Json(new { data = signData }, JsonRequestBehavior.AllowGet)); }
public ActionResult Program(Guid declarationId) { var stage = repo.OBK_AssessmentStage.FirstOrDefault(x => x.DeclarationId == declarationId && x.StageId == programStageId); if (stage == null) { stage = new OBK_AssessmentStage { Id = Guid.NewGuid(), StartDate = DateTime.Now, DeclarationId = declarationId, StageId = programStageId, StageStatusId = repo.OBK_Ref_StageStatus.Where(x => x.Code == "OPProgramNew").Select(x => x.Id).FirstOrDefault() }; repo.OBK_AssessmentStage.Add(stage); var currentEmployeeId = UserHelper.GetCurrentEmployee().Id; var members = repo.OBK_OP_Commission .Where(x => x.DeclarationId == declarationId) .Select(x => new { x.RoleId, x.EmployeeId }) .ToList(); members.ForEach(member => { var executor = new OBK_AssessmentStageExecutors { AssessmentStageId = stage.Id, ExecutorId = member.EmployeeId, ExecutorType = member.RoleId == repo.OBK_OP_CommissionRoles.Single(x => x.Code == "Chairman").Id ? CodeConstManager.OBK_CONTRACT_STAGE_EXECUTOR_TYPE_ASSIGNING : CodeConstManager.OBK_CONTRACT_STAGE_EXECUTOR_TYPE_EXECUTOR }; repo.OBK_AssessmentStageExecutors.Add(executor); }); repo.SaveChanges(); } return(PartialView(declarationId)); }
/// <summary> /// Перевод заявления на следующий этап /// </summary> /// <param name="declaration"></param> /// <param name="stageCode"></param> public bool ToNextStage(Guid declarationId, Guid?fromStageId, int[] nextStageIds, out string resultDescription) { resultDescription = null; string[] activeStageCodes = { OBK_Ref_StageStatus.New, OBK_Ref_StageStatus.InWork, OBK_Ref_StageStatus.InReWork }; //var declaration = AppContext.OBK_AssessmentDeclaration.FirstOrDefault(e => e.Id == declarationId); //if (declaration.EXP_DIC_Type.Code != EXP_DIC_Type.Registration) //{ // //return ToNextStage(declaration, fromStageId, nextStageIds, out resultDescription); //} var currentStage = fromStageId != null ? AppContext.OBK_AssessmentStage.FirstOrDefault(e => e.Id == fromStageId) : AppContext.OBK_AssessmentStage.FirstOrDefault( e => e.DeclarationId == declarationId && activeStageCodes.Contains(e.OBK_Ref_StageStatus.Code)); var stageStatusNew = GetStageStatusByCode(OBK_Ref_StageStatus.New); //закрываем предыдущий этап if (currentStage != null) //&& CanCloseStage(currentStage, nextStageIds) { currentStage.StageStatusId = GetStageStatusByCode(OBK_Ref_StageStatus.Completed).Id; currentStage.FactEndDate = DateTime.Now; } var isAnalitic = false; foreach (var nextStageId in nextStageIds) { //if (!CanSendToStep(declarationId, fromStageId, nextStageId, out resultDescription)) return false; //если имеется уже выполняющийся этап то продолжаем его дальше if (AppContext.OBK_AssessmentStage.Any(e => e.DeclarationId == declarationId && e.StageId == nextStageId && e.OBK_Ref_StageStatus.Code != OBK_Ref_StageStatus.Completed && !e.IsHistory)) { continue; } //todo переделать дату окончания этапа var daysOnStage = 0;//GetExpStageDaysOnExecution(declaration.TypeId, nextStageId); var startDate = DateTime.Now; var newStage = new OBK_AssessmentStage() { Id = Guid.NewGuid(), DeclarationId = declarationId, StageId = nextStageId, ParentStageId = currentStage != null ? (Guid?)currentStage.Id : null, StageStatusId = stageStatusNew.Id, StartDate = startDate, EndDate = daysOnStage != null ? (DateTime?)startDate.AddDays(daysOnStage) : null }; //todo брать руководителя цоз из настроек newStage.Employees.Add(GetExecutorByDicStageId(nextStageId)); AppContext.OBK_AssessmentStage.Add(newStage); //if (nextStageId == CodeConstManager.STAGE_ANALITIC) //{ // isAnalitic = true; //} } AppContext.SaveChanges(); //if (isAnalitic) //{ // CreateDirectionMaterial(declarationId, GetExecutorByDicStageId(CodeConstManager.STAGE_ANALITIC)); //} return(true); }
/// <summary> /// Сохранение этапов заявления /// </summary> /// <param name="stage"></param> public void SaveStage(OBK_AssessmentStage stage) { AppContext.OBK_AssessmentStage.AddOrUpdate(stage); AppContext.SaveChanges(); }
public ActionResult SendToUOBK(Guid declarationId) { var declarationStage = repo.OBK_AssessmentStage.FirstOrDefault(x => x.DeclarationId == declarationId && x.StageId == 3); if (declarationStage == null) { declarationStage = new OBK_AssessmentStage { Id = Guid.NewGuid(), StageId = 2, StageStatusId = 1, DeclarationId = declarationId, StartDate = DateTime.Now }; repo.OBK_AssessmentStage.Add(declarationStage); } else { declarationStage.StageStatusId = 1; declarationStage.StartDate = DateTime.Now; } var executor = repo.OBK_AssessmentStageExecutors.FirstOrDefault(x => x.AssessmentStageId == declarationStage.Id && x.ExecutorType == 1); var expertOrganization = repo.OBK_AssessmentDeclaration.FirstOrDefault(x => x.Id == declarationId).OBK_Contract.ExpertOrganization; var organization = (repo.Units.FirstOrDefault(e => e.ParentId == expertOrganization && e.Code == OrganizationConsts.UobkDepartament) ?? repo.Units.FirstOrDefault(e => e.Parent.ParentId == expertOrganization && e.Code == OrganizationConsts.UobkDepartament)) ?? repo.Units.FirstOrDefault(e => e.Parent.Parent.ParentId == expertOrganization && e.Code == OrganizationConsts.UobkDepartament); var employeeIdstr = organization.BossId; var employeeId = new Guid(employeeIdstr); if (executor == null) { executor = new OBK_AssessmentStageExecutors { AssessmentStageId = declarationStage.Id, ExecutorId = employeeId, ExecutorType = CodeConstManager.OBK_CONTRACT_STAGE_EXECUTOR_TYPE_ASSIGNING }; repo.OBK_AssessmentStageExecutors.Add(executor); } else { executor.ExecutorId = employeeId; } var stage = repo.OBK_AssessmentStage.FirstOrDefault(x => x.DeclarationId == declarationId && x.StageId == 15); stage.StageStatusId = repo.OBK_Ref_StageStatus.Where(x => x.Code == "OPCompleted").Select(x => x.Id).Single(); stage.EndDate = DateTime.Now; stage.FactEndDate = stage.EndDate; var declaration = repo.OBK_AssessmentDeclaration.FirstOrDefault(x => x.Id == declarationId); var status = repo.OBK_Ref_Status.FirstOrDefault(x => x.Code == "6"); declaration.StatusId = status.Id; var reportOP = repo.OBK_AssessmentReportOP.FirstOrDefault(x => x.DeclarationId == declarationId); reportOP.StageStatusId = repo.OBK_Ref_StageStatus.Where(x => x.Code == "OPReportCompleted").Select(x => x.Id).FirstOrDefault(); repo.SaveChanges(); // new SafetyAssessmentRepository().AddHistory(declarationId, OBK_Ref_StageStatus.OPCompleted); return(Json(new { isSuccess = true })); }
/// <summary> /// Перевод заявления на следующий этап /// </summary> /// <param name="declaration"></param> /// <param name="stageCode"></param> public bool ToNextStage(OBK_AssessmentDeclaration declaration, Guid?fromStageId, int[] nextStageIds, out string resultDescription) { resultDescription = null; string[] activeStageCodes = { OBK_Ref_StageStatus.New, OBK_Ref_StageStatus.InWork, OBK_Ref_StageStatus.InReWork }; //var declaration = AppContext.OBK_AssessmentDeclaration.FirstOrDefault(e => e.Id == declarationId); //if (declaration.EXP_DIC_Type.Code != EXP_DIC_Type.Registration) //{ // //return ToNextStage(declaration, fromStageId, nextStageIds, out resultDescription); //} var currentStage = fromStageId != null ? AppContext.OBK_AssessmentStage.FirstOrDefault(e => e.Id == fromStageId) : AppContext.OBK_AssessmentStage.FirstOrDefault( e => e.DeclarationId == declaration.Id && activeStageCodes.Contains(e.OBK_Ref_StageStatus.Code)); var stageStatusNew = GetStageStatusByCode(OBK_Ref_StageStatus.New); //закрываем предыдущий этап if (currentStage != null) //&& CanCloseStage(currentStage, nextStageIds) { currentStage.StageStatusId = GetStageStatusByCode(OBK_Ref_StageStatus.Completed).Id; currentStage.FactEndDate = DateTime.Now; } var isAnalitic = false; foreach (var nextStageId in nextStageIds) { //if (!CanSendToStep(declarationId, fromStageId, nextStageId, out resultDescription)) return false; //если имеется уже выполняющийся этап то продолжаем его дальше if (AppContext.OBK_AssessmentStage.Any(e => e.DeclarationId == declaration.Id && e.StageId == nextStageId && e.OBK_Ref_StageStatus.Code != OBK_Ref_StageStatus.Completed && !e.IsHistory)) { continue; } //todo переделать дату окончания этапа var daysOnStage = 0;//GetExpStageDaysOnExecution(declaration.TypeId, nextStageId); var startDate = DateTime.Now; var newStage = new OBK_AssessmentStage() { Id = Guid.NewGuid(), DeclarationId = declaration.Id, StageId = nextStageId, ParentStageId = currentStage != null ? (Guid?)currentStage.Id : null, StageStatusId = stageStatusNew.Id, StartDate = startDate, EndDate = daysOnStage != null ? (DateTime?)startDate.AddDays(daysOnStage) : null }; var newStageExecutor = new OBK_AssessmentStageExecutors { AssessmentStageId = newStage.Id, ExecutorId = GetExecutorByDicStageId(nextStageId, declaration.OBK_Contract.ExpertOrganization, declaration.TypeId).Id, ExecutorType = CodeConstManager.OBK_CONTRACT_STAGE_EXECUTOR_TYPE_ASSIGNING }; newStage.OBK_AssessmentStageExecutors.Add(newStageExecutor); var ex = AppContext.OBK_AssessmentDeclaration.Where(r => r.ContractId == newStage.DeclarationId).FirstOrDefault(); new SafetyAssessmentRepository().AddHistory(declaration.Id, OBK_Ref_StageStatus.New, newStageExecutor.ExecutorId); AppContext.OBK_AssessmentStage.Add(newStage); } AppContext.SaveChanges(); return(true); }