public async Task <IActionResult> PostProductDetails(ProductDetails productDetailsModel) { try { AutoGenerateNumber _serviceGenAutoNum = new AutoGenerateNumber(); decimal product_price = Convert.ToDecimal(productDetailsModel.ProductPrice); string product_code = _serviceGenAutoNum.GenAutoKeyNumber(); var productDetails = new Product() { ProductCode = product_code, ProductName = productDetailsModel.ProductName, ProductPrice = product_price, ProductImage = productDetailsModel.ProductImageValue, ProductCategroyId = productDetailsModel.ProductCategory }; await _context.Products.AddAsync(productDetails); await _context.SaveChangesAsync(); return(Ok(productDetails)); } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> PostShipmentDetails(ShipmentDetailsModel shipmentDetailsModel) { try { AutoGenerateNumber autoGenerateNumber = new AutoGenerateNumber(); int orderId = (from s in _context.Orders where s.UserId == Convert.ToInt32(shipmentDetailsModel.userId) && s.OrderStatusCode == Convert.ToInt32(shipmentDetailsModel.OrderStatusCode) select s.OrderId).Single(); int invoiceId = (from i in _context.Invoices where i.OrderId == orderId select i.InvoiceId).Single(); string shipmentTrackNum = autoGenerateNumber.GenShipmentTrackNum(); var shipmentDetails = new Shipment() { ShipmentTrackNum = shipmentTrackNum, FullName = shipmentDetailsModel.FullName, AddressLineOne = shipmentDetailsModel.AddressLineOne, AddressLineTwo = shipmentDetailsModel.AddressLineTwo, City = shipmentDetailsModel.City, State = shipmentDetailsModel.StateProvinceRegion, Zip = shipmentDetailsModel.Zip, Country = shipmentDetailsModel.Country, ShipmentDate = Convert.ToDateTime(shipmentDetailsModel.ShipmentDate), OrderId = orderId, InvoiceId = invoiceId }; await _context.Shipments.AddAsync(shipmentDetails); await _context.SaveChangesAsync(); return(Ok(shipmentDetails)); } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> PostProceedToCheckOutDetails(List <OrderDetailsModel> OrderDetails) { try { AutoGenerateNumber _serviceGenAutoNum = new AutoGenerateNumber(); //Ref order status code int orderStatusCode = Convert.ToInt32(_serviceGenAutoNum.GenStatusCode()); var Ref_Order_Status_Code = new RefOrderStatusCodes() { OrderStatusCode = orderStatusCode, OrderStatusDescription = "Completed" }; await _context.RefOrderStatusCodes.AddAsync(Ref_Order_Status_Code); await _context.SaveChangesAsync(); //order DateTime orderDate = DateTime.Now; string address = (from u in _context.UserDetails where u.UserId == Convert.ToInt32(OrderDetails[0].UserId) select u.Address).Single(); var order_details = new Orders() { DateOrderPlaced = orderDate, LocationOrderPlaced = address, UserId = Convert.ToInt32(OrderDetails[0].UserId), OrderStatusCode = orderStatusCode }; await _context.Orders.AddAsync(order_details); await _context.SaveChangesAsync(); //Ref Order Item Status Code int itemStatusCode = Convert.ToInt32(_serviceGenAutoNum.GenItemStatusCode()); var ref_order_item_status_code = new RefOrderItemStatusCodes() { OrderItemStatusCode = itemStatusCode, OrderItemStatusDescription = "Delivered" }; await _context.RefOrderItemStatusCodes.AddAsync(ref_order_item_status_code); await _context.SaveChangesAsync(); //Order Item var pCode = OrderDetails.Select(p => p.ProductCode).ToList(); var productId = (from p in _context.Products where pCode.Contains(p.ProductCode) select p.ProductId).ToList(); Orders orders = new Orders() { OrderId = _context.Orders .FirstOrDefault(o => o.OrderStatusCode == orderStatusCode).OrderId }; List <OrderItems> orderItemsList = new List <OrderItems>(); for (int i = 0; i < OrderDetails.Count; i++) { orderItemsList.Add( new OrderItems { OrderItemQnt = Convert.ToInt32(OrderDetails[i].ProductQuantity), OrderItemPrice = Convert.ToDecimal(OrderDetails[i].ProductPrice), TotalAmount = Convert.ToDecimal(OrderDetails[0].TotalAmount), ProductId = productId[i], OrderId = orders.OrderId, OrderItemStatusCode = itemStatusCode }); } foreach (var orderItem in orderItemsList) { await _context.OrderItems.AddAsync(orderItem); await _context.SaveChangesAsync(); } //Ref Invoice Status Code int invoiceStatusCode = Convert.ToInt32(_serviceGenAutoNum.GenInvoiceStatusCode()); var ref_invoice_status_code = new RefInvoiceStatusCode() { InvoiceStatusCode = invoiceStatusCode, InvoiceStatusDesc = "Issued" }; await _context.RefInvoiceStatusCodes.AddAsync(ref_invoice_status_code); await _context.SaveChangesAsync(); //Invoice string invoiceNumber = _serviceGenAutoNum.GenInvoiceNumber(); DateTime invoiceDate = DateTime.Now; //List<Invoices> invoiceList = new List<Invoices>(); //for (int i = 0; i < OrderDetails.Count; i++) //{ // invoiceList.Add( // new Invoices // { // InvoiceNumber = invoiceNumber, // InvoiceDate = invoiceDate, // ItemName = OrderDetails[i].ProductTitle, // ItemPrice = Convert.ToDecimal(OrderDetails[i].ProductPrice), // TotalAmount = Convert.ToDecimal(OrderDetails[i].TotalAmount), // OrderId = orders.OrderId, // InvoiceStatusCode = invoiceStatusCode // }); //} var invoice_details = new Invoices() { InvoiceNumber = invoiceNumber, InvoiceStatusCode = invoiceStatusCode, InvoiceDate = invoiceDate, OrderId = orders.OrderId }; await _context.Invoices.AddAsync(invoice_details); await _context.SaveChangesAsync(); return(Ok(orderStatusCode)); } catch (Exception ex) { throw ex; } }