private void ApplyChangeQuantityPriceAmountDetails(int iRow, Data.SalesTransactionItemDetails clsItemDetails, string strReason = "") { if (!string.IsNullOrEmpty(strReason)) clsEvent.AddEventLn(strReason, true); clsEvent.AddEventLn("Updating item #".PadRight(15) + ":" + clsItemDetails.ItemNo + "".PadRight(15) + ":" + clsItemDetails.BarCode + " " + clsItemDetails.ProductCode + " Price".PadRight(15) + ":" + clsItemDetails.Price + " Quantity".PadRight(15) + ":" + clsItemDetails.Quantity + " Amount".PadRight(15) + ":" + clsItemDetails.Amount + ".", true); clsItemDetails = ComputeItemTotal(clsItemDetails); System.Data.DataRow dr = (System.Data.DataRow)ItemDataTable.Rows[iRow]; dr = setCurrentRowItemDetails(dr, clsItemDetails); ComputeSubTotal(); setTotalDetails(); clsItemDetails.TransactionID = Convert.ToInt64(lblTransNo.Tag); //mclsSalesTransactionDetails.SubTotal = mclsSalesTransactionDetails.SubTotal; /*******Added: January 18, 2008*********************** * update purchase amount everytime there a change in * Quantity * Price * Amount *********************************/ clsItemDetails.PurchaseAmount = clsItemDetails.Quantity * clsItemDetails.PurchasePrice; dr["PurchaseAmount"] = clsItemDetails.PurchaseAmount; 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, clsItemDetails); clsSalesTransactions.CommitAndDispose(); // 10Jul2015 : Update the item list mclsSalesTransactionDetails.TransactionItemsList[mclsSalesTransactionDetails.TransactionItemsList.FindIndex(x => x.ItemNo == clsItemDetails.ItemNo)] = clsItemDetails; clsEvent.AddEventLn("Updating item #".PadRight(15) + ":" + clsItemDetails.ItemNo + " : done", true); }
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 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); } } } } }