コード例 #1
0
        /// <summary>
        /// load the journals into the grid
        /// </summary>
        /// <param name="ACurrentBatchRow"></param>
        public void LoadJournals(ABatchRow ACurrentBatchRow)
        {
            FJournalsLoaded = false;

            FBatchRow = ACurrentBatchRow;

            if (FBatchRow == null)
            {
                return;
            }

            Int32  CurrentLedgerNumber = FBatchRow.LedgerNumber;
            Int32  CurrentBatchNumber  = FBatchRow.BatchNumber;
            string CurrentBatchStatus  = FBatchRow.BatchStatus;
            bool   BatchIsUnposted     = (FBatchRow.BatchStatus == MFinanceConstants.BATCH_UNPOSTED);

            bool FirstRun           = (FLedgerNumber != CurrentLedgerNumber);
            bool BatchChanged       = (FBatchNumber != CurrentBatchNumber);
            bool BatchStatusChanged = (!BatchChanged && (FBatchStatus != CurrentBatchStatus));

            if (FirstRun)
            {
                FLedgerNumber = CurrentLedgerNumber;
            }

            if (BatchChanged)
            {
                FBatchNumber = CurrentBatchNumber;
            }

            if (BatchStatusChanged)
            {
                FBatchStatus = CurrentBatchStatus;
            }

            //Create object to control deletion
            FCancelLogicObject = new TUC_GLJournals_Cancel(FPetraUtilsObject, FLedgerNumber, FMainDS);

            //Make sure the current effective date for the Batch is correct
            DateTime BatchDateEffective = FBatchRow.DateEffective;

            //Check if need to load Journals
            if (!(FirstRun || BatchChanged || BatchStatusChanged))
            {
                //Need to reconnect FPrev in some circumstances
                if (FPreviouslySelectedDetailRow == null)
                {
                    DataRowView rowView = (DataRowView)grdDetails.Rows.IndexToDataSourceRow(FPrevRowChangedRow);

                    if (rowView != null)
                    {
                        FPreviouslySelectedDetailRow = (GLBatchTDSAJournalRow)(rowView.Row);
                    }
                }

                // The journals are the same and we have loaded them already
                if (BatchIsUnposted)
                {
                    if (GetSelectedRowIndex() > 0)
                    {
                        GetDetailsFromControls(GetSelectedDetailRow());
                    }
                }
            }
            else
            {
                // a different journal
                SetJournalDefaultView();
                FPreviouslySelectedDetailRow = null;

                //Load Journals
                if (FMainDS.AJournal.DefaultView.Count == 0)
                {
                    FMainDS.Merge(TRemote.MFinance.GL.WebConnectors.LoadAJournal(FLedgerNumber, FBatchNumber));
                }

                if (BatchIsUnposted)
                {
                    if (!dtpDetailDateEffective.Date.HasValue || (dtpDetailDateEffective.Date.Value != BatchDateEffective))
                    {
                        dtpDetailDateEffective.Date = BatchDateEffective;
                    }
                }

                //Check if DateEffective has changed and then update all
                foreach (DataRowView drv in FMainDS.AJournal.DefaultView)
                {
                    AJournalRow jr = (AJournalRow)drv.Row;

                    if (jr.DateEffective != BatchDateEffective)
                    {
                        ((TFrmGLBatch)ParentForm).GetTransactionsControl().UpdateTransactionTotals(TGLBatchEnums.eGLLevel.Batch, true);
                        break;
                    }
                }

                ShowData();

                // Now set up the complete current filter
                FFilterAndFindObject.FilterPanelControls.SetBaseFilter(FMainDS.AJournal.DefaultView.RowFilter, true);
                FFilterAndFindObject.ApplyFilter();
            }

            int nRowToSelect = 1;

            TFrmGLBatch myParentForm = (TFrmGLBatch)ParentForm;

            if (myParentForm.InitialBatchFound)
            {
                DataView myView = (grdDetails.DataSource as DevAge.ComponentModel.BoundDataView).DataView;

                for (int counter = 0; (counter < myView.Count); counter++)
                {
                    int myViewJournalNumber = (int)myView[counter][AJournalTable.GetJournalNumberDBName()];

                    if (myViewJournalNumber == myParentForm.InitialJournalNumber)
                    {
                        nRowToSelect = counter + 1;
                        break;
                    }
                }
            }
            else
            {
                nRowToSelect = (BatchChanged || FirstRun) ? 1 : FPrevRowChangedRow;
            }

            //This will also call UpdateChangeableStatus
            SelectRowInGrid(nRowToSelect);

            UpdateRecordNumberDisplay();
            FFilterAndFindObject.SetRecordNumberDisplayProperties();

            txtControl.CurrencyCode = TTxtCurrencyTextBox.CURRENCY_STANDARD_2_DP;
            txtCredit.CurrencyCode  = FLedgerBaseCurrency;
            txtDebit.CurrencyCode   = FLedgerBaseCurrency;

            FJournalsLoaded = true;
        }
