コード例 #1
0
ファイル: PopService.cs プロジェクト: RyanFu/shoperp
 public void MarkDelivery(Shop shop, string popOrderId, PopPayType payType, string deliveryCompany, string deliveryNumber)
 {
     if (shop.AppEnabled == false)
     {
         throw new Exception("店铺订单发货接口已禁用,无法调用相应接口操作");
     }
     this.InvokeWithRefreshAccessToken(shop, () => GetPop(shop.PopType).MarkDelivery(shop, popOrderId, payType, deliveryCompany, deliveryNumber));
 }
コード例 #2
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            PopPayType type = (PopPayType)value;

            if (type == PopPayType.COD)
            {
                return(Visibility.Visible);
            }
            return(Visibility.Collapsed);
        }
コード例 #3
0
 public DataCollectionResponse <DeliveryOut> GetByAll(PopPayType payType, int shopId, string deliveryCompany, string deliveryNumber, string vendor, string number, string shipper, DateTime startTime, DateTime endTime, int pageIndex, int pageSize)
 {
     try
     {
         return(this.dao.GetByAll(payType, shopId, deliveryCompany, deliveryNumber, vendor, number, shipper, startTime, endTime, pageIndex, pageSize));
     }
     catch (Exception ex)
     {
         throw new WebFaultException <ResponseBase>(new ResponseBase(ex.Message), System.Net.HttpStatusCode.OK);
     }
 }
コード例 #4
0
ファイル: DeliveryOutDao.cs プロジェクト: RyanFu/shoperp
        public DataCollectionResponse <DeliveryOut> GetByAll(PopPayType payType, int shopId, string deliveryCompany, string deliveryNumber, string vendor, string number, string shipper, DateTime startTime, DateTime endTime, int pageIndex, int pageSize)
        {
            string        hsql = "from " + this.GetEntiyName() + " where ";
            List <Object> objs = new List <object>();

            hsql += this.MakeQuery("PopPayType", (int)payType, (int)PopPayType.None);
            hsql += this.MakeQuery("ShopId", shopId);
            hsql += this.MakeQuery("DeliveryCompany", deliveryCompany, objs);
            hsql += this.MakeQuery("DeliveryNumber", deliveryNumber, objs);
            hsql += this.MakeQuery("CreateTime", startTime, true);
            hsql += this.MakeQuery("CreateTime", endTime, false);
            hsql += this.MakeQueryLike("GoodsInfo", vendor, objs);
            hsql += this.MakeQueryLike("GoodsInfo", number, objs);
            hsql += this.MakeQueryLike("Shipper", shipper, objs);
            return(this.GetPage(hsql, pageIndex, pageSize, objs.ToArray()));
        }
コード例 #5
0
ファイル: DeliveryOutService.cs プロジェクト: RyanFu/shoperp
 public DataCollectionResponse <DeliveryOut> GetByAll(PopPayType payType, long shopId, string deliveryCompany,
                                                      string deliveryNumber, string vendor, string number, string shipper, DateTime startTime, DateTime endTime, int pageIndex,
                                                      int pageSize)
 {
     System.Collections.Generic.Dictionary <string, object> para = new System.Collections.Generic.Dictionary <string, object>();
     para["payType"]         = payType;
     para["shopId"]          = shopId;
     para["deliveryCompany"] = deliveryCompany;
     para["deliveryNumber"]  = deliveryNumber;
     para["vendor"]          = vendor;
     para["number"]          = number;
     para["shipper"]         = shipper;
     para["startTime"]       = startTime;
     para["endTime"]         = endTime;
     para["pageIndex"]       = pageIndex;
     para["pageSize"]        = pageSize;
     return(DoPost <DataCollectionResponse <DeliveryOut> >(para));
 }
コード例 #6
0
 public abstract void MarkDelivery(Shop shop, string popOrderId, PopPayType payType, string deliveryCompany, string deliveryNumber);
