Example #1
0
        public PurchaseVO Update(PurchaseVO purchase)
        {
            var purchaseEntity = _converter.Parse(purchase);

            purchaseEntity = _repository.Update(purchaseEntity);
            return(_converter.Parse(purchaseEntity));
        }
Example #2
0
        private bool getBuyData()
        {
            bool retValue = false;

            PurchaseVO purchaseObj = null;
            CustomerVO customerObj = null;
            string     errorCode;
            string     errorText;
            string     tenderType;

            retValue = PurchaseProcedures.GetPurchaseData(Utilities.GetIntegerValue(BuyStoreText.Text, 0),
                                                          Utilities.GetIntegerValue(BuyNumberText.Text, 0),
                                                          "2", StateStatus.BLNK, "", true, out purchaseObj,
                                                          out customerObj, out tenderType, out errorCode,
                                                          out errorText);

            //Put the return data in the desktop session if found.
            if (retValue && purchaseObj != null)
            {
                GlobalDataAccessor.Instance.DesktopSession.Purchases.Clear();
                GlobalDataAccessor.Instance.DesktopSession.Purchases.Add(purchaseObj);
                if (purchaseObj.EntityType != "V" && customerObj != null)
                {
                    GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj;
                }
                GlobalDataAccessor.Instance.DesktopSession.TicketLookedUp     = Utilities.GetIntegerValue(BuyNumberText.Text, 0);
                GlobalDataAccessor.Instance.DesktopSession.TicketTypeLookedUp = ProductType.BUY;
                this.NavControlBox.Action = NavBox.NavAction.SUBMIT;
            }

            return(retValue);
        }
Example #3
0
 public IActionResult Post([FromBody] PurchaseVO purchase)
 {
     if (purchase == null)
     {
         return(BadRequest("Not making this purchase"));
     }
     return(Ok(_purchaseBusiness.Create(purchase)));
 }
