Example #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            Product = await _db.Products.FindAsync(Id);

            if (ModelState.IsValid)
            {
                var body = $@"<p>Thank you, we have received your order for {OrderQuantity} unit(s) of {Product.Name}!</p>
                <p>Your address is: <br/>{OrderShipping.Replace("\n", "<br/>")}</p>
                Your total is ${Product.Price * OrderQuantity}.<br/>
                We will contact you if we have questions about your order.  Thanks!<br/>";
                using (var smtp = new SmtpClient())
                {
                    var wwwRoot = _env.ContentRootPath + "\\wwwroot\\";
                    smtp.DeliveryMethod          = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                    smtp.PickupDirectoryLocation = wwwRoot;
                    var message = new MailMessage();
                    message.To.Add(OrderEmail);
                    message.Subject    = "Fourth Coffee - New Order";
                    message.Body       = body;
                    message.IsBodyHtml = true;
                    message.From       = new MailAddress("*****@*****.**");
                    await smtp.SendMailAsync(message);
                }

                return(RedirectToPage("OrderSuccess"));
            }
            return(Page());
        }
        public static bool HasItemsToDeliver(this OrderShipping orderShipping)
        {
            if (orderShipping == null)
            {
                throw new ArgumentNullException("orderShipping");
            }

            foreach (var orderShippingItem in orderShipping.OrderShippingItems)
            {
                //we can ship only shippable products
                if (!orderShippingItem.OrderItem.Product.IsShipEnabled)
                {
                    continue;
                }

                var totalNumberOfShippedItems   = orderShippingItem.GetTotalNumberOfShippedItems();
                var totalNumberOfDeliveredItems = orderShippingItem.GetTotalNumberOfDeliveredItems();
                if (totalNumberOfShippedItems <= totalNumberOfDeliveredItems)
                {
                    continue;
                }

                //yes, we have at least one item to deliver
                return(true);
            }
            return(false);
        }
        public static bool HasItemsToAddToShipment(this OrderShipping orderShipping)
        {
            if (orderShipping == null)
            {
                throw new ArgumentNullException("orderShipping");
            }

            foreach (var orderShippingItem in orderShipping.OrderShippingItems)
            {
                //we can ship only shippable products
                if (!orderShippingItem.OrderItem.Product.IsShipEnabled)
                {
                    continue;
                }

                var totalNumberOfItemsCanBeAddedToShipment =
                    orderShippingItem.GetTotalNumberOfItemsCanBeAddedToShipment();
                if (totalNumberOfItemsCanBeAddedToShipment <= 0)
                {
                    continue;
                }

                //yes, we have at least one item to create a new shipment
                return(true);
            }
            return(false);
        }
Example #4
0
        public int InsertOrderShipping(OrderShipping model)
        {
            string sql = @" INSERT INTO [dbo].[OrderShipping](OrderId, Name, Mobile, Province, City, District, Address,
						PostCode, Sort, Status, Creator, CreateTime, IsDeleted) values( @OrderId, @Receiver, @Mobile,
						@Province, @City, @District, @Address, @PostCode, 0, 1, 'admin', GETDATE(), 0) "                        ;

            return(DbManage.Execute(sql, new { OrderId = model.OrderId, Receiver = model.Name, Mobile = model.Mobile, Province = model.Province, City = model.City, District = model.District, Address = model.Address, PostCode = model.PostCode }));
        }
Example #5
0
        public void UpdateOrderShipping(OrderShipping orderShipping)
        {
            if (orderShipping == null)
            {
                throw new ArgumentNullException("orderShipping");
            }

            _orderShippingRepository.Update(orderShipping);

            //event notification
            _eventPublisher.EntityUpdated(orderShipping);
        }
        public int AddShiping(ShippingVM obj)
        {
            OrderShipping model = new OrderShipping();

            using (ApplicationDbContext _context = new ApplicationDbContext())
            {
                model.firstName = obj.firstName;
                model.lastName  = obj.lastName;
                model.address   = obj.address;
                model.email     = obj.email;
                model.phone     = obj.phone;
                model.City      = obj.city;
                model.Country   = obj.country;
                _context.OrderShippings.Add(model);
                _context.SaveChanges();
            }

            return(model.Id);
        }
Example #7
0
 public async Task <Order> ShipOrderRows(OrderShipping orderShipping) =>
 await _client.PostAsync <Order>("api/ordershipping", orderShipping);
