public IActionResult Index(PurchaseProductVM purchaseProduct) { try { #region Pushing into Purchase Product PurchaseProduct purchase = new PurchaseProduct() { InvoiceNumber = purchaseProduct.InvoiceNumber, SupplierId = purchaseProduct.SupplierId, SubTotal = purchaseProduct.SubTotal, GrandTotal = purchaseProduct.GrandTotal, Discount = purchaseProduct.Discount, Dues = purchaseProduct.Dues, PaidAmount = purchaseProduct.PaidAmount, PaymentMode = purchaseProduct.PaymentMode, }; context.PurchaseProduct.Add(purchase); context.Save(); #endregion #region Pushing into Purchase Product Detail foreach (var item in purchaseProduct.PurchaseProductDetails) { PurchaseProductDetail purchaseProductDetail = new PurchaseProductDetail() { PurchaseProductId = purchase.Id, InvoiceNumber = item.InvoiceNumber, ProductId = item.ProductId, Quantity = item.Quantity, UnitPrice = item.UnitPrice, VatAndTaxId = item.VatAndTaxId, BasePrice = item.BasePrice, SellPrice = item.SellPrice, }; context.PurchaseProductDetail.Add(purchaseProductDetail); context.Save(); UpdateInventory(item.ProductId, item.Quantity, item.SellPrice); } #endregion return(Json(true)); } catch (Exception ex) { return(Json(ex.Message)); throw ex; } }
public override List <PurchaseProductDetail> BillingDetails(string customerChoice, int productID, int quantity, string customerName) { foreach (ProductDetail productsAvailable in details) { if (productID == productsAvailable.productID) { if (quantity <= productsAvailable.quantity) { PurchaseProductDetail purchased = new PurchaseProductDetail(); purchased.productID = productsAvailable.productID; purchased.productName = productsAvailable.productName; purchased.price = Convert.ToInt32((productsAvailable.price * quantity)); purchased.quantity = quantity; purchased.Customer_Name = customerName; productsAvailable.quantity -= quantity; if (purchasedProducts.Count == 0) { purchasedProducts.Add(purchased); break; } if (purchasedProducts.Count > 0) { foreach (PurchaseProductDetail quantityAddition in purchasedProducts) { if (quantityAddition.productID == productID) { quantityAddition.quantity += quantity; quantityAddition.price = Convert.ToInt32((purchased.price + quantityAddition.price)); break; } else { purchasedProducts.Add(purchased); break; } } } } } } return(purchasedProducts); }
public List <PurchaseProductDetail> DeletingProducts(int productID) { bool isQuantityAdded = false; bool isProductAdded = false; PurchaseProductDetail productsRemoving = null; ProductDetail addingProductsAgain = new ProductDetail(); foreach (PurchaseProductDetail deletingProducts in purchasedProducts) { if (productID.Equals(deletingProducts.productID)) { productsRemoving = deletingProducts; foreach (ProductDetail addProduct in details) { if (addProduct.productID == productID) { addProduct.quantity += deletingProducts.quantity; isQuantityAdded = true; break; } else { addingProductsAgain.productID = deletingProducts.productID; addingProductsAgain.productName = deletingProducts.productName; addingProductsAgain.price = deletingProducts.price; addingProductsAgain.quantity = deletingProducts.quantity; removingUnAvailableProducts.Remove(addingProductsAgain); isProductAdded = true; } } } } if (isQuantityAdded) { purchasedProducts.Remove(productsRemoving); } if (isProductAdded) { details.Add(addingProductsAgain); } return(purchasedProducts); }
public List <PurchaseProductDetail> billForCurrentCustomer(List <PurchaseProductDetail> productsBought, List <ProductDetail> balanceProduct, List <ProductDetail> removeUnavailableProducts) { foreach (PurchaseProductDetail billedProducts in productsBought) { if (productsBought.Count > 2 && productsBought.Count <= 5) { totalBillAmount += billedProducts.price; } if (productsBought.Count > 5) { totalBillAmount += billedProducts.price; } if (productsBought.Count <= 2) { totalBillAmount += billedProducts.price; } } if (productsBought.Count <= 2) { foreach (PurchaseProductDetail billedProducts in productsBought) { billedProducts.Total_Bill_Amount = Convert.ToInt32(totalBillAmount); billedProducts.Discount_Percentage = 0.ToString(); billedProducts.Discounted_Amount = Convert.ToInt32(discountedPrice); billedProducts.Discounted_Bill = Convert.ToInt32(totalBillAmount - discountedPrice); } } if (productsBought.Count > 2 && productsBought.Count <= 5) { discountedPrice = totalBillAmount * 10 / 100; foreach (PurchaseProductDetail billedProducts in productsBought) { billedProducts.Total_Bill_Amount = Convert.ToInt32(totalBillAmount); billedProducts.Discount_Percentage = 10.ToString(); billedProducts.Discounted_Amount = Convert.ToInt32(discountedPrice); billedProducts.Discounted_Bill = Convert.ToInt32(totalBillAmount - discountedPrice); } } if (productsBought.Count > 5) { discountedPrice = totalBillAmount * 30 / 100; foreach (PurchaseProductDetail billedProducts in productsBought) { billedProducts.Total_Bill_Amount = Convert.ToInt32(totalBillAmount); billedProducts.Discount_Percentage = 30.ToString(); billedProducts.Discounted_Amount = Convert.ToInt32(discountedPrice); billedProducts.Discounted_Bill = Convert.ToInt32(totalBillAmount - discountedPrice); } } DataAccessForBillingApplication.DataHandling purchaseDetailUpdate = new DataAccessForBillingApplication.DataHandling(); if (productsBought.Count == 0 || productsBought.Count > 0) { PurchaseProductDetail updateAboutPurchase = new PurchaseProductDetail(); foreach (PurchaseProductDetail previousPurchase in productsBought) { updateAboutPurchase.Customer_Name = previousPurchase.Customer_Name; updateAboutPurchase.productID = previousPurchase.productID; updateAboutPurchase.productName = previousPurchase.productName; updateAboutPurchase.price = previousPurchase.price; updateAboutPurchase.quantity = previousPurchase.quantity; updateAboutPurchase.Total_Bill_Amount = previousPurchase.Total_Bill_Amount; updateAboutPurchase.Discount_Percentage = previousPurchase.Discount_Percentage; updateAboutPurchase.Discounted_Amount = previousPurchase.Discounted_Amount; updateAboutPurchase.Discounted_Bill = previousPurchase.Discounted_Bill; purchaseDetailUpdate.productPurchaseDetails(updateAboutPurchase); } } if (removeUnavailableProducts.Count > 0) { foreach (ProductDetail ProductToBeRemoved in removeUnavailableProducts) { ProductDetail productsNotAvailable = new ProductDetail(); productsNotAvailable.productID = ProductToBeRemoved.productID; productsNotAvailable.productName = ProductToBeRemoved.productName; productsNotAvailable.price = ProductToBeRemoved.price; productsNotAvailable.quantity = ProductToBeRemoved.quantity; purchaseDetailUpdate.ProductRemoving(productsNotAvailable); } } if (balanceProduct.Count > 0) { ProductDetail productsInStoreAfterPurchase = new ProductDetail(); foreach (ProductDetail balance in balanceProduct) { productsInStoreAfterPurchase.productID = balance.productID; productsInStoreAfterPurchase.productName = balance.productName; productsInStoreAfterPurchase.price = balance.price; productsInStoreAfterPurchase.quantity = balance.quantity; purchaseDetailUpdate.RemainingProductsAvailable(productsInStoreAfterPurchase); } } return(productsBought); }