Example #1
0
        /// <summary>
        /// Get Get Item Details
        /// </summary>
        /// <param name="db">Database Context</param>
        /// <param name="saleItem">RegularSale Item List</param>
        /// <returns></returns>
        public static List <ReceiptItemDetails> GetInvoiceDetails(eStoreDbContext db, List <RegularSaleItem> saleItem)
        {
            List <ReceiptItemDetails> itemList = new List <ReceiptItemDetails>();

            foreach (var item in saleItem)
            {
                ReceiptItemDetails rid = new ReceiptItemDetails
                {
                    BasicPrice     = item.BasicAmount.ToString("0.##"),
                    Discount       = item.Discount.ToString("0.##"),
                    MRP            = item.MRP.ToString("0.##"),
                    QTY            = item.Qty.ToString("0.##"),
                    GSTAmount      = (item.TaxAmount / 2).ToString("0.##"),
                    HSN            = "",
                    GSTPercentage  = "",
                    SKUDescription = item.BarCode,
                    Amount         = item.BillAmount.ToString("0.##")
                };

                if (item.HSNCode != null)
                {
                    rid.HSN = item.HSNCode.ToString();
                }
                rid.SKUDescription += "/" + db.ProductItems.Find(item.ProductItemId).ItemDesc;
                rid.GSTPercentage   = (db.SaleTaxTypes.Find(item.SaleTaxTypeId).CompositeRate / 2).ToString("0.##");
                itemList.Add(rid);
            }
            return(itemList);
        }
Example #2
0
        public int Checkout(int shoppingCartId)
        {
            ShoppingCart shoppingCart = _context.ShoppingCarts.Find(shoppingCartId);

            if (shoppingCart != null && shoppingCart.ShoppingItems != null)
            {
                shoppingCart.CheckoutTime = DateTimeOffset.Now;
                Receipt receipt = new Receipt();
                _context.Receipt.Add(receipt);
                _context.SaveChanges();
                decimal total    = 0.0m;
                decimal subTotal = 0.0m;
                foreach (var item in shoppingCart.ShoppingItems)
                {
                    subTotal += item.Qty * item.Product.Price;
                    total    += item.Qty * item.Product.Price * 1.15m;

                    Inventory inventory = _context.Inventories.SingleOrDefault(s => s.ProductId == item.ProductId);
                    if (inventory.Qty >= item.Qty)
                    {
                        inventory.Qty -= item.Qty;
                    }
                    else
                    {
                        //if there is not enough inventory
                    }

                    ReceiptItemDetails receiptItemDetails = new ReceiptItemDetails()
                    {
                        ProductName      = item.Product.Name,
                        ReceiptProductId = item.ProductId,
                        Price            = item.Product.Price,
                        PurchasedQty     = item.Qty,
                        ReceiptId        = receipt.ReceiptId,
                        //Receipt = receipt
                    };
                    receipt.ReceiptItems.Add(receiptItemDetails);
                }
                receipt.SubTotal = subTotal;
                receipt.Total    = total;
                receipt.TaxRate  = 1.15m;
                _context.SaveChanges();
                return(receipt.ReceiptId);   //
            }
            else
            {
                throw new ObjectNotFoundException();
            }
        }