private void dataGridViewMdse_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1 && e.ColumnIndex == 0)
            {
                try
                {
                    string   errorMsg;
                    int      storeId = Utilities.GetIntegerValue(_storeNumber, 0);
                    PawnLoan custPawnLoan;
                    if (customDataGridViewTransactions.CurrentRow != null)
                    {
                        int ticketNumber = Utilities.GetIntegerValue(customDataGridViewTransactions.CurrentRow.Cells[12].Value);
                        //Send the control back if the ticket number is not valid
                        if (!(ticketNumber > 0))
                        {
                            return;
                        }
                        string errorCode;
                        bool   retValue = HoldsProcedures.GetPawnLoanHolds(storeId, ticketNumber, "0", out custPawnLoan, out errorCode, out errorMsg);

                        if (retValue)
                        {
                            var activePawnLoan = GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan;
                            if (custPawnLoan != null)
                            {
                                //Go to describe item read only view
                                if (custPawnLoan.Items[e.RowIndex].CategoryMask < 1)
                                {
                                    // Need to populate pawnLoan from GetCat5
                                    int iCategoryMask = GlobalDataAccessor.Instance.DesktopSession.CategoryXML.GetCategoryMask
                                                            (custPawnLoan.Items[e.RowIndex].CategoryCode);
                                    var  dmPawnItem = new DescribedMerchandise(iCategoryMask);
                                    Item pawnItem   = custPawnLoan.Items[e.RowIndex];
                                    Item.PawnItemMerge(ref pawnItem, dmPawnItem.SelectedPawnItem, true);
                                    pawnItem.CategoryMask = iCategoryMask;
                                    custPawnLoan.Items.RemoveAt(e.RowIndex);
                                    custPawnLoan.Items.Insert(e.RowIndex, pawnItem);
                                    // End GetCat5 populate
                                }

                                GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan = custPawnLoan;
                                // Call Describe Item Page
                                DescribeItem myForm = new DescribeItem(GlobalDataAccessor.Instance.DesktopSession, CurrentContext.READ_ONLY, e.RowIndex)
                                {
                                    SelectedProKnowMatch = custPawnLoan.Items[e.RowIndex].SelectedProKnowMatch
                                };
                                myForm.ShowDialog(this);
                                GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan = activePawnLoan;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    BasicExceptionHandler.Instance.AddException("Error trying to view details of selected item", new ApplicationException(ex.Message));
                    this.NavControlBox.Action = NavBox.NavAction.CANCEL;
                }
            }
        }
Ejemplo n.º 2
0
        private void PoliceHoldInfo_Load(object sender, EventArgs e)
        {
            ownerfrm = this.Owner;
            this.NavControlBox.Owner = this;
            if (!ReadOnly)
            {
                policeHolds = GlobalDataAccessor.Instance.DesktopSession.HoldsData;
                if (GlobalDataAccessor.Instance.DesktopSession.ReleaseToClaimant &&
                    GlobalDataAccessor.Instance.DesktopSession.PoliceInformation != null)
                {
                    //invoke the submit button for release to claimant
                    ReleaseToClaimant = true;
                    buttonSubmit_Click(null, new EventArgs());
                }
            }
            else
            {
                this.buttonSubmit.Enabled = false;
                this.buttonCancel.Enabled = false;
                this.buttonBack.Text      = "Close";
                //Get the police info and hold data
                DataTable policeInfo;
                string    errorCode;
                string    errorMesg;
                bool      retVal = HoldsProcedures.getRTCSeizeInfo(ReceiptDetailId, ReleaseToClaimant ? ReceiptEventTypes.RTC.ToString() : ReceiptEventTypes.PolSeize.ToString(),
                                                                   out policeInfo, out errorCode, out errorMesg);
                this.customTextBoxAgency.ReadOnly      = true;
                this.customTextBoxBadgeNumber.ReadOnly = true;
                customTextBoxOfficerLastName.ReadOnly  = true;
                customTextBoxPhoneAreaCode.ReadOnly    = true;
                customTextBoxPhoneNumber.ReadOnly      = true;
                customTextBoxCaseNumber.ReadOnly       = true;
                customTextBoxOfficerFirstName.ReadOnly = true;
                customTextBoxPhoneExt.ReadOnly         = true;
                richTextBoxReason.ReadOnly             = true;

                if (retVal && policeInfo != null && policeInfo.Rows.Count > 0)
                {
                    this.customTextBoxAgency.Text           = policeInfo.Rows[0]["agency"].ToString();
                    this.customTextBoxBadgeNumber.Text      = policeInfo.Rows[0]["badge"].ToString();
                    this.customTextBoxOfficerLastName.Text  = policeInfo.Rows[0]["officer_last_name"].ToString();
                    this.customTextBoxPhoneAreaCode.Text    = policeInfo.Rows[0]["area_cd"].ToString();
                    this.customTextBoxPhoneNumber.Text      = policeInfo.Rows[0]["phone"].ToString();
                    this.customTextBoxCaseNumber.Text       = policeInfo.Rows[0]["case_number"].ToString();
                    this.customTextBoxOfficerFirstName.Text = policeInfo.Rows[0]["officer_first_name"].ToString();
                    this.customTextBoxPhoneExt.Text         = policeInfo.Rows[0]["extension"].ToString();
                    this.richTextBoxReason.Text             = policeInfo.Rows[0]["hcomment"].ToString();
                }
            }
        }
Ejemplo n.º 3
0
        private void buttonSubmit_Click(object sender, EventArgs e)
        {
            bool         returnValue = false;
            DialogResult dgr         = DialogResult.Retry;

            do
            {
                returnValue = HoldsProcedures.RemoveCustomerHolds(custHolds, this.richTextBoxReason.Text);
                if (returnValue)
                {
                    MessageBox.Show("Selected loans released from customer hold successfully");
                    break;
                }
                else
                {
                    dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel);
                }
            } while (dgr == DialogResult.Retry);
            this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT;
        }
        private void buttonSubmit_Click(object sender, EventArgs e)
        {
            DialogResult dgr = DialogResult.Retry;

            if (_formValid)
            {
                do
                {
                    //Check that the loans selected for holds have not been picked up for PFI
                    //from the time they were fetched
                    if (custHolds.Count > 0)
                    {
                        //Continue with Hold if there are any transactions to put on Hold
                        bool returnValue = HoldsProcedures.AddCustomerHolds(custHolds, this.richTextBoxReason.Text,
                                                                            Utilities.GetDateTimeValue(
                                                                                this.dateCalendarRelease.SelectedDate,
                                                                                DateTime.MaxValue));
                        if (returnValue)
                        {
                            MessageBox.Show("Selected loans placed on customer hold successfully");
                            break;
                        }
                        else
                        {
                            dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error",
                                                  MessageBoxButtons.RetryCancel);
                        }
                    }
                    else //no holds to do
                    {
                        dgr = DialogResult.Cancel;
                    }
                }while (dgr == DialogResult.Retry);
                this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT;
            }
            else
            {
                MessageBox.Show(Commons.GetMessageString("FormErrorSubmitAgain"));
                return;
            }
        }
