Exemple #1
0
        public void GetTrialBalance(DateTime Date)
        {
            CultureInfo info = new CultureInfo("en-EN");

            info.NumberFormat.CurrencySymbol = "Rs";
            info.DateTimeFormat              = new DateTimeFormatInfo();
            info.DateTimeFormat.Calendar     = new GregorianCalendar(GregorianCalendarTypes.Localized);
            info.DateTimeFormat.AMDesignator = "AM";
            info.DateTimeFormat.PMDesignator = "PM";
            System.Threading.Thread.CurrentThread.CurrentCulture   = info;
            System.Threading.Thread.CurrentThread.CurrentUICulture = info;
            Tbms        = new ObservableCollection <Rms.Classes.TrialBalanceVm>();
            TotalDebit  = 0;
            TotalCredit = 0;
            #region grouping
            List <LedgerAccount> acountlistwithparentacount = new List <LedgerAccount>();
            foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount != null))
            {
                acountlistwithparentacount.Add(item);
            }
            List <LedgerAccount> accountlistwithoutparentaccount = new List <LedgerAccount>();
            accountlistwithoutparentaccount = LedgerAccounts.Except(acountlistwithparentacount).ToList();

            var groups = acountlistwithparentacount.GroupBy(a => a.parentLedgerAccount);
            #endregion
            foreach (var i in groups)
            {
                Tbms.Add(new TrialBalanceVm {
                    LedgerAccountName = i.Key.AccountName, IsParentAccount = true
                });
                foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount == i.Key))
                {
                    var v = GetBalanceForTrialBalance(item, Date);
                    if (v != null)
                    {
                        Tbms.Add(v);
                    }
                }
            }


            foreach (var item in accountlistwithoutparentaccount)
            {
                var v = GetBalanceForTrialBalance(item, Date);
                if (v != null)
                {
                    v.IsParentAccount = true;
                    Tbms.Add(v);
                }
            }

            TotalRows = new ObservableCollection <Rms.Classes.TrialBalanceVm>(
                new List <TrialBalanceVm> {
                new
                TrialBalanceVm {
                    LedgerAccountName = "Total", DebitSide = TotalDebit, CreditSide = TotalCredit
                }
            });
        }
        public void GetTrialBalance()
        {
            Tbms        = new ObservableCollection <Rms.Classes.TrialBalanceVm>();
            TotalDebit  = 0;
            TotalCredit = 0;

            #region grouping
            List <LedgerAccount> acountlistwithparentacount = new List <LedgerAccount>();
            foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount != null))
            {
                acountlistwithparentacount.Add(item);
            }
            List <LedgerAccount> accountlistwithoutparentaccount = new List <LedgerAccount>();
            accountlistwithoutparentaccount = LedgerAccounts.Except(acountlistwithparentacount).ToList();

            var groups = acountlistwithparentacount.GroupBy(a => a.parentLedgerAccount);
            #endregion
            foreach (var i in groups)
            {
                Tbms.Add(new TrialBalanceVm {
                    LedgerAccountName = i.Key.AccountName
                });
                foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount == i.Key))
                {
                    var v = GetBalanceForTrialBalance(item);
                    if (v != null)
                    {
                        Tbms.Add(v);
                    }
                }
            }


            foreach (var item in accountlistwithoutparentaccount)
            {
                var v = GetBalanceForTrialBalance(item);
                if (v != null)
                {
                    Tbms.Add(v);
                }
            }
            TotalRows = new ObservableCollection <Rms.Classes.TrialBalanceVm>(
                new List <TrialBalanceVm> {
                new
                TrialBalanceVm {
                    LedgerAccountName = "Total", DebitSide = TotalDebit, CreditSide = TotalCredit
                }
            });
        }
