private void customButtonVoid_Click(object sender, EventArgs e)
        {
            string errorCode;
            string errorText;

            GlobalDataAccessor.Instance.beginTransactionBlock();
            string trAmount = Utilities.GetStringValue(transferAmount);
            // if (trAmount.StartsWith("$"))
            //     trAmount = trAmount.Substring(1);
            var  dSession = GlobalDataAccessor.Instance.DesktopSession;
            bool retValue = VoidProcedures.VoidBankTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                            selectedTransferId,
                                                            GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                            selectedTransferType,
                                                            "",
                                                            customTextBoxComment.Text,
                                                            dSession.LoggedInUserSecurityProfile.UserID,
                                                            ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                            trAmount,
                                                            dSession.StoreSafeID,
                                                            out errorCode,
                                                            out errorText);

            if (!retValue)
            {
                FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Void Bank Transfer failed " + errorText);
                GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
            }
            else
            {
                GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
            }
            MessageBox.Show("Void Bank Transfer completed successfully");
            this.Close();
        }
Esempio n. 2
0
        private void customButtonAccept_Click(object sender, EventArgs e)
        {
            string errorCode;
            string errorText;

            if (customButtonAccept.Text == VOID)
            {
                GlobalDataAccessor.Instance.beginTransactionBlock();
                bool retValue = VoidProcedures.VoidStoreCashTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                                     GlobalDataAccessor.Instance.DesktopSession.CashTransferData.TransferId,
                                                                     GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                     "",
                                                                     customTextBoxComment.Text,
                                                                     GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                                     ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime,
                                                                     transferAmount.ToString(),
                                                                     GlobalDataAccessor.Instance.DesktopSession.StoreSafeID,
                                                                     out errorCode,
                                                                     out errorText);
                if (!retValue)
                {
                    GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK);
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Void store to store cash Transfer failed " + errorText);
                }
                else
                {
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
                }
            }
            else
            {
                GlobalDataAccessor.Instance.beginTransactionBlock();
                bool retVal = ShopCashProcedures.UpdateShopCashTransfer(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                        selectedTransferNumber.ToString(), selectedTransferId, processRejected ? CashTransferStatusCodes.RACCEPTED.ToString() : CashTransferStatusCodes.ACCEPTED.ToString(),
                                                                        richTextBoxDestComment.Text, "",
                                                                        GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                                        ShopDateTime.Instance.ShopDate.FormatDate().ToString() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                                        DENOMINATIONCURRENCY, GlobalDataAccessor.Instance.DesktopSession, out errorCode, out errorText);
                if (retVal)
                {
                    MessageBox.Show(!processRejected
                                            ? @"Shop transfer accepted"
                                            : @"Shop transfer reject accepted");
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
                    if (!processRejected)
                    {
                        printTransferData("ACCEPTED");
                    }
                }
                else
                {
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, errorText);
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                }
            }
            this.Close();
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void loanChainRetrieveWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            string    errorCode;
            string    errorText;
            var       curFm = (VoidLoanForm)e.Argument;
            DataTable dT;

            if (VoidProcedures.ExecuteGetLoanChain(curFm.CurStoreNumber, curFm.CurTicketNumber,
                                                   out dT, out errorCode, out errorText))
            {
                curFm.LoanChainData = dT;
                if (curFm.LoanChainData.Rows == null || curFm.LoanChainData.Rows.Count <= 0)
                {
                    curFm.showErrorLabel(true, "No loans found matching input store number and ticket number");
                }
            }
        }
Esempio n. 4
0
        private void VoidLayawayForf(out bool retValue, out int receiptNumber, out string receiptID)
        {
            string errorCode;
            string errorText;

            retValue      = false;
            receiptNumber = 0;

            var rcptVo = (Common.Libraries.Utility.Shared.Receipt)voidRow.Tag;
            var rcptId = (from receipt in currentLayaway.Receipts
                          where (receipt.Event == ReceiptEventTypes.FORF.ToString() &&
                                 receipt.RefNumber == currentLayaway.TicketNumber.ToString() &&
                                 receipt.ReceiptDetailNumber == rcptVo.ReceiptDetailNumber.ToString())
                          select receipt).First().ReceiptNumber;

            var selectedReceipt = currentLayaway.Receipts.Find(r => r.ReceiptNumber == rcptId);

            receiptID = selectedReceipt.ReceiptNumber;
            if (Utilities.GetDateTimeValue(selectedReceipt.Date).AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate)
            {
                MessageBox.Show("The maximum number of days to void has passed for this transaction");
                maxVoidPassed = true;
                return;
            }

            GlobalDataAccessor.Instance.beginTransactionBlock();
            retValue = VoidProcedures.VoidLayawayForfeiture(GlobalDataAccessor.Instance.OracleDA,
                                                            currentLayaway.TicketNumber, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                            GlobalDataAccessor.Instance.CurrentSiteId.TerminalId,
                                                            GlobalDataAccessor.Instance.DesktopSession.CashDrawerId,
                                                            Utilities.GetIntegerValue(rcptId), ShopDateTime.Instance.ShopDate.FormatDate(), ShopDateTime.Instance.ShopTransactionTime.ToString(),
                                                            GlobalDataAccessor.Instance.DesktopSession.FullUserName,
                                                            out receiptNumber,
                                                            out errorCode,
                                                            out errorText);
            if (!retValue && errorCode == "104")
            {
                MessageBox.Show(Commons.GetMessageString("VoidForfeitureFailure"));
                GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                storeCreditUsed = true;
                return;
            }
            GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(!retValue ? EndTransactionType.ROLLBACK : EndTransactionType.COMMIT);
        }
        private void VoidSubmitButton_Click(object sender, EventArgs e)
        {
            if (isFormDataValid())
            {
                string errorCode;
                string errorText;
                if (VoidProcedures.VoidReleaseFingerprints(
                        VoidProcedures.VoidCode.VOID_RELEASEFINGERPRINTS,
                        DataContext.AuthorizationNumber,
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                        VoidReasonComboBox.Text,
                        VoidCommentCustomTextBox.Text,
                        out errorCode,
                        out errorText))
                {
                    // Success
                    MessageBox.Show("Void Successful");
                }

                //this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT;
            }
        }