Example #8
0
        private async void Button_Clicked(object sender, EventArgs e)
        {
            activityIndicator.IsVisible = true;

            var    firstname   = first_entry.Text;
            var    lastname    = last_entry.Text;
            var    companyname = company_entry.Text;
            var    country     = country_entry.Text;
            var    address1    = address1_entry.Text;
            var    address2    = address2_entry.Text;
            var    city        = suburb_entry.Text;
            string state       = state_picker.Items[state_picker.SelectedIndex];
            var    postcode    = postcode_entry.Text;
            var    phone       = phone_entry.Text;
            var    email       = email_entry.Text;
            var    note        = note_entry.Text;

            if (String.IsNullOrWhiteSpace(firstname) ||
                String.IsNullOrWhiteSpace(lastname) ||
                String.IsNullOrWhiteSpace(lastname) ||
                String.IsNullOrWhiteSpace(address1) ||
                String.IsNullOrWhiteSpace(city) ||
                String.IsNullOrWhiteSpace(postcode) ||
                String.IsNullOrWhiteSpace(phone) ||
                String.IsNullOrWhiteSpace(email))
            {
                await DisplayAlert("Error", "Please input all the required fields.", "OK");

                activityIndicator.IsVisible = false;
                return;
            }
            content.IsVisible = false;
            if (getways.Count <= 0)
            {
                return;
            }
            var getway = getways[payment_picker.SelectedIndex];

            OrderBilling billing = new OrderBilling
            {
                first_name = firstname,
                last_name  = lastname,
                company    = companyname,
                address_1  = address1,
                address_2  = address2,
                city       = city,
                state      = state,
                postcode   = postcode,
                phone      = phone,
                email      = email
            };

            OrderShipping shipping = new OrderShipping
            {
                first_name = firstname,
                last_name  = lastname,
                company    = companyname,
                address_1  = address1,
                address_2  = address2,
                city       = city,
                state      = state,
                postcode   = postcode
            };


            Order order = new Order
            {
                payment_method       = getway.id,
                payment_method_title = getway.method_title,
                set_paid             = true,
                billing        = billing,
                shipping       = shipping,
                line_items     = lineItemsList,
                shipping_lines = shippingLinesList,
                customer_note  = note
            };

            try
            {
                var response = await App.wc.Order.Add(order);

                await Navigation.PushModalAsync(new CheckoutPage(response));

                await Navigation.PopAsync();
            }
            catch (Exception ex)
            {
                Debug.WriteLine("ERROR {0}", ex.Message);
                activityIndicator.IsVisible = false;
                content.IsVisible           = true;
                await DisplayAlert("Error", "Could not place the order. Please check you input and try again.", "Ok");
            }
        }
Example #9
0
        /// <summary>
        ///  打印订单状态变为2(已发货)
        /// </summary>
        /// <param name="ucopDto">参数</param>
        /// <param name="commodityOrder">订单信息</param>
        /// <returns></returns>
        private ResultDTO UpdateOrderStateTo2(UpdateCommodityOrderParamDTO ucopDto, CommodityOrder commodityOrder, UpdatePrintDTO orders)
        {
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                DateTime       now            = DateTime.Now;
                int            oldState       = commodityOrder.State;
                int            newState       = ucopDto.targetState;

                #region 退款
                var orderRefund = new CommodityOrderBP().getOrderRefund(ucopDto.orderId);
                if (orderRefund != null)
                {
                    orderRefund.State = 2;

                    orderRefund.ModifiedOn = now;
                }
                #endregion

                if (!OrderSV.CanChangeState(newState, commodityOrder, orderRefund, null, null))
                {
                    return(new ResultDTO()
                    {
                        ResultCode = 1, Message = "订单状态修改错误"
                    });
                }

                #region 订单
                string shipExpCo  = orders.ShipName;
                string expOrderNo = orders.Orders.Find(r => r.OrderId == ucopDto.orderId).ExpressOrder;
                commodityOrder.ShipExpCo  = string.IsNullOrWhiteSpace(shipExpCo) ? "" : shipExpCo.Trim();
                commodityOrder.ExpOrderNo = string.IsNullOrWhiteSpace(expOrderNo) ? "" : expOrderNo.Trim();
                commodityOrder.ExpOrderNo = commodityOrder.ExpOrderNo.Replace("+", "");

                commodityOrder.State = ucopDto.targetState;
                //更新发货时间
                commodityOrder.ShipmentsTime = now;
                if (commodityOrder.IsRefund == true)
                {
                    commodityOrder.IsRefund = false;
                }
                commodityOrder.EntityState = EntityState.Modified;
                commodityOrder.ModifiedOn  = now;
                #endregion

                #region 保存物流子表
                //保存物流子表
                OrderShipping orderShipping = OrderShipping.CreateOrderShipping();
                orderShipping.OrderId    = ucopDto.orderId;
                orderShipping.ShipExpCo  = commodityOrder.ShipExpCo;
                orderShipping.ExpOrderNo = commodityOrder.ExpOrderNo;
                contextSession.SaveObject(orderShipping);
                #endregion

                #region 订单日志
                Journal journal = Journal.CreateJournal(ucopDto, commodityOrder, oldState, "商家已发货");
                contextSession.SaveObject(journal);
                #endregion

                return(new ResultDTO()
                {
                    ResultCode = 0, Message = "设置一个订单成功"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("打印订单状态变为2(已发货)。UpdateOrderStateTo2:{0}", JsonHelper.JsonSerializer(ucopDto)), ex);
            }
            return(new ResultDTO()
            {
                ResultCode = 1, Message = "设置一个订单失败"
            });
        }
