Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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;
            }
        }