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"; }
/// <summary> /// 计算运费 /// </summary> /// <param name="shoppingCart"></param> /// <param name="deliveryTypeSysNo"></param> /// <param name="areaSysNo"></param> /// <param name="warehouseSysNo"></param> /// <returns></returns> /// <remarks>2016-01-25 王耀发 创建</remarks> private CrShoppingCart CalculateFreigh(CrShoppingCart shoppingCart, int?deliveryTypeSysNo, int?areaSysNo, int?warehouseSysNo) { if (deliveryTypeSysNo != null && areaSysNo != null && warehouseSysNo != null) { //获得对应仓库明细 WhWarehouse wdata = Hyt.BLL.Warehouse.WhWarehouseBo.GetEntity((int)warehouseSysNo); //获取仓库物流关联详情 var warehouseDeliveryType = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouseDeliveryType((int)warehouseSysNo, (int)deliveryTypeSysNo); //获得对应商品和数量 王耀发 2016-1-13 创建 string productSysNoAndNumber = ""; if (shoppingCart.ShoppingCartGroups != null) { foreach (var item in shoppingCart.ShoppingCartGroups) { foreach (var productItem in item.ShoppingCartItems) { if (productSysNoAndNumber == "") { productSysNoAndNumber = productItem.ProductSysNo.ToString() + '_' + productItem.Quantity.ToString(); } else { productSysNoAndNumber += "," + productItem.ProductSysNo.ToString() + '_' + productItem.Quantity.ToString(); } } } if (warehouseDeliveryType != null && productSysNoAndNumber != "") { var freight = Hyt.BLL.FreightModule.FreightModuleDaoBo.Instance.GetFareTotal((int)areaSysNo, (int)warehouseSysNo, productSysNoAndNumber, (int)deliveryTypeSysNo); if (freight == null) { shoppingCart.FreightAmount = 0; } else { shoppingCart.FreightAmount = (freight.Freigh == -1 ? 0 : freight.Freigh); } } else { shoppingCart.FreightAmount = 0; } } else { shoppingCart.FreightAmount = 0; } } else { shoppingCart.FreightAmount = 0; } return(shoppingCart); }
/// <summary> /// 计算税费 /// </summary> /// <param name="shoppingCart"></param> /// <param name="warehouseSysNo"></param> /// <returns></returns> /// <remarks>2016-01-25 王耀发 创建</remarks> private CrShoppingCart CalculateTaxFee(CrShoppingCart shoppingCart, int?warehouseSysNo) { decimal TaxFee = 0; if (warehouseSysNo != null && warehouseSysNo != 0) { //获得对应仓库明细 WhWarehouse wdata = Hyt.BLL.Warehouse.WhWarehouseBo.GetEntity((int)warehouseSysNo); //订单税费 王耀发 2016-1-13 创建 if (shoppingCart.ShoppingCartGroups != null) { foreach (var item in shoppingCart.ShoppingCartGroups) { foreach (var productItem in item.ShoppingCartItems) { //如果对应仓库类型为保税和直邮,计算税费 王耀发 2016-1-13 创建 if (wdata.WarehouseType == (int)Hyt.Model.WorkflowStatus.WarehouseStatus.仓库类型.保税 || wdata.WarehouseType == (int)Hyt.Model.WorkflowStatus.WarehouseStatus.仓库类型.直邮) { PdProduct Product = PdProductBo.Instance.GetProductBySysNo(productItem.ProductSysNo); if (Product != null) { if (Product.Tax != 0) { var SalesAmount = productItem.SalesUnitPrice * productItem.Quantity - productItem.DiscountAmount; //2016-4-22 王耀发 修改 TaxFee += (SalesAmount * (Product.Tax / 100)); } } } } //2016-4-22 王耀发 修改 if (TaxFee != 0) { TaxFee += (shoppingCart.FreightAmount * Convert.ToDecimal(0.119)); } } } } shoppingCart.TaxFee = TaxFee; return(shoppingCart); }
/// <summary> /// 修改仓库状态 /// </summary> /// <param name="warehouse">仓库实体</param> /// <returns></returns> /// <remarks>2013-08-12 周瑜 创建</remarks> public abstract int UpdateStatus(WhWarehouse warehouse);
/// <summary> /// 修改仓库信息 /// </summary> /// <param name="warehouse">仓库实体</param> /// <returns></returns> /// <remarks>2013-08-12 周瑜 创建</remarks> public abstract int Update(WhWarehouse warehouse);
/// <summary> /// 新增仓库 /// </summary> /// <param name="warehouse">仓库实体</param> /// <returns></returns> /// <remarks>2013-08-12 周瑜 创建</remarks> public abstract int Insert(WhWarehouse warehouse);
/// <summary> /// 商品入库到平台 /// </summary> /// <remarks> 2016-5-4 刘伟豪 实现 </remarks> public override Result <string> StockInSupplyProduct(string sysNos) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { //是否有仓库 WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用); if (Warehouse == null) { result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString()); return(result); } foreach (var c in sysNos.Split(',')) { int id = int.Parse(c); int UserSysNo = Hyt.BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; ScProduct Product = BLL.Supply.ScProductBo.Instance.GetScProductInfo(id); //未入库的商品可入库 if (Product.ProductSysNo == 0) { using (var tran = new System.Transactions.TransactionScope()) { var json = JObject.Parse(Product.Receipt); PdProduct PdData = new PdProduct(); //绑定品牌 var brandSysNo = 0; var brandName = json["ProClass"].ToString().Trim(); PdBrand PdBrand = BLL.Product.PdBrandBo.Instance.GetEntityByName(brandName); brandSysNo = PdBrand != null ? PdBrand.SysNo : DataAccess.Product.IPdBrandDao.Instance.Create(new PdBrand() { Name = brandName, DisplayOrder = 0, Status = (int)Model.WorkflowStatus.ProductStatus.品牌状态.启用 }); PdData.BrandSysNo = brandSysNo; //绑定原产地 var orginSysNo = 0; var orginName = "其他"; Origin Origin = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName); orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin() { Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }); PdData.OriginSysNo = orginSysNo; PdData.ErpCode = PdData.Barcode = Product.SKU; PdData.EasName = string.Format("({0}产品){1}", Code.ToString(), Product.ProductName); PdData.ProductName = PdData.SeoTitle = PdData.SeoKeyword = PdData.SeoDescription = Product.ProductName; PdData.ViewCount = PdData.DisplayOrder = 0; var weight = 0.00m; decimal.TryParse(json["ProWeight"].ToString(), out weight); PdData.GrosWeight = weight * 0.001m; PdData.NetWeight = 0.00m; PdData.SalesMeasurementUnit = "kg"; PdData.ValueUnit = "CNY"; PdData.VolumeUnit = "m"; PdData.Tax = PdData.Freight = PdData.VolumeValue = PdData.Rate = PdData.PriceRate = PdData.PriceValue = PdData.DealerPriceValue = PdData.TradePrice = 0.00m; PdData.CostPrice = Product.Price; PdData.FreightFlag = "Y"; PdData.AgentSysNo = 1; PdData.DealerSysNo = 0; //各状态 PdData.ProductType = (int)Model.WorkflowStatus.ProductStatus.商品类型.普通商品; PdData.CanFrontEndOrder = (int)Model.WorkflowStatus.ProductStatus.商品是否前台下单.是; PdData.IsFrontDisplay = (int)Model.WorkflowStatus.ProductStatus.前台显示.是; PdData.Status = (int)Model.WorkflowStatus.ProductStatus.商品状态.架; PdData.CreatedBy = PdData.LastUpdateBy = UserSysNo; PdData.CreatedDate = PdData.LastUpdateDate = PdData.Stamp = DateTime.Now; //创建商品 int productSysNo = BLL.Product.PdProductBo.Instance.CreateProduct(PdData); if (productSysNo > 0) { //创建商品基础价 PdPrice BasicModel = new PdPrice(); BasicModel.ProductSysNo = productSysNo; BasicModel.Price = Product.Price; BasicModel.PriceSource = (int)Model.WorkflowStatus.ProductStatus.产品价格来源.基础价格; BasicModel.SourceSysNo = 0; BasicModel.Status = (int)Model.WorkflowStatus.ProductStatus.产品价格状态.效; Hyt.BLL.Product.PdPriceBo.Instance.Create(BasicModel); //创建商品会员价 PdPrice SaleModel = new PdPrice(); SaleModel.ProductSysNo = productSysNo; SaleModel.Price = Product.Price; SaleModel.PriceSource = (int)Model.WorkflowStatus.ProductStatus.产品价格来源.会员等级价; SaleModel.SourceSysNo = 1; SaleModel.Status = (int)Model.WorkflowStatus.ProductStatus.产品价格状态.效; Hyt.BLL.Product.PdPriceBo.Instance.Create(SaleModel); //更新商品临时表的ProductSysNo Hyt.BLL.Supply.ScProductBo.Instance.UpdateProductSysNo(id, productSysNo); //创建商品库存 var stock = GetProSkuStock(Product.SKU); Hyt.BLL.Supply.ScProductBo.Instance.ProCreateSupplyStock((int)Code, productSysNo, stock, UserSysNo); } tran.Complete(); } } else { var PdData = BLL.Product.PdProductBo.Instance.GetProductNoCache(Product.ProductSysNo); var stock = GetProSkuStock(Product.SKU); Hyt.BLL.Supply.ScProductBo.Instance.ProCreateSupplyStock((int)Code, Product.ProductSysNo, stock, UserSysNo); } } result.Message = "入库成功!"; result.Status = true; result.StatusCode = 1; } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }
/// <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); }
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); }
/// <summary> /// 入库个别商品信息 /// </summary> /// <param name="supplyCode">供应链代码</param> /// <param name="sysNos">商品系统编号,逗号分隔</param> /// <returns></returns> /// <remarks>2016-4-22 王耀发 创建</remarks> public override Result <string> StockInSupplyProduct(string sysNos) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { //是否有仓库 WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用); if (Warehouse == null) { result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString()); return(result); } string[] sysNoArray = sysNos.Split(','); int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; for (var i = 0; i < sysNoArray.Length; i++) { int SysNo = int.Parse(sysNoArray[i]); ScProduct Product = IScProductDao.Instance.GetScProductInfo(SysNo); //未入库的商品可入库 if (Product.ProductSysNo == 0) { using (var tran = new System.Transactions.TransactionScope()) { var jsonObject = JObject.Parse(Product.Receipt); PdProduct PdData = new PdProduct(); PdData.ErpCode = jsonObject["skuid"].ToString(); PdData.ProductName = jsonObject["goodsname"].ToString(); PdData.EasName = jsonObject["goodsname"].ToString(); if (jsonObject["barcode"] != null) { PdData.Barcode = jsonObject["barcode"].ToString(); } if (jsonObject["cess"] != null) { PdData.Tax = decimal.Parse(jsonObject["cess"].ToString()); } PdData.CanFrontEndOrder = 1; PdData.AgentSysNo = 1; PdData.DealerSysNo = 0; //默认品牌为其他 var brandSysNo = 0; var brandName = "其他"; PdBrand PdBrand = BLL.Product.PdBrandBo.Instance.GetEntityByName(brandName); brandSysNo = PdBrand != null ? PdBrand.SysNo : DataAccess.Product.IPdBrandDao.Instance.Create(new PdBrand() { Name = brandName, DisplayOrder = 0, Status = 1 }); PdData.BrandSysNo = brandSysNo; //绑定原产地 var orginSysNo = 0; var orginName = "其他"; Origin Origin = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName); orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin() { Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }); PdData.OriginSysNo = orginSysNo; PdData.CreatedBy = UserSysNo; PdData.CreatedDate = DateTime.Now; PdData.LastUpdateBy = UserSysNo; PdData.LastUpdateDate = DateTime.Now; //创建商品 int ProductSysNo = PdProductBo.Instance.CreateProduct(PdData); if (ProductSysNo > 0) { //创建商品基础价 PdPrice BasicModel = new PdPrice(); BasicModel.ProductSysNo = ProductSysNo; BasicModel.Price = decimal.Parse(jsonObject["price"].ToString()); BasicModel.PriceSource = 0; BasicModel.SourceSysNo = 0; BasicModel.Status = 1; PdPriceBo.Instance.Create(BasicModel); //创建商品会员价 PdPrice SaleModel = new PdPrice(); SaleModel.ProductSysNo = ProductSysNo; SaleModel.Price = decimal.Parse(jsonObject["price"].ToString()); SaleModel.PriceSource = 10; SaleModel.SourceSysNo = 1; SaleModel.Status = 1; PdPriceBo.Instance.Create(SaleModel); //更新商品临时表的ProductSysNo ScProductBo.Instance.UpdateProductSysNo(SysNo, ProductSysNo); //创建商品库存 ScProductBo.Instance.ProCreateSupplyStock((int)Code, ProductSysNo, decimal.Parse(jsonObject["number"].ToString()), UserSysNo); } tran.Complete(); } } result.Status = true; } } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }
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); }
/// <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); }
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); }
public Extra.Erp.Model.Result ErpSellOutStockAdd(int orderSysNo, int ActionType = 0) { Extra.Erp.Model.Result result = new Model.Result(); try { var stockout = Hyt.DataAccess.Warehouse.IOutStockDao.Instance.GetModel(orderSysNo); WhWarehouse wareHouse = Hyt.DataAccess.Warehouse.IWhWarehouseDao.Instance.GetWarehouse(stockout.WarehouseSysNo); SoOrder odrder = Hyt.DataAccess.Order.ISoOrderDao.Instance.GetEntity(stockout.OrderSysNO); odrder.ReceiveAddress = ISoReceiveAddressDao.Instance.GetOrderReceiveAddress(odrder.ReceiveAddressSysNo); string actionPath = "/base/StockOutAdd"; //if (ActionType == 1) //{ // actionPath = "/bill/stockModi"; //} string postDataPath = Config.root + actionPath; EasSellOutStock mod = new EasSellOutStock(); mod.FBillNo = odrder.OrderNo; mod.FEntryID = "1"; mod.Fdate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); mod.FConsignee = odrder.ReceiveAddress.Name; mod.FDeptID = ""; mod.FEmpID = ""; mod.FExplanation = ""; mod.FFetchAdd = odrder.ReceiveAddress.StreetAddress; mod.FFManagerID = ""; mod.FSaleStyle = "网单销售"; mod.FSManagerID = ""; mod.FCustID = FCustID; mod.FDCStockID = wareHouse.ErpCode; mod.FROB = "1"; List <Hyt.Model.Transfer.CBSoOrderItem> orderItems = Hyt.DataAccess.Order.ISoOrderDao.Instance.GetOrderItemsByOrderId(new int[] { odrder.SysNo }); int indx = 1; foreach (var itemMod in orderItems) { WhStockOutItem outStockItem = stockout.Items.First(p => p.ProductSysNo == itemMod.ProductSysNo); if (outStockItem != null) { EasSellOutStockItem item = new EasSellOutStockItem() { FItemID = itemMod.ErpCode, Fauxqty = outStockItem.ProductQuantity.ToString(), FItemName = itemMod.ProductName, FDCStockID = wareHouse.ErpCode, FUnitID = "kg", FConsignPrice = itemMod.SalesUnitPrice.ToString("0.00"), FConsignAmount = itemMod.SalesAmount.ToString("0.00") }; mod.item.Add(item); } } string strProduct = Hyt.Util.Serialization.JsonUtil.ToJson(mod); strProduct = strProduct.Replace("\"APP_Key\":\"\",\"APP_scode\":\"\",", ""); string posData = Hyt.Util.MyHttp.PostJsonData(postDataPath, strProduct); if (posData.IndexOf("没有对应") != -1) { result.Status = false; result.Message = posData; } else { EasResult easResult = Hyt.Util.Serialization.JsonUtil.ToObject <EasResult>(posData); result.Status = easResult.success; result.Message = easResult.message; } } catch (Exception e) { result.Status = false; result.Message = e.Message; } return(result); }
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); }
/// <summary> /// 发送门店提货验证码 /// </summary> /// <param name="sysNo">出库单编号</param> /// <param name="orderNO">订单号</param> /// <param name="mobileNum">收货人手机</param> /// <param name="shop">门店</param> /// <returns>提货验证码</returns> /// <remarks>2013-07-06 朱成果 创建</remarks> public SmsResult SendSelfDeliveryValidation(int sysNo, int orderNO, string mobileNum, WhWarehouse shop = null) { //随机生成6位验证码 //string code = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 6).ToLower(); string code = Hyt.Util.WebUtil.Number(6, false); WhPickUpCode p = new WhPickUpCode(); p.Code = code; p.StockOutSysNo = sysNo; p.MobilePhoneNumber = mobileNum; p.CreatedDate = DateTime.Now; SetWhPickUpCode(p); //SendMobileMessage(mobileNum, string.Format(Hyt.Model.SystemPredefined.Constant.SELF_DELIVERY_SURE_CODE, sysNo, code));//发送验证码 return(BLL.Extras.SmsBO.Instance.发送自提通知短信带验证码(mobileNum, orderNO.ToString(), shop.StreetAddress, shop.Phone, code)); //BLL.Extra.EmailBO.SendMail }
/// <summary> /// 入库个别商品信息 /// </summary> /// <param name="supplyCode">供应链代码</param> /// <param name="sysNos">商品系统编号,逗号分隔</param> /// <returns></returns> /// <remarks>2016-4-22 王耀发 创建</remarks> public override Result <string> StockInSupplyProduct(string sysNos) { var result = new Result <string>() { Status = false, StatusCode = -1, Message = "未知错误" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { try { //是否有仓库 WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用); if (Warehouse == null) { result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString()); return(result); } string[] sysNoArray = sysNos.Split(','); int UserSysNo = AdminAuthenticationBo.Instance.Current.Base.SysNo; for (var i = 0; i < sysNoArray.Length; i++) { int SysNo = int.Parse(sysNoArray[i]); ScProduct Product = IScProductDao.Instance.GetScProductInfo(SysNo); //未入库的商品可入库 if (Product.ProductSysNo == 0) { using (var tran = new System.Transactions.TransactionScope()) { var jsonObject = JObject.Parse(Product.Receipt); //PdProductList PdData = new PdProductList(); string ErpCode = jsonObject["SkuId"].ToString(); string ProductName = jsonObject["Name"].ToString(); string EasName = jsonObject["Name"].ToString(); string DefaultImage = jsonObject["DefaultImage"].ToString(); string Remark = jsonObject["Remark"].ToString(); //商品类目 var CategoryName = jsonObject["CategoryName"].ToString(); PdCategorySql PdCmodel = new PdCategorySql(); PdCmodel.ParentSysNo = 0; PdCmodel.CategoryName = CategoryName; PdCmodel.Code = ""; PdCmodel.SeoTitle = CategoryName; PdCmodel.SeoKeyword = CategoryName; PdCmodel.SeoDescription = CategoryName; PdCmodel.TemplateSysNo = 0; PdCmodel.IsOnline = 1; PdCmodel.Status = 1; PdCmodel.CreatedBy = 1; PdCmodel.CreatedDate = DateTime.Now; PdCmodel.LastUpdateBy = 1; PdCmodel.LastUpdateDate = DateTime.Now; PdCategoryAssociation PdCAmodel = new PdCategoryAssociation(); PdCAmodel.IsMaster = 1; PdCAmodel.CreatedBy = 1; PdCAmodel.CreatedDate = DateTime.Now; PdCAmodel.LastUpdateBy = 1; PdCAmodel.LastUpdateDate = DateTime.Now; //品牌 //品牌 int BrandSysNo; var BrandName = jsonObject["BrandName"].ToString(); PdBrand pEnity = PdBrandBo.Instance.GetEntityByName(BrandName); //判断商品品牌是否存在 if (pEnity != null) { BrandSysNo = pEnity.SysNo; } else { var pmodel = new PdBrand(); pmodel.Name = BrandName; pmodel.Status = 1; BrandSysNo = IPdBrandDao.Instance.Create(pmodel); } string GrosWeight = jsonObject["Weight"].ToString(); string Price = jsonObject["Price"].ToString(); var prmodel = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.基础价格, 0); // new PdPrice(); var sprmodel = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.会员等级价, 1); // new PdPrice(); var sspmodel = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.门店销售价, 0); // new PdPrice(); //绑定原产地 var orginSysNo = 0; var orginName = "其他"; Origin Origin = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName); orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin() { Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now }); var currentInfo = BLL.Authentication.AdminAuthenticationBo.Instance.Current; int agentSysNo = 1; int dealerSysNo = 0; if (currentInfo.Dealer != null) { dealerSysNo = currentInfo.Dealer.SysNo; agentSysNo = currentInfo.DealerCreatedBy; } int TradeMode = 0; switch (jsonObject["TradeMode"].ToString()) { case "3": TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.完税商品; break; case "2": TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.直邮商品; break; default: TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.普通商品; break; } //创建商品 var excellst = new List <PdProductList>(); var model = new PdProductList { ErpCode = ErpCode, //商品编号 ProductName = ProductName, //商品名称 EasName = EasName, //商品名称 BrandSysNo = BrandSysNo, //品牌 ProductType = TradeMode, //商品类型(模式) OriginSysNo = orginSysNo, //国家 Barcode = "", GrosWeight = Decimal.Parse(GrosWeight), //重量 Tax = "0", PriceRate = 0M, PriceValue = 0M, TradePrice = 0M, PdPrice = prmodel, PdSalePrice = sprmodel, PdStoreSalePrice = sspmodel, PdCategorySql = PdCmodel, PdCategoryAssociation = PdCAmodel, DealerSysNo = dealerSysNo, AgentSysNo = agentSysNo,//默认为总部代理商 CreatedBy = 1, CreatedDate = DateTime.Now, LastUpdateBy = 1, LastUpdateDate = DateTime.Now, SalesMeasurementUnit = "g", ProductDesc = System.Web.HttpUtility.UrlEncode(Remark, System.Text.Encoding.GetEncoding("UTF-8")).Replace("+", " ")//描述 }; excellst.Add(model); try { //新增商品 IPdProductDao.Instance.CreatePdProduct(excellst); //根据编号获取商品 PdProduct Entity = IPdProductDao.Instance.GetEntityByErpCode(ErpCode); if (Entity != null) { List <string> imageslist = new List <string>(); string images = jsonObject["ImageList"].ToString(); imageslist = JsonConvert.DeserializeObject <List <string> >(images); for (var j = 0; j < imageslist.Count; j++) { if (j < 5) { var productImage = new PdProductImage(); productImage.ProductSysNo = Entity.SysNo; productImage.DisplayOrder = j; productImage.ImageUrl = imageslist[j].ToString(); if (j == 0) { productImage.Status = (int)Hyt.Model.WorkflowStatus.ProductStatus.商品图片状态.显示; } else { productImage.Status = (int)Hyt.Model.WorkflowStatus.ProductStatus.商品图片状态.隐藏; } int res = IPdProductImageDao.Instance.Insert(productImage); } } //更新商品临时表的ProductSysNo ScProductBo.Instance.UpdateProductSysNo(SysNo, Entity.SysNo); //创建商品库存 ScProductBo.Instance.ProCreateSupplyStock((int)Code, Entity.SysNo, decimal.Parse(jsonObject["StockQuantity"].ToString()), UserSysNo); } else { result.Message = "获取商品数据错误"; result.Status = false; return(result); } } catch (Exception ex) { result.Message = string.Format("数据错误:{0}", ex.Message); result.Status = false; return(result); } tran.Complete(); } } result.Status = true; } } catch (Exception ex) { result.Message = ex.Message; result.Status = false; result.StatusCode = -2; } return(result); } }
public override Result AddOrderTrade(int orderSysno) { Result result = new Result(); var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); 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); BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); var kuaidi = Hyt.BLL.Logistics.DeliveryTypeBo.Instance.GetKuaidi(orderSysno); IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); order.OrderItemList = new List <SoOrderItem>(); int ParcelNo = 0; string GoodsName = ""; foreach (CBSoOrderItem item in datao) { ParcelNo += item.Quantity; GoodsName = item.EasName; order.OrderItemList.Add(item); } CrossBorderParam cp = new CrossBorderParam(); cp.Cost = order.FreightAmount; cp.OrderDateTime = order.CreateDate; cp.OrderNo = order.SysNo.ToString().Trim(); cp.CustomerID = 689; cp.S_Address = warehouseMod.BackWarehouseName.Trim(); cp.S_Province = wareProvinceEntity.AreaName.Trim(); cp.S_City = wareCityEntity.AreaName.Trim(); cp.S_County = wareDistrictEntity.AreaName.Trim(); cp.S_Name = warehouseMod.WarehouseName.Trim(); cp.S_Phone = warehouseMod.Phone.Trim(); if (!string.IsNullOrEmpty(srenity.IDCardNo)) { cp.R_IDNo = srenity.IDCardNo.Trim().ToUpper(); } cp.R_Name = srenity.Name.Trim(); cp.R_Phone = srenity.MobilePhoneNumber.Trim(); cp.R_Address = srenity.StreetAddress.Trim(); cp.R_Province = ProvinceEntity.AreaName.Trim(); cp.R_City = CityEntity.AreaName.Trim(); cp.R_County = DistrictEntity.AreaName.Trim(); cp.Type = "4"; cp.ParcelNo = ParcelNo; cp.GoodsName = GoodsName; cp.Mark = "300-012-005"; cp.Batch = "114批"; cp.DeliveryType = -1; cp.PrintSenderMsg = warehouseMod.WarehouseName.Trim(); cp.PayType = -1; cp.Company = kuaidi.Company; cp.Date = kuaidi.Date; cp.TrackingNo = kuaidi.TrackingNo; using (ChannelFactory <IExpress> channelFactory = new ChannelFactory <IExpress>("WSHttpBinding_IExpress")) { UserNamePasswordClientCredential credential = channelFactory.Credentials.UserName; credential.UserName = UserName; credential.Password = Password; IExpress calculator = channelFactory.CreateChannel(); #region 参数 T_Express express = new T_Express { PicLocalNo = cp.PicLocalNo, Batch = cp.Batch, Type = cp.Type, S_Name = cp.S_Name, S_Phone = cp.S_Phone, S_Province = cp.S_Province, S_City = cp.S_City, S_County = cp.S_County, S_Address = cp.S_Address, R_Name = cp.R_Name, R_Phone = cp.R_Phone, R_Province = cp.R_Province, R_City = cp.R_City, R_County = cp.R_County, R_Address = cp.R_Address, R_IDNo = cp.R_IDNo, OrderNo = cp.OrderNo, GoodsName = cp.GoodsName, CollectionPayment = cp.CollectionPayment, Cost = cp.Cost, OrderDateTime = cp.OrderDateTime, Account = cp.Account, BankAccount = cp.BankAccount, PayType = cp.PayType, DeliveryType = cp.DeliveryType, Mark = cp.Mark, PrintSenderMsg = cp.PrintSenderMsg, ParcelNo = cp.ParcelNo.ToString(), Date = DateTime.Parse(cp.Date), Company = cp.Company, TrackingNo = cp.TrackingNo, CustomerID = cp.CustomerID #region 测试数据 // //预留溯源码 //Batch = "114批", ////已下订单,未受理 //Type = "4", //S_Name = "货之家", //S_Phone = "15802026993", //S_Province = "广东省", //S_City = "广州市", //S_County = "南沙区", //S_Address = "货之家保税仓", //R_Name = "周恒", //R_Phone = "13662656512", //R_Province = "四川省", //R_City = "达州市", //R_County = "开江县", //R_Address = "新宁镇接龙桥惠民社区5号楼三楼八号", //R_IDNo = "440103698954523618", //OrderNo = "Test_70151538959", ////快递面单,底部信息 //GoodsName = "日用品", //Company = "圆通", //TrackingNo = "81257111826892", //Cost = 0, ////订单日期 //OrderDateTime = DateTime.Parse("2018-01-08 09:48:23"), //PayType = -1, //DeliveryType = -1, ////三段码、大头笔 //Mark = "300-012-005", ////覆盖详细的发件信息 //PrintSenderMsg = "货之家南沙保税仓", //ParcelNo = "1", ////快递单日期 //Date = DateTime.Parse("2018-01-08 09:48:23"), ////新绕城,固定为689 //CustomerID = 689, //PicLocalNo = null, //CollectionPayment = null, //可空 = null, //BankAccount = null, #endregion }; #endregion result.Status = calculator.ExpressSaveOrUpdate(express); } return(result); }