/// <summary>
 /// Initializes a new instance of the <see cref="OrderHeaderItemBaseJsonResult"/> class.
 /// </summary>
 /// <param name="header">The order header.</param>
 public OrderHeaderItemBaseJsonResult(OrderHeader header)
 {
     this.ExternalId = header.ExternalId;
     this.Status = header.Status;
     this.LastModified = ((CommerceOrderHeader)header).LastModified.ToDisplayedDate();
     this.DetailsUrl = string.Concat(StorefrontManager.StorefrontUri("/accountmanagement/myorder"), "?id=", header.ExternalId);
     this.OrderId = header.ExternalId;
 }
		public async Task ClearAndFillWithDemoData()
		{
			await this.OrderDetails.ForEachAsync(od => this.OrderDetails.Remove(od));
			await this.Orders.ForEachAsync(o => this.Orders.Remove(o));
			await this.Customers.ForEachAsync(c => this.Customers.Remove(c));
			await this.Products.ForEachAsync(p => this.Products.Remove(p));

			var demoCustomers = new[] {
				new Customer() { CompanyName = "Corina Air Conditioning", CountryIsoCode = "AT" },
				new Customer() { CompanyName = "Fernando Engineering", CountryIsoCode = "AT" },
				new Customer() { CompanyName = "Murakami Plumbing", CountryIsoCode = "CH" },
				new Customer() { CompanyName = "Naval Metal Construction", CountryIsoCode = "DE" }
			};
			this.Customers.AddRange(demoCustomers);

			var demoProducts = new[] {
				new Product() { Description = "Mountain Bike", IsAvailable = true, CategoryCode = "BIKE", PricePerUom = 2500 },
				new Product() { Description = "Road Bike", IsAvailable = true, CategoryCode = "BIKE", PricePerUom = 2000 },
				new Product() { Description = "Skate Board", IsAvailable = true, CategoryCode = "BOARD", PricePerUom = 100 },
				new Product() { Description = "Long Board", IsAvailable = true, CategoryCode = "BOARD", PricePerUom = 250 },
				new Product() { Description = "Scooter", IsAvailable = false, CategoryCode = "OTHERS", PricePerUom = 150 }
			};
			this.Products.AddRange(demoProducts);

			var rand = new Random();
			for (var i = 0; i < 100; i++)
			{
				var order = new OrderHeader()
				{
					OrderDate = new DateTimeOffset(new DateTime(2014, rand.Next(1, 12), rand.Next(1, 28))),
					Customer = demoCustomers[rand.Next(demoCustomers.Length - 1)]
				};
				this.Orders.Add(order);

				for (var j = 0; j < 3; j++)
				{
					this.OrderDetails.Add(new OrderDetail()
					{
						Order = order,
						Product = demoProducts[rand.Next(demoProducts.Length - 1)],
						Amount = rand.Next(1, 5)
					});
				}
			}
			
			await this.SaveChangesAsync();
		}
Exemple #3
0
        public IActionResult OrderConfirmation(int id)
        {
            OrderHeader orderHeader = unitOfWork.OrderHeader.GetFirstOrDefault(u => u.Id == id);

            TwilioClient.Init(twilioProperties.AccountSid, twilioProperties.AuthToken);

            try
            {
                var message = MessageResource.Create(
                    body: "Order Placed on BulkyBook. Your Order ID: " + id,
                    from: new Twilio.Types.PhoneNumber(twilioProperties.PhoneNumber),
                    to: new Twilio.Types.PhoneNumber(orderHeader.PhoneNumber)
                    );
            }
            // Exception occurs when phone number is incorrect
            catch (Exception ex)
            {
                _ = ex.Message.ToString();
            }

            return(View(id));
        }
Exemple #4
0
        public IActionResult OrderConfirmation(int id)
        {
            OrderHeader orderHeader = _unitOfWork.OrderHeader.GetFirstOrDefault(u => u.Id == id);

            /*/TwilioClient.Init(_twilioOptions.AccountSid, _twilioOptions.AuthToken);
             * try
             * {
             *  var message = MessageResource.Create(
             *      body: "Η παραγγελία έγινε στο Some Cafe!. Το αναγνωριστικό παραγγελίας σας:" + id,
             *      from: new Twilio.Types.PhoneNumber(_twilioOptions.PhoneNumber),
             *      to: new Twilio.Types.PhoneNumber(orderHeader.PhoneNumber)
             *      );
             * }
             * catch(Exception ex)
             * {
             *
             * }
             *
             */

            return(View(id));
        }
        public IActionResult CancelOrder()
        {
            OrderHeader orderHeader = _orderHRepo.FirstOrDefault(u => u.Id == OrderVM.OrderHeader.Id);

            var         gateway     = _brain.GetGateway();
            Transaction transaction = gateway.Transaction.Find(orderHeader.TransactionId);

            if (transaction.Status == TransactionStatus.AUTHORIZED || transaction.Status == TransactionStatus.SUBMITTED_FOR_SETTLEMENT)
            {
                //no refund
                Result <Transaction> resultvoid = gateway.Transaction.Void(orderHeader.TransactionId);
            }
            else
            {
                //refund
                Result <Transaction> resultRefund = gateway.Transaction.Refund(orderHeader.TransactionId);
            }
            orderHeader.OrderStatus = WC.StatusRefunded;
            _orderHRepo.Save();
            TempData[WC.Success] = "Order Cancelled Successfully";
            return(RedirectToAction(nameof(Index)));
        }
