/// <summary> /// /// </summary> /// <param name="inParams"></param> /// <param name="refDatesPName"></param> /// <param name="refTimesPName"></param> /// <param name="refNumbersPName"></param> /// <param name="refTypesPName"></param> /// <param name="refEventsPName"></param> /// <param name="refAmountsPName"></param> /// <param name="refStoresPName"></param> /// <param name="recNumberPName"></param> /// <param name="receiptDetailsVO"></param> public static void addReceiptDetailsToOraParamList( ref List <OracleProcParam> inParams, string refDatesPName, string refTimesPName, string refNumbersPName, string refTypesPName, string refEventsPName, string refAmountsPName, string refStoresPName, string recNumberPName, ReceiptDetailsVO receiptDetailsVO) { if (receiptDetailsVO != null) { addReceiptDetailsToOraParamList( ref inParams, refDatesPName, receiptDetailsVO.RefDates.ToArray(), refTimesPName, receiptDetailsVO.RefTimes.ToArray(), refNumbersPName, receiptDetailsVO.RefNumbers.ToArray(), refTypesPName, receiptDetailsVO.RefTypes.ToArray(), refEventsPName, receiptDetailsVO.RefEvents.ToArray(), refAmountsPName, receiptDetailsVO.RefAmounts.ToArray(), refStoresPName, receiptDetailsVO.RefStores.ToArray(), recNumberPName); } }
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); } } }
private void customButtonVoid_Click(object sender, EventArgs e) { if (currentLayaway.Receipts == null || currentLayaway.Receipts.Count == 0 || voidRow == null) { return; } try { bool retValue = false; int receiptNumber = 0; maxVoidPassed = false; storeCreditUsed = false; string receiptID = string.Empty; switch (mode) { case ProcessTenderProcedures.ProcessTenderMode.LAYAWAYVOID: VoidLayaway(out retValue, out receiptNumber, out receiptID); break; case ProcessTenderProcedures.ProcessTenderMode.LAYPAYMENTVOID: VoidLayawayPayment(out retValue, out receiptNumber, out receiptID); break; case ProcessTenderProcedures.ProcessTenderMode.LAYFORFVOID: VoidLayawayForf(out retValue, out receiptNumber, out receiptID); break; } if (!retValue && maxVoidPassed) { return; } if (!retValue && storeCreditUsed) { return; } if (retValue) { MessageBox.Show("Void Layaway 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; } Close(); } if (mode != ProcessTenderProcedures.ProcessTenderMode.LAYFORFVOID) { //code here to print void Layaway Receipt List <string> refNumber = new List <string>(); List <string> refType = new List <string>(); List <string> refEvent = new List <string>(); List <string> refStore = new List <string>(); List <string> refTime = new List <string>(); if (mode == ProcessTenderProcedures.ProcessTenderMode.LAYAWAYVOID) { refEvent.Add(ReceiptEventTypes.LAY.ToString()); } else if (mode == ProcessTenderProcedures.ProcessTenderMode.LAYPAYMENTVOID || mode == ProcessTenderProcedures.ProcessTenderMode.LAYFORFVOID) { refEvent.Add(ReceiptEventTypes.LAYPMT.ToString()); } refStore.Add(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber); refType.Add("4"); refTime.Add(ShopDateTime.Instance.ShopTransactionTime); refNumber.Add(currentLayaway.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; if (currentLayaway.TenderDataDetails != null) { ProcessPaidTenderData(currentLayaway.TenderDataDetails, receiptID); } //NOTE: Only use ProcessTenderController.Instance!! ProcessTenderController ptCntrl = ProcessTenderController.Instance; ptCntrl.GenerateLayawayPaymentReceipt(mode, GlobalDataAccessor.Instance.DesktopSession.UserName.ToLowerInvariant(), GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer, currentLayaway, GlobalDataAccessor.Instance.DesktopSession.ActiveVendor != null ? GlobalDataAccessor.Instance.DesktopSession.ActiveVendor.Name : "", rdVo); } Close(); } catch (Exception ex) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Error in void layaway activity " + ex.Message); MessageBox.Show("Error occurred in void layaway activity processing."); Close(); } }
private static void SaveTransferInReceipts(DesktopSession dSession, int transferNumber, decimal TotalTransferAmount) { #region receipt var errorCode = String.Empty; var errorText = String.Empty; var hasErrors = false; ReceiptDetailsVO transferReceiptDetailsVO = new ReceiptDetailsVO(); transferReceiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate; transferReceiptDetailsVO.RefDates = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() }; transferReceiptDetailsVO.RefTimes = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString() }; transferReceiptDetailsVO.UserId = dSession.UserName; transferReceiptDetailsVO.RefNumbers = new List <string>() { Convert.ToString(transferNumber) }; transferReceiptDetailsVO.RefTypes = new List <string>() { "6" }; transferReceiptDetailsVO.RefStores = new List <string>() { dSession.CurrentSiteId.StoreNumber }; transferReceiptDetailsVO.RefEvents = new List <string>() { "TI" }; transferReceiptDetailsVO.RefAmounts = new List <string>() { Convert.ToString(TotalTransferAmount) }; ProcessTenderProcedures.ExecuteInsertReceiptDetails( dSession.CurrentSiteId.StoreNumber, dSession.UserName, ShopDateTime.Instance.ShopDate.ToShortDateString(), dSession.FullUserName, ref transferReceiptDetailsVO, out errorCode, out errorText); if (errorCode != "0") { hasErrors = true; } errorCode = String.Empty; errorText = String.Empty; if (hasErrors) { BasicExceptionHandler.Instance.AddException("Transfer receipts were not created", new ApplicationException()); FileLogger.Instance.logMessage(LogLevel.ERROR, "TransferProcedures.cs", "Transfer receipts were not created"); } #endregion receipt }
private void buttonSubmit_Click(object sender, EventArgs e) { bool returnValue = false; DialogResult dgr = DialogResult.Retry; //Release police hold if (!PoliceSeize && !ReleaseToClaimant) { do { if (!customTextBoxAgency.isValid || !customTextBoxBadgeNumber.isValid || !customTextBoxOfficerFirstName.isValid || !customTextBoxOfficerLastName.isValid || !customTextBoxPhoneAreaCode.isValid || !customTextBoxPhoneNumber.isValid || richTextBoxReason.Text.Trim().Length <= 0) { MessageBox.Show("Please enter all the required fields and submit"); return; } returnValue = HoldsProcedures.RemovePoliceHolds(policeHolds, this.richTextBoxReason.Text, customTextBoxOfficerFirstName.Text, customTextBoxOfficerLastName.Text, customTextBoxBadgeNumber.Text, customTextBoxAgency.Text, customTextBoxCaseNumber.Text, customTextBoxPhoneAreaCode.Text, customTextBoxPhoneNumber.Text, customTextBoxPhoneExt.Text); if (returnValue) { MessageBox.Show("selected transactions released from police hold successfully"); break; } else { dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel); } }while (dgr == DialogResult.Retry); } //Process police seize if (PoliceSeize) { if (!customTextBoxAgency.isValid || !customTextBoxBadgeNumber.isValid || !customTextBoxOfficerFirstName.isValid || !customTextBoxOfficerLastName.isValid || !customTextBoxPhoneAreaCode.isValid || !customTextBoxPhoneNumber.isValid || richTextBoxReason.Text.Trim().Length <= 0 || !customTextBoxCaseNumber.isValid) { MessageBox.Show("Please enter all the required fields and submit"); return; } CustomerVO currentCustomer = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer; foreach (HoldData policeHold in policeHolds) { policeHold.HoldComment = richTextBoxReason.Text; } PoliceInfo policeInfo = new PoliceInfo { Agency = customTextBoxAgency.Text, BadgeNumber = customTextBoxBadgeNumber.Text, CaseNumber = customTextBoxCaseNumber.Text, OfficerFirstName = customTextBoxOfficerFirstName.Text, OfficerLastName = customTextBoxOfficerLastName.Text, PhoneAreaCode = customTextBoxPhoneAreaCode.Text, PhoneExtension = customTextBoxPhoneExt.Text, PhoneNumber = customTextBoxPhoneNumber.Text, RequestType = "" }; do { int seizeNumber = 0; returnValue = HoldsProcedures.AddPoliceSeize( policeHolds, policeHolds[0].HoldComment, policeInfo, currentCustomer, out seizeNumber); if (returnValue && seizeNumber > 0) { policeInfo.SeizeNumber = seizeNumber; ReceiptDetailsVO rDVO = new ReceiptDetailsVO(); if (!HoldsProcedures.insertPoliceReceipt(policeHolds, ref rDVO)) { FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Receipt details could not be entered for police seize " + seizeNumber); } MessageBox.Show("Selected items police seized successfully"); //Print police seize document foreach (HoldData policehold in policeHolds) { policehold.PoliceInformation = policeInfo; } //Call print Police seize form if print is enabled if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled) { //PoliceSeizeform seizeFrm = new PoliceSeizeform(); //seizeFrm.PoliceSeizeLoans = policeHolds; //seizeFrm.ShowDialog(); //Calling policeseizereport(Itextsharp) instead of bitmap(policeseizeform) calling var policeseizereport = new Reports.PoliceSeizeReport(); var reportObject = new ReportObject(); reportObject.ReportTempFileFullName = SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath + "\\Police Seize" + DateTime.Now.ToString("MMddyyyyhhmmssFFFFFFF") + ".pdf"; policeseizereport.reportObject = reportObject; policeseizereport.ReportTempFileFullName = reportObject.ReportTempFileFullName; policeseizereport.STORE_NAME = GlobalDataAccessor.Instance.CurrentSiteId.StoreName; policeseizereport.STORE_ADDRESS = GlobalDataAccessor.Instance.CurrentSiteId.StoreAddress1; policeseizereport.STORE_CITY = GlobalDataAccessor.Instance.CurrentSiteId.StoreCityName; policeseizereport.STORE_STATE = GlobalDataAccessor.Instance.CurrentSiteId.State; policeseizereport.STORE_ZIP = GlobalDataAccessor.Instance.CurrentSiteId.StoreZipCode; policeseizereport.CurrentCust = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer; policeseizereport.EmpNo = GlobalDataAccessor.Instance.DesktopSession.UserName.ToLowerInvariant(); policeseizereport.TransactionDate = ShopDateTime.Instance.ShopDate.FormatDate(); policeseizereport.HoldData = policeHolds[0]; policeseizereport.CustHomeAddr = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.CustomerAddress[0]; policeseizereport.CreateReport(); string strReturnMessage; if (GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter.IsValid) { if (FileLogger.Instance.IsLogInfo) { FileLogger.Instance.logMessage(LogLevel.INFO, this, "Printing PoliceSeize report on PDA Laser printer: {0}", GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter); } strReturnMessage = PrintingUtilities.printDocument( reportObject.ReportTempFileFullName, GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter.IPAddress, GlobalDataAccessor.Instance.DesktopSession.PDALaserPrinter.Port, 2); } else if (GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid) { if (FileLogger.Instance.IsLogWarn) { FileLogger.Instance.logMessage(LogLevel.WARN, this, "Could not find valid PDA laser printer to print the PoliceSeize report." + Environment.NewLine + " Printing on default pawn laser printer: {0}", GlobalDataAccessor.Instance.DesktopSession.LaserPrinter); } strReturnMessage = PrintingUtilities.printDocument( reportObject.ReportTempFileFullName, GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress, GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port, 2); } else { if (FileLogger.Instance.IsLogError) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Could not find a valid laser printer to print the PoliceSeize report"); } strReturnMessage = "FAIL - NO PRINTER FOUND"; } if (strReturnMessage.IndexOf("SUCCESS", StringComparison.OrdinalIgnoreCase) == -1) { if (FileLogger.Instance.IsLogError) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Cannot print the PoliceSeize report: " + strReturnMessage); } } } break; } dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel); }while (dgr == DialogResult.Retry); } //Process Release to claimant if (ReleaseToClaimant) { //Store the police info in session if (GlobalDataAccessor.Instance.DesktopSession.PoliceInformation == null) { if (!customTextBoxAgency.isValid || !customTextBoxBadgeNumber.isValid || !customTextBoxOfficerFirstName.isValid || !customTextBoxOfficerLastName.isValid || !customTextBoxPhoneAreaCode.isValid || !customTextBoxPhoneNumber.isValid || richTextBoxReason.Text.Trim().Length <= 0) { MessageBox.Show("Please enter all the required fields and submit"); return; } foreach (HoldData policeHold in policeHolds) { policeHold.HoldComment = richTextBoxReason.Text; } PoliceInfo policeInfo = new PoliceInfo { Agency = customTextBoxAgency.Text, BadgeNumber = customTextBoxBadgeNumber.Text, CaseNumber = customTextBoxCaseNumber.Text, OfficerFirstName = customTextBoxOfficerFirstName.Text, OfficerLastName = customTextBoxOfficerLastName.Text, PhoneAreaCode = customTextBoxPhoneAreaCode.Text, PhoneExtension = customTextBoxPhoneExt.Text, PhoneNumber = customTextBoxPhoneNumber.Text }; GlobalDataAccessor.Instance.DesktopSession.PoliceInformation = policeInfo; GlobalDataAccessor.Instance.DesktopSession.ReleaseToClaimant = true; NavControlBox.IsCustom = true; NavControlBox.CustomDetail = "FindClaimant"; this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT; } else { bool gunInvolved = false; CustomerVO currentCustomer = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer; //Check if any of the loans being released has a gun foreach (HoldData pl in policeHolds) { var gunItems = from pItem in pl.Items where pItem.GunNumber > 0 select pItem; if (gunItems.Any()) { gunInvolved = true; break; } } //if gun involved check for cwp bool backgroundCheck = false; if (gunInvolved) { /*DateTime currentDate = ShopDateTime.Instance.ShopDate; * string strStoreState = GlobalDataAccessor.Instance.CurrentSiteId.State; * if (currentCustomer.HasValidConcealedWeaponsPermitInState(strStoreState, currentDate)) * { * if (CustomerProcedures.IsBackgroundCheckRequired()) * { * FirearmsBackgroundCheck backgroundcheckFrm = new FirearmsBackgroundCheck(); * backgroundcheckFrm.ShowDialog(this); * } * else //If the background check is not needed * CashlinxDesktopSession.Instance.BackgroundCheckCompleted = true; * } * //else if they do not have CWP or not a CWP in the store state or expired * //then show the background check form * else * { * FirearmsBackgroundCheck backgroundcheckFrm = new FirearmsBackgroundCheck(); * backgroundcheckFrm.ShowDialog(this); * }*/ FirearmsBackgroundCheck backgroundcheckFrm = new FirearmsBackgroundCheck(); backgroundcheckFrm.ShowDialog(this); if (GlobalDataAccessor.Instance.DesktopSession.BackgroundCheckCompleted) { backgroundCheck = true; } } else { backgroundCheck = true; } if (backgroundCheck) { do { returnValue = HoldsProcedures.AddReleaseToClaimant(policeHolds, policeHolds[0].HoldComment, GlobalDataAccessor.Instance.DesktopSession.PoliceInformation, currentCustomer); if (returnValue) { MessageBox.Show("selected transactions released to claimant successfully"); //Print RTC form foreach (var policeHold in policeHolds) { policeHold.PoliceInformation = GlobalDataAccessor.Instance.DesktopSession.PoliceInformation; policeHold.RestitutionPaid = radioButtonYes.Checked; if (panelRestitution.Visible == true && radioButtonYes.Checked == true) { // there was restitution paid if (customTextBoxResAmount.Text.Trim() == "") { // Probably should have caught this before policeHold.RestitutionAmount = 0; MessageBox.Show("Please enter the restitution amount!", "Restitution amount missing"); customTextBoxResAmount.Focus(); return; } } else { // No restitution paid policeHold.RestitutionPaid = false; policeHold.RestitutionAmount = 0; } } //Call print RTC if print is enabled if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled) { var rtcprintFrm = new RTCform(); rtcprintFrm.RTCLoans = policeHolds; rtcprintFrm.ShowDialog(); } break; } dgr = MessageBox.Show(Commons.GetMessageString("ProcessingError"), "Error", MessageBoxButtons.RetryCancel); }while (dgr == DialogResult.Retry); } else { MessageBox.Show("Background check not completed. selected transactions not released to claimant"); RemoveTempStatusOnLoans(); } GlobalDataAccessor.Instance.DesktopSession.PoliceInformation = null; GlobalDataAccessor.Instance.DesktopSession.ReleaseToClaimant = false; } } this.NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT; }
public static bool ExecuteVendorPFI ( int ticketNumber, PurchaseVO vendorPurchaseObj, VendorVO vendor, out string sErrorCode, out string sErrorText ) { List <TransferItemVO> _mdseToTransfer = new List <TransferItemVO>(); int pawnItemIdx = 1; sErrorCode = "0"; sErrorText = ""; bool itemsPfid = false; try { //Start transaction block GlobalDataAccessor.Instance.beginTransactionBlock(); //Step 1 Update Gun book if the item has a gun foreach (Item purchaseItem in vendorPurchaseObj.Items) { if (purchaseItem.IsExpenseItem) { pawnItemIdx = pawnItemIdx + purchaseItem.Quantity; continue; } for (int i = 1; i <= purchaseItem.Quantity; i++) { if (!purchaseItem.IsJewelry && purchaseItem.Quantity > 1 && purchaseItem.SerialNumber != null && purchaseItem.SerialNumber.Count > 0) { Item itemCopy = Utilities.CloneObject(purchaseItem); string sItemPrefix; string sDescription; //Get updated mdse description for each serial number Item.RemoveSerialNumberFromDescription(ref itemCopy, out sItemPrefix, out sDescription); purchaseItem.Attributes = itemCopy.Attributes; purchaseItem.TicketDescription = sDescription; } purchaseItem.mDocNumber = ticketNumber; purchaseItem.mItemOrder = i; int qty = purchaseItem.QuickInformation.Quantity < 1 ? 1 : purchaseItem.QuickInformation.Quantity; if (purchaseItem.CaccLevel == 0) { // Call Update_Cacc_Info() MerchandiseProcedures.UpdateCaccInfo(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0, purchaseItem.mDocNumber, "7", 1, 0, qty, purchaseItem.ItemAmount * qty, purchaseItem.CategoryCode, ShopDateTime.Instance.ShopDate, out sErrorCode, out sErrorText ); } if (purchaseItem.IsGun) { ProcessTenderProcedures.ExecuteUpdateGunBookRecord( ticketNumber.ToString(), GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, ProductStatus.PFI.ToString(), "", vendor.Name, "", "", vendor.Address1, vendor.City, vendor.State, vendor.ZipCode, vendor.Ffl, "", "", "P", GlobalDataAccessor.Instance.DesktopSession.UserName, ShopDateTime.Instance.ShopDate.ToShortDateString(), ShopDateTime.Instance.ShopTransactionTime, "", purchaseItem.QuickInformation.Caliber, purchaseItem.QuickInformation.Importer, purchaseItem.QuickInformation.SerialNumber, purchaseItem.QuickInformation.Model, purchaseItem.QuickInformation.Manufacturer, purchaseItem.mStore, purchaseItem.mYear, purchaseItem.mDocNumber, purchaseItem.mDocType, pawnItemIdx, 0, vendorPurchaseObj.GunNumbers[i - 1], out sErrorCode, out sErrorText ); } //Step 2 Insert mdse revision record bool mdseRevVal = MerchandiseProcedures.InsertMerchandiseRevision(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, purchaseItem.mYear, ticketNumber, purchaseItem.mDocType, pawnItemIdx, 0, purchaseItem.mStore, ticketNumber.ToString(), purchaseItem.mDocType, "", 0, purchaseItem.ItemReason == ItemReason.CACC ? "PFC" : "PFI", "", "", GlobalDataAccessor.Instance.DesktopSession.FullUserName, out sErrorCode, out sErrorText ); purchaseItem.Icn = Utilities.IcnGenerator(purchaseItem.mStore, purchaseItem.mYear, ticketNumber, "2", pawnItemIdx, 0); TransferItemVO transferData = new TransferItemVO(); transferData.ICN = purchaseItem.Icn.ToString(); transferData.StoreNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber; transferData.ICNQty = purchaseItem.QuickInformation.Quantity > 0 ? purchaseItem.QuickInformation.Quantity.ToString() : "1"; transferData.CustomerNumber = ""; transferData.TransactionDate = ShopDateTime.Instance.ShopDate; transferData.MdseRecordDate = ShopDateTime.Instance.ShopDate; transferData.MdseRecordTime = ShopDateTime.Instance.ShopTransactionTime; transferData.MdseRecordUser = GlobalDataAccessor.Instance.DesktopSession.UserName; transferData.MdseRecordDesc = ""; transferData.MdseRecordChange = 0; transferData.MdseRecordType = ""; transferData.ClassCode = ""; transferData.AcctNumber = ""; transferData.CreatedBy = GlobalDataAccessor.Instance.DesktopSession.UserName; transferData.GunNumber = vendorPurchaseObj.GunNumbers[i - 1] > 0 ? vendorPurchaseObj.GunNumbers[i - 1].ToString() : null; transferData.GunType = purchaseItem.QuickInformation.GunType; transferData.ItemDescription = purchaseItem.TicketDescription; transferData.ItemCost = purchaseItem.ItemAmount; _mdseToTransfer.Add(transferData); itemsPfid = true; pawnItemIdx++; } } //Step 3 Insert receipt for PFI if (itemsPfid) { ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO(); receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate; receiptDetailsVO.RefDates = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() }; receiptDetailsVO.RefTimes = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString() }; receiptDetailsVO.UserId = GlobalDataAccessor.Instance.DesktopSession.UserName; receiptDetailsVO.RefNumbers = new List <string>() { ticketNumber.ToString() }; receiptDetailsVO.RefTypes = new List <string>() { "2" }; receiptDetailsVO.RefEvents = new List <string>() { "PFI" }; receiptDetailsVO.RefAmounts = new List <string>() { vendorPurchaseObj.Amount.ToString() }; receiptDetailsVO.RefStores = new List <string>() { GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber }; ProcessTenderProcedures.ExecuteInsertReceiptDetails( GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession.UserName, ShopDateTime.Instance.ShopDate.ToShortDateString(), GlobalDataAccessor.Instance.DesktopSession.UserName, ref receiptDetailsVO, out sErrorCode, out sErrorText); } GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.COMMIT); } catch (Exception ex) { GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK); FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while processing PFI " + ex.Message); sErrorCode = "1"; sErrorText = ex.Message; return(false); } //Step 4 Invoke transfer process int transferNumber = 0; var errorMessage = string.Empty; if (_mdseToTransfer.Count > 0 && GlobalDataAccessor.Instance.CurrentSiteId.IsTopsExist) { bool retValue = TransferProcedures.TransferItemsOutOfStore(_mdseToTransfer, out transferNumber, "", out errorMessage, false, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber); if (!retValue) { MessageBox.Show("Error:" + errorMessage); sErrorText = errorMessage; return(false); } foreach (TransferItemVO transfer in _mdseToTransfer) { transfer.TransferNumber = transferNumber; } } if (transferNumber > 0) { try { GlobalDataAccessor.Instance.beginTransactionBlock(); //Step 5 Insert receipt for transfer ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO(); receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate; receiptDetailsVO.RefDates = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() }; receiptDetailsVO.RefTimes = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString() }; receiptDetailsVO.UserId = GlobalDataAccessor.Instance.DesktopSession.UserName; receiptDetailsVO.RefNumbers = new List <string>() { ticketNumber.ToString() }; receiptDetailsVO.RefTypes = new List <string>() { "2" }; receiptDetailsVO.RefEvents = new List <string>() { "TO" }; receiptDetailsVO.RefAmounts = new List <string>() { vendorPurchaseObj.Amount.ToString() }; receiptDetailsVO.RefStores = new List <string>() { GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber }; ProcessTenderProcedures.ExecuteInsertReceiptDetails( GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession.UserName, ShopDateTime.Instance.ShopDate.ToShortDateString(), GlobalDataAccessor.Instance.DesktopSession.UserName, ref receiptDetailsVO, out sErrorCode, out sErrorText); GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT); //Step 6 Print transfer report /*TransferOutReport trnsfrRpt = new TransferOutReport(); * trnsfrRpt.MdseTransfer = _mdseToTransfer; */ string logPath = SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration .BaseLogPath; TransferOutReport trnsfrRpt = new TransferOutReport(_mdseToTransfer, ShopDateTime.Instance.ShopDateCurTime, GlobalDataAccessor.Instance.CurrentSiteId.StoreName, Convert.ToString(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber), GlobalDataAccessor.Instance.DesktopSession.UserName, Convert.ToString(transferNumber), logPath, "PFIProc", new ReportObject.TransferReport(), PdfLauncher.Instance); trnsfrRpt.CreateReport(); //TODO: Store report in couch db if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled && GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid) { string laserPrinterIp = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress; int laserPrinterPort = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port; PrintingUtilities.printDocument(trnsfrRpt.getReportWithPath(), laserPrinterIp, laserPrinterPort, 1); } //trnsfrRpt.ShowDialog(); return(true); } catch (Exception ex) { GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK); FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while entering receipt for transfer and printing transfer report " + ex.Message); sErrorCode = "1"; sErrorText = ex.Message; return(false); } } return(true); }