Beispiel #1
0
 void BindOrderHeadData(SoOrder order, OrderHead head, CBFnOnlinePayment payment, SoReceiveAddress srenity, string buyer_idcard, string District, string City, string Province,
                        WhWarehouse warehouseMod, BsArea wareDistrictEntity, BsArea wareCityEntity, BsArea wareProvinceEntity)
 {
     head.cbeCode            = config2.CIECode;
     head.cbeName            = config2.CIEName;
     head.ecpCode            = config2.CIECode;
     head.ecpName            = config2.CIEName;
     head.orderNo            = payment.BusinessOrderSysNo;
     head.charge             = order.OrderAmount;
     head.goodsValue         = order.ProductAmount;
     head.freight            = order.FreightAmount;
     head.other              = 0;
     head.tax                = order.TaxFee;
     head.currency           = "142";
     head.customer           = srenity.Name;
     head.shipper            = warehouseMod.Contact;
     head.shipperAddress     = wareProvinceEntity.AreaName + " " + wareCityEntity.AreaName + " " + wareDistrictEntity.AreaName + " " + warehouseMod.StreetAddress;
     head.shipperTelephone   = warehouseMod.Phone;
     head.consignee          = srenity.Name;
     head.consigneeAddress   = Province + " " + City + " " + District + " " + srenity.StreetAddress;
     head.consigneeTelephone = srenity.MobilePhoneNumber;
     head.idType             = "1";
     head.customerId         = srenity.IDCardNo;
     head.accessType         = "1";
     head.ieType             = "I";
     head.modifyMark         = "1";
     head.appTime            = DateTime.Now.ToString("yyyyMMddHHmmss");
     head.appStatus          = "2";
 }
Beispiel #2
0
 /// <summary>
 /// 更新地区信息
 /// </summary>
 /// <param name="model">地区信息实体,根据sysno</param>
 /// <returns>受影响的行数</returns>
 /// <remarks>
 /// 2013-08-02 郑荣华 创建
 /// </remarks>
 public override int Update(BsArea model)
 {
     return(Context.Update("BsArea", model)
            .AutoMap(x => x.SysNo, x => x.CreatedBy, x => x.CreatedDate)
            .Where(x => x.SysNo)
            .Execute());
 }
Beispiel #3
0
        /// <summary>
        /// 根据地区编号,获取省市区信息
        /// </summary>
        /// <param name="sysNo">地区编号</param>
        /// <param name="cityEntity">城市信息</param>
        /// <param name="areaEntity">地区信息</param>
        /// <returns>区域信息</returns>
        /// <remarks>
        /// 2013-06-14 朱成果 创建
        /// </remarks>
        public BsArea GetProvinceEntity(int sysNo, out BsArea cityEntity, out BsArea areaEntity)
        {
            //优化 return IBsAreaDao.Instance.GetProvinceEntity(sysNo, out cityEntity, out areaEntity);
            cityEntity = null;
            areaEntity = null;
            BsArea provinceEntity = null;
            BsArea model          = GetArea(sysNo);

            //地区信息不存在
            while (model != null && model.AreaLevel >= 1)
            {
                switch (model.AreaLevel)
                {
                //省
                case 1:
                    provinceEntity = new BsArea
                    {
                        AreaCode     = model.AreaCode,
                        NameAcronym  = model.NameAcronym,
                        DisplayOrder = model.DisplayOrder,
                        ParentSysNo  = model.ParentSysNo,
                        AreaName     = model.AreaName,
                        AreaLevel    = model.AreaLevel,
                        SysNo        = model.SysNo
                    };
                    break;

                //市
                case 2:
                    cityEntity = new BsArea
                    {
                        AreaCode     = model.AreaCode,
                        NameAcronym  = model.NameAcronym,
                        DisplayOrder = model.DisplayOrder,
                        ParentSysNo  = model.ParentSysNo,
                        AreaName     = model.AreaName,
                        AreaLevel    = model.AreaLevel,
                        SysNo        = model.SysNo
                    };
                    break;

                //区
                case 3:
                    areaEntity = new BsArea
                    {
                        AreaCode     = model.AreaCode,
                        NameAcronym  = model.NameAcronym,
                        DisplayOrder = model.DisplayOrder,
                        ParentSysNo  = model.ParentSysNo,
                        AreaName     = model.AreaName,
                        AreaLevel    = model.AreaLevel,
                        SysNo        = model.SysNo
                    };
                    break;
                }
                model = GetArea(model.ParentSysNo);
            }
            return(provinceEntity);
        }
Beispiel #4
0
 /// <summary>
 /// 修改地区状态
 /// </summary>
 /// <param name="area">地区实体</param>
 /// <returns>返回受影响行数</returns>
 /// <remarks>2013-08-16 周瑜 创建</remarks>
 public override int UpdateStatus(BsArea area)
 {
     return(Context.Sql("update bsarea set Status = @Status, LastUpdateBy = @LastUpdateBy, LastUpdateDate = @LastUpdateDate where SysNo = @SysNo")
            .Parameter("Status", area.Status)
            .Parameter("LastUpdateBy", area.LastUpdateBy)
            .Parameter("LastUpdateDate", area.LastUpdateDate)
            .Parameter("SysNo", area.SysNo)
            .Execute());
 }
Beispiel #5
0
 /// <summary>
 /// 创建地区信息
 /// </summary>
 /// <param name="model">地区信息实体</param>
 /// <returns>创建的地区信息sysNo</returns>
 /// <remarks>
 /// 2013-08-02 郑荣华 创建
 /// </remarks>
 public override int Create(BsArea model)
 {
     if (model.LastUpdateDate == DateTime.MinValue)
     {
         model.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;
     }
     return(Context.Insert("BsArea", model)
            .AutoMap(x => x.SysNo)
            .ExecuteReturnLastId <int>("SysNo"));
 }
Beispiel #6
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="entity">实体</param>
        /// <returns></returns>
        /// <remarks>
        /// 2014-05-15 朱成果 创建
        /// </remarks>
        public bool UpdateEntity(BsArea entity)
        {
            var r = IBsAreaDao.Instance.Update(entity) > 0;

            if (r)
            {
                //清缓存
                MemoryProvider.Default.Remove(KeyConstant.AreaAll);
            }
            return(r);
        }
Beispiel #7
0
        /// <summary>
        /// 创建地区信息
        /// </summary>
        /// <param name="model">地区信息实体</param>
        /// <returns>创建的地区信息sysNo</returns>
        /// <remarks>
        /// 2013-08-02 郑荣华 创建
        /// </remarks>
        public int Create(BsArea model)
        {
            model.DisplayOrder = 1;
            var lstAll = GetAll();

            if (lstAll != null && lstAll.Count > 0)
            {
                model.DisplayOrder = lstAll.Select(m => m.DisplayOrder).Max() + 1;
            }
            var r = IBsAreaDao.Instance.Create(model);

            Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, "添加地区", LogStatus.系统日志目标类型.地区信息, r);
            //清缓存.
            MemoryProvider.Default.Remove(KeyConstant.AreaAll);
            return(r);
        }
Beispiel #8
0
        /// <summary>
        /// 获取地址数据
        /// </summary>
        /// <param name="token">令牌</param>
        /// <param name="SysNo">编号</param>
        /// <returns>返回地址json数据</returns>
        public object GetCustomerAddress(string token, int SysNo)
        {
            Result result = new Result();

            try
            {
                CrCustomerMobileLogin Sylogin = CrCustomerMobileLoginBo.Instance.GetModByTokenAndDeviceCode(token, "");
                if (Sylogin != null)
                {
                    var           mod      = Hyt.BLL.CRM.CrReceiveAddressBo.Instance.GetCrReceiveAddress(SysNo);
                    List <BsArea> areaList = BasicAreaBo.Instance.GetAll();
                    BsArea        area     = areaList.Find(p => p.SysNo == mod.AreaSysNo);
                    BsArea        city     = areaList.Find(p => p.SysNo == area.ParentSysNo);
                    BsArea        pro      = areaList.Find(p => p.SysNo == city.ParentSysNo);
                    return(new
                    {
                        Status = true,
                        Message = "完成",
                        Data = new
                        {
                            SysNo = mod.SysNo,
                            Name = mod.Name,
                            Phone = mod.PhoneNumber,
                            ProvinceCode = pro.SysNo,
                            Province = pro.AreaName,
                            CityCode = city.SysNo,
                            City = city.AreaName,
                            DistrictCode = area.SysNo,
                            District = area.AreaName,
                            IDCardNo = mod.IDCardNo
                        }
                    });
                }
                else
                {
                    result.Status  = false;
                    result.Message = "未登录,请登录后再操作";
                }
            }
            catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
            }
            return(result);
        }
Beispiel #9
0
        /// <summary>
        /// 修改地区状态
        /// </summary>
        /// <param name="area">地区实体</param>
        /// <returns>返回受影响行数</returns>
        /// <remarks>2013-08-16 周瑜 创建</remarks>
        public int UpdateStatus(BsArea area)
        {
            if (area == null)
            {
                return(0);
            }
            var model = BasicAreaBo.Instance.GetArea(area.SysNo);

            if (model == null)
            {
                return(0);
            }
            model.Status         = area.Status;
            model.LastUpdateBy   = area.LastUpdateBy;
            model.LastUpdateDate = area.LastUpdateDate;
            return(BasicAreaBo.Instance.UpdateEntity(area)?1:0);
        }
Beispiel #10
0
        /// <summary>
        /// 获取地区信息扩展
        /// </summary>
        /// <param name="entity">地区信息</param>
        /// <returns>地区信息扩展</returns>
        /// <remarks>
        /// 2014-05-15 朱成果 创建
        /// </remarks>
        private CBBsArea2 GetCBBsArea2(BsArea entity)
        {
            if (entity == null)
            {
                return(null);
            }
            CBBsArea2 arr2         = new CBBsArea2();
            var       baseType     = typeof(BsArea);
            var       allPropertie = baseType.GetProperties();

            foreach (var propertie in allPropertie)
            {
                if (propertie.CanRead && propertie.CanWrite)
                {
                    propertie.SetValue(arr2, propertie.GetValue(entity, null), null);
                }
            }
            return(arr2);
        }
Beispiel #11
0
        /// <summary>
        /// 更新地区信息,只更新了,编码,区名称,父级sysno
        /// </summary>
        /// <param name="originalModel">地区信息实体,根据sysno</param>
        /// <returns>成功true,失败false</returns>
        /// <remarks>
        /// 2013-08-02 郑荣华 创建
        /// </remarks>
        public bool Update(BsArea originalModel)
        {
            var model = GetArea(originalModel.SysNo);

            model.ParentSysNo = originalModel.ParentSysNo;
            var pmodel = GetArea(model.ParentSysNo);

            if (pmodel != null)
            {
                model.AreaLevel = pmodel.AreaLevel + 1;
            }
            model.AreaName       = originalModel.AreaName;
            model.AreaCode       = originalModel.AreaCode;
            model.LastUpdateBy   = originalModel.LastUpdateBy;
            model.LastUpdateDate = DateTime.Now;
            var r = UpdateEntity(model);

            if (r)
            {
                Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, "修改地区", LogStatus.系统日志目标类型.地区信息, model.SysNo);
            }
            return(r);
        }