Ejemplo n.º 5
0
        private void buttonSubmit_Click(object sender, EventArgs e)
        {
            bool         returnValue = false;
            DialogResult dgr         = DialogResult.Retry;

            do
            {
                foreach (HoldData custhold in custHolds)
                {
                    custhold.ReleaseDate = Utilities.GetDateTimeValue(dateRelease.Controls[0].Text, DateTime.MaxValue);
                }
                returnValue = HoldsProcedures.UpdateReleaseDateOnHolds(custHolds);
                if (returnValue)
                {
                    break;
                }
                else
                {
                    dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel);
                }
            } while (dgr == DialogResult.Retry);
            this.Close();
        }
Ejemplo n.º 6
0
        private void buttonSubmit_Click(object sender, EventArgs e)
        {
            DialogResult dgr = DialogResult.Retry;

            //Check that the officer first name, officer last name, badge number,
            //agency, phone area code, phone number, request type, reason for hold
            //and eleigible for release is entered
            if (customTextBoxAgency.isValid && customTextBoxBadgeNumber.isValid &&
                customTextBoxOfficerFirstName.isValid && customTextBoxOfficerLastName.isValid &&
                customTextBoxPhoneAreaCode.isValid && customTextBoxPhoneNumber.isValid &&
                comboBoxReqType.SelectedItem != null &&
                richTextBoxReason.Text.Trim().Length > 0 &&
                dateCalendarRelease.SelectedDate != string.Empty)
            {
                _formValid = true;
            }
            else
            {
                _formValid = false;
            }
            if (_formValid)
            {
                do
                {
                    if (policeHolds.Count > 0)
                    {
                        //Continue with Hold if there are any transactions to put on Hold
                        bool returnValue = HoldsProcedures.AddPoliceHolds(policeHolds, this.richTextBoxReason.Text,
                                                                          Utilities.GetDateTimeValue(
                                                                              this.dateCalendarRelease.SelectedDate,
                                                                              DateTime.MaxValue), this.customTextBoxOfficerFirstName.Text,
                                                                          customTextBoxOfficerLastName.Text, customTextBoxBadgeNumber.Text,
                                                                          customTextBoxPhoneAreaCode.Text,
                                                                          customTextBoxPhoneExt.Text,
                                                                          customTextBoxPhoneNumber.Text,
                                                                          comboBoxReqType.Text,
                                                                          customTextBoxCaseNumber.Text,
                                                                          customTextBoxAgency.Text);
                        if (returnValue)
                        {
                            var policeInfo = new PoliceInfo
                            {
                                Agency           = customTextBoxAgency.Text,
                                BadgeNumber      = customTextBoxBadgeNumber.Text,
                                CaseNumber       = customTextBoxCaseNumber.Text,
                                OfficerFirstName = customTextBoxOfficerFirstName.Text,
                                OfficerLastName  = customTextBoxOfficerLastName.Text,
                                PhoneAreaCode    = customTextBoxPhoneAreaCode.Text,
                                PhoneExtension   = customTextBoxPhoneExt.Text,
                                PhoneNumber      = customTextBoxPhoneNumber.Text,
                                RequestType      = comboBoxReqType.Text
                            };
                            foreach (var policehold in policeHolds)
                            {
                                policehold.PoliceInformation = policeInfo;
                                policehold.HoldComment       = richTextBoxReason.Text;
                                policehold.ReleaseDate       = Utilities.GetDateTimeValue(
                                    this.dateCalendarRelease.SelectedDate,
                                    DateTime.MaxValue);
                            }
                            //Call print Police seize form if print is enabled
                            if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled)
                            {
                                var phFrm = new PoliceHoldform();
                                phFrm.PoliceHoldLoans = policeHolds;
                                phFrm.ShowDialog();
                            }
                            MessageBox.Show("Selected transactions placed on police hold successfully");
                            break;
                        }
                        else
                        {
                            dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error",
                                                  MessageBoxButtons.RetryCancel);
                        }
                    }
                    else //no holds to do
                    {
                        dgr = DialogResult.Cancel;
                    }
                }while (dgr == DialogResult.Retry);
                this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT;
            }
            else
            {
                MessageBox.Show(Commons.GetMessageString("FormErrorSubmitAgain"));
                return;
            }
        }
        private void submitForm()
        {
            validateForm();

            if (isFormValid)
            {
                bool         returnValue = false;
                DialogResult dgr         = DialogResult.Retry;

                CustomerVO currentCustomer = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer;

                string currDate     = ShopDateTime.Instance.ShopDate.FormatDate();
                string currDateTime = currDate + " " + ShopDateTime.Instance.ShopTime.ToString();

                ReleaseFingerprintsInfo releaseFingerprintsInfo = new ReleaseFingerprintsInfo()
                {
                    RefType =
                        GlobalDataAccessor.Instance.DesktopSession
                        .TicketTypeLookedUp == ProductType.BUY
                                                                                  ? "2"
                                                                                  : "1",
                    RefNumber =
                        GlobalDataAccessor.Instance.DesktopSession
                        .TicketLookedUp,
                    Comment     = CommentText.Text,
                    StoreNumber =
                        GlobalDataAccessor.Instance.CurrentSiteId.
                        StoreNumber,
                    SubpoenaNumber   = SubpoenaNumberText.Text,
                    OfficerFirstName = OfficerFirstNameText.Text,
                    OfficerLastName  = OfficerLastNameText.Text,
                    BadgeNumber      = BadgeNumberText.Text,
                    CaseNumber       = CaseNumberText.Text,
                    Agency           = AgencyText.Text,
                    TransactionDate  = currDateTime,
                    SeizeStatus      = "FPRNT"
                };

                do
                {
                    int seizeNumber = 0;

                    returnValue = HoldsProcedures.AddReleaseFingerprints(releaseFingerprintsInfo,
                                                                         out seizeNumber);

                    if (returnValue && seizeNumber > 0)
                    {
                        MessageBox.Show("Transaction completed successfully");
                        //Print release fingerprints document

                        //Print authorization to release fingerprints form
                        printAuthorizationToReleaseFingerprints(releaseFingerprintsInfo, currentCustomer, seizeNumber);

                        break;
                    }
                    dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error",
                                          MessageBoxButtons.RetryCancel);
                } while (dgr == DialogResult.Retry);

                this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT;
            }
            else
            {
                //Set background color to yellow for any required controls that are empty.
                this.Controls.OfType <CustomTextBox>()
                .Where(r => r.Required)
                .Where(t => !t.isValid).ToList()
                .ForEach(control => control.BackColor = Color.Yellow);
            }
        }
        private void customButtonOK_Click(object sender, EventArgs e)
        {
            labelErrorMessage.Visible = false;
            noDataFound = false;
            PurchaseVO     purchaseObj         = null;
            CustomerVO     customerObj         = null;
            SaleVO         saleObj             = null;
            LayawayVO      layawayObj          = null;
            CashTransferVO bankTransferObj     = null;
            CashTransferVO shopCashTransferObj = null;
            DataSet        mdseInfo            = null;
            string         errorCode;
            string         errorText;

            getCustomerInfo = true;
            string tenderType;

            GlobalDataAccessor.Instance.DesktopSession.Purchases = new List <PurchaseVO>();
            GlobalDataAccessor.Instance.DesktopSession.Sales     = new List <SaleVO>();
            GlobalDataAccessor.Instance.DesktopSession.Layaways  = new List <LayawayVO>();
            ReleaseFingerprintsInfo releaseFingerprintsequest = null;
            bool retValue = false;

            if (voidBuyReturn)
            {
                retValue = PurchaseProcedures.GetPurchaseData(Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0),
                                                              Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "2", StateStatus.BLNK, "RET", true, out purchaseObj, out customerObj, out tenderType, out errorCode, out errorText);
            }
            else if (voidBuy)
            {
                retValue = PurchaseProcedures.GetPurchaseData(Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0),
                                                              Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "2", StateStatus.BLNK, "", true, out purchaseObj, out customerObj, out tenderType, out errorCode, out errorText);
            }
            else if (voidSale)
            {
                retValue = RetailProcedures.GetSaleData(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.OracleDA, Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0),
                                                        Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "3", StateStatus.BLNK, "SALE", false, out saleObj, out customerObj, out errorCode, out errorText);
            }
            else if (voidLayaway)
            {
                retValue = RetailProcedures.GetLayawayData(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.OracleDA, Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0),
                                                           Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "4", StateStatus.BLNK, "ALL", false, out layawayObj, out customerObj, out errorCode, out errorText);
            }
            else if (voidSaleRefund)
            {
                retValue = RetailProcedures.GetSaleData(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.OracleDA, Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0),
                                                        Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "3", StateStatus.BLNK, "REFUND", false, out saleObj, out customerObj, out errorCode, out errorText);
            } //BZ # 419
            else if (voidBanktoShopCashTransfer)
            {
                retValue = ShopCashProcedures.GetBankTransferDetails(customTextBoxTranNo.Text, "BANKTOSHOP", GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession,
                                                                     out bankTransferObj, out errorCode, out errorText);
            }
            else if (voidShopToBankCashTransfer)
            {
                retValue = ShopCashProcedures.GetBankTransferDetails(customTextBoxTranNo.Text, "SHOPTOBANK", GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession,
                                                                     out bankTransferObj, out errorCode, out errorText);
            }//BZ # 419 end

            else if (voidStoreCashTransfer)
            {
                string storeNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                retValue = ShopCashProcedures.GetShopCashTransferData(customTextBoxTranNo.Text, "", storeNumber, GlobalDataAccessor.Instance.DesktopSession, out shopCashTransferObj, out errorCode, out errorText);
            }
            else if (voidMerchandiseTransfer)
            {
                string storeNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                string tranNo      = customTextBoxTranNo.Text;

                if (customTextBoxTranNo.Text.Length > 6)
                {
                    tranNo = tranNo.Substring(5);
                }

                retValue = VoidProcedures.getTransferToVoid(Utilities.GetIntegerValue(tranNo, 0),
                                                            storeNumber, out mdseInfo, out errorCode, out errorText);
                //                retValue = VoidProcedures.GetEligibleToScrapItems(Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0),
                //                    storeNumber, out mdse , out errorCode, out errorText);
            }
            else if (voidReleaseFingerprints)
            {
                string storeNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                string tranNo      = customTextBoxTranNo.Text;

                if (tranNo.Length > 6)
                {
                    tranNo = tranNo.Substring(5);
                }

                // Add procedure to VoidsProcedurees to Locate the Release Fingerprint Authorization
                GlobalDataAccessor.Instance.FingerPrintRelaseAuthorizationInfo =
                    HoldsProcedures.GetReleaseFingerprintAuthorization(tranNo,
                                                                       storeNumber, out errorCode, out errorText);
            }

            if (voidBuy || voidBuyReturn)
            {
                if (retValue && purchaseObj != null)
                {
                    GlobalDataAccessor.Instance.DesktopSession.Purchases.Add(purchaseObj);
                    if (purchaseObj.EntityType != "V" && customerObj != null)
                    {
                        GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj;
                    }

                    GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back();
                }
                else
                {
                    noDataFound = true;
                }
            }
            else if (voidSale || voidSaleRefund)
            {
                if (retValue && saleObj != null)
                {
                    if (saleObj.RefType == "4")
                    {
                        MessageBox.Show("This sale originated from a layaway. You have to void the last layaway payment and not the sale");
                        return;
                    }
                    GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj;
                    GlobalDataAccessor.Instance.DesktopSession.Sales.Add(saleObj);
                    GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back();
                }
                else
                {
                    noDataFound = true;
                }
            }
            else if (voidLayaway)
            {
                if (retValue && layawayObj != null)
                {
                    GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj;
                    GlobalDataAccessor.Instance.DesktopSession.Layaways.Add(layawayObj);
                    GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back();
                }
                else
                {
                    noDataFound = true;
                }
            }
            //BZ # 419
            //else if (voidCashTransfer)
            else if (voidBanktoShopCashTransfer || voidShopToBankCashTransfer)
            {
                //BZ # 419 end
                if (retValue && bankTransferObj != null)
                {
                    GlobalDataAccessor.Instance.DesktopSession.CashTransferData = bankTransferObj;
                    GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back();
                }
                else
                {
                    noDataFound = true;
                }
            }
            else if (voidStoreCashTransfer)
            {
                if (retValue && shopCashTransferObj != null)
                {
                    GlobalDataAccessor.Instance.DesktopSession.CashTransferData = shopCashTransferObj;
                    GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back();
                }
                else
                {
                    noDataFound = true;
                }
            }
            else if (voidMerchandiseTransfer)
            {
                if (retValue && mdseInfo != null && mdseInfo.Tables.Count > 0)
                {
                    if (isFaultyTransferINOUT(mdseInfo))
                    {
                        noDataFound = true;
                    }
                    else
                    {
                        GlobalDataAccessor.Instance.DesktopSession.MdseTransferData       = mdseInfo;
                        GlobalDataAccessor.Instance.DesktopSession.SelectedTransferNumber = customTextBoxTranNo.Text;
                        GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back();
                    }
                }
                else
                {
                    noDataFound = true;
                }
            }
            else if (voidReleaseFingerprints && GlobalDataAccessor.Instance.FingerPrintRelaseAuthorizationInfo != null)
            {
                this.DialogResult = DialogResult.OK;
                //GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back();
            }

            if (noDataFound)
            {
                labelErrorMessage.Text    = "The number entered is not valid. Please enter another number";
                labelErrorMessage.Visible = true;
                return;
            }
        }
