private void buttonUpdateReleaseDate_Click(object sender, EventArgs e)
        {
            if (_numberOfSelections > 0)
            {
                GetSelectedTransactions();
                //Check to see if the transactions that are being sent have a different release
                //date than what was there
                DateTime relDate = DateTime.MaxValue;
                foreach (DataRow dr in _transactionTable.Rows)
                {
                    int selectedTicketNumber = Utilities.GetIntegerValue(dr["ticket_number"]);
                    int origTicketNumber     = Utilities.GetIntegerValue(dr["org_ticket"]);
                    if (_merchandiseTable != null)
                    {
                        DataRow[] merchandiseRows = _merchandiseTable.Select(holdsmdsecursor.ICNDOC + "='" + origTicketNumber + "'");
                        relDate = Utilities.GetDateTimeValue(merchandiseRows[0]["release_date"]);
                    }

                    int iDx = _selectedTransactions.FindIndex(
                        pl => pl.TicketNumber == selectedTicketNumber);
                    if (iDx >= 0)
                    {
                        DateTime releaseDate = _selectedTransactions[iDx].ReleaseDate;
                        //If the release date in the selected list is the same as what
                        //was pulled out of the database on load then no need to call the
                        //SP on this loan to update release date
                        if (releaseDate == relDate)
                        {
                            _selectedTransactions.RemoveAt(iDx);
                        }
                    }
                }



                bool         returnValue = false;
                DialogResult dgr         = DialogResult.Retry;
                if (_selectedTransactions.Count > 0)
                {
                    do
                    {
                        returnValue = HoldsProcedures.UpdateReleaseDateOnHolds(_selectedTransactions);
                        if (returnValue)
                        {
                            labelReleaseDateUpdate.Visible = true;
                            this.customButtonCancel.Text   = "Close";
                            //Get latest data
                            bool retVal = HoldsProcedures.ExecuteGetReleases(_storeNumber, _customerNumber, _statusCode, HoldData.CUSTOMER_HOLD,
                                                                             out _transactionTable, out _merchandiseTable, out _errorCode, out _errorMsg);

                            break;
                        }
                        dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel);
                    } while (dgr == DialogResult.Retry);
                }
                else
                {
                    MessageBox.Show("No changes done for update");
                    return;
                }
            }
            else
            {
                MessageBox.Show("No transactions selected for update.");
                return;
            }
        }
        private void CustomerHoldsList_Load(object sender, EventArgs e)
        {
            _ownerfrm           = Owner;
            NavControlBox.Owner = this;
            _userId             = GlobalDataAccessor.Instance.DesktopSession.UserName;
            var activeCustomer = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer;

            if (activeCustomer != null)
            {
                _storeNumber    = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                _customerNumber = activeCustomer.CustomerNumber;
            }
            else
            {
                MessageBox.Show(Commons.GetMessageString("MissingCustData"));
                NavControlBox.Action = NavBox.NavAction.CANCEL;
            }
            //Create the transaction Table
            _transactionTable = new DataTable();
            _merchandiseTable = new DataTable();
            bool retVal = HoldsProcedures.ExecuteGetReleases(_storeNumber, _customerNumber, _statusCode, HoldData.CUSTOMER_HOLD,
                                                             out _transactionTable, out _merchandiseTable, out _errorCode, out _errorMsg);

            if (retVal && _transactionTable != null)
            {
                try
                {
                    DataColumn[] key = new DataColumn[1];
                    key[0] = _transactionTable.Columns[holdstransactioncursor.TICKETNUMBER];

                    _transactionTable.PrimaryKey = key;


                    _bindingSource1 = new BindingSource
                    {
                        DataSource = _transactionTable
                    };
                    customDataGridViewTransactions.AutoGenerateColumns = false;

                    if (customDataGridViewTransactions != null)
                    {
                        customDataGridViewTransactions.DataSource = _bindingSource1;
                        customDataGridViewTransactions.Columns[2].DataPropertyName = holdstransactioncursor.TRANSACTIONDATE;
                        customDataGridViewTransactions.Columns[3].DataPropertyName = holdstransactioncursor.TRANSACTIONTYPE; //"transactiontype";
                        customDataGridViewTransactions.Columns[4].DataPropertyName = holdstransactioncursor.TICKETNUMBER;    //"ticket_number";
                        customDataGridViewTransactions.Columns[5].DataPropertyName = holdstransactioncursor.STATUS;          //"pstatus";
                        customDataGridViewTransactions.Columns[6].DataPropertyName = holdstransactioncursor.PFISTATE;        //"temp_status";
                        customDataGridViewTransactions.Columns[7].DataPropertyName = holdstransactioncursor.RELEASEDATE;     //"release_date";

                        if (new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).IsPartialPaymentAllowed(GlobalDataAccessor.Instance.DesktopSession.CurrentSiteId))
                        {
                            customDataGridViewTransactions.Columns[8].DataPropertyName = holdstransactioncursor.CURRENTPRINCIPALAMOUNT;//"cur_amount in payment_detail table";
                            customDataGridViewTransactions.Columns[8].HeaderText       = "Current Principal Amount";
                        }
                        else
                        {
                            customDataGridViewTransactions.Columns[8].DataPropertyName = holdstransactioncursor.LOANAMOUNT;//"org_amount";
                        }

                        customDataGridViewTransactions.Columns[9].DataPropertyName  = holdstransactioncursor.CREATIONDATE;         //"creationdate";
                        customDataGridViewTransactions.Columns[10].DataPropertyName = holdstransactioncursor.CREATEDBY;            //"createdby";
                        customDataGridViewTransactions.Columns[11].DataPropertyName = holdstransactioncursor.HOLDCOMMENT;          //"hold_comment";
                        customDataGridViewTransactions.Columns[12].DataPropertyName = holdstransactioncursor.ORIGINALTICKETNUMBER; //"org_ticket";

                        customDataGridViewTransactions.Columns[1].ReadOnly = false;
                        //Set sort mode
                        customDataGridViewTransactions.Columns[0].SortMode            = DataGridViewColumnSortMode.NotSortable;
                        customDataGridViewTransactions.Columns[1].SortMode            = DataGridViewColumnSortMode.NotSortable;
                        customDataGridViewTransactions.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    }
                    customDataGridViewMDSE.AutoGenerateColumns = false;
                    FindNumberOfPages(_transactionTable);
                }
                catch (Exception ex)
                {
                    BasicExceptionHandler.Instance.AddException(ex.Message, new ApplicationException("Error when trying to retrieve transactions to release customer hold"));
                    NavControlBox.Action = NavBox.NavAction.CANCEL;
                }
            }
            else
            {
                MessageBox.Show(Commons.GetMessageString("CustHoldsNoTransactions"));
                NavControlBox.Action = NavBox.NavAction.CANCEL;
            }
        }