コード例 #2
0
        /// <summary>
        /// load the journals into the grid
        /// </summary>
        /// <param name="ALedgerNumber"></param>
        /// <param name="ABatchNumber"></param>
        /// <param name="ABatchStatus"></param>
        public void LoadJournals(Int32 ALedgerNumber, Int32 ABatchNumber, string ABatchStatus = MFinanceConstants.BATCH_UNPOSTED)
        {
            FJournalsLoaded = false;
            FBatchRow       = GetBatchRow();

            if (FBatchRow == null)
            {
                return;
            }

            FCancelLogicObject = new TUC_GLJournals_Cancel(FPetraUtilsObject, FLedgerNumber, FMainDS);

            //Make sure the current effective date for the Batch is correct
            DateTime BatchDateEffective = FBatchRow.DateEffective;

            bool FirstRun           = (FLedgerNumber != ALedgerNumber);
            bool BatchChanged       = (FBatchNumber != ABatchNumber);
            bool BatchStatusChanged = (!BatchChanged && FBatchStatus != ABatchStatus);

            //Check if need to load Journals
            if (FirstRun || BatchChanged || BatchStatusChanged)
            {
                FLedgerNumber = ALedgerNumber;
                FBatchNumber  = ABatchNumber;
                FBatchStatus  = ABatchStatus;

                SetJournalDefaultView();
                FPreviouslySelectedDetailRow = null;

                //Load Journals
                if (FMainDS.AJournal.DefaultView.Count == 0)
                {
                    FMainDS.Merge(TRemote.MFinance.GL.WebConnectors.LoadAJournalAndContent(FLedgerNumber, FBatchNumber));
                }

                if (FBatchStatus == MFinanceConstants.BATCH_UNPOSTED)
                {
                    if (!dtpDetailDateEffective.Date.HasValue || (dtpDetailDateEffective.Date.Value != BatchDateEffective))
                    {
                        dtpDetailDateEffective.Date = BatchDateEffective;
                    }
                }

                foreach (DataRowView drv in FMainDS.AJournal.DefaultView)
                {
                    AJournalRow jr = (AJournalRow)drv.Row;

                    if (jr.DateEffective != BatchDateEffective)
                    {
                        ((TFrmGLBatch)ParentForm).GetTransactionsControl().UpdateTransactionTotals("BATCH", true);
                        break;
                    }
                }

                ShowData();

                // Now set up the complete current filter
                FFilterAndFindObject.FilterPanelControls.SetBaseFilter(FMainDS.AJournal.DefaultView.RowFilter, true);
                FFilterAndFindObject.ApplyFilter();
            }
            else
            {
                // The journals are the same and we have loaded them already
                if (FBatchRow.BatchStatus == MFinanceConstants.BATCH_UNPOSTED)
                {
                    if (GetSelectedRowIndex() > 0)
                    {
                        GetDetailsFromControls(GetSelectedDetailRow());
                    }
                }
            }

            //This will also call UpdateChangeableStatus
            SelectRowInGrid((BatchChanged || FirstRun) ? 1 : FPrevRowChangedRow);

            UpdateRecordNumberDisplay();
            FFilterAndFindObject.SetRecordNumberDisplayProperties();

            FJournalsLoaded = true;
        }
