public ActionResult GetCurrentItem(int id) { BillingViewModel mdl = new BillingViewModel(); ICollection <InvoiceItem> InvoiceItems = db.InvoiceItems.Where(x => x.invoiceId == id).ToList(); List <InvoiceItemWithPrice> InvoiceItemWithPrice = new List <InvoiceItemWithPrice>(); foreach (InvoiceItem i in InvoiceItems) { InvoiceItemWithPrice item = new InvoiceItemWithPrice(); item.InvoiceItem = i; //item.InvoiceItem.Product.name = db.Products.Where(x => x.pid == i.pid).Select(x => x.name).First(); //item.InvoiceItem.Inventory.batchNo = db.Inventories.Where(x => x.iid == i.iid).Select(x => x.batchNo).First(); item.mrp = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.mrp).First(); item.vat = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.vat).First(); item.discount = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.discount).First(); decimal rate = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.rate).First(); decimal afterVat = (decimal)rate + (((item.vat / 100)) * rate); //decimal afterDiscount= (decimal)(afterVat - (((item.vat / 100)) * afterVat))*(decimal)(item.InvoiceItem.quantity-item.InvoiceItem.free); decimal afterDiscount = (decimal)(afterVat - ((rate) * (item.discount / 100))); //decimal quantity=(decimal) (item.InvoiceItem.quantity - item.InvoiceItem.free); //item.price = (decimal)item.mrp * (item.vat / 100) * (item.discount / 100); item.price = afterDiscount * (decimal)item.InvoiceItem.quantity; InvoiceItemWithPrice.Add(item); } mdl.InvoiceItemsWithPrice = InvoiceItemWithPrice; //mdl.Invoice.id = id; //Invoice i = new Invoice(); //i.InvoiceItems = db.InvoiceItems.Where(x => x.invoiceId == id).ToList(); return(PartialView("_InvoiceCurrentItem", mdl)); }
public BillingViewModel getData(int id) { Invoice inv = db.Invoices.Find(id); Customer c = db.Customers.Find(inv.cid); User u = db.Users.Find(inv.uid); BillingViewModel mdl = new BillingViewModel(); ICollection <InvoiceItem> InvoiceItems = db.InvoiceItems.Where(x => x.invoiceId == id).ToList(); List <InvoiceItemWithPrice> InvoiceItemWithPrice = new List <InvoiceItemWithPrice>(); foreach (InvoiceItem i in InvoiceItems) { InvoiceItemWithPrice item = new InvoiceItemWithPrice(); item.InvoiceItem = i; item.mrp = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.mrp).First(); item.vat = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.vat).First(); item.discount = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.discount).First(); item.rate = (decimal)db.Products.Where(x => x.pid == i.pid).Select(x => x.rate).First(); decimal afterVat = (decimal)item.rate + (((item.vat / 100)) * item.rate); decimal afterDiscount = (decimal)(afterVat - ((item.rate) * (item.discount / 100))); //decimal quantity = (decimal)(item.InvoiceItem.quantity - item.InvoiceItem.free); item.price = Math.Round(afterDiscount * (decimal)item.InvoiceItem.quantity, 2); //DateTime exDate= (DateTime)db.Inventories.Where(x => x.iid == i.iid).Select(x => x.exDate).First(); //item.InvoiceItem.Inventory.exDate = exDate.Date; InvoiceItemWithPrice.Add(item); } mdl.InvoicePrint.fromName = "KAMAKSHI DISTRIBUTORS"; mdl.InvoicePrint.fromAddress = "Old No.154/3 / New No.43/3, Nehru Road, Kammanahalli, St Thomas Town, Banglaore-560084"; mdl.InvoicePrint.fromPhone = ""; mdl.InvoicePrint.fromDL_No = "KA-B52-150687/150688"; mdl.InvoicePrint.fromTIN_No = "29420383707"; mdl.InvoicePrint.toName = c.fname + " " + c.mname + " " + c.lname; mdl.InvoicePrint.toAddress = c.address; mdl.InvoicePrint.toPhone = c.phone; mdl.InvoicePrint.toDL_No = c.dlNo; mdl.InvoicePrint.toTIN_No = c.tinNo; mdl.InvoicePrint.invoiceNo = id; mdl.InvoicePrint.invoiceDate = inv.date.ToString("dd/MM/yyyy"); mdl.InvoicePrint.invoiceTime = inv.date.ToShortTimeString(); mdl.InvoicePrint.rep = u.name; mdl.InvoicePrint.dueDate = inv.dueDate.ToString("dd/MM/yyyy"); mdl.InvoicePrint.userID = u.uid; mdl.InvoicePrint.items = InvoiceItemWithPrice; mdl.InvoicePrint.totalRate = 0; mdl.InvoicePrint.totalVat = 0; InvoiceItemWithPrice.ForEach(i => { mdl.InvoicePrint.totalRate += (decimal)(i.rate * (i.InvoiceItem.quantity)); }); //-i.InvoiceItem.free InvoiceItemWithPrice.ForEach(i => { mdl.InvoicePrint.totalVat += Math.Round((decimal)(i.rate * i.vat * (i.InvoiceItem.quantity)) / 100, 2); }); // - i.InvoiceItem.free return(mdl); }