Beispiel #12
0
        /// <summary>
        /// 添加交易订单
        /// </summary>
        /// <param name="orderSysno"></param>
        /// <returns>
        /// 2016-04-09 陈海裕 创建
        /// 2016-08-20 杨浩   重构
        /// </returns>
        public override Result AddOrderTrade(int orderSysno)
        {
            LogisticsLogin();

            var result = new Result <string>();

            result.Status     = false;
            result.StatusCode = 0;
            result.Message    = "接口调用失败";
            string url = RequestUrl + "Express/uploadOrders";

            if (orderSysno <= 0)
            {
                return(result);
            }

            try
            {
                var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);
                if (order == null)
                {
                    result.Message = "该订单不存在";
                    return(result);
                }

                order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                var voucherFilter = new ParaVoucherFilter();
                voucherFilter.SourceSysNo = order.SysNo;
                var recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                // 收货人 区 市 省
                BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                // 发货人 市
                CBWhWarehouse warehouse       = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                BsArea        shipperDistrict = BLL.Basic.BasicAreaBo.Instance.GetAreaList(warehouse.CitySysNo).FirstOrDefault();
                BsArea        shipperCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);
                BsArea        shipperProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.ProvinceSysNo);

                DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                ParaOnlinePaymentFilter filter = new ParaOnlinePaymentFilter();
                filter.OrderSysNo = orderSysno;
                var   onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault();
                Regex regex         = new Regex("\t|\n|\r");

                OrderList newOrderList = new OrderList();
                newOrderList.PrintType = "@1,@2";
                newOrderList.list      = new List <LGOrder>();
                LGOrder newOrder = new LGOrder();
                newOrder.Addr          = "中国," + receiverProvince.AreaName + "," + receiverCity.AreaName + "," + receiverDistrict.AreaName + "," + order.ReceiveAddress.StreetAddress;
                newOrder.Addr          = regex.Replace(newOrder.Addr, "");
                newOrder.CardNo        = order.ReceiveAddress.IDCardNo;
                newOrder.Create_Addr   = "中国," + shipperProvince.AreaName + "," + shipperCity.AreaName + "," + shipperDistrict.AreaName + ",";
                newOrder.Create_Addr   = regex.Replace(newOrder.Create_Addr, "");
                newOrder.Create_CardNo = "";
                newOrder.Create_Name   = "澳门爱勤";
                newOrder.Create_Phone  = !string.IsNullOrWhiteSpace(dealer.MobilePhoneNumber) ? dealer.MobilePhoneNumber : dealer.PhoneNumber;
                newOrder.id            = order.SysNo.ToString();
                newOrder.Name          = order.ReceiveAddress.Name;
                newOrder.OrderType     = "A";
                newOrder.PayCardNo     = order.ReceiveAddress.IDCardNo;
                newOrder.PayCurrency   = "CNY";
                newOrder.PayName       = order.ReceiveAddress.Name;
                newOrder.PayNo         = recVoucher.VoucherItems[0].VoucherNo;
                newOrder.PayPhone      = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                newOrder.PayRemark     = "";
                newOrder.PayTime       = order.CreateDate.ToString();
                newOrder.PayType       = GetPayType(order.PayTypeSysNo);// "alipay";
                newOrder.PayUser       = order.CustomerSysNo.ToString();
                newOrder.Phone         = newOrder.PayPhone;
                newOrder.Price         = order.OrderAmount;
                newOrder.Remark        = order.DeliveryRemarks;
                newOrder.TaxFee        = order.TaxFee;
                newOrder.TranFee       = order.FreightAmount;
                newOrder.Content       = "";
                foreach (var item in order.OrderItemList)
                {
                    var productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);
                    newOrder.Content += productStock.Barcode + "," + item.Quantity + "," + item.SalesUnitPrice + "|";
                }
                if (!string.IsNullOrWhiteSpace(newOrder.Content))
                {
                    newOrder.Content = newOrder.Content.Substring(0, newOrder.Content.Length - 1);
                }
                newOrderList.list.Add(newOrder);

                Dictionary <string, string> paramsData = new Dictionary <string, string>();
                paramsData.Add("token", IdentifyPass);
                paramsData.Add("postdata", Util.Serialization.JsonUtil.ToJson(newOrderList));
                string postData    = InitParams(paramsData);
                string responseStr = GetResponse(url, postData);


                var jObject = JObject.Parse(responseStr);


                var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog();

                soOrderSyncLogisticsLog.OrderSysNo = orderSysno;
                soOrderSyncLogisticsLog.Code       = (int)this.Code;

                soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;
                soOrderSyncLogisticsLog.StatusCode     = "";
                soOrderSyncLogisticsLog.StatusMsg      = "";
                soOrderSyncLogisticsLog.Packets        = postData;
                soOrderSyncLogisticsLog.ReceiptContent = responseStr;

                string status = jObject["status"].ToString();

                if (status == "-1")
                {
                    result.Status  = false;
                    result.Message = "未登录,请重试!";
                    IdentifyPass   = string.Empty;//清空身份凭证
                }
                else if (status == "1")
                {
                    for (int i = 0; i < jObject["data"].Count(); i++)
                    {
                        if (jObject["data"][i]["status"].ToString() == "1")
                        {
                            soOrderSyncLogisticsLog.LastUpdateBy     = 0;
                            soOrderSyncLogisticsLog.LogisticsOrderId = jObject["data"][i]["id"].ToString();
                            soOrderSyncLogisticsLog.CreateDate       = DateTime.Now;
                            soOrderSyncLogisticsLog.CreatedBy        = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo;
                            SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog);
                            BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.已推送, 3, orderSysno);
                            result.Status  = true;
                            result.Message = "推单成功";
                        }
                        else
                        {
                            soOrderSyncLogisticsLog.CreateDate = DateTime.Now;
                            SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog);
                            result.Status  = false;
                            result.Message = jObject["data"][i]["message"].ToString();
                        }
                    }
                }
                else
                {
                    try
                    {
                        SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog);
                    }
                    catch { }

                    result.Status  = false;
                    result.Message = jObject["message"].ToString();
                }
            }
            catch (Exception ex)
            {
                result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                return(result);
            }

            return(result);
        }
Beispiel #13
0
        /// <summary>
        /// 添加交易订单
        /// </summary>
        /// <param name="orderId">销售订单系统编号</param>
        /// <returns></returns>
        /// <remarks>
        /// 2016-3-21 杨浩 创建
        /// 2016-4-19 陈海裕 重构
        /// </remarks>
        public override Result AddOrderTrade(int orderId)
        {
            var result = new Result()
            {
                Status     = false,
                StatusCode = 0,
                Message    = "向" + this.Code + "物流推送订单失败"
            };


            try
            {
                var order = Hyt.BLL.Order.SoOrderBo.Instance.GetEntity(orderId);
                if (order == null)
                {
                    result.Status     = false;
                    result.Message    = string.Format("订单号{0}不存在!", orderId);
                    result.StatusCode = -100;
                }


                #region 旧参数

                //var receiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                //if (receiveAddress == null)
                //{
                //    result.Status = false;
                //    result.Message = string.Format("订单中的收货地址编号{0}不存在!", order.ReceiveAddressSysNo);
                //    result.StatusCode = -101;
                //}
                //var area = BLL.Basic.BasicAreaBo.Instance.GetArea(receiveAddress.AreaSysNo);
                //if (area == null)
                //{
                //    result.Status = false;
                //    result.Message = string.Format("地区({0})不存在!", receiveAddress.AreaSysNo);
                //    result.StatusCode = -103;
                //}
                //var city = BLL.Basic.BasicAreaBo.Instance.GetArea(area.ParentSysNo);
                //if (city == null)
                //{
                //    result.Status = false;
                //    result.Message = string.Format("城市({0})不存在!", area.ParentSysNo);
                //    result.StatusCode = -104;
                //}
                //var province = BLL.Basic.BasicAreaBo.Instance.GetArea(city.ParentSysNo);
                //if (province == null)
                //{
                //    result.Status = false;
                //    result.Message = string.Format("省份({0})不存在!", city.ParentSysNo);
                //    result.StatusCode = -105;
                //}

                //if (!result.Status)
                //    return result;
                //var param = "{\"orderId\":\"" + order.OrderNo + "\",";
                //param += "\"addr\":\"" + receiveAddress.StreetAddress + "\",";
                //param += "\"phone\":\"" + receiveAddress.MobilePhoneNumber + "\",";
                //param += "\"freight\":" + order.FreightAmount + ",";//运费
                //param += "\"orderDate\":\"" + order.CreateDate.ToString("yyyy-MM-dd") + "\",";
                //param += "\"province\":\"" + JsonStrEscape(province.AreaName) + "\",";
                //param += "\"city\":\"" + JsonStrEscape(city.AreaName) + "\",";
                //param += "\"area\":\"" + JsonStrEscape(area.AreaName) + "\",";
                //param += "\"total\":" + order.ProductAmount + ",";//订单总金额
                //param += "\"insuredFee\":0,";  //保价费用
                //param += "\"cardType\":\"0\","; //证件类型 (默认身份证则填0)
                //param += "\"expressCode\":\"SF\","; //物流公司编码
                //param += "\"busiMode\":\"BBC\","; //所属业务模式 (BBC/备货BC/直邮BC/个人物品)
                //param += "\"whCode\":\"FLC\",";   //发货仓库代号
                //param += "\"portCode\":\"5141\","; //口岸编码
                //param += "\"platformCode\":\"IE150604146855\",";//海关企业备案号
                //param += "\"cardNo\":\"" + receiveAddress.IDCardNo + "\",";//顾客身份证
                //param += "\"name\":\"" + JsonStrEscape(receiveAddress.Name) + "\",";
                ////param += "\"senderContact\":\"测试公司\",";
                ////param += "\"senderPhone\":\"13500000000\",";
                ////param += "\"tax\":\"" + orderInfo.TaxFee + "\",";
                //param += "\"orderItemList\":{";
                //param += "\"orderItems\":[";
                //var orderItemList = Hyt.BLL.Web.SoOrderBo.Instance.GetOrderItemListByOrderSysNo(orderId);
                //string orderItem = "";
                //foreach (var item in orderItemList)
                //{
                //    if (orderItem != "")
                //        orderItem += ",";
                //    orderItem += "{";
                //    //8712400110037
                //    //orderItem += "\"qty\":" + item.Quantity + ",\"price\":" + item.SalesUnitPrice + ",\"total\":" + item.SalesAmount + ",\"productId\":\""+item.ErpCode+"\",\"productName\":\"" + JsonStrEscape(item.ProductName) + "\"";
                //    orderItem += "\"qty\":" + item.Quantity + ",\"price\":" + item.SalesUnitPrice + ",\"total\":" + item.SalesAmount + ",\"productId\":\"8712400110136\",\"productName\":\"" + JsonStrEscape(item.ProductName) + "\"";
                //    orderItem += "}";
                //}

                //param += orderItem;
                //param += "]}}";
                #endregion
                string method = "wtdex.trade.order.add";

                order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                //ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                //voucherFilter.SourceSysNo = order.SysNo;
                //CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                //recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);


                var filter = new ParaOnlinePaymentFilter();
                filter.OrderSysNo = orderId;
                var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault();

                if (onlinePayment == null)
                {
                    result.Message = "订单不存在在线支付记录";
                    return(result);
                }
                // 收货人 区 市 省
                BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                // 发货人 市
                CBWhWarehouse warehouse   = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                BsArea        shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);

                DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);



                var newOrder = new WTDOrder();
                newOrder.addr             = TConvert.ToString(order.ReceiveAddress.StreetAddress).Trim();
                newOrder.area             = TConvert.ToString(receiverDistrict.AreaName).Trim();
                newOrder.busiMode         = "BC";
                newOrder.cardNo           = TConvert.ToString(order.ReceiveAddress.IDCardNo);
                newOrder.cardType         = "0";
                newOrder.city             = TConvert.ToString(receiverCity.AreaName).Trim();
                newOrder.consumerAddr     = TConvert.ToString(order.ReceiveAddress.StreetAddress).Trim();
                newOrder.consumerArea     = TConvert.ToString(receiverDistrict.AreaName).Trim();
                newOrder.consumerCity     = TConvert.ToString(receiverCity.AreaName).Trim();
                newOrder.consumerName     = TConvert.ToString(order.ReceiveAddress.Name);
                newOrder.consumerPhone    = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                newOrder.consumerProvince = TConvert.ToString(receiverProvince.AreaName).Trim();
                newOrder.destCity         = null;
                newOrder.expressCode      = "YT";// "SF";
                newOrder.expressNo        = null;
                newOrder.freight          = (double)order.FreightAmount;
                newOrder.ieFlag           = null;
                newOrder.insuredFee       = 0d;
                newOrder.invoice          = null;
                newOrder.invoiceHead      = null;
                newOrder.invoiceType      = null;
                newOrder.isgac            = 1;
                newOrder.isactpay         = "0";
                newOrder.isactlogistics   = "1";



                newOrder.mobile      = null;
                newOrder.name        = TConvert.ToString(order.ReceiveAddress.Name);
                newOrder.notes       = TConvert.ToString(order.Remarks).Trim();
                newOrder.orderDate   = order.CreateDate.ToString("yyyy-MM-dd");
                newOrder.orderId     = onlinePayment.BusinessOrderSysNo;
                newOrder.paymentCode = null;
                newOrder.phone       = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;

                newOrder.pickMode      = "0";//BC、PS情况下必填0:散货/包裹1:大货/备货,有货物在我们仓库
                newOrder.platformCode  = config.PlatformCode;
                newOrder.portCode      = config.PortCode;
                newOrder.prodFlag      = null;
                newOrder.province      = TConvert.ToString(receiverProvince.AreaName).Trim();
                newOrder.seller        = null;
                newOrder.senderContact = TConvert.ToString(dealer.ErpName);
                newOrder.senderPhone   = !string.IsNullOrWhiteSpace(dealer.MobilePhoneNumber) ? dealer.MobilePhoneNumber : dealer.PhoneNumber;
                newOrder.tax           = (double)order.TaxFee;
                newOrder.total         = (double)order.ProductAmount;
                //newOrder.total = 100d;
                newOrder.whCode                   = TConvert.ToString(warehouse.LogisWarehouseCode);
                newOrder.zipCode                  = null;
                newOrder.orderItemList            = new WTDOrderItemList();
                newOrder.orderItemList.orderItems = new List <WTDOrderItem>();
                WTDOrderItem orderItem = new WTDOrderItem();
                foreach (var item in order.OrderItemList)
                {
                    var product = BLL.Product.PdProductBo.Instance.GetProductNoCache(item.ProductSysNo);
                    orderItem.groupBarcode = null;
                    orderItem.isGroup      = null;
                    orderItem.postTax      = null;
                    orderItem.price        = (double)item.SalesUnitPrice;
                    orderItem.productId    = product.ErpCode;
                    orderItem.productName  = TConvert.ToString(item.ProductName);
                    orderItem.qty          = item.Quantity;
                    orderItem.total        = (double)item.SalesAmount;
                    newOrder.orderItemList.orderItems.Add(orderItem);
                    //orderItem.groupBarcode = null;
                    //orderItem.isGroup = null;
                    //orderItem.postTax = null;
                    //orderItem.price = 50d;
                    //orderItem.productId = "8712400110136";
                    //orderItem.productName = TConvert.ToString(item.ProductName);
                    //orderItem.qty = 2;
                    //orderItem.total = 100d;
                    //newOrder.orderItemList.orderItems.Add(orderItem);
                    //break;
                }

                string postData = Util.Serialization.JsonUtil.ToJson2(newOrder);
                postData = InitParams(method, postData);

                var _result = Hyt.Util.WebUtil.PostForm(apiUrl, postData);

                result = GetResponseResult(_result);

                if (result.Status == true)
                {
                    var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog();

                    soOrderSyncLogisticsLog.OrderSysNo = orderId;
                    soOrderSyncLogisticsLog.Code       = (int)this.Code;

                    soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;
                    soOrderSyncLogisticsLog.StatusCode     = "";
                    soOrderSyncLogisticsLog.StatusMsg      = "";
                    soOrderSyncLogisticsLog.Packets        = postData;
                    soOrderSyncLogisticsLog.ReceiptContent = _result;

                    soOrderSyncLogisticsLog.LastUpdateBy     = 0;
                    soOrderSyncLogisticsLog.LogisticsOrderId = "";

                    soOrderSyncLogisticsLog.CreateDate = DateTime.Now;
                    soOrderSyncLogisticsLog.CreatedBy  = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo;
                    SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog);


                    BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderId);
                }
            }
            catch (Exception ex)
            {
                result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                return(result);
            }

            return(result);
        }
