Ejemplo n.º 1
0
 public LayawayVO(SaleVO saleVO)
 {
     try
     {
         foreach (PropertyInfo pi in typeof(SaleVO).GetProperties())
         {
             GetType().GetProperty(pi.Name).SetValue
                 (this, pi.GetValue(saleVO, null), null);
         }
     }
     catch (Exception ex)
     {
         FileLogger.Instance.logMessage(LogLevel.ERROR, null, ex.Message);
     }
 }
Ejemplo n.º 2
0
        void workerLoadRetail_DoWork(object sender, DoWorkEventArgs e)
        {
            string     errorCode;
            string     errorText;
            CustomerVO customerObj  = null;
            SaleVO     saleObj      = null;
            int        ticketNumber = (int)e.Argument;

            RetailProcedures.GetSaleData(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.OracleDA, Utilities.GetIntegerValue(CDS.CurrentSiteId.StoreNumber, 0),
                                         ticketNumber, "3", StateStatus.BLNK, "SALE", true, out saleObj, out customerObj, out errorCode, out errorText);

            Action <string>  actionShowMessageBox = s => MessageBox.Show(s);
            Action <Control> setFocus             = c => c.Focus();

            if (saleObj == null || saleObj.RetailItems.Count == 0)
            {
                this.Invoke(actionShowMessageBox, new object[] { "No records found or not the originating shop of the number entered." });
                this.Invoke(setFocus, new object[] { txtReceiptNumber });
                e.Result = false;
                return;
            }
            else
            {
                int maxDaysForRefundEligibility = new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).GetMaxDaysForRefundEligibility(CDS.CurrentSiteId);
                if (ShopDateTime.Instance.FullShopDateTime.Date > saleObj.DateMade.AddDays(maxDaysForRefundEligibility))
                {
                    this.Invoke(actionShowMessageBox, new object[] { "The number of days eligible for refund has expired for the MSR number entered." });
                    this.Invoke(setFocus, new object[] { txtReceiptNumber });
                    e.Result = false;
                    return;
                }

                this.Invoke(new Action(() =>
                {
                    GlobalDataAccessor.Instance.DesktopSession.Sales = new List <SaleVO>();
                    GlobalDataAccessor.Instance.DesktopSession.Sales.Add(saleObj);
                    GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj;
                }));
            }
        }
Ejemplo n.º 3
0
 public VoidSale_dialog(SaleVO saleData)
 {
     InitializeComponent();
     saleDataToShow = saleData;
     LoadSaleData();
 }
        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();
                }
            }
        }
Ejemplo n.º 5
0
 public SaleRefund_Dialog(SaleVO saleData)
 {
     InitializeComponent();
     saleDataToShow = saleData;
     LoadSaleData();
 }
        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;
            }
        }