コード例 #3
0
        /// <summary>
        /// load the journals into the grid
        /// </summary>
        /// <param name="ALedgerNumber"></param>
        /// <param name="ABatchNumber"></param>
        /// <param name="ABatchStatus"></param>
        public void LoadJournals(Int32 ALedgerNumber, Int32 ABatchNumber, string ABatchStatus = MFinanceConstants.BATCH_UNPOSTED)
        {
            FJournalsLoaded = false;
            FBatchRow = GetBatchRow();

            if (FBatchRow == null)
            {
                return;
            }

            FCancelLogicObject = new TUC_GLJournals_Cancel(FPetraUtilsObject, FLedgerNumber, FMainDS);

            //Make sure the current effective date for the Batch is correct
            DateTime BatchDateEffective = FBatchRow.DateEffective;

            bool FirstRun = (FLedgerNumber != ALedgerNumber);
            bool BatchChanged = (FBatchNumber != ABatchNumber);
            bool BatchStatusChanged = (!BatchChanged && FBatchStatus != ABatchStatus);

            //Check if need to load Journals
            if (FirstRun || BatchChanged || BatchStatusChanged)
            {
                FLedgerNumber = ALedgerNumber;
                FBatchNumber = ABatchNumber;
                FBatchStatus = ABatchStatus;

                SetJournalDefaultView();
                FPreviouslySelectedDetailRow = null;

                //Load Journals
                if (FMainDS.AJournal.DefaultView.Count == 0)
                {
                    FMainDS.Merge(TRemote.MFinance.GL.WebConnectors.LoadAJournalAndContent(FLedgerNumber, FBatchNumber));
                }

                if (FBatchStatus == MFinanceConstants.BATCH_UNPOSTED)
                {
                    if (!dtpDetailDateEffective.Date.HasValue || (dtpDetailDateEffective.Date.Value != BatchDateEffective))
                    {
                        dtpDetailDateEffective.Date = BatchDateEffective;
                    }
                }

                foreach (DataRowView drv in FMainDS.AJournal.DefaultView)
                {
                    AJournalRow jr = (AJournalRow)drv.Row;

                    if (jr.DateEffective != BatchDateEffective)
                    {
                        ((TFrmGLBatch)ParentForm).GetTransactionsControl().UpdateTransactionTotals("BATCH", true);
                        break;
                    }
                }

                ShowData();

                // Now set up the complete current filter
                FFilterAndFindObject.FilterPanelControls.SetBaseFilter(FMainDS.AJournal.DefaultView.RowFilter, true);
                FFilterAndFindObject.ApplyFilter();
            }
            else
            {
                // The journals are the same and we have loaded them already
                if (FBatchRow.BatchStatus == MFinanceConstants.BATCH_UNPOSTED)
                {
                    if (GetSelectedRowIndex() > 0)
                    {
                        GetDetailsFromControls(GetSelectedDetailRow());
                    }
                }
            }

            int nRowToSelect = 1;

            TFrmGLBatch myParentForm = (TFrmGLBatch)ParentForm;

            if (myParentForm.InitialBatchFound)
            {
                string filter = String.Format("{0}={1}", AJournalTable.GetJournalNumberDBName(), myParentForm.InitialJournalNumber);
                DataView dv = new DataView(FMainDS.AJournal, filter, "", DataViewRowState.CurrentRows);

                if (dv.Count > 0)
                {
                    nRowToSelect = grdDetails.DataSourceRowToIndex2(dv[0].Row) + 1;
                }
            }
            else
            {
                nRowToSelect = (BatchChanged || FirstRun) ? 1 : FPrevRowChangedRow;
            }

            //This will also call UpdateChangeableStatus
            SelectRowInGrid(nRowToSelect);

            UpdateRecordNumberDisplay();
            FFilterAndFindObject.SetRecordNumberDisplayProperties();

            FJournalsLoaded = true;
        }
