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);
        }
Ejemplo 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);
        }
        async void LoadGLTrans()
        {
            SetExpandAndCollapse(true);
            statementList.Clear();
            List <int> dim1 = null, dim2 = null, dim3 = null, dim4 = null, dim5 = null;

            var NumberOfDimensions = api.CompanyEntity.NumberOfDimensions;

            if (NumberOfDimensions >= 1)
            {
                dim1 = TransactionReport.GetRowIDs(cbdim1);
            }
            if (NumberOfDimensions >= 2)
            {
                dim2 = TransactionReport.GetRowIDs(cbdim2);
            }
            if (NumberOfDimensions >= 3)
            {
                dim3 = TransactionReport.GetRowIDs(cbdim3);
            }
            if (NumberOfDimensions >= 4)
            {
                dim4 = TransactionReport.GetRowIDs(cbdim4);
            }
            if (NumberOfDimensions >= 5)
            {
                dim5 = TransactionReport.GetRowIDs(cbdim5);
            }
            AccountStatement2.SetDateTime(txtDateFrm, txtDateTo);
            DateTime fromDate = AccountStatement2.DefaultFromDate, toDate = AccountStatement2.DefaultToDate;

            var isAscending = cbxAscending.IsChecked.Value;
            var skipBlank   = cbxSkipBlank.IsChecked.Value;

            var Pref = api.session.Preference;

            Pref.TransactionReport_isAscending = isAscending;
            Pref.TransactionReport_skipBlank   = skipBlank;

            string fromAccount = null, toAccount = null;
            var    accountObj = cmbFromAccount.EditValue;

            if (accountObj != null)
            {
                fromAccount = accountObj.ToString();
            }

            accountObj = cmbToAccount.EditValue;
            if (accountObj != null)
            {
                toAccount = accountObj.ToString();
            }

            string journal = cmbJournal.Text;

            busyIndicator.IsBusy = true;
            var transApi        = new Uniconta.API.GeneralLedger.ReportAPI(api);
            var dimensionParams = BalanceReport.SetDimensionParameters(dim1, dim2, dim3, dim4, dim5, true, true, true, true, true);
            var listTrans       = (GLTransClientTotal[])await transApi.GetTransactions(new GLTransClientTotal(), journal, fromAccount, toAccount, fromDate, toDate, dimensionParams, ReportAPI.SimplePrimo);

            if (listTrans != null)
            {
                string currentItem = null;
                AccountStatementList2     masterDbStatement = null;
                List <GLTransClientTotal> dbTransClientChildList = null;
                long SumAmount = 0, SumAmountCur = 0;
                byte currentCur = 0;

                foreach (var trans in listTrans)
                {
                    if (trans._Account != currentItem)
                    {
                        currentItem = trans._Account;

                        if (masterDbStatement != null)
                        {
                            if (!skipBlank || SumAmount != 0 || SumAmountCur != 0 || dbTransClientChildList.Count > 1)
                            {
                                masterDbStatement._SumAmount    = SumAmount / 100d;
                                masterDbStatement._SumAmountCur = SumAmountCur / 100d;
                                statementList.Add(masterDbStatement);
                            }
                        }

                        masterDbStatement              = new AccountStatementList2((GLAccount)accountCache.Get(currentItem));
                        dbTransClientChildList         = new List <GLTransClientTotal>();
                        masterDbStatement.ChildRecords = dbTransClientChildList;
                        SumAmount  = SumAmountCur = 0;
                        currentCur = (byte)masterDbStatement.Acc._Currency;
                    }

                    SumAmount   += trans._AmountCent;
                    trans._Total = SumAmount;
                    masterDbStatement._SumAmount = SumAmount;

                    if (trans._AmountCurCent != 0 && trans._Currency == currentCur)
                    {
                        SumAmountCur   += trans._AmountCurCent;
                        trans._TotalCur = SumAmountCur;
                    }

                    if (isAscending)
                    {
                        dbTransClientChildList.Add(trans);
                    }
                    else
                    {
                        dbTransClientChildList.Insert(0, trans);
                    }
                }

                if (masterDbStatement != null)
                {
                    if (!skipBlank || SumAmount != 0 || SumAmountCur != 0 || dbTransClientChildList.Count > 1)
                    {
                        masterDbStatement._SumAmount    = SumAmount / 100d;
                        masterDbStatement._SumAmountCur = SumAmountCur / 100d;
                        statementList.Add(masterDbStatement);
                    }
                }

                if (statementList.Count > 0)
                {
                    dgGLTrans.ItemsSource = null;
                    dgGLTrans.ItemsSource = statementList;
                }
                dgGLTrans.Visibility = Visibility.Visible;
            }
            else if (transApi.LastError != 0)
            {
                Uniconta.ClientTools.Util.UtilDisplay.ShowErrorCode(transApi.LastError);
            }
            busyIndicator.IsBusy = false;
            if (_master != null)
            {
                SetExpandAndCollapse(false);
            }
        }