Esempio n. 1
0
        public List <BLL.BalanceSheet> Balancesheet_List(DateTime dtFrom, DateTime dtTo)
        {
            List <BLL.BalanceSheet> lstBalanceSheet = new List <BLL.BalanceSheet>();
            var     l1 = DB.AccountGroups.Where(x => x.FundMasterId == Caller.FundMasterId && (x.GroupName == "Assets" || x.GroupName == "Liabilities" || x.GroupName == "Equity")).ToList().OrderBy(x => x.GroupCode);
            decimal GTotalDr = 0, GTotalCr = 0, GTotalDrOP = 0, GTotalCrOP = 0;

            foreach (var ag in l1)
            {
                decimal TotalDr = 0, TotalCr = 0, TotalDrOP = 0, TotalCrOP = 0;
                lstBalanceSheet.AddRange(BalanceSheetByGroupName(ag, dtFrom, dtTo, "", ref TotalDr, ref TotalCr, ref TotalDrOP, ref TotalCrOP));
                if (ag.GroupName != "Assets")
                {
                    GTotalDr   += TotalDr;
                    GTotalCr   += TotalCr;
                    GTotalDrOP += TotalDrOP;
                    GTotalCrOP += TotalCrOP;
                }
            }


            BLL.BalanceSheet tb = new BLL.BalanceSheet();
            tb.LedgerList             = new BLL.Ledger();
            tb.LedgerList.AccountName = "Total Liabilities and Equity";
            tb.CrAmt = GTotalCr;
            tb.DrAmt = GTotalDr;

            if (GTotalCrOP > GTotalDrOP)
            {
                tb.CrAmtOP = GTotalCrOP - GTotalDrOP;
                tb.DrAmtOP = 0;
            }
            else
            {
                tb.CrAmtOP = 0;
                tb.DrAmtOP = GTotalDrOP - GTotalCrOP;
            }

            lstBalanceSheet.Add(tb);


            //tb = new BLL.BalanceSheet();
            //tb.LedgerList = new BLL.Ledger();
            //tb.LedgerList.AccountName = "Balance";
            //tb.CrAmt = GTotalCr > GTotalDr ? Math.Abs(GTotalDr - GTotalCr) : 0;
            //tb.DrAmt = GTotalCr < GTotalDr ? Math.Abs(GTotalDr - GTotalCr) : 0; ;
            //tb.CrAmtOP = GTotalCrOP > GTotalDrOP ? Math.Abs(GTotalDrOP - GTotalCrOP) : 0;
            //tb.DrAmtOP = GTotalCrOP < GTotalDrOP ? Math.Abs(GTotalDrOP - GTotalCrOP) : 0;
            //lstBalanceSheet.Add(tb);


            return(lstBalanceSheet);
        }
Esempio n. 2
0
        List <BLL.BalanceSheet> BalanceSheetByGroupName(DAL.AccountGroup ag, DateTime dtFrom, DateTime dtTo, string Prefix, ref decimal TotalDr, ref decimal TotalCr, ref decimal TotalDrOP, ref decimal TotalCrOP)
        {
            decimal GTotalDr = 0, GTotalCr = 0, GTotalDrOP = 0, GTotalCrOP = 0;
            List <BLL.BalanceSheet> lstBalanceSheet = new List <BLL.BalanceSheet>();
            decimal total = 0;

            GetLedgerTotal(ag, ref total);
            if (total == 0)
            {
                return(lstBalanceSheet);
            }

            BLL.BalanceSheet tb = new BLL.BalanceSheet();

            tb                        = new BLL.BalanceSheet();
            tb.LedgerList             = new BLL.Ledger();
            tb.LedgerList.AccountName = Prefix + ag.GroupName;
            tb.CrAmt                  = null;
            tb.DrAmt                  = null;
            tb.CrAmtOP                = null;
            tb.DrAmtOP                = null;

            lstBalanceSheet.Add(tb);


            foreach (var uag in ag.AccountGroup1)
            {
                lstBalanceSheet.AddRange(BalanceSheetByGroupName(uag, dtFrom, dtTo, Prefix + "     ", ref GTotalDr, ref GTotalCr, ref GTotalDrOP, ref GTotalCrOP));
            }

            decimal OPDr = 0, OPCr = 0, Dr = 0, Cr = 0;

            foreach (var l in ag.Ledgers)
            {
                tb            = new BLL.BalanceSheet();
                tb.LedgerList = LedgerDAL_BLL(l);

                LedgerBalance(l, dtFrom, dtTo, ref OPDr, ref OPCr, ref Dr, ref Cr);

                tb.DrAmt   = Dr;
                tb.CrAmt   = Cr;
                tb.DrAmtOP = OPDr;
                tb.CrAmtOP = OPCr;

                if (tb.DrAmt != 0 || tb.CrAmt != 0 || tb.DrAmtOP != 0 || tb.CrAmtOP != 0)
                {
                    tb.LedgerList.AccountGroup.GroupCode = Prefix + "     " + tb.LedgerList.AccountGroup.GroupCode;
                    lstBalanceSheet.Add(tb);
                    GTotalDr += tb.DrAmt ?? 0;
                    GTotalCr += tb.CrAmt ?? 0;

                    GTotalDrOP += tb.DrAmtOP ?? 0;
                    GTotalCrOP += tb.CrAmtOP ?? 0;
                }
            }
            if (ag.GroupName == "Equity")
            {
                var l1 = IncomeExpenditure_List(dtFrom, dtTo);
                var ie = l1.Where(x => x.Ledger.AccountName == "Surplus/Deficit ").FirstOrDefault();
                if (ie != null)
                {
                    tb                        = new BLL.BalanceSheet();
                    tb.LedgerList             = new BLL.Ledger();
                    tb.LedgerList.AccountName = Prefix + "Net Income";
                    tb.CrAmt                  = ie.CrAmt;
                    tb.DrAmt                  = ie.DrAmt;
                    tb.CrAmtOP                = ie.CrAmtOP;
                    tb.DrAmtOP                = ie.DrAmtOP;
                    GTotalDr                 += tb.DrAmt ?? 0;
                    GTotalCr                 += tb.CrAmt ?? 0;

                    GTotalDrOP += tb.DrAmtOP ?? 0;
                    GTotalCrOP += tb.CrAmtOP ?? 0;

                    lstBalanceSheet.Add(tb);
                }
            }
            if (GTotalDr > GTotalCr)
            {
                GTotalDr = Math.Abs(GTotalDr - GTotalCr);
                GTotalCr = 0;
            }
            else
            {
                GTotalCr = Math.Abs(GTotalDr - GTotalCr);
                GTotalDr = 0;
            }

            if (GTotalDrOP > GTotalCrOP)
            {
                GTotalDrOP = Math.Abs(GTotalDrOP - GTotalCrOP);
                GTotalCrOP = 0;
            }
            else
            {
                GTotalCrOP = Math.Abs(GTotalDrOP - GTotalCrOP);
                GTotalDrOP = 0;
            }



            tb                        = new BLL.BalanceSheet();
            tb.LedgerList             = new BLL.Ledger();
            tb.LedgerList.AccountName = Prefix + "Total " + ag.GroupName;
            tb.CrAmt                  = GTotalCr;
            tb.DrAmt                  = GTotalDr;
            tb.CrAmtOP                = GTotalCrOP;
            tb.DrAmtOP                = GTotalDrOP;


            lstBalanceSheet.Add(tb);

            TotalDr   += GTotalDr;
            TotalCr   += GTotalCr;
            TotalDrOP += GTotalDrOP;
            TotalCrOP += GTotalCrOP;

            return(lstBalanceSheet);
        }
