public PurchaseVO Update(PurchaseVO purchase) { var purchaseEntity = _converter.Parse(purchase); purchaseEntity = _repository.Update(purchaseEntity); return(_converter.Parse(purchaseEntity)); }
private bool getBuyData() { bool retValue = false; PurchaseVO purchaseObj = null; CustomerVO customerObj = null; string errorCode; string errorText; string tenderType; retValue = PurchaseProcedures.GetPurchaseData(Utilities.GetIntegerValue(BuyStoreText.Text, 0), Utilities.GetIntegerValue(BuyNumberText.Text, 0), "2", StateStatus.BLNK, "", true, out purchaseObj, out customerObj, out tenderType, out errorCode, out errorText); //Put the return data in the desktop session if found. if (retValue && purchaseObj != null) { GlobalDataAccessor.Instance.DesktopSession.Purchases.Clear(); GlobalDataAccessor.Instance.DesktopSession.Purchases.Add(purchaseObj); if (purchaseObj.EntityType != "V" && customerObj != null) { GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj; } GlobalDataAccessor.Instance.DesktopSession.TicketLookedUp = Utilities.GetIntegerValue(BuyNumberText.Text, 0); GlobalDataAccessor.Instance.DesktopSession.TicketTypeLookedUp = ProductType.BUY; this.NavControlBox.Action = NavBox.NavAction.SUBMIT; } return(retValue); }
public IActionResult Post([FromBody] PurchaseVO purchase) { if (purchase == null) { return(BadRequest("Not making this purchase")); } return(Ok(_purchaseBusiness.Create(purchase))); }
public PurchaseVO Create(PurchaseVO purchase) { var purchaseEntity = _converter.Parse(purchase); Book book = _bookRepository.FindById(purchase.idBook); if (book.Amount > 0) { book.Amount = book.Amount - 1; purchaseEntity = _repository.Create(purchaseEntity); return(_converter.Parse(purchaseEntity)); } return(null); }
public ReturnHistory_Dialog(PurchaseVO purchase, int recieptIdx, string status) { InitializeComponent(); _receiptIdx = recieptIdx; _purchase = purchase; _status = status; if (_purchase == null) { MessageBox.Show("Pass in a Purchase to display page.", "Purchase Validation", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { Setup(); } }
public IActionResult Put([FromBody] PurchaseVO purchase) { if (purchase == null) { return(BadRequest("Check purchase information")); } var updatedPurchase = _purchaseBusiness.Update(purchase); if (updatedPurchase == null) { return(BadRequest("It was not possible to update the data in this purchase.")); } return(new ObjectResult(updatedPurchase)); }
public PurchaseHistory_Dialog(PurchaseVO purchase, int receiptIdx) { InitializeComponent(); //Does not need this. -- Removed by TLR 6/14/2010 //this.NavControlBox = new NavBox(); //this.NavControlBox.Owner = this; _purchase = purchase; _receiptIdx = receiptIdx; if (_purchase == null) { MessageBox.Show("Pass in a Purchase to display page.", "Purchase Validation", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { Setup(); } }
private void ShowBuyDetail(DataGridViewCellMouseEventArgs e) { DataGridViewRow myRow = MerchandiseDataGridView.Rows[e.RowIndex]; int itemTicketNumber = GlobalDataAccessor.Instance.DesktopSession.TicketLookedUp; if (e.ColumnIndex == 1 && e.RowIndex >= 0) { var purchases = GlobalDataAccessor.Instance.DesktopSession.Purchases; string icn = Utilities.GetStringValue(myRow.Cells[ICN.Index].Value, ""); var purchaseItems = purchases.SelectMany(purchaseVo => purchaseVo.Items).ToList(); int iDx = purchaseItems.FindIndex(item => item.Icn == icn); if (iDx >= 0) { // Need to populate pawnLoan from GetCat5 int iCategoryMask = GlobalDataAccessor.Instance.DesktopSession.CategoryXML.GetCategoryMask(purchaseItems[iDx].CategoryCode); DescribedMerchandise dmPurchaseItem = new DescribedMerchandise(iCategoryMask); Item purchaseItem = purchaseItems[iDx]; Item.PawnItemMerge(ref purchaseItem, dmPurchaseItem.SelectedPawnItem, true); purchaseItems.RemoveAt(iDx); purchaseItems.Insert(iDx, purchaseItem); PurchaseVO activePurchase = purchases.Find(p => p.TicketNumber == itemTicketNumber); activePurchase.Items = purchaseItems; GlobalDataAccessor.Instance.DesktopSession.ActivePurchase = activePurchase; DescribeItem myForm = new DescribeItem(GlobalDataAccessor.Instance.DesktopSession, CurrentContext.READ_ONLY, iDx, true) { SelectedProKnowMatch = purchaseItems[iDx].SelectedProKnowMatch }; myForm.ShowDialog(this); } } }
private void VoidPurchaseReturn_Load(object sender, EventArgs e) { labelMessage.Text = ""; if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDBUYRETURN, StringComparison.OrdinalIgnoreCase)) { voidReturnFlow = true; } else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDSALE, StringComparison.Ordinal)) { voidSaleFlow = true; } else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDBUY, StringComparison.OrdinalIgnoreCase)) { voidBuyFlow = true; } else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDREFUND, StringComparison.OrdinalIgnoreCase)) { voidSaleRefundFlow = true; } else if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDLAYAWAY, StringComparison.OrdinalIgnoreCase)) { voidLayawayFlow = true; } if (voidReturnFlow) { labelHeading.Text = "Void Return"; labelTransactionNoHeading.Text = "Return Number"; } else if (voidBuyFlow) { labelHeading.Text = "Void Buy"; labelTransactionNoHeading.Text = "Buy Number"; //BZ # 619 comboBoxReason.Items.Clear(); comboBoxReason.Items.Add("Wrong Payment Method"); comboBoxReason.Items.Add("PFI'd In Error"); comboBoxReason.Items.Add("Wrong Customer"); comboBoxReason.Items.Add("Incorrect Transaction Detail"); comboBoxReason.Items.Add("Test Transaction"); comboBoxReason.Items.Add("System Issue"); } else if (voidSaleFlow) { labelHeading.Text = "Void Sale"; labelTransactionNoHeading.Text = "MSR #"; this.dataGridViewMdse.Columns[1].HeaderText = "Amount"; comboBoxReason.Items.Clear(); comboBoxReason.Items.Add("Wrong Payment Method"); comboBoxReason.Items.Add("Wrong Customer"); comboBoxReason.Items.Add("Wrong ICN"); comboBoxReason.Items.Add("Customer Changed Mind"); comboBoxReason.Items.Add("Test Transaction"); comboBoxReason.Items.Add("System Issue"); } else if (voidSaleRefundFlow) { labelHeading.Text = "Void Sale Refund"; labelTransactionNoHeading.Text = "MSR Refund #"; } else if (voidLayawayFlow) { labelHeading.Text = "Void Layaway"; labelTransactionNoHeading.Text = "Layaway #"; } maxVoidDays = 0L; if (!new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).GetMaxVoidDays(GlobalDataAccessor.Instance.CurrentSiteId, out maxVoidDays)) { if (FileLogger.Instance.IsLogError) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Cannot retrieve maximum void days. Defaulting to {0}", maxVoidDays); } } currentPurchase = GlobalDataAccessor.Instance.DesktopSession.ActivePurchase; currentSale = GlobalDataAccessor.Instance.DesktopSession.ActiveRetail; if (currentPurchase != null) { if (currentPurchase.EntityType == "V") { voidVendorBuy = true; } labelDate.Text = currentPurchase.MadeTime.ToString(); labelTransactionNo.Text = currentPurchase.TicketNumber.ToString(); labelUserID.Text = currentPurchase.CreatedBy.ToString(); labelTotal.Text = currentPurchase.Amount.ToString("c"); if (currentPurchase.DateMade.AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate) { labelMessage.Text = INVALIDVOIDMESSAGE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } /* if (voidBuyFlow && (currentPurchase.CustomerNumber == null || * currentPurchase.EntityType == "V")) * { * labelMessage.Text = NOTCUSTOMERPURCHASE; * labelMessage.Visible = true; * customButtonVoid.Enabled = false; * } * if (voidVendorBuy && currentPurchase.EntityType != "V") * { * labelMessage.Text = NOTVENDORPURCHASE; * labelMessage.Visible = true; * customButtonVoid.Enabled = false; * * }*/ //if we are voiding vendor buy make sure that the items are not sold or on layaway if (voidBuyFlow) { var itemData = (from item in currentPurchase.Items where item.ItemStatus == ProductStatus.SOLD || item.ItemStatus == ProductStatus.LAY select item).FirstOrDefault(); if (itemData != null) { labelMessage.Text = RETAILITEMS; labelMessage.Visible = true; customButtonVoid.Enabled = false; } } if (!voidReturnFlow) { var itemData = (from item in currentPurchase.Items where item.ItemStatus == ProductStatus.RET select item).FirstOrDefault(); if (itemData != null) { labelMessage.Text = RETURNEDPURCHASE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } var itemRTCData = (from item in currentPurchase.Items where item.ItemStatus == ProductStatus.RTC || item.ItemStatus == ProductStatus.PS select item).FirstOrDefault(); if (itemRTCData != null) { labelMessage.Text = RTCITEMS; labelMessage.Visible = true; customButtonVoid.Enabled = false; } } if (currentPurchase.Items != null && currentPurchase.Items.Count > 0) { dataGridViewMdse.AutoGenerateColumns = false; this.dataGridViewMdse.Columns[1].DefaultCellStyle.Format = "c"; foreach (Item item in currentPurchase.Items) { DataGridViewRow row = dataGridViewMdse.Rows.AddNew(); row.Cells[mdseDesc.Index].Value = item.TicketDescription; row.Cells[cost.Index].Value = item.ItemAmount; } } else { MessageBox.Show("Error in void transaction processing"); FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for purchase " + currentPurchase.TicketNumber + " to void."); Close(); } } else if (currentSale != null) { labelDate.Text = currentSale.MadeTime.ToString(); labelTransactionNo.Text = currentSale.TicketNumber.ToString(); labelUserID.Text = currentSale.CreatedBy.ToString(); labelTotal.Text = currentSale.Amount.ToString("c"); if (Utilities.GetDateTimeValue(currentSale.MadeTime.ToShortDateString()).AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate) { labelMessage.Text = INVALIDVOIDSALEMESSAGE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } string rcptId = (from receipt in currentSale.Receipts where (receipt.Event == ReceiptEventTypes.SALE.ToString() && receipt.RefNumber == currentSale.TicketNumber.ToString()) select receipt).First().ReceiptDetailNumber; Common.Libraries.Utility.Shared.Receipt selectedReceipt = currentSale.Receipts.Find(r => r.ReceiptDetailNumber == rcptId); if (selectedReceipt.CreatedBy == "CONV" || currentSale.CreatedBy == "CONV") { labelMessage.Text = INVALIDCONVERSIONVOIDSALEMESSAGE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } if (voidSaleFlow) { var itemData = (from item in currentSale.RetailItems where item.DispDoc != currentSale.TicketNumber select item).FirstOrDefault(); if (itemData != null) { labelMessage.Text = RETURNEDSALE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } //SR 12/08/2011 Added the logic below to not allow void of cacc sales that //were refunded var itemCaccData = (from item in currentSale.RetailItems where item.mDocType == "5" && item.Quantity != item.RefundQuantity select item).FirstOrDefault(); if (itemCaccData != null) { labelMessage.Text = RETURNEDSALE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } } if (currentSale.RetailItems != null && currentSale.RetailItems.Count > 0) { dataGridViewMdse.AutoGenerateColumns = false; this.dataGridViewMdse.Columns[1].DefaultCellStyle.Format = "c"; foreach (RetailItem item in currentSale.RetailItems) { DataGridViewRow row = dataGridViewMdse.Rows.AddNew(); row.Cells[mdseDesc.Index].Value = item.TicketDescription; row.Cells[cost.Index].Value = item.RetailPrice * item.Quantity; } } else { MessageBox.Show("Error in void transaction processing"); FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for the transaction " + currentSale.TicketNumber + " to void."); Close(); } } }
private void customButtonOK_Click(object sender, EventArgs e) { labelErrorMessage.Visible = false; noDataFound = false; PurchaseVO purchaseObj = null; CustomerVO customerObj = null; SaleVO saleObj = null; LayawayVO layawayObj = null; CashTransferVO bankTransferObj = null; CashTransferVO shopCashTransferObj = null; DataSet mdseInfo = null; string errorCode; string errorText; getCustomerInfo = true; string tenderType; GlobalDataAccessor.Instance.DesktopSession.Purchases = new List <PurchaseVO>(); GlobalDataAccessor.Instance.DesktopSession.Sales = new List <SaleVO>(); GlobalDataAccessor.Instance.DesktopSession.Layaways = new List <LayawayVO>(); ReleaseFingerprintsInfo releaseFingerprintsequest = null; bool retValue = false; if (voidBuyReturn) { retValue = PurchaseProcedures.GetPurchaseData(Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0), Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "2", StateStatus.BLNK, "RET", true, out purchaseObj, out customerObj, out tenderType, out errorCode, out errorText); } else if (voidBuy) { retValue = PurchaseProcedures.GetPurchaseData(Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0), Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "2", StateStatus.BLNK, "", true, out purchaseObj, out customerObj, out tenderType, out errorCode, out errorText); } else if (voidSale) { retValue = RetailProcedures.GetSaleData(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.OracleDA, Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0), Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "3", StateStatus.BLNK, "SALE", false, out saleObj, out customerObj, out errorCode, out errorText); } else if (voidLayaway) { retValue = RetailProcedures.GetLayawayData(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.OracleDA, Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0), Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "4", StateStatus.BLNK, "ALL", false, out layawayObj, out customerObj, out errorCode, out errorText); } else if (voidSaleRefund) { retValue = RetailProcedures.GetSaleData(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.OracleDA, Utilities.GetIntegerValue(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0), Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), "3", StateStatus.BLNK, "REFUND", false, out saleObj, out customerObj, out errorCode, out errorText); } //BZ # 419 else if (voidBanktoShopCashTransfer) { retValue = ShopCashProcedures.GetBankTransferDetails(customTextBoxTranNo.Text, "BANKTOSHOP", GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession, out bankTransferObj, out errorCode, out errorText); } else if (voidShopToBankCashTransfer) { retValue = ShopCashProcedures.GetBankTransferDetails(customTextBoxTranNo.Text, "SHOPTOBANK", GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession, out bankTransferObj, out errorCode, out errorText); }//BZ # 419 end else if (voidStoreCashTransfer) { string storeNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber; retValue = ShopCashProcedures.GetShopCashTransferData(customTextBoxTranNo.Text, "", storeNumber, GlobalDataAccessor.Instance.DesktopSession, out shopCashTransferObj, out errorCode, out errorText); } else if (voidMerchandiseTransfer) { string storeNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber; string tranNo = customTextBoxTranNo.Text; if (customTextBoxTranNo.Text.Length > 6) { tranNo = tranNo.Substring(5); } retValue = VoidProcedures.getTransferToVoid(Utilities.GetIntegerValue(tranNo, 0), storeNumber, out mdseInfo, out errorCode, out errorText); // retValue = VoidProcedures.GetEligibleToScrapItems(Utilities.GetIntegerValue(customTextBoxTranNo.Text, 0), // storeNumber, out mdse , out errorCode, out errorText); } else if (voidReleaseFingerprints) { string storeNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber; string tranNo = customTextBoxTranNo.Text; if (tranNo.Length > 6) { tranNo = tranNo.Substring(5); } // Add procedure to VoidsProcedurees to Locate the Release Fingerprint Authorization GlobalDataAccessor.Instance.FingerPrintRelaseAuthorizationInfo = HoldsProcedures.GetReleaseFingerprintAuthorization(tranNo, storeNumber, out errorCode, out errorText); } if (voidBuy || voidBuyReturn) { if (retValue && purchaseObj != null) { GlobalDataAccessor.Instance.DesktopSession.Purchases.Add(purchaseObj); if (purchaseObj.EntityType != "V" && customerObj != null) { GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj; } GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); } else { noDataFound = true; } } else if (voidSale || voidSaleRefund) { if (retValue && saleObj != null) { if (saleObj.RefType == "4") { MessageBox.Show("This sale originated from a layaway. You have to void the last layaway payment and not the sale"); return; } GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj; GlobalDataAccessor.Instance.DesktopSession.Sales.Add(saleObj); GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); } else { noDataFound = true; } } else if (voidLayaway) { if (retValue && layawayObj != null) { GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer = customerObj; GlobalDataAccessor.Instance.DesktopSession.Layaways.Add(layawayObj); GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); } else { noDataFound = true; } } //BZ # 419 //else if (voidCashTransfer) else if (voidBanktoShopCashTransfer || voidShopToBankCashTransfer) { //BZ # 419 end if (retValue && bankTransferObj != null) { GlobalDataAccessor.Instance.DesktopSession.CashTransferData = bankTransferObj; GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); } else { noDataFound = true; } } else if (voidStoreCashTransfer) { if (retValue && shopCashTransferObj != null) { GlobalDataAccessor.Instance.DesktopSession.CashTransferData = shopCashTransferObj; GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); } else { noDataFound = true; } } else if (voidMerchandiseTransfer) { if (retValue && mdseInfo != null && mdseInfo.Tables.Count > 0) { if (isFaultyTransferINOUT(mdseInfo)) { noDataFound = true; } else { GlobalDataAccessor.Instance.DesktopSession.MdseTransferData = mdseInfo; GlobalDataAccessor.Instance.DesktopSession.SelectedTransferNumber = customTextBoxTranNo.Text; GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); } } else { noDataFound = true; } } else if (voidReleaseFingerprints && GlobalDataAccessor.Instance.FingerPrintRelaseAuthorizationInfo != null) { this.DialogResult = DialogResult.OK; //GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); } if (noDataFound) { labelErrorMessage.Text = "The number entered is not valid. Please enter another number"; labelErrorMessage.Visible = true; return; } }
private void printButton_Click(object sender, EventArgs e) { // Have extra enumeration to go ProKnow with only ONE call List <CustomerProductDataVO> productObjects = new List <CustomerProductDataVO>(); List <String> customerNames = new List <String>(); List <int> tickets = new List <int>(gvLoans.Rows.Count); Cursor = Cursors.WaitCursor; try { // improve efficiency -- only return new numbers if these have been previously loaded foreach (DataGridViewRow myRow in gvLoans.Rows) { if (Convert.ToBoolean(myRow.Cells[colSelect.Name].Value) && !myRow.Cells[colSelect.Name].ReadOnly) { int iTktNumber = Utilities.GetIntegerValue(myRow.Cells[colNumber.Name].Value, 0); if (iTktNumber != 0) { tickets.Add(iTktNumber); } } } string errorCode; string errorTxt; DateTime dt = Convert.ToDateTime(dateCalendarSearchDate.SelectedDate); StoreLoans.Get_PFI_Details(CashlinxDesktopSession.Instance.CurrentSiteId.StoreNumber, dt, tickets, out _PawnLoans, out _PawnApplications, out _CustomerVOs, out _Purchases, out errorCode, out errorTxt); foreach (DataGridViewRow myRow in gvLoans.Rows) { if (Convert.ToBoolean(myRow.Cells[colSelect.Name].Value) && !myRow.Cells[colSelect.Name].ReadOnly) { int iTktNumber = Utilities.GetIntegerValue(myRow.Cells[colNumber.Name].Value, 0); string customer = (string)myRow.Cells[4].Value; PawnLoan pawnLoan = null; if (myRow.Cells[colType.Name].Value.Equals("LOAN")) { if (_PawnLoans != null) { pawnLoan = (from ploan in _PawnLoans where ploan.TicketNumber == iTktNumber && ploan.ProductType == ProductType.PAWN.ToString() select ploan).FirstOrDefault(); } if (pawnLoan != null) { LoanPrinted loanPrinted = _PrintedLoans.Find( l => l.LoanNumber == iTktNumber && l.RefType == 1); loanPrinted.bPrinted = true; _PrintedLoans.RemoveAll( l => l.LoanNumber == iTktNumber && l.RefType == 1); _PrintedLoans.Add(loanPrinted); productObjects.Add(pawnLoan); customerNames.Add(customer); } } else { PurchaseVO purchaseObj = null; if (_Purchases != null) { purchaseObj = (from purchase in _Purchases where purchase.TicketNumber == iTktNumber select purchase).FirstOrDefault(); } if (purchaseObj != null) { LoanPrinted loanPrinted = _PrintedLoans.Find(l => l.LoanNumber == iTktNumber && l.RefType == 2); loanPrinted.bPrinted = true; _PrintedLoans.RemoveAll(l => l.LoanNumber == iTktNumber && l.RefType == 2); _PrintedLoans.Add(loanPrinted); productObjects.Add(purchaseObj); customerNames.Add(customer); } } } } if (productObjects.Count() > 0) { ProcessingMessage processingForm = new ProcessingMessage("Please wait while we generate report."); try { processingForm.Show(); this.Cursor = Cursors.WaitCursor; //----- Tracy 12/15/2010 List <int> lstTicketNumbers = new List <int>(); List <string> lstRefTypes = new List <string>(); string sErrorCode; string sErrorText; foreach (CustomerProductDataVO o in productObjects) { lstTicketNumbers.Add(o.TicketNumber); lstRefTypes.Add(o.ProductType == "PAWN" ? "1" : "2"); } if (lstTicketNumbers.Count > 0 && !StoreLoans.UpdateTempStatus( lstTicketNumbers, StateStatus.PFIW, CashlinxDesktopSession.Instance.CurrentSiteId.StoreNumber, true, lstRefTypes, out sErrorCode, out sErrorText)) { MessageBox.Show("Error updating PFI Verify. " + sErrorText, "PFI Verification Update", MessageBoxButtons.OK, MessageBoxIcon.Warning); } //------- Tracy 12/15/2010 var context = new PickingSlipHelper().GetPickingSlipReportContext(productObjects, customerNames, true); var reportObject = new ReportObject(); reportObject.ReportTempFile = SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath; reportObject.CreateTemporaryFullName(); context.ReportObject = reportObject; var pickingSlip = new PickingSlip(context); if (!pickingSlip.CreateReport()) { processingForm.Close(); processingForm.Dispose(); this.Cursor = Cursors.Default; MessageBox.Show("Failed to generate report", "Picking Slip", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Dictionary<string, string> eDeviceData = new PrintUtilities().GetPrintDeviceData("pfipickslip"); if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled && GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid) { if (FileLogger.Instance.IsLogInfo) { FileLogger.Instance.logMessage(LogLevel.INFO, "PFI_SelectLoan", "Printing PFI picking slip on {0}", GlobalDataAccessor.Instance.DesktopSession.LaserPrinter); } string strReturnMessage = PrintingUtilities.printDocument(reportObject.ReportTempFileFullName, GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress, GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port, 1); if (!strReturnMessage.Contains("SUCCESS")) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Cannot print picking slip : " + strReturnMessage); } } processingForm.Close(); processingForm.Dispose(); this.Cursor = Cursors.Default; MessageBox.Show("Printing Complete", "Picking Slip", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception exc) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, exc.Message); processingForm.Close(); processingForm.Dispose(); this.Cursor = Cursors.Default; MessageBox.Show(exc.Message); } } //else //{ // continueButton.Enabled = false; //} continueButton.Enabled = true; } catch (Exception exp) { MessageBox.Show("Error in printing. Retry. (" + exp.Message + ")", "PFI Printing"); } Cursor = Cursors.Default; }
public static bool ExecuteVendorPFI ( int ticketNumber, PurchaseVO vendorPurchaseObj, VendorVO vendor, out string sErrorCode, out string sErrorText ) { List <TransferItemVO> _mdseToTransfer = new List <TransferItemVO>(); int pawnItemIdx = 1; sErrorCode = "0"; sErrorText = ""; bool itemsPfid = false; try { //Start transaction block GlobalDataAccessor.Instance.beginTransactionBlock(); //Step 1 Update Gun book if the item has a gun foreach (Item purchaseItem in vendorPurchaseObj.Items) { if (purchaseItem.IsExpenseItem) { pawnItemIdx = pawnItemIdx + purchaseItem.Quantity; continue; } for (int i = 1; i <= purchaseItem.Quantity; i++) { if (!purchaseItem.IsJewelry && purchaseItem.Quantity > 1 && purchaseItem.SerialNumber != null && purchaseItem.SerialNumber.Count > 0) { Item itemCopy = Utilities.CloneObject(purchaseItem); string sItemPrefix; string sDescription; //Get updated mdse description for each serial number Item.RemoveSerialNumberFromDescription(ref itemCopy, out sItemPrefix, out sDescription); purchaseItem.Attributes = itemCopy.Attributes; purchaseItem.TicketDescription = sDescription; } purchaseItem.mDocNumber = ticketNumber; purchaseItem.mItemOrder = i; int qty = purchaseItem.QuickInformation.Quantity < 1 ? 1 : purchaseItem.QuickInformation.Quantity; if (purchaseItem.CaccLevel == 0) { // Call Update_Cacc_Info() MerchandiseProcedures.UpdateCaccInfo(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, 0, purchaseItem.mDocNumber, "7", 1, 0, qty, purchaseItem.ItemAmount * qty, purchaseItem.CategoryCode, ShopDateTime.Instance.ShopDate, out sErrorCode, out sErrorText ); } if (purchaseItem.IsGun) { ProcessTenderProcedures.ExecuteUpdateGunBookRecord( ticketNumber.ToString(), GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, ProductStatus.PFI.ToString(), "", vendor.Name, "", "", vendor.Address1, vendor.City, vendor.State, vendor.ZipCode, vendor.Ffl, "", "", "P", GlobalDataAccessor.Instance.DesktopSession.UserName, ShopDateTime.Instance.ShopDate.ToShortDateString(), ShopDateTime.Instance.ShopTransactionTime, "", purchaseItem.QuickInformation.Caliber, purchaseItem.QuickInformation.Importer, purchaseItem.QuickInformation.SerialNumber, purchaseItem.QuickInformation.Model, purchaseItem.QuickInformation.Manufacturer, purchaseItem.mStore, purchaseItem.mYear, purchaseItem.mDocNumber, purchaseItem.mDocType, pawnItemIdx, 0, vendorPurchaseObj.GunNumbers[i - 1], out sErrorCode, out sErrorText ); } //Step 2 Insert mdse revision record bool mdseRevVal = MerchandiseProcedures.InsertMerchandiseRevision(GlobalDataAccessor.Instance.DesktopSession, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, purchaseItem.mYear, ticketNumber, purchaseItem.mDocType, pawnItemIdx, 0, purchaseItem.mStore, ticketNumber.ToString(), purchaseItem.mDocType, "", 0, purchaseItem.ItemReason == ItemReason.CACC ? "PFC" : "PFI", "", "", GlobalDataAccessor.Instance.DesktopSession.FullUserName, out sErrorCode, out sErrorText ); purchaseItem.Icn = Utilities.IcnGenerator(purchaseItem.mStore, purchaseItem.mYear, ticketNumber, "2", pawnItemIdx, 0); TransferItemVO transferData = new TransferItemVO(); transferData.ICN = purchaseItem.Icn.ToString(); transferData.StoreNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber; transferData.ICNQty = purchaseItem.QuickInformation.Quantity > 0 ? purchaseItem.QuickInformation.Quantity.ToString() : "1"; transferData.CustomerNumber = ""; transferData.TransactionDate = ShopDateTime.Instance.ShopDate; transferData.MdseRecordDate = ShopDateTime.Instance.ShopDate; transferData.MdseRecordTime = ShopDateTime.Instance.ShopTransactionTime; transferData.MdseRecordUser = GlobalDataAccessor.Instance.DesktopSession.UserName; transferData.MdseRecordDesc = ""; transferData.MdseRecordChange = 0; transferData.MdseRecordType = ""; transferData.ClassCode = ""; transferData.AcctNumber = ""; transferData.CreatedBy = GlobalDataAccessor.Instance.DesktopSession.UserName; transferData.GunNumber = vendorPurchaseObj.GunNumbers[i - 1] > 0 ? vendorPurchaseObj.GunNumbers[i - 1].ToString() : null; transferData.GunType = purchaseItem.QuickInformation.GunType; transferData.ItemDescription = purchaseItem.TicketDescription; transferData.ItemCost = purchaseItem.ItemAmount; _mdseToTransfer.Add(transferData); itemsPfid = true; pawnItemIdx++; } } //Step 3 Insert receipt for PFI if (itemsPfid) { ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO(); receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate; receiptDetailsVO.RefDates = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() }; receiptDetailsVO.RefTimes = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString() }; receiptDetailsVO.UserId = GlobalDataAccessor.Instance.DesktopSession.UserName; receiptDetailsVO.RefNumbers = new List <string>() { ticketNumber.ToString() }; receiptDetailsVO.RefTypes = new List <string>() { "2" }; receiptDetailsVO.RefEvents = new List <string>() { "PFI" }; receiptDetailsVO.RefAmounts = new List <string>() { vendorPurchaseObj.Amount.ToString() }; receiptDetailsVO.RefStores = new List <string>() { GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber }; ProcessTenderProcedures.ExecuteInsertReceiptDetails( GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession.UserName, ShopDateTime.Instance.ShopDate.ToShortDateString(), GlobalDataAccessor.Instance.DesktopSession.UserName, ref receiptDetailsVO, out sErrorCode, out sErrorText); } GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.COMMIT); } catch (Exception ex) { GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK); FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while processing PFI " + ex.Message); sErrorCode = "1"; sErrorText = ex.Message; return(false); } //Step 4 Invoke transfer process int transferNumber = 0; var errorMessage = string.Empty; if (_mdseToTransfer.Count > 0 && GlobalDataAccessor.Instance.CurrentSiteId.IsTopsExist) { bool retValue = TransferProcedures.TransferItemsOutOfStore(_mdseToTransfer, out transferNumber, "", out errorMessage, false, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber); if (!retValue) { MessageBox.Show("Error:" + errorMessage); sErrorText = errorMessage; return(false); } foreach (TransferItemVO transfer in _mdseToTransfer) { transfer.TransferNumber = transferNumber; } } if (transferNumber > 0) { try { GlobalDataAccessor.Instance.beginTransactionBlock(); //Step 5 Insert receipt for transfer ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO(); receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate; receiptDetailsVO.RefDates = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() }; receiptDetailsVO.RefTimes = new List <string>() { ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString() }; receiptDetailsVO.UserId = GlobalDataAccessor.Instance.DesktopSession.UserName; receiptDetailsVO.RefNumbers = new List <string>() { ticketNumber.ToString() }; receiptDetailsVO.RefTypes = new List <string>() { "2" }; receiptDetailsVO.RefEvents = new List <string>() { "TO" }; receiptDetailsVO.RefAmounts = new List <string>() { vendorPurchaseObj.Amount.ToString() }; receiptDetailsVO.RefStores = new List <string>() { GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber }; ProcessTenderProcedures.ExecuteInsertReceiptDetails( GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, GlobalDataAccessor.Instance.DesktopSession.UserName, ShopDateTime.Instance.ShopDate.ToShortDateString(), GlobalDataAccessor.Instance.DesktopSession.UserName, ref receiptDetailsVO, out sErrorCode, out sErrorText); GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT); //Step 6 Print transfer report /*TransferOutReport trnsfrRpt = new TransferOutReport(); * trnsfrRpt.MdseTransfer = _mdseToTransfer; */ string logPath = SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration .BaseLogPath; TransferOutReport trnsfrRpt = new TransferOutReport(_mdseToTransfer, ShopDateTime.Instance.ShopDateCurTime, GlobalDataAccessor.Instance.CurrentSiteId.StoreName, Convert.ToString(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber), GlobalDataAccessor.Instance.DesktopSession.UserName, Convert.ToString(transferNumber), logPath, "PFIProc", new ReportObject.TransferReport(), PdfLauncher.Instance); trnsfrRpt.CreateReport(); //TODO: Store report in couch db if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled && GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid) { string laserPrinterIp = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress; int laserPrinterPort = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port; PrintingUtilities.printDocument(trnsfrRpt.getReportWithPath(), laserPrinterIp, laserPrinterPort, 1); } //trnsfrRpt.ShowDialog(); return(true); } catch (Exception ex) { GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK); FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while entering receipt for transfer and printing transfer report " + ex.Message); sErrorCode = "1"; sErrorText = ex.Message; return(false); } } return(true); }
private void BuyReturnItems_Load(object sender, EventArgs e) { Back = false; NavControlBox.Owner = this; labelErrorMessage.Visible = false; currentPurchase = CashlinxDesktopSession.Instance.ActivePurchase; currentCustomer = CashlinxDesktopSession.Instance.ActiveCustomer; restrictedICNList = new List <string>(); selectedICNList = new List <string>(); if (currentPurchase != null) { labelStoreNo.Text = CashlinxDesktopSession.Instance.BuyReturnIcn ? "" : currentPurchase.StoreNumber.ToString(); labelBuyNumber.Text = currentPurchase.TicketNumber.ToString(); if (!string.IsNullOrEmpty(currentPurchase.HoldDesc)) { labelStatus.Text = currentPurchase.LoanStatus.ToString() + "-" + currentPurchase.HoldDesc; } else { labelStatus.Text = currentPurchase.LoanStatus.ToString(); } if (!string.IsNullOrEmpty(currentPurchase.HoldDesc)) { labelErrorMessage.Text = INELEIGIBLEFORRETURNMESSAGE; labelErrorMessage.Visible = true; customTextBoxRetReason.Enabled = false; customButtonContinue.Enabled = false; } //Check if all the items are eligible for return if (CashlinxDesktopSession.Instance.HistorySession.Trigger.Equals("returncustomerbuy", StringComparison.OrdinalIgnoreCase)) { Item otherThanBuyStatus = (from item in currentPurchase.Items where item.ItemStatus != ProductStatus.PUR select item).FirstOrDefault(); if (otherThanBuyStatus != null && otherThanBuyStatus.mDocNumber != 0) { labelErrorMessage.Text = INELEIGIBLEFORRETURNMESSAGE; labelErrorMessage.Visible = true; } } else { Item otherThanPFIStatus = (from item in currentPurchase.Items where item.ItemStatus != ProductStatus.PFI select item).FirstOrDefault(); if (otherThanPFIStatus != null && otherThanPFIStatus.mDocNumber != 0) { labelErrorMessage.Text = INELEIGIBLEFORRETURNMESSAGE; labelErrorMessage.Visible = true; } } if (CashlinxDesktopSession.Instance.HistorySession.Trigger.Equals("returncustomerbuy", StringComparison.OrdinalIgnoreCase)) { custPurchaseReturn = true; if (currentPurchase.CustomerNumber == null || currentPurchase.EntityType == "V") { labelErrorMessage.Text = NOTCUSTOMERPURCHASE; labelErrorMessage.Visible = true; customButtonContinue.Enabled = false; } else { labelCustName.Text = currentCustomer.CustomerName; } } else { labelCustName.Text = GlobalDataAccessor.Instance.DesktopSession.ActiveVendor.Name; } foreach (Item item in currentPurchase.Items) { string tranStatus = item.ItemStatus.ToString(); string holdDesc = item.HoldDesc; if (!Commons.CanBeReturned(tranStatus, holdDesc)) { restrictedICNList.Add(item.Icn); } } if (currentPurchase.Items != null && currentPurchase.Items.Count > 0) { BindingSource _bindingSource1 = new BindingSource { DataSource = currentPurchase.Items }; dataGridViewItems.AutoGenerateColumns = false; this.dataGridViewItems.DataSource = _bindingSource1; this.dataGridViewItems.Columns[0].DataPropertyName = "icn"; this.dataGridViewItems.Columns[1].DataPropertyName = "ticketdescription"; this.dataGridViewItems.Columns[2].DataPropertyName = "itemstatus"; this.dataGridViewItems.Columns[3].DataPropertyName = "itemamount"; this.dataGridViewItems.Columns[4].DataPropertyName = "holddesc"; this.dataGridViewItems.Columns[3].DefaultCellStyle.Format = "c"; this.dataGridViewItems.AutoGenerateColumns = false; } else { MessageBox.Show("Error in processing returns"); FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for purchase " + currentPurchase.TicketNumber + " to return."); NavControlBox.Action = NavBox.NavAction.CANCEL; } if (currentPurchase.Items != null) { if (restrictedICNList.Count > 0 && restrictedICNList.Count == currentPurchase.Items.Count) { customButtonContinue.Enabled = false; } } foreach (DataGridViewRow dgvr in dataGridViewItems.Rows) { if (restrictedICNList.Count > 0) { DataGridViewRow dgvr1 = dgvr; var icn = (from icnItem in restrictedICNList where icnItem == dgvr1.Cells[0].Value.ToString() select icnItem).FirstOrDefault(); if (icn != null) { dgvr1.ReadOnly = true; dgvr1.DefaultCellStyle.BackColor = Color.Gray; } } } if (CashlinxDesktopSession.Instance.BuyReturnIcn) { customButtonAddItem.Enabled = true; } } }
private void VoidPurchaseReturn_Load(object sender, EventArgs e) { labelMessage.Text = ""; if (GlobalDataAccessor.Instance.DesktopSession.HistorySession.Trigger.Equals(Commons.TriggerTypes.VOIDBUYRETURN, StringComparison.OrdinalIgnoreCase)) { voidReturnFlow = true; } if (voidReturnFlow) { labelHeading.Text = "Void Return"; labelTransactionNoHeading.Text = "Return Number"; } maxVoidDays = 0L; if (!new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).GetMaxVoidDays(GlobalDataAccessor.Instance.CurrentSiteId, out maxVoidDays)) { if (FileLogger.Instance.IsLogError) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Cannot retrieve maximum void days. Defaulting to {0}", maxVoidDays); } } currentPurchase = GlobalDataAccessor.Instance.DesktopSession.ActivePurchase; if (currentPurchase != null) { labelDate.Text = currentPurchase.MadeTime.ToString(); labelPurchaseNo.Text = currentPurchase.TicketNumber.ToString(); labelUserID.Text = currentPurchase.CreatedBy.ToString(); labelTotal.Text = currentPurchase.Amount.ToString("c"); if (currentPurchase.DateMade.AddDays(maxVoidDays) < ShopDateTime.Instance.ShopDate) { labelMessage.Text = INVALIDVOIDMESSAGE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } if (currentPurchase.CustomerNumber == null || currentPurchase.EntityType == "V") { labelMessage.Text = NOTCUSTOMERPURCHASE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } if (!voidReturnFlow) { var itemData = (from item in currentPurchase.Items where item.ItemStatus == ProductStatus.RET select item).FirstOrDefault(); if (itemData != null) { labelMessage.Text = RETURNEDPURCHASE; labelMessage.Visible = true; customButtonVoid.Enabled = false; } } if (currentPurchase.Items != null && currentPurchase.Items.Count > 0) { BindingSource _bindingSource1 = new BindingSource { DataSource = currentPurchase.Items }; dataGridViewMdse.AutoGenerateColumns = false; this.dataGridViewMdse.DataSource = _bindingSource1; this.dataGridViewMdse.Columns[0].DataPropertyName = "ticketdescription"; this.dataGridViewMdse.Columns[1].DataPropertyName = "itemamount"; this.dataGridViewMdse.Columns[1].DefaultCellStyle.Format = "c"; this.dataGridViewMdse.AutoGenerateColumns = false; } else { MessageBox.Show("Error in void transaction processing"); FileLogger.Instance.logMessage(LogLevel.ERROR, this, "No items found for purchase " + currentPurchase.TicketNumber + " to void."); Close(); } } }