Ejemplo n.º 9
0
        private void buttonSubmit_Click(object sender, EventArgs e)
        {
            bool         returnValue = false;
            DialogResult dgr         = DialogResult.Retry;

            //Release police hold
            if (!PoliceSeize && !ReleaseToClaimant)
            {
                do
                {
                    if (!customTextBoxAgency.isValid || !customTextBoxBadgeNumber.isValid ||
                        !customTextBoxOfficerFirstName.isValid || !customTextBoxOfficerLastName.isValid ||
                        !customTextBoxPhoneAreaCode.isValid || !customTextBoxPhoneNumber.isValid ||
                        richTextBoxReason.Text.Trim().Length <= 0)
                    {
                        MessageBox.Show("Please enter all the required fields and submit");
                        return;
                    }
                    returnValue = HoldsProcedures.RemovePoliceHolds(policeHolds, this.richTextBoxReason.Text,
                                                                    customTextBoxOfficerFirstName.Text,
                                                                    customTextBoxOfficerLastName.Text,
                                                                    customTextBoxBadgeNumber.Text,
                                                                    customTextBoxAgency.Text,
                                                                    customTextBoxCaseNumber.Text,
                                                                    customTextBoxPhoneAreaCode.Text,
                                                                    customTextBoxPhoneNumber.Text,
                                                                    customTextBoxPhoneExt.Text);
                    if (returnValue)
                    {
                        MessageBox.Show("selected transactions released from police hold successfully");
                        break;
                    }
                    else
                    {
                        dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel);
                    }
                }while (dgr == DialogResult.Retry);
            }
            //Process police seize
            if (PoliceSeize)
            {
                if (!customTextBoxAgency.isValid || !customTextBoxBadgeNumber.isValid ||
                    !customTextBoxOfficerFirstName.isValid || !customTextBoxOfficerLastName.isValid ||
                    !customTextBoxPhoneAreaCode.isValid || !customTextBoxPhoneNumber.isValid ||
                    richTextBoxReason.Text.Trim().Length <= 0 || !customTextBoxCaseNumber.isValid)
                {
                    MessageBox.Show("Please enter all the required fields and submit");
                    return;
                }
                CustomerVO currentCustomer = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer;
                foreach (HoldData policeHold in policeHolds)
                {
                    policeHold.HoldComment = richTextBoxReason.Text;
                }
                PoliceInfo policeInfo = new PoliceInfo
                {
                    Agency           = customTextBoxAgency.Text,
                    BadgeNumber      = customTextBoxBadgeNumber.Text,
                    CaseNumber       = customTextBoxCaseNumber.Text,
                    OfficerFirstName = customTextBoxOfficerFirstName.Text,
                    OfficerLastName  = customTextBoxOfficerLastName.Text,
                    PhoneAreaCode    = customTextBoxPhoneAreaCode.Text,
                    PhoneExtension   = customTextBoxPhoneExt.Text,
                    PhoneNumber      = customTextBoxPhoneNumber.Text,
                    RequestType      = ""
                };

                do
                {
                    int seizeNumber = 0;

                    returnValue = HoldsProcedures.AddPoliceSeize(
                        policeHolds, policeHolds[0].HoldComment,
                        policeInfo, currentCustomer, out seizeNumber);
                    if (returnValue && seizeNumber > 0)
                    {
                        policeInfo.SeizeNumber = seizeNumber;
                        ReceiptDetailsVO rDVO = new ReceiptDetailsVO();
                        if (!HoldsProcedures.insertPoliceReceipt(policeHolds, ref rDVO))
                        {
                            FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Receipt details could not be entered for police seize " + seizeNumber);
                        }

                        MessageBox.Show("Selected items police seized successfully");
                        //Print police seize document
                        foreach (HoldData policehold in policeHolds)
                        {
                            policehold.PoliceInformation = policeInfo;
                        }
                        //Call print Police seize form if print is enabled
                        if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled)
                        {
                            //PoliceSeizeform seizeFrm = new PoliceSeizeform();
                            //seizeFrm.PoliceSeizeLoans = policeHolds;
                            //seizeFrm.ShowDialog();

                            //Calling policeseizereport(Itextsharp) instead of bitmap(policeseizeform) calling
                            var policeseizereport = new Reports.PoliceSeizeReport();
                            var reportObject      = new ReportObject();
                            reportObject.ReportTempFileFullName      = SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath + "\\Police Seize" + DateTime.Now.ToString("MMddyyyyhhmmssFFFFFFF") + ".pdf";
                            policeseizereport.reportObject           = reportObject;
                            policeseizereport.ReportTempFileFullName = reportObject.ReportTempFileFullName;
                            policeseizereport.STORE_NAME             = GlobalDataAccessor.Instance.CurrentSiteId.StoreName;
                            policeseizereport.STORE_ADDRESS          = GlobalDataAccessor.Instance.CurrentSiteId.StoreAddress1;
                            policeseizereport.STORE_CITY             = GlobalDataAccessor.Instance.CurrentSiteId.StoreCityName;
                            policeseizereport.STORE_STATE            = GlobalDataAccessor.Instance.CurrentSiteId.State;
                            policeseizereport.STORE_ZIP       = GlobalDataAccessor.Instance.CurrentSiteId.StoreZipCode;
                            policeseizereport.CurrentCust     = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer;
                            policeseizereport.EmpNo           = GlobalDataAccessor.Instance.DesktopSession.UserName.ToLowerInvariant();
                            policeseizereport.TransactionDate = ShopDateTime.Instance.ShopDate.FormatDate();
                            policeseizereport.HoldData        = policeHolds[0];
                            policeseizereport.CustHomeAddr    = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.CustomerAddress[0];
                            policeseizereport.CreateReport();
                            string strReturnMessage;
                            if (GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter.IsValid)
                            {
                                if (FileLogger.Instance.IsLogInfo)
                                {
                                    FileLogger.Instance.logMessage(LogLevel.INFO, this, "Printing PoliceSeize report on PDA Laser printer: {0}",
                                                                   GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter);
                                }
                                strReturnMessage = PrintingUtilities.printDocument(
                                    reportObject.ReportTempFileFullName,
                                    GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter.IPAddress,
                                    GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter.Port,
                                    2);
                            }
                            else if (GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid)
                            {
                                if (FileLogger.Instance.IsLogWarn)
                                {
                                    FileLogger.Instance.logMessage(LogLevel.WARN, this,
                                                                   "Could not find valid PDA laser printer to print the PoliceSeize report." + Environment.NewLine +
                                                                   " Printing on default pawn laser printer: {0}",
                                                                   GlobalDataAccessor.Instance.DesktopSession.LaserPrinter);
                                }
                                strReturnMessage = PrintingUtilities.printDocument(
                                    reportObject.ReportTempFileFullName,
                                    GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress,
                                    GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port,
                                    2);
                            }
                            else
                            {
                                if (FileLogger.Instance.IsLogError)
                                {
                                    FileLogger.Instance.logMessage(LogLevel.ERROR, this,
                                                                   "Could not find a valid laser printer to print the PoliceSeize report");
                                }
                                strReturnMessage = "FAIL - NO PRINTER FOUND";
                            }
                            if (strReturnMessage.IndexOf("SUCCESS", StringComparison.OrdinalIgnoreCase) == -1)
                            {
                                if (FileLogger.Instance.IsLogError)
                                {
                                    FileLogger.Instance.logMessage(LogLevel.ERROR, this,
                                                                   "Cannot print the PoliceSeize report: " + strReturnMessage);
                                }
                            }
                        }

                        break;
                    }

                    dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel);
                }while (dgr == DialogResult.Retry);
            }
            //Process Release to claimant
            if (ReleaseToClaimant)
            {
                //Store the police info in session
                if (GlobalDataAccessor.Instance.DesktopSession.PoliceInformation == null)
                {
                    if (!customTextBoxAgency.isValid || !customTextBoxBadgeNumber.isValid ||
                        !customTextBoxOfficerFirstName.isValid || !customTextBoxOfficerLastName.isValid ||
                        !customTextBoxPhoneAreaCode.isValid || !customTextBoxPhoneNumber.isValid ||
                        richTextBoxReason.Text.Trim().Length <= 0)
                    {
                        MessageBox.Show("Please enter all the required fields and submit");
                        return;
                    }
                    foreach (HoldData policeHold in policeHolds)
                    {
                        policeHold.HoldComment = richTextBoxReason.Text;
                    }
                    PoliceInfo policeInfo = new PoliceInfo
                    {
                        Agency           = customTextBoxAgency.Text,
                        BadgeNumber      = customTextBoxBadgeNumber.Text,
                        CaseNumber       = customTextBoxCaseNumber.Text,
                        OfficerFirstName = customTextBoxOfficerFirstName.Text,
                        OfficerLastName  = customTextBoxOfficerLastName.Text,
                        PhoneAreaCode    = customTextBoxPhoneAreaCode.Text,
                        PhoneExtension   = customTextBoxPhoneExt.Text,
                        PhoneNumber      = customTextBoxPhoneNumber.Text
                    };
                    GlobalDataAccessor.Instance.DesktopSession.PoliceInformation = policeInfo;
                    GlobalDataAccessor.Instance.DesktopSession.ReleaseToClaimant = true;
                    NavControlBox.IsCustom     = true;
                    NavControlBox.CustomDetail = "FindClaimant";
                    this.NavControlBox.Action  = NavBox.NavAction.BACKANDSUBMIT;
                }
                else
                {
                    bool       gunInvolved     = false;
                    CustomerVO currentCustomer = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer;
                    //Check if any of the loans being released has a gun

                    foreach (HoldData pl in policeHolds)
                    {
                        var gunItems = from pItem in pl.Items
                                       where pItem.GunNumber > 0
                                       select pItem;
                        if (gunItems.Any())
                        {
                            gunInvolved = true;
                            break;
                        }
                    }
                    //if gun involved check for cwp
                    bool backgroundCheck = false;
                    if (gunInvolved)
                    {
                        /*DateTime currentDate = ShopDateTime.Instance.ShopDate;
                         * string strStoreState = GlobalDataAccessor.Instance.CurrentSiteId.State;
                         * if (currentCustomer.HasValidConcealedWeaponsPermitInState(strStoreState, currentDate))
                         * {
                         *  if (CustomerProcedures.IsBackgroundCheckRequired())
                         *  {
                         *      FirearmsBackgroundCheck backgroundcheckFrm = new FirearmsBackgroundCheck();
                         *      backgroundcheckFrm.ShowDialog(this);
                         *  }
                         *  else //If the background check is not needed
                         *      CashlinxDesktopSession.Instance.BackgroundCheckCompleted = true;
                         * }
                         * //else if they do not have CWP or not a CWP in the store state or expired
                         * //then show the background check form
                         * else
                         * {
                         *  FirearmsBackgroundCheck backgroundcheckFrm = new FirearmsBackgroundCheck();
                         *  backgroundcheckFrm.ShowDialog(this);
                         * }*/
                        FirearmsBackgroundCheck backgroundcheckFrm = new FirearmsBackgroundCheck();
                        backgroundcheckFrm.ShowDialog(this);
                        if (GlobalDataAccessor.Instance.DesktopSession.BackgroundCheckCompleted)
                        {
                            backgroundCheck = true;
                        }
                    }
                    else
                    {
                        backgroundCheck = true;
                    }

                    if (backgroundCheck)
                    {
                        do
                        {
                            returnValue = HoldsProcedures.AddReleaseToClaimant(policeHolds, policeHolds[0].HoldComment,
                                                                               GlobalDataAccessor.Instance.DesktopSession.PoliceInformation, currentCustomer);
                            if (returnValue)
                            {
                                MessageBox.Show("selected transactions released to claimant successfully");
                                //Print RTC form
                                foreach (var policeHold in policeHolds)
                                {
                                    policeHold.PoliceInformation = GlobalDataAccessor.Instance.DesktopSession.PoliceInformation;
                                    policeHold.RestitutionPaid   = radioButtonYes.Checked;

                                    if (panelRestitution.Visible == true && radioButtonYes.Checked == true)
                                    {
                                        // there was restitution paid
                                        if (customTextBoxResAmount.Text.Trim() == "")
                                        {
                                            // Probably should have caught this before
                                            policeHold.RestitutionAmount = 0;
                                            MessageBox.Show("Please enter the restitution amount!", "Restitution amount missing");
                                            customTextBoxResAmount.Focus();
                                            return;
                                        }
                                    }
                                    else
                                    {
                                        // No restitution paid
                                        policeHold.RestitutionPaid   = false;
                                        policeHold.RestitutionAmount = 0;
                                    }
                                }
                                //Call print RTC if print is enabled
                                if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled)
                                {
                                    var rtcprintFrm = new RTCform();
                                    rtcprintFrm.RTCLoans = policeHolds;

                                    rtcprintFrm.ShowDialog();
                                }
                                break;
                            }
                            dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel);
                        }while (dgr == DialogResult.Retry);
                    }
                    else
                    {
                        MessageBox.Show("Background check not completed. selected transactions not released to claimant");
                        RemoveTempStatusOnLoans();
                    }

                    GlobalDataAccessor.Instance.DesktopSession.PoliceInformation = null;
                    GlobalDataAccessor.Instance.DesktopSession.ReleaseToClaimant = false;
                }
            }
            this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT;
        }
        private void CustomerHoldsList_Load(object sender, EventArgs e)
        {
            ownerfrm = this.Owner;
            this.NavControlBox.Owner = this;
            _userId = GlobalDataAccessor.Instance.DesktopSession.UserName;
            CustomerVO activeCustomer = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer;

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

            if (retVal && _transactionTable != null)
            {
                DataColumn[] key = new DataColumn[1];
                key[0] = _transactionTable.Columns[holdstransactioncursor.TICKETNUMBER];
                _transactionTable.PrimaryKey = key;
                _bindingSource1 = new BindingSource {
                    DataSource = _transactionTable
                };
                this.customDataGridViewTransactions.AutoGenerateColumns         = false;
                this.customDataGridViewTransactions.DataSource                  = _bindingSource1;
                this.customDataGridViewTransactions.Columns[2].DataPropertyName = holdstransactioncursor.TRANSACTIONDATE;
                this.customDataGridViewTransactions.Columns[3].DataPropertyName = holdstransactioncursor.TRANSACTIONTYPE; //"transactiontype";
                this.customDataGridViewTransactions.Columns[4].DataPropertyName = holdstransactioncursor.TICKETNUMBER;    //"ticket_number";
                this.customDataGridViewTransactions.Columns[5].DataPropertyName = holdstransactioncursor.STATUS;          //"pstatus";
                this.customDataGridViewTransactions.Columns[6].DataPropertyName = holdstransactioncursor.PFISTATE;        //"pfi_state";

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

                this.customDataGridViewTransactions.Columns[8].DataPropertyName = holdstransactioncursor.ORIGINALTICKETNUMBER; //"org_ticket";
                this.customDataGridViewTransactions.Columns[9].DataPropertyName = holdstransactioncursor.PREVIOUSTICKETNUMBER; //"prev_ticket";
                this.customDataGridViewTransactions.Columns[1].ReadOnly         = false;

                this.customDataGridViewTransactions.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.customDataGridViewMDSE.AutoGenerateColumns = false;
                FindNumberOfPages(_transactionTable);
            }
            else
            {
                MessageBox.Show(Commons.GetMessageString("CustHoldsNoTransactions"));
                this.NavControlBox.Action = NavBox.NavAction.CANCEL;
            }
        }
        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;
            }
        }