Esempio n. 3
0
        List <BLL.BalanceSheet> BalanceSheetByGroupName(DAL.AccountGroup ag, DateTime dtFrom, DateTime dtTo, string Prefix, ref decimal TotalDr, ref decimal TotalCr, ref decimal TotalDrOP, ref decimal TotalCrOP)
        {
            decimal GTotalDr = 0, GTotalCr = 0, GTotalDrOP = 0, GTotalCrOP = 0;
            List <BLL.BalanceSheet> lstBalanceSheet = new List <BLL.BalanceSheet>();
            decimal total = 0;

            GetLedgerTotal(ag, ref total);
            if (total == 0)
            {
                return(lstBalanceSheet);
            }

            BLL.BalanceSheet tb = new BLL.BalanceSheet();

            tb                        = new BLL.BalanceSheet();
            tb.LedgerList             = new BLL.Ledger();
            tb.LedgerList.AccountName = Prefix + ag.GroupName;
            tb.CrAmt                  = null;
            tb.DrAmt                  = null;
            tb.CrAmtOP                = null;
            tb.DrAmtOP                = null;

            lstBalanceSheet.Add(tb);


            foreach (var uag in ag.AccountGroup1)
            {
                lstBalanceSheet.AddRange(BalanceSheetByGroupName(uag, dtFrom, dtTo, Prefix + "     ", ref GTotalDr, ref GTotalCr, ref GTotalDrOP, ref GTotalCrOP));
            }

            decimal OPDr = 0, OPCr = 0, Dr = 0, Cr = 0;

            foreach (var l in ag.Ledgers)
            {
                tb            = new BLL.BalanceSheet();
                tb.LedgerList = LedgerDAL_BLL(l);

                LedgerBalance(l, dtFrom, dtTo, ref OPDr, ref OPCr, ref Dr, ref Cr);

                tb.DrAmt   = Dr;
                tb.CrAmt   = Cr;
                tb.DrAmtOP = OPDr;
                tb.CrAmtOP = OPCr;

                if (tb.DrAmt != 0 || tb.CrAmt != 0)
                {
                    tb.LedgerList.AccountGroup.GroupCode = Prefix + "     " + tb.LedgerList.AccountGroup.GroupCode;
                    lstBalanceSheet.Add(tb);
                    GTotalDr += tb.DrAmt ?? 0;
                    GTotalCr += tb.CrAmt ?? 0;

                    GTotalDrOP += tb.DrAmtOP ?? 0;
                    GTotalCrOP += tb.CrAmtOP ?? 0;
                }
            }

            if (GTotalDr > GTotalCr)
            {
                GTotalDr = Math.Abs(GTotalDr - GTotalCr);
                GTotalCr = 0;
            }
            else
            {
                GTotalCr = Math.Abs(GTotalDr - GTotalCr);
                GTotalDr = 0;
            }

            if (GTotalDrOP > GTotalCrOP)
            {
                GTotalDrOP = Math.Abs(GTotalDrOP - GTotalCrOP);
                GTotalCrOP = 0;
            }
            else
            {
                GTotalCrOP = Math.Abs(GTotalDrOP - GTotalCrOP);
                GTotalDrOP = 0;
            }



            tb                        = new BLL.BalanceSheet();
            tb.LedgerList             = new BLL.Ledger();
            tb.LedgerList.AccountName = Prefix + "Total " + ag.GroupName;
            tb.CrAmt                  = GTotalCr;
            tb.DrAmt                  = GTotalDr;
            tb.CrAmtOP                = GTotalCrOP;
            tb.DrAmtOP                = GTotalDrOP;


            lstBalanceSheet.Add(tb);

            TotalDr   += GTotalDr;
            TotalCr   += GTotalCr;
            TotalDrOP += GTotalDrOP;
            TotalCrOP += GTotalCrOP;

            return(lstBalanceSheet);
        }