Exemplo n.º 1
0
 /// <summary>
 /// Create a new RiskProb object.
 /// </summary>
 /// <param name="riskId">Initial value of the RiskId property.</param>
 /// <param name="probOption">Initial value of the ProbOption property.</param>
 public static RiskProb CreateRiskProb(global::System.Int32 riskId, global::System.Int32 probOption)
 {
     RiskProb riskProb = new RiskProb();
     riskProb.RiskId = riskId;
     riskProb.ProbOption = probOption;
     return riskProb;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Deprecated Method for adding a new object to the RiskProbs EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToRiskProbs(RiskProb riskProb)
 {
     base.AddObject("RiskProbs", riskProb);
 }
Exemplo n.º 3
0
        public ActionResult ProbEdit(RiskProb prob, int id)
        {
            if (ModelState.IsValid)
            {
                bool isOk = true;
                double? value = null;
                int probLevelId;

                switch (prob.ProbOption)
                {
                    case Utils.PROBOPTION_POISSON:
                        isOk = prob.Poisson1 != null && prob.Poisson2 != null;
                        if (isOk)
                        {
                            value = (1 - poissondistr.poissondistribution(0, (double)prob.Poisson1 / (double)prob.Poisson2)) * 100;
                            prob.Binom1 = null;
                            prob.Binom2 = null;
                            prob.Approx1 = null;
                            prob.Approx2 = null;
                            prob.Approx3 = null;
                            prob.Compare = null;
                            prob.FreqId = null;
                        }
                        break;
                    case Utils.PROBOPTION_BINOMIAL:
                        isOk = prob.Binom1 != null && prob.Binom2 != null;
                        if (isOk)
                        {
                            value = (double)(1 - binomialdistr.binomialdistribution(0, (int)prob.Binom2, (double)prob.Binom1 / (double)prob.Binom2)) * 100;
                            prob.Poisson1 = null;
                            prob.Poisson2 = null;
                            prob.Approx1 = null;
                            prob.Approx2 = null;
                            prob.Approx3 = null;
                            prob.Compare = null;
                            prob.FreqId = null;
                        }
                        break;
                    case Utils.PROBOPTION_APPROXIMATION:
                        isOk = prob.Approx1 != null && prob.Approx2 != null && prob.Approx3 != null;
                        if (isOk)
                        {
                            value = ((double)prob.Approx1 + 4 * (double)prob.Approx2 + (double)prob.Approx3) / 6;
                            prob.Poisson1 = null;
                            prob.Poisson2 = null;
                            prob.Binom1 = null;
                            prob.Binom2 = null;
                            prob.Compare = null;
                            prob.FreqId = null;
                        }
                        break;
                    case Utils.PROBOPTION_COMPARISON:
                        isOk = prob.Compare != null;
                        if (isOk)
                        {
                            value = (double)prob.Compare;
                            prob.Poisson1 = null;
                            prob.Poisson2 = null;
                            prob.Binom1 = null;
                            prob.Binom2 = null;
                            prob.Approx1 = null;
                            prob.Approx2 = null;
                            prob.Approx3 = null;
                            prob.FreqId = null;
                        }
                        break;
                    case Utils.PROBOPTION_FREQUENCY:
                        isOk = prob.FreqId != null;
                        if (isOk)
                        {
                            prob.Poisson1 = null;
                            prob.Poisson2 = null;
                            prob.Binom1 = null;
                            prob.Binom2 = null;
                            prob.Approx1 = null;
                            prob.Approx2 = null;
                            prob.Approx3 = null;
                            prob.Compare = null;
                        }
                        break;
                }

                if (isOk)
                {
                    decimal? probValue = null;
                    if (value != null)
                    {
                        probValue = Convert.ToDecimal(value);
                        probLevelId = Utils.GetProbLevelFromValue((decimal)probValue);
                    }
                    else
                        probLevelId = (int)prob.FreqId;

                    prob.ProbValue = probValue;
                    prob.ProbLevelId = probLevelId;

                    db.RiskProbs.Attach(prob);
                    db.ObjectStateManager.ChangeObjectState(prob, EntityState.Modified);

                    Risk risk = db.Risks.Where(p => p.RiskId == id).SingleOrDefault();
                    risk.ProbValue = prob.ProbValue;
                    risk.ProbLevelId = prob.ProbLevelId;
                    Utils.CalcRiskLevel(risk);
                    db.SaveChanges();

                    return RedirectToAction("ProbDetail", new { id = id });
                }
                else
                {
                    ModelState.AddModelError("", "Parameter untuk menghitung probabilitas tidak lengkap");
                    ViewBag.Freqs = new SelectList(db.Freqs.ToList(), "FreqId", "FreqName", prob.FreqId);
                    return View(prob);
                }
            }

            return RedirectToAction("ProbDetail", new { id = id });
        }
Exemplo n.º 4
0
        public ActionResult RiskNew(RiskEditViewModel vm)
        {
            UserData data = Utils.LoadUserDataFromSession();
            bool saved = true;
            if (ModelState.IsValid)
            {
                if (vm.Risk.CauseGroupId != null && vm.Risk.CauseId == null)
                {
                    ModelState.AddModelError("", "Sebab Risiko harus diisi lengkap atau kosong sama sekali");
                    saved = false;
                }
                if (vm.Risk.EffectGroupId != null && vm.Risk.EffectId == null)
                {
                    ModelState.AddModelError("", "Akibat Risiko harus diisi lengkap atau kosong sama sekali");
                    saved = false;
                }
                if (vm.Risk.RiskCatId != null && vm.Risk.RiskTypeId == null)
                {
                    ModelState.AddModelError("", "Klasifikasi Risiko harus diisi lengkap atau kosong sama sekali");
                    saved = false;
                }

                if (saved)
                {
                    try
                    {
                        using (TransactionScope trans = new TransactionScope())
                        {
                            Risk risk = new Risk();
                            risk.UserId = data.UserId;
                            risk.JobTitle = data.JobTitle;
                            risk.RiskCode = Utils.GetFormattedSerialNumber(data);
                            risk.RiskName = vm.Risk.RiskName;
                            risk.RiskDate = vm.Risk.RiskDate;
                            risk.OrgPos = data.OrgPos;
                            risk.DeptId = data.DeptId;
                            risk.SubDeptId = data.SubDeptId;
                            risk.DivisionId = data.DivisionId;
                            risk.SubDivId = data.SubDivId;
                            risk.BranchId = data.BranchId;
                            risk.SubBranchId = data.SubBranchId;
                            risk.BizUnitId = data.BizUnitId;
                            if (vm.Risk.CauseId != null)
                            {
                                risk.CauseGroupId = vm.Risk.CauseGroupId;
                                risk.CauseTypeId = vm.Risk.CauseTypeId;
                                risk.CauseId = vm.Risk.CauseId;
                            }
                            if (vm.Risk.EffectId != null)
                            {
                                risk.EffectGroupId = vm.Risk.EffectGroupId;
                                risk.EffectTypeId = vm.Risk.EffectTypeId;
                                risk.EffectId = vm.Risk.EffectId;
                            }
                            if (vm.Risk.RiskTypeId != null)
                            {
                                risk.RiskCatId = vm.Risk.RiskCatId;
                                risk.RiskGroupId = vm.Risk.RiskGroupId;
                                risk.RiskTypeId = vm.Risk.RiskTypeId;
                            }
                            risk.ProbLevelId = Utils.PROBLEVEL1;
                            risk.ImpactLevelId = Utils.IMPACTLEVEL1;
                            risk.RiskLevel = risk.ProbLevelId * risk.ImpactLevelId;
                            risk.IsReadOnly = false;
                            db.Risks.AddObject(risk);
                            db.SaveChanges();

                            RiskProb prob = new RiskProb();
                            prob.RiskId = risk.RiskId;
                            prob.ProbOption = Utils.PROBOPTION_FREQUENCY;
                            prob.FreqId = Utils.FREQUENCY1;
                            prob.ProbLevelId = Utils.PROBLEVEL1;
                            db.RiskProbs.AddObject(prob);
                            db.SaveChanges();

                            RiskImpact impact = new RiskImpact();
                            impact.RiskId = risk.RiskId;
                            impact.IsMoneyImpact = true;
                            impact.ImpactLevelId = Utils.IMPACTLEVEL1;
                            db.RiskImpacts.AddObject(impact);
                            db.SaveChanges();

                            Utils.CreateFirstApprovalSchedule(risk.RiskId);
                            Utils.IncrementSerialNumber(db);

                            trans.Complete();
                            return RedirectToAction("RiskDetail", new { id = risk.RiskId });
                        }
                    }
                    catch (Exception e)
                    {
                        ModelState.AddModelError("", "Tidak bisa menyimpan data risiko. Error: " + e.Message);
                    }
                }
            }

            vm.Risk.RiskCode = Utils.GetFormattedSerialNumber(data);

            vm.CauseGroups = new SelectList(db.CauseGroups, "CauseGroupId", "CauseGroupName");
            vm.CauseTypes = new SelectList(db.CauseTypes.Where(p => p.CauseGroupId == vm.Risk.CauseGroupId), "CauseTypeId", "CauseTypeName");
            vm.Causes = new SelectList(db.Causes.Where(p => p.CauseTypeId == vm.Risk.CauseTypeId), "CauseId", "CauseName");

            vm.EffectGroups = new SelectList(db.EffectGroups, "EffectGroupId", "EffectGroupName");
            vm.EffectTypes = new SelectList(db.EffectTypes.Where(p => p.EffectGroupId == vm.Risk.EffectGroupId), "EffectTypeId", "EffectTypeName");
            vm.Effects = new SelectList(db.Effects.Where(p => p.EffectTypeId == vm.Risk.EffectTypeId), "EffectId", "EffectName");

            vm.RiskCats = new SelectList(db.RiskCats, "RiskCatId", "RiskCatName");
            vm.RiskGroups = new SelectList(db.RiskGroups.Where(p => p.RiskCatId == vm.Risk.RiskCatId), "RiskGroupId", "RiskGroupName");
            vm.RiskTypes = new SelectList(db.RiskTypes.Where(p => p.RiskGroupId == vm.Risk.RiskGroupId), "RiskTypeId", "RiskTypeName");

            return View(vm);
        }
Exemplo n.º 5
0
        public ActionResult ProbDetail(int id)
        {
            RiskProb prob = db.RiskProbs.Include("Risk").Where(p => p.RiskId == id).FirstOrDefault();
            if (prob == null)
            {
                prob = new RiskProb();
                prob.RiskId = id;
                prob.ProbOption = Utils.PROBOPTION_FREQUENCY;
                prob.FreqId = Utils.FREQUENCY1;
                prob.ProbLevelId = Utils.PROBLEVEL1;
                db.RiskProbs.AddObject(prob);
                db.SaveChanges();

                prob.Risk.ProbLevelId = Utils.PROBLEVEL1;
                Utils.CalcRiskLevel(prob.Risk);
                db.SaveChanges();
            }
            return View(prob);
        }