public async override Task InitQuery()
        {
            busyIndicator.IsBusy = true;
            var tranApi = new Uniconta.API.GeneralLedger.ReportAPI(api);
            var tsk     = tranApi.GetBank(new GLTransClientTotal(), master._Account, fromDate, toDate);

            StartLoadCache(tsk);

            var listtran = (GLTransClientTotal[])await tsk;

            if (listtran != null)
            {
                Array.Sort(listtran, new GLTransClientSort());

                var  ShowCurrency = this.ShowCurrency;
                long Total        = 0;
                var  l            = listtran.Length;
                for (int i = 0; (i < l); i++)
                {
                    var p = listtran[i];
                    Total   += ShowCurrency ? p._AmountCurCent : p._AmountCent;
                    p._Total = Total;
                }
            }
            dgAccountsTransGrid.SetSource(listtran);
        }
Esempio n. 2
0
        async Task <PollReportSource> CreatePollReportSource(BankStatementClient master)
        {
            busyIndicator.IsBusy = true;
            var bankTransApi  = new BankStatementAPI(api);
            var bankStmtLines = (BankStatementLineGridClient[])await bankTransApi.GetTransactions(new BankStatementLineGridClient(), master, fromDate, toDate, true);

            var  src = new List <TextAmount>();
            long BankTotalNoMatch = 0, Total = 0;

            if (bankStmtLines != null)
            {
                if (bankStmtLines.Length > 0)
                {
                    bankStmtLines[0]._AmountCent += Uniconta.Common.Utility.NumberConvert.ToLong(100d * master._StartBalance);
                }
                for (int i = 0; (i < bankStmtLines.Length); i++)
                {
                    var p = bankStmtLines[i];
                    //if (!p._Void)
                    {
                        Total   += p._AmountCent;
                        p._Total = Total;
                    }
                    if (p.State == 1) // red
                    {
                        BankTotalNoMatch += p._AmountCent;
                        src.Add(new TextAmount()
                        {
                            Date = p._Date, AmountCent = p._AmountCent, Text = p.Text
                        });                                                                                      // use Text property
                    }
                }
            }

            var pollsrc = new PollReportSource();

            pollsrc.FromDate  = fromDate;
            pollsrc.Date      = toDate;
            pollsrc.BankAcc   = master;
            pollsrc.BankTotal = Total / 100d;
            pollsrc.Source2   = src;

            src              = new List <TextAmount>();
            Total            = 0;
            BankTotalNoMatch = 0;

            var tranApi  = new Uniconta.API.GeneralLedger.ReportAPI(api);
            var listtran = (GLTransClientTotal[])await tranApi.GetBank(new GLTransClientTotal(), master._Account, fromDate, toDate, true);

            if (listtran != null)
            {
                Array.Sort(listtran, new GLTransClientSort());
                bool ShowCurrency = (!tranApi.CompanyEntity.SameCurrency(master._Currency));

                for (int i = 0; (i < listtran.Length); i++)
                {
                    var p          = listtran[i];
                    var AmountCent = ShowCurrency ? p._AmountCurCent : p._AmountCent;
                    Total   += AmountCent;
                    p._Total = Total;

                    if (p.State == 1) // red
                    {
                        BankTotalNoMatch += p._AmountCent;
                        src.Add(new TextAmount()
                        {
                            Date = p._Date, Voucher = p._Voucher, Text = p.Text, AmountCent = AmountCent
                        });                                                                                                         // use Text property
                    }
                }
            }

            pollsrc.PostedTotal = Total / 100d;
            pollsrc.Source3     = src;

            busyIndicator.IsBusy = false;

            return(pollsrc);
        }