/// <summary> /// Create a new RiskApproval object. /// </summary> /// <param name="approvalId">Initial value of the ApprovalId property.</param> /// <param name="riskId">Initial value of the RiskId property.</param> /// <param name="orgPos">Initial value of the OrgPos property.</param> /// <param name="lastApproval">Initial value of the LastApproval property.</param> /// <param name="isReadOnly">Initial value of the IsReadOnly property.</param> public static RiskApproval CreateRiskApproval(global::System.Int32 approvalId, global::System.Int32 riskId, global::System.Int32 orgPos, global::System.Boolean lastApproval, global::System.Boolean isReadOnly) { RiskApproval riskApproval = new RiskApproval(); riskApproval.ApprovalId = approvalId; riskApproval.RiskId = riskId; riskApproval.OrgPos = orgPos; riskApproval.LastApproval = lastApproval; riskApproval.IsReadOnly = isReadOnly; return riskApproval; }
public static void CreateFirstApprovalSchedule(int riskId, AskrindoMVCEntities db) { var risk = db.Risks.Single(p => p.RiskId == riskId); RiskApproval app; app = db.RiskApprovals.Where(p => p.RiskId == riskId && p.OrgPos == risk.OrgPos).FirstOrDefault(); if (app == null) { app = new RiskApproval(); app.RiskId = riskId; app.OrgPos = risk.OrgPos; switch (app.OrgPos) { case ORGPOS_DEPT: app.DeptId = risk.DeptId; app.OrgName = risk.Dept.DeptName; break; case ORGPOS_SUBDEPT: app.SubDeptId = risk.SubDeptId; app.OrgName = risk.SubDept.SubDeptName; break; case ORGPOS_DIVISION: app.DivisionId = risk.DivisionId; app.OrgName = risk.Division.DivisionName; break; case ORGPOS_SUBDIV: app.SubDivId = risk.SubDivId; app.OrgName = risk.SubDiv.SubDivName; break; case ORGPOS_BRANCH: app.BranchId = risk.BranchId; app.OrgName = risk.Branch.BranchName; break; case ORGPOS_SUBBRANCH: app.SubBranchId = risk.SubBranchId; app.OrgName = risk.SubBranch.SubBranchName; break; case ORGPOS_BIZUNIT: app.BizUnitId = risk.BizUnitId; app.OrgName = risk.BizUnit.BizUnitName; break; } app.LimitDate = risk.RiskDate.AddDays(MAX_LIMIT_APPROVAL_DAYS); app.LastApproval = app.OrgPos == ORGPOS_SUBDEPT || app.OrgPos == ORGPOS_DIVISION || app.OrgPos == ORGPOS_BRANCH; app.IsReadOnly = false; db.RiskApprovals.AddObject(app); } }
/// <summary> /// Deprecated Method for adding a new object to the RiskApprovals EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToRiskApprovals(RiskApproval riskApproval) { base.AddObject("RiskApprovals", riskApproval); }
public ActionResult ApproveRiskConfirmed(int id) { using (TransactionScope trans = new TransactionScope()) { try { UserData data = Utils.LoadUserDataFromSession(); RiskApproval apr = db.RiskApprovals.Where(p => p.ApprovalId == id).FirstOrDefault(); apr.ApprovalDate = DateTime.Now; apr.UserId = data.UserId; apr.JobTitle = data.JobTitle; db.SaveChanges(); apr.Risk.IsReadOnly = true; db.SaveChanges(); if (apr.LastApproval) { // risk approval completed apr.Risk.ApprovalDate = apr.ApprovalDate; db.SaveChanges(); RiskApproval prevApr = db.RiskApprovals .Where(p => p.RiskId == apr.RiskId && p.ApprovalId != apr.ApprovalId && p.ApprovalDate != null) .FirstOrDefault(); if (prevApr != null) { prevApr.IsReadOnly = true; db.SaveChanges(); } RiskState rs = new RiskState(); rs.RiskId = apr.RiskId; rs.StateDate = (DateTime)apr.ApprovalDate; rs.ProbLevelId = (int)apr.Risk.ProbLevelId; rs.ImpactLevelId = (int)apr.Risk.ImpactLevelId; rs.RiskLevel = (int)apr.Risk.RiskLevel; db.RiskStates.AddObject(rs); db.SaveChanges(); } else { // next approval schedule RiskApproval nextApr = new RiskApproval(); nextApr.RiskId = apr.RiskId; nextApr.LimitDate = DateTime.Now.AddDays(Utils.MAX_LIMIT_APPROVAL_DAYS); nextApr.LastApproval = true; switch (apr.OrgPos) { case Utils.ORGPOS_SUBDIV: SubDiv subDiv = db.SubDivs.Single(p => p.SubDivId == apr.SubDivId); nextApr.OrgPos = Utils.ORGPOS_DIVISION; nextApr.DivisionId = subDiv.DivisionId; nextApr.OrgName = subDiv.Division.DivisionName; break; case Utils.ORGPOS_SUBBRANCH: SubBranch subBranch = db.SubBranches.Single(p => p.SubBranchId == apr.SubBranchId); nextApr.OrgPos = Utils.ORGPOS_BRANCH; nextApr.BranchId = subBranch.BranchId; nextApr.OrgName = subBranch.Branch.BranchName; break; case Utils.ORGPOS_BIZUNIT: BizUnit biz = db.BizUnits.Single(p => p.BizUnitId == apr.BizUnitId); nextApr.OrgPos = Utils.ORGPOS_BRANCH; nextApr.BranchId = biz.BranchId; nextApr.OrgName = biz.Branch.BranchName; break; } db.RiskApprovals.AddObject(nextApr); db.SaveChanges(); } trans.Complete(); } catch (Exception e) { ViewBag.Message = "Tidak bisa meng-approve data peristiwa risiko : " + e.Message; return View("Error"); } } return RedirectToAction("ApproveRiskSuccess"); }