Beispiel #14
0
        /// <summary>
        /// 添加交易订单
        /// </summary>
        /// <param name="orderId">销售订单系统编号</param>
        /// <returns></returns>
        /// <remarks></remarks>
        ///  <remarks>2016-3-8 杨浩 创建</remarks>
        ///  <remarks>2016-09-22 周 重构</remarks>
        public override Result AddOrderTrade(int orderId)
        {
            var result = new Result()
            {
                Status     = false,
                StatusCode = 0,
                Message    = "向" + this.Code + "物流推送订单失败"
            };

            #region
            try
            {
                var order = Hyt.BLL.Order.SoOrderBo.Instance.GetEntity(orderId);
                if (order == null)
                {
                    result.Status     = false;
                    result.Message    = string.Format("订单号{0}不存在!", orderId);
                    result.StatusCode = -100;
                }

                order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                var filter = new ParaOnlinePaymentFilter();
                filter.OrderSysNo = orderId;
                var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault();

                if (onlinePayment == null)
                {
                    result.Message = "订单不存在在线支付记录";
                    return(result);
                }
                // 收货人 区 市 省
                BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                // 发货人 市
                CBWhWarehouse  warehouse    = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                BsArea         shipperCity  = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);
                DsDealer       dealer       = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);
                LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                var newOrder = new CreatedOrderApiRequest();
                newOrder.OutOrderNo                     = order.SysNo.ToString();
                newOrder.DeliveryCode                   = "3";//暂时默认1(后期此参数作废)
                newOrder.ReceiverName                   = TConvert.ToString(order.ReceiveAddress.Name);
                newOrder.ReceiverMobile                 = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                newOrder.ReceiverProvince               = TConvert.ToString(receiverProvince.AreaName).Trim();
                newOrder.ReceiverCity                   = TConvert.ToString(receiverCity.AreaName).Trim();
                newOrder.ReceiverDistrict               = TConvert.ToString(receiverDistrict.AreaName).Trim();
                newOrder.ReceiverAddress                = TConvert.ToString(order.ReceiveAddress.StreetAddress).Trim();
                newOrder.ReceiverIdCard                 = TConvert.ToString(order.ReceiveAddress.IDCardNo);
                newOrder.ReceiverFrontIdCardImageUrl    = HttpContext.Current.Request.Url.Host + TConvert.ToString(order.ReceiveAddress.IDCardImgs);
                newOrder.ReceiverOppositeIdCardImageUrl = HttpContext.Current.Request.Url.Host + TConvert.ToString(order.ReceiveAddress.IDCardImgs);
                newOrder.UserRemark                     = order.Remarks;

                newOrder.ThirdPlatformPaymentName = Enum.GetName(typeof(Hyt.Model.CommonEnum.PayCode), order.PayTypeSysNo);
                var    payment       = Hyt.BLL.Finance.FinanceBo.Instance.GetOnlinePaymentBySourceSysNo(orderId);
                string PaymentNumber = "";
                if (payment != null)
                {
                    PaymentNumber = payment.VoucherNo;
                }
                newOrder.ThirdPlatformPaymentNumber = PaymentNumber;

                newOrder.Items = new List <CreatedOrderItemRequest>();
                CreatedOrderItemRequest orderItem = new CreatedOrderItemRequest();

                foreach (var item in order.OrderItemList)
                {
                    var product = BLL.Product.PdProductBo.Instance.GetProductNoCache(item.ProductSysNo);
                    orderItem.SkuId    = product.ErpCode;
                    orderItem.Quantity = item.Quantity;
                    newOrder.Items.Add(orderItem);
                }
                var json = Newtonsoft.Json.JsonConvert.SerializeObject(newOrder);
                //推送订单
                var _result = CreatedOrder(newOrder);
                if (_result.ResultCode == 200)
                {
                    var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog();

                    soOrderSyncLogisticsLog.OrderSysNo = orderId;
                    soOrderSyncLogisticsLog.Code       = (int)this.Code;

                    soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;
                    soOrderSyncLogisticsLog.StatusCode     = "";
                    soOrderSyncLogisticsLog.StatusMsg      = "";
                    soOrderSyncLogisticsLog.Packets        = json;
                    soOrderSyncLogisticsLog.ReceiptContent = _result.Tag.ToString();

                    soOrderSyncLogisticsLog.LastUpdateBy     = 0;
                    soOrderSyncLogisticsLog.LogisticsOrderId = "";

                    soOrderSyncLogisticsLog.CreateDate = DateTime.Now;
                    soOrderSyncLogisticsLog.CreatedBy  = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo;
                    SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog);
                    BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderId);
                    result.Message = "向" + this.Code + "物流推送订单成功:回执单号:" + _result.Tag.ToString();
                }
                else
                {
                    result.Message = _result.Message;
                }
            }
            catch (Exception ex)
            {
                result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                return(result);
            }
            #endregion

            return(result);
        }