Esempio n. 6
0
        private void customButtonVoid_Click(object sender, EventArgs e)
        {
            if (comboBoxReason.SelectedIndex >= 0)
            {
                try
                {
                    string errorCode;
                    string errorText;
                    bool   retValue = false;
                    string tranType = typeOfTransfer();

                    if (tranType == TRAN_TYPE_GUN_SHOP || tranType == TRAN_TYPE_STORE2STORE || tranType == TRAN_TYPE_CAF || (xfrInfo.Rows[0]["status"].Equals("TI")))
                    {
                        retValue = VoidProcedures.VoidShopAndGunTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                                         labelTransferNo.Text, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                         ShopDateTime.Instance.ShopDate.FormatDate(),
                                                                         ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                                         GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                                         comboBoxReason.Text,
                                                                         customTextBoxComment.Text,
                                                                         out errorCode,
                                                                         out errorText);
                    }
                    else if (TRAN_TYPE_SCRAP.Equals(tranType))
                    {
                        retValue = VoidProcedures.VoidCatcoTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                                    labelTransferNo.Text, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                    comboBoxReason.Text, customTextBoxComment.Text,
                                                                    GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                                    ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                                    PROC_FOR_SCRAP,
                                                                    out errorCode,
                                                                    out errorText);
                    }
                    else if (TRAN_TYPE_REFURB.Equals(tranType))
                    {
                        retValue = VoidProcedures.VoidCatcoTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                                    labelTransferNo.Text, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                    comboBoxReason.Text, customTextBoxComment.Text,
                                                                    GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                                    ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                                    PROC_FOR_REFURB,
                                                                    out errorCode,
                                                                    out errorText);
                    }
                    else if (TRAN_TYPE_EXCESS.Equals(tranType))
                    {
                        retValue = VoidProcedures.VoidCatcoTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                                    labelTransferNo.Text, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                    comboBoxReason.Text, customTextBoxComment.Text,
                                                                    GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                                    ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                                    PROC_FOR_EXCESS,
                                                                    out errorCode,
                                                                    out errorText);
                    }
                    else if (TRAN_TYPE_EXCESS.Equals(tranType))
                    {
                        retValue = VoidProcedures.VoidCatcoTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                                    labelTransferNo.Text, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                    comboBoxReason.Text, customTextBoxComment.Text,
                                                                    GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                                    ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                                    PROC_FOR_EXCESS,
                                                                    out errorCode,
                                                                    out errorText);
                    }
                    else
                    {
                        MessageBox.Show("Selected Transaction cannot be voided");
                        Close();
                        return;
                    }


                    if (retValue)
                    {
                        // Below Webservice call needs to be enalbed after BA confirmation

                        /* TransferWebService transferwebService = new TransferWebService();
                         * retValue=transferwebService.MDSETransferVoidWS(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, labelTransferNo.Text, out errorText);
                         * if (retValue)
                         *   this.Close();
                         * else
                         * {
                         *   MessageBox.Show("Void Web Service call failed.." + errorText);
                         *   Close();
                         * }*/
                        MessageBox.Show("Void Transfer completed successfully");
                        Close();
                    }
                    else
                    {
                        DialogResult dgr;
                        dgr = MessageBox.Show("Void transaction failed. Do you want to retry?", "Void Error", MessageBoxButtons.OKCancel);
                        if (dgr == DialogResult.OK)
                        {
                            return;
                        }
                        Close();
                    }
                }
                catch (Exception ex)
                {
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Error when voiding merchandise transfer " + ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Select the reason for void and submit");
                return;
            }
        }
        private void customButtonVoid_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(comboBoxReason.Text))
            {
                MessageBox.Show("You must Select a void Reason");
                comboBoxReason.Focus();
                return;
            }

            ProcessTenderProcedures.ProcessTenderMode mode;
            List <PurchaseVO> purchaseList = new List <PurchaseVO>();

            purchaseList.Add(currentPurchase);
            bool transactionStarted = false;

            bool skipped;

            try
            {
                if ((voidBuyFlow && !voidVendorBuy) || voidReturnFlow)
                {
                    if (currentPurchase.Receipts != null)
                    {
                        string rcptId;

                        if (voidReturnFlow)
                        {
                            rcptId = (from receipt in currentPurchase.Receipts
                                      where (receipt.Event == ReceiptEventTypes.RET.ToString() &&
                                             receipt.RefNumber == currentPurchase.TicketNumber.ToString())
                                      select receipt).First().ReceiptDetailNumber;
                        }
                        else
                        {
                            rcptId = (from receipt in currentPurchase.Receipts
                                      where (receipt.Event == ReceiptEventTypes.PUR.ToString() &&
                                             receipt.RefNumber == currentPurchase.TicketNumber.ToString())
                                      select receipt).First().ReceiptDetailNumber;
                        }

                        VoidLoanForm.LoanVoidDetails lvd = new VoidLoanForm.LoanVoidDetails();
                        lvd.TickNum     = labelTransactionNo.Text;
                        lvd.StoreNum    = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                        lvd.OpRef       = labelTransactionNo.Text;
                        lvd.OpCode      = voidReturnFlow ? "Return" : "Purchase";
                        lvd.OpCd        = voidReturnFlow ? ReceiptEventTypes.VRET.ToString() : ReceiptEventTypes.VPR.ToString();
                        lvd.Amount      = Utilities.GetDecimalValue(currentPurchase.Amount, 0.0M);
                        lvd.HoldType    = "";
                        lvd.RecId       = Utilities.GetLongValue(rcptId);
                        lvd.PfiEligDate = Utilities.GetDateTimeValue(currentPurchase.PfiEligible, DateTime.MaxValue);
                        lvd.CreatedBy   = Utilities.GetStringValue(currentPurchase.CreatedBy, string.Empty);

                        //BZ # 512
                        lvd.VoidReason  = Utilities.GetStringValue(comboBoxReason.Text, string.Empty);
                        lvd.VoidComment = Utilities.GetStringValue(customTextBoxComment.Text, string.Empty);
                        //BZ # 512 - end
                        string errorCode;
                        string errorText;
                        var    retValue = VoidProcedures.PerformVoid(lvd, out errorCode, out errorText);

                        if (retValue)
                        {
                            MessageBox.Show(voidReturnFlow
                                                    ? "Void purchase return completed successfully"
                                                    : "Void purchase completed successfully");
                        }
                        else
                        {
                            DialogResult dgr;
                            dgr = MessageBox.Show("Void transaction failed. Do you want to retry?", "Void Error", MessageBoxButtons.OKCancel);
                            if (dgr == DialogResult.OK)
                            {
                                return;
                            }
                        }
                        GlobalDataAccessor.Instance.DesktopSession.ClearCustomerList();
                        GlobalDataAccessor.Instance.DesktopSession.ClearSessionData();
                        Close();
                    }
                    else
                    {
                        MessageBox.Show("Error in  void transaction processing");
                        FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No receipts found for purchase " + currentPurchase.TicketNumber + " to void.");
                        Close();
                    }
                }
                if (voidVendorBuy)
                {
                    string errorCode;
                    string errorText;
                    int    receiptNumber;
                    mode = ProcessTenderProcedures.ProcessTenderMode.VOIDBUY;

                    GlobalDataAccessor.Instance.beginTransactionBlock();
                    transactionStarted = true;
                    bool retValue = VoidProcedures.VoidVendorPurchase(GlobalDataAccessor.Instance.OracleDA,
                                                                      Utilities.GetIntegerValue(labelTransactionNo.Text, 0),
                                                                      GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                      ShopDateTime.Instance.ShopDate.ToShortDateString(),
                                                                      ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                                      comboBoxReason.SelectedItem.ToString(),
                                                                      customTextBoxComment.Text,
                                                                      GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserName,
                                                                      out receiptNumber,
                                                                      out errorCode,
                                                                      out errorText);

                    //here add receipt printing code
                    //here call process tender to print void receipt //
                    List <string> refDate   = new List <string>();
                    List <string> refNumber = new List <string>();
                    List <string> refType   = new List <string>();
                    List <string> refEvent  = new List <string>();
                    List <string> refAmount = new List <string>();
                    List <string> refStore  = new List <string>();
                    List <string> refTime   = new List <string>();

                    refEvent.Add(ReceiptEventTypes.VPR.ToString());
                    refStore.Add(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber);
                    refType.Add("4");
                    refAmount.Add(currentPurchase.Amount.ToString());
                    refTime.Add(ShopDateTime.Instance.ShopTransactionTime);
                    refNumber.Add(GlobalDataAccessor.Instance.DesktopSession.ActivePurchase.TicketNumber.ToString());
                    ReceiptDetailsVO rdVo = new ReceiptDetailsVO();
                    rdVo.ReceiptDate   = ShopDateTime.Instance.ShopDate;
                    rdVo.RefNumbers    = refNumber;
                    rdVo.ReceiptNumber = receiptNumber.ToString();
                    rdVo.RefEvents     = refEvent;
                    rdVo.RefAmounts    = refAmount;
                    rdVo.RefStores     = refStore;
                    rdVo.RefTypes      = refType;
                    //NOTE: Only use process tender controller instance, do not allocate a new one
                    ProcessTenderController pct = ProcessTenderController.Instance;
                    pct.generatePurchaseReceipt(mode, GlobalDataAccessor.Instance.DesktopSession.UserName.ToLowerInvariant(),
                                                GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer,
                                                purchaseList,
                                                GlobalDataAccessor.Instance.DesktopSession.ActiveVendor != null ? GlobalDataAccessor.Instance.DesktopSession.ActiveVendor.Name : "",
                                                rdVo);

                    if (!retValue)
                    {
                        GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK);
                        transactionStarted = false;
                        MessageBox.Show("Failed to void vendor purchase " + errorText);
                        Close();
                    }
                    GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.COMMIT);
                    transactionStarted = false;
                    MessageBox.Show("Void vendor purchase completed successfully");
                    GlobalDataAccessor.Instance.DesktopSession.ClearSessionData();
                    this.Close();
                }
                if (voidSaleFlow || voidSaleRefundFlow)
                {
                    if (currentSale.Receipts != null)
                    {
                        string rcptId;
                        if (voidSaleFlow)
                        {
                            rcptId = (from receipt in currentSale.Receipts
                                      where (receipt.Event == ReceiptEventTypes.SALE.ToString() &&
                                             receipt.RefNumber == currentSale.TicketNumber.ToString())
                                      select receipt).First().ReceiptDetailNumber;
                        }
                        else
                        {
                            rcptId = (from receipt in currentSale.Receipts
                                      where (receipt.Event == ReceiptEventTypes.REF.ToString() &&
                                             receipt.RefNumber == currentSale.TicketNumber.ToString())
                                      select receipt).First().ReceiptDetailNumber;
                        }


                        string errorCode;
                        string errorText;
                        int    receiptNumber;
                        GlobalDataAccessor.Instance.beginTransactionBlock();
                        transactionStarted = true;
                        bool retValue;
                        // = new ProcessTenderController.ProcessTenderMode();
                        if (voidSaleFlow)
                        {
                            mode     = ProcessTenderProcedures.ProcessTenderMode.RETAILVOID;
                            retValue = VoidProcedures.VoidSale(GlobalDataAccessor.Instance.OracleDA,
                                                               Utilities.GetIntegerValue(labelTransactionNo.Text, 0),
                                                               GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                               GlobalDataAccessor.Instance.CurrentSiteId.TerminalId,
                                                               GlobalDataAccessor.Instance.DesktopSession.CashDrawerId,
                                                               comboBoxReason.SelectedItem.ToString(),
                                                               customTextBoxComment.Text,
                                                               Utilities.GetIntegerValue(labelTransactionNo.Text, 0),
                                                               currentSale.TotalSaleAmount.ToString(),
                                                               1,
                                                               Utilities.GetIntegerValue(rcptId),
                                                               ShopDateTime.Instance.ShopDate.ToShortDateString(),
                                                               ShopDateTime.Instance.ShopTransactionTime.ToString(),
                                                               GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserName,
                                                               out receiptNumber,
                                                               out errorCode,
                                                               out errorText);
                        }
                        else
                        {
                            mode     = ProcessTenderProcedures.ProcessTenderMode.RETAILVOIDREFUND;
                            retValue = VoidProcedures.VoidSaleRefund(GlobalDataAccessor.Instance.OracleDA,
                                                                     Utilities.GetIntegerValue(labelTransactionNo.Text, 0),
                                                                     GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                     GlobalDataAccessor.Instance.CurrentSiteId.TerminalId,
                                                                     GlobalDataAccessor.Instance.DesktopSession.CashDrawerId,
                                                                     comboBoxReason.SelectedItem.ToString(),
                                                                     customTextBoxComment.Text,
                                                                     Utilities.GetIntegerValue(labelTransactionNo.Text, 0),
                                                                     currentSale.Amount.ToString(),
                                                                     1,
                                                                     Utilities.GetIntegerValue(rcptId),
                                                                     ShopDateTime.Instance.ShopDate.ToShortDateString(),
                                                                     ShopDateTime.Instance.ShopTransactionTime.ToString(),
                                                                     GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserName,
                                                                     out receiptNumber,
                                                                     out errorCode,
                                                                     out errorText);
                        }

                        if (retValue)
                        {
                            GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
                            transactionStarted = false;
                            if (currentSale.TenderDataDetails != null)
                            {
                                ProcessPaidTenderData(currentSale.TenderDataDetails);
                            }
                            //here call process tender to print void receipt //
                            var refDate   = new List <string>();
                            var refNumber = new List <string>();
                            var refType   = new List <string>();
                            var refEvent  = new List <string>();
                            var refAmount = new List <string>();
                            var refStore  = new List <string>();
                            var refTime   = new List <string>();

                            refEvent.Add(ReceiptEventTypes.VRET.ToString());
                            refStore.Add(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber);
                            refType.Add("4");
                            refTime.Add(ShopDateTime.Instance.ShopTransactionTime);
                            refNumber.Add(GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.TicketNumber.ToString());
                            ReceiptDetailsVO rdVo = new ReceiptDetailsVO();
                            rdVo.ReceiptDate   = ShopDateTime.Instance.ShopDate;
                            rdVo.RefNumbers    = refNumber;
                            rdVo.ReceiptNumber = receiptNumber.ToString();
                            rdVo.RefEvents     = refEvent;
                            rdVo.RefStores     = refStore;
                            rdVo.RefTypes      = refType;
                            //NOTE: Only use process tender controller instance, do not allocate a new one
                            ProcessTenderController pct = ProcessTenderController.Instance;
                            pct.GenerateSaleReceipt(mode, GlobalDataAccessor.Instance.DesktopSession.UserName.ToLowerInvariant(),
                                                    GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer,
                                                    GlobalDataAccessor.Instance.DesktopSession.ActiveRetail,
                                                    GlobalDataAccessor.Instance.DesktopSession.ActiveVendor != null ? GlobalDataAccessor.Instance.DesktopSession.ActiveVendor.Name : "",
                                                    rdVo);
                            MessageBox.Show(voidSaleFlow
                                                    ? "Void Sale completed successfully"
                                                    : "Void Sale Refund completed successfully");
                            GlobalDataAccessor.Instance.DesktopSession.ClearCustomerList();
                            GlobalDataAccessor.Instance.DesktopSession.ClearSessionData();
                            this.Close();
                        }
                        else
                        {
                            GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                            transactionStarted = false;
                            DialogResult dgr;
                            dgr = MessageBox.Show("Void transaction failed. Do you want to retry?", "Void Error", MessageBoxButtons.OKCancel);
                            if (dgr == DialogResult.OK)
                            {
                                return;
                            }
                            Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Error in  void transaction processing");
                        FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No receipts found for sale " + currentSale.TicketNumber + " to void.");
                        Close();
                    }
                }
            }
            catch (Exception ex)
            {
                if (transactionStarted)
                {
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                    transactionStarted = false;
                }
                if (FileLogger.Instance.IsLogError)
                {
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Error when voiding " + ex.Message);
                }
            }
        }
