Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
File: Utils.cs Progetto: ryanask/MRK
        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);
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Deprecated Method for adding a new object to the RiskApprovals EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToRiskApprovals(RiskApproval riskApproval)
 {
     base.AddObject("RiskApprovals", riskApproval);
 }
Esempio n. 4
0
        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");
        }