Beispiel #15
0
        public override Result AddOrderTrade(int orderSysno)
        {
            Result result = new Result();

            try
            {
                var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);

                var        config   = Hyt.BLL.Config.Config.Instance.GetAnnaConfig();
                CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(order.CustomerSysNo);

                WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);

                BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo);
                BsArea wareCityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo);
                BsArea wareProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo);

                SoReceiveAddress srenity      = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo);
                string           buyer_idcard = "";
                if (!string.IsNullOrEmpty(srenity.IDCardNo))
                {
                    buyer_idcard = srenity.IDCardNo.Trim().ToUpper();
                }

                BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo);
                string District       = DistrictEntity.AreaName.Trim();
                BsArea CityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo);
                string City           = CityEntity.AreaName.Trim();
                BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo);
                string Province       = ProvinceEntity.AreaName.Trim();

                CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo);
                payment.CusPaymentCode = config.PaymentCode;
                IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo);
                order.OrderItemList = new List <SoOrderItem>();
                List <int> ProSysNo = new List <int>();
                foreach (CBSoOrderItem item in datao)
                {
                    ProSysNo.Add(item.ProductSysNo);

                    order.OrderItemList.Add(item);
                }
                IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo);
                foreach (var mod in productList)
                {
                    var tempitem = datao.First(p => p.ProductSysNo == mod.SysNo);
                    if (tempitem != null)
                    {
                        tempitem.OrginCountry = Hyt.BLL.Basic.OriginBo.Instance.GetEntity(mod.OriginSysNo).Origin_Name;
                    }
                }


                OrderShip orderShip = new OrderShip();
                orderShip.storeCode          = config.WhNumber;
                orderShip.orderCode          = payment.BusinessOrderSysNo;//order.OrderNo;
                orderShip.orderType          = "TRANS";
                orderShip.createTime         = order.CreateDate.ToString("yyy-MM-dd hh:mm:ss");
                orderShip.checker            = order.AuditorSysNo.ToString();
                orderShip.checkTime          = order.AuditorDate.ToString("yyy-MM-dd hh:mm:ss");
                orderShip.payTime            = payment.CreatedDate.ToString("yyy-MM-dd hh:mm:ss");
                orderShip.sourcePlatformCode = "ZY";
                orderShip.sourceOrderCode    = order.SysNo.ToString();
                orderShip.receiver           = new Receiver()
                {
                    receiverAddress  = srenity.StreetAddress.Replace("\n", "").Replace("\r", ""),
                    receiverProvince = Province.Replace("\n", "").Replace("\r", ""),
                    receiverCity     = City.Replace("\n", "").Replace("\r", ""),
                    receiverDistrict = District.Replace("\n", "").Replace("\r", ""),
                    receiverCountry  = "中国",
                    receiverIdNumber = buyer_idcard,
                    receiverName     = srenity.Name,
                    receiverMobile   = srenity.MobilePhoneNumber,
                    receiverPhone    = srenity.PhoneNumber
                };
                orderShip.invoiceFlag            = "N";
                orderShip.codFlag                = "N";
                orderShip.gotAmount              = order.OrderAmount;
                orderShip.arAmount               = order.OrderAmount;
                orderShip.insuranceFlag          = "N";
                orderShip.orderTotalAmount       = order.ProductAmount + order.TaxFee + order.FreightAmount + order.ProductChangeAmount;
                orderShip.orderActualAmount      = order.OrderAmount;
                orderShip.totalAmount            = order.OrderAmount;
                orderShip.orderGoodsAmount       = order.ProductAmount + order.ProductChangeAmount;
                orderShip.feeAmount              = order.FreightAmount;
                orderShip.orderTaxAmount         = order.TaxFee;
                orderShip.payEntNo               = payment.CusPaymentCode;
                orderShip.payEnterpriseName      = payment.PaymentName;//"支付宝(中国)网络技术有限公司";
                orderShip.recipientProvincesCode = "440000";

                var deliverTypeInfo = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);
                if (deliverTypeInfo != null && string.IsNullOrWhiteSpace(deliverTypeInfo.OverseaCarrier) || deliverTypeInfo == null)
                {
                    orderShip.courierCode = config.CourierCode;
                }
                else
                {
                    orderShip.courierCode = deliverTypeInfo.OverseaCarrier;
                }

                string importType = "";
                if (warehouseMod.WarehouseType == 30)
                {
                    importType = "BBC";
                }
                else if (warehouseMod.WarehouseType == 40)
                {
                    importType = "BC";
                }
                orderShip.buyerId    = customer.Account;
                orderShip.importType = importType;
                orderShip.portload   = "142";
                orderShip.items      = new List <Items>();
                int rowIndex = 0;
                foreach (var item in datao)
                {
                    rowIndex++;

                    item.SalesUnitPrice = ((item.SalesAmount + item.ChangeAmount) / item.Quantity);
                    orderShip.items.Add(new Items()
                    {
                        actualPrice    = item.SalesUnitPrice,
                        barCode        = item.BarCode,
                        discountAmount = item.DiscountAmount,
                        inventoryType  = "ZP",
                        itemCode       = item.ErpCode,
                        itemName       = item.ProductName.Replace("+", ""),
                        orderLineNo    = rowIndex.ToString(),
                        originCountry  = item.OrginCountry,
                        quantity       = item.Quantity,
                        retailPrice    = item.OriginalPrice,
                        subOrderCode   = item.SysNo.ToString(),
                        supplierCode   = config.supplierCode,
                        supplierName   = config.supplierName,
                        weight         = Convert.ToInt32((item.NetWeight * 1000))
                    });
                }
                orderShip.sender = new Sender()
                {
                    senderAddress  = warehouseMod.StreetAddress.Trim(),
                    senderProvince = wareProvinceEntity.AreaName.Trim(),
                    senderCity     = wareCityEntity.AreaName.Trim(),
                    senderDistrict = wareDistrictEntity.AreaName.Trim(),
                    senderCountry  = "中国",
                    senderName     = config.SenderUser.Trim(),
                    senderMobile   = warehouseMod.Phone,
                    senderPhone    = warehouseMod.Phone,
                    senderIdNumbe  = config.SenderIdNumber
                };

                Dictionary <string, string> dicKeyList = new Dictionary <string, string>();
                dicKeyList.Add("notifyId", DateTime.Now.ToString("yyMMddHHmmssffff"));
                dicKeyList.Add("notifyTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                dicKeyList.Add("format", "json");
                dicKeyList.Add("signMethod", "md5");
                dicKeyList.Add("busiType", "alog.ordership.notify");
                dicKeyList.Add("partnerCode", config.OnNumber);
                dicKeyList.Add("ownerCode", config.OnNumber);
                dicKeyList.Add("content", JsonUtil.ToJson(orderShip));//
                dicKeyList["content"] = dicKeyList["content"].Replace("\"courierCode\":null,", "");
                Dictionary <string, string> dic1Asc1
                    = (from d in dicKeyList
                       orderby d.Key ascending
                       select d).ToDictionary(k => k.Key, v => v.Value);
                string strParams = "";
                foreach (string key in dic1Asc1.Keys)
                {
                    if (!string.IsNullOrEmpty(strParams))
                    {
                        strParams += "&";
                    }
                    strParams += key + "=" + dic1Asc1[key];
                }
                string sign = Hyt.Util.Security.UserMd5(config.secretKey + strParams.Replace("&", "").Replace("=", "") + config.secretKey).ToUpper();
                strParams = "sign=" + sign + "&" + strParams;
                string testData = MyHttp.GetResponse(config.URLPath, strParams, "utf-8");
                //{"success":true,"errCode":"","errMsg":"","courierCode":"SF","mailNo":"444746031132"}
                PosDataResult postResult = JsonUtil.ToObject <PosDataResult>(testData);
                if (postResult.success)
                {
                    Hyt.BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.InsertEntity(
                        new CrossBorderLogisticsOrder()
                    {
                        ExpressNo        = postResult.courierCode + "_" + postResult.mailNo,
                        LogisticsCode    = 0,
                        LogisticsOrderId = strParams,
                        SoOrderSysNo     = orderSysno,
                    }
                        );
                    string express = postResult.courierCode + "_" + postResult.mailNo;
                    BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.成功, 3, order.SysNo);
                    result.Status = postResult.success;
                }
                else
                {
                    result.Status  = postResult.success;
                    result.Message = testData;
                }
            }catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
            }
            return(result);
        }
Beispiel #16
0
 public abstract BsArea GetProvinceEntity(int sysNo, out BsArea cityEntity,
                                          out BsArea areaEntity);
Beispiel #17
0
        /// <summary>
        /// 获取快递单号
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        /// <remarks>2016-9-3 杨浩 创建</remarks>
        private Result GetExpressno(string orderId)
        {
            var         config             = Hyt.BLL.Config.Config.Instance.GetGaoJieConfig();
            var         result             = new Result <SoOrderSyncLogisticsLog>();
            var         orderInfo          = BLL.Order.SoOrderBo.Instance.GetEntity(int.Parse(orderId));
            WhWarehouse warehouseMod       = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(orderInfo.DefaultWarehouseSysNo);
            BsArea      wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo);
            BsArea      wareCityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo);

            SoReceiveAddress srenity      = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(orderInfo.SysNo);
            string           buyer_idcard = "";

            if (!string.IsNullOrEmpty(srenity.IDCardNo))
            {
                buyer_idcard = srenity.IDCardNo.Trim();
            }

            BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo);
            string District       = DistrictEntity.AreaName.Trim();
            BsArea CityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo);
            string City           = CityEntity.AreaName.Trim();
            BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo);
            string Province       = ProvinceEntity.AreaName.Trim();

            CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(orderInfo.SysNo);

            IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(orderInfo.SysNo);

            string  goods_Names  = "";
            int     goods_Nums   = 0;
            decimal goods_Weight = 0;

            foreach (var mod in datao)
            {
                if (!string.IsNullOrEmpty(goods_Names))
                {
                    goods_Names += ",";
                }
                goods_Names += mod.ProductName;

                goods_Nums += mod.Quantity;

                goods_Weight += mod.GrosWeight;
            }

            StringBuilder strorder = new StringBuilder();//"{\"orderSn\":\"" + orderInfo.OrderNo + "\"}";

            strorder.Append("{");
            strorder.Append("    \"order_sn\":\"" + orderInfo.OrderNo + "\",");
            strorder.Append("    \"send_name\":\"" + warehouseMod.Contact + "\",");
            strorder.Append("    \"send_telno\":\"" + warehouseMod.Phone + "\",");
            strorder.Append("    \"send_cardno\":\"\",");
            strorder.Append("    \"send_postcode\":\"\",");
            strorder.Append("    \"send_code\":\"1\",");
            strorder.Append("    \"receive_name\":\"" + srenity.Name + "\",");
            strorder.Append("    \"receive_telno\":\"" + srenity.MobilePhoneNumber + "\",");
            strorder.Append("    \"receive_cardno\":\"" + srenity.IDCardNo + "\",");
            strorder.Append("    \"receive_postcode\":\"\",");
            strorder.Append("    \"receive_province\":\"" + Province + "\",");
            strorder.Append("    \"receive_city\":\"" + City + "\",");
            strorder.Append("    \"receive_area\":\"" + District + "\",");
            strorder.Append("    \"receive_address\":\"" + Province + " " + City + " " + District + " " + srenity.StreetAddress + "\",");
            strorder.Append("    \"goods_name\":\"" + goods_Names + "\",");
            strorder.Append("    \"goods_sku\":\"\",");
            strorder.Append("    \"goods_num\":\"" + goods_Nums + "\",");
            strorder.Append("    \"notes\":\"\",");
            strorder.Append("    \"weight\":\"" + goods_Weight + "\"");
            strorder.Append("}");

            string enStrorder = "";

            enStrorder = EncodeBase64(EncodeBase64(strorder.ToString()));

            string strPost = "&seller=" + EncodeBase64(config.seller) + "&api_key=" + EncodeBase64(config.api_key) + "&express=" + EncodeBase64("3") + "&order_type=" + EncodeBase64("1") + "&order=" + enStrorder;

            var    strResult = GetResponse(expressUrl, strPost);
            var    json      = JObject.Parse(strResult);
            string jsons     = json.ToString();


            result.Message = json.ToString();

            /*{
             *  "orderSn": "So00003784",
             *  "state": "success",
             *  "expressNo": "50323423506251",
             *  "expressCode": "3",
             *  "destinationCode": "粤-肇庆",
             *  "nodeCode": {
             *      "pkgCode": "广州夏良转运中心",
             *      "billProvideSiteName": "广州新花山站",
             *      "billProvideSiteCode": "Z04"
             *    }
             * }*/

            //string destinationCode = "";
            //string pkgCode = ""; ;
            //string billProvideSiteCode = "";
            //string expressNo = "";
            //if (json["state"].ToString().ToLower() == "success")
            //{
            //    destinationCode = json["destinationCode"].ToString();
            //    pkgCode = json["nodeCode"]["pkgCode"].ToString();
            //    billProvideSiteCode = json["nodeCode"]["billProvideSiteCode"].ToString();
            //    expressNo = json["expressNo"].ToString();
            //}

            ///订单物流信息
            SoOrderSyncLogisticsLog soLogisticsLogMod = new SoOrderSyncLogisticsLog();

            soLogisticsLogMod.OrderSysNo = orderInfo.SysNo;
            soLogisticsLogMod.Code       = (int)this.Code;
            try
            {
                soLogisticsLogMod.LogisticsOrderId = json["express_no"].ToString();
            }
            catch { }

            soLogisticsLogMod.StatusCode = json["flag"].ToString();
            try
            {
                soLogisticsLogMod.StatusMsg = json["express_notes"].ToString();
            }
            catch
            {
                try
                {
                    soLogisticsLogMod.StatusMsg = json["info"].ToString();
                }
                catch { }
            }

            soLogisticsLogMod.Packets        = strorder.ToString();
            soLogisticsLogMod.ReceiptContent = strResult;
            soLogisticsLogMod.CreateDate     = DateTime.Now;
            soLogisticsLogMod.LastUpdateDate = DateTime.Now;
            SoOrderSyncLogisticsLogBo.Instance.Insert(soLogisticsLogMod);
            if (json["flag"].ToString().ToUpper() == "OK")
            {
                result.Status     = true;
                result.StatusCode = 100;
                result.Data       = soLogisticsLogMod;
            }
            else
            {
                result.Status     = false;
                result.StatusCode = 0;
                result.Data       = soLogisticsLogMod;
            }

            return(result);
        }
Beispiel #18
0
        public BsArea GetCountryEntity(int sysNo, out BsArea countryEntity, out BsArea provinceEntity, out BsArea cityEntity, out BsArea areaEntity)
        {
            provinceEntity = null;
            cityEntity     = null;
            areaEntity     = null;
            countryEntity  = null;
            BsArea model = GetArea(sysNo);

            //地区信息不存在
            while (model != null && model.AreaLevel >= 0)
            {
                switch (model.AreaLevel)
                {
                //国家
                case 0:
                    countryEntity = new BsArea
                    {
                        AreaCode     = model.AreaCode,
                        NameAcronym  = model.NameAcronym,
                        DisplayOrder = model.DisplayOrder,
                        ParentSysNo  = model.ParentSysNo,
                        AreaName     = model.AreaName,
                        AreaLevel    = model.AreaLevel,
                        SysNo        = model.SysNo
                    };
                    break;

                //省
                case 1:
                    provinceEntity = new BsArea
                    {
                        AreaCode     = model.AreaCode,
                        NameAcronym  = model.NameAcronym,
                        DisplayOrder = model.DisplayOrder,
                        ParentSysNo  = model.ParentSysNo,
                        AreaName     = model.AreaName,
                        AreaLevel    = model.AreaLevel,
                        SysNo        = model.SysNo
                    };
                    break;

                //市
                case 2:
                    cityEntity = new BsArea
                    {
                        AreaCode     = model.AreaCode,
                        NameAcronym  = model.NameAcronym,
                        DisplayOrder = model.DisplayOrder,
                        ParentSysNo  = model.ParentSysNo,
                        AreaName     = model.AreaName,
                        AreaLevel    = model.AreaLevel,
                        SysNo        = model.SysNo
                    };
                    break;

                //区
                case 3:
                    areaEntity = new BsArea
                    {
                        AreaCode     = model.AreaCode,
                        NameAcronym  = model.NameAcronym,
                        DisplayOrder = model.DisplayOrder,
                        ParentSysNo  = model.ParentSysNo,
                        AreaName     = model.AreaName,
                        AreaLevel    = model.AreaLevel,
                        SysNo        = model.SysNo
                    };
                    break;
                }
                model = GetArea(model.ParentSysNo);
            }
            return(countryEntity);
        }