Exemple #6
0
        public async Task <IActionResult> Details(string stripeToken)
        {
            OrderHeader orderHeader = await _context.OrderHeaders.GetFirstOrDefault(u => u.Id == OrderVM.OrderHeader.Id,
                                                                                    includeProps : "MyUser");

            //if (stripeToken != null)
            //{
            //   ////process the payment
            //   //var options = new ChargeCreateOptions
            //   //{
            //   //   Amount = Convert.ToInt32(orderHeader.OrderTotal * 100),
            //   //   Currency = "usd",
            //   //   Description = "Order ID : " + orderHeader.Id,
            //   //   Source = stripeToken
            //   //};

            //   //var service = new ChargeService();
            //   //Charge charge = service.Create(options);

            //   //if (charge.Id == null)
            //   //{
            //   //   orderHeader.PaymentStatus = SD.PaymentStatusRejected;
            //   //}
            //   else
            //   {
            //      orderHeader.TransactionId = charge.Id;
            //   }
            //   if (charge.Status.ToLower() == "succeeded")
            //   {
            //      orderHeader.PaymentStatus = SD.PaymentStatusApproved;

            //      orderHeader.PaymentDate = DateTime.Now;
            //   }

            await _context.Save();

            //}
            return(RedirectToAction("Details", "Order", new { id = orderHeader.Id }));
        }
        public JsonResult AddOrder(OrderViewModel order)
        {
            using (var db = new CobraOnboarddbEntities())
            {
                var orderheader = new OrderHeader()
                {
                    OrderDate = DateTime.Now,
                    PersonId  = order.CustomerId
                };
                db.OrderHeaders.Add(orderheader);
                db.SaveChanges();
                var orderdetails = new OrderDetail()
                {
                    OderId    = orderheader.Id,
                    ProductId = order.ProductId
                };
                db.OrderDetails.Add(orderdetails);
                db.SaveChanges();
            }

            return(new JsonResult());
        }
        //public Operacion ObtenerOrdenesDeCompra()
        //{
        //    try
        //    {
        //        return new Operacion
        //        {
        //            Codigo = 0,
        //            Mensaje = "Proceso Exitoso",
        //            Dato = _transaccionRepositorio.ObtenerOrdenesDeCompra(),
        //            Resultado = ResultadoOperacionTipo.Exito
        //        };
        //    }
        //    catch (Exception e)
        //    {

        //        return new Operacion
        //        {
        //            Codigo = -1,
        //            Mensaje = e.Message,
        //            Resultado = ResultadoOperacionTipo.Error
        //        };
        //    }
        //}


        public Operacion MarcarSalidaDeInventarioComoEnviadaAErp(OrderHeader ordenDeVenta)
        {
            try
            {
                IList <SwiftTxn> transacciones = new List <SwiftTxn>();
                foreach (var linea in ordenDeVenta.SwiftViewSboOrderDetails)
                {
                    var transaccionId = linea.TransactionId;
                    var transaccion   = _transaccionRepositorio.ObtenerTransaciones(t => t.TxnId == transaccionId).FirstOrDefault();
                    if (transaccion != null)
                    {
                        transaccion.TxnIsPostedErp    = Convert.ToInt16(SiNo.Si);
                        transaccion.TxnPostedErp      = DateTime.Now;
                        transaccion.TxnPostedResponse = ordenDeVenta.Comments;
                        transacciones.Add(transaccion);
                    }
                }

                _transaccionRepositorio.Actualizar(transacciones);



                return(new Operacion
                {
                    Codigo = 0,
                    Mensaje = "Proceso Exitoso",
                    Resultado = ResultadoOperacionTipo.Exito
                });
            }
            catch (Exception e)
            {
                return(new Operacion
                {
                    Codigo = -1,
                    Mensaje = e.Message,
                    Resultado = ResultadoOperacionTipo.Error
                });
            }
        }
