Esempio n. 1
0
 /// <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
     }
 }
Esempio n. 2
0
        /// <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());
        }
Esempio n. 3
0
        public ActionResult DeleteConfirmed(string id)
        {
            OrderDelivery orderDelivery = db.OrderDeliveries.Find(id);

            db.OrderDeliveries.Remove(orderDelivery);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 4
0
        public OrderModel SetDelivery(OrderDelivery delivery)
        {
            var order = GetOrder();

            order.Delivery = delivery;
            orderRepository.Update(order);

            return(Map(order));
        }
Esempio n. 5
0
        public async Task <OrderModel> SetDeliveryAsync(OrderDelivery delivery)
        {
            var order = await GetOrderAsync();

            order.Delivery = delivery;
            await orderRepository.UpdateAsync(order);

            return(await MapAsync(order));
        }
Esempio n. 6
0
 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
     }));
 }
Esempio n. 7
0
 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));
 }
Esempio n. 8
0
 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;
 }
Esempio n. 10
0
        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);
                }
            }
        }
Esempio n. 11
0
        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));
        }
Esempio n. 12
0
        // 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));
        }
Esempio n. 13
0
        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()));
        }
Esempio n. 14
0
 //启动分发
 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);
         }
     }
 }
Esempio n. 15
0
        /// <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)));
        }
Esempio n. 16
0
        /// <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();
        }
Esempio n. 17
0
        /// <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
                });
            }
        }
Esempio n. 18
0
        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)
            {
            }
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
 /// <summary>
 /// 提交表单
 /// </summary>
 protected override object OnSubmit(OrderDelivery saveTo)
 {
     throw new NotSupportedException();
 }
Esempio n. 23
0
        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);
                }
            }
        }
Esempio n. 24
0
        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();
 }
Esempio n. 27
0
        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);
                }
            }
        }
Esempio n. 28
0
        /// <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();
            }
        }
Esempio n. 29
0
 private Task <Result <Unit> > ValidateAddress(OrderDelivery orderDelivery)
 {
     return(orderDelivery.Delivery.ValidateDelivery()
            .Async()
            .Ignore());
 }
Esempio n. 30
0
        private async Task <Result <Unit> > UpdateOrderAddress(OrderDelivery orderDelivery)
        {
            await _dependencies.UpdateOrderAddress(orderDelivery.OrderId, orderDelivery.Delivery.ToEntity());

            return(Result.Unit);
        }