Beispiel #19
0
        public override Result AddOrderTrade(int orderSysno)
        {
            Result result = new Result();

            try
            {
                SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);
                if (order == null)
                {
                    result.Message = "该订单不存在";
                    return(result);
                }
                order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                voucherFilter.SourceSysNo = order.SysNo;
                CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                // 收货人 区 市 省
                BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                // 发货人 市
                CBWhWarehouse warehouse   = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                BsArea        shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);

                DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                EasycrossOrder newOrder = new EasycrossOrder();
                newOrder.OrderHead             = new OrderHead();
                newOrder.OrderList             = new List <OrderList>();
                newOrder.OrderPaymentLogistics = new OrderPaymentLogistics();

                newOrder.OrderHead.accessType         = "1";
                newOrder.OrderHead.agentCode          = "4404580006";
                newOrder.OrderHead.agentName          = "珠海易跨境电子商务服务有限公司";
                newOrder.OrderHead.appStatus          = "2";
                newOrder.OrderHead.appTime            = DateTime.Now.ToString("yyyyMMddHHmmss");
                newOrder.OrderHead.appUid             = "1105910159";
                newOrder.OrderHead.appUname           = "东方口岸";
                newOrder.OrderHead.batchNumbers       = "";
                newOrder.OrderHead.cbeCode            = "D00236";
                newOrder.OrderHead.cbeName            = "珠海爱勤电子科技有限公司";
                newOrder.OrderHead.charge             = order.OrderAmount.ToString();
                newOrder.OrderHead.consignee          = order.ReceiveAddress.Name;
                newOrder.OrderHead.consigneeAddress   = order.ReceiveAddress.StreetAddress;
                newOrder.OrderHead.consigneeCountry   = "";
                newOrder.OrderHead.consigneeTelephone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber)
                    ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                newOrder.OrderHead.currency         = "142";
                newOrder.OrderHead.customer         = order.ReceiveAddress.Name;
                newOrder.OrderHead.customerId       = order.ReceiveAddress.IDCardNo;
                newOrder.OrderHead.ecpCode          = "W0098";
                newOrder.OrderHead.ecpName          = "珠海爱勤电子科技有限公司";
                newOrder.OrderHead.freight          = order.FreightAmount.ToString();
                newOrder.OrderHead.goodsValue       = order.ProductAmount.ToString();
                newOrder.OrderHead.idType           = "1";
                newOrder.OrderHead.ieType           = "I";
                newOrder.OrderHead.modifyMark       = "1";
                newOrder.OrderHead.note             = "";
                newOrder.OrderHead.orderNo          = order.SysNo.ToString();
                newOrder.OrderHead.other            = "";
                newOrder.OrderHead.shipper          = BLL.Stores.StoresBo.Instance.GetStoreById(0).ErpName;
                newOrder.OrderHead.shipperAddress   = "";
                newOrder.OrderHead.shipperCountry   = "142";
                newOrder.OrderHead.shipperTelephone = "";
                newOrder.OrderHead.tax = order.TaxFee.ToString();
                newOrder.OrderHead.totalLogisticsNo = "";
                newOrder.OrderHead.tradeCountry     = "";
                newOrder.OrderHead.wrapType         = "";
                foreach (SoOrderItem item in order.OrderItemList)
                {
                    PdProduct      product      = BLL.Product.PdProductBo.Instance.GetProduct(item.SysNo);
                    PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);

                    string  brandName = "无";
                    PdBrand brand     = BLL.Product.PdBrandBo.Instance.GetEntity(product.BrandSysNo);
                    if (brand != null)
                    {
                        brandName = brand.Name;
                    }

                    OrderList orderList = new OrderList();
                    orderList.barCode        = "";
                    orderList.brand          = brandName;
                    orderList.codeTs         = "";
                    orderList.country        = "";
                    orderList.currency       = "142";
                    orderList.describe       = "";
                    orderList.discount       = "";
                    orderList.giftFlag       = "";
                    orderList.goodsModel     = "";
                    orderList.goodsName      = item.ProductName;
                    orderList.goodsNo        = productStock.ProductSku;
                    orderList.itemNo         = "";
                    orderList.note           = "";
                    orderList.packNum        = "";
                    orderList.price          = item.SalesUnitPrice.ToString();
                    orderList.priceTotal     = item.SalesAmount.ToString();
                    orderList.purposeCode    = "";
                    orderList.quantity       = item.Quantity.ToString();
                    orderList.shelfGoodsName = item.ProductName;
                    orderList.taxCode        = "";
                    orderList.unit           = "007";
                    orderList.wasteMaterials = "1";
                    orderList.wrapType       = "";
                    newOrder.OrderList.Add(orderList);
                }
                //newOrder.OrderPaymentLogistics.logisticsCode = "";
                newOrder.OrderPaymentLogistics.logisticsName = deliveryType.DeliveryTypeName;
                //newOrder.OrderPaymentLogistics.logisticsNo = "";
                //newOrder.OrderPaymentLogistics.paymentCode = "";
                //newOrder.OrderPaymentLogistics.paymentName = "";
                //newOrder.OrderPaymentLogistics.paymentNo = "";
                //newOrder.OrderPaymentLogistics.paymentType = "";
                //newOrder.OrderPaymentLogistics.trackNo = "";

                XmlSerializerNamespaces xmlNs = new XmlSerializerNamespaces();
                xmlNs.Add("nousexmlns", "http://www.chinaport.gov.cn/ecss");
                string xmlData = this.XmlSerialize <EasycrossOrder>(newOrder, xmlNs);
                xmlData = xmlData.Replace(":nousexmlns", "");
                xmlData = xmlData.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\"");

                // 上传文件
                FtpUtil ftp         = new FtpUtil(FTPUri, FTPName, FTPPassword);
                string  ftpResponse = "";
                ftp.UploadFile(FTPUri, "Testfilename.xml", Encoding.UTF8.GetBytes(xmlData), out ftpResponse);
            }
            catch (Exception ex)
            {
                result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                return(result);
            }

            return(result);
        }
Beispiel #20
0
        private void AddBaseTaskObjectToList(List <BaseTask> listObject)
        {
            BaseTask bsAT                    = new BsArea();
            BaseTask bsDP                    = new BsDeliveryPayment();
            BaseTask bsPT                    = new BsPaymentType();
            BaseTask bsCode                  = new BsCode();
            BaseTask bsOrganization          = new BsOrganization();
            BaseTask bsOrganizationWarehouse = new BsOrganizationWarehouse();

            BaseTask crCustomer = new CrCustomer();
            BaseTask crCL       = new CrCustomerLevel();
            BaseTask crCQ       = new CrCustomerQuestion();
            BaseTask crRA       = new CrReceiveAddress();

            BaseTask dsMallType      = new DsMallType();
            BaseTask dsDealerLevel   = new DsDealerLevel();
            BaseTask feArticle       = new FeArticle();
            BaseTask feAC            = new FeArticleCategory();
            BaseTask feCS            = new FeCommentSupport();
            BaseTask fepc            = new FeProductComment();
            BaseTask fePCI           = new FeProductCommentImage();
            BaseTask fePCR           = new FeProductCommentReply();
            BaseTask feSearchKeyword = new FeSearchKeyword();
            BaseTask feadvertgroup   = new FeAdvertGroup();
            BaseTask feadvertitem    = new FeAdvertItem();
            BaseTask feproductgroup  = new FeProductGroup();
            BaseTask feproductitem   = new FeProductItem();

            BaseTask fnIT      = new FnInvoiceType();
            BaseTask fninvoice = new FnInvoice();

            BaseTask fnpv = new  FnReceiptVoucher();
            BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem();
            BaseTask fnop                 = new FnOnlinePayment();
            BaseTask fnPaymentVoucher     = new FnPaymentVoucher();
            BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem();

            BaseTask lgDelivery              = new LgDelivery();
            BaseTask lgDI                    = new LgDeliveryItem();
            BaseTask lgDS                    = new LgDeliveryScope();
            BaseTask lgDT                    = new LgDeliveryType();
            BaseTask lgDUC                   = new LgDeliveryUserCredit();
            BaseTask lgPT                    = new LgPickupType();
            BaseTask lgsettlement            = new LgSettlement();
            BaseTask lgSI                    = new LgSettlementItem();
            BaseTask lgDeliveryPrintTemplate = new LgDeliveryPrintTemplate();
            BaseTask pdAttribute             = new PdAttribute();
            BaseTask pdAG                    = new PdAttributeGroup();
            BaseTask pdAGA                   = new PdAttributeGroupAssociation();
            BaseTask pdAO                    = new PdAttributeOption();
            BaseTask pdBrand                 = new PdBrand();
            BaseTask pdCGA                   = new PdCatAttributeGroupAso();
            BaseTask pdCategory              = new PdCategory();
            BaseTask pdCA                    = new PdCategoryAssociation();
            BaseTask pdPrice                 = new PdPrice();
            BaseTask pdProduct               = new PdProduct();
            BaseTask pdPA                    = new PdProductAssociation();
            BaseTask pdProductAttribute      = new PdProductAttribute();
            BaseTask pdPI                    = new PdProductImage();
            BaseTask pdTemplate              = new PdTemplate();
            BaseTask pdProductStatistics     = new PdProductStatistics();

            BaseTask soOrder         = new SoOrder();
            BaseTask soOrderItem     = new SoOrderItem();
            BaseTask soRA            = new SoReceiveAddress();
            BaseTask SyUG            = new SyUserGroup();
            BaseTask syGU            = new SyGroupUser();
            BaseTask syMenu          = new SyMenu();
            BaseTask syMenuPrivilege = new SyMenuPrivilege();
            BaseTask syPrivilege     = new SyPrivilege();
            BaseTask syRole          = new SyRole();
            BaseTask syRoleMenu      = new SyRoleMenu();
            BaseTask syRolePrivilege = new SyRolePrivilege();
            BaseTask syPermission    = new SyPermission();
            BaseTask syUser          = new SyUser();
            BaseTask syUW            = new SyUserWarehouse();
            BaseTask syMyMenu        = new SyMyMenu();

            BaseTask spcombo                  = new SpCombo();
            BaseTask spComboItem              = new SpComboItem();
            BaseTask spcopon                  = new spcoupon();
            BaseTask sqpromotion              = new SPpromotion();
            BaseTask spromotiongift           = new SPpromotiongift();
            BaseTask sppromotionoverlay       = new SPpromotionoverlay();
            BaseTask sppromotionrule          = new SPpromotionrule();
            BaseTask sppromotionrulecondition = new SPpromotionrulecondition();
            BaseTask sppromotionrulekeyvalue  = new SPpromotionrulekeyvalue();
            BaseTask syTaskConfig             = new SyTaskConfig();

            BaseTask whStockOut     = new WhStockOut();
            BaseTask whStockOutItem = new WhstockOutItem();
            BaseTask whwarehouse    = new WhWarehouse();
            BaseTask whwa           = new WHwarehousearea();
            BaseTask whwdy          = new WHwarehouseDeliveryType();
            BaseTask whWPT          = new WhWarehousePickupType();
            BaseTask whstockin      = new WhStockIn();
            BaseTask whstockinItem  = new WHStockinItem();
            BaseTask rcReturn       = new RCReturn();
            BaseTask rcReturnItem   = new RcReturnItem();

            listObject.Add(bsAT);
            listObject.Add(bsDP);
            listObject.Add(bsPT);
            listObject.Add(bsCode);
            listObject.Add(bsOrganization);
            listObject.Add(bsOrganizationWarehouse);

            listObject.Add(crCustomer);
            listObject.Add(crCL);
            listObject.Add(crCQ);
            listObject.Add(crRA);
            listObject.Add(dsMallType);
            listObject.Add(dsDealerLevel);
            listObject.Add(feArticle);
            listObject.Add(feAC);
            listObject.Add(feCS);
            listObject.Add(fePCI);
            listObject.Add(fePCR);
            listObject.Add(fepc);
            listObject.Add(feSearchKeyword);
            listObject.Add(feadvertgroup);
            listObject.Add(feadvertitem);
            listObject.Add(feproductgroup);
            listObject.Add(feproductitem);

            listObject.Add(fnIT);
            listObject.Add(fnpv);
            listObject.Add(fnReceiptVoucherItem);
            listObject.Add(fnop);
            listObject.Add(fninvoice);

            listObject.Add(fnPaymentVoucher);
            listObject.Add(fnPaymentVoucherItem);

            listObject.Add(lgDelivery);
            listObject.Add(lgDI);
            listObject.Add(lgDS);
            listObject.Add(lgDT);
            listObject.Add(lgPT);
            listObject.Add(lgsettlement);
            listObject.Add(lgSI);
            listObject.Add(lgDeliveryPrintTemplate);

            listObject.Add(pdAttribute);
            listObject.Add(pdAG);
            listObject.Add(pdAGA);
            listObject.Add(pdAO);
            listObject.Add(pdBrand);
            listObject.Add(pdCGA);
            listObject.Add(pdCategory);
            listObject.Add(pdCA);
            listObject.Add(pdPrice);
            listObject.Add(pdProduct);
            listObject.Add(pdPA);
            listObject.Add(pdProductAttribute);
            listObject.Add(pdTemplate);
            listObject.Add(pdProductStatistics);

            listObject.Add(soOrder);
            listObject.Add(soOrderItem);

            listObject.Add(spcombo);
            listObject.Add(spComboItem);
            listObject.Add(spcopon);
            listObject.Add(sqpromotion);
            listObject.Add(spromotiongift);
            //listObject.Add(sppromotionoverlay);
            listObject.Add(sppromotionrule);
            listObject.Add(sppromotionrulecondition);
            listObject.Add(sppromotionrulekeyvalue);

            listObject.Add(syGU);
            listObject.Add(syUW);
            listObject.Add(SyUG);
            listObject.Add(syMenu);
            listObject.Add(syUser);
            listObject.Add(syPermission);

            listObject.Add(syMenuPrivilege);
            listObject.Add(syPrivilege);
            listObject.Add(syRole);
            listObject.Add(syRoleMenu);
            listObject.Add(syRolePrivilege);
            listObject.Add(syMyMenu);
            listObject.Add(syTaskConfig);

            listObject.Add(whStockOut);
            listObject.Add(whStockOutItem);
            listObject.Add(whwarehouse);
            listObject.Add(whwa);
            listObject.Add(whwdy);
            listObject.Add(whWPT);
            listObject.Add(whstockin);
            listObject.Add(whstockinItem);
            listObject.Add(rcReturn);
            listObject.Add(rcReturnItem);
            listObject.Add(lgDUC);
            listObject.Add(pdPI);
            listObject.Add(soRA);
        }