Exemple #3
0
 public async void Init2()
 {
     try
     {
         LedgerTransactions       = new ObservableCollection <LedgerTransaction>(await Service.GetAllLedgerTransactionsAsync());
         Ledgergenerals           = new ObservableCollection <LedgerGeneral>(await Service.GetAllLedgerGeneralsAsync());
         LedgerTransactionDetails = new ObservableCollection <LedgerTransactionDetail>(Service.GetAllLedgerTransactionDetails());
         //LedgerAccounts =new ObservableCollection<LedgerAccount>(LedgerAccounts.OrderByDescending(a => a.LedgerAccountId));
         LedgerAccounts = new ObservableCollection <LedgerAccount>(LedgerAccounts.OrderBy(b => b.AccountName));
         getJournalsBydate();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public void GetIncomeStatement()
        {
            Revenues = new ObservableCollection <RevenueVm>();
            Expenses = new ObservableCollection <ExpenseVm>();

            TotalExpenseBalance = 0;
            TotalRevenueBalance = 0;
            foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 3))
            {
                decimal debitbalance, creditbalance;
                GetDebitCreditTotal(item, out debitbalance, out creditbalance);
                var v = GetRevenues(item, debitbalance, creditbalance);
                if (v != null)
                {
                    Revenues.Add(v);
                }
            }
            foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 2))
            {
                decimal debitbalance, creditbalance;
                GetDebitCreditTotal(item, out debitbalance, out creditbalance);
                var v = GetExpenses(item, debitbalance, creditbalance);
                if (v != null)
                {
                    Expenses.Add(v);
                }
            }
            TotalRevenueRows = new ObservableCollection <RevenueVm>(new List <RevenueVm>
            {
                new RevenueVm {
                    LedgerAccountName = "Total Revenues", Amount = TotalRevenueBalance
                }
            });
            TotalExpenseRows = new ObservableCollection <ExpenseVm>(new List <ExpenseVm>
            {
                new ExpenseVm {
                    LedgerAccountName = "Total Expenses", Amount = TotalExpenseBalance
                }
            });
            NetIncomes = new ObservableCollection <Rms.Classes.NetIncome>(new List <NetIncome>
            {
                new NetIncome {
                    LedgerAccountName = "Total", Amount = GetNetIncome()
                }
            });
        }
        public void GetBalanceSheet()
        {
            try
            {
                Assets                  = new ObservableCollection <AssetsVm>();
                Liabilities             = new ObservableCollection <LiabilitiesVm>();
                Equities                = new ObservableCollection <Rms.Classes.EquityVm>();
                LiabilitiesAndEquity    = new ObservableCollection <Rms.Classes.LiabilitiesAndEquity>();
                TotalAssetsBalance      = 0;
                TotalLiabilitiesBalance = 0;
                TotalEquityBalance      = 0;

                #region grouping
                List <LedgerAccount> acountlistwithparentacount = new List <LedgerAccount>();
                foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount != null))
                {
                    acountlistwithparentacount.Add(item);
                }
                List <LedgerAccount> accountlistwithoutparentaccount = new List <LedgerAccount>();
                accountlistwithoutparentaccount = LedgerAccounts.Except(acountlistwithparentacount).ToList();

                var groups = acountlistwithparentacount.GroupBy(a => a.parentLedgerAccount);
                #endregion
                foreach (var item in groups)
                {
                    decimal assetgroupbalance       = 0;
                    decimal liabilitiesgroupbalance = 0;
                    decimal equitygroupbalance      = 0;
                    foreach (var i in LedgerAccounts.Where(a => a.parentLedgerAccount == item.Key && a.AccountClassId == 1))
                    {
                        var v = GetAssets(i);
                        if (v != null)
                        {
                            assetgroupbalance += v.Amount;
                        }
                    }
                    if (assetgroupbalance != 0)
                    {
                        Assets.Add(new AssetsVm {
                            LedgerAccountName = item.Key.AccountName, Amount = assetgroupbalance
                        });
                    }
                    foreach (var i in LedgerAccounts.Where(a => a.AccountClassId == 4 && a.parentLedgerAccount == item.Key))
                    {
                        var v = GetLiabilities(i);
                        if (v != null)
                        {
                            liabilitiesgroupbalance += v.Amount;
                        }
                    }
                    if (liabilitiesgroupbalance != 0)
                    {
                        Liabilities.Add(new LiabilitiesVm {
                            LedgerAccountName = item.Key.AccountName, Amount = liabilitiesgroupbalance
                        });
                    }
                    foreach (var i in LedgerAccounts.Where(a => a.AccountClassId == 5 && a.parentLedgerAccount == item.Key))
                    {
                        var v = GetEquities(i);
                        if (v != null)
                        {
                            equitygroupbalance += v.Amount;
                        }
                    }
                    if (equitygroupbalance != 0)
                    {
                        Equities.Add(new EquityVm {
                            LedgerAccountName = item.Key.AccountName, Amount = equitygroupbalance
                        });
                    }
                }

                foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 1))
                {
                    var v = GetAssets(item);
                    if (v != null)
                    {
                        Assets.Add(v);
                    }
                }
                foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 4))
                {
                    var v = GetLiabilities(item);
                    if (v != null)
                    {
                        Liabilities.Add(v);
                    }
                }
                foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 5))
                {
                    var v = GetEquities(item);
                    if (v != null)
                    {
                        Equities.Add(v);
                    }
                }
                GetIncomeStatement(true);
                var netincome = GetNetIncome();
                if (netincome != 0)
                {
                    Equities.Add(new EquityVm {
                        LedgerAccountName = "Net Income", Amount = netincome
                    });
                }
                LiabilitiesAndEquity.Add(new Rms.Classes.LiabilitiesAndEquity {
                    LedgerAccountName = "Total", Amount = TotalEquityBalance + GetNetIncome() + TotalLiabilitiesBalance
                });
                TotalAssetsRows = new ObservableCollection <AssetsVm>(new List <AssetsVm>
                {
                    new AssetsVm {
                        LedgerAccountName = "Total Assets", Amount = TotalAssetsBalance
                    }
                });
                TotalLiabilitiesRows = new ObservableCollection <LiabilitiesVm>(new List <LiabilitiesVm>
                {
                    new LiabilitiesVm {
                        LedgerAccountName = "Total Liabilities", Amount = TotalLiabilitiesBalance
                    }
                });
                TotalEquitiesRows = new ObservableCollection <EquityVm>(new List <EquityVm>
                {
                    new EquityVm {
                        LedgerAccountName = "Total Equities", Amount = TotalEquityBalance + GetNetIncome()
                    }
                });
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cannot Show BalanceSheet " + ex.Message);
            }
        }
        public void GetIncomeStatement(bool ForBalanceSheet)
        {
            Revenues            = new ObservableCollection <RevenueVm>();
            Expenses            = new ObservableCollection <ExpenseVm>();
            TotalExpenseBalance = 0;
            TotalRevenueBalance = 0;
            #region grouping
            List <LedgerAccount> acountlistwithparentacount = new List <LedgerAccount>();
            foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount != null))
            {
                acountlistwithparentacount.Add(item);
            }
            List <LedgerAccount> accountlistwithoutparentaccount = new List <LedgerAccount>();
            accountlistwithoutparentaccount = LedgerAccounts.Except(acountlistwithparentacount).ToList();

            var groups = acountlistwithparentacount.GroupBy(a => a.parentLedgerAccount);
            #endregion
            foreach (var i in groups)
            {
                decimal revenuegroupbalance = 0;
                decimal expensegroupbalance = 0;
                foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 3 && a.parentLedgerAccount == i.Key))
                {
                    decimal debitbalance, creditbalance;
                    GetDebitCreditTotal(item, ForBalanceSheet, out debitbalance, out creditbalance);
                    var v = GetRevenues(item, debitbalance, creditbalance);
                    if (v != null)
                    {
                        revenuegroupbalance += v.Amount;
                    }
                }
                foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 2 && a.parentLedgerAccount == i.Key))
                {
                    decimal debitbalance, creditbalance;
                    GetDebitCreditTotal(item, ForBalanceSheet, out debitbalance, out creditbalance);
                    var v = GetExpenses(item, debitbalance, creditbalance);
                    if (v != null)
                    {
                        expensegroupbalance += v.Amount;
                    }
                }
                if (revenuegroupbalance > 0)
                {
                    Revenues.Add(new RevenueVm {
                        LedgerAccountName = i.Key.AccountName, Amount = revenuegroupbalance
                    });
                }
                if (expensegroupbalance > 0)
                {
                    Expenses.Add(new ExpenseVm {
                        LedgerAccountName = i.Key.AccountName, Amount = expensegroupbalance
                    });
                }
            }
            foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 3))
            {
                decimal debitbalance, creditbalance;
                GetDebitCreditTotal(item, ForBalanceSheet, out debitbalance, out creditbalance);
                var v = GetRevenues(item, debitbalance, creditbalance);
                if (v != null)
                {
                    Revenues.Add(v);
                }
            }
            foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 2))
            {
                decimal debitbalance, creditbalance;
                GetDebitCreditTotal(item, ForBalanceSheet, out debitbalance, out creditbalance);
                var v = GetExpenses(item, debitbalance, creditbalance);
                if (v != null)
                {
                    Expenses.Add(v);
                }
            }
            TotalRevenueRows = new ObservableCollection <RevenueVm>(new List <RevenueVm>
            {
                new RevenueVm {
                    LedgerAccountName = "Total Revenues", Amount = TotalRevenueBalance
                }
            });
            TotalExpenseRows = new ObservableCollection <ExpenseVm>(new List <ExpenseVm>
            {
                new ExpenseVm {
                    LedgerAccountName = "Total Expenses", Amount = TotalExpenseBalance
                }
            });
            NetIncomes = new ObservableCollection <Rms.Classes.NetIncome>(new List <NetIncome>
            {
                new NetIncome {
                    LedgerAccountName = "Total", Amount = GetNetIncome()
                }
            });
        }
        public void GetBalanceSheet()
        {
            CultureInfo info = new CultureInfo("ne-NP");

            info.NumberFormat.CurrencySymbol = "Rs";
            info.DateTimeFormat              = new DateTimeFormatInfo();
            info.DateTimeFormat.Calendar     = new GregorianCalendar(GregorianCalendarTypes.Localized);
            info.DateTimeFormat.AMDesignator = "AM";
            info.DateTimeFormat.PMDesignator = "PM";
            System.Threading.Thread.CurrentThread.CurrentCulture = info;
            Thread.CurrentThread.CurrentUICulture = info;
            Assets                  = new ObservableCollection <AssetsVm>();
            Liabilities             = new ObservableCollection <LiabilitiesVm>();
            Equities                = new ObservableCollection <Rms.Classes.EquityVm>();
            LiabilitiesAndEquity    = new ObservableCollection <Rms.Classes.LiabilitiesAndEquity>();
            TotalAssetsBalance      = 0;
            TotalLiabilitiesBalance = 0;
            TotalEquityBalance      = 0;
            Reports.Add(new BalanceSheetExport {
                AccountType = "Assets", Date = BalanceSheetDate.Date.ToLongDateString()
            });


            #region grouping
            List <LedgerAccount> acountlistwithparentacount = new List <LedgerAccount>();
            foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount != null))
            {
                acountlistwithparentacount.Add(item);
            }
            List <LedgerAccount> accountlistwithoutparentaccount = new List <LedgerAccount>();
            accountlistwithoutparentaccount = LedgerAccounts.Except(acountlistwithparentacount).ToList();

            var groups = acountlistwithparentacount.GroupBy(a => a.parentLedgerAccount);
            #endregion

            #region foreach
            foreach (var item in groups)
            {
                decimal assetgroupbalance = 0;

                foreach (var i in LedgerAccounts.Where(a => a.parentLedgerAccount == item.Key && a.AccountClassId == 1))
                {
                    var v = GetAssets(i);
                    if (v != null)
                    {
                        assetgroupbalance += v.Amount;
                    }
                }
                if (assetgroupbalance > 0)
                {
                    Reports.Add(new BalanceSheetExport {
                        Account = item.Key.AccountName, Balance = assetgroupbalance.ToString("C")
                    });
                    // Assets.Add(new AssetsVm { LedgerAccountName = item.Key.AccountName, Amount = assetgroupbalance });
                }
            }
            #endregion
            foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 1))
            {
                var v = GetAssets(item);
                if (v != null)
                {
                    Reports.Add(new BalanceSheetExport {
                        Account = v.LedgerAccountName, Balance = v.Amount.ToString("C")
                    });
                }
            }
            Reports.Add(new BalanceSheetExport {
                TotalHeading = "Total Assets", Total = TotalAssetsBalance.ToString("C")
            });
            Reports.Add(new BalanceSheetExport {
                AccountType = "Liabilities"
            });
            #region foreach
            foreach (var item in groups)
            {
                decimal liabilitiesgroupbalance = 0;


                foreach (var i in LedgerAccounts.Where(a => a.AccountClassId == 4 && a.parentLedgerAccount == item.Key))
                {
                    var v = GetLiabilities(i);
                    if (v != null)
                    {
                        liabilitiesgroupbalance += v.Amount;
                    }
                }
                if (liabilitiesgroupbalance > 0)
                {
                    Reports.Add(new BalanceSheetExport {
                        Account = item.Key.AccountName, Balance = liabilitiesgroupbalance.ToString("C")
                    });

                    // Liabilities.Add(new LiabilitiesVm { LedgerAccountName = item.Key.AccountName, Amount = liabilitiesgroupbalance });
                }
            }
            #endregion
            foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 4))
            {
                var v = GetLiabilities(item);
                if (v != null)
                {
                    //Liabilities.Add(v);
                    Reports.Add(new BalanceSheetExport {
                        Account = v.LedgerAccountName, Balance = v.Amount.ToString("C")
                    });
                }
            }
            Reports.Add(new BalanceSheetExport {
                TotalHeading = "Total Liabilities", Total = TotalLiabilitiesBalance.ToString("C")
            });
            Reports.Add(new BalanceSheetExport {
                AccountType = "Equity"
            });

            #region foreach
            foreach (var item in groups)
            {
                decimal equitygroupbalance = 0;

                foreach (var i in LedgerAccounts.Where(a => a.AccountClassId == 5 && a.parentLedgerAccount == item.Key))
                {
                    var v = GetEquities(i);
                    if (v != null)
                    {
                        equitygroupbalance += v.Amount;
                    }
                }
                if (equitygroupbalance > 0)
                {
                    Reports.Add(new BalanceSheetExport {
                        Account = item.Key.AccountName, Balance = equitygroupbalance.ToString("C")
                    });
                }
            }
            #endregion
            foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 5))
            {
                var v = GetEquities(item);
                if (v != null)
                {
                    //Equities.Add(v);
                    Reports.Add(new BalanceSheetExport {
                        Account = v.LedgerAccountName, Balance = v.Amount.ToString("C")
                    });
                }
            }
            GetIncomeStatement();
            var lande      = TotalEquityBalance + GetNetIncome() + TotalLiabilitiesBalance;
            var totalquity = TotalEquityBalance + GetNetIncome();
            Reports.Add(new BalanceSheetExport {
                Account = "Net Income", Balance = GetNetIncome().ToString("C")
            });
            Reports.Add(new BalanceSheetExport {
                TotalHeading = "Total Equities", Total = totalquity.ToString("C")
            });

            Reports.Add(new BalanceSheetExport {
            });

            Reports.Add(new BalanceSheetExport {
                TotalHeading = "Liabilities And Equity", Total = lande.ToString("C")
            });
        }
        public ObservableCollection <IncomeStatementExport> GetIncomeStatement()
        {
            CultureInfo info = new CultureInfo("ne-NP");

            info.NumberFormat.CurrencySymbol = "Rs";
            info.DateTimeFormat              = new DateTimeFormatInfo();
            info.DateTimeFormat.Calendar     = new GregorianCalendar(GregorianCalendarTypes.Localized);
            info.DateTimeFormat.AMDesignator = "AM";
            info.DateTimeFormat.PMDesignator = "PM";
            System.Threading.Thread.CurrentThread.CurrentCulture = info;
            Thread.CurrentThread.CurrentUICulture = info;
            Revenues            = new ObservableCollection <RevenueVm>();
            Expenses            = new ObservableCollection <ExpenseVm>();
            TotalExpenseBalance = 0;
            TotalRevenueBalance = 0;
            #region grouping
            List <LedgerAccount> acountlistwithparentacount = new List <LedgerAccount>();
            foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount != null))
            {
                acountlistwithparentacount.Add(item);
            }
            List <LedgerAccount> accountlistwithoutparentaccount = new List <LedgerAccount>();
            accountlistwithoutparentaccount = LedgerAccounts.Except(acountlistwithparentacount).ToList();
            var groups = acountlistwithparentacount.GroupBy(a => a.parentLedgerAccount);
            #endregion
            Reports.Add(new IncomeStatementExport {
                AccountType = "Revenue", Date = IncomeStatementDate.Date.ToLongDateString()
            });

            foreach (var i in groups)
            {
                decimal revenuegroupbalance = 0;

                foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 3 && a.parentLedgerAccount == i.Key))
                {
                    decimal debitbalance, creditbalance;
                    GetDebitCreditTotal(item, out debitbalance, out creditbalance);
                    var v = GetRevenues(item, debitbalance, creditbalance);
                    if (v != null)
                    {
                        revenuegroupbalance += v.Amount;
                    }
                }

                if (revenuegroupbalance > 0)
                {
                    Reports.Add(new IncomeStatementExport {
                        Account = i.Key.AccountName, Balance = revenuegroupbalance.ToString("C")
                    });
                    //  Revenues.Add(new RevenueVm { LedgerAccountName = i.Key.AccountName, Amount = revenuegroupbalance });
                }
            }
            foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 3))
            {
                decimal debitbalance, creditbalance;
                GetDebitCreditTotal(item, out debitbalance, out creditbalance);
                var v = GetRevenues(item, debitbalance, creditbalance);
                if (v != null)
                {
                    Reports.Add(new IncomeStatementExport {
                        Account = v.LedgerAccountName, Balance = v.Amount.ToString("C")
                    });
                }
            }
            Reports.Add(new IncomeStatementExport {
                TotalHeading = "TotalRevenue", Total = TotalRevenueBalance.ToString("C")
            });
            //TotalRevenueRows = new ObservableCollection<RevenueVm>(new List<RevenueVm>
            //{ new RevenueVm { LedgerAccountName="Total Revenues", Amount=TotalRevenueBalance } });
            Reports.Add(new IncomeStatementExport {
                AccountType = "Expense"
            });



            foreach (var i in groups)
            {
                decimal expensegroupbalance = 0;

                foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 2 && a.parentLedgerAccount == i.Key))
                {
                    decimal debitbalance, creditbalance;
                    GetDebitCreditTotal(item, out debitbalance, out creditbalance);
                    var v = GetExpenses(item, debitbalance, creditbalance);
                    if (v != null)
                    {
                        expensegroupbalance += v.Amount;
                    }
                }

                if (expensegroupbalance > 0)
                {
                    Reports.Add(new IncomeStatementExport {
                        Account = i.Key.AccountName, Balance = expensegroupbalance.ToString("C")
                    });
                    // Expenses.Add(new ExpenseVm { LedgerAccountName = i.Key.AccountName, Amount = expensegroupbalance });
                }
            }


            foreach (var item in accountlistwithoutparentaccount.Where(a => a.AccountClassId == 2))
            {
                decimal debitbalance, creditbalance;
                GetDebitCreditTotal(item, out debitbalance, out creditbalance);
                var v = GetExpenses(item, debitbalance, creditbalance);
                if (v != null)
                {
                    Reports.Add(new IncomeStatementExport {
                        Account = v.LedgerAccountName, Balance = v.Amount.ToString("C")
                    });
                }
            }
            Reports.Add(new IncomeStatementExport {
                TotalHeading = "Total Expense", Total = TotalExpenseBalance.ToString("C")
            });
            //TotalExpenseRows = new ObservableCollection<ExpenseVm>(new List<ExpenseVm>
            //{ new ExpenseVm { LedgerAccountName="Total Expenses", Amount=TotalExpenseBalance } });
            Reports.Add(new IncomeStatementExport {
                TotalHeading = "Net Income", Total = GetNetIncome().ToString("C")
            });
            //NetIncomes = new ObservableCollection<Rms.Classes.NetIncome>(new List<NetIncome>
            //{ new NetIncome { LedgerAccountName="Total", Amount=GetNetIncome() } });
            return(Reports);
        }
