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);
        }
Exemplo n.º 4
0
        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);
        }