Beispiel #21
0
 /// <summary>
 /// 更新地区信息
 /// </summary>
 /// <param name="model">地区信息实体,根据sysno</param>
 /// <returns>受影响的行数</returns>
 /// <remarks>
 /// 2013-08-02 郑荣华 创建
 /// </remarks>
 public abstract int Update(BsArea model);
Beispiel #22
0
 /// <summary>
 /// 创建地区信息
 /// </summary>
 /// <param name="model">地区信息实体</param>
 /// <returns>创建的地区信息sysNo</returns>
 /// <remarks>
 /// 2013-08-02 郑荣华 创建
 /// </remarks>
 public abstract int Create(BsArea model);
Beispiel #23
0
 /// <summary>
 /// 修改地区状态
 /// </summary>
 /// <param name="area">地区实体</param>
 /// <returns>返回受影响行数</returns>
 /// <remarks>2013-08-16 周瑜 创建</remarks>
 public abstract int UpdateStatus(BsArea area);
Beispiel #24
0
        public override Model.Result AddOrderTrade(int orderSysno)
        {
            Result result = new Result();

            try
            {
                var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);

                var        config   = Hyt.BLL.Config.Config.Instance.GetAnnaConfig();
                CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(order.CustomerSysNo);

                WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);

                BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo);
                BsArea wareCityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo);
                BsArea wareProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo);

                SoReceiveAddress srenity      = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo);
                string           buyer_idcard = "";
                if (!string.IsNullOrEmpty(srenity.IDCardNo))
                {
                    buyer_idcard = srenity.IDCardNo.Trim().ToUpper();
                }

                BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo);
                string District       = DistrictEntity.AreaName.Trim();
                BsArea CityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo);
                string City           = CityEntity.AreaName.Trim();
                BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo);
                string Province       = ProvinceEntity.AreaName.Trim();

                CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo);
                payment.CusPaymentCode = config.PaymentCode;
                IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo);

                LgDeliveryType deliveryType = Hyt.BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                order.OrderItemList = new List <SoOrderItem>();
                List <int> ProSysNo = new List <int>();
                foreach (CBSoOrderItem item in datao)
                {
                    ProSysNo.Add(item.ProductSysNo);

                    order.OrderItemList.Add(item);
                }
                IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo);
                foreach (var mod in productList)
                {
                    var tempitem = datao.First(p => p.ProductSysNo == mod.SysNo);
                    if (tempitem != null)
                    {
                        tempitem.OrginCountry = Hyt.BLL.Basic.OriginBo.Instance.GetEntity(mod.OriginSysNo).Origin_Name;
                    }
                }

                Order pushOrder = new Order();
                pushOrder.OrderHead             = new OrderHead();
                pushOrder.OrderPaymentLogistics = new OrderPaymentLogistics();
                pushOrder.itemList = new List <OrderList>();
                BindOrderHeadData(order, pushOrder.OrderHead, payment, srenity, buyer_idcard, District, City, Province,
                                  warehouseMod, wareDistrictEntity, wareCityEntity, wareProvinceEntity);
                BindOrderItemListData(datao, pushOrder.itemList);
                OrderPaymentLogistic(pushOrder.OrderPaymentLogistics, payment, deliveryType);

                string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Order>(pushOrder);
                str = str.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\"");
                str = str.Replace("Root", "ROOT");
                str = str.Replace("<itemList>", "");
                str = str.Replace("</itemList>", "");

                FtpUtil ftp      = new FtpUtil(config2.RequestUrl, config2.Account, config2.Password);
                string  msg      = "";
                string  fileName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + ".xml";
                try
                {
                    ftp.UploadFile(config2.RequestUrl, fileName, Encoding.UTF8.GetBytes(str), out msg);
                }
                catch (Exception ex)
                {
                    result.Status  = false;
                    result.Message = ex.Message;
                }

                result.Message = str;
            }
            catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
            }
            return(result);
        }
Beispiel #25
0
        public override Result AddOrderTrade(int orderSysno)
        {
            //throw new NotImplementedException();
            List <SoOrderSyncLogisticsLog> logList           = SoOrderSyncLogisticsLogBo.Instance.GetModelList(orderSysno);
            List <SoOrderSyncLogisticsLog> haveLogisticsList = logList.Where(p => p.Code == (int)this.Code && p.StatusCode == "OK" && !string.IsNullOrEmpty(p.LogisticsOrderId)).ToList();
            SoOrderSyncLogisticsLog        nowLogistics      = null;

            if (haveLogisticsList.Count == 0)
            {
                Result expressResult = GetExpressno(orderSysno.ToString());
                nowLogistics = (expressResult as Result <SoOrderSyncLogisticsLog>).Data;
                if (!expressResult.Status)
                {
                    return(expressResult);
                }
            }
            else
            {
                nowLogistics = haveLogisticsList[0];
            }


            var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);

            var config = Hyt.BLL.Config.Config.Instance.GetGaoJieConfig();

            var result = new Result <string>();

            WhWarehouse warehouseMod       = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
            BsArea      wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo);
            BsArea      wareCityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo);

            SoReceiveAddress srenity      = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo);
            string           buyer_idcard = "";

            if (!string.IsNullOrEmpty(srenity.IDCardNo))
            {
                buyer_idcard = srenity.IDCardNo.Trim();
            }

            BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo);
            string District       = DistrictEntity.AreaName.Trim();
            BsArea CityEntity     = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo);
            string City           = CityEntity.AreaName.Trim();
            BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo);
            string Province       = ProvinceEntity.AreaName.Trim();

            CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo);

            IList <CBSoOrderItem> datao    = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo);
            List <int>            ProSysNo = new List <int>();

            foreach (CBSoOrderItem item in datao)
            {
                ProSysNo.Add(item.ProductSysNo);
            }
            IList <CBPdProduct> productList  = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo);
            decimal             goodsGweight = 0;

            foreach (var mod in productList)
            {
                goodsGweight += mod.GrosWeight;
            }
            LgGaoJiePushInfo model    = new LgGaoJiePushInfo();
            string           strorder = "";

            strorder += "{\"order_sn\":\"" + order.OrderNo + "\",\"pfreight_no\":\"\",\"express_num\":\"" + nowLogistics.LogisticsOrderId + "\",";
            strorder += "\"sender_name\":\"" + warehouseMod.Contact + "\",\"sender_city\":\"" + wareCityEntity.AreaName + "\",\"sender_address\":\"" + warehouseMod.StreetAddress + "\",";
            strorder += "\"sender_phone\":\"" + warehouseMod.Phone + "\",\"sender_country_code\":\"" + wareCityEntity.AreaCode + "\",";
            strorder += "\"buyer_name\":\"" + srenity.Name + "\",\"buyer_idcard\":\"" + buyer_idcard + "\",\"buyer_phone\":\"" + srenity.MobilePhoneNumber + "\",";
            strorder += "\"province_code\":\"" + ProvinceEntity.AreaCode + "" + "\",\"buyer_address\":\"" + Province + "^^^" + City + "^^^" + District + "^^^" + srenity.StreetAddress + "\",";
            strorder += "\"curr\":\"502" + "\",\"pkg_gweight\":" + goodsGweight + ",\"p_name\":\"" + (payment == null ? "" : payment.PaymentName) + "\",\"p_no\":\"" + (payment == null ? "" : payment.VoucherNo) + "\",";
            strorder += "\"p_time\":\"" + (payment == null ? DateTime.Now.ToString("yyyy-mm-dd hh :MM") : payment.CreatedDate.ToString("yyyy-mm-dd hh :MM")) + "\",\"sh_fee\":\"" + order.FreightAmount.ToString() + "\",";
            strorder += "\"cus_tax\":\"" + order.TaxFee.ToString() + "\",\"pweb\":\"" + config.pweb + "\",\"web_name\":\"" + config.web_name + "\",\"re_no\":\"" + config.re_no + "\",\"re_name\":\"" + config.re_name + "\",";
            strorder += "\"order_goods\":";
            strorder += "[";
            string str = "";
            int    i   = 0;



            foreach (CBSoOrderItem item in datao)
            {
                //LgGaoJieGoodsInfo goodsInfo = LogisticsBo.Instance.GetLgGaoJieGoodsInfoEntityByPid(item.ProductSysNo);
                List <CBPdProduct> tempProductList = productList.Where(p => p.SysNo == item.ProductSysNo).ToList();

                var    originInfo = BLL.Basic.OriginBo.Instance.GetEntity(tempProductList[0].OriginSysNo);
                var    brandInfo  = BLL.Product.PdBrandBo.Instance.GetEntity(tempProductList[0].BrandSysNo);
                string ycg_code   = originInfo != null ? originInfo.CusOriginNO : "";

                if (i > 0)
                {
                    str += ",{";
                }
                else
                {
                    str += "{";
                }
                str += "\"goods_ptcode\":\"" + tempProductList[0].ProductDeclare;
                str += "\",\"goods_name\":\"" + tempProductList[0].ProductName;
                str += "\",\"brand\":\"" + brandInfo.Name;
                str += "\",\"goods_spec\":\"" + tempProductList[0].GrosWeight + "kg";
                str += "\",\"goods_num\":\"" + item.Quantity.ToString();
                str += "\",\"goods_price\":\"" + item.SalesUnitPrice.ToString();
                str += "\",\"ycg_code\":\"" + originInfo.CusOriginNO;
                str += "\",\"goods_barcode\":\"" + tempProductList[0].Barcode.Trim() + "\"";
                str += "}";
                i++;
            }
            strorder += str;
            strorder += "]}";

            string orders = strorder;

            strorder = EncodeBase64(EncodeBase64(strorder));

            var strPost = "&seller=" + EncodeBase64(config.seller) + "&api_key=" + EncodeBase64(config.api_key) + "&mark=" + EncodeBase64("order") + "&confirm=" + EncodeBase64("2") + "&order=" + strorder;

            var    strResult = GetResponse(url, strPost);
            var    json      = JObject.Parse(strResult);
            string jsons     = json.ToString();

            result.Status = true;
            result.Data   = json.ToString();

            var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog();

            soOrderSyncLogisticsLog.OrderSysNo     = orderSysno;
            soOrderSyncLogisticsLog.Code           = (int)this.Code;
            soOrderSyncLogisticsLog.CreateDate     = DateTime.Now;
            soOrderSyncLogisticsLog.CreatedBy      = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo;
            soOrderSyncLogisticsLog.LastUpdateBy   = 0;
            soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;

            soOrderSyncLogisticsLog.Packets          = orders.ToString();
            soOrderSyncLogisticsLog.ReceiptContent   = json.ToString();
            soOrderSyncLogisticsLog.LogisticsOrderId = "";


            //var model = new LgGaoJiePushInfo();
            //model.OrderSysNo = orderSysno;
            //model.OrderInfo = orders.ToString();
            ////保存订单回执信息
            //model.ReturnInfo = json.ToString();
            ////保存推送回执信息
            //LogisticsBo.Instance.InsertLgGaoJiePushInfoEntity(model, BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base);

            string state = json["flag"].ToString().ToLower();

            //推送成功
            if (state == "ok" || json["info"].ToString() == "重复下单")
            {
                result.Status  = true;
                result.Message = json["info"].ToString();
                soOrderSyncLogisticsLog.StatusCode = "";
                soOrderSyncLogisticsLog.StatusMsg  = result.Message;
                //更新物流状态CBLogisticsSendStatus
                BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.已推送, 3, orderSysno);
            }
            else
            {
                result.Status  = false;
                result.Message = json["info"].ToString();
                soOrderSyncLogisticsLog.StatusCode = "";
                soOrderSyncLogisticsLog.StatusMsg  = result.Message;
                BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.失败, 3, orderSysno);
            }

            SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog);

            return(result);
        }