Exemple #9
0
        public void GetIncomeChart()
        {
            Revenues = new ObservableCollection <Rms.Classes.RevenueVm>();

            try
            {
                TotalExpenseBalance = 0;
                TotalRevenueBalance = 0;
                var lineSerie = new OxyPlot.Series.LineSeries
                {
                    ToolTip = "Revenue",
                    // LabelFormatString = "Revenue",
                    StrokeThickness             = 1,
                    MarkerSize                  = 3,
                    Color                       = OxyColors.Green,
                    MarkerFill                  = OxyColors.Green,
                    MarkerStroke                = OxyColors.Green,
                    MarkerType                  = MarkerType.Diamond,// markerTypes[data.Key],
                    CanTrackerInterpolatePoints = false,
                    Title                       = "Revenue"
                };
                var ExpenselineSerie = new OxyPlot.Series.LineSeries
                {
                    ToolTip = "Expense",
                    // LabelFormatString = "Expense",
                    StrokeThickness             = 1,
                    MarkerSize                  = 3,
                    Color                       = OxyColors.Red,
                    MarkerFill                  = OxyColors.Red,
                    MarkerStroke                = OxyColors.Red,
                    MarkerType                  = MarkerType.Diamond,// markerTypes[data.Key],
                    CanTrackerInterpolatePoints = false,
                    Title                       = "Expense"
                };
                var NetIncomelineSerie = new OxyPlot.Series.LineSeries
                {
                    ToolTip = "Net Income",
                    // LabelFormatString = "Net Income",
                    StrokeThickness             = 1,
                    MarkerSize                  = 3,
                    Color                       = OxyColors.Blue,
                    MarkerFill                  = OxyColors.Blue,
                    MarkerStroke                = OxyColors.Blue,
                    MarkerType                  = MarkerType.Diamond,// markerTypes[data.Key],
                    CanTrackerInterpolatePoints = false,
                    Title                       = "Net Income"
                };
                for (int i = 1; i <= DateTime.Today.Month + 1; i++)
                {
                    int      year     = DateTime.Today.Year;
                    DateTime interval = DateTime.Parse(string.Format("{0}-{1}-{2}", i, 1, year));
                    interval = interval.AddDays(-1);
                    decimal Revenuebalance = 0;
                    decimal ExpenseBalance = 0;
                    foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 3))
                    {
                        decimal debitbalance, creditbalance;
                        GetDebitCreditTotal(item, interval, out debitbalance, out creditbalance);
                        var v = GetRevenues(item, debitbalance, creditbalance);

                        if (v != null)
                        {
                            Revenuebalance += v.Amount;
                            // Revenues.Add(v);
                        }
                    }

                    foreach (var item in LedgerAccounts.Where(a => a.AccountClassId == 2))
                    {
                        decimal debitbalance, creditbalance;
                        GetDebitCreditTotal(item, interval, out debitbalance, out creditbalance);
                        var v = GetExpenses(item, debitbalance, creditbalance);

                        if (v != null)
                        {
                            ExpenseBalance += v.Amount;
                        }
                    }

                    lineSerie.Points.Add(new DataPoint(OxyPlot.Axes.DateTimeAxis.ToDouble(interval), (double)Revenuebalance));
                    ExpenselineSerie.Points.Add(new DataPoint(OxyPlot.Axes.DateTimeAxis.ToDouble(interval), (double)ExpenseBalance));
                    NetIncomelineSerie.Points.Add(new DataPoint(OxyPlot.Axes.DateTimeAxis.ToDouble(interval), (double)Revenuebalance - (double)ExpenseBalance));
                }


                PlotModel.Series.Add(lineSerie);
                PlotModel.Series.Add(ExpenselineSerie);
                PlotModel.Series.Add(NetIncomelineSerie);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void GetTrialBalance(DateTime Date)
        {
            try
            {
                Tbms        = new ObservableCollection <Rms.Classes.TrialBalanceVm>();
                TotalDebit  = 0;
                TotalCredit = 0;

                #region grouping
                List <LedgerAccount> acountlistwithparentacount = new List <LedgerAccount>();
                foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount != null))
                {
                    acountlistwithparentacount.Add(item);
                }
                List <LedgerAccount> accountlistwithoutparentaccount = new List <LedgerAccount>();
                accountlistwithoutparentaccount = LedgerAccounts.Except(acountlistwithparentacount).ToList();

                var groups = acountlistwithparentacount.GroupBy(a => a.parentLedgerAccount);
                #endregion
                foreach (var i in groups)
                {
                    bool moneyentered = false;
                    Tbms.Add(new TrialBalanceVm {
                        LedgerAccountName = i.Key.AccountName, IsParentAccount = true
                    });
                    foreach (var item in LedgerAccounts.Where(a => a.parentLedgerAccount == i.Key))
                    {
                        var v = GetBalanceForTrialBalance(item, Date);
                        if (v != null)
                        {
                            Tbms.Add(v);
                            moneyentered = true;
                        }
                    }

                    if (!moneyentered)
                    {
                        Tbms.Remove(Tbms.LastOrDefault());
                    }
                }


                foreach (var item in accountlistwithoutparentaccount)
                {
                    var v = GetBalanceForTrialBalance(item, Date);
                    if (v != null)
                    {
                        v.IsParentAccount = true;
                        Tbms.Add(v);
                    }
                }
                TotalRows = new ObservableCollection <Rms.Classes.TrialBalanceVm>(
                    new List <TrialBalanceVm> {
                    new
                    TrialBalanceVm {
                        LedgerAccountName = "Total", DebitSide = TotalDebit, CreditSide = TotalCredit
                    }
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }