Ejemplo n.º 1
0
        public ActionResult Index()
        {
            RiskRegisterViewModel vm = new RiskRegisterViewModel();

            vm.Param             = new Param();
            vm.Param.IsApproved  = true;
            vm.Param.ReportDate  = DateTime.Now;
            vm.Param.ReportDate2 = DateTime.Now;
            UpdateParam(vm.Param);
            CalcRiskRegister(vm);
            return(View(vm));
        }
Ejemplo n.º 2
0
        private void CalcRiskRegister(RiskRegisterViewModel vm)
        {
            var risks = db.Risks.Where(p => p.ProbLevelId != null && p.ImpactLevelId != null);

            if (vm.Param.PosId == 1)
            {
                risks = risks.Where(p => p.DeptId != null || p.BranchId != null);
            }
            else if (vm.Param.PosId == 2)
            {
                risks = risks.Where(p => p.SubDivId != null && p.DeptId != null);
                if (vm.Param.BranchId != null)
                {
                    risks = risks.Where(p => p.DeptId != null && p.SubDivId == vm.Param.BranchId);
                }
            }
            else if (vm.Param.PosId == 3)
            {
                risks = risks.Where(p => p.BranchId != null);
                if (vm.Param.BranchId != null)
                {
                    risks = risks.Where(p => p.BranchId == vm.Param.BranchId);
                }
            }
            else if (vm.Param.PosId == 4)
            {
                risks = risks.Where(p => p.BranchId != null);
                if (vm.Param.BranchId != null)
                {
                    risks = risks.Where(p => p.Branch.KorwilId == vm.Param.BranchId);
                }
            }
            else if (vm.Param.PosId == 5)
            {
                risks = risks.Where(p => p.BranchId != null);
                if (vm.Param.BranchId != null)
                {
                    risks = risks.Where(p => p.Branch.ClassId == vm.Param.BranchId);
                }
            }

            if (vm.Param.IsApproved)
            {
                risks = risks.Where(p => p.CloseDate == null || (p.CloseDate >= vm.Param.ReportDate && p.CloseDate <= vm.Param.ReportDate2));
                risks = risks.Where(p => p.ApprovalDate != null && (p.ApprovalDate >= vm.Param.ReportDate && p.ApprovalDate <= vm.Param.ReportDate2));
            }
            else
            {
                risks = risks.Where(p => p.ApprovalDate == null && (p.RiskDate >= vm.Param.ReportDate && p.RiskDate <= vm.Param.ReportDate2));
            }
            risks = risks.OrderBy(p => p.RiskDate);

            /*switch(vm.Param.RiskLevelId)
             * {
             *  case 1: // x <= 5
             *      risks = risks.Where(p => p.RiskLevel <= 5);
             *      break;
             *  case 2: // 5 < x <= 8
             *      risks = risks.Where(p => p.RiskLevel > 5 && p.RiskLevel <= 8);
             *      break;
             *  case 3: // 8 < x <= 12
             *      risks = risks.Where(p => p.RiskLevel > 8 && p.RiskLevel <= 12);
             *      break;
             *  case 4: // 12 < x <= 25
             *      risks = risks.Where(p => p.RiskLevel > 12 && p.RiskLevel <= 25);
             *      break;
             * }*/
            risks = risks.Where(p => p.RiskLevel >= vm.Param.RiskLevelId && p.RiskLevel <= vm.Param.RiskLevelId2);

            if (vm.Param.KlasId == 2)
            {
                if (vm.Param.BisnisId != null)
                {
                    risks = risks.Where(p => p.RiskCatId == 13 && p.RiskGroupId == vm.Param.BisnisId).OrderBy(p => p.RiskEventId);
                }
                else
                {
                    risks = risks.Where(p => p.RiskCatId == 13);
                }
            }
            else
            {
                risks = risks.Where(p => p.RiskCatId != 13);
            }

            vm.RiskList = new List <RiskRecord>();
            foreach (var r in risks)
            {
                //if (vm.Param.IsApproved)
                //{
                //    var rm = db.RiskMitigations.Where(p => p.RiskId == r.RiskId && p.ApprovalDate != null && p.ApprovalDate <= vm.Param.ReportDate);
                //    if (rm.Count() > 0)
                //    {
                //        var m = rm.OrderByDescending(p => p.ApprovalDate).First();
                //        AddRiskToList(r, (int)m.ProbLevelId, (int)m.ImpactLevelId, vm.RiskList);
                //    }
                //    else
                //        vm.RiskList.Add(r);
                //}
                //else
                //    vm.RiskList.Add(r);
                RiskRecord rc = new RiskRecord();
                rc.Risk = r;
                rc.ApprovedMitigations = db.RiskMitigations.Where(p => p.RiskId == r.RiskId && p.ApprovalDate != null).ToList();
                rc.PlannedMitigations  = db.RiskMitigations.Where(p => p.RiskId == r.RiskId && p.ApprovalDate == null).ToList();

                foreach (var a in rc.ApprovedMitigations)
                {
                    rc.MitigationActionApprove = db.MitigationsActions.Where(p => p.MitigationId == a.MitigationId).ToList();
                    rc.MitigationUnit          = db.MitigationUnits.Where(p => p.MitigationId == a.MitigationId).ToList();
                }

                vm.RiskList.Add(rc);
            }
            //vm.RiskList = vm.RiskList.OrderByDescending(p => p.RiskLevel).ThenByDescending(p => p.ImpactLevelId).ThenByDescending(p => p.ProbLevelId).Take(10).ToList();
        }
Ejemplo n.º 3
0
        public void ExportToExcel(int?posId, int?branchId, int?klasId, int?riskLevelId, int?riskLevelId2, DateTime reportDate, DateTime reportDate2,
                                  bool isApproved, bool showOrg, bool showRiskCode, bool showRiskDate, bool showRiskType,
                                  bool showRiskCat, bool showRiskCause, bool showRiskEffect,
                                  bool showRiskOwner, bool showProbLevel, bool showImpactLevel,
                                  bool showApprovedMitigations, bool showPlannedMitigations, bool showUraianProgress,
                                  bool showPIC, bool showUnitKerja, bool showResource,
                                  bool showEstimasi, bool showRKAP, bool showProgress)
        {
            RiskRegisterViewModel vm = new RiskRegisterViewModel();

            vm.RiskList                      = new List <RiskRecord>();
            vm.Param                         = new Param();
            vm.Param.PosId                   = posId;
            vm.Param.BranchId                = branchId;
            vm.Param.KlasId                  = klasId;
            vm.Param.RiskLevelId             = riskLevelId;
            vm.Param.RiskLevelId2            = riskLevelId2;
            vm.Param.ReportDate              = reportDate;
            vm.Param.ReportDate2             = reportDate2;
            vm.Param.IsApproved              = isApproved;
            vm.Param.ShowOrg                 = showOrg;
            vm.Param.ShowRiskCode            = showRiskCode;
            vm.Param.ShowRiskDate            = showRiskDate;
            vm.Param.ShowRiskCat             = showRiskCat;
            vm.Param.ShowRiskType            = showRiskType;
            vm.Param.ShowRiskCause           = showRiskCause;
            vm.Param.ShowRiskEffect          = showRiskEffect;
            vm.Param.ShowRiskOwner           = showRiskOwner;
            vm.Param.ShowProbLevel           = showProbLevel;
            vm.Param.ShowImpactLevel         = showImpactLevel;
            vm.Param.ShowApprovedMitigations = showApprovedMitigations;
            vm.Param.ShowPlannedMitigations  = showPlannedMitigations;
            vm.Param.ShowUraianProgress      = showUraianProgress;
            vm.Param.ShowPIC                 = showPIC;
            vm.Param.ShowUnitKerja           = showUnitKerja;
            vm.Param.ShowResource            = showResource;
            vm.Param.ShowEstimasi            = showEstimasi;
            vm.Param.ShowRKAP                = showRKAP;
            vm.Param.ShowProgress            = showProgress;
            CalcRiskRegister(vm);

            StringWriter sw = new StringWriter();

            sw.WriteLine("<table rules='all' border='1' style='border-collapse:collapse;'>");
            sw.WriteLine("<tr>");
            if (vm.Param.ShowRiskCode)
            {
                sw.WriteLine("<th style='background-color: #eee'>Kode Risiko</th>");
            }
            sw.WriteLine("<th style='background-color: #eee'>Peristiwa Risiko</th>");
            if (vm.Param.ShowRiskDate)
            {
                sw.WriteLine("<th style='background-color: #eee'>Tanggal</th>");
            }
            if (vm.Param.ShowOrg)
            {
                sw.WriteLine("<th style='background-color: #eee'>Unit Kerja</th>");
            }
            if (vm.Param.ShowRiskCat)
            {
                sw.WriteLine("<th style='background-color: #eee'>Klasifikasi Risiko</th>");
                sw.WriteLine("<th style='background-color: #eee'>Kelompok Risiko</th>");
            }
            if (vm.Param.ShowRiskType)
            {
                sw.WriteLine("<th style='background-color: #eee'>Jenis Risiko</th>");
            }
            if (vm.Param.ShowRiskCause)
            {
                sw.WriteLine("<th style='background-color: #eee'>Sebab Risiko</th>");
            }
            if (vm.Param.ShowRiskEffect)
            {
                sw.WriteLine("<th style='background-color: #eee'>Akibat Risiko</th>");
            }
            if (vm.Param.ShowRiskOwner)
            {
                sw.WriteLine("<th style='background-color: #eee'>RCP</th>");
            }
            if (vm.Param.ShowProbLevel)
            {
                sw.WriteLine("<th style='background-color: #eee'>Tk. Prob</th>");
            }
            if (vm.Param.ShowImpactLevel)
            {
                sw.WriteLine("<th style='background-color: #eee'>Tk. Dampak</th>");
            }
            sw.WriteLine("<th style='background-color: #eee'>Tk. Risiko</th>");
            if (vm.Param.ShowApprovedMitigations)
            {
                sw.WriteLine("<th style='background-color: #eee'>Mitigasi yg telah Di-approve</th>");
            }
            if (vm.Param.ShowPlannedMitigations)
            {
                sw.WriteLine("<th style='background-color: #eee'>Rencana Mitigasi</th>");
            }
            sw.WriteLine("</tr>");
            foreach (var item in vm.RiskList)
            {
                sw.WriteLine("<tr>");
                if (vm.Param.ShowRiskCode)
                {
                    sw.WriteLine(string.Format("<td>{0}</td>", item.Risk.RiskCode));
                }
                sw.WriteLine(string.Format("<td>{0}</td>", item.Risk.RiskName));
                if (vm.Param.ShowRiskDate)
                {
                    sw.WriteLine(string.Format("<td>{0:dd-MM-yyyy}</td>", item.Risk.RiskDate));
                }
                if (vm.Param.ShowOrg)
                {
                    sw.WriteLine(string.Format("<td>{0}</td>", Utils.GetRiskOrgName(item.Risk)));
                }
                if (vm.Param.ShowRiskCat)
                {
                    sw.WriteLine("<td>");
                    if (item.Risk.RiskCat != null)
                    {
                        sw.WriteLine(item.Risk.RiskCat.RiskCatName);
                    }
                    sw.WriteLine("</td>");
                    sw.WriteLine("<td>");
                    if (item.Risk.RiskGroup != null)
                    {
                        sw.WriteLine(item.Risk.RiskGroup.RiskGroupName);
                    }
                    sw.WriteLine("</td>");
                }
                if (vm.Param.ShowRiskType)
                {
                    sw.WriteLine("<td>");
                    if (item.Risk.RiskType != null)
                    {
                        sw.WriteLine(item.Risk.RiskType.RiskTypeName);
                    }
                    sw.WriteLine("</td>");
                }
                if (vm.Param.ShowRiskCause)
                {
                    sw.WriteLine("<td>");
                    if (item.Risk.Caus != null)
                    {
                        sw.WriteLine(item.Risk.Caus.CauseName);
                    }
                    sw.WriteLine("</td>");
                }
                if (vm.Param.ShowRiskEffect)
                {
                    sw.WriteLine("<td>");
                    if (item.Risk.Effect != null)
                    {
                        sw.WriteLine(item.Risk.Effect.EffectName);
                    }
                    sw.WriteLine("</td>");
                }
                if (vm.Param.ShowRiskOwner)
                {
                    sw.WriteLine("<td>{0}</td>", item.Risk.UserInfo.FullName);
                }
                if (vm.Param.ShowProbLevel)
                {
                    sw.WriteLine("<td align='center'>{0}</td>", item.Risk.ProbLevelId);
                }
                if (vm.Param.ShowImpactLevel)
                {
                    sw.WriteLine("<td align='center'>{0}</td>", item.Risk.ImpactLevelId);
                }
                sw.WriteLine("<td align='center'>{0}</td>", item.Risk.RiskLevel);

                if (vm.Param.ShowApprovedMitigations)
                {
                    sw.WriteLine("<td valign='top' style='padding: 0'>");
                    if (item.ApprovedMitigations.Count() > 0)
                    {
                        sw.WriteLine("<table rules='all' border='1' style='border-collapse:collapse;'>");
                        sw.WriteLine("<tr>");
                        if (vm.Param.ShowRiskCode)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Kode Mitigasi</th>");
                        }
                        sw.WriteLine("<th style='background-color: #eee'>Uraian</th>");
                        if (vm.Param.ShowRiskDate)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Tanggal</th>");
                        }
                        if (vm.Param.ShowProbLevel)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Tk. Prob</th>");
                        }
                        if (vm.Param.ShowImpactLevel)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Tk. Dampak</th>");
                        }
                        sw.WriteLine("<th style='background-color: #eee'>Tk. Risiko</th>");
                        sw.WriteLine("</tr>");
                        foreach (var m in item.ApprovedMitigations)
                        {
                            sw.WriteLine("<tr>");
                            if (vm.Param.ShowRiskCode)
                            {
                                sw.WriteLine(string.Format("<td>{0}</td>", m.MitigationCode));
                            }
                            sw.WriteLine(string.Format("<td>{0}</td>", m.MitigationName));
                            if (vm.Param.ShowRiskDate)
                            {
                                sw.WriteLine(string.Format("<td>{0:dd-MM-yyyy}</td>", m.MitigationDate));
                            }
                            if (vm.Param.ShowProbLevel)
                            {
                                sw.WriteLine(string.Format("<td align='center'>{0}</td>", m.ProbLevelId));
                            }
                            if (vm.Param.ShowImpactLevel)
                            {
                                sw.WriteLine(string.Format("<td align='center'>{0}</td>", m.ImpactLevelId));
                            }
                            sw.WriteLine(string.Format("<td align='center'>{0}</td>", m.RiskLevel));

                            sw.WriteLine("<td style='padding: 0'>");
                            if (item.MitigationActionApprove.Count() > 0)
                            {
                                sw.WriteLine("<table rules='all' border='1' style='border-collapse:collapse;'>");
                                sw.WriteLine("<tr>");
                                if (vm.Param.ShowUraianProgress)
                                {
                                    sw.WriteLine("<th rowspan= '2'>Uraian Progress</th>");
                                }
                                if (vm.Param.ShowPIC)
                                {
                                    sw.WriteLine("<th rowspan= '2'>PIC</th>");
                                }
                                if (vm.Param.ShowUnitKerja)
                                {
                                    sw.WriteLine("<th rowspan= '2'>Unit Kerja Terkait</th>");
                                }
                                if (vm.Param.ShowResource)
                                {
                                    sw.WriteLine("<th rowspan= '2'>Resource Requirement</th>");
                                }
                                if (vm.Param.ShowEstimasi)
                                {
                                    sw.WriteLine("<th rowspan= '2'>Estimasi Biaya</th>");
                                }
                                if (vm.Param.ShowRKAP)
                                {
                                    sw.WriteLine("<th rowspan= '2'>RKAP/RTL?</th>");
                                }
                                if (vm.Param.ShowProgress)
                                {
                                    sw.WriteLine("<th colspan = '3'>Progress Mitigasi</th>");
                                }
                                sw.WriteLine("</tr>");
                                sw.WriteLine("<tr>");
                                sw.WriteLine("<th>Belum Berjalan</th>");
                                sw.WriteLine("<th>Sedang Berjalan</th>");
                                sw.WriteLine("<th>Sudah Selesai</th>");
                                sw.WriteLine("</tr>");
                                foreach (var c in item.MitigationActionApprove)
                                {
                                    sw.WriteLine("<tr>");
                                    if (vm.Param.ShowUraianProgress)
                                    {
                                        sw.WriteLine(string.Format("<td align='center'>{0}</td>", c.RiskMitigation.MitigationName));
                                    }
                                    if (vm.Param.ShowPIC)
                                    {
                                        sw.WriteLine(string.Format("<td align='center'>{0}</td>", c.PIC2));
                                    }
                                    if (vm.Param.ShowUnitKerja)
                                    {
                                        sw.WriteLine(string.Format("<td align='center'>{0}</td>", Utils.GetRiskOrgName(item.Risk)));
                                    }
                                    if (vm.Param.ShowResource)
                                    {
                                        sw.WriteLine(string.Format("<td align='center'>{0}</td>", c.Require));
                                    }
                                    if (vm.Param.ShowEstimasi)
                                    {
                                        sw.WriteLine(string.Format("<td align='center'>{0}</td>", c.Biaya));
                                    }
                                    if (vm.Param.ShowRKAP)
                                    {
                                        sw.WriteLine(string.Format("<td align='center'>{0}</td>", c.RKAPF));
                                    }
                                    if (vm.Param.ShowProgress)
                                    {
                                        if (c.TotalProgress <= 0)
                                        {
                                            sw.WriteLine("<td align='center'>&#9745</td>");
                                            sw.WriteLine("<td></td>");
                                            sw.WriteLine("<td></td>");
                                        }
                                        if (c.TotalProgress > 0 && c.TotalProgress < 100)
                                        {
                                            sw.WriteLine("<td></td>");
                                            sw.WriteLine("<td align='center'>&#9745</td>");
                                            sw.WriteLine("<td></td>");
                                        }
                                        if (c.TotalProgress >= 100)
                                        {
                                            sw.WriteLine("<td></td>");
                                            sw.WriteLine("<td></td>");
                                            sw.WriteLine("<td align='center'>&#9745</td>");
                                        }
                                    }
                                    sw.WriteLine("</tr>");
                                }
                                sw.WriteLine("</table>");
                            }
                            sw.WriteLine("</td>");
                            sw.WriteLine("</tr>");
                        }
                        sw.WriteLine("</table>");
                    }
                    sw.WriteLine("</td>");
                }


                if (vm.Param.ShowPlannedMitigations)
                {
                    sw.WriteLine("<td valign='top' style='padding: 0'>");
                    if (item.PlannedMitigations.Count() > 0)
                    {
                        sw.WriteLine("<table rules='all' border='1' style='border-collapse:collapse;'>");
                        sw.WriteLine("<tr>");
                        if (vm.Param.ShowRiskCode)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Kode Mitigasi</th>");
                        }
                        sw.WriteLine("<th style='background-color: #eee'>Uraian</th>");
                        if (vm.Param.ShowRiskDate)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Tanggal</th>");
                        }
                        if (vm.Param.ShowProbLevel)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Tk. Prob</th>");
                        }
                        if (vm.Param.ShowImpactLevel)
                        {
                            sw.WriteLine("<th style='background-color: #eee'>Tk. Dampak</th>");
                        }
                        sw.WriteLine("<th style='background-color: #eee'>Tk. Risiko</th>");
                        sw.WriteLine("</tr>");
                        foreach (var m in item.PlannedMitigations)
                        {
                            sw.WriteLine("<tr>");
                            if (vm.Param.ShowRiskCode)
                            {
                                sw.WriteLine(string.Format("<td>{0}</td>", m.MitigationCode));
                            }
                            sw.WriteLine(string.Format("<td>{0}</td>", m.MitigationName));
                            if (vm.Param.ShowRiskDate)
                            {
                                sw.WriteLine(string.Format("<td>{0:dd-MM-yyyy}</td>", m.MitigationDate));
                            }
                            if (vm.Param.ShowProbLevel)
                            {
                                sw.WriteLine(string.Format("<td align='center'>{0}</td>", m.ProbLevelId));
                            }
                            if (vm.Param.ShowImpactLevel)
                            {
                                sw.WriteLine(string.Format("<td align='center'>{0}</td>", m.ImpactLevelId));
                            }
                            sw.WriteLine(string.Format("<td align='center'>{0}</td>", m.RiskLevel));
                            sw.WriteLine("</tr>");
                        }
                        sw.WriteLine("</table>");
                    }
                    sw.WriteLine("</td>");
                }
                sw.WriteLine("</tr>");
            }
            sw.WriteLine("</table>");

            Response.ClearContent();
            Response.AddHeader("content-disposition", "attachment;filename=risk_registers.xls");
            Response.ContentType = "application/vnd.ms-excel";
            Response.Write(sw.ToString());
            Response.End();
        }
Ejemplo n.º 4
0
 public ActionResult Index(RiskRegisterViewModel vm)
 {
     UpdateParam(vm.Param);
     CalcRiskRegister(vm);
     return(View(vm));
 }