private void dgItems_CurrentCellChanged(object sender, EventArgs e) { try { if (!mbodgItemRowClick) { int index = dgItems.CurrentRowIndex; try { dgItems.Select(index); } catch { } SetItemDetails(); Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); // ShowMainMenu(03); } } catch { } finally { txtBarCode.Focus(); } }
private void VoidItem() { Data.SalesTransactionItemDetails Details; int iRow = dgItems.CurrentRowIndex; if (iRow >= 0) { if (dgItems[iRow, 8].ToString() != "VOID") { DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.VoidItem); if (loginresult == DialogResult.OK) { if (mclsTerminalDetails.ItemVoidConfirmation) { if (MessageBox.Show("Are you sure you want to void this item?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } Details = getCurrentRowItemDetails(); clsEvent.AddEvent("[" + lblCashier.Text + "] Voiding item no. " + Details.ItemNo + "".PadRight(15) + ":" + Details.Description + "."); try { // override the transaction item status TransactionItemStatus _previousTransactionItemStatus = Details.TransactionItemStatus; Details.TransactionItemStatus = TransactionItemStatus.Void; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsSalesTransactions.VoidItem(Details.TransactionItemsID, mclsSalesTransactionDetails.TransactionDate); clsEvent.AddEventLn("Voiding item #: " + Details.ItemNo + "".PadRight(15) + ":" + Details.Description + ".", true); // Added May 7, 2011 to Cater Reserved and Commit functionality ReservedAndCommitItem(Details, _previousTransactionItemStatus); clsSalesTransactions.CommitAndDispose(); InsertAuditLog(AccessTypes.VoidItem, "Voiding item #: " + Details.ItemNo + "".PadRight(15) + ":" + Details.Description + "." + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); dgItems[iRow, 8] = "VOID"; dgItems[iRow, 9] = "0.00"; dgItems[iRow, 10] = "0.00"; dgItems[iRow, 11] = "0.00"; dgItems[iRow, 13] = "0.00"; dgItems[iRow, 21] = TransactionItemStatus.Void.ToString("d"); SetItemDetails(); clsEvent.AddEventLn("Done!", true); ComputeSubTotal(); setTotalDetails(); try { DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke("VOID-" + Details.ProductCode, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } catch { } if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { PrintItemDelegate PrintItemDel = new PrintItemDelegate(PrintItem); PrintItemDel.BeginInvoke(Details.ItemNo, Details.ProductCode + " - VOID ", Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, Details.DiscountCode, Details.ItemDiscountType, null, null); //PrintItemDel.BeginInvoke(Details.ProductCode + " - VOID ", Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Voiding item." + Details.ItemNo + "".PadRight(15) + ":" + Details.Description); } } } } }
private void AddItem(Data.SalesTransactionItemDetails clsItemDetails) { try { clsItemDetails.ItemNo = Convert.ToString(ItemDataTable.Rows.Count + 1); clsItemDetails.TransactionDate = mclsSalesTransactionDetails.TransactionDate; clsItemDetails.PaxNo = 0; clsItemDetails = ApplyPromo(clsItemDetails); clsItemDetails = ComputeItemTotal(clsItemDetails); // set the grossales, vat, discounts, etc. System.Data.DataRow dr = ItemDataTable.NewRow(); dr = setCurrentRowItemDetails(dr, clsItemDetails); clsItemDetails.TransactionItemsID = AddItemToDB(clsItemDetails); dr["TransactionItemsID"] = clsItemDetails.TransactionItemsID; // Added May 7, 2011 to Cater Reserved and Commit functionality ReservedAndCommitItem(clsItemDetails, clsItemDetails.TransactionItemStatus); try { dgItems.UnSelect(dgItems.CurrentRowIndex); } catch { } ItemDataTable.Rows.Add(dr); mclsSalesTransactionDetails.TransactionItemsList.Add(clsItemDetails); dgItems.CurrentRowIndex = ItemDataTable.Rows.Count; try { dgItems.Select(dgItems.CurrentRowIndex); dgItems.CurrentRowIndex = dgItems.CurrentRowIndex; } catch { } SetItemDetails(); ComputeSubTotal(); setTotalDetails(); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType); clsSalesTransactions.CommitAndDispose(); try { DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(clsItemDetails.ProductCode, clsItemDetails.ProductUnitCode, clsItemDetails.Quantity, clsItemDetails.Price, clsItemDetails.Discount, clsItemDetails.PromoApplied, clsItemDetails.Amount, clsItemDetails.VAT, clsItemDetails.EVAT, null, null); } catch { } if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { PrintItemDelegate PrintItemDel = new PrintItemDelegate(PrintItem); PrintItemDel.BeginInvoke(clsItemDetails.ItemNo, clsItemDetails.ProductCode, clsItemDetails.ProductUnitCode, clsItemDetails.Quantity, clsItemDetails.Price, clsItemDetails.Discount, clsItemDetails.PromoApplied, clsItemDetails.Amount, clsItemDetails.VAT, clsItemDetails.EVAT, clsItemDetails.DiscountCode, clsItemDetails.ItemDiscountType, null, null); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Adding sales item. TRACE: "); throw ex; } }
private void ApplyItemDiscountForAllItem() { if (ItemDataTable.Rows.Count <= 0) return; if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { MessageBox.Show("Sorry you cannot apply a discount to an item if Auto-print is ON.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ApplyItemDiscount); if (loginresult == DialogResult.OK) { //mboIsDiscountAuthorized = true; DiscountTypes TransDiscountType = DiscountTypes.NotApplicable; DiscountWnd discount = new DiscountWnd(); discount.Header = "Apply Discounts on punched items"; discount.BalanceAmount = mclsSalesTransactionDetails.SubTotal; discount.DiscountType = DiscountTypes.Percentage; discount.DiscountAmount = mclsSalesTransactionDetails.TransDiscount; discount.DiscountCode = mclsSalesTransactionDetails.DiscountCode; discount.Remarks = mclsSalesTransactionDetails.DiscountRemarks; discount.IsDiscountEditable = mclsTerminalDetails.IsDiscountEditable; //discount.DisableVATExempt = true; discount.ShowDialog(this); DialogResult result = discount.Result; decimal DiscountAmount = discount.DiscountAmount; string TransDiscountCode = discount.DiscountCode; string TransDiscountRemarks = discount.Remarks; TransDiscountType = discount.DiscountType; discount.Close(); discount.Dispose(); if (result == DialogResult.OK) { if (TransDiscountCode == mclsTerminalDetails.SeniorCitizenDiscountCode) { MessageBox.Show("Sorry you cannot use the Senior Citizen as item discount, Senior Citizen is applied thru transactions.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); return; } else if (mclsSalesTransactionDetails.DiscountCode == mclsTerminalDetails.SeniorCitizenDiscountCode) { MessageBox.Show("Sorry Senior Citizen Discount is already applied in the transaction. Please separate the transaction for items without senior citizen discount.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); return; } Cursor.Current = Cursors.WaitCursor; int iCurrentSelectedRow = dgItems.CurrentRowIndex; for(int iRowCtr=0;iRowCtr<ItemDataTable.Rows.Count;iRowCtr++) { dgItems.Select(iRowCtr); dgItems.CurrentRowIndex = iRowCtr; if (dgItems[iRowCtr, 8].ToString() != "VOID") { if (dgItems[iRowCtr, 8].ToString().IndexOf("RETURN") == -1 && dgItems[iRowCtr, 8].ToString().IndexOf("DEMO") == -1) { try { Data.SalesTransactionItemDetails clsItemDetails; clsItemDetails = getCurrentRowItemDetails(); clsEvent.AddEvent("[" + lblCashier.Text + "] Applying item discount for item. no. [" + clsItemDetails.TransactionItemsID + "]" + clsItemDetails.ProductCode); clsItemDetails.ItemDiscount = DiscountAmount; clsItemDetails.Discount = DiscountAmount; clsItemDetails.ItemDiscountType = TransDiscountType; clsItemDetails.DiscountCode = TransDiscountCode; clsItemDetails.DiscountRemarks = TransDiscountRemarks; clsItemDetails = ComputeItemTotal(clsItemDetails); // set the grossales, vat, discounts, etc. //if (clsItemDetails.Discount >= clsItemDetails.Amount) //{ // MessageBox.Show("Sorry the input discount will yield a less than ZERO amount. Please type another discount.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); // goto Back; //} clsEvent.AddEventLn("discount=" + clsItemDetails.Discount.ToString("#,###.#0")); System.Data.DataRow dr = (System.Data.DataRow)ItemDataTable.Rows[iRowCtr]; dr = setCurrentRowItemDetails(dr, clsItemDetails); ComputeSubTotal(); setTotalDetails(); if (mclsSalesTransactionDetails.DiscountableAmount == 0) { mclsSalesTransactionDetails.TransDiscountType = DiscountTypes.NotApplicable; mclsSalesTransactionDetails.TransDiscount = 0; ComputeSubTotal(); setTotalDetails(); } Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; /*******Added: April 12, 2010*********************** * update purchase amount everytime there a change in * * discount *********************************/ clsItemDetails.PurchaseAmount = clsItemDetails.Quantity * clsItemDetails.PurchasePrice; dr["PurchaseAmount"] = clsItemDetails.PurchaseAmount; clsSalesTransactions.UpdateItem(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType, clsItemDetails); clsSalesTransactions.CommitAndDispose(); // 10Jul2015 : Update the item list mclsSalesTransactionDetails.TransactionItemsList[mclsSalesTransactionDetails.TransactionItemsList.FindIndex(x => x.ItemNo == clsItemDetails.ItemNo)] = clsItemDetails; InsertAuditLog(AccessTypes.Discounts, "Apply item discount for " + clsItemDetails.ProductCode + ". discount=" + clsItemDetails.Discount.ToString("#,###.#0") + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done applying item discount...", true); DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(clsItemDetails.Description, clsItemDetails.ProductUnitCode, clsItemDetails.Quantity, clsItemDetails.Price, clsItemDetails.Discount, clsItemDetails.PromoApplied, clsItemDetails.Amount, clsItemDetails.VAT, clsItemDetails.EVAT, null, null); } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Applying discount for all item."); } Cursor.Current = Cursors.Default; } } dgItems.UnSelect(iRowCtr); } dgItems.Select(iCurrentSelectedRow); dgItems.CurrentRowIndex = iCurrentSelectedRow; } else { clsEvent.AddEventLn("Cancelled!"); } } }
private bool SelectContact(AceSoft.RetailPlus.Data.ContactGroupCategory enumContactGroupCategory) { bool boretValue = true; // Sep 24, 2011 Lemuel E. Aceron // Added order slip wherein all punch items will not change sales and inventory // a customer named ORDER SLIP should be defined in contacts if (lblCustomer.Text.Trim().ToUpper() == Constants.C_RETAILPLUS_ORDER_SLIP_CUSTOMER && mboIsInTransaction && enumContactGroupCategory == AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER) { MessageBox.Show("Sorry you cannot select ORDER SLIP customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto && mboIsInTransaction) { switch (enumContactGroupCategory) { case AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER: MessageBox.Show("Sorry you cannot select a customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; case AceSoft.RetailPlus.Data.ContactGroupCategory.AGENT: MessageBox.Show("Sorry you cannot select an agent when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } return false; } try { switch (enumContactGroupCategory) { case AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER: clsEvent.AddEvent("[" + lblCashier.Text + "] Selecting customer."); if (mclsTerminalDetails.ShowCustomerSelection == false) { clsEvent.AddEventLn("Cancelled! ShowCustomerSelection is OFF, reward is ON."); txtBarCode.Text = Constants.SWIPE_REWARD_CARD; txtBarCode.Focus(); txtBarCode.SelectionStart = txtBarCode.Text.Length + 1; return false; } break; case AceSoft.RetailPlus.Data.ContactGroupCategory.AGENT: clsEvent.AddEvent("[" + lblCashier.Text + "] Selecting agent."); break; } DialogResult result; Data.ContactDetails details; ContactSelectWnd clsContactWnd = new ContactSelectWnd(); clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK; clsContactWnd.SysConfigDetails = mclsSysConfigDetails; clsContactWnd.TerminalDetails = mclsTerminalDetails; clsContactWnd.ContactGroupCategory = enumContactGroupCategory; clsContactWnd.ShowDialog(this); details = clsContactWnd.Details; result = clsContactWnd.Result; clsContactWnd.Close(); clsContactWnd.Dispose(); if (result == DialogResult.OK) { if (details.ContactCode == mclsSysConfigDetails.OutOfStockCustomerCode && mboIsInTransaction) { MessageBox.Show("Sorry you cannot select OUT OF STOCK customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); clsEvent.AddEventLn("Cancelled OUT OF STOCK customer is selected but items are already purchased."); return false; } LoadContact(enumContactGroupCategory, details); // 13Mar2015 : MPC, override the price using the PriceLevel // For PriceLevel1...5 if (mclsSysConfigDetails.EnablePriceLevel) { Cursor.Current = Cursors.WaitCursor; Int32 iOldRow = dgItems.CurrentRowIndex; Data.SalesTransactionItemDetails Details = new Data.SalesTransactionItemDetails(); Data.ProductPackage clsProductPackage = new Data.ProductPackage(mConnection, mTransaction); mConnection = clsProductPackage.Connection; mTransaction = clsProductPackage.Transaction; Data.ProductPackageDetails clsProductPackageDetails = new Data.ProductPackageDetails(); System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource; for (int x = 0; x < dt.Rows.Count; x++) { dgItems.CurrentRowIndex = x; Details = getCurrentRowItemDetails(); dgItems.UnSelect(x); if (Details.TransactionItemStatus == TransactionItemStatus.Valid) { clsProductPackageDetails = clsProductPackage.Details(Details.ProductPackageID); switch (mclsContactDetails.PriceLevel) { case PriceLevel.SRP: Details.Price = clsProductPackageDetails.Price; break; case PriceLevel.One: Details.Price = clsProductPackageDetails.Price1 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price1; break; case PriceLevel.Two: Details.Price = clsProductPackageDetails.Price2 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price2; break; case PriceLevel.Three: Details.Price = clsProductPackageDetails.Price3 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price3; break; case PriceLevel.Four: Details.Price = clsProductPackageDetails.Price4 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price4; break; case PriceLevel.Five: Details.Price = clsProductPackageDetails.Price5 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price5; break; case PriceLevel.WSPrice: Details.Price = clsProductPackageDetails.WSPrice == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.WSPrice; break; default: Details.Price = clsProductPackageDetails.Price; break; } Details = ApplyPromo(Details); ApplyChangeQuantityPriceAmountDetails(x, Details, "Change Price: Change Contact"); } } clsProductPackage.CommitAndDispose(); if (iOldRow >=0 ) { dgItems.CurrentRowIndex = iOldRow; dgItems.Select(iOldRow); Details = getCurrentRowItemDetails(); DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); InsertAuditLog(AccessTypes.ChangePrice, "Change price: change contact : for item " + Details.ProductCode + " to " + Details.Price.ToString("#,##0.#0") + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); mbodgItemRowClick = false; } Cursor.Current = Cursors.Default; } } else { clsEvent.AddEventLn("Cancelled!"); boretValue = false; } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Selecting contact."); boretValue = false; } return boretValue; }
private void ReturnItem() { if (mboIsRefund || mclsTerminalDetails.IsParkingTerminal) return; DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ReturnItem); if (loginresult == DialogResult.OK) { TransactionNoWnd clsTransactionNoWnd = new TransactionNoWnd(); clsTransactionNoWnd.TransactionNoLength = mclsTerminalDetails.TransactionNoLength; clsTransactionNoWnd.TerminalNo = mclsTerminalDetails.TerminalNo; clsTransactionNoWnd.TerminalDetails = mclsTerminalDetails; clsTransactionNoWnd.ShowDialog(this); DialogResult result = clsTransactionNoWnd.Result; string strTransactionNo = clsTransactionNoWnd.TransactionNo; string strTerminalNo = clsTransactionNoWnd.TerminalNo; clsTransactionNoWnd.Close(); clsTransactionNoWnd.Dispose(); if (result == DialogResult.OK) { TransactionReturnItemSelectWnd ItemWnd = new TransactionReturnItemSelectWnd(); ItemWnd.SysConfigDetails = mclsSysConfigDetails; ItemWnd.TransactionNo = strTransactionNo; ItemWnd.TerminalDetails = mclsTerminalDetails; ItemWnd.TransactionTerminalNo = strTerminalNo; ItemWnd.ShowDialog(this); if (ItemWnd.Result == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; if (!mboIsInTransaction) { lblTransDate.Text = DateTime.Now.ToString("MMM. dd, yyyy hh:mm:ss tt"); if (!this.CreateTransaction()) return; } Data.SalesTransactionItemDetails clsItemDetails = ItemWnd.Details; clsItemDetails = ComputeItemTotal(clsItemDetails); // set the grossales, vat, discounts, etc. clsItemDetails.TransactionItemStatus = TransactionItemStatus.Return; System.Data.DataRow dr = ItemDataTable.NewRow(); clsItemDetails.TransactionItemStatus = TransactionItemStatus.Return; clsItemDetails.ItemNo = Convert.ToString(ItemDataTable.Rows.Count + 1); dr = setCurrentRowItemDetails(dr, clsItemDetails); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsItemDetails.TransactionItemsID = AddItemToDB(clsItemDetails); dr["TransactionItemsID"] = clsItemDetails.TransactionItemsID.ToString(); // Sep 14, 2013: Removed if return. Return should have no effect in Reserved and Commit // Added May 7, 2011 to Cater Reserved and Commit functionality // ReservedAndCommitItem(clsItemDetails, clsItemDetails.TransactionItemStatus); ItemDataTable.Rows.Add(dr); mclsSalesTransactionDetails.TransactionItemsList.Add(clsItemDetails); dgItems.CurrentRowIndex = ItemDataTable.Rows.Count; dgItems.Select(dgItems.CurrentRowIndex); SetItemDetails(); ComputeSubTotal(); setTotalDetails(); clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType); clsSalesTransactions.CommitAndDispose(); InsertAuditLog(AccessTypes.RefundTransaction, "Return Item " + clsItemDetails.ProductCode + "." + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); try { DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke("RET-" + clsItemDetails.ProductCode, clsItemDetails.ProductUnitCode, clsItemDetails.Quantity, clsItemDetails.Price, clsItemDetails.Discount, clsItemDetails.PromoApplied, clsItemDetails.Amount, clsItemDetails.VAT, clsItemDetails.EVAT, null, null); } catch { } if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { PrintItemDelegate PrintItemDel = new PrintItemDelegate(PrintItem); string strProductCode = clsItemDetails.ProductCode; if (!string.IsNullOrEmpty(clsItemDetails.MatrixDescription)) strProductCode += "-" + clsItemDetails.MatrixDescription; PrintItemDel.BeginInvoke(clsItemDetails.ItemNo, strProductCode + " - RET ", clsItemDetails.ProductUnitCode, clsItemDetails.Quantity, clsItemDetails.Price, clsItemDetails.Discount, clsItemDetails.PromoApplied, clsItemDetails.Amount, clsItemDetails.VAT, clsItemDetails.EVAT, clsItemDetails.DiscountCode, clsItemDetails.ItemDiscountType, null, null); } Cursor.Current = Cursors.Default; } ItemWnd.Close(); ItemWnd.Dispose(); } } }
private void setItemAsDemo() { Data.SalesTransactionItemDetails Details; int iRow = dgItems.CurrentRowIndex; if (iRow >= 0) { if (dgItems[iRow, 8].ToString() != "VOID") { if (dgItems[iRow, 8].ToString().IndexOf("RETURN") == -1 && dgItems[iRow, 8].ToString().IndexOf("DEMO") == -1) { DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.SetItemAsDemo); if (loginresult == DialogResult.OK) { if (MessageBox.Show("Are you sure you want to set this item DEMO?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } Details = getCurrentRowItemDetails(); clsEvent.AddEvent("[" + lblCashier.Text + "] Setting demo item no. " + Details.ItemNo + "".PadRight(15) + ":" + Details.Description + "."); try { // override the transaction item status TransactionItemStatus _previousTransactionItemStatus = Details.TransactionItemStatus; Details.TransactionItemStatus = TransactionItemStatus.Demo; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsSalesTransactions.setItemAsDemo(Details.TransactionItemsID, mclsSalesTransactionDetails.TransactionDate); clsEvent.AddEventLn("Setting demo item #: " + Details.ItemNo + "".PadRight(15) + ":" + Details.Description + ".", true); // 21May2015 :Shouldn't have an effect in the inventory. // it's already punched //ReservedAndCommitItem(Details, _previousTransactionItemStatus); clsSalesTransactions.CommitAndDispose(); InsertAuditLog(AccessTypes.VoidItem, "Voiding item #: " + Details.ItemNo + "".PadRight(15) + ":" + Details.Description + "." + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); dgItems[iRow, 8] = Details.Quantity.ToString("#,##0.##") + " - DEMO"; dgItems[iRow, 9] = "0.00"; dgItems[iRow, 10] = "0.00"; dgItems[iRow, 11] = "0.00"; dgItems[iRow, 13] = "0.00"; dgItems[iRow, 14] = "0.00"; dgItems[iRow, 15] = "0.00"; dgItems[iRow, 16] = "0.00"; dgItems[iRow, 21] = TransactionItemStatus.Demo.ToString("d"); dgItems[iRow, 31] = "0.00"; //PromoApplied dgItems[iRow, 32] = "0.00"; //PurchasePrice dgItems[iRow, 33] = "0.00"; //PurchaseAmount dgItems[iRow, 43] = "0.00"; //PercentageCommision dgItems[iRow, 44] = "0.00"; //Commision dgItems[iRow, 45] = "0.00"; //RewardPoints SetItemDetails(); clsEvent.AddEventLn("Done!", true); ComputeSubTotal(); setTotalDetails(); try { DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke("DEMO-" + Details.ProductCode, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } catch { } if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { PrintItemDelegate PrintItemDel = new PrintItemDelegate(PrintItem); PrintItemDel.BeginInvoke(Details.ItemNo, Details.ProductCode + " - DEMO ", Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, Details.DiscountCode, Details.ItemDiscountType, null, null); //PrintItemDel.BeginInvoke(Details.ProductCode + " - VOID ", Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } } catch (Exception ex) { InsertErrorLogToFile(ex, "ERROR!!! Setting demo item." + Details.ItemNo + "".PadRight(15) + ":" + Details.Description); } } } } } }
private void ChangeQuantity() { int iOldRow = dgItems.CurrentRowIndex; int iRow = dgItems.CurrentRowIndex; if (iRow >= 0) { if (dgItems[iRow, 8].ToString() != "VOID") { if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { MessageBox.Show("Sorry you cannot change quantity if Auto-print is ON.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ChangeQuantity); if (loginresult == DialogResult.OK) { Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); decimal oldQuantity = Details.Quantity; ChangeQuantityWnd QtyWnd = new ChangeQuantityWnd(); QtyWnd.Details = Details; QtyWnd.TerminalDetails = mclsTerminalDetails; QtyWnd.ShowDialog(this); DialogResult result = QtyWnd.Result; Details = QtyWnd.Details; QtyWnd.Close(); QtyWnd.Dispose(); if (result == DialogResult.OK && oldQuantity != Details.Quantity) { Data.Products clsProduct = new Data.Products(mConnection, mTransaction); mConnection = clsProduct.Connection; mTransaction = clsProduct.Transaction; if (mboIsRefund == false) { if (lblCustomer.Text.Trim().ToUpper() != Constants.C_RETAILPLUS_ORDER_SLIP_CUSTOMER) { if (Details.TransactionItemStatus != TransactionItemStatus.Return) { Data.ProductDetails det = clsProduct.Details(Details.ProductID, Details.VariationsMatrixID, mclsTerminalDetails.BranchID); decimal decProductCurrentQuantity = det.Quantity - det.ReservedQuantity + oldQuantity; // 04Sep2014 : Include exception for CreditPayment if (decProductCurrentQuantity < Details.Quantity && mclsTerminalDetails.ShowItemMoreThanZeroQty && Details.BarCode != Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE && Details.BarCode != Data.Products.DEFAULT_ADVANTAGE_CARD_MEMBERSHIP_FEE_BARCODE && Details.BarCode != Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE && Details.BarCode != Data.Products.DEFAULT_ADVANTAGE_CARD_REPLACEMENT_FEE_BARCODE && Details.BarCode != Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE && Details.BarCode != Data.Products.DEFAULT_CREDIT_CARD_RENEWAL_FEE_BARCODE && Details.BarCode != Data.Products.DEFAULT_SUPER_CARD_MEMBERSHIP_FEE_BARCODE && Details.BarCode != Data.Products.DEFAULT_SUPER_CARD_RENEWAL_FEE_BARCODE && Details.BarCode != Data.Products.DEFAULT_SUPER_CARD_REPLACEMENT_FEE_BARCODE) { clsProduct.CommitAndDispose(); MessageBox.Show("Sorry the quantity you entered is greater than the current stock. " + Environment.NewLine + "Current Stock: " + decProductCurrentQuantity.ToString("#,##0.#0"), "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } } if (!mboIsRefund) { if (Details.TransactionItemStatus != TransactionItemStatus.Return) { Data.ProductUnit clsProductUnit = new Data.ProductUnit(mConnection, mTransaction); mConnection = clsProductUnit.Connection; mTransaction = clsProductUnit.Transaction; decimal decNewQuantity = clsProductUnit.GetBaseUnitValue(Details.ProductID, Details.ProductUnitID, oldQuantity); clsProduct.SubtractReservedQuantity(mclsTerminalDetails.BranchID, Details.ProductID, Details.VariationsMatrixID, decNewQuantity, Data.Products.getPRODUCT_INVENTORY_MOVEMENT_VALUE(Data.PRODUCT_INVENTORY_MOVEMENT.DEDUCT_QTY_RESERVE_AND_COMMIT_CHANGE_QTY), DateTime.Now, mclsSalesTransactionDetails.TransactionNo, mclsSalesTransactionDetails.CashierName); } } mbodgItemRowClick = true; if (mboIsRefund) ApplyChangeQuantityPriceAmountDetails(iRow, Details, "Change Quantity"); else { Details = ApplyPromo(Details); ApplyChangeQuantityPriceAmountDetails(iRow, Details, "Change Quantity"); System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource; for (int x = iRow + 1; x < dt.Rows.Count; x++) { dgItems.CurrentRowIndex = x; Details = getCurrentRowItemDetails(); System.Data.DataRow dr = dt.Rows[x]; if (dr["Quantity"].ToString() != "VOID" && dr["Quantity"].ToString().IndexOf("RETURN") == -1 && dr["Quantity"].ToString().IndexOf("DEMO") == -1 && dr["ProductID"].ToString() == Details.ProductID.ToString()) { Details = ApplyPromo(Details); ApplyChangeQuantityPriceAmountDetails(x, Details, "Change Quantity"); } } if (iOldRow >= 0) { dgItems.CurrentRowIndex = iOldRow; dgItems.Select(iOldRow); } } Details = getCurrentRowItemDetails(); // Added May 7, 2011 to Cater Reserved and Commit functionality // Details.Quantity = -oldQuantity + Details.Quantity; // Jul 26, 2011 Change the AddQuantity and SubtractQuantity ReservedAndCommitItem(Details, Details.TransactionItemStatus); clsProduct.CommitAndDispose(); mbodgItemRowClick = false; DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } } } } }
private void ChangeAmount() { int iOldRow = dgItems.CurrentRowIndex; int iRow = dgItems.CurrentRowIndex; if (iRow >= 0) { if (dgItems[iRow, 8].ToString() != "VOID" && dgItems[iRow, 8].ToString().IndexOf("RETURN") == -1 && dgItems[iRow, 8].ToString().IndexOf("DEMO") == -1) { if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { MessageBox.Show("Sorry you cannot change price if Auto-print is ON.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ChangePrice); if (loginresult == DialogResult.OK) { mbodgItemRowClick = true; Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); decimal oldAmount = Details.Amount; ChangeAmountWnd clsChangeAmountWnd = new ChangeAmountWnd(); clsChangeAmountWnd.Details = Details; clsChangeAmountWnd.TerminalDetails = mclsTerminalDetails; clsChangeAmountWnd.ShowDialog(this); DialogResult result = clsChangeAmountWnd.Result; Details = clsChangeAmountWnd.Details; clsChangeAmountWnd.Close(); clsChangeAmountWnd.Dispose(); if (result == DialogResult.OK && oldAmount != Details.Amount) { Cursor.Current = Cursors.WaitCursor; if (mboIsRefund) ApplyChangeQuantityPriceAmountDetails(iRow, Details, "Change Amount"); else { Details = ApplyPromo(Details); ApplyChangeQuantityPriceAmountDetails(iRow, Details, "Change Amount"); System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource; for (int x = iRow + 1; x < dt.Rows.Count; x++) { dgItems.CurrentRowIndex = x; Details = getCurrentRowItemDetails(); System.Data.DataRow dr = dt.Rows[x]; if (dr["Quantity"].ToString() != "VOID" && dr["Quantity"].ToString().IndexOf("RETURN") == -1 && dr["Quantity"].ToString().IndexOf("DEMO") == -1 && dr["ProductID"].ToString() == Details.ProductID.ToString()) { Details = ApplyPromo(Details); ApplyChangeQuantityPriceAmountDetails(x, Details, "Change Amount"); } } if (iOldRow >= 0) { dgItems.CurrentRowIndex = iOldRow; dgItems.Select(iOldRow); } } Details = getCurrentRowItemDetails(); DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); InsertAuditLog(AccessTypes.ChangePrice, "Change amount for item " + Details.ProductCode + " to " + Details.Amount.ToString("#,##0.#0") + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); mbodgItemRowClick = false; Cursor.Current = Cursors.Default; } } } } }
private void ChangeProductCode() { int iOldRow = dgItems.CurrentRowIndex; int iRow = dgItems.CurrentRowIndex; if (iRow >= 0) { if (dgItems[iRow, 8].ToString() != "VOID") { if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { MessageBox.Show("Sorry you cannot change quantity if Auto-print is ON.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.ChangeQuantity); if (loginresult == DialogResult.OK) { Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); string oldproductCode = Details.ProductCode; ChangeProductCodeWnd ProdCodeWnd = new ChangeProductCodeWnd(); ProdCodeWnd.Details = Details; ProdCodeWnd.TerminalDetails = mclsTerminalDetails; ProdCodeWnd.ShowDialog(this); DialogResult result = ProdCodeWnd.Result; Details = ProdCodeWnd.Details; ProdCodeWnd.Close(); ProdCodeWnd.Dispose(); if (result == DialogResult.OK && oldproductCode != Details.ProductCode) { Data.Products clsProduct = new Data.Products(mConnection, mTransaction); mConnection = clsProduct.Connection; mTransaction = clsProduct.Transaction; mbodgItemRowClick = true; clsEvent.AddEventLn("Updating item #".PadRight(15) + ":" + Details.ItemNo + "".PadRight(15) + " productcode from:" + oldproductCode + " to " + Details.ProductCode, true); System.Data.DataRow dr = (System.Data.DataRow)ItemDataTable.Rows[iRow]; dr = setCurrentRowItemDetails(dr, Details); ComputeSubTotal(); setTotalDetails(); Details.TransactionID = Convert.ToInt64(lblTransNo.Tag); Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; clsSalesTransactions.UpdateItem(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType, Details); clsSalesTransactions.CommitAndDispose(); // 10Jul2015 : Update the item list mclsSalesTransactionDetails.TransactionItemsList[mclsSalesTransactionDetails.TransactionItemsList.FindIndex(x => x.ItemNo == Details.ItemNo)] = Details; clsEvent.AddEventLn("Updating item #".PadRight(15) + ":" + Details.ItemNo + " : done", true); clsProduct.CommitAndDispose(); mbodgItemRowClick = false; DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } } } } }
private void MoveItemDown() { if (dgItems.CurrentRowIndex + 1 < ItemDataTable.Rows.Count && dgItems.CurrentRowIndex + 1 != ItemDataTable.Rows.Count) { int oldindex = dgItems.CurrentRowIndex; dgItems.CurrentRowIndex += 1; try { dgItems.UnSelect(0); } catch { } dgItems.UnSelect(oldindex); dgItems.Select(dgItems.CurrentRowIndex); SetItemDetails(); Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } }
private void SelectContact(AceSoft.RetailPlus.Data.ContactGroupCategory enumContactGroupCategory) { // Sep 24, 2011 Lemuel E. Aceron // Added order slip wherein all punch items will not change sales and inventory // a customer named ORDER SLIP should be defined in contacts if (lblCustomer.Text.Trim().ToUpper() == Constants.C_RETAILPLUS_ORDER_SLIP_CUSTOMER && mboIsInTransaction && enumContactGroupCategory == AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER) { MessageBox.Show("Sorry you cannot select ORDER SLIP customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto && mboIsInTransaction) { switch (enumContactGroupCategory) { case AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER: MessageBox.Show("Sorry you cannot select a customer when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; case AceSoft.RetailPlus.Data.ContactGroupCategory.AGENT: MessageBox.Show("Sorry you cannot select an agent when an item is already purchased.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } return; } try { switch (enumContactGroupCategory) { case AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER: clsEvent.AddEvent("[" + lblCashier.Text + "] Selecting customer."); if (mclsTerminalDetails.ShowCustomerSelection == false) { clsEvent.AddEventLn("Cancelled! ShowCustomerSelection is OFF, reward is ON."); txtBarCode.Text = Constants.SWIPE_REWARD_CARD; txtBarCode.Focus(); txtBarCode.SelectionStart = txtBarCode.Text.Length + 1; return; } break; case AceSoft.RetailPlus.Data.ContactGroupCategory.AGENT: clsEvent.AddEvent("[" + lblCashier.Text + "] Selecting agent."); break; } DialogResult result; Data.ContactDetails details; TableSelectWnd clsTableSelectWnd = new TableSelectWnd(); clsTableSelectWnd.TerminalDetails = mclsTerminalDetails; clsTableSelectWnd.ContactGroupCategory = enumContactGroupCategory; clsTableSelectWnd.ShowAvailableTableOnly = mboIsInTransaction; clsTableSelectWnd.ShowDialog(this); details = clsTableSelectWnd.Details; result = clsTableSelectWnd.Result; clsTableSelectWnd.Close(); clsTableSelectWnd.Dispose(); if (result == DialogResult.OK) { // Nov 18, 2011 : Lemu - auto suspend if already doing a transaction if (mboIsInTransaction) { if (mclsSalesTransactionDetails.CustomerID == Constants.C_RETAILPLUS_CUSTOMERID && mclsSalesTransactionDetails.CustomerID != details.ContactID) { Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction); mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction; clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate); clsContacts.CommitAndDispose(); LoadContact(ContactGroupCategory.CUSTOMER, details); return; } else if (mclsSalesTransactionDetails.CustomerID == details.ContactID) { return; } else if (mclsSalesTransactionDetails.CustomerID != details.ContactID) { if (MessageBox.Show("Would you like to move from table: " + mclsSalesTransactionDetails.CustomerDetails.ContactCode + " to table: " + details.ContactCode + "." + Environment.NewLine + "Please click [Yes] to move, [Cancel] to create new transaction in the selected table.", "RetailPlus", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK) { Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction); mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction; clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate); clsContacts.CommitAndDispose(); LoadContact(ContactGroupCategory.CUSTOMER, details); return; } else { this.SuspendTransaction(false); } } } else { Data.Contacts clsContacts = new Data.Contacts(mConnection, mTransaction); mConnection = clsContacts.Connection; mTransaction = clsContacts.Transaction; clsContacts.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE); clsContacts.UpdateLastCheckInDate(details.ContactID, mclsSalesTransactionDetails.TransactionDate); clsContacts.CommitAndDispose(); } Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; string stTransactionNo = clsSalesTransactions.getSuspendedTransactionNo(details.ContactID, mclsTerminalDetails.TerminalNo, mclsTerminalDetails.BranchID); if (stTransactionNo != string.Empty) { LoadTransaction(stTransactionNo, mclsTerminalDetails.TerminalNo); } else { this.LoadOptions(); LoadContact(ContactGroupCategory.CUSTOMER, details); // 13Mar2015 : MPC, override the price using the PriceLevel // For PriceLevel1...5 if (mclsSysConfigDetails.EnablePriceLevel) { Cursor.Current = Cursors.WaitCursor; Int32 iOldRow = dgItems.CurrentRowIndex; Data.SalesTransactionItemDetails Details = new Data.SalesTransactionItemDetails(); Data.ProductPackage clsProductPackage = new Data.ProductPackage(mConnection, mTransaction); mConnection = clsProductPackage.Connection; mTransaction = clsProductPackage.Transaction; Data.ProductPackageDetails clsProductPackageDetails = new Data.ProductPackageDetails(); System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource; for (int x = 0; x < dt.Rows.Count; x++) { dgItems.CurrentRowIndex = x; Details = getCurrentRowItemDetails(); dgItems.UnSelect(x); if (Details.TransactionItemStatus == TransactionItemStatus.Valid) { clsProductPackageDetails = clsProductPackage.Details(Details.ProductPackageID); switch (mclsContactDetails.PriceLevel) { case PriceLevel.SRP: Details.Price = clsProductPackageDetails.Price; break; case PriceLevel.One: Details.Price = clsProductPackageDetails.Price1 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price1; break; case PriceLevel.Two: Details.Price = clsProductPackageDetails.Price2 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price2; break; case PriceLevel.Three: Details.Price = clsProductPackageDetails.Price3 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price3; break; case PriceLevel.Four: Details.Price = clsProductPackageDetails.Price4 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price4; break; case PriceLevel.Five: Details.Price = clsProductPackageDetails.Price5 == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.Price5; break; case PriceLevel.WSPrice: Details.Price = clsProductPackageDetails.WSPrice == 0 ? clsProductPackageDetails.Price : clsProductPackageDetails.WSPrice; break; default: Details.Price = clsProductPackageDetails.Price; break; } Details = ApplyPromo(Details); ApplyChangeQuantityPriceAmountDetails(x, Details, "Change Price: Change Contact"); } } clsProductPackage.CommitAndDispose(); if (iOldRow >= 0) { dgItems.CurrentRowIndex = iOldRow; dgItems.Select(iOldRow); Details = getCurrentRowItemDetails(); DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); InsertAuditLog(AccessTypes.ChangePrice, "Change price: change contact : for item " + Details.ProductCode + " to " + Details.Price.ToString("#,##0.#0") + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); mbodgItemRowClick = false; } Cursor.Current = Cursors.Default; } } clsSalesTransactions.CommitAndDispose(); } else { clsEvent.AddEventLn("Cancelled!"); } } catch (Exception ex) { clsEvent.AddErrorEventLn(ex); } }
private void ChangePaxNo() { int iOldRow = dgItems.CurrentRowIndex; int iRow = dgItems.CurrentRowIndex; if (iRow >= 0) { if (dgItems[iRow, 8].ToString() != "VOID" && dgItems[iRow, 8].ToString().IndexOf("RETURN") == -1 && dgItems[iRow, 8].ToString().IndexOf("DEMO") == -1) { if (mclsTerminalDetails.AutoPrint == PrintingPreference.Auto) { MessageBox.Show("Sorry you cannot change pax no if Auto-print is ON.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int iMaxPaxNo = 1; try { iMaxPaxNo = int.Parse(lblOrders.Tag.ToString()); } catch { } if (iMaxPaxNo == 1) return; Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); Cursor.Current = Cursors.WaitCursor; if (iMaxPaxNo >= Details.PaxNo + 1) { Details.PaxNo += 1; } else { Details.PaxNo = 1; } Data.SalesTransactionItems clsSalesTransactionItems = new Data.SalesTransactionItems(); clsSalesTransactionItems.UpdatePaxNo(Details.TransactionItemsID, mclsSalesTransactionDetails.TransactionDate, Details.PaxNo); clsSalesTransactionItems.CommitAndDispose(); System.Data.DataRow dr = (System.Data.DataRow)ItemDataTable.Rows[iRow]; dr["PaxNo"] = Details.PaxNo; DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); InsertAuditLog(AccessTypes.None, "Change pax no for item " + Details.ProductCode + " to " + Details.Amount.ToString("#,##0.#0")); Cursor.Current = Cursors.Default; } } }
private void dgItems_CurrentCellChanged(object sender, EventArgs e) { try { if (mbodgItemRowClick) { int iRow = dgItems.CurrentRowIndex; DataGridCell dgCell = dgItems.CurrentCell; if (dgCell.ColumnNumber == 1) this.VoidItem(); if (dgCell.ColumnNumber == 5) this.ApplyItemDiscount(); if (dgCell.ColumnNumber == 8) this.ChangeQuantity(); if (dgCell.ColumnNumber == 9) this.ChangePrice(); if (dgCell.ColumnNumber == 13) this.ChangeItemRemarks(); if (dgCell.ColumnNumber == 46) this.ChangePaxNo(); try { dgItems.Select(iRow); } catch { } Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails(); DisplayItemToTurretDelegate DisplayItemToTurretDel = new DisplayItemToTurretDelegate(DisplayItemToTurret); DisplayItemToTurretDel.BeginInvoke(Details.Description, Details.ProductUnitCode, Details.Quantity, Details.Price, Details.Discount, Details.PromoApplied, Details.Amount, Details.VAT, Details.EVAT, null, null); } } catch { } finally { txtBarCode.Focus(); } }