Example #4
0
        public PurchaseVO Create(PurchaseVO purchase)
        {
            var purchaseEntity = _converter.Parse(purchase);

            Book book = _bookRepository.FindById(purchase.idBook);

            if (book.Amount > 0)
            {
                book.Amount    = book.Amount - 1;
                purchaseEntity = _repository.Create(purchaseEntity);
                return(_converter.Parse(purchaseEntity));
            }

            return(null);
        }
 public ReturnHistory_Dialog(PurchaseVO purchase, int recieptIdx, string status)
 {
     InitializeComponent();
     _receiptIdx = recieptIdx;
     _purchase   = purchase;
     _status     = status;
     if (_purchase == null)
     {
         MessageBox.Show("Pass in a Purchase to display page.", "Purchase Validation", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     else
     {
         Setup();
     }
 }
Example #6
0
        public IActionResult Put([FromBody] PurchaseVO purchase)
        {
            if (purchase == null)
            {
                return(BadRequest("Check purchase information"));
            }

            var updatedPurchase = _purchaseBusiness.Update(purchase);

            if (updatedPurchase == null)
            {
                return(BadRequest("It was not possible to update the data in this purchase."));
            }
            return(new ObjectResult(updatedPurchase));
        }
Example #7
0
        public PurchaseHistory_Dialog(PurchaseVO purchase, int receiptIdx)
        {
            InitializeComponent();

            //Does not need this. -- Removed by TLR 6/14/2010
            //this.NavControlBox = new NavBox();
            //this.NavControlBox.Owner = this;

            _purchase   = purchase;
            _receiptIdx = receiptIdx;
            if (_purchase == null)
            {
                MessageBox.Show("Pass in a Purchase to display page.", "Purchase Validation", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Setup();
            }
        }
        private void ShowBuyDetail(DataGridViewCellMouseEventArgs e)
        {
            DataGridViewRow myRow            = MerchandiseDataGridView.Rows[e.RowIndex];
            int             itemTicketNumber = GlobalDataAccessor.Instance.DesktopSession.TicketLookedUp;

            if (e.ColumnIndex == 1 && e.RowIndex >= 0)
            {
                var purchases = GlobalDataAccessor.Instance.DesktopSession.Purchases;

                string icn = Utilities.GetStringValue(myRow.Cells[ICN.Index].Value, "");

                var purchaseItems = purchases.SelectMany(purchaseVo => purchaseVo.Items).ToList();

                int iDx = purchaseItems.FindIndex(item => item.Icn == icn);

                if (iDx >= 0)
                {
                    // Need to populate pawnLoan from GetCat5
                    int iCategoryMask = GlobalDataAccessor.Instance.DesktopSession.CategoryXML.GetCategoryMask(purchaseItems[iDx].CategoryCode);
                    DescribedMerchandise dmPurchaseItem = new DescribedMerchandise(iCategoryMask);
                    Item purchaseItem = purchaseItems[iDx];
                    Item.PawnItemMerge(ref purchaseItem, dmPurchaseItem.SelectedPawnItem, true);

                    purchaseItems.RemoveAt(iDx);
                    purchaseItems.Insert(iDx, purchaseItem);

                    PurchaseVO activePurchase = purchases.Find(p => p.TicketNumber == itemTicketNumber);
                    activePurchase.Items = purchaseItems;

                    GlobalDataAccessor.Instance.DesktopSession.ActivePurchase = activePurchase;
                    DescribeItem myForm = new DescribeItem(GlobalDataAccessor.Instance.DesktopSession, CurrentContext.READ_ONLY, iDx, true)
                    {
                        SelectedProKnowMatch = purchaseItems[iDx].SelectedProKnowMatch
                    };
                    myForm.ShowDialog(this);
                }
            }
        }
        private void VoidPurchaseReturn_Load(object sender, EventArgs e)
        {
            labelMessage.Text = "";

            if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDBUYRETURN, StringComparison.OrdinalIgnoreCase))
            {
                voidReturnFlow = true;
            }
            else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDSALE, StringComparison.Ordinal))
            {
                voidSaleFlow = true;
            }
            else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDBUY, StringComparison.OrdinalIgnoreCase))
            {
                voidBuyFlow = true;
            }
            else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDREFUND, StringComparison.OrdinalIgnoreCase))
            {
                voidSaleRefundFlow = true;
            }
            else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDLAYAWAY, StringComparison.OrdinalIgnoreCase))
            {
                voidLayawayFlow = true;
            }


            if (voidReturnFlow)
            {
                labelHeading.Text = "Void Return";
                labelTransactionNoHeading.Text = "Return Number";
            }
            else if (voidBuyFlow)
            {
                labelHeading.Text = "Void Buy";
                labelTransactionNoHeading.Text = "Buy Number";
                //BZ # 619
                comboBoxReason.Items.Clear();
                comboBoxReason.Items.Add("Wrong Payment Method");
                comboBoxReason.Items.Add("PFI'd In Error");
                comboBoxReason.Items.Add("Wrong Customer");
                comboBoxReason.Items.Add("Incorrect Transaction Detail");
                comboBoxReason.Items.Add("Test Transaction");
                comboBoxReason.Items.Add("System Issue");
            }
            else if (voidSaleFlow)
            {
                labelHeading.Text = "Void Sale";
                labelTransactionNoHeading.Text = "MSR #";
                this.dataGridViewMdse.Columns[1].HeaderText = "Amount";
                comboBoxReason.Items.Clear();
                comboBoxReason.Items.Add("Wrong Payment Method");
                comboBoxReason.Items.Add("Wrong Customer");
                comboBoxReason.Items.Add("Wrong ICN");
                comboBoxReason.Items.Add("Customer Changed Mind");
                comboBoxReason.Items.Add("Test Transaction");
                comboBoxReason.Items.Add("System Issue");
            }
            else if (voidSaleRefundFlow)
            {
                labelHeading.Text = "Void Sale Refund";
                labelTransactionNoHeading.Text = "MSR Refund #";
            }
            else if (voidLayawayFlow)
            {
                labelHeading.Text = "Void Layaway";
                labelTransactionNoHeading.Text = "Layaway #";
            }

            maxVoidDays = 0L;
            if (!new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).GetMaxVoidDays(GlobalDataAccessor.Instance.CurrentSiteId,
                                                                                                        out maxVoidDays))
            {
                if (FileLogger.Instance.IsLogError)
                {
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this,
                                                   "Cannot retrieve maximum void days. Defaulting to {0}", maxVoidDays);
                }
            }

            currentPurchase = GlobalDataAccessor.Instance.DesktopSession.ActivePurchase;
            currentSale     = GlobalDataAccessor.Instance.DesktopSession.ActiveRetail;
            if (currentPurchase != null)
            {
                if (currentPurchase.EntityType == "V")
                {
                    voidVendorBuy = true;
                }
                labelDate.Text          = currentPurchase.MadeTime.ToString();
                labelTransactionNo.Text = currentPurchase.TicketNumber.ToString();
                labelUserID.Text        = currentPurchase.CreatedBy.ToString();
                labelTotal.Text         = currentPurchase.Amount.ToString("c");
                if (currentPurchase.DateMade.AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate)
                {
                    labelMessage.Text        = INVALIDVOIDMESSAGE;
                    labelMessage.Visible     = true;
                    customButtonVoid.Enabled = false;
                }

                /* if (voidBuyFlow && (currentPurchase.CustomerNumber == null ||
                 *   currentPurchase.EntityType == "V"))
                 * {
                 *   labelMessage.Text = NOTCUSTOMERPURCHASE;
                 *   labelMessage.Visible = true;
                 *   customButtonVoid.Enabled = false;
                 * }
                 * if (voidVendorBuy && currentPurchase.EntityType != "V")
                 * {
                 *   labelMessage.Text = NOTVENDORPURCHASE;
                 *   labelMessage.Visible = true;
                 *   customButtonVoid.Enabled = false;
                 *
                 * }*/
                //if we are voiding vendor buy make sure that the items are not sold or on layaway
                if (voidBuyFlow)
                {
                    var itemData = (from item in currentPurchase.Items
                                    where item.ItemStatus == ProductStatus.SOLD ||
                                    item.ItemStatus == ProductStatus.LAY
                                    select item).FirstOrDefault();
                    if (itemData != null)
                    {
                        labelMessage.Text        = RETAILITEMS;
                        labelMessage.Visible     = true;
                        customButtonVoid.Enabled = false;
                    }
                }

                if (!voidReturnFlow)
                {
                    var itemData = (from item in currentPurchase.Items
                                    where item.ItemStatus == ProductStatus.RET
                                    select item).FirstOrDefault();
                    if (itemData != null)
                    {
                        labelMessage.Text        = RETURNEDPURCHASE;
                        labelMessage.Visible     = true;
                        customButtonVoid.Enabled = false;
                    }
                    var itemRTCData = (from item in currentPurchase.Items
                                       where item.ItemStatus == ProductStatus.RTC ||
                                       item.ItemStatus == ProductStatus.PS
                                       select item).FirstOrDefault();
                    if (itemRTCData != null)
                    {
                        labelMessage.Text        = RTCITEMS;
                        labelMessage.Visible     = true;
                        customButtonVoid.Enabled = false;
                    }
                }

                if (currentPurchase.Items != null && currentPurchase.Items.Count > 0)
                {
                    dataGridViewMdse.AutoGenerateColumns = false;
                    this.dataGridViewMdse.Columns[1].DefaultCellStyle.Format = "c";
                    foreach (Item item in currentPurchase.Items)
                    {
                        DataGridViewRow row = dataGridViewMdse.Rows.AddNew();
                        row.Cells[mdseDesc.Index].Value = item.TicketDescription;
                        row.Cells[cost.Index].Value     = item.ItemAmount;
                    }
                }
                else
                {
                    MessageBox.Show("Error in void transaction processing");
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for purchase " + currentPurchase.TicketNumber + " to void.");
                    Close();
                }
            }
            else if (currentSale != null)
            {
                labelDate.Text          = currentSale.MadeTime.ToString();
                labelTransactionNo.Text = currentSale.TicketNumber.ToString();
                labelUserID.Text        = currentSale.CreatedBy.ToString();
                labelTotal.Text         = currentSale.Amount.ToString("c");
                if (Utilities.GetDateTimeValue(currentSale.MadeTime.ToShortDateString()).AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate)
                {
                    labelMessage.Text        = INVALIDVOIDSALEMESSAGE;
                    labelMessage.Visible     = true;
                    customButtonVoid.Enabled = false;
                }

                string rcptId = (from receipt in currentSale.Receipts
                                 where (receipt.Event == ReceiptEventTypes.SALE.ToString() &&
                                        receipt.RefNumber == currentSale.TicketNumber.ToString())
                                 select receipt).First().ReceiptDetailNumber;

                Common.Libraries.Utility.Shared.Receipt selectedReceipt = currentSale.Receipts.Find(r => r.ReceiptDetailNumber == rcptId);

                if (selectedReceipt.CreatedBy == "CONV" || currentSale.CreatedBy == "CONV")
                {
                    labelMessage.Text        = INVALIDCONVERSIONVOIDSALEMESSAGE;
                    labelMessage.Visible     = true;
                    customButtonVoid.Enabled = false;
                }

                if (voidSaleFlow)
                {
                    var itemData = (from item in currentSale.RetailItems
                                    where item.DispDoc != currentSale.TicketNumber
                                    select item).FirstOrDefault();
                    if (itemData != null)
                    {
                        labelMessage.Text        = RETURNEDSALE;
                        labelMessage.Visible     = true;
                        customButtonVoid.Enabled = false;
                    }
                    //SR 12/08/2011 Added the logic below to not allow void of cacc sales that
                    //were refunded
                    var itemCaccData = (from item in currentSale.RetailItems
                                        where item.mDocType == "5" && item.Quantity != item.RefundQuantity
                                        select item).FirstOrDefault();
                    if (itemCaccData != null)
                    {
                        labelMessage.Text        = RETURNEDSALE;
                        labelMessage.Visible     = true;
                        customButtonVoid.Enabled = false;
                    }
                }

                if (currentSale.RetailItems != null && currentSale.RetailItems.Count > 0)
                {
                    dataGridViewMdse.AutoGenerateColumns = false;
                    this.dataGridViewMdse.Columns[1].DefaultCellStyle.Format = "c";
                    foreach (RetailItem item in currentSale.RetailItems)
                    {
                        DataGridViewRow row = dataGridViewMdse.Rows.AddNew();
                        row.Cells[mdseDesc.Index].Value = item.TicketDescription;
                        row.Cells[cost.Index].Value     = item.RetailPrice * item.Quantity;
                    }
                }
                else
                {
                    MessageBox.Show("Error in void transaction processing");
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for the transaction " + currentSale.TicketNumber + " to void.");
                    Close();
                }
            }
        }
        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;
            }
        }
        private void printButton_Click(object sender, EventArgs e)
        {
            // Have extra enumeration to go ProKnow with only ONE call
            List <CustomerProductDataVO> productObjects = new List <CustomerProductDataVO>();
            List <String> customerNames = new List <String>();

            List <int> tickets = new List <int>(gvLoans.Rows.Count);

            Cursor = Cursors.WaitCursor;
            try
            {
                // improve efficiency -- only return new numbers if these have been previously loaded
                foreach (DataGridViewRow myRow in gvLoans.Rows)
                {
                    if (Convert.ToBoolean(myRow.Cells[colSelect.Name].Value) &&
                        !myRow.Cells[colSelect.Name].ReadOnly)
                    {
                        int iTktNumber =
                            Utilities.GetIntegerValue(myRow.Cells[colNumber.Name].Value, 0);

                        if (iTktNumber != 0)
                        {
                            tickets.Add(iTktNumber);
                        }
                    }
                }

                string   errorCode;
                string   errorTxt;
                DateTime dt = Convert.ToDateTime(dateCalendarSearchDate.SelectedDate);

                StoreLoans.Get_PFI_Details(CashlinxDesktopSession.Instance.CurrentSiteId.StoreNumber, dt,
                                           tickets, out _PawnLoans, out _PawnApplications, out _CustomerVOs,
                                           out _Purchases, out errorCode, out errorTxt);

                foreach (DataGridViewRow myRow in gvLoans.Rows)
                {
                    if (Convert.ToBoolean(myRow.Cells[colSelect.Name].Value) &&
                        !myRow.Cells[colSelect.Name].ReadOnly)
                    {
                        int iTktNumber =
                            Utilities.GetIntegerValue(myRow.Cells[colNumber.Name].Value, 0);

                        string   customer = (string)myRow.Cells[4].Value;
                        PawnLoan pawnLoan = null;

                        if (myRow.Cells[colType.Name].Value.Equals("LOAN"))
                        {
                            if (_PawnLoans != null)
                            {
                                pawnLoan = (from ploan in _PawnLoans
                                            where
                                            ploan.TicketNumber == iTktNumber &&
                                            ploan.ProductType == ProductType.PAWN.ToString()
                                            select ploan).FirstOrDefault();
                            }

                            if (pawnLoan != null)
                            {
                                LoanPrinted loanPrinted =
                                    _PrintedLoans.Find(
                                        l => l.LoanNumber == iTktNumber && l.RefType == 1);
                                loanPrinted.bPrinted = true;
                                _PrintedLoans.RemoveAll(
                                    l => l.LoanNumber == iTktNumber && l.RefType == 1);
                                _PrintedLoans.Add(loanPrinted);
                                productObjects.Add(pawnLoan);
                                customerNames.Add(customer);
                            }
                        }
                        else
                        {
                            PurchaseVO purchaseObj = null;
                            if (_Purchases != null)
                            {
                                purchaseObj = (from purchase in _Purchases where purchase.TicketNumber == iTktNumber select purchase).FirstOrDefault();
                            }
                            if (purchaseObj != null)
                            {
                                LoanPrinted loanPrinted =
                                    _PrintedLoans.Find(l => l.LoanNumber == iTktNumber && l.RefType == 2);
                                loanPrinted.bPrinted = true;
                                _PrintedLoans.RemoveAll(l => l.LoanNumber == iTktNumber && l.RefType == 2);
                                _PrintedLoans.Add(loanPrinted);
                                productObjects.Add(purchaseObj);
                                customerNames.Add(customer);
                            }
                        }
                    }
                }
                if (productObjects.Count() > 0)
                {
                    ProcessingMessage processingForm = new ProcessingMessage("Please wait while we generate report.");
                    try
                    {
                        processingForm.Show();

                        this.Cursor = Cursors.WaitCursor;

                        //----- Tracy 12/15/2010
                        List <int>    lstTicketNumbers = new List <int>();
                        List <string> lstRefTypes      = new List <string>();
                        string        sErrorCode;
                        string        sErrorText;

                        foreach (CustomerProductDataVO o in productObjects)
                        {
                            lstTicketNumbers.Add(o.TicketNumber);
                            lstRefTypes.Add(o.ProductType == "PAWN" ? "1" : "2");
                        }

                        if (lstTicketNumbers.Count > 0 && !StoreLoans.UpdateTempStatus(
                                lstTicketNumbers,
                                StateStatus.PFIW,
                                CashlinxDesktopSession.Instance.CurrentSiteId.StoreNumber,
                                true,
                                lstRefTypes,
                                out sErrorCode,
                                out sErrorText))
                        {
                            MessageBox.Show("Error updating PFI Verify.  " + sErrorText, "PFI Verification Update", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        //------- Tracy 12/15/2010

                        var context      = new PickingSlipHelper().GetPickingSlipReportContext(productObjects, customerNames, true);
                        var reportObject = new ReportObject();
                        reportObject.ReportTempFile = SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath;
                        reportObject.CreateTemporaryFullName();
                        context.ReportObject = reportObject;
                        var pickingSlip = new PickingSlip(context);

                        if (!pickingSlip.CreateReport())
                        {
                            processingForm.Close();
                            processingForm.Dispose();
                            this.Cursor = Cursors.Default;
                            MessageBox.Show("Failed to generate report", "Picking Slip", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        //Dictionary<string, string> eDeviceData = new PrintUtilities().GetPrintDeviceData("pfipickslip");
                        if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled &&
                            GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid)
                        {
                            if (FileLogger.Instance.IsLogInfo)
                            {
                                FileLogger.Instance.logMessage(LogLevel.INFO, "PFI_SelectLoan", "Printing PFI picking slip on {0}",
                                                               GlobalDataAccessor.Instance.DesktopSession.LaserPrinter);
                            }
                            string strReturnMessage =
                                PrintingUtilities.printDocument(reportObject.ReportTempFileFullName,
                                                                GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress,
                                                                GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port, 1);
                            if (!strReturnMessage.Contains("SUCCESS"))
                            {
                                FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Cannot print picking slip : " + strReturnMessage);
                            }
                        }

                        processingForm.Close();
                        processingForm.Dispose();
                        this.Cursor = Cursors.Default;

                        MessageBox.Show("Printing Complete", "Picking Slip", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception exc)
                    {
                        FileLogger.Instance.logMessage(LogLevel.ERROR, this, exc.Message);
                        processingForm.Close();
                        processingForm.Dispose();
                        this.Cursor = Cursors.Default;
                        MessageBox.Show(exc.Message);
                    }
                }
                //else
                //{
                //    continueButton.Enabled = false;
                //}
                continueButton.Enabled = true;
            }
            catch (Exception exp)
            {
                MessageBox.Show("Error in printing.  Retry. (" + exp.Message + ")", "PFI Printing");
            }

            Cursor = Cursors.Default;
        }
Example #12
0
        public static bool ExecuteVendorPFI
        (
            int ticketNumber,
            PurchaseVO vendorPurchaseObj,
            VendorVO vendor,
            out string sErrorCode,
            out string sErrorText
        )
        {
            List <TransferItemVO> _mdseToTransfer = new List <TransferItemVO>();
            int pawnItemIdx = 1;

            sErrorCode = "0";
            sErrorText = "";
            bool itemsPfid = false;

            try
            {
                //Start transaction block
                GlobalDataAccessor.Instance.beginTransactionBlock();


                //Step 1 Update Gun book if the item has a gun
                foreach (Item purchaseItem in vendorPurchaseObj.Items)
                {
                    if (purchaseItem.IsExpenseItem)
                    {
                        pawnItemIdx = pawnItemIdx + purchaseItem.Quantity;
                        continue;
                    }
                    for (int i = 1; i <= purchaseItem.Quantity; i++)
                    {
                        if (!purchaseItem.IsJewelry && purchaseItem.Quantity > 1 && purchaseItem.SerialNumber != null && purchaseItem.SerialNumber.Count > 0)
                        {
                            Item   itemCopy = Utilities.CloneObject(purchaseItem);
                            string sItemPrefix;
                            string sDescription;
                            //Get updated mdse description for each serial number
                            Item.RemoveSerialNumberFromDescription(ref itemCopy, out sItemPrefix, out sDescription);
                            purchaseItem.Attributes        = itemCopy.Attributes;
                            purchaseItem.TicketDescription = sDescription;
                        }
                        purchaseItem.mDocNumber = ticketNumber;
                        purchaseItem.mItemOrder = i;
                        int qty = purchaseItem.QuickInformation.Quantity < 1 ? 1 : purchaseItem.QuickInformation.Quantity;
                        if (purchaseItem.CaccLevel == 0)
                        {
                            // Call Update_Cacc_Info()
                            MerchandiseProcedures.UpdateCaccInfo(GlobalDataAccessor.Instance.DesktopSession,
                                                                 GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                 0,
                                                                 purchaseItem.mDocNumber,
                                                                 "7",
                                                                 1,
                                                                 0,
                                                                 qty,
                                                                 purchaseItem.ItemAmount * qty,
                                                                 purchaseItem.CategoryCode,
                                                                 ShopDateTime.Instance.ShopDate,
                                                                 out sErrorCode,
                                                                 out sErrorText
                                                                 );
                        }

                        if (purchaseItem.IsGun)
                        {
                            ProcessTenderProcedures.ExecuteUpdateGunBookRecord(
                                ticketNumber.ToString(),
                                GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                ProductStatus.PFI.ToString(),
                                "",
                                vendor.Name,
                                "",
                                "",
                                vendor.Address1,
                                vendor.City,
                                vendor.State,
                                vendor.ZipCode,
                                vendor.Ffl,
                                "",
                                "",
                                "P",
                                GlobalDataAccessor.Instance.DesktopSession.UserName,
                                ShopDateTime.Instance.ShopDate.ToShortDateString(),
                                ShopDateTime.Instance.ShopTransactionTime,
                                "",
                                purchaseItem.QuickInformation.Caliber,
                                purchaseItem.QuickInformation.Importer,
                                purchaseItem.QuickInformation.SerialNumber,
                                purchaseItem.QuickInformation.Model,
                                purchaseItem.QuickInformation.Manufacturer,
                                purchaseItem.mStore,
                                purchaseItem.mYear,
                                purchaseItem.mDocNumber,
                                purchaseItem.mDocType,
                                pawnItemIdx,
                                0,
                                vendorPurchaseObj.GunNumbers[i - 1],
                                out sErrorCode,
                                out sErrorText
                                );
                        }

                        //Step 2 Insert mdse revision record


                        bool mdseRevVal = MerchandiseProcedures.InsertMerchandiseRevision(GlobalDataAccessor.Instance.DesktopSession,
                                                                                          GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                                          purchaseItem.mYear,
                                                                                          ticketNumber,
                                                                                          purchaseItem.mDocType,
                                                                                          pawnItemIdx,
                                                                                          0,
                                                                                          purchaseItem.mStore,
                                                                                          ticketNumber.ToString(),
                                                                                          purchaseItem.mDocType,
                                                                                          "",
                                                                                          0,
                                                                                          purchaseItem.ItemReason == ItemReason.CACC ? "PFC" : "PFI",
                                                                                          "",
                                                                                          "",
                                                                                          GlobalDataAccessor.Instance.DesktopSession.FullUserName,
                                                                                          out sErrorCode,
                                                                                          out sErrorText
                                                                                          );

                        purchaseItem.Icn = Utilities.IcnGenerator(purchaseItem.mStore,
                                                                  purchaseItem.mYear, ticketNumber, "2", pawnItemIdx, 0);


                        TransferItemVO transferData = new TransferItemVO();
                        transferData.ICN         = purchaseItem.Icn.ToString();
                        transferData.StoreNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                        transferData.ICNQty      = purchaseItem.QuickInformation.Quantity > 0
                                                         ? purchaseItem.QuickInformation.Quantity.ToString()
                                                         : "1";
                        transferData.CustomerNumber   = "";
                        transferData.TransactionDate  = ShopDateTime.Instance.ShopDate;
                        transferData.MdseRecordDate   = ShopDateTime.Instance.ShopDate;
                        transferData.MdseRecordTime   = ShopDateTime.Instance.ShopTransactionTime;
                        transferData.MdseRecordUser   = GlobalDataAccessor.Instance.DesktopSession.UserName;
                        transferData.MdseRecordDesc   = "";
                        transferData.MdseRecordChange = 0;
                        transferData.MdseRecordType   = "";
                        transferData.ClassCode        = "";
                        transferData.AcctNumber       = "";
                        transferData.CreatedBy        = GlobalDataAccessor.Instance.DesktopSession.UserName;
                        transferData.GunNumber        = vendorPurchaseObj.GunNumbers[i - 1] > 0 ? vendorPurchaseObj.GunNumbers[i - 1].ToString() : null;
                        transferData.GunType          = purchaseItem.QuickInformation.GunType;
                        transferData.ItemDescription  = purchaseItem.TicketDescription;
                        transferData.ItemCost         = purchaseItem.ItemAmount;
                        _mdseToTransfer.Add(transferData);
                        itemsPfid = true;
                        pawnItemIdx++;
                    }
                }

                //Step 3 Insert receipt for PFI
                if (itemsPfid)
                {
                    ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO();
                    receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate;
                    receiptDetailsVO.RefDates    = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString()
                    };
                    receiptDetailsVO.RefTimes = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString()
                    };
                    receiptDetailsVO.UserId     = GlobalDataAccessor.Instance.DesktopSession.UserName;
                    receiptDetailsVO.RefNumbers = new List <string>()
                    {
                        ticketNumber.ToString()
                    };
                    receiptDetailsVO.RefTypes = new List <string>()
                    {
                        "2"
                    };
                    receiptDetailsVO.RefEvents = new List <string>()
                    {
                        "PFI"
                    };
                    receiptDetailsVO.RefAmounts = new List <string>()
                    {
                        vendorPurchaseObj.Amount.ToString()
                    };
                    receiptDetailsVO.RefStores = new List <string>()
                    {
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber
                    };

                    ProcessTenderProcedures.ExecuteInsertReceiptDetails(
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ShopDateTime.Instance.ShopDate.ToShortDateString(),
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ref receiptDetailsVO,
                        out sErrorCode,
                        out sErrorText);
                }

                GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.COMMIT);
            }
            catch (Exception ex)
            {
                GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK);
                FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while processing PFI " + ex.Message);
                sErrorCode = "1";
                sErrorText = ex.Message;
                return(false);
            }



            //Step 4 Invoke transfer process
            int transferNumber = 0;

            var errorMessage = string.Empty;

            if (_mdseToTransfer.Count > 0 && GlobalDataAccessor.Instance.CurrentSiteId.IsTopsExist)
            {
                bool retValue = TransferProcedures.TransferItemsOutOfStore(_mdseToTransfer, out transferNumber, "", out errorMessage, false, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber);
                if (!retValue)
                {
                    MessageBox.Show("Error:" + errorMessage);
                    sErrorText = errorMessage;
                    return(false);
                }
                foreach (TransferItemVO transfer in _mdseToTransfer)
                {
                    transfer.TransferNumber = transferNumber;
                }
            }

            if (transferNumber > 0)
            {
                try
                {
                    GlobalDataAccessor.Instance.beginTransactionBlock();
                    //Step 5 Insert receipt for transfer
                    ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO();
                    receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate;
                    receiptDetailsVO.RefDates    = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString()
                    };
                    receiptDetailsVO.RefTimes = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString()
                    };
                    receiptDetailsVO.UserId     = GlobalDataAccessor.Instance.DesktopSession.UserName;
                    receiptDetailsVO.RefNumbers = new List <string>()
                    {
                        ticketNumber.ToString()
                    };
                    receiptDetailsVO.RefTypes = new List <string>()
                    {
                        "2"
                    };
                    receiptDetailsVO.RefEvents = new List <string>()
                    {
                        "TO"
                    };
                    receiptDetailsVO.RefAmounts = new List <string>()
                    {
                        vendorPurchaseObj.Amount.ToString()
                    };
                    receiptDetailsVO.RefStores = new List <string>()
                    {
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber
                    };

                    ProcessTenderProcedures.ExecuteInsertReceiptDetails(
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ShopDateTime.Instance.ShopDate.ToShortDateString(),
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ref receiptDetailsVO,
                        out sErrorCode,
                        out sErrorText);
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
                    //Step 6 Print transfer report

                    /*TransferOutReport trnsfrRpt = new TransferOutReport();
                     * trnsfrRpt.MdseTransfer = _mdseToTransfer;
                     */
                    string logPath =
                        SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration
                        .BaseLogPath;

                    TransferOutReport trnsfrRpt = new TransferOutReport(_mdseToTransfer, ShopDateTime.Instance.ShopDateCurTime, GlobalDataAccessor.Instance.CurrentSiteId.StoreName,
                                                                        Convert.ToString(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber), GlobalDataAccessor.Instance.DesktopSession.UserName, Convert.ToString(transferNumber), logPath, "PFIProc", new ReportObject.TransferReport(), PdfLauncher.Instance);
                    trnsfrRpt.CreateReport();
                    //TODO: Store report in couch db
                    if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled &&
                        GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid)
                    {
                        string laserPrinterIp   = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress;
                        int    laserPrinterPort = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port;
                        PrintingUtilities.printDocument(trnsfrRpt.getReportWithPath(),
                                                        laserPrinterIp,
                                                        laserPrinterPort,
                                                        1);
                    }

                    //trnsfrRpt.ShowDialog();
                    return(true);
                }
                catch (Exception ex)
                {
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                    FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while entering receipt for transfer and printing transfer report " + ex.Message);
                    sErrorCode = "1";
                    sErrorText = ex.Message;
                    return(false);
                }
            }
            return(true);
        }
        private void BuyReturnItems_Load(object sender, EventArgs e)
        {
            Back = false;
            NavControlBox.Owner       = this;
            labelErrorMessage.Visible = false;
            currentPurchase           = CashlinxDesktopSession.Instance.ActivePurchase;
            currentCustomer           = CashlinxDesktopSession.Instance.ActiveCustomer;
            restrictedICNList         = new List <string>();
            selectedICNList           = new List <string>();
            if (currentPurchase != null)
            {
                labelStoreNo.Text   = CashlinxDesktopSession.Instance.BuyReturnIcn ? "" : currentPurchase.StoreNumber.ToString();
                labelBuyNumber.Text = currentPurchase.TicketNumber.ToString();
                if (!string.IsNullOrEmpty(currentPurchase.HoldDesc))
                {
                    labelStatus.Text = currentPurchase.LoanStatus.ToString() + "-" + currentPurchase.HoldDesc;
                }
                else
                {
                    labelStatus.Text = currentPurchase.LoanStatus.ToString();
                }
                if (!string.IsNullOrEmpty(currentPurchase.HoldDesc))
                {
                    labelErrorMessage.Text         = INELEIGIBLEFORRETURNMESSAGE;
                    labelErrorMessage.Visible      = true;
                    customTextBoxRetReason.Enabled = false;
                    customButtonContinue.Enabled   = false;
                }
                //Check if all the items are eligible for return
                if (CashlinxDesktopSession.Instance.HistorySession.Trigger.Equals("returncustomerbuy", StringComparison.OrdinalIgnoreCase))
                {
                    Item otherThanBuyStatus = (from item in currentPurchase.Items
                                               where item.ItemStatus != ProductStatus.PUR
                                               select item).FirstOrDefault();
                    if (otherThanBuyStatus != null && otherThanBuyStatus.mDocNumber != 0)
                    {
                        labelErrorMessage.Text    = INELEIGIBLEFORRETURNMESSAGE;
                        labelErrorMessage.Visible = true;
                    }
                }
                else
                {
                    Item otherThanPFIStatus = (from item in currentPurchase.Items
                                               where item.ItemStatus != ProductStatus.PFI
                                               select item).FirstOrDefault();
                    if (otherThanPFIStatus != null && otherThanPFIStatus.mDocNumber != 0)
                    {
                        labelErrorMessage.Text    = INELEIGIBLEFORRETURNMESSAGE;
                        labelErrorMessage.Visible = true;
                    }
                }
                if (CashlinxDesktopSession.Instance.HistorySession.Trigger.Equals("returncustomerbuy", StringComparison.OrdinalIgnoreCase))
                {
                    custPurchaseReturn = true;
                    if (currentPurchase.CustomerNumber == null ||
                        currentPurchase.EntityType == "V")
                    {
                        labelErrorMessage.Text       = NOTCUSTOMERPURCHASE;
                        labelErrorMessage.Visible    = true;
                        customButtonContinue.Enabled = false;
                    }
                    else
                    {
                        labelCustName.Text = currentCustomer.CustomerName;
                    }
                }
                else
                {
                    labelCustName.Text = GlobalDataAccessor.Instance.DesktopSession.ActiveVendor.Name;
                }
                foreach (Item item in currentPurchase.Items)
                {
                    string tranStatus = item.ItemStatus.ToString();
                    string holdDesc   = item.HoldDesc;
                    if (!Commons.CanBeReturned(tranStatus, holdDesc))
                    {
                        restrictedICNList.Add(item.Icn);
                    }
                }

                if (currentPurchase.Items != null && currentPurchase.Items.Count > 0)
                {
                    BindingSource _bindingSource1 = new BindingSource {
                        DataSource = currentPurchase.Items
                    };
                    dataGridViewItems.AutoGenerateColumns = false;
                    this.dataGridViewItems.DataSource     = _bindingSource1;
                    this.dataGridViewItems.Columns[0].DataPropertyName        = "icn";
                    this.dataGridViewItems.Columns[1].DataPropertyName        = "ticketdescription";
                    this.dataGridViewItems.Columns[2].DataPropertyName        = "itemstatus";
                    this.dataGridViewItems.Columns[3].DataPropertyName        = "itemamount";
                    this.dataGridViewItems.Columns[4].DataPropertyName        = "holddesc";
                    this.dataGridViewItems.Columns[3].DefaultCellStyle.Format = "c";



                    this.dataGridViewItems.AutoGenerateColumns = false;
                }
                else
                {
                    MessageBox.Show("Error in processing returns");
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for purchase " + currentPurchase.TicketNumber + " to return.");
                    NavControlBox.Action = NavBox.NavAction.CANCEL;
                }
                if (currentPurchase.Items != null)
                {
                    if (restrictedICNList.Count > 0 && restrictedICNList.Count == currentPurchase.Items.Count)
                    {
                        customButtonContinue.Enabled = false;
                    }
                }
                foreach (DataGridViewRow dgvr in dataGridViewItems.Rows)
                {
                    if (restrictedICNList.Count > 0)
                    {
                        DataGridViewRow dgvr1 = dgvr;
                        var             icn   = (from icnItem in restrictedICNList
                                                 where
                                                 icnItem == dgvr1.Cells[0].Value.ToString()
                                                 select icnItem).FirstOrDefault();
                        if (icn != null)
                        {
                            dgvr1.ReadOnly = true;
                            dgvr1.DefaultCellStyle.BackColor = Color.Gray;
                        }
                    }
                }

                if (CashlinxDesktopSession.Instance.BuyReturnIcn)
                {
                    customButtonAddItem.Enabled = true;
                }
            }
        }
        private void VoidPurchaseReturn_Load(object sender, EventArgs e)
        {
            labelMessage.Text = "";

            if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDBUYRETURN, StringComparison.OrdinalIgnoreCase))
            {
                voidReturnFlow = true;
            }

            if (voidReturnFlow)
            {
                labelHeading.Text = "Void Return";
                labelTransactionNoHeading.Text = "Return Number";
            }

            maxVoidDays = 0L;
            if (!new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).GetMaxVoidDays(GlobalDataAccessor.Instance.CurrentSiteId, out maxVoidDays))
            {
                if (FileLogger.Instance.IsLogError)
                {
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this,
                                                   "Cannot retrieve maximum void days. Defaulting to {0}", maxVoidDays);
                }
            }
            currentPurchase = GlobalDataAccessor.Instance.DesktopSession.ActivePurchase;
            if (currentPurchase != null)
            {
                labelDate.Text       = currentPurchase.MadeTime.ToString();
                labelPurchaseNo.Text = currentPurchase.TicketNumber.ToString();
                labelUserID.Text     = currentPurchase.CreatedBy.ToString();
                labelTotal.Text      = currentPurchase.Amount.ToString("c");
                if (currentPurchase.DateMade.AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate)
                {
                    labelMessage.Text        = INVALIDVOIDMESSAGE;
                    labelMessage.Visible     = true;
                    customButtonVoid.Enabled = false;
                }
                if (currentPurchase.CustomerNumber == null ||
                    currentPurchase.EntityType == "V")
                {
                    labelMessage.Text        = NOTCUSTOMERPURCHASE;
                    labelMessage.Visible     = true;
                    customButtonVoid.Enabled = false;
                }

                if (!voidReturnFlow)
                {
                    var itemData = (from item in currentPurchase.Items
                                    where item.ItemStatus == ProductStatus.RET
                                    select item).FirstOrDefault();
                    if (itemData != null)
                    {
                        labelMessage.Text        = RETURNEDPURCHASE;
                        labelMessage.Visible     = true;
                        customButtonVoid.Enabled = false;
                    }
                }

                if (currentPurchase.Items != null && currentPurchase.Items.Count > 0)
                {
                    BindingSource _bindingSource1 = new BindingSource {
                        DataSource = currentPurchase.Items
                    };
                    dataGridViewMdse.AutoGenerateColumns = false;
                    this.dataGridViewMdse.DataSource     = _bindingSource1;
                    this.dataGridViewMdse.Columns[0].DataPropertyName        = "ticketdescription";
                    this.dataGridViewMdse.Columns[1].DataPropertyName        = "itemamount";
                    this.dataGridViewMdse.Columns[1].DefaultCellStyle.Format = "c";


                    this.dataGridViewMdse.AutoGenerateColumns = false;
                }
                else
                {
                    MessageBox.Show("Error in void transaction processing");
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for purchase " + currentPurchase.TicketNumber + " to void.");
                    Close();
                }
            }
        }