public void Handle(EMP_ContractStage stage, bool result) { if (stage.EMP_Ref_StageStatus.Code != CodeConstManager.EmpContractStageStatus.InWork) { return; } var handler = new EmpContractStageHistoryHandler(_uow); if (result) { handler.SetStageApproved(stage); handler.AddHistoryApproved(stage.ContractId); var wasInAdjustment = stage.EMP_Contract.EMP_ContractHistory.Any(x => x.OBK_Ref_ContractHistoryStatus.Code == OBK_Ref_ContractHistoryStatus.Returned); if (wasInAdjustment) { var cozStage = stage.EMP_Contract.EMP_ContractStage.First(x => x.EMP_Ref_Stage.Code == CodeConstManager.EmpContractStage.Coz); cozStage.StageStatusId = _uow.GetQueryable <EMP_Ref_StageStatus>() .Where(x => x.Code == CodeConstManager.EmpContractStageStatus.ApprovalRequired).Select(x => x.Id) .FirstOrDefault(); } } else { handler.SetStageRejected(stage); handler.AddHistoryRejected(stage.ContractId); } _uow.Save(); }
public void Handle(EMP_ContractStage stage, bool result) { if (stage.EMP_Ref_StageStatus.Code != CodeConstManager.EmpContractStageStatus.New) { return; } var handler = new EmpContractStageHistoryHandler(_uow); if (result) { handler.SetStageApproved(stage); handler.AddHistoryApproved(stage.ContractId); } else { handler.SetStageRejected(stage); handler.AddHistoryRejected(stage.ContractId); var legalStage = stage.EMP_Contract.EMP_ContractStage.FirstOrDefault(x => x.EMP_Ref_Stage.Code == CodeConstManager.EmpContractStage.LegalDepartmant); if (legalStage != null) { handler.SetStageRejected(legalStage); } } var cozStage = stage.EMP_Contract.EMP_ContractStage.First(x => x.EMP_Ref_Stage.Code == CodeConstManager.EmpContractStage.Coz); cozStage.StageStatusId = _uow.GetQueryable <EMP_Ref_StageStatus>() .Where(x => x.Code == CodeConstManager.EmpContractStageStatus.ApprovalRequired).Select(x => x.Id) .FirstOrDefault(); _uow.Save(); }
public void Handle(EMP_ContractStage stage, bool result) { var handler = new EmpContractStageHistoryHandler(_uow); if (stage.EMP_Ref_StageStatus.Code == CodeConstManager.EmpContractStageStatus.InWork) { stage.StageStatusId = _uow.GetQueryable <EMP_Ref_StageStatus>() .Where(x => x.Code == CodeConstManager.EmpContractStageStatus.ApprovalRequired).Select(x => x.Id) .FirstOrDefault(); if (result) { handler.AddHistoryApproved(stage.ContractId); } else { handler.AddHistoryRejected(stage.ContractId); } _uow.Save(); return; } if (stage.EMP_Ref_StageStatus.Code == CodeConstManager.EmpContractStageStatus.ApprovalRequired) { if (result) { handler.SetStageApproved(stage); handler.AddHistoryApproved(stage.ContractId); } else { handler.SetStageRejected(stage); handler.AddHistoryRejected(stage.ContractId); var legalStage = stage.EMP_Contract.EMP_ContractStage.FirstOrDefault(x => x.EMP_Ref_Stage.Code == CodeConstManager.EmpContractStage.LegalDepartmant); if (legalStage != null) { handler.SetStageRejected(legalStage); } } var defStage = new EMP_ContractStage { Id = Guid.NewGuid(), DateCreate = DateTime.Now, ContractId = stage.ContractId, StageId = _uow.GetQueryable <EMP_Ref_Stage>() .Where(x => x.Code == CodeConstManager.EmpContractStage.Def).Select(x => x.Id) .FirstOrDefault(), StageStatusId = _uow.GetQueryable <EMP_Ref_StageStatus>() .Where(x => x.Code == CodeConstManager.EmpContractStageStatus.New).Select(x => x.Id) .FirstOrDefault() }; _uow.Insert(defStage); var defUnit = _uow.GetQueryable <Unit>().First(x => x.Code == "finance"); _uow.Insert(new EMP_ContractStageExecutors { Id = Guid.NewGuid(), EMP_ContractStage = defStage, ExecutorType = CodeConstManager.OBK_CONTRACT_STAGE_EXECUTOR_TYPE_EXECUTOR, ExecutorId = Guid.Parse(defUnit.BossId) }); _uow.Save(); return; } }
public void Handle(EMP_ContractStage stage, bool result) { if (stage.EMP_Ref_StageStatus.Code != CodeConstManager.EmpContractStageStatus.ApprovalRequired) { return; } var handler = new EmpContractStageHistoryHandler(_uow); if (result) { handler.SetStageApproved(stage); handler.AddHistoryApproved(stage.ContractId); } else { handler.SetStageRejected(stage); handler.AddHistoryRejected(stage.ContractId); } var legalStage = stage.EMP_Contract.EMP_ContractStage.FirstOrDefault(x => x.EMP_Ref_Stage.Code == CodeConstManager.EmpContractStage.LegalDepartmant); if (!result || IsRejectedInOtherStages(stage.EMP_Contract)) { if (legalStage != null) { handler.SetStageRejected(legalStage); } } else { if (legalStage != null) { legalStage.StageStatusId = _uow.GetQueryable <EMP_Ref_StageStatus>() .Where(x => x.Code == CodeConstManager.EmpContractStageStatus.Approved).Select(x => x.Id).FirstOrDefault(); } var ceoStage = new EMP_ContractStage { Id = Guid.NewGuid(), ContractId = stage.ContractId, DateCreate = DateTime.Now, StageId = _uow.GetQueryable <EMP_Ref_Stage>() .Where(x => x.Code == CodeConstManager.EmpContractStage.Ceo).Select(x => x.Id) .FirstOrDefault(), StageStatusId = _uow.GetQueryable <EMP_Ref_StageStatus>() .Where(x => x.Code == CodeConstManager.EmpContractStageStatus.ApprovalRequired) .Select(x => x.Id).FirstOrDefault() }; _uow.Insert(ceoStage); var ceoExecutor = new EMP_ContractStageExecutors { Id = Guid.NewGuid(), EMP_ContractStage = ceoStage, ExecutorType = CodeConstManager.OBK_CONTRACT_STAGE_EXECUTOR_TYPE_SIGNER, ExecutorId = _uow.GetQueryable <Unit>() .Where(x => x.Code == "ncels_deputyceo" && x.EmployeeId != null) .Select(x => x.EmployeeId.Value).FirstOrDefault() }; _uow.Insert(ceoExecutor); } _uow.Save(); }