Esempio n. 1
0
        private void trvAccount_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (trvAccount.SelectedNode != null && trvAccount.SelectedNode.Text != "(Root)")
            {
                CAccountBalanceDetail balance = LoadAccount(trvAccount.SelectedNode.Text);
                LoadAccountTransaction(trvAccount.SelectedNode.Text);

                lblBalance.Text            = balance.lblBalance.ToString();
                lblDebitOpening.Text       = balance.lblDebitOpening.ToString();
                lblCreditOpening.Text      = balance.lblCreditOpening.ToString();
                lblDebitAmount.Text        = balance.lblDebitAmount.ToString();
                lblCreditAmount.Text       = balance.lblCreditAmount.ToString();
                lblDebitEnding.Text        = balance.lblDebitEnding.ToString();
                lblCreditEnding.Text       = balance.lblCreditEnding.ToString();
                lblFutureBalance.Text      = balance.lblFutureBalance.ToString();
                lblFutureDebitAmount.Text  = balance.lblFutureDebitAmount.ToString();
                lblFutureCreditAmount.Text = balance.lblFutureCreditAmount.ToString();
                lblFutureDebitEnding.Text  = balance.lblFutureDebitEnding.ToString();
                lblFutureCreditEnding.Text = balance.lblFutureCreditEnding.ToString();

                CAccount account = G.glb.lstAccount.Find(o => o.AccountName == trvAccount.SelectedNode.Text);
                lblAccountName.Text = account.AccountName;
                lblCurrency.Text    = account.Currency;

                RefreshPtgSubAccount(trvAccount.SelectedNode.Text);


                //plot.DrawPercentageBlocks(picCredit, "g", new List<double> { 0.2, 0.3, 0.3, 0.1, 0.1 }, new List<string> { "", "", "" });
                //plot.DrawPercentageBlocks(picDebit, "r", new List<double> { 0.2, 0.3, 0.5 }, new List<string> { "", "", "" });
            }
        }
Esempio n. 2
0
        private void RefreshPtgSubAccount(string accountname)
        {
            plot plot = new plot();

            // Get list of subaccounts
            if (trvAccount.SelectedNode.Text == "(Root)")
            {
                picDebit.BackColor = Color.White;
                picDebit.Controls.Clear();
                picCredit.BackColor = Color.White;
                picCredit.Controls.Clear();
            }
            else
            {
                List <RSubAccount> sub = G.glb.lstSubAccount.FindAll(o => o.Account == accountname);
                if (sub.Count > 0)
                {
                    List <double> lstCreditAmounts = new List <double>();
                    List <string> lstCreditDesc    = new List <string>();
                    List <double> lstDebitAmounts  = new List <double>();
                    List <string> lstDebitDesc     = new List <string>();
                    foreach (RSubAccount item in sub)
                    {
                        CAccountBalanceDetail subBalance = new CAccountBalanceDetail();
                        string accountCurrency           = G.glb.lstAccount.Find(o => o.AccountName == accountname).Currency;
                        string subAccountCurrency        = G.glb.lstAccount.Find(o => o.AccountName == item.SubAccount).Currency;
                        subBalance = LoadAccount(item.SubAccount);
                        if (subBalance.lblCreditAmount > 0)
                        {
                            if (accountCurrency == subAccountCurrency)
                            {
                                lstCreditAmounts.Add(subBalance.lblCreditAmount);
                            }
                            else
                            {
                                double currencyRate = 0;
                                if (G.glb.lstCurrencyRate.Exists(o => o.CurrencyA == accountCurrency && o.CurrencyB == subAccountCurrency))
                                {
                                    currencyRate = G.glb.lstCurrencyRate.Find(o => o.CurrencyA == accountCurrency && o.CurrencyB == subAccountCurrency).Rate;
                                    lstCreditAmounts.Add(subBalance.lblCreditAmount / currencyRate);
                                }
                                else
                                {
                                    currencyRate = G.glb.lstCurrencyRate.Find(o => o.CurrencyB == accountCurrency && o.CurrencyA == subAccountCurrency).Rate;
                                    lstCreditAmounts.Add(subBalance.lblCreditAmount * currencyRate);
                                }
                            }
                            lstCreditDesc.Add(item.SubAccount);
                        }
                        if (subBalance.lblDebitAmount > 0)
                        {
                            if (accountCurrency == subAccountCurrency)
                            {
                                lstDebitAmounts.Add(subBalance.lblDebitAmount);
                            }
                            else
                            {
                                double currencyRate = 0;
                                if (G.glb.lstCurrencyRate.Exists(o => o.CurrencyA == accountCurrency && o.CurrencyB == subAccountCurrency))
                                {
                                    currencyRate = G.glb.lstCurrencyRate.Find(o => o.CurrencyA == accountCurrency && o.CurrencyB == subAccountCurrency).Rate;
                                    lstDebitAmounts.Add(subBalance.lblDebitAmount / currencyRate);
                                }
                                else
                                {
                                    currencyRate = G.glb.lstCurrencyRate.Find(o => o.CurrencyB == accountCurrency && o.CurrencyA == subAccountCurrency).Rate;
                                    lstDebitAmounts.Add(subBalance.lblDebitAmount * currencyRate);
                                }
                            }
                            lstDebitDesc.Add(item.SubAccount);
                        }
                    }
                    if (lstCreditAmounts.Count > 0)
                    {
                        plot.DrawPercentageBlocks(picCredit, "g", lstCreditAmounts, lstCreditDesc);
                    }
                    else
                    {
                        picCredit.BackColor = Color.White;
                        picCredit.Controls.Clear();
                    }
                    if (lstDebitAmounts.Count > 0)
                    {
                        plot.DrawPercentageBlocks(picDebit, "r", lstDebitAmounts, lstDebitDesc);
                    }
                    else
                    {
                        picDebit.BackColor = Color.White;
                        picDebit.Controls.Clear();
                    }
                }
                else
                {
                    CAccountBalanceDetail balance = LoadAccount(accountname);
                    picDebit.BackColor = Color.White;
                    picDebit.Controls.Clear();
                    picCredit.BackColor = Color.White;
                    picCredit.Controls.Clear();
                    if (balance.lblCreditAmount > 0)
                    {
                        plot.DrawPercentageBlocks(picCredit, "g", new List <double> {
                            balance.lblCreditAmount
                        }, new List <string> {
                            accountname
                        });
                    }
                    if (balance.lblDebitAmount > 0)
                    {
                        plot.DrawPercentageBlocks(picDebit, "r", new List <double> {
                            balance.lblDebitAmount
                        }, new List <string> {
                            accountname
                        });
                    }
                }
            }
        }
