public InvoiceItem InvoiceItemEntityMapper(InvoiceItemsDTO invoiceItem) { return(new InvoiceItem { ID = invoiceItem.ID, InvoiceID = invoiceItem.InvoiceID, Price = Math.Round(invoiceItem.Price, 2), Quantity = Math.Round(invoiceItem.Quantity, 2), Description = invoiceItem.Description, Total = Math.Round(invoiceItem.Total, 2), AddedDate = DateTime.Now, AddedBy = "Admin" }); }
public async Task <ActionResult <InvoicesDTO> > addItem(int inInvoiceID, int inProductOptionID, int inQuantity) { Invoices invoice = await db.Invoices.FindAsync(inInvoiceID); if (invoice == null) { return(new JsonResult(new { Status = "error", Message = "No Invoices With The Id: " + inInvoiceID })); } ProductOptions prodOpt = await db.ProductOptions.FindAsync(inProductOptionID); if (prodOpt == null) { return(new JsonResult(new { Status = "error", Message = "No Product Option With The Id: " + inProductOptionID })); } Products prod = await db.Products.FindAsync(prodOpt.ProductID); if (prod == null) { return(new JsonResult(new { Status = "error", Message = "No Product With The Id: " + prodOpt.ProductID })); } prodOpt.Product = prod; if (inQuantity < 1) { return(new JsonResult(new { Status = "error", Message = "Quantity Can't be less than 1" })); } InvoiceItems invoiceItems = new InvoiceItems { InvoiceID = invoice.Id, ProductOptionID = prodOpt.Id, prod_name = prodOpt.Product.name, prod_desc = prodOpt.Product.desc, prod_region = prodOpt.Product.region, prod_roast = prodOpt.Product.roast, prod_altitude_max = prodOpt.Product.altitude_max, prod_altitude_min = prodOpt.Product.altitude_min, prod_bean_type = prodOpt.Product.bean_type, prod_image_url = prodOpt.Product.image_url, opt_price = prodOpt.price, opt_weight = prodOpt.weight, quantity = inQuantity }; db.InvoiceItems.Add(invoiceItems); try { await db.SaveChangesAsync(); } catch (Exception e) { return(new JsonResult(new { Status = "error", Message = "Error adding item to invoice" })); } try { updateTotalInvoice(invoice.Id, invoiceItems.opt_price, invoiceItems.quantity); } catch (Exception e) { return(new JsonResult(new { Status = "error", Message = e })); } InvoicesDTO invcDTO = new InvoicesDTO { Id = invoice.Id, total = invoice.total, UserID = invoice.UserID, discount_code = invoice.discount_code, discount_percentage = invoice.discount_percentage, isFreeShipping = invoice.isFreeShipping, tax = invoice.tax, created_at = invoice.created_at, updated_at = invoice.created_at }; InvoiceItemsDTO invoiceItemsDTO = new InvoiceItemsDTO { Id = invoiceItems.Id, InvoiceID = invoice.Id, ProductOptionID = prodOpt.Id, prod_name = prodOpt.Product.name, prod_desc = prodOpt.Product.desc, prod_region = prodOpt.Product.region, prod_roast = prodOpt.Product.roast, prod_altitude_max = prodOpt.Product.altitude_max, prod_altitude_min = prodOpt.Product.altitude_min, prod_bean_type = prodOpt.Product.bean_type, prod_image_url = prodOpt.Product.image_url, opt_price = prodOpt.price, opt_weight = prodOpt.weight, quantity = inQuantity }; if (invcDTO.invoiceItems == null) { List <InvoiceItemsDTO> tempList = new List <InvoiceItemsDTO>(); tempList.Add(invoiceItemsDTO); invcDTO.invoiceItems = tempList; } else { invcDTO.invoiceItems.Add(invoiceItemsDTO); } return(new JsonResult(new { Status = "success", Message = invcDTO })); }