Example #10
0
        public bool AddOrder(string Payment, string PaymentDate, string CommentBox, List <CartItem> MyCart)//
        {
            IList <string> segments = Request.GetFriendlyUrlSegments();

            using (ProductContext _db = new ProductContext())
            {
                //Create new order
                var myOrder = new Order();
                myOrder.OrderDate = System.DateTime.Now;
                myOrder.Total     = orderTotal;
                myOrder.Status    = Status.Processing;
                if (Payment == "")
                {
                    myOrder.Payment = "";
                }
                else
                {
                    myOrder.Payment = Payment;
                }
                if (PaymentDate == "")
                {
                    myOrder.PaymentDate = null;
                }
                else
                {
                    myOrder.PaymentDate = Convert.ToDateTime(PaymentDate);
                }
                myOrder.ContactId = int.Parse(segments[0]);
                myOrder.Comment   = CommentBox;
                _db.Orders.Add(myOrder);

                //Create new Shipping Address to Link to myOrder
                var myShipping         = new Shipping();
                var myExistingShipping = _db.Shippings.Find(int.Parse(segments[1]));
                myShipping.Company     = myExistingShipping.Company;
                myShipping.LName       = myExistingShipping.LName;
                myShipping.FName       = myExistingShipping.FName;
                myShipping.Other1      = myExistingShipping.Other1;
                myShipping.Other2      = myExistingShipping.Other2;
                myShipping.Address1    = myExistingShipping.Address1;
                myShipping.Address2    = myExistingShipping.Address2;
                myShipping.City        = myExistingShipping.City;
                myShipping.State       = myExistingShipping.State;
                myShipping.PostalCode  = myExistingShipping.PostalCode;
                myShipping.Country     = myExistingShipping.Country;
                myShipping.ContactId   = myExistingShipping.ContactId;
                myShipping.PPhone      = myExistingShipping.PPhone;
                myShipping.isHistory   = true;
                myShipping.SType       = SType.Shipping;
                myShipping.DateCreated = System.DateTime.Now;
                _db.Shippings.Add(myShipping);

                //create OrderShipping for shipping
                var myOrderShipping1 = new OrderShipping();
                myOrderShipping1.ShippingId = myShipping.ShippingId;
                myOrderShipping1.OrderId    = myOrder.OrderId;
                _db.OrderShippings.Add(myOrderShipping1);

                _db.SaveChanges();

                //Create new Billing Address to Link to myOrder
                var myBilling         = new Shipping();
                var myExistingBilling = _db.Shippings.Find(int.Parse(segments[2]));
                myBilling.Company     = myExistingBilling.Company;
                myBilling.LName       = myExistingBilling.LName;
                myBilling.FName       = myExistingBilling.FName;
                myBilling.Other1      = myExistingBilling.Other1;
                myBilling.Other2      = myExistingBilling.Other2;
                myBilling.Address1    = myExistingBilling.Address1;
                myBilling.Address2    = myExistingBilling.Address2;
                myBilling.City        = myExistingBilling.City;
                myBilling.State       = myExistingBilling.State;
                myBilling.PostalCode  = myExistingBilling.PostalCode;
                myBilling.Country     = myExistingBilling.Country;
                myBilling.ContactId   = myExistingBilling.ContactId;
                myBilling.PPhone      = myExistingBilling.PPhone;
                myBilling.isHistory   = true;
                myBilling.SType       = SType.Billing;
                myBilling.DateCreated = System.DateTime.Now;
                _db.Shippings.Add(myBilling);

                //create OrderShipping for billing
                var myOrderShipping2 = new OrderShipping();
                myOrderShipping2.ShippingId = myBilling.ShippingId;
                myOrderShipping2.OrderId    = myOrder.OrderId;
                _db.OrderShippings.Add(myOrderShipping2);

                //Add OrderDetail
                foreach (var cartItem in MyCart)
                {
                    var myOrderDetail = new OrderDetail();
                    myOrderDetail.OrderId      = myOrder.OrderId;
                    myOrderDetail.ProductId    = cartItem.ProductId;
                    myOrderDetail.Quantity     = cartItem.Quantity;
                    myOrderDetail.QtyShipped   = 0;
                    myOrderDetail.QtyCancelled = 0;
                    myOrderDetail.DateCreated  = myOrder.OrderDate;
                    myOrderDetail.UnitPrice    = cartItem.ItemPrice;

                    // Add product to DB.
                    _db.OrderDetails.Add(myOrderDetail);

                    //Save Changes
                    _db.SaveChanges();
                }
            }
            // Success.
            return(true);
        }