/// <summary> /// 发送新订单 /// </summary> /// <param name="clientId"></param> /// <param name="delivery"></param> public void SendMessage(int clientId, OrderDelivery delivery) { if (SendHeart(clientId)) { Socket yes = null; lock (_lock) { if (_salesClientDict.ContainsKey(clientId)) { yes = _salesClientDict[clientId]; } } var str = JsonConvert.SerializeObject(delivery); try { var head = CreateSendJson(str); yes?.Send(Encoding.UTF8.GetBytes(head)); yes?.Send(Encoding.UTF8.GetBytes(str)); } catch (Exception ex) { _msMq.SendMessageToMq <OrderDelivery>(delivery.OrderId, delivery);//发送 msq } } else { //发送 msq _msMq.SendMessageToMq <OrderDelivery>(delivery.OrderId, delivery);//发送 msq } }
/// <summary> /// 订单明细 /// </summary> /// <param name="user"></param> /// <returns></returns> public ActionResult ProductOrderForm(SysUser user) { //订单 ProductOrder order = ServiceIoc.Get <ProductOrderService>().GetById(bid); //订单发货地址 OrderDelivery delivery = ServiceIoc.Get <OrderDeliveryService>().GetByOrderId(bid); ViewBag.delivery = delivery; //订单详情 List <ProductOrderDetail> order_details = ServiceIoc.Get <ProductOrderDetailService>().GetListByOrderId(bid); if (order == null || order_details == null) { throw new Exception("订单数据异常"); } //物流公司 ViewBag.companys = ServiceIoc.Get <LogisticsCompanyService>().GetAll(); //判断是否为跳转过来的链接 ViewBag.isUrlReferrer = Request.Headers["Referer"].FirstOrDefault() == null ? false : true; ViewBag.order = order; ViewBag.order_details = order_details; return(View()); }
public ActionResult DeleteConfirmed(string id) { OrderDelivery orderDelivery = db.OrderDeliveries.Find(id); db.OrderDeliveries.Remove(orderDelivery); db.SaveChanges(); return(RedirectToAction("Index")); }
public OrderModel SetDelivery(OrderDelivery delivery) { var order = GetOrder(); order.Delivery = delivery; orderRepository.Update(order); return(Map(order)); }
public async Task <OrderModel> SetDeliveryAsync(OrderDelivery delivery) { var order = await GetOrderAsync(); order.Delivery = delivery; await orderRepository.UpdateAsync(order); return(await MapAsync(order)); }
public async Task <Result <UpdateOrderDeliveryMessageResponseDto> > Handle(OrderDelivery orderDelivery) { return(await GetOrder(orderDelivery.OrderId) .Bind(_ => ValidateAddress(orderDelivery)) .Bind(_ => UpdateOrderAddress(orderDelivery)) .Bind(CommitChanges) .MapAsync(success => new UpdateOrderDeliveryMessageResponseDto { Success = success })); }
public ActionResult Edit([Bind(Include = "Reference,Name,Description,AdditionalRate,Hours")] OrderDelivery orderDelivery) { if (ModelState.IsValid) { db.Entry(orderDelivery).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(orderDelivery)); }
private static ExpectedOrderDeliveryMailerModel GetDelivery(OrderDelivery orderDelivery) { return(new ExpectedOrderDeliveryMailerModel { ExpectedDeliveryDate = orderDelivery.ExpectedDeliveryDate, Day = orderDelivery.Day, From = orderDelivery.From, To = orderDelivery.To }); }
public ActionContext(OrderDelivery orderDelivery, RequesterRole requesterRole) { if (!Enum.IsDefined(typeof(RequesterRole), requesterRole)) { throw new InvalidEnumArgumentException(nameof(requesterRole), (int)requesterRole, typeof(RequesterRole)); } OrderDelivery = orderDelivery ?? throw new ArgumentNullException(nameof(orderDelivery)); RequesterRole = requesterRole; }
public static void CopyFromEntity(OrderDetailsDto dto, Order order, string agentAdminMob, bool withDetails) { dto.order_id = order.OrdrID; dto.invoice_number = order.InvoiceNumber; // driver_details : driver_name, driver_image dto.order_date = Common.ToDateFormat(order.OrderDate); // product_details : product_name, quantity, unit_price, sub_total, product_promo, shipping_cost, shipping_promo dto.order_time = order.OrderTime; dto.delivery_date = Common.ToDateFormat(order.DeliveryDate); dto.time_slot_name = order.MDeliverySlot.SlotName; dto.grand_total = order.GrandTotal; dto.order_status = order.MOrderStatu.OrderStatus; dto.agentadmin_mobile = agentAdminMob; OrderDelivery odel = order.OrderDeliveries.Count > 0 ? order.OrderDeliveries.First() : null; if (odel != null) { dto.delivery_status = odel.MDeliveryStatu.DeliveryStatus; if (odel.Driver != null) { DriverDetailsDto drvDto = new DriverDetailsDto(); dto.driver_details = drvDto; CopyFromEntity(drvDto, odel.Driver); //drvDto.driver_name = odel.Driver.DriverName; //drvDto.driver_image = odel.Driver.ProfileImage; } } if (order.OrderDetails.Count > 0) { List <OrderDetail> odetLst = order.OrderDetails.ToList(); dto.product_details = new ProductsDto[odetLst.Count]; for (int i = 0; i < odetLst.Count; i++) { ProductsDto prodDto = new ProductsDto(); CopyFromEntity(prodDto, odetLst[i]); dto.product_details[i] = prodDto; } } dto.has_exchange = (order.OrderPrdocuctExchanges.Count > 0 ? 1 : 0); if (dto.has_exchange == 1) { if (dto.exchange == null) { dto.exchange = new List <ExchangeDto>(); } foreach (var item in order.OrderPrdocuctExchanges) { ExchangeDto exDto = new ExchangeDto(); CopyFromEntity(exDto, item); dto.exchange.Add(exDto); } } }
public ActionResult Create(OrderDelivery orderDelivery) { orderDelivery.Reference = Guid.NewGuid().ToString(); if (ModelState.IsValid) { db.OrderDeliveries.Add(orderDelivery); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(orderDelivery)); }
// GET: OrderDeliveries/Delete/5 public ActionResult Delete(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } OrderDelivery orderDelivery = db.OrderDeliveries.Find(id); if (orderDelivery == null) { return(HttpNotFound()); } return(View(orderDelivery)); }
public void FindTest() { Customer customer = new Customer(); Order order = new Order { OwnerCustomer = customer, }; OrderGoods goods = new OrderGoods { OwnerOrder = order, }; OrderReady ready = new OrderReady(); OrderReadyGoods readyGoods = new OrderReadyGoods { OwnerGoods = goods, }; OrderWarehouse warehouse = new OrderWarehouse { OwnerOrder = order, }; OrderWarehouseGoods warehouseGoods = new OrderWarehouseGoods { OwnerGoods = goods, OwnerWarehouse = warehouse, }; NewOrderWarehouseGoods newWarehouseGoods = new NewOrderWarehouseGoods { OwnerGoods = goods, OwnerWarehouse = warehouse, }; OrderDelivery delivery = new OrderDelivery { OwnerOrder = order, }; OrderDeliveryGoods deliveryGoods = new OrderDeliveryGoods { OwnerGoods = goods, OwnerDelivery = delivery, }; OrderPayment payment = new OrderPayment { OwnerOrder = order, }; DataSourceFinder finder = DataSourceFinder.Instance; Assert.AreSame(customer, finder.Find <Customer>(warehouseGoods)); Assert.AreSame(customer, finder.Find <Customer>(newWarehouseGoods)); Assert.AreSame(customer, finder.Find <Customer>(deliveryGoods)); Assert.AreSame(customer, finder.Find <Customer>(readyGoods)); Assert.AreSame(customer, finder.Find <Customer>(payment)); Assert.IsNull(finder.Find <Customer>(ready)); Assert.IsNull(finder.Find <A>(new C())); }
//启动分发 public void OrderDelivery() { while (true) { Thread.Sleep(1000); try { //var orderAreaList = _operDal.GetDeliveryAreas(); var orderNotSend = _operDal.GeTbOrdersNotSend(); //根据area定义的名字,发送到对一个的socket //发送后,将数据库IsSend状态修改为1 foreach (var item in orderNotSend.GroupBy(x => x.OrderId)) { var orderId = item.Key; var list = new OrderDelivery { Content = new List <OrderContent>() }; var last = new OrderDeliveryModel(); foreach (var p in orderNotSend.Where(x => x.OrderId.Equals(orderId))) { last = p; list.Address = p.Address; list.CreateTime = p.CreateTime; list.OrderId = orderId; list.PhoneNumber = p.PhoneNumber; list.Content.Add(new OrderContent { BuyCnt = p.BuyCnt, CurPrice = p.CurPrice, StockCode = p.StockCode, Name = p.Name }); } list.Address = last.Address; list.CreateTime = last.CreateTime; list.PhoneNumber = last.PhoneNumber; list.OrderId = orderId; list.AreaId = last.AreaId; _dispatcherCore.SendMessage(last.AreaId, list); _operDal.UpdateTbOrdersSend(orderId); } } catch (Exception ex) { AppLogger.Error($"{ex.Message} {ex.StackTrace}", ex); } } }
/// <summary> /// 保存订单物流信息 /// </summary> /// <param name="user"></param> /// <param name="address"></param> /// <returns></returns> public JsonResult SaveOrderLogistic(SysUser user, OrderDelivery address) { StateCode state = StateCode.State_200; try { ProductOrder order = ServiceIoc.Get <ProductOrderService>().GetById(address.order_id); if (order == null) { state = StateCode.State_551; } else { var orderdelivery = ServiceIoc.Get <OrderDeliveryService>().GetByOrderId(address.order_id); if (orderdelivery != null) { state = StateCode.State_555; } else { orderdelivery.province = address.province; orderdelivery.city = address.city; orderdelivery.area = address.area; orderdelivery.address = address.address; orderdelivery.postal_code = address.postal_code; orderdelivery.mobile = address.mobile; orderdelivery.tel = address.tel; orderdelivery.contact = address.contact; orderdelivery.tracking_no = address.tracking_no; orderdelivery.logistic_company = address.logistic_company; ServiceIoc.Get <OrderDeliveryService>().Update(orderdelivery); } } } catch { state = StateCode.State_500; } return(Json(GetResult(state))); }
/// <summary> /// 绑定表单 /// </summary> protected override void OnBind(OrderDelivery bindFrom) { DeliverySerial = bindFrom.Serial; OrderLogistics = new T(bindFrom.Logistics?.Name); LogisticsSerial = bindFrom.LogisticsSerial; DeliveryOperator = new T(bindFrom.Operator?.Username); CreateTime = bindFrom.CreateTime.ToClientTimeString(); var tableBuilder = new StaticTableBuilder(); tableBuilder.Columns.Add("Product"); tableBuilder.Columns.Add("ThisDeliveryQuantity", "130"); foreach (var product in bindFrom.OrderProducts) { var info = product.OrderProduct.ToDisplayInfo(); tableBuilder.Rows.Add(new { Product = info.GetSummaryHtml(), ThisDeliveryQuantity = product.Count }); } DeliveryProductTable = (HtmlString)tableBuilder.ToLiquid(); }
/// <summary> /// 加载订单明细 /// </summary> /// <param name="serial_no"></param> /// <returns></returns> public dynamic GetOrder(long user_id, string serial_no) { using (ISession s = SessionFactory.Instance.CreateSession()) { //查询的字段 string[] files = new string[] { "id", "type", "is_pay", "serial_no", "pay_model", "total_amount", "actual_amount", "discount_amount", "coupon_amount", "status", "refund_status", "created_date", "freight", "user_coupon_id", "coupon_amount" }; ProductOrder order = s.Get <ProductOrder>(files, "where serial_no = @0 and created_user_id = @1", serial_no, user_id); //获取订单详情 order.details = s.List <ProductOrderDetail>("where order_id = @0", order.id); //订单发货信息 OrderDelivery delivery = s.Get <OrderDelivery>("where order_id = @0", order.id); //返回数据 return(new { order, delivery }); } }
private static AddressMailerModel GetAddress(Order order, OrderDelivery delivery) { if (order.User.Kind == ProfileKind.Store) { return new AddressMailerModel { Line1 = order.User.Address.Line1, Line2 = order.User.Address.Line2, Zipcode = order.User.Address.Zipcode, City = order.User.Address.City, } } ; return(new AddressMailerModel { Line1 = delivery.DeliveryMode.Address.Line1, Line2 = delivery.DeliveryMode.Address.Line2, Zipcode = delivery.DeliveryMode.Address.Zipcode, City = delivery.DeliveryMode.Address.City, }); }
public async Task <string> SendMessage(string topic, string order, bool display, int key) { var orderObject = JsonConvert.DeserializeObject <OrderRequest>(order); var deliveryObject = new OrderDelivery { OrderRequestId = orderObject.Id, CurrentLocation = "in store", DeliveredBy = "Donald Duck" }; var message = JsonConvert.SerializeObject(deliveryObject); var msg = new Message <string, string> { Key = key.ToString(), Value = message }; DeliveryResult <string, string> delRep; if (key > 1) { var p = new Partition(key); var tp = new TopicPartition(topic, p); delRep = await producer.ProduceAsync(tp, msg); } else { delRep = await producer.ProduceAsync(topic, msg); } var topicOffset = delRep.TopicPartitionOffset; if (display) { Console.WriteLine($"Delivered '{delRep.Value}' to: {topicOffset}"); } return(message); }
private void LoadDetail(int id) { try { OrderDelivery OrderDelivery = context.OrderDelivery.Include("DeleveryTeam").Include("Order").Include("Stores") .Include("Customers").Where(m => m.Order_Delivery_Id == id).FirstOrDefault(); if (OrderDelivery != null) { Array status = Enum.GetValues(typeof(eOrderDeliveryStatus)); foreach (eOrderDeliveryStatus sts in status) { ddlSorderStatus.Items.Add(new ListItem(sts.ToString())); } OrderDelivery.Order.CustomerAddress = context.CustomerAddres.Where(m => m.CustomerAddress_Id == OrderDelivery.Order.CustomerAddress_Id).FirstOrDefault(); Image1.ImageUrl = "../../" + OrderDelivery.Order.Product_Banner; lblBCTitle.Text = OrderDelivery.Order.Product_Title; lblProductTitle.Text = OrderDelivery.Order.Product_Title; lblCustomerName.Text = OrderDelivery.Order.Customer_Name; lblStore.Text = OrderDelivery.Stores.Store_Name; lblCustomerName.Text = OrderDelivery.Order.Customer_Name; lblAddress1.Text = OrderDelivery.Order.CustomerAddress.Customer_AddressLine1; lblAddress2.Text = OrderDelivery.Order.CustomerAddress.Customer_AddressLine2; lblCity.Text = OrderDelivery.Order.CustomerAddress.CustomerAddress_City; lblState.Text = OrderDelivery.Order.CustomerAddress.CustomerAddress_State; lblCountry.Text = OrderDelivery.Order.CustomerAddress.CustomerAddress_Country; lblZipCode.Text = OrderDelivery.Order.CustomerAddress.CustomerAddress_ZipCode; lblEmailId.Text = OrderDelivery.Customers.Customers_EmailId; lblPhoneNumber.Text = OrderDelivery.Customers.Customers_Phone; ddlSorderStatus.SelectedValue = OrderDelivery.Status; txtOrderDescription.Text = OrderDelivery.Comment; hdnOrderId.Value = OrderDelivery.Order_Id.ToString(); } } catch (Exception ex) { } }
public OrderDeliveryModel StoreDeliveryDetails(OrderDeliveryModel model, int orderId) { if (orderId <= 0) { throw new Exception("Invalid Order"); } var delivery = new OrderDelivery() { CreatedDate = DateTime.Now, DeliveryAddress = model.DeliveryAddress, FullName = model.FullName, PhoneNumber = model.PhoneNumber, OrderId = orderId }; _context.Set <OrderDelivery>().Add(delivery); _context.SaveChanges(); model.OrderDeliveryId = delivery.OrderDeliveryId; return(model); }
/// <summary> /// 提交表单 /// </summary> protected override object OnSubmit(OrderDelivery saveTo) { throw new NotSupportedException(); }
public static void CopyFromEntity(OrderFullDetailsBossDto dto, Order order, Driver drv = null) { dto.order_id = order.OrdrID; dto.order_date = Common.ToDateFormat(order.OrderDate); dto.delivery_date = Common.ToDateFormat(order.DeliveryDate); if (!(order.MDeliverySlot == null)) { dto.time_slot_id = order.MDeliverySlot.SlotID; dto.time_slot_name = order.MDeliverySlot.SlotName; } dto.invoice_number = order.InvoiceNumber; dto.order_status = order.StatusID; dto.consumer_name = order.Consumer?.Name; dto.consumer_mobile = order.Consumer?.PhoneNumber; dto.consumer_address = order.ConsumerAddress?.Address; dto.grand_total = order.GrandTotal; if (order.OrderDeliveries != null && order.OrderDeliveries.Count > 0) { OrderDelivery od = order.OrderDeliveries.First(); dto.driver_details = new DriverDetailsBossDto(); drv = od.Driver; if (drv != null) { CopyFromEntity(dto.driver_details, drv); dto.driver_details.delivery_status = od.StatusId; } } List <ProductsBossDto> pdtos = new List <ProductsBossDto>(); foreach (OrderDetail det in order.OrderDetails) { ProductsBossDto pdt = new ProductsBossDto(); pdt.product_name = det.Product?.ProductName; pdt.product_promo = det.PromoProduct; pdt.quantity = det.Quantity; pdt.shipping_cost = det.ShippingCharge; pdt.shipping_promo = det.PromoShipping; pdt.sub_total = det.SubTotal; pdt.unit_price = det.UnitPrice; pdt.refill_price = det.RefillPrice; pdt.refill_promo = det.PromoRefill; pdt.refill_quantity = det.RefillQuantity; pdt.grand_total = det.TotamAmount; pdtos.Add(pdt); } dto.product_details = pdtos; dto.has_exchange = (order.OrderPrdocuctExchanges.Count > 0 ? 1 : 0); if (dto.has_exchange == 1) { if (dto.exchange == null) { dto.exchange = new List <ExchangeDto>(); } foreach (var item in order.OrderPrdocuctExchanges) { ExchangeDto exDto = new ExchangeDto(); CopyFromEntity(exDto, item); dto.exchange.Add(exDto); } } }
public static void CopyFromEntity(OrderFullDetailsDto dto, Order order, Driver drv = null) { dto.order_id = order.OrdrID; dto.delivery_date = Common.ToDateFormat(order.DeliveryDate); dto.delivery_time_slot = order.MDeliverySlot.SlotName; dto.invoice_number = order.InvoiceNumber; dto.order_status = order.StatusID; dto.order_date = Common.ToDateFormat(order.OrderDate); dto.consumer_name = order.Consumer.Name; dto.consumer_mobile = order.Consumer.PhoneNumber; dto.consumer_address = order.ConsumerAddress.Address; dto.consumer_location = order.ConsumerAddress.RegionName; dto.driver = new DriverDetailsDto(); if (order.OrderDeliveries.Count > 0) { OrderDelivery od = order.OrderDeliveries.First(); dto.driver = new DriverDetailsDto(); if (drv == null) { drv = od.Driver; } CopyFromEntity(dto.driver, drv); //dto.driver.driver_id = od.Driver.DrvrID; //dto.driver.driver_image = od.Driver.ProfileImage; //dto.driver.driver_mobile = od.Driver.MobileNumber; //dto.driver.driver_name = od.Driver.DriverName; ////dto.driver.driver_rating = od.Driver.ra } List <ProductsDto> pdtos = new List <ProductsDto>(); foreach (OrderDetail det in order.OrderDetails) { ProductsDto pdt = new ProductsDto(); pdt.product_id = det.Product.ProdID; pdt.product_name = det.Product.ProductName; pdt.product_promo = det.PromoProduct; pdt.quantity = det.Quantity; pdt.shipping_cost = det.ShippingCharge; pdt.shipping_promo = det.PromoShipping; pdt.sub_total = det.SubTotal; pdt.unit_price = det.UnitPrice; pdt.refill_price = det.RefillPrice; pdt.refill_promo = det.PromoRefill; pdt.refill_quantity = det.RefillQuantity; pdtos.Add(pdt); } dto.grand_total = order.GrandTotal; dto.products = pdtos.ToArray(); dto.has_exchange = (order.OrderPrdocuctExchanges.Count > 0 ? 1 : 0); if (dto.has_exchange == 1) { if (dto.exchange == null) { dto.exchange = new List <ExchangeDto>(); } foreach (var item in order.OrderPrdocuctExchanges) { ExchangeDto exDto = new ExchangeDto(); OrdersHelper.CopyFromEntity(exDto, item); dto.exchange.Add(exDto); } } }
public void InsertDelivery(OrderDelivery odel) { _context.OrderDeliveries.Add(odel); _context.SaveChanges(); }
public void UpdateDelivery(OrderDelivery odel) { _context.Entry(odel).State = System.Data.EntityState.Modified; _context.SaveChanges(); }
protected void Button1_Click(object sender, EventArgs e) { string _res = string.Empty; using (var ctx = new RachnaDBContext()) { int productId = Convert.ToInt32(hdnOrderId.Value); Order _productOrder = new Order(); _productOrder = ctx.Orders.ToList().Where(m => m.Order_Id == productId).FirstOrDefault(); if (_productOrder.Order_Status != eOrderStatus.Rejected.ToString()) { if (_productOrder.Order_Status != ddlSorderStatus.Text) { if (_productOrder.Order_Status == eOrderStatus.Approved.ToString() && ddlSorderStatus.Text == eOrderStatus.Placed.ToString()) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Order", "new Messi('update failed because, order status is lower then current.', { title: 'Failed!! ' });", true); } else if (_productOrder.Order_Status == eOrderStatus.Packed.ToString() && (ddlSorderStatus.Text == eOrderStatus.Placed.ToString() || ddlSorderStatus.Text == eOrderStatus.Approved.ToString() || ddlSorderStatus.Text == eOrderStatus.Packed.ToString())) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Order", "new Messi('update failed because, order status is lower then current.', { title: 'Failed!! ' });", true); } else if (_productOrder.Order_Status == eOrderStatus.Shipped.ToString() && (ddlSorderStatus.Text == eOrderStatus.Placed.ToString() || ddlSorderStatus.Text == eOrderStatus.Approved.ToString())) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Order", "new Messi('update failed because, order status is lower then current.', { title: 'Failed!! ' });", true); } else if (ddlSorderStatus.Text == eOrderStatus.Placed.ToString() || ddlSorderStatus.Text == eOrderStatus.Approved.ToString() || ddlSorderStatus.Text == eOrderStatus.Packed.ToString() || ddlSorderStatus.Text == eOrderStatus.Shipped.ToString()) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Order", "new Messi('update failed because, order status is lower then current.', { title: 'Failed!! ' });", true); } else { _productOrder.Order_Status = ddlSorderStatus.Text; ctx.Entry(_productOrder).State = EntityState.Modified; ctx.SaveChanges(); var adminId = Convert.ToInt32(Session[ConfigurationSettings.AppSettings["AdminSession"].ToString()]); Administrators _adm = ctx.Administrator.Where(m => m.Administrators_Id == adminId).FirstOrDefault(); OrderHistory _orderCancel = new OrderHistory(); _orderCancel.Order_Id = Convert.ToInt32(hdnOrderId.Value); _orderCancel.OrderHistory_Description = txtOrderDescription.Text; _orderCancel.OrderHistory_Status = ddlSorderStatus.Text; _orderCancel.OrderHistory_CreatedDate = DateTime.Now; _orderCancel.OrderHistory_UpdatedDate = DateTime.Now; _orderCancel.Administrators_Id = _adm.Administrators_Id; _orderCancel.Store_Id = _adm.Store_Id; ctx.OrderHistories.Add(_orderCancel); ctx.SaveChanges(); if (pnlDeleveryTeam.Visible == true) { OrderDelivery OrderDelivery = new OrderDelivery() { Order_Id = _productOrder.Order_Id, Administrators_Id = Convert.ToInt32(Session[ConfigurationSettings.AppSettings["AdminSession"].ToString()].ToString()), TeamId = Convert.ToInt32(ddlDelieveryTeam.SelectedValue.ToString()), Comment = txtOrderDescription.Text, Status = eOrderDeliveryStatus.InTransist.ToString(), Store_Id = _productOrder.Store_Id, Customer_Id = _productOrder.Customer_Id, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; ctx.OrderDelivery.Add(OrderDelivery); ctx.SaveChanges(); } Customers _cust = ctx.Customer.ToList().Where(m => m.Customer_Id == Convert.ToInt32(_productOrder.Customer_Id)).FirstOrDefault(); string productUrl = "http://rachnateracotta.com/product/index?id=" + _productOrder.Product_Id; _res = _res + "<tr style='border: 1px solid black;'><td style='border: 1px solid black;'><img src='" + _productOrder.Product_Banner + "' width='100' height='100'/></td>" + "<td style='border: 1px solid black;'><a href='" + productUrl + "'>" + _productOrder.Product_Title + "</a></td><td style='border: 1px solid black;'> Total Quantity :" + _productOrder.Order_Qty + " </td><td style='border: 1px solid black;'> " + _productOrder.Order_Price + " </td></tr>"; if (Convert.ToBoolean(ConfigurationSettings.AppSettings["IsEmailEnable"])) { string host = string.Empty; host = "<table style='width:100%'>" + _res + "</ table >"; string body = MailHelper.CustomerOrderProcessed(host, (_cust.Customers_FullName), txtOrderDescription.Text); MailHelper.SendEmail(_cust.Customers_EmailId, "Success!!! " + txtOrderDescription.Text + " Rachna Teracotta Estore.", body, "Rachna Teracotta Order" + txtOrderDescription.Text); } Response.Redirect("/adminvendor/salesmanagement/vorderdetail.aspx?orderId=" + hdnOrderId.Value + "&requesttype=view-order-detail.html"); } } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "Order", "new Messi('update failed because, order status is same as current.', { title: 'Failed!! ' });", true); } } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "Order", "new Messi('update failed because, order status is not valid.', { title: 'Failed!! ' });", true); } } }
/// <summary> /// 发货 /// </summary> /// <param name="model"></param> public ServiceResult Delivery(OrderEditDelivery model) { var order = Resolve <IOrderService>().GetSingle(model.OrderId); if (order == null) { return(ServiceResult.Failure("订单不存在")); } // 发货数量 if (!model.DeliveryProducts.IsNullOrEmpty()) { model.DeliveryProductSkus = model.DeliveryProducts.Deserialize <OrderEditDeliveryProduct>(); } else { return(ServiceResult.Failure("发货数据异常,请重新操作!")); } if (model.DeliveryProductSkus.Sum(e => e.Count) <= 0) { return(ServiceResult.Failure("发货总数量不能为0")); } var orderDelivery = new OrderDelivery { TotalCount = model.DeliveryProductSkus.Sum(e => e.Count), StoreId = order.StoreId, UserId = model.AdminUserId, ExpressGuid = model.ExpressGuid, ExpressNumber = model.ExpressNumber, OrderId = model.OrderId }; // 发货快照 var AdminUser = Resolve <IUserService>().GetSingle(model.AdminUserId); orderDelivery.OrderDeliveryExtension = new OrderDeliveryExtension { Order = order, AdminUser = AdminUser }; // 订单状态判定 var Judgement = true; //查看订单历史发货记录 var Deliverys = Resolve <IOrderDeliveryService>().GetOrderDeliveries(order.Id); IList <ProductDeliveryInfo> productDeliveryInfos = new List <ProductDeliveryInfo>(); if (Deliverys.Count > 0) { foreach (var item in Deliverys) { productDeliveryInfos.AddRange(item.OrderDeliveryExtension.ProductDeliveryInfo); } // 已发货数量 var Records = from ProductDeliveryInfo p in productDeliveryInfos group p by p.ProductSkuId into g select new { skuId = g.Key, Count = g.Sum(e => e.Count) }; foreach (var sku in model.DeliveryProductSkus) { var item = order.OrderExtension.ProductSkuItems.SingleOrDefault(e => e.ProductSkuId == sku.SkuId); var record = Records.SingleOrDefault(e => e.skuId == sku.SkuId); if (record == null) { record = new { skuId = sku.SkuId, Count = 0L }; } var productDeliveryInfo = AutoMapping.SetValue <ProductDeliveryInfo>(item); productDeliveryInfo.Count = sku.Count; if (sku.Count + record.Count > item.BuyCount) { return(ServiceResult.Failure($"{item.Bn}{item.PropertyValueDesc}的发货数量不能超过购买数量")); } if (sku.Count + record.Count != item.BuyCount) { Judgement = false; } orderDelivery.OrderDeliveryExtension.ProductDeliveryInfo.Add(productDeliveryInfo); } } else { foreach (var sku in model.DeliveryProductSkus) { var item = order.OrderExtension.ProductSkuItems.SingleOrDefault(e => e.ProductSkuId == sku.SkuId); var productDeliveryInfo = AutoMapping.SetValue <ProductDeliveryInfo>(item); productDeliveryInfo.Count = sku.Count; if (sku.Count > item.BuyCount) { return(ServiceResult.Failure($"{item.Bn}{item.PropertyValueDesc}的发货数量不能超过购买数量")); } if (sku.Count != item.BuyCount) { Judgement = false; } orderDelivery.OrderDeliveryExtension.ProductDeliveryInfo.Add(productDeliveryInfo); } } orderDelivery.Extension = ObjectExtension.ToJson(orderDelivery.OrderDeliveryExtension); if (Judgement) { order.OrderStatus = OrderStatus.WaitingReceiptProduct; } else { order.OrderStatus = OrderStatus.WaitingSellerSendGoods; } var context = Repository <IOrderRepository>().RepositoryContext; context.BeginTransaction(); try { Resolve <IOrderDeliveryService>().Add(orderDelivery); //添加操作记录 Add(order, AdminUser, OrderActionType.AdminDelivery); //修改订单状态 Resolve <IOrderService>().Update(order); context.SaveChanges(); context.CommitTransaction(); return(ServiceResult.Success); } catch (Exception ex) { context.RollbackTransaction(); return(ServiceResult.Failure("更新失败:" + ex.Message)); } finally { context.DisposeTransaction(); } }
private Task <Result <Unit> > ValidateAddress(OrderDelivery orderDelivery) { return(orderDelivery.Delivery.ValidateDelivery() .Async() .Ignore()); }
private async Task <Result <Unit> > UpdateOrderAddress(OrderDelivery orderDelivery) { await _dependencies.UpdateOrderAddress(orderDelivery.OrderId, orderDelivery.Delivery.ToEntity()); return(Result.Unit); }