Beispiel #26
0
        /// <summary>
        /// 添加交易订单
        /// </summary>
        /// <param name="orderSysno"></param>
        /// <returns>2016-04-09 陈海裕 创建</returns>
        public override Result AddOrderTrade(int orderSysno)
        {
            // 订单id,用于日志记录
            _orderSysNo = orderSysno;

            Result result = new Result();

            result.Status     = false;
            result.StatusCode = 0;
            result.Message    = "接口调用失败";

            if (orderSysno <= 0)
            {
                return(result);
            }

            lock (lockHelper)
            {
                try
                {
                    SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);
                    if (order == null)
                    {
                        result.Message = "该订单不存在";
                        return(result);
                    }
                    if (order.CBLogisticsSendStatus == 1)
                    {
                        result.Message = "该订单已推送,不能重复操作";
                        return(result);
                    }
                    order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                    order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                    ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                    voucherFilter.SourceSysNo = order.SysNo;
                    CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                    recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                    // 收货人 区 市 省
                    BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                    BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                    BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                    // 发货人 市
                    CBWhWarehouse warehouse   = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                    BsArea        shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);

                    DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                    LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                    EDTOrder newOrder = new EDTOrder();
                    newOrder.Address1 = order.ReceiveAddress.StreetAddress;
                    //newOrder.Base_ChannelInfoID = "1";
                    newOrder.Base_ChannelInfoID = "HKKJ";
                    newOrder.City           = receiverCity.AreaName;
                    newOrder.ConsigneeName  = order.ReceiveAddress.Name;
                    newOrder.Contact        = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                    newOrder.Country        = "CN";
                    newOrder.CusRemark      = order.Remarks;
                    newOrder.GFF_CustomerID = CoustomerID;
                    newOrder.OrderStatus    = "3";
                    newOrder.State          = receiverProvince.AreaName;
                    newOrder.Style          = "1";
                    //newOrder.ShippingService = "GZBC";
                    List <EDTOrderProduct> productList = new List <EDTOrderProduct>();
                    EDTOrderProduct        product     = null;
                    foreach (var item in order.OrderItemList)
                    {
                        PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);
                        product               = new EDTOrderProduct();
                        product.CnName        = item.ProductName;
                        product.EnName        = "";
                        product.MaterialRefNo = TConvert.ToString(productStock.ProductSku);
                        product.Price         = item.SalesUnitPrice.ToString();
                        product.Quantity      = item.Quantity.ToString();
                        product.Weight        = "";
                        product.WarehouseID   = warehouse.LogisWarehouseCode;
                        productList.Add(product);
                    }

                    if (product == null)
                    {
                        result.Message = "订单明细不存在";
                        return(result);
                    }

                    StringBuilder strorderinfo = new StringBuilder();
                    strorderinfo.Append("Style:" + newOrder.Style + ";");
                    strorderinfo.Append("GFF_CustomerID:" + newOrder.GFF_CustomerID + ";");
                    strorderinfo.Append("GFF_ReceiveSendAddressID:;");
                    strorderinfo.Append("ConsigneeName:" + newOrder.ConsigneeName + ";");
                    strorderinfo.Append("Country:" + newOrder.Country + ";");
                    strorderinfo.Append("Base_ChannelInfoID:" + newOrder.Base_ChannelInfoID + ";");
                    strorderinfo.Append("State:" + newOrder.State + ";");
                    strorderinfo.Append("City:" + newOrder.City + ";");
                    strorderinfo.Append("OrderStatus:" + newOrder.OrderStatus + ";");
                    strorderinfo.Append("Address1:" + newOrder.Address1 + ";");
                    strorderinfo.Append("Address2:;");
                    strorderinfo.Append("CsRefNo:;");
                    strorderinfo.Append("Zipcode:;");
                    strorderinfo.Append("Contact:" + newOrder.Contact + ";");
                    strorderinfo.Append("CusRemark:" + newOrder.CusRemark + ";");
                    strorderinfo.Append("TrackingNo:;");
                    //strorderinfo.Append("ShippingService:" + newOrder.ShippingService + ";");
                    StringBuilder strorderproduct = new StringBuilder();
                    for (int i = 0; i < productList.Count; i++)
                    {
                        strorderproduct.Append("MaterialRefNo:" + productList[i].MaterialRefNo + ",");
                        //strorderproduct.Append("MaterialRefNo:123456,");
                        strorderproduct.Append("Quantity:" + productList[i].Quantity + ",");
                        strorderproduct.Append("Price:" + productList[i].Price + ",");
                        strorderproduct.Append("Weight:" + productList[i].Weight + ",");
                        strorderproduct.Append("EnName:" + productList[i].EnName + ",");
                        strorderproduct.Append("WarehouseID:" + productList[i].WarehouseID + ",");
                        strorderproduct.Append("ProducingArea:,");
                        productList[i].CnName = Regex.Replace(productList[i].CnName, @"[/\(\)(),]", "");
                        strorderproduct.Append("CnName:" + productList[i].CnName + ",;");
                    }

                    ServiceRefEightDT.APIWebServiceSoapClient newService = new ServiceRefEightDT.APIWebServiceSoapClient();

                    string strResult = newService.InsertUpdateOrder(strorderinfo.ToString(), strorderproduct.ToString(), "", Secretkey);
                    if (strResult.Contains("成功"))
                    {
                        try
                        {
                            CrossBorderLogisticsOrder cbOrder = BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.GetEntityByOrderSysNo(orderSysno);
                            if (cbOrder == null)
                            {
                                Model.CrossBorderLogisticsOrder logisticsOrder = new Model.CrossBorderLogisticsOrder();
                                logisticsOrder.SoOrderSysNo     = orderSysno;
                                logisticsOrder.LogisticsOrderId = Regex.Match(strResult, "[a-zA-Z0-9]+").ToString();
                                logisticsOrder.LogisticsCode    = (int)this.Code;
                                BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.InsertEntity(logisticsOrder);
                            }
                            // 更新订单状态
                            BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderSysno);
                        }
                        catch (Exception ex)
                        {
                            BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, "订单" + orderSysno + "保存跨境物流返回的单号失败。", ex);
                        }

                        result.Status = true;
                    }

                    result.Message = strResult;
                }
                catch (Exception ex)
                {
                    result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                    return(result);
                }
            }

            return(result);
        }
Beispiel #27
0
        public override Result <string> SendOrder(int orderSysNo)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = 0,
                Message    = ""
            };

            var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo);

            if (order == null)
            {
                result.Message = "该订单不存在";
            }
            else
            {
                try
                {
                    order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                    order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);

                    // 收货人 区 市 省
                    BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                    BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                    BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                    var    provice          = receiverProvince.AreaName.Replace("省", "").Replace("市", "");

                    var postData = new Dictionary <string, string>();
                    postData.Add("appKey", Config.Account);
                    postData.Add("orderNo", order.SysNo.ToString());                                                                                             //网店订单编号[必填]
                    postData.Add("userName", order.CustomerSysNo.ToString());                                                                                    //买家ID[可填]
                    postData.Add("uName", order.ReceiveAddress.Name);                                                                                            //收件人姓名[必填]
                    postData.Add("province", provice);                                                                                                           //省份[必填]
                    postData.Add("city", receiverCity.AreaName);                                                                                                 //城市[必填]
                    postData.Add("district", receiverDistrict.AreaName);                                                                                         //区域[必填]
                    postData.Add("address", provice + " " + receiverCity.AreaName + " " + receiverDistrict.AreaName + " " + order.ReceiveAddress.StreetAddress); //地址[必填]
                    postData.Add("postcode", "123456");                                                                                                          //邮编[必填]
                    postData.Add("mobiTel", order.ReceiveAddress.MobilePhoneNumber);                                                                             //手机号码[可填][注:手机号码和电话号码至少填一项]
                    //postData.Add("phone", order.ReceiveAddress.PhoneNumber);//电话号码[可填][注:手机号码和电话号码至少填一项]
                    postData.Add("cRemark", order.ReceiveAddress.IDCardNo);                                                                                      //身份信息
                    //postData.Add("oRemark", order.InternalRemarks);//卖家备注[可填]
                    postData.Add("oSumPrice", order.OrderAmount.ToString());                                                                                     //实付订单总金额[必填]
                    //postData.Add("expFee", order.FreightAmount.ToString());//实付订单运费[可填][默认为0]
                    postData.Add("expCod", "0");                                                                                                                 //是否货到付款[必填][1:货到付款]
                    //postData.Add("codFee", "0");//货到付款手续费[可填][默认为0]
                    //postData.Add("expCodFee", "0");//货到付款代收运费[可填][默认为0]
                    //postData.Add("payTime", "2015-04-20 09:44:44");//订单支付日期
                    //postData.Add("paymententerprise", "");//订单支付企业
                    //postData.Add("paymentno", "");//订单支付流水号

                    List <Api_OrderProInfo> postOrderItemList = new List <Api_OrderProInfo>();
                    foreach (var item in order.OrderItemList)
                    {
                        var scProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(item.ProductSysNo, (int)Code);
                        if (scProduct != null)
                        {
                            var scObj = JObject.Parse(scProduct.Receipt);
                            var model = new Api_OrderProInfo()
                            {
                                proNo    = scObj["ProNo"].ToString(),
                                proSku   = scProduct.SKU,
                                proTitle = scProduct.ProductName,
                                proCount = item.Quantity.ToString(),
                                proPrice = item.SalesUnitPrice.ToString()
                            };
                            postOrderItemList.Add(model);
                        }
                    }
                    postData.Add("OrderPro", JsonConvert.SerializeObject(postOrderItemList));

                    var responseStr = Post("IOpenAPI.AddOrder", postData);
                    var back        = JObject.Parse(responseStr);
                    result = GetResult(back);
                    if (result.Status)
                    {
                        try
                        {
                            using (var tran = new System.Transactions.TransactionScope())
                            {
                                SendOrderReturn m = new SendOrderReturn();
                                m.OverseaCarrier    = "";
                                m.OverseaTrackingNo = "";
                                m.soOrderSysNo      = orderSysNo;
                                m.Code    = "1";
                                m.Msg     = JsonConvert.SerializeObject(back);
                                m.OrderNo = back["Result"].ToString();
                                Hyt.BLL.Order.SoOrderBo.Instance.InsertSendOrderReturn(m, Hyt.BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base);
                                //更新订单推送状态
                                Hyt.BLL.Order.SoOrderBo.UpdateOrderSendStatus(orderSysNo, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单推送状态.已推送);
                                result.Message = "推送成功";
                                tran.Complete();
                            }
                        }
                        catch (Exception ex)
                        {
                            result.Status  = false;
                            result.Message = ex.Message;
                            BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.后台, this.Code + "订单推送:" + ex.Message, ex);
                        }
                    }
                }
                catch (Exception ex)
                {
                    result.Message = ex.Message;
                    BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.后台, this.Code + "订单推送:" + ex.Message, ex);
                }
            }
            return(result);
        }
