public IHttpActionResult GetBilledItems(int billId) { try { using (MaxMasterDbEntities db = new MaxMasterDbEntities()) { var billedItems = db.GetBilledItems(billId).OrderBy(x => x.Id).ToList(); var bill = db.Bills.Find(billId); // var stock = db.Items.Where(x => x.BillNumber == billNumber).ToList(); decimal subtotal = 0; decimal?taxAmount = 0; decimal?tdsAmount = 0; decimal?courierCharges = 0; decimal?discount = 0; BillModel billModel = new BillModel(); if (bill != null) { billModel.BillDate = bill.BillDate; billModel.BillNumber = bill.BillNumber; if (bill.CourierCharges != null) { billModel.CourierCharges = bill.CourierCharges; } billModel.DueDate = bill.DueDate; // billModel.Id = bill.Id; billModel.Notes = bill.Notes; billModel.PaymentTerms = bill.PaymentTerms; billModel.PONumber = bill.PoNumber; billModel.SupplierId = bill.SupplierId; billModel.Supplier = db.Clients.Where(x => x.AspNetUserId == bill.SupplierId).FirstOrDefault().Name; billModel.DueAmount = bill.BalanceDue; // billModel.TaxAmount = bill.TotalTaxAmount; billModel.RoundOffNumber = bill.RoundOffNumber; } for (int j = 0; j < billedItems.Count(); j++) { subtotal += (billedItems[j].Quantity * billedItems[j].PricePerUnit); billModel.TotalQuantity += billedItems[j].Quantity; } billModel.SubTotal = subtotal; if (bill.TDSId != null) { billModel.TDSId = bill.TDSId; billModel.TDSLabel = bill.TD.TaxName + "- [" + bill.TD.Rate + "%]"; billModel.TDSRate = bill.TD.Rate; billModel.TDSAmount = bill.TDSAmount; tdsAmount = billModel.TDSAmount; } else { tdsAmount = 0; } if (bill.CourierCharges != null) { billModel.CourierCharges = bill.CourierCharges; } if (bill.Discount != null) { if (bill.DiscountType == "Percent") { billModel.DiscountAmount = (bill.Discount * subtotal) / 100; } else { billModel.DiscountAmount = bill.Discount; } billModel.Discount = bill.Discount; billModel.DiscountType = bill.DiscountType; } billModel.Total = bill.Total; return(Content(HttpStatusCode.OK, new { billedItems, billModel })); } } catch (Exception ex) { new Error().logAPIError(System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), ex.StackTrace); return(Content(HttpStatusCode.InternalServerError, "An error occured, please try again later")); } }