Exemple #9
0
        public async Task <bool> DeleteProductFromCart(string UserId, int ProductID, CancellationToken ct = default(CancellationToken))
        {
            OrderHeader orders = await GetOrderHeaderByUserId(UserId);

            if (orders != null)
            {
                List <OrderDetails> orderDetails = await GetOrderDeatilsbyOrderIdAsync(orders.Id);

                var toRemove   = orderDetails.Where(p => p.ProductId == ProductID).FirstOrDefault();
                var rateRemove = toRemove.Amount;
                orders.TotalAmount = orders.TotalAmount - rateRemove;
                _context.OrderDetails.Remove(toRemove);
                _context.Update(orders);
                await _context.SaveChangesAsync(ct);

                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #10
0
        public IActionResult Details(string stripeToken)
        {
            OrderHeader orderHeader = _unitOfWork.OrderHeader.GetFirstOrDefault(u => u.Id == OrderVM.OrderHeader.Id,
                                                                                includeProperties: "ApplicationUser");

            if (stripeToken != null)
            {
                //process the payment
                var options = new ChargeCreateOptions
                {
                    Amount      = Convert.ToInt32(orderHeader.OrderTotal * 100),
                    Currency    = "usd",
                    Description = "Order ID : " + orderHeader.Id,
                    Source      = stripeToken
                };

                var    service = new ChargeService();
                Charge charge  = service.Create(options);

                if (charge.Id == null)
                {
                    orderHeader.PaymentStatus = SD.PaymentStatusRejected;
                }
                else
                {
                    orderHeader.TransactionId = charge.Id;
                }
                if (charge.Status.ToLower() == "succeeded")
                {
                    orderHeader.PaymentStatus = SD.PaymentStatusApproved;

                    orderHeader.PaymentDate = DateTime.Now;
                }

                _unitOfWork.Save();
            }
            return(RedirectToAction("Details", "Order", new { id = orderHeader.Id }));
        }
        public void ProcessOrder(Cart cart, User user)
        {
            StringBuilder address = new StringBuilder();

            address.AppendLine(user.UserDetail.FirstName)
            .AppendLine(user.UserDetail.LastName)
            .AppendLine(user.UserDetail.City)
            .AppendLine(user.UserDetail.Zip)
            .AppendLine(user.UserDetail.Street)
            .AppendLine(user.UserDetail.BuildingNr);
            OrderHeader order = new OrderHeader
            {
                CustomerId     = user.UserId,
                CreationDate   = DateTime.Now,
                ShipAddress    = address.ToString(),
                ShipmentMethod = "default",
                OrderStatusId  = 1,
                //TODO Comment = shippingInfo.GiftWrap ? "Gift wrap" : "",
                TotalDue    = cart.ComputeTotalValue(),
                OrderDetail = new List <OrderDetail>()
            };

            foreach (var line in cart.Lines)
            {
                OrderDetail detail = new OrderDetail
                {
                    CreationDate      = DateTime.Now,
                    OrderId           = order.Id,
                    Quantity          = line.Quantity,
                    UnitPrice         = line.Product.Price,
                    UnitPriceDiscount = 0.05M,
                    Product           = line.Product,
                    LineTotal         = line.Product.Price * line.Quantity - (line.Product.Price * line.Quantity * 0.05M),
                };
                order.OrderDetail.Add(detail);
            }
            repo.SaveOrder(order);
        }
Exemple #12
0
        public async Task <IActionResult> OrderCancel(int?OrderId)
        {
            if (OrderId == null)
            {
                return(NotFound());
            }

            OrderHeader orderHeader = await _db.OrderHeaders.FindAsync(OrderId);

            if (orderHeader == null)
            {
                return(NotFound());
            }

            orderHeader.Status = SD.StatusCancelled;
            await _db.SaveChangesAsync();

            await _emailSender.SendEmailAsync(_db.Users.FirstOrDefault(u => u.Id == orderHeader.UserId).Email,
                                              "Foods - Order Canceled " + orderHeader.Id.ToString(),
                                              "Your order has been canceled , may be because that order are not available until now or the total of Menu Items in particular small time... so we are happy to serve you and don't forget to make another orders");

            return(RedirectToAction("MangeOrder", "Order"));
        }
Exemple #13
0
        private RequestHeader BuildRequestHeader(OrderHeader header, string requestHeaderId)
        {
            RequestHeader requestHeader = new RequestHeader();

            requestHeader.RequestHeaderId = requestHeaderId;
            requestHeader.BranchId        = header.Branch;
            requestHeader.CategoryId      = KSOS_CATEGORYID;
            requestHeader.CustomerNumber  = header.CustomerNumber;
            requestHeader.DsrNumber       = header.DsrNumber;
            requestHeader.Address         = header.AddressStreet;
            requestHeader.City            = header.AddressCity;
            requestHeader.State           = header.AddressRegionCode;
            requestHeader.Zip             = header.AddressPostalCode;
            // do we need a 'contact'????
            requestHeader.ManufacturerName = KSOS_MFGNAME;
            requestHeader.OrderStatusId    = KSOS_STATUS_NEW;
            requestHeader.ShipMethodId     = KSOS_SHIPMETHOD_AUTORELEASE;
            requestHeader.UpdatedBy        = header.UserId.Length > KSOS_USERID_LENGTH?header.UserId.Substring(0, KSOS_USERID_LENGTH) : header.UserId;

            requestHeader.Source = header.CatalogType;

            return(requestHeader);
        }
Exemple #14
0
        public async Task <IActionResult> OrderReady(int?OrderId)
        {
            if (OrderId == null)
            {
                return(NotFound());
            }

            OrderHeader orderHeader = await _db.OrderHeaders.FindAsync(OrderId);

            if (orderHeader == null)
            {
                return(NotFound());
            }

            orderHeader.Status = SD.StatusReady;
            await _db.SaveChangesAsync();

            await _emailSender.SendEmailAsync(_db.Users.FirstOrDefault(u => u.Id == orderHeader.UserId).Email,
                                              "Foods - Order Ready For Pickup " + orderHeader.Id.ToString(),
                                              "Order Ready For Pickup , our shipping agent will call you as soon as possible to deliver your order");

            return(RedirectToAction("MangeOrder", "Order"));
        }
        public IActionResult OrderConfirmation(int id)
        {
            OrderHeader orderHeader = _unitOfWork.OrderHeader.GetFirstOrDefault(o => o.Id == id);

            TwilioClient.Init(_twilioOptions.AccountSid, _twilioOptions.AuthToken);

            try
            {
                var msg = MessageResource.Create(
                    body: "Order Placed on Bulky Book. Your Order ID:" + id,
                    from: new Twilio.Types.PhoneNumber(orderHeader.PhoneNumber),
                    to: new Twilio.Types.PhoneNumber(_twilioOptions.PhoneNumber)

                    );
            }
            catch (Exception e)
            {
                ViewBag.Message = e.Message;
            }


            return(View(id));
        }
        public async Task RequestHeaderIsValidated()
        {
            var currentInstant   = Instant.FromUtc(2017, 08, 17, 12, 0, 0);
            var fakeClock        = new FakeClock(currentInstant);
            var headerValidator  = new OrderHeaderValidator(fakeClock) as IMessageValidator <OrderHeader>;
            var itemValidator    = new itemItemValidator() as IMessageValidator <ItemAsset>;
            var itemOutValidator = new ItemOutValidator(itemValidator) as IMessageValidator <LineItem>;
            var validator        = new OrderFulfillmentMessageValidator(headerValidator, itemOutValidator);
            var header           = new OrderHeader {
                OrderId = null, OrderDate = currentInstant.ToDateTimeUtc()
            };

            var target = new OrderFulfillmentMessage
            {
                OrderRequestHeader = header,
                LineItems          = new List <LineItem>()
            };

            var result = await validator.ValidateAsync(target);

            result.Should().NotBeNull("because a validation result should have been returned");
            result.Should().ContainSingle(error => (error.MemberPath == $"{ nameof(OrderFulfillmentMessage.OrderRequestHeader) }.{ nameof(OrderHeader.OrderId) }"), "because the order id was not provided in the header");
        }
        public async Task ItemOutIsRequired()
        {
            var currentInstant   = Instant.FromUtc(2017, 08, 17, 12, 0, 0);
            var fakeClock        = new FakeClock(currentInstant);
            var headerValidator  = new OrderHeaderValidator(fakeClock) as IMessageValidator <OrderHeader>;
            var itemValidator    = new itemItemValidator() as IMessageValidator <ItemAsset>;
            var itemOutValidator = new ItemOutValidator(itemValidator) as IMessageValidator <LineItem>;
            var validator        = new OrderFulfillmentMessageValidator(headerValidator, itemOutValidator);
            var header           = new OrderHeader {
                OrderId = "ABC123", OrderDate = currentInstant.ToDateTimeUtc()
            };

            var target = new OrderFulfillmentMessage
            {
                OrderRequestHeader = header,
                LineItems          = null
            };

            var result = await validator.ValidateAsync(target);

            result.Should().NotBeNull("because a validation result should have been returned");
            result.Should().ContainSingle(error => ((error.MemberPath == nameof(OrderFulfillmentMessage.LineItems)) && (error.Code == ErrorCode.ValueIsRequired.ToString())), "because the itemout set was not provided");
        }
        public async Task EmptyItemOutIsValid()
        {
            var currentInstant   = Instant.FromUtc(2017, 08, 17, 12, 0, 0);
            var fakeClock        = new FakeClock(currentInstant);
            var headerValidator  = new OrderHeaderValidator(fakeClock) as IMessageValidator <OrderHeader>;
            var itemValidator    = new itemItemValidator() as IMessageValidator <ItemAsset>;
            var itemOutValidator = new ItemOutValidator(itemValidator) as IMessageValidator <LineItem>;
            var validator        = new OrderFulfillmentMessageValidator(headerValidator, itemOutValidator);
            var header           = new OrderHeader {
                OrderId = "ABC123", OrderDate = currentInstant.ToDateTimeUtc()
            };

            var target = new OrderFulfillmentMessage
            {
                OrderRequestHeader = header,
                LineItems          = new List <LineItem>()
            };

            var result = await validator.ValidateAsync(target);

            result.Should().NotBeNull("because a validation result should have been returned");
            result.Should().BeEmpty("because an empty itemout set is allowed");
        }
        public IActionResult OnPostOrderRefund(int id)
        {
            OrderHeader orderHeader = _unitOfWork.OrderHeader.GetFirstOrDefault(o => o.Id == id);

            var options = new RefundCreateOptions()
            {
                Amount = Convert.ToInt32(orderHeader.OrderTotal * 100),
                Reason = RefundReasons.RequestedByCustomer
            };
            var    service = new RefundService();
            Refund refund  = service.Create(options);

            orderHeader.Status = SD.StatusRefounded;
            _unitOfWork.Save();
            return(RedirectToPage("ManageOrder"));
            //if (orderHeader != null)
            //{
            //    orderHeader.Status = SD.StatusRefounded;
            //    _unitOfWork.Save();
            //    return RedirectToPage("ManageOrder");
            //}
            //return Page();
        }
        public ActionResult PayInvoice(int orderNumber)
        {
            using (FreeMarketEntities db = new FreeMarketEntities())
            {
                OrderHeader order = db.OrderHeaders.Find(orderNumber);
                if (order == null)
                {
                    return(RedirectToAction("Cart"));
                }
                else
                {
                    if (User.Identity.GetUserId() == order.CustomerNumber)
                    {
                        ShoppingCart        cart  = new ShoppingCart(orderNumber);
                        PayInvoiceViewModel model = new PayInvoiceViewModel(cart);

                        return(View("PayInvoice", model));
                    }
                }
            }

            return(RedirectToAction("Cart"));
        }
Exemple #21
0
        private void saveitem()
        {
            using (var appdb = new AppContext())
            {
                int         id   = GetQueryIntValue("id");
                OrderHeader item = appdb.orderheader
                                   .Where(u => u.SN == id).FirstOrDefault();
                item.Remark    = tbxRemark.Text;
                item.Checker   = User.Identity.Name;
                item.CheckDate = DateTime.Now;
                int k = GetQueryIntValue("k");
                if (k == 0)
                {
                    item.IsCheck = 1;
                }
                else
                {
                    item.IsCheck = 0;
                }

                appdb.SaveChanges();
            }
        }
        private OrderSession SaveSessionOrder(POSAirPortClassesDataContext _posDB, OrderHeader order, df_header_onl new_order)
        {
            // order_session db save
            var new_session_order = new order_session();

            new_session_order.session_guid      = Guid.NewGuid();
            new_session_order.sale_agent_code   = order.NewOrder.AgentCode;
            new_session_order.sale_order_no     = order.NewOrder.OrderNo;
            new_session_order.sale_order_status = "Create";
            new_session_order.sale_invoice_no   = order.NewOrder.InvoiceNo;
            new_session_order.sale_platform     = "online";
            var obj_key = new OrderKey();

            obj_key.Date  = new_order.data_date.Date.ToString();
            obj_key.DocNO = new_order.doc_no.ToString();
            obj_key.MacNo = new_order.machine_no.Trim();
            new_session_order.pos_order_key    = JsonConvert.SerializeObject(obj_key);
            new_session_order.pos_order_no     = new_order.machine_no.Trim() + "-" + new_order.doc_no;
            new_session_order.pos_order_status = new_order.LastStatus;
            new_session_order.pos_invice_no    = new_order.machine_no.Trim() + "-" + new_order.runno;
            new_session_order.create_date      = DateTime.Now;
            new_session_order.modified_date    = DateTime.Now;
            _omDB.order_sessions.InsertOnSubmit(new_session_order);
            _omDB.SubmitChanges();
            // order_tran db save
            var new_tren_order = new order_transaction();

            new_tren_order.create_date = DateTime.Now;
            new_tren_order.session_id  = new_session_order.id;
            new_tren_order.datail      = "Create Sale Order Online [" + new_session_order.sale_order_no + "] <---> POS Order [" + new_session_order.pos_order_no + "]";
            _omDB.order_transactions.InsertOnSubmit(new_tren_order);
            _omDB.SubmitChanges();

            SaveLogInterface(_posDB, order, new_session_order);

            return(new OrderSession(new_session_order));
        }
        public JsonResult DeleteOrder(string orderId)
        {
            if (String.IsNullOrEmpty(orderId))
            {
                return(Json("Error: Invalid parameters", JsonRequestBehavior.DenyGet));
            }
            try
            {
                int         oid    = Convert.ToInt32(orderId);
                OrderHeader oh     = db.OrderHeaders.Where(o => o.OrderId.Equals(oid)).First();
                var         odList = db.OrderDetails.Where(o => o.OrderId.Equals(oid)).ToList();
                // remove order details
                db.OrderDetails.RemoveRange(odList);
                db.SaveChanges();
                // remove order header
                db.OrderHeaders.Remove(oh);
                db.SaveChanges();

                return(Json(oid, JsonRequestBehavior.DenyGet));
            }
            catch (FormatException e)
            {
                return(Json($"Error: {e.Message}", JsonRequestBehavior.DenyGet));
            }
            catch (IndexOutOfRangeException e)
            {
                return(Json($"Error: {e.Message}", JsonRequestBehavior.DenyGet));
            }
            catch (NullReferenceException e)
            {
                return(Json($"Error: {e.Message}", JsonRequestBehavior.DenyGet));
            }
            catch (Exception e)
            {
                return(Json($"Error: {e.Message}", JsonRequestBehavior.DenyGet));
            }
        }
        public async Task ItemOutsAreValidated()
        {
            var currentInstant   = Instant.FromUtc(2017, 08, 17, 12, 0, 0);
            var fakeClock        = new FakeClock(currentInstant);
            var headerValidator  = new OrderHeaderValidator(fakeClock) as IMessageValidator <OrderHeader>;
            var itemValidator    = new itemItemValidator() as IMessageValidator <ItemAsset>;
            var itemOutValidator = new ItemOutValidator(itemValidator) as IMessageValidator <LineItem>;
            var validator        = new OrderFulfillmentMessageValidator(headerValidator, itemOutValidator);
            var header           = new OrderHeader {
                OrderId = "ABC123", OrderDate = currentInstant.ToDateTimeUtc()
            };

            var itemOuts = new List <LineItem>
            {
                new LineItem
                {
                    Assets = new List <ItemAsset>
                    {
                        new ItemAsset(),
                        new ItemAsset()
                    }
                }
            };

            var target = new OrderFulfillmentMessage
            {
                OrderRequestHeader = header,
                LineItems          = itemOuts
            };

            var result = await validator.ValidateAsync(target);

            var failurePath = $"{ nameof(OrderFulfillmentMessage.LineItems) }[0].{ nameof(LineItem.Assets) }";

            result.Should().NotBeNull("because a validation result should have been returned");
            result.Should().ContainSingle(error => error.MemberPath == failurePath, "because the itemout violated a rule");
        }
        public IActionResult OnPost()
        {
            //Get user id of the currently logged in user
            var claimsIdentity = (ClaimsIdentity)this.User.Identity;
            var claim          = claimsIdentity.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier);

            DetailCart.ListCart = _db.ShoppingCart.Where(c => c.ApplicationUserId == claim.Value).ToList();

            OrderHeader orderHeader = DetailCart.OrderHeader;

            DetailCart.OrderHeader.OrderDate = DateTime.Now;
            DetailCart.OrderHeader.UserId    = claim.Value;
            DetailCart.OrderHeader.Status    = StaticData.StatusSubmitted;
            _db.OrderHeader.Add(orderHeader);
            _db.SaveChanges();

            foreach (var item in DetailCart.ListCart)
            {
                item.MenuItem = _db.MenuItem.FirstOrDefault(m => m.Id == item.MenuItemId);
                OrderDetail orderDetail = new OrderDetail()
                {
                    MenuItemId  = item.MenuItemId,
                    OrderId     = orderHeader.Id,
                    Name        = item.MenuItem.Name,
                    Description = item.MenuItem.Description,
                    Price       = item.MenuItem.Price,
                    Count       = item.Count
                };
                _db.OrderDetail.Add(orderDetail);
            }
            _db.ShoppingCart.RemoveRange(DetailCart.ListCart);
            HttpContext.Session.SetInt32("CartCount", 0);
            ;
            _db.SaveChanges();

            return(RedirectToPage("../Order/OrderConfirmation", new { id = orderHeader.Id }));
        }
Exemple #26
0
        private void LoadData()
        {
            // 权限检查
            //CheckPowerWithButton("InstockEdit", btnChangeEnableUsers);
            //CheckPowerWithButton("InstockDelete", btnDeleteSelected);
            //CheckPowerWithButton("InstockNew", btnNew);

            int id = GetQueryIntValue("pid");

            using (var appdb = new AppContext())
            {
                OrderHeader current = appdb.orderheader
                                      .Where(u => u.SN == id).FirstOrDefault();
                if (current == null)
                {
                    // 参数错误,首先弹出Alert对话框然后关闭弹出窗口
                    Alert.Show("参数错误!", String.Empty, ActiveWindow.GetHideReference());
                    return;
                }
                txtOrderNo.Text           = current.OrderNo;
                txtClientCode.Text        = current.ClientCode;
                txtClinetOrderNo.Text     = current.ClientOrderNo;
                txtBuis.Text              = current.RecOrderPerson;
                txtContainerType.Text     = current.ContainerType;
                txtChecker.Text           = current.Checker;
                checkDate.SelectedDate    = current.CheckDate;
                recOrderDate.SelectedDate = current.RecOrderDate;
                outOrderDate.SelectedDate = current.OutGoodsDate;
                txtLotno.Text             = current.LotNo;
            }
            //btnNew.OnClientClick = Window1.GetShowReference("~/admin/user_new.aspx", "新增用户");
            Grid2.PageSize = ConfigHelper.PageSize;
            ddlGridPageSize.SelectedValue = ConfigHelper.PageSize.ToString();
            // 每页记录数
            BindGrid2();
            BindGrid1();
        }
Exemple #27
0
        // ProcessOrder(int orderHeaderId) : OrderHeader
        public OrderHeader ProcessOrder(int orderHeaderId)
        {
            StockItem stockItem;

            orderHeader             = _ordersRepo.GetOrderHeader(orderHeaderId);               //Instantiates orderHeader object with info from db
            orderHeader._orderItems = _ordersRepo.GetOrderItemsByOrderHeaderID(orderHeaderId); // Feeds all the associated orderItems into the orderHeader

            bool allowOrder = true;

            orderHeader.StateID = 3; // Completed

            //Allow Instock to update ONLY IF the instock value is larger than the orderItem quantity
            //for each order item's , find it's stock item via stockItemId, then compare the orderItem quantity to the stockItem InStock
            foreach (OrderItem orderItem in orderHeader._orderItems)
            {
                stockItem = _stockItemsRepo.GetStockItem(orderItem.StockItemId); //Retrieves stockItem via Id

                if (orderItem.Quantity > stockItem.InStock)
                {
                    allowOrder = false;
                }
            }

            if (allowOrder)
            {
                _stockItemsRepo.UpdateStockItemAmount(orderHeader); // Method reduces the stockItem Instock for each orderItem ONLY IF allowOrder == true
            }
            else
            {
                orderHeader.StateID = 4; // Rejected ONLY IF allowOrder == false
            }


            _ordersRepo.UpdateOrderState(orderHeader); //Updates OrderStateID on the db accordingly NO MATTER WHAT.

            return(orderHeader);
        }
        public static OnlineStoreDbContext SeedOrders(this OnlineStoreDbContext dbContext)
        {
            var order = new OrderHeader
            {
                OrderHeaderID    = 1,
                OrderStatusID    = 100,
                CustomerID       = 1000,
                EmployeeID       = 1,
                OrderDate        = DateTime.Now,
                Total            = 29.99m,
                CurrencyID       = "USD",
                PaymentMethodID  = Guid.Parse("44C3737C-9993-448A-82F7-75C0E37E5A7F"),
                Comments         = "Order from unit tests",
                CreationUser     = creationUser,
                CreationDateTime = creationDateTime
            };

            dbContext.Orders.Add(order);

            var orderDetail = new OrderDetail
            {
                OrderHeaderID    = order.OrderHeaderID,
                ProductID        = 1000,
                ProductName      = "The King of Fighters XIV",
                UnitPrice        = 29.99m,
                Quantity         = 1,
                Total            = 29.99m,
                CreationUser     = creationUser,
                CreationDateTime = creationDateTime
            };

            dbContext.OrderDetails.Add(orderDetail);

            dbContext.SaveChanges();

            return(dbContext);
        }
Exemple #29
0
        public IActionResult SummaryPost(IFormCollection collection, ProductUserVM ProductUserVM)
        {
            var claimsIdentity = (ClaimsIdentity)User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            OrderHeader orderHeader = new OrderHeader()
            {
                CreatedByUserId = claim.Value,
                FinalOrderTotal = ProductUserVM.ProductList.Sum(x => x.Unit * x.Price),
                City            = ProductUserVM.ApplicationUser.City,
                StreetAddress   = ProductUserVM.ApplicationUser.StreetAddress,
                State           = ProductUserVM.ApplicationUser.State,
                PostalCode      = ProductUserVM.ApplicationUser.PostalCode,
                FullName        = ProductUserVM.ApplicationUser.FullName,
                Email           = ProductUserVM.ApplicationUser.Email,
                PhoneNumber     = ProductUserVM.ApplicationUser.PhoneNumber,
                OrderDate       = DateTime.Now,
                OrderStatus     = WebConstant.StatusPending
            };

            _orderHRepo.Add(orderHeader);
            _orderHRepo.Save();
            return(RedirectToAction(nameof(Index)));
        }
Exemple #30
0
        public IActionResult IndexPost()
        {
            var claimsIdentity = (ClaimsIdentity)this.User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            detailCart.listCart = _db.ShoppingCart.Where(c => c.ApplicationUserId == claim.Value).ToList();

            detailCart.OrderHeader.OrderDate = DateTime.Now;
            detailCart.OrderHeader.UserId    = claim.Value;
            detailCart.OrderHeader.Status    = SD.StatusSubmitted;
            OrderHeader orderHeader = detailCart.OrderHeader;

            _db.OrderHeader.Add(orderHeader);
            _db.SaveChanges();

            foreach (var item in detailCart.listCart)
            {
                item.MenuItem = _db.MenuItem.FirstOrDefault(m => m.Id == item.MenuItemId);
                OrderDetails orderDetails = new OrderDetails
                {
                    MenuItemId  = item.MenuItemId,
                    OrderId     = orderHeader.Id,
                    Description = item.MenuItem.Description,
                    Name        = item.MenuItem.Name,
                    Price       = item.MenuItem.Price,
                    Count       = item.Count
                };
                _db.OrderDetails.Add(orderDetails);
            }

            _db.ShoppingCart.RemoveRange(detailCart.listCart);
            _db.SaveChanges();
            HttpContext.Session.SetInt32("CartCount", 0);

            return(RedirectToAction("Confirm", "Order", new { id = orderHeader.Id }));
        }
Exemple #31
0
        public IActionResult OrderConfirmation(int id)
        {
            // get order number
            OrderHeader orderHeader = _unitOfWork.OrderHeader.GetFirstOrDefault(u => u.Id == id);

            // initialize twilio client
            TwilioClient.Init(_twilioOptions.AccountSid, _twilioOptions.AuthToken);

            try
            {
                var message = MessageResource.Create(
                    body: "Order Placed on Best Books. Your Order ID: " + id,
                    from: new Twilio.Types.PhoneNumber(_twilioOptions.PhoneNumber),
                    to: new Twilio.Types.PhoneNumber(orderHeader.PhoneNumber)
                    );
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
            }


            return(View(id));
        }
Exemple #32
0
        public OrderHeader GetOrderHeader(int id)
        {
            OrderHeader order = null;

            using (var connection = new SqlConnection(OMDB.ConnectionString))
                using (var command = new SqlCommand("sp_SelectOrderHeaderById", connection))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.AddWithValue("@id", id);
                    connection.Open();
                    var reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        if (order == null)
                        {
                            order = new OrderHeader(
                                id,
                                reader.GetDateTime(2),
                                reader.GetInt32(1)
                                );
                        }
                        if (!reader.IsDBNull(3))
                        {
                            order.AddOrderItem(
                                reader.GetInt32(3),
                                reader.GetDecimal(5),
                                reader.GetString(4),
                                reader.GetInt32(6)
                                );
                        }
                    }
                    reader.Close();
                    connection.Close();
                }
            return(order);
        }
 private void detach_OrderHeaders(OrderHeader entity)
 {
     this.SendPropertyChanging("OrderHeaders");
     entity.SystemData = null;
 }
 public OrderItem(string productName, int quantity, OrderHeader orderHeader)
 {
     this._productName = productName;
     this._quantity = quantity;
     this._orderHeader = orderHeader;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CSOrderHeaderItemBaseJsonResult"/> class.
 /// </summary>
 /// <param name="header">The order header.</param>
 public CSOrderHeaderItemBaseJsonResult(OrderHeader header)
     : base(header)
 {
     this.DetailsUrl = string.Concat(StorefrontManager.StorefrontUri("/accountmanagement/myorder"), "?id=", header.OrderID);
     this.OrderId = header.OrderID;
 }
 private void detach_OrderHeaders1(OrderHeader entity)
 {
     this.SendPropertyChanging("OrderHeaders1");
     entity.OrderHeader2 = null;
 }
 private void attach_OrderHeaders(OrderHeader entity)
 {
     this.SendPropertyChanging("OrderHeaders");
     entity.OrderHeader1 = this;
 }
 private void detach_OrderHeaders(OrderHeader entity)
 {
     this.SendPropertyChanging("OrderHeaders");
     entity.Dealer = null;
 }