Exemple #1
0
		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);

		}
Exemple #2
0
		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!"); }
			}
		}
Exemple #3
0
        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);
                        }
                    }
                }
            }

        }