コード例 #4
0
        /// <summary>
        /// load the journals into the grid
        /// </summary>
        /// <param name="ACurrentBatchRow"></param>
        public void LoadJournals(ABatchRow ACurrentBatchRow)
        {
            FJournalsLoaded = false;

            FBatchRow = ACurrentBatchRow;

            if (FBatchRow == null)
            {
                return;
            }

            Int32 CurrentLedgerNumber = FBatchRow.LedgerNumber;
            Int32 CurrentBatchNumber = FBatchRow.BatchNumber;
            string CurrentBatchStatus = FBatchRow.BatchStatus;
            bool BatchIsUnposted = (FBatchRow.BatchStatus == MFinanceConstants.BATCH_UNPOSTED);

            bool FirstRun = (FLedgerNumber != CurrentLedgerNumber);
            bool BatchChanged = (FBatchNumber != CurrentBatchNumber);
            bool BatchStatusChanged = (!BatchChanged && (FBatchStatus != CurrentBatchStatus));

            if (FirstRun)
            {
                FLedgerNumber = CurrentLedgerNumber;
            }

            if (BatchChanged)
            {
                FBatchNumber = CurrentBatchNumber;
            }

            if (BatchStatusChanged)
            {
                FBatchStatus = CurrentBatchStatus;
            }

            //Create object to control deletion
            FCancelLogicObject = new TUC_GLJournals_Cancel(FPetraUtilsObject, FLedgerNumber, FMainDS);

            //Make sure the current effective date for the Batch is correct
            DateTime BatchDateEffective = FBatchRow.DateEffective;

            //Check if need to load Journals
            if (!(FirstRun || BatchChanged || BatchStatusChanged))
            {
                //Need to reconnect FPrev in some circumstances
                if (FPreviouslySelectedDetailRow == null)
                {
                    DataRowView rowView = (DataRowView)grdDetails.Rows.IndexToDataSourceRow(FPrevRowChangedRow);

                    if (rowView != null)
                    {
                        FPreviouslySelectedDetailRow = (GLBatchTDSAJournalRow)(rowView.Row);
                    }
                }

                // The journals are the same and we have loaded them already
                if (BatchIsUnposted)
                {
                    if (GetSelectedRowIndex() > 0)
                    {
                        GetDetailsFromControls(GetSelectedDetailRow());
                    }
                }
            }
            else
            {
                // a different journal
                SetJournalDefaultView();
                FPreviouslySelectedDetailRow = null;

                //Load Journals
                if (FMainDS.AJournal.DefaultView.Count == 0)
                {
                    FMainDS.Merge(TRemote.MFinance.GL.WebConnectors.LoadAJournal(FLedgerNumber, FBatchNumber));
                }

                if (BatchIsUnposted)
                {
                    if (!dtpDetailDateEffective.Date.HasValue || (dtpDetailDateEffective.Date.Value != BatchDateEffective))
                    {
                        dtpDetailDateEffective.Date = BatchDateEffective;
                    }
                }

                //Check if DateEffective has changed and then update all
                foreach (DataRowView drv in FMainDS.AJournal.DefaultView)
                {
                    AJournalRow jr = (AJournalRow)drv.Row;

                    if (jr.DateEffective != BatchDateEffective)
                    {
                        ((TFrmGLBatch)ParentForm).GetTransactionsControl().UpdateTransactionTotals(TFrmGLBatch.eGLLevel.Batch, true);
                        break;
                    }
                }

                ShowData();

                // Now set up the complete current filter
                FFilterAndFindObject.FilterPanelControls.SetBaseFilter(FMainDS.AJournal.DefaultView.RowFilter, true);
                FFilterAndFindObject.ApplyFilter();
            }

            int nRowToSelect = 1;

            TFrmGLBatch myParentForm = (TFrmGLBatch)ParentForm;

            if (myParentForm.InitialBatchFound)
            {
                DataView myView = (grdDetails.DataSource as DevAge.ComponentModel.BoundDataView).DataView;

                for (int counter = 0; (counter < myView.Count); counter++)
                {
                    int myViewJournalNumber = (int)myView[counter][AJournalTable.GetJournalNumberDBName()];

                    if (myViewJournalNumber == myParentForm.InitialJournalNumber)
                    {
                        nRowToSelect = counter + 1;
                        break;
                    }
                }
            }
            else
            {
                nRowToSelect = (BatchChanged || FirstRun) ? 1 : FPrevRowChangedRow;
            }

            //This will also call UpdateChangeableStatus
            SelectRowInGrid(nRowToSelect);

            UpdateRecordNumberDisplay();
            FFilterAndFindObject.SetRecordNumberDisplayProperties();

            txtControl.CurrencyCode = TTxtCurrencyTextBox.CURRENCY_STANDARD_2_DP;
            txtCredit.CurrencyCode = FLedgerBaseCurrency;
            txtDebit.CurrencyCode = FLedgerBaseCurrency;

            FJournalsLoaded = true;
        }