Esempio n. 3
0
        private CAccountBalanceDetail LoadAccount(string accountName)
        {
            CAccountBalanceDetail res = new CAccountBalanceDetail();
            calculate             C   = new calculate();

            double curAssetsBalance      = 0;
            double curLiabilitiesBalance = 0;

            calculate.SBalance currentAssets = C.CalBalance(
                "(Assets)",
                G.glb.lstAccount,
                G.glb.lstSubAccount,
                G.glb.lstTransaction,
                G.glb.lstCurrencyRate,
                dtpStatementPeriodStart.Value.Date,
                dtpStatementPeriodEnd.Value.Date);
            curAssetsBalance = currentAssets.EndingBalanceDebit - currentAssets.EndingBalanceCredit;
            calculate.SBalance currentLiabilities = C.CalBalance(
                "(Liability)",
                G.glb.lstAccount,
                G.glb.lstSubAccount,
                G.glb.lstTransaction,
                G.glb.lstCurrencyRate,
                dtpStatementPeriodStart.Value.Date,
                dtpStatementPeriodEnd.Value.Date);
            curLiabilitiesBalance = currentLiabilities.EndingBalanceDebit - currentLiabilities.EndingBalanceCredit;
            res.lblBalance        = Math.Round(curAssetsBalance + curLiabilitiesBalance, 2);

            calculate.SBalance balance = C.CalBalance(
                accountName,
                G.glb.lstAccount,
                G.glb.lstSubAccount,
                G.glb.lstTransaction,
                G.glb.lstCurrencyRate,
                dtpStatementPeriodStart.Value.Date,
                dtpStatementPeriodEnd.Value.Date);
            res.lblDebitOpening  = Math.Round(balance.OpeningBalanceDebit, 2);
            res.lblCreditOpening = Math.Round(balance.OpeningBalanceCredit, 2);
            res.lblDebitAmount   = Math.Round(balance.AmountDebit, 2);
            res.lblCreditAmount  = Math.Round(balance.AmountCredit, 2);
            res.lblDebitEnding   = Math.Round(balance.EndingBalanceDebit, 2);
            res.lblCreditEnding  = Math.Round(balance.EndingBalanceCredit, 2);

            double futureAssetsBalance      = 0;
            double futureLiabilitiesBalance = 0;

            calculate.SBalance futureAssets = C.CalFutureBalance(
                "(Assets)",
                G.glb.lstAccount,
                G.glb.lstSubAccount,
                G.glb.lstTransaction,
                G.glb.lstBudget,
                G.glb.lstCurrencyRate,
                dtpStatementPeriodStart.Value.Date,
                dtpEndOfPredictPeriod.Value.Date);
            futureAssetsBalance = futureAssets.EndingBalanceDebit - futureAssets.EndingBalanceCredit;
            calculate.SBalance futureLiabilities = C.CalFutureBalance(
                "(Liability)",
                G.glb.lstAccount,
                G.glb.lstSubAccount,
                G.glb.lstTransaction,
                G.glb.lstBudget,
                G.glb.lstCurrencyRate,
                dtpStatementPeriodStart.Value.Date,
                dtpEndOfPredictPeriod.Value.Date);
            futureLiabilitiesBalance = futureLiabilities.EndingBalanceDebit - futureLiabilities.EndingBalanceCredit;
            res.lblFutureBalance     = Math.Round(futureAssetsBalance + futureLiabilitiesBalance, 2);

            calculate.SBalance futureBalance = C.CalFutureBalance(
                accountName,
                G.glb.lstAccount,
                G.glb.lstSubAccount,
                G.glb.lstTransaction,
                G.glb.lstBudget,
                G.glb.lstCurrencyRate,
                dtpStatementPeriodStart.Value.Date,
                dtpEndOfPredictPeriod.Value.Date);
            res.lblFutureDebitAmount  = Math.Round(futureBalance.AmountDebit, 2);
            res.lblFutureCreditAmount = Math.Round(futureBalance.AmountCredit, 2);
            res.lblFutureDebitEnding  = Math.Round(futureBalance.EndingBalanceDebit, 2);
            res.lblFutureCreditEnding = Math.Round(futureBalance.EndingBalanceCredit, 2);


            return(res);
        }