public JsonResult GetADMReport(AccountsModel data)
        {
            List <CalculatedScoreYear> admfinal = null;

            try
            {
                List <AccountsModel> accounts = Account.GetAllAccounts(data.ManagerID);
                int[] Accounts = new int[accounts.Count];
                int   i        = 0;
                foreach (var item in accounts)
                {
                    Accounts[i] = item.AccountID;
                    i++;
                }

                admfinal = ScoreCalculator.KraScoreADMYearly(Accounts, data.Year);
            }
            catch (Exception ex)
            {
                logger.Error(ex.InnerException);
                logger.Error(ex.Message);
                logger.Error(ex.Source);
            }
            return(Json(admfinal, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        public XLWorkbook CreateADMReport(int[] AccountId, int Year)
        {
            var wb = new XLWorkbook();

            wb.Author             = "KraTracker";
            wb.Properties.Company = "IRIS";
            {
                var ws   = wb.Worksheets.Add("Kra Adm Score");
                var list = Krascores.KraScoreADMYearly(AccountId, Year);
                ws.Range("B3:G3").Row(1).Merge();
                ws.Cell("B3").AsRange().AddToNamed("Titles");
                ws.Column(3).Width  = 10;
                ws.Column(2).Width  = 20;
                ws.Cell("B3").Value = "Final Score";
                ws.Cell("B3").Style.Fill.SetBackgroundColor(XLColor.Blue);
                ws.Cell("B3").Style.Font.SetBold(true);
                ws.Cell("B3").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
                ws.Cell("B3").Style.Border.SetBottomBorder(XLBorderStyleValues.Thin);
                ws.Cell("B3").Style.Border.SetTopBorder(XLBorderStyleValues.Thin);
                ws.Cell("B3").Style.Border.SetLeftBorder(XLBorderStyleValues.Thin);
                ws.Cell("B3").Style.Border.SetRightBorder(XLBorderStyleValues.Thin);
                ws.Cell("B3").Style.Font.SetFontColor(XLColor.White);

                ApplyStyle(ws, "B4");
                ws.Cell("B4").Value = "Parameter";
                ApplyStyle(ws, "C4");
                ws.Cell("C4").Value = "Weightage";
                ApplyStyle(ws, "D4");
                ws.Cell("D4").Value = "Q1";
                ApplyStyle(ws, "E4");
                ws.Cell("E4").Value = "Q2";
                ApplyStyle(ws, "F4");
                ws.Cell("F4").Value = "Q3";
                ApplyStyle(ws, "G4");

                ws.Cell("G4").Value = "Q4";
                DataTable dt = new DataTable();
                dt.Columns.Add();
                dt.Columns.Add();
                dt.Columns.Add();
                dt.Columns.Add();
                dt.Columns.Add();
                dt.Columns.Add();

                foreach (var items in list)
                {
                    int size = items.Score.Length;
                    if (size == 1)
                    {
                        dt.Rows.Add(items.ParameterName, items.Weightage + "%", Math.Round(items.Score[0]) + "%").ClearErrors();
                    }
                    else if (size == 2)
                    {
                        dt.Rows.Add(items.ParameterName, items.Weightage + "%", Math.Round(items.Score[0]) + "%", Math.Round(items.Score[1]) + "%").ClearErrors();
                    }
                    else if (size == 3)
                    {
                        dt.Rows.Add(items.ParameterName, items.Weightage + "%", Math.Round(items.Score[0]) + "%", Math.Round(items.Score[1]) + "%", Math.Round(items.Score[2]) + "%").ClearErrors();
                    }
                    else if (size == 4)
                    {
                        dt.Rows.Add(items.ParameterName, items.Weightage + "%", Math.Round(items.Score[0]) + "%", Math.Round(items.Score[1]) + "%", Math.Round(items.Score[2]) + "%", Math.Round(items.Score[3]) + "%");
                    }
                }

                CalculatedScoreYear TotalScore = Krascores.ADMFinalScore(AccountId, Year);
                int qsize = TotalScore.Score.Length;
                if (qsize == 1)
                {
                    dt.Rows.Add(TotalScore.ParameterName, TotalScore.Weightage + "%", Math.Round(TotalScore.Score[0]) + "%");
                }
                else if (qsize == 2)
                {
                    dt.Rows.Add(TotalScore.ParameterName, TotalScore.Weightage + "%", Math.Round(TotalScore.Score[0]) + "%", Math.Round(TotalScore.Score[1]) + "%");
                }
                else if (qsize == 3)
                {
                    dt.Rows.Add(TotalScore.ParameterName, TotalScore.Weightage + "%", Math.Round(TotalScore.Score[0]) + "%", Math.Round(TotalScore.Score[1]) + "%", Math.Round(TotalScore.Score[2]) + "%");
                }
                else if (qsize == 4)
                {
                    dt.Rows.Add(TotalScore.ParameterName, TotalScore.Weightage + "%", Math.Round(TotalScore.Score[0]) + "%", Math.Round(TotalScore.Score[1]) + "%", Math.Round(TotalScore.Score[2]) + "%", Math.Round(TotalScore.Score[3]) + "%");
                }
                ws.Cell("B5").Value = dt.AsEnumerable();
                int rowsize = dt.Rows.Count;
                for (int i = 5; i < rowsize + 5; i++)
                {
                    for (int j = 2; j < 8; j++)
                    {
                        ApplyBorder(ws, i, j);
                        if (i == rowsize + 5 - 1)
                        {
                            ApplyStyle(ws, i, j);
                        }
                    }
                }
            }
            for (int i = 0; i < AccountId.Length; i++)
            {
                CreateWorksheet(wb, AccountId[i], Year);
            }
            return(wb);
        }