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); }
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 })); }
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); }
public async Task <Order> ShipOrderRows(OrderShipping orderShipping) => await _client.PostAsync <Order>("api/ordershipping", orderShipping);
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"); } }
/// <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 = "设置一个订单失败" }); }
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); }