コード例 #7
0
        /// <summary>
        /// 获取已付款和已打印的订单,同时会调用接口下载订单
        /// </summary>
        /// <param name="payType">支付类型</param>
        /// <returns></returns>
        public static List <Order> DownloadOrder(PopPayType payType, string shipper)
        {
            var allShops             = ServiceContainer.GetService <ShopService>().GetByAll().Datas.Where(obj => obj.Enabled).ToList();
            var allAppEnabledShops   = allShops.Where(obj => obj.AppEnabled).ToArray();
            var allAppUnEnabledShops = allShops.Where(obj => obj.AppEnabled == false).ToArray();

            if (allShops.Count < 1)
            {
                return(new List <Order>());
            }

            string mode = LocalConfigService.GetValue(SystemNames.CONFIG_ORDER_DOWNLOAD_MODE, "").Trim();

            if (mode.Equals("本地读取"))
            {
                return(ServiceContainer.GetService <OrderService>().GetPayedAndPrintedOrders(null, OrderCreateType.NONE, payType, shipper, 0, 0).Datas.OrderBy(obj => obj.ShopId).ToList());
            }

            OrderDownloadWindow win = new OrderDownloadWindow()
            {
                PayType = payType
            };
            var ret = win.ShowDialog();

            if (ret == null || ret.Value == false)
            {
                return(new List <Order>());
            }
            var onlineOrders = win.Orders.Where(obj => obj.PopPayType == payType).ToList();

            if (allAppEnabledShops.Length > 0)
            {
                //对于采用自动下载订单的店铺,需要再读取其手动创建的订单
                var orders = ServiceContainer.GetService <OrderService>().GetPayedAndPrintedOrders(allAppEnabledShops.Select(obj => obj.Id).ToArray(), OrderCreateType.MANUAL, payType, shipper, 0, 0).Datas;
                if (orders.Count > 0)
                {
                    onlineOrders.AddRange(orders);
                }
            }

            if (allAppUnEnabledShops.Length > 0)
            {
                //对于没有自动下载的订单需要读取所有的订单
                var orders = ServiceContainer.GetService <OrderService>().GetPayedAndPrintedOrders(allAppUnEnabledShops.Select(obj => obj.Id).ToArray(), OrderCreateType.NONE, payType, shipper, 0, 0).Datas;
                if (orders.Count > 0)
                {
                    onlineOrders.AddRange(orders);
                }
            }
            if (string.IsNullOrWhiteSpace(shipper))
            {
                return(onlineOrders);
            }

            var retOrders = new List <Order>();

            foreach (var o in onlineOrders)
            {
                if (o.OrderGoodss == null || o.OrderGoodss.Count < 0)
                {
                    continue;
                }

                if (o.OrderGoodss.Any(obj => obj.Shipper.Equals(shipper, StringComparison.OrdinalIgnoreCase)))
                {
                    retOrders.Add(o);
                }
            }

            return(retOrders);
        }
コード例 #8
0
        public float ComputeDeliveryMoneyImpl(string deliveryCompany, string address, bool empty, PopPayType popPayType, float weight)
        {
            try
            {
                var dt = this.GetAllInCach().FirstOrDefault(obj => obj.DeliveryCompany == deliveryCompany && ((obj.OnlinePayTypeUse && popPayType == PopPayType.ONLINE) || (obj.CodPayTypeUse && popPayType == PopPayType.COD)));
                if (dt == null)
                {
                    throw new Exception("未找到匹配的模板");
                }

                if (empty)
                {
                    return(dt.EmptyHotPaperMoney);
                }
                DeliveryTemplateArea da = dt.Areas.FirstOrDefault(obj => string.IsNullOrWhiteSpace(obj.Areas));
                foreach (var v in dt.Areas)
                {
                    if (string.IsNullOrWhiteSpace(v.Areas) || string.IsNullOrWhiteSpace(address))
                    {
                        continue;
                    }
                    string[] ss = v.Areas.Split(SP_Char, StringSplitOptions.RemoveEmptyEntries);
                    //特殊地址
                    if (SPEICAL_ADDRESS.Any(obj => address.Contains(obj)) && ss.Any(obj => address.Contains(obj)))
                    {
                        da = v;
                        break;
                    }

                    if (ss.Any(obj => address.StartsWith(obj)))
                    {
                        da = v;
                        break;
                    }
                }

                if (da == null)
                {
                    throw new Exception("地址与运费模板:" + dt.Name + " 无法匹配且没有配置默认地区运费");
                }
                int iw   = (int)(weight * 100);
                int isw  = (int)(da.StartWeight * 100);
                int isp  = (int)(da.StartPrice * 100);
                int isws = (int)(da.StepWeight * 100);
                int ispp = (int)(da.StepPrice * 100);

                //未超过起始重量,或者起始重量为0表示通票
                if (iw <= isw || isw <= 0)
                {
                    return(isp * 1.0F / 100);
                }

                int money = isp + (iw - isw + isws - 1) / isws * ispp;
                return(money / 100F);
            }
            catch (Exception ex)
            {
                throw new WebFaultException <ResponseBase>(new ResponseBase {
                    error = ex.Message
                }, System.Net.HttpStatusCode.OK);
            }
        }
コード例 #9
0
 public FloatResponse ComputeDeliveryMoney(string deliveryCompany, string address, bool empty, PopPayType popPayType, float weight)
 {
     try
     {
         return(new FloatResponse(ComputeDeliveryMoneyImpl(deliveryCompany, address, empty, popPayType, weight)));
     }
     catch (Exception ex)
     {
         throw new WebFaultException <ResponseBase>(new ResponseBase {
             error = ex.Message
         }, System.Net.HttpStatusCode.OK);
     }
 }
コード例 #10
0
ファイル: TaobaoPop.cs プロジェクト: RyanFu/shoperp
 public override void MarkDelivery(Shop shop, string popOrderId, PopPayType payType, string deliveryCompany, string deliveryNumber)
 {
     throw new NotImplementedException();
 }