public decimal GroupBybalsheetcode(List <LedgersView2> solly)
        {
            decimal tot = 0M;
            var     jk2 = new List <LedgersView2>();

            var m = solly.GroupBy(x => x.balSheetCode)
                    .Select(
                g => new
            {
                Value       = g.Sum(s => s.Amount),
                description = g.First().MDesc,
                code        = g.First().balSheetCode,
                desc        = g.First().bl_desc,
                maincode    = g.First().mainAccountCode
            });


            foreach (var j in m)
            {
                var b = new LedgersView2
                {
                    description     = j.description,
                    Amount          = j.Value,
                    balSheetCode    = j.code,
                    bl_desc         = j.desc,
                    mainAccountCode = j.maincode
                };
                tot += (decimal)j.Value;
                jk2.Add(b);
            }

            return(tot);
        }
        public IEnumerable <LedgersView2> GetAllSurplusOrDeficit2()
        {
            var op = (from p in context.npf_Histories
                      join q in context.npf_Charts on p.acctcode equals q.acctcode
                      join r in context.mainacts on q.mainAccountCode equals r.maincode
                      join s in context.npf_Balsheets on r.npf_balsheet_bl_code equals s.bl_code
                      select new LedgersView2
            {
                acctcode = p.acctcode,
                docNo = p.docno,
                adbbalance = p.dbamt,
                crbalance = p.cramt,
                Amount = p.dbamt - p.cramt,
                description = q.description,
                MDesc = r.description,
                bl_desc = s.bl_desc,
                balSheetCode = s.bl_code
            }).ToList();

            var jk = new List <LedgersView2>();

            foreach (var j in op)
            {
                var s = j.acctcode.Substring(0, 1);
                if (int.Parse(s) > 3)
                {
                    var kl = new LedgersView2
                    {
                        acctcode     = j.acctcode,
                        docNo        = j.docNo,
                        adbbalance   = j.adbbalance,
                        crbalance    = j.crbalance,
                        description  = j.description,
                        MDesc        = j.MDesc,
                        Amount       = j.Amount,
                        bl_desc      = j.bl_desc,
                        balSheetCode = j.balSheetCode
                    };

                    jk.Add(kl);
                }
            }
            var kj = jk.DistinctBy(x => x.acctcode);

            return(kj);
        }
        public IEnumerable <LedgersView2> FilterRecord(List <LedgersView2> solly, decimal total)
        {
            var r = new List <LedgersView2>();
            var s = new LedgersView2();
            int b = 1;

            foreach (var p in solly)
            {
                if (p.bl_desc.ToUpper().Trim() == "EQUITY" && b == 1)
                {
                    s.description  = "Surplus/Deficit";
                    s.MDesc        = "Surplus / Deficit";
                    s.Amount       = total;
                    s.balSheetCode = p.balSheetCode;
                    s.bl_desc      = p.bl_desc;

                    r.Add(s);
                    b++;
                }
            }

            return(r);
        }