Beispiel #28
0
        /// <summary>
        /// 二期基础数据
        /// </summary>
        /// <param name="listObject"></param>
        private void AddBaseTaskObject2ToList1(List <BaseTask> listObject)
        {
            BaseTask bsAT = new BsArea();

            BaseTask crCustomer = new CrCustomer();
            BaseTask crCL       = new CrCustomerLevel();
            BaseTask crCQ       = new CrCustomerQuestion();
            BaseTask crRA       = new CrReceiveAddress();

            BaseTask feArticle = new FeArticle();
            BaseTask feAC      = new FeArticleCategory();
            BaseTask feCS      = new FeCommentSupport();
            BaseTask fepc      = new FeProductComment();
            BaseTask fePCI     = new FeProductCommentImage();
            BaseTask fePCR     = new FeProductCommentReply();

            BaseTask lgDS  = new LgDeliveryScope();
            BaseTask lgDUC = new LgDeliveryUserCredit();

            BaseTask pdAttribute        = new PdAttribute();
            BaseTask pdAG               = new PdAttributeGroup();
            BaseTask pdAGA              = new PdAttributeGroupAssociation();
            BaseTask pdAO               = new PdAttributeOption();
            BaseTask pdBrand            = new PdBrand();
            BaseTask pdCGA              = new PdCatAttributeGroupAso();
            BaseTask pdCategory         = new PdCategory();
            BaseTask pdCA               = new PdCategoryAssociation();
            BaseTask pdPrice            = new PdPrice();
            BaseTask pdProduct          = new PdProduct();
            BaseTask pdPA               = new PdProductAssociation();
            BaseTask pdProductAttribute = new PdProductAttribute();
            //BaseTask pdPI = new PdProductImage();
            BaseTask pdTemplate = new PdTemplate();

            BaseTask soRA = new SoReceiveAddress();

            BaseTask syUser = new SyUser();
            BaseTask syUW   = new SyUserWarehouse();

            BaseTask whwarehouse = new WhWarehouse();
            BaseTask whwa        = new WHwarehousearea();

            listObject.Add(bsAT);

            listObject.Add(crCustomer);
            listObject.Add(crCL);
            listObject.Add(crCQ);
            listObject.Add(crRA);

            listObject.Add(feArticle);
            listObject.Add(feAC);
            listObject.Add(feCS);
            listObject.Add(fepc);
            listObject.Add(fePCI);
            listObject.Add(fePCR);

            listObject.Add(lgDS);
            listObject.Add(lgDUC);

            listObject.Add(pdAttribute);
            listObject.Add(pdAG);
            listObject.Add(pdAGA);
            listObject.Add(pdAO);
            listObject.Add(pdBrand);
            listObject.Add(pdCGA);
            listObject.Add(pdCategory);
            listObject.Add(pdCA);
            listObject.Add(pdPrice);
            listObject.Add(pdProduct);
            listObject.Add(pdPA);
            listObject.Add(pdProductAttribute);
            listObject.Add(pdTemplate);
            //listObject.Add(pdPI);

            listObject.Add(soRA);

            listObject.Add(syUW);
            listObject.Add(syUser);

            listObject.Add(whwarehouse);
            listObject.Add(whwa);
        }
Beispiel #29
0
        public override Result <string> SendOrder(int orderSysNo)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = 0,
                Message    = ""
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo);
                if (order == null)
                {
                    result.Message = "该订单不存在";
                }
                else
                {
                    try
                    {
                        order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                        order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);

                        // 收货人 区 市 省
                        BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                        BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                        BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);

                        Dictionary <string, string> postData = new Dictionary <string, string>();

                        //下单商品 sku及购买数量,sku和购买数量用逗号隔开,多件商品时用分号隔开(如: test001,1;test002,1)
                        //B0230115,2;B0230131,3
                        var skuinfo = "";
                        foreach (var item in order.OrderItemList)
                        {
                            ScProduct scProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(item.ProductSysNo, (int)Code);
                            skuinfo += string.Format("{0},{1};", scProduct.SKU, item.Quantity);
                        }
                        skuinfo = skuinfo.TrimEnd(';');

                        postData.Add("skuinfo", skuinfo);
                        postData.Add("consi_name", order.ReceiveAddress.Name);               //收货人姓名
                        postData.Add("consi_phone", order.ReceiveAddress.MobilePhoneNumber); //收货人手机号码
                        postData.Add("consi_card", order.ReceiveAddress.IDCardNo);           //收货人身份证
                        postData.Add("consi_provinc", receiverProvince.AreaName);            //收货人所在省
                        postData.Add("consi_city", receiverCity.AreaName);                   //收货人所在城市
                        postData.Add("consi_county", receiverDistrict.NameAcronym);          //收货人所在县
                        postData.Add("consi_address", order.ReceiveAddress.StreetAddress);   //收货人所在地址
                        postData.Add("consi_freight", order.FreightAmount.ToString());       //运费
                        postData.Add("consi_price", order.OrderAmount.ToString());           //订单金额
                        //(非必填)torder 第三方订单号
                        //(非必填)paytype 支付方式(1:快付通,2:快钱,3:支付宝,4:微信,5:易极付,6:招商银行)
                        //(非必填)pay_tradeno 支付流水号
                        postData.Add("remark", "平台推单");//订单备注信息

                        string responsestr = Post(Config.GatewayUrl + "?c=vendor&a=addOrder", postData);
                        result.Data = responsestr;
                        var back = JObject.Parse(responsestr);
                        result = GetResult(result, back);
                        if (result.Status)
                        {
                            //返回结果保存到SendOrderReturn表中 2016-4-26 王耀发 创建
                            SendOrderReturn m = new SendOrderReturn();
                            m.soOrderSysNo = orderSysNo;
                            m.Code         = "1";
                            m.Msg          = responsestr;
                            m.OrderNo      = back["data"]["order_number"].ToString();
                            Hyt.BLL.Order.SoOrderBo.Instance.InsertSendOrderReturn(m, AdminAuthenticationBo.Instance.Current.Base);
                            //更新订单的商检推送状态
                            Hyt.BLL.Order.SoOrderBo.UpdateOrderSendStatus(orderSysNo, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单推送状态.已推送);
                        }
                    }
                    catch (Exception ex)
                    {
                        result.Status     = false;
                        result.StatusCode = -2;
                        result.Message    = ex.Message;
                    }
                }
                return(result);
            }
        }
Beispiel #30
0
        /// <summary>
        /// 推送供应链订单
        /// </summary>
        /// <param name="orderSysNo"></param>
        /// <returns></returns>
        /// <remarks>
        /// 2016-4-15 陈海裕 创建
        /// 2016-5-20 刘伟豪 修改
        /// </remarks>
        public override Result <string> SendOrder(int orderSysNo)
        {
            //防止并发操作
            lock (lockHelper)
            {
                // type: pushOrderDataInfo
                var result = new Result <string>()
                {
                    Status     = false,
                    StatusCode = 0,
                    Message    = "向" + this.Code + "供应链推送订单失败"
                };

                if (orderSysNo <= 0)
                {
                    return(result);
                }

                // json格式的post数据
                string jsonData = "";
                try
                {
                    SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo);
                    if (order == null)
                    {
                        result.Message = "该订单不存在";
                        return(result);
                    }
                    order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                    order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                    ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                    voucherFilter.SourceSysNo = order.SysNo;
                    CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                    recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                    // 收货人 区 市 省
                    BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                    BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                    BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);

                    DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                    HaiTunOrder newOrder = new HaiTunOrder();
                    newOrder.address                 = TConvert.ToString(order.ReceiveAddress.StreetAddress);
                    newOrder.city                    = TConvert.ToString(receiverCity.AreaName.Trim());
                    newOrder.consignee               = TConvert.ToString(order.ReceiveAddress.Name);
                    newOrder.consumerNote            = TConvert.ToString(order.Remarks);
                    newOrder.country                 = "中国";
                    newOrder.district                = TConvert.ToString(receiverDistrict.AreaName.Trim());
                    newOrder.idCardNumber            = TConvert.ToString(order.ReceiveAddress.IDCardNo);
                    newOrder.isCheck                 = "no";
                    newOrder.mobile                  = TConvert.ToString(order.ReceiveAddress.MobilePhoneNumber);
                    newOrder.moneyPaid               = TConvert.ToString(order.OrderAmount);
                    newOrder.orderAmount             = TConvert.ToString(order.OrderAmount);
                    newOrder.orderSn                 = TConvert.ToString(order.SysNo);
                    newOrder.paymentAccount          = "*****@*****.**"; // 固定值
                    newOrder.paymentInfoIdCardNumber = TConvert.ToString(order.ReceiveAddress.IDCardNo);
                    newOrder.paymentInfoMethod       = "支付宝";
                    newOrder.paymentInfoName         = TConvert.ToString(order.ReceiveAddress.Name);
                    newOrder.paymentInfoNumber       = TConvert.ToString(recVoucher.VoucherItems[0].VoucherNo);
                    newOrder.province                = TConvert.ToString(receiverProvince.AreaName);
                    newOrder.shippingFee             = TConvert.ToString(order.FreightAmount);
                    newOrder.siteName                = TConvert.ToString(dealer.ErpName);
                    newOrder.siteType                = "商城";
                    newOrder.tel     = TConvert.ToString(order.ReceiveAddress.PhoneNumber);
                    newOrder.zipcode = TConvert.ToString(order.ReceiveAddress.ZipCode);
                    newOrder.items   = new List <HaiTunOrderItem>();
                    HaiTunOrderItem haitunItem = new HaiTunOrderItem();
                    foreach (var item in order.OrderItemList)
                    {
#if DEBUG
                        haitunItem.goodsName  = "【广州保税 全国包邮】澳大利亚Swisse 奶蓟草护肝片肝脏排毒120粒 【2件起发】";
                        haitunItem.goodsPrice = "100";
                        haitunItem.goodsSn    = "AUSW003";
                        haitunItem.quantity   = "1";
                        newOrder.items.Add(haitunItem);
                        break;
#else
                        PdProductStock productStock  = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);
                        var            supplyProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(productStock.ProductSku, (int)this.Code);
                        if (supplyProduct != null)
                        {
                            haitunItem.goodsName  = TConvert.ToString(supplyProduct.ProductName);
                            haitunItem.goodsPrice = TConvert.ToString(item.SalesUnitPrice);
                            haitunItem.goodsSn    = TConvert.ToString(supplyProduct.SKU);
                            haitunItem.quantity   = TConvert.ToString(item.Quantity);
                            newOrder.items.Add(haitunItem);
                        }
                        else
                        {
                            result.Message = "商品" + item.ProductSysNo + "对应的供应链商品不存在";
                            return(result);
                        }
#endif
                    }

                    jsonData = Util.Serialization.JsonUtil.ToJson2(new List <HaiTunOrder>()
                    {
                        newOrder
                    });

                    var back = Post("pushOrderDataInfo", jsonData);
                    result = GetResult(JObject.Parse(back));
                    if (result.Status)
                    {
                    }
                }
                catch (Exception ex)
                {
                    result.Message = ex.Message;
                    BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, this.Code + "供应链订单推送:" + ex.Message, ex);
                }

                return(result);
            }
        }