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(); }
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(); }
/// <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"); } } }
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; } }
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); } } }
/// <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); }
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; } }
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); }
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); } }