コード例 #1
0
ファイル: OrderHelper.cs プロジェクト: zwkjgs/XKD
        public static bool SendGoods(OrderInfo order)
        {
            ManagerHelper.CheckPrivilege(Privilege.OrderSendGoods);
            bool flag = false;

            if (order.CheckAction(OrderActions.SELLER_SEND_GOODS))
            {
                OrderDao orderDao = new OrderDao();
                order.OrderStatus  = OrderStatus.SellerAlreadySent;
                order.ShippingDate = new DateTime?(DateTime.Now);
                flag = orderDao.UpdateOrder(order, null);
                string text = "";
                if (flag)
                {
                    bool flag2 = false;
                    foreach (LineItemInfo current in order.LineItems.Values)
                    {
                        OrderStatus orderItemsStatus = current.OrderItemsStatus;
                        switch (orderItemsStatus)
                        {
                        case OrderStatus.WaitBuyerPay:
                        case OrderStatus.BuyerAlreadyPaid:
                            text = text + "'" + current.SkuId + "',";
                            break;

                        default:
                            if (orderItemsStatus == OrderStatus.ApplyForRefund)
                            {
                                flag2 = true;
                                text  = text + "'" + current.SkuId + "',";
                            }
                            break;
                        }
                    }
                    if (flag2)
                    {
                        orderDao.DeleteReturnRecordForSendGoods(order.OrderId);
                    }
                    if (!string.IsNullOrEmpty(text))
                    {
                        orderDao.UpdateItemsStatus(order.OrderId, 3, text.Substring(0, text.Length - 1));
                    }
                    bool flag3 = true;
                    foreach (LineItemInfo current in order.LineItems.Values)
                    {
                        if (current.Type == 0)
                        {
                            flag3 = false;
                            break;
                        }
                    }
                    if (order.Gateway.ToLower() == "hishop.plugins.payment.podrequest" || flag3)
                    {
                        orderDao.UpdatePayOrderStock(order);
                        foreach (LineItemInfo current in order.LineItems.Values)
                        {
                            text = text + current.SkuId + ",";
                            ProductDao  productDao     = new ProductDao();
                            ProductInfo productDetails = productDao.GetProductDetails(current.ProductId);
                            productDetails.SaleCounts     += current.Quantity;
                            productDetails.ShowSaleCounts += current.Quantity;
                            productDao.UpdateProduct(productDetails, null);
                        }
                    }
                    MemberInfo member = MemberHelper.GetMember(order.UserId);
                    try
                    {
                        if (order != null)
                        {
                            Messenger.SendWeiXinMsg_OrderDeliver(order);
                        }
                    }
                    catch (Exception var_10_293)
                    {
                    }
                    EventLogs.WriteOperationLog(Privilege.OrderSendGoods, string.Format(CultureInfo.InvariantCulture, "发货编号为\"{0}\"的订单", new object[]
                    {
                        order.OrderId
                    }));
                }
            }
            return(flag);
        }
コード例 #2
0
ファイル: OrderHelper.cs プロジェクト: sriramsoftware/wxshop
        public static bool SendGoods(OrderInfo order)
        {
            ManagerHelper.CheckPrivilege(Privilege.OrderSendGoods);
            bool flag = false;

            if (order.CheckAction(OrderActions.SELLER_SEND_GOODS))
            {
                OrderDao dao = new OrderDao();
                order.OrderStatus  = OrderStatus.SellerAlreadySent;
                order.ShippingDate = new DateTime?(DateTime.Now);
                //线下支付,发货时更新付款时间
                if (order.Gateway == "hishop.plugins.payment.offlinerequest")
                {
                    order.PayDate = new DateTime?(DateTime.Now);
                }
                flag = dao.UpdateOrder(order, null);
                string str = "";
                if (!flag)
                {
                    return(flag);
                }
                bool flag2 = false;
                foreach (LineItemInfo info in order.LineItems.Values)
                {
                    OrderStatus orderItemsStatus = info.OrderItemsStatus;
                    switch (orderItemsStatus)
                    {
                    case OrderStatus.WaitBuyerPay:
                    case OrderStatus.BuyerAlreadyPaid:
                        break;

                    default:
                    {
                        if (orderItemsStatus == OrderStatus.ApplyForRefund)
                        {
                            flag2 = true;
                            str   = str + "'" + info.SkuId + "',";
                        }
                        continue;
                    }
                    }
                    str = str + "'" + info.SkuId + "',";
                }
                if (flag2)
                {
                    dao.DeleteReturnRecordForSendGoods(order.OrderId);
                }
                if (!string.IsNullOrEmpty(str))
                {
                    dao.UpdateItemsStatus(order.OrderId, 3, str.Substring(0, str.Length - 1));
                }
                //货到付款 更新库存
                if (order.Gateway.ToLower() == "hishop.plugins.payment.podrequest")
                {
                    dao.UpdatePayOrderStock(order.OrderId);
                    foreach (LineItemInfo info2 in order.LineItems.Values)
                    {
                        str = str + info2.SkuId + ",";
                        ProductDao  dao2           = new ProductDao();
                        ProductInfo productDetails = dao2.GetProductDetails(info2.ProductId);
                        productDetails.SaleCounts     += info2.Quantity;
                        productDetails.ShowSaleCounts += info2.Quantity;
                        dao2.UpdateProduct(productDetails, null);
                    }
                }
                MemberInfo member = MemberHelper.GetMember(order.UserId);
                Messenger.OrderShipping(order, member, order.wid);
                EventLogs.WriteOperationLog(Privilege.OrderSendGoods, string.Format(CultureInfo.InvariantCulture, "发货编号为\"{0}\"的订单", new object[] { order.OrderId }));
            }
            return(flag);
        }