Esempio n. 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="treeNode"></param>
        /// <returns></returns>
        private bool voidFromTreeNode(TreeNode treeNode)
        {
            if (treeNode == null || treeNode.Tag == null)
            {
                return(false);
            }
            bool rt = false;
            //Extract loan void details
            var lvd = (LoanVoidDetails)treeNode.Tag;

            if (lvd.CanVoid == false)
            {
                this.showErrorLabel(true, "Cannot void this transaction: " + lvd.CantVoidReason);

                return(false);
            }
            if (ShopDateTime.Instance.ShopDate >= lvd.PfiEligDate)
            {
                MessageBox.Show(@"Voiding this transaction makes the item (s) associated eligible for PFI .");
            }
#if DEBUG
            debugLabel.Text    = lvd.OpCode ?? "null";
            debugLabel.Enabled = true;
            debugLabel.Show();
#endif
            //(1st case)If node has no children
            //treeNode has not been serviced
            //Can proceed with loan void event
            if (treeNode.Nodes.Count <= 0 && treeNode.NextNode == null)
            {
                DialogResult dR = DialogResult.Yes;
                while (dR != DialogResult.No)
                {
                    string errCode;
                    string errText;
                    bool   skipped = false;

                    //GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan =
                    bool canVoid = ManageMultiplePawnItems.CheckForOverrides(false, lvd.Amount, out skipped, forceOverride);

                    if (canVoid && !skipped)
                    {
                        var success = VoidProcedures.PerformVoid(lvd, out errCode, out errText, forceOverride);

                        if (success)
                        {
                            MessageBox.Show("Void successful of " + treeNode.Text, "Void Success");
                            rt = true;
                            break;
                        }
                        //SR 08/31/2011 Added the 2 error codes that will be returned by the stored procedure if the
                        //ticket that we are trying to void is not in the same status as it was when it was pulled in for void
                        //in this workstation
                        if (errCode == "97" || errCode == "98")
                        {
                            dR = MessageBox.Show(
                                "Void failed: Ticket not in the correct status to void", "Void Failure",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                        else
                        {
                            dR = MessageBox.Show(
                                "Void failed: " + errCode + ", " +
                                errText + System.Environment.NewLine +
                                "Would you like to retry?", "Void Failure",
                                MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            //(2nd case)If node has children and no younger siblings
            //treeNode has not been rolled over but has been serviced
            //Must select later loan op
            else if (treeNode.Nodes.Count > 0 ||
                     treeNode.NextNode != null)
            {
                MessageBox.Show("Cannot void a loan service that is not at the end of the loan chain.  Please reselect.");
                rt = false;
            }

            return(rt);
        }
Esempio n. 9
0
 private void customButtonSubmit_Click(object sender, EventArgs e)
 {
     if (customButtonSubmit.Text == VOID)
     {
         GlobalDataAccessor.Instance.beginTransactionBlock();
         bool retValue = VoidProcedures.VoidStoreCashTransfer(GlobalDataAccessor.Instance.OracleDA,
                                                              GlobalDataAccessor.Instance.DesktopSession.CashTransferData.TransferId,
                                                              GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                              "",
                                                              customTextBoxComment.Text,
                                                              GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
                                                              ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
                                                              transferAmount.ToString(),
                                                              GlobalDataAccessor.Instance.DesktopSession.StoreSafeID,
                                                              out errorCode,
                                                              out errorText);
         if (!retValue)
         {
             GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
             FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Void store to store cash Transfer failed " + errorText);
         }
         else
         {
             GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
             MessageBox.Show(@"Void store to store cash Transfer completed successfully");
         }
     }
     else
     {
         List <string> denominationData = new List <string>();
         if (panelCurrency.Visible)
         {
             denominationData = currencyEntry1.CurrencyEntryData();
         }
         else
         {
             denominationData.Add("");
         }
         if (string.IsNullOrEmpty(customTextBoxDestShopNo.Text) || string.IsNullOrEmpty(customTextBoxTrAmount.Text) ||
             string.IsNullOrEmpty(customTextBoxTransporter.Text) && destinationStoreDataFound)
         {
             MessageBox.Show(@"Fill in the required information and submit");
             return;
         }
         if (customTextBoxDestShopNo.Text == labelSourceShopNo.Text)
         {
             MessageBox.Show(@"Source and destination stores cannot be the same");
             return;
         }
         GlobalDataAccessor.Instance.beginTransactionBlock();
         string transferAmount = customTextBoxTrAmount.Text;
         if (transferAmount.StartsWith("$"))
         {
             transferAmount = transferAmount.Substring(1);
         }
         int  transferNumber = 0;
         bool retVal         = ShopCashProcedures.InsertShopTransfer(
             CashTransferTypes.SHOPTOSHOP.ToString(),
             labelSourceShopNo.Text,
             customTextBoxDestShopNo.Text,
             Utilities.GetDecimalValue(transferAmount),
             customTextBoxTransporter.Text,
             customTextBoxBagNo.Text,
             richTextBoxComment.Text,
             GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserID,
             ShopDateTime.Instance.ShopDate.FormatDate() + " " + ShopDateTime.Instance.ShopTime.ToString(),
             GlobalDataAccessor.Instance.DesktopSession.StoreSafeID,
             DENOMINATIONCURRENCY,
             denominationData,
             GlobalDataAccessor.Instance.DesktopSession,
             out transferNumber,
             out errorCode,
             out errorText);
         if (retVal)
         {
             GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
             MessageBox.Show(@"Shop cash transfer successfully entered");
             //Load the data in cashtransfervo object for printing
             CashTransferVO shoptransfervo = new CashTransferVO();
             shoptransfervo.TransferNumber = Utilities.GetIntegerValue(transferNumber, 0);
             shoptransfervo.TransferAmount = Utilities.GetDecimalValue(transferAmount);
             shoptransfervo.TransferStatus = CashTransferStatusCodes.PENDING.ToString();
             shoptransfervo.Transporter    = customTextBoxTransporter.Text;
             shoptransfervo.SourceComment  = richTextBoxComment.Text;
             shoptransfervo.SourceEmployee = GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserName + "," +
                                             GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.EmployeeNumber;
             shoptransfervo.SourceShopInfo = GlobalDataAccessor.Instance.CurrentSiteId;
             SiteId destSite = new SiteId();
             destSite.StoreNumber               = customTextBoxDestShopNo.Text;
             destSite.StoreName                 = destShopName;
             destSite.StorePhoneNo              = labelDestPhone.Text;
             destSite.StoreAddress1             = labelDestAddr1.Text;
             destSite.StoreAddress2             = labelDestAddr2.Text;
             shoptransfervo.DestinationShopInfo = destSite;
             ShopToShopCashTransfer shopTransferFrm = new ShopToShopCashTransfer();
             shopTransferFrm.ShopTransferData = shoptransfervo;
             shopTransferFrm.ShowDialog();
         }
         else
         {
             GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
             FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Shop transfer data not saved " + errorText);
         }
     }
     this.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;
            }
        }
Esempio n. 11
0
        private void VoidLayawayPayment(out bool retValue, out int receiptNumber, out string receiptID)
        {
            string errorCode;
            string errorText;

            retValue      = false;
            receiptNumber = 0;
            List <string> tenderTypes  = new List <string>();
            List <string> tenderAmount = new List <string>();
            List <string> tenderAuth   = new List <string>();

            var    rcptVo = (Common.Libraries.Utility.Shared.Receipt)voidRow.Tag;
            string rcptId = (from receipt in currentLayaway.Receipts
                             where (receipt.Event == ReceiptEventTypes.LAYPMT.ToString() &&
                                    receipt.RefNumber == currentLayaway.TicketNumber.ToString() &&
                                    receipt.ReceiptDetailNumber == rcptVo.ReceiptDetailNumber.ToString())
                             select receipt).First().ReceiptNumber;
            var selectedReceipt = currentLayaway.Receipts.Find(r => string.Equals(r.ReceiptNumber, rcptId, StringComparison.Ordinal));

            receiptID = rcptId;
            if (Utilities.GetDateTimeValue(selectedReceipt.Date).AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate)
            {
                MessageBox.Show("The maximum number of days to void has passed for this transaction");
                maxVoidPassed = true;
                return;
            }

            if (selectedReceipt.CreatedBy == "CONV")
            {
                MessageBox.Show(INVALIDCONVERSIONVOIDSALEMESSAGE);
                return;
            }
            decimal layawayPaymentAmount = (from tender in currentLayaway.TenderDataDetails
                                            where tender.ReceiptNumber == rcptId
                                            select tender).Sum(p => p.TenderAmount);

            decimal layawayVoidAmount = (from receipt in currentLayaway.Receipts
                                         where (receipt.Event == ReceiptEventTypes.LAYPMT.ToString() &&
                                                receipt.RefNumber == currentLayaway.TicketNumber.ToString() &&
                                                receipt.ReceiptDetailNumber == rcptVo.ReceiptDetailNumber)
                                         select receipt).First().Amount;
            decimal distributionPercentage = layawayVoidAmount / layawayPaymentAmount;

            if (currentLayaway.TenderDataDetails != null)
            {
                foreach (TenderData tdvo in currentLayaway.TenderDataDetails)
                {
                    if (tdvo.ReceiptNumber == rcptId)
                    {
                        tenderTypes.Add(tdvo.TenderType);
                        tenderAmount.Add((Math.Round((tdvo.TenderAmount * distributionPercentage), 2)).ToString());
                        tenderAuth.Add(tdvo.TenderAuth);
                    }
                }
            }
            int numberOfTenderEntries = tenderAmount.Count;

            if (numberOfTenderEntries > 1)
            {
                var totalTenderAmt = 0.0M;
                for (int i = 0; i < numberOfTenderEntries - 1; i++)
                {
                    totalTenderAmt += Utilities.GetDecimalValue(tenderAmount[i], 0);
                }
                tenderAmount.RemoveAt(numberOfTenderEntries - 1);
                tenderAmount.Insert(numberOfTenderEntries - 1, (layawayVoidAmount - totalTenderAmt).ToString());
            }

            GlobalDataAccessor.Instance.beginTransactionBlock();
            retValue = VoidProcedures.VoidLayawayPayment(GlobalDataAccessor.Instance.OracleDA,
                                                         currentLayaway.TicketNumber, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                         GlobalDataAccessor.Instance.CurrentSiteId.TerminalId,
                                                         GlobalDataAccessor.Instance.DesktopSession.CashDrawerId,
                                                         layawayVoidAmount.ToString(),
                                                         Utilities.GetIntegerValue(rcptId), ShopDateTime.Instance.ShopDate.FormatDate(), ShopDateTime.Instance.ShopTransactionTime.ToString(),
                                                         GlobalDataAccessor.Instance.DesktopSession.FullUserName,
                                                         "", "", tenderTypes,
                                                         tenderAmount,
                                                         tenderAuth,
                                                         ShopDateTime.Instance.ShopDate.FormatDate(),
                                                         out receiptNumber,
                                                         out errorCode,
                                                         out errorText);
            GlobalDataAccessor.Instance.endTransactionBlock(!retValue ? EndTransactionType.ROLLBACK : EndTransactionType.COMMIT);
        }
Esempio n. 12
0
        private void VoidLayaway(out bool retValue, out int receiptNumber, out string receiptID)
        {
            string errorCode;
            string errorText;

            retValue      = false;
            receiptNumber = 0;
            receiptID     = string.Empty;
            List <string> tenderTypes  = new List <string>();
            List <string> tenderAmount = new List <string>();
            List <string> tenderAuth   = new List <string>();

            LayawayVO layaway = voidRow.Tag as LayawayVO;

            if (layaway == null)
            {
                return;
            }

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

            var selectedReceipt = currentLayaway.Receipts.Find(r => r.ReceiptDetailNumber == rcptId);

            receiptID = selectedReceipt.ReceiptNumber;
            if (Utilities.GetDateTimeValue(selectedReceipt.Date).AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate)
            {
                MessageBox.Show("The maximum number of days to void has passed for this transaction");
                maxVoidPassed = true;
                return;
            }

            decimal layawayVoidAmount = (from receipt in currentLayaway.Receipts
                                         where (receipt.Event == ReceiptEventTypes.LAY.ToString() &&
                                                receipt.RefNumber == currentLayaway.TicketNumber.ToString())
                                         select receipt).First().Amount;

            foreach (TenderData tdvo in currentLayaway.TenderDataDetails)
            {
                if (tdvo.ReceiptNumber == rcptId)
                {
                    tenderTypes.Add(tdvo.TenderType);
                    tenderAmount.Add(tdvo.TenderAmount.ToString());
                    tenderAuth.Add(tdvo.TenderAuth);
                }
            }

            GlobalDataAccessor.Instance.beginTransactionBlock();
            retValue = VoidProcedures.VoidLayaway(GlobalDataAccessor.Instance.OracleDA,
                                                  currentLayaway.TicketNumber,
                                                  GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                  GlobalDataAccessor.Instance.CurrentSiteId.TerminalId,
                                                  GlobalDataAccessor.Instance.DesktopSession.CashDrawerId,
                                                  "",
                                                  "",
                                                  currentLayaway.TicketNumber,
                                                  layawayVoidAmount.ToString(),
                                                  1,
                                                  Utilities.GetIntegerValue(rcptId),
                                                  ShopDateTime.Instance.ShopDate.ToShortDateString(),
                                                  ShopDateTime.Instance.ShopTransactionTime.ToString(),
                                                  GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.UserName,
                                                  out receiptNumber,
                                                  out errorCode,
                                                  out errorText);

            GlobalDataAccessor.Instance.endTransactionBlock(!retValue ? EndTransactionType.ROLLBACK : EndTransactionType.COMMIT);
        }
        private void customButtonVoid_Click(object sender, EventArgs e)
        {
            try
            {
                if (currentPurchase.Receipts != null)
                {
                    string rcptId;
                    if (voidReturnFlow)
                    {
                        rcptId = (from receipt in currentPurchase.Receipts
                                  where (receipt.Event == ReceiptEventTypes.RET.ToString() &&
                                         receipt.RefNumber == currentPurchase.TicketNumber.ToString())
                                  select receipt).First().ReceiptDetailNumber;
                    }
                    else
                    {
                        rcptId = (from receipt in currentPurchase.Receipts
                                  where (receipt.Event == ReceiptEventTypes.PUR.ToString() &&
                                         receipt.RefNumber == currentPurchase.TicketNumber.ToString())
                                  select receipt).First().ReceiptDetailNumber;
                    }

                    var lvd = new VoidLoanForm.LoanVoidDetails();
                    lvd.TickNum     = labelPurchaseNo.Text;
                    lvd.StoreNum    = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                    lvd.OpRef       = labelPurchaseNo.Text;
                    lvd.OpCode      = voidReturnFlow ? "Return" : "Purchase";
                    lvd.OpCd        = voidReturnFlow ? ReceiptEventTypes.VRET.ToString() : ReceiptEventTypes.VPR.ToString();
                    lvd.Amount      = Utilities.GetDecimalValue(currentPurchase.Amount, 0.0M);
                    lvd.HoldType    = "";
                    lvd.RecId       = Utilities.GetLongValue(rcptId);
                    lvd.PfiEligDate = Utilities.GetDateTimeValue(currentPurchase.PfiEligible, DateTime.MaxValue);
                    lvd.CreatedBy   = Utilities.GetStringValue(currentPurchase.CreatedBy, string.Empty);

                    string errorCode;
                    string errorText;
                    bool   retValue = VoidProcedures.PerformVoid(lvd, out errorCode, out errorText);
                    if (retValue)
                    {
                        MessageBox.Show(voidReturnFlow
                                                ? "Void purchase return completed successfully"
                                                : "Void purchase completed successfully");
                        this.Close();
                    }
                    else
                    {
                        DialogResult dgr;
                        dgr = MessageBox.Show("Void transaction failed. Do you want to retry?", "Void Error", MessageBoxButtons.OKCancel);
                        if (dgr == DialogResult.OK)
                        {
                            return;
                        }
                        Close();
                    }
                }
                else
                {
                    MessageBox.Show("Error in  void transaction processing");
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No receipts found for purchase " + currentPurchase.TicketNumber + " to void.");
                    Close();
                }
            }
            catch (Exception ex)
            {
                FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Error when voiding buy return " + ex.Message);
            }
        }