diff --git a/TradeManageNew/DD_OrderServiceNew.asmx.cs b/TradeManageNew/DD_OrderServiceNew.asmx.cs index 84e998f..ae88c45 100644 --- a/TradeManageNew/DD_OrderServiceNew.asmx.cs +++ b/TradeManageNew/DD_OrderServiceNew.asmx.cs @@ -28749,6 +28749,7 @@ namespace TradeManageNew CreationTime = pageItem.CreationTime, CreatorId = pageItem.CreatorId, PublishMessage = pageItem.PublishMessage, + TrackingCode= pageItem.TrackingCode, }; result.DataSource.Add(resultItem); } diff --git a/TradeManageNew/DataNew.cs b/TradeManageNew/DataNew.cs index 44ea6a0..ddf4b41 100644 --- a/TradeManageNew/DataNew.cs +++ b/TradeManageNew/DataNew.cs @@ -7135,6 +7135,77 @@ end } #endregion + + + #region 返回扫描订单Model xsx + public static DT_OrderScanModel GetScanOrderModelForReturnFinal_250123(string OrderCode, string OrderCode2, string OrderCode3, string OrderCode4, string OrderCode5, int UserId) + { + DT_OrderScanModel model = null; + string tsql = @" +--declare @OrderCode nvarchar(50),@OrderCode2 nvarchar(50) +--set @OrderCode='1Z266E819066489986' +declare @TrackCode nvarchar(50),@OrderId int,@JoinOrderCode nvarchar(50),@TrackId int,@MateState int,@PrintState int,@State int,@OrderState int,@PostId int,@DetailId int,@num int,@OldPostionCode nvarchar(50),@PostInfo nvarchar(50) +set @OrderId=0 +select top 1 @TrackCode=a.tracking_id,@PostInfo=return_carrier,@PostId=0,@OrderId=a.OrderId,@OrderCode=b.PlatOrderCode,@JoinOrderCode=JoinOrderCode,@PrintState=PrintState,@MateState=MateState,@State=b.State,@TrackId=a.Id,@OrderState=isnull(ScanState,0),@DetailId=a.DetailId,@num=a.return_quantity,@OldPostionCode=a.OldPostionCode from DT_OrderReturn a +inner join DT_OrderInfo b on a.OrderId=b.OrderId + where (isnull(a.ScanState,0)=0 or isnull(a.ScanState,0)=2) and (tracking_id=@OrderCode or tracking_id=@OrderCode2 or tracking_id=@OrderCode3 or tracking_id=@OrderCode4 or tracking_id=@OrderCode5) order by Id desc + +declare @WorkDesc nvarchar(50),@storeId int +select @WorkDesc=WorkDesc from JC_UserInfo where UserId=@UserId +set @storeId=6 +if @WorkDesc='东仓' +begin +set @storeId=11 +end +select top 1 @OldPostionCode=b.PostionCode from HW_GoodsInDetail a with(nolock) +inner join CK_StorePostion b with(nolock) on a.PostionId=b.PostionId + where DetailId=@DetailId and CKDetailId>0 and OrderGoodsId>0 and a.StoreId=@storeId order by UpDateTime desc + +if @OrderId>0 +begin +select top 1 a.OrderId,a.PostState,a.OrderId,a.PlatOrderCode,TrackCode=@TrackCode,b.TotalWeight,b.PostFee,b.RevName,b.RevCountry,b.RevAddr,b.RevPhone,RevFax=b.RevPostCode,b.Post,b.CountryCode,WeightRate=20,a.State,a.JoinOrderCode,TrackId=@TrackId,a.PrintDate,b.ErrorInfo,s.ShopName,OrderState=@OrderState,PostInfo=@PostInfo,OrderName=@OldPostionCode from DT_OrderInfo a +inner join DT_OrderXXInfo b on a.OrderId=b.OrderId +inner join dbo.JC_Shop s ON a.ShopId=s.ShopId +where a.OrderId=@OrderId + +select Id=b.DetailId,GoodsName=c.GoodsEnglisgName,c.GoodsCode,GoodsOldCode=b.SKU1,b.TypeCode,b.TypeDesc,Weight=case when c.Weight2 is not null and c.Weight2>0 then c.Weight2*0.0625 else isnull(c.Weight,0)*0.0022046 end,GoodsPrice=b.Price,GoodsNum=@num,TrackCode=@TrackCode,FirstImgUrl='' from DT_OrderGoods a +inner join HW_GoodsDetail b on a.DetailId=b.DetailId +inner join HW_GoodsInfo c on b.GoodsId=c.GoodsId +where a.OrderId=@OrderId and a.DetailId=@DetailId +--select TrackCode=@OldPostionCode,TrackCode2=@OldPostionCode,TrackType=1 +--union all +select TrackCode=b.PostionCode,TrackCode2=b.PostionCode,TrackType=2 from CK_StoreHouse a +inner join CK_StorePostion b on a.StoreId=b.StoreId +where a.StoreType=5 +end + + +"; + Database db = DatabaseFactory.CreateDatabase(); + DbCommand cmd = db.GetSqlStringCommand(tsql); + db.AddInParameter(cmd, "@UserId", DbType.Int32, UserId); + db.AddInParameter(cmd, "@OrderCode", DbType.String, OrderCode); + db.AddInParameter(cmd, "@OrderCode2", DbType.String, OrderCode2); + db.AddInParameter(cmd, "@OrderCode3", DbType.String, OrderCode); + db.AddInParameter(cmd, "@OrderCode4", DbType.String, OrderCode2); + db.AddInParameter(cmd, "@OrderCode5", DbType.String, OrderCode); + + DataSet tb = db.ExecuteDataSet(cmd); + if (tb != null) + { + if (tb.Tables.Count > 0 && tb.Tables[0].Rows.Count > 0) model = tb.Tables[0].Rows[0].ToModel(); + if (tb.Tables.Count > 1) + model.GoodsList = tb.Tables[1].ToList(); + if (tb.Tables.Count > 2) + model.TrackList = tb.Tables[2].ToList(); + } + + + return model; + } + #endregion + + #region 返回扫描订单Model public static DT_OrderScanModel GetScanOrderModelForReturn(string OrderCode, string OrderCode2,int UserId) { diff --git a/TradeManageNew/Models/ShopifyUsedSale/OrderUsedSalePlatformPageDto.cs b/TradeManageNew/Models/ShopifyUsedSale/OrderUsedSalePlatformPageDto.cs index 3941c0f..ef0f3e5 100644 --- a/TradeManageNew/Models/ShopifyUsedSale/OrderUsedSalePlatformPageDto.cs +++ b/TradeManageNew/Models/ShopifyUsedSale/OrderUsedSalePlatformPageDto.cs @@ -103,5 +103,9 @@ namespace TradeManageNew.Models.ShopifyUsedSale public string PublishMessage { get; set; } public ShopifyUsedSaleOrderInfoDto ShopifyOrder { get; set; } + /// + /// TrackingCode + /// + public string TrackingCode { get; set; } } } \ No newline at end of file diff --git a/TradeManageNew/OuterService/ShageService.ashx.cs b/TradeManageNew/OuterService/ShageService.ashx.cs index 27288a7..68fbb4b 100644 --- a/TradeManageNew/OuterService/ShageService.ashx.cs +++ b/TradeManageNew/OuterService/ShageService.ashx.cs @@ -12,6 +12,8 @@ using LinqToDB; using TradeManageNew.Models.Shage; using TradeUsedSale.Enums; using TradeUsedSale.Repositories; +using TradeUsedSale.Repositories.Models; +using NPOI.HSSF.Record.Formula.Functions; namespace TradeManageNew.OuterService { @@ -1511,6 +1513,153 @@ namespace TradeManageNew.OuterService } } } + //SkuId,WarehousePositionCode,ImageUrls ,UserId + if (Method == "ReturnSaveNew_250123") + { + Sync_ReturnGoodsSave model = JsonConvert.DeserializeObject(ResponseContent); + if (model != null) + { + int returnid = 0; + foreach (var gmd in model.GoodsList) + { + DT_BackGoodsNew backmodel = new DT_BackGoodsNew(); + backmodel.PostionCode = string.IsNullOrEmpty(model.StoreCode) ? "" : model.StoreCode; + backmodel.OrderId = model.OrderId; + backmodel.InUserId = model.UserId; + backmodel.Num = gmd.GoodsNum; + backmodel.TrackCode = string.IsNullOrEmpty(model.TrackCode) ? "" : model.TrackCode; + backmodel.OrderCode = string.IsNullOrEmpty(model.OrderCode) ? "" : model.OrderCode; + backmodel.InType = model.InType; + if (model.InType == 1) + backmodel.GoodsState = 1; + else if (model.InType == 3) + backmodel.GoodsState = 3; + else if (model.InType == 2) + backmodel.GoodsState = 6; + //如果 InType=2,4,5 生成2手数据 + if (model.InType == 2 || model.InType == 4 || model.InType == 5) + { + if (model.GoodsList.Count>0) + { + foreach (var i in model.GoodsList) + { + using (var db = new ErpDbContext()) + { + var user = db.JC_UserInfo.FirstOrDefault(x => x.UserId == model.UserId); + + var warehouseLocation = WarehouseLocation.East; + if (user.WorkDesc == "西仓") + { + warehouseLocation = WarehouseLocation.West; + } + var storePosition = db.CK_StorePostion.FirstOrDefault(x => + x.PostionCode == model.StoreCode.Trim()); + if (storePosition is null) + { + throw new Exception( + $"There is no storage location encoded as {model.StoreCode}"); + } + + var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.SKU1 == i.SKU || x.SKU2 == i.SKU || x.SKU3 == i.SKU || x.SKU4 == i.SKU); + + + if (sku is null) + { + throw new Exception($"There is no SKU with {i.SKU}"); + } + + var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); + + if (product is null) + { + throw new Exception($"There is no product with ID {sku.GoodsId}"); + } + var newOrderUsedSalePlatform = + new TradeUsedSale.Repositories.Models.DT_OrderUsedSalePlatform + { + ProductId = product.GoodsId, + ProductCode = product.GoodsCode, + SkuId = sku.DetailId, + SkuCode = sku.SKU1, + BarCode = string.Empty, + IsPrinted = false, + Status = UsedSalePlatformStatus.NotListed, + WarehouseLocation = warehouseLocation, + WarehousePositionId = storePosition.PostionId, + WarehousePositionCode = storePosition.PostionCode, + ImageUrls = JsonConvert.SerializeObject(i.ImageUrls), + CreationTime = DateTime.Now, + CreatorId = model.UserId, + TrackingCode = backmodel.TrackCode + }; + + var newOrderUsedSalePlatformId = db.InsertWithInt32Identity(newOrderUsedSalePlatform); + var barCode = + $"{(warehouseLocation == WarehouseLocation.East ? "E" : "W")}{newOrderUsedSalePlatformId.ToString().PadLeft(7, '0')}"; + + db.DT_OrderUsedSalePlatform.Where(x => x.Id == newOrderUsedSalePlatformId) + .Set(x => x.BarCode, barCode) + .Update(); + + + + } + + + } + + } + + } + + backmodel.DetailId = gmd.GoodsId; + if (model.OrderId > 0) + backmodel.State = 1; + else + backmodel.State = 0; + backmodel.InDate = DateTime.Now; + + backmodel.ImgUrl = string.IsNullOrEmpty(model.Photo1) ? "" : model.Photo1; + backmodel.ImgUrl2 = string.IsNullOrEmpty(model.Photo2) ? "" : model.Photo2; + backmodel.ImgUrl3 = string.IsNullOrEmpty(model.Photo3) ? "" : model.Photo3; + backmodel.ImgUrl4 = string.IsNullOrEmpty(model.Photo4) ? "" : model.Photo4; + backmodel.ImgUrl5 = string.IsNullOrEmpty(model.Photo5) ? "" : model.Photo5; + + returnid = DataNew.SaveBackGoodsInReturn(backmodel); + if (returnid <= 0) + break; + } + + if (returnid > 0) + { + md.Code = "100"; + md.Result = "Success"; + md.Data = ""; + } + else if (returnid == -1) + { + md.Code = "400"; + md.Result = "This code goods Operation record already exists"; + md.Data = null; + } + else + { + md.Code = "400"; + md.Result = "Storage Location non-existent"; + md.Data = null; + } + } + else + { + //获取用户数据 + // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); + md.Code = "400"; + md.Result = "Data transmission error"; + md.Data = null; + } + } + + if (Method == "GetPickupOrderUsedSalePlatform") { @@ -1566,6 +1715,229 @@ namespace TradeManageNew.OuterService } } } + //xsx OrderReturn结合GetPickupOrderUsedSalePlatform + if (Method == "OrderReturnAndPickupOrderUsedSale")//退货 + { + GetData model = JsonConvert.DeserializeObject(ResponseContent); + + TradeUsedSale.Repositories.Models.HW_GoodsDetail sku =new TradeUsedSale.Repositories.Models.HW_GoodsDetail(); + HW_GoodsInfo product = new HW_GoodsInfo(); + Sync_ReturnModel ReturnModel = new Sync_ReturnModel(); + string SkuCode = string.Empty; + if (model != null && model.Code != "") + { + SkuCode = model.Code.Trim(); + using (var db = new ErpDbContext()) + { + sku = db.HW_GoodsDetail.FirstOrDefault(x => x.SKU1 == SkuCode || + x.SKU2 == SkuCode || + x.SKU3 == SkuCode || + x.SKU4 == SkuCode || + x.SKU5 == SkuCode || + x.Barcode == SkuCode); + if (sku != null) + { + product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId); + } + } + + + //判断是否是sku 是-返回sku的货物信息 ,否-尝试获取退货跟踪号货物信息 + if (sku != null) + { + + var result = new GetOrderUsedSalePlatformDto + { + ProductCode = product?.GoodsCode, + ProductDescription = product?.GoodsEnglisgName, + SkuId = sku.DetailId, + SkuCode = sku.SKU1 + }; + + md.Code = "100"; + md.Result = "Success"; + md.Data = JsonConvert.SerializeObject(result); + + } + else + { + string originalSearchValue = model.Code; + model.Code = model.Code.Replace("\u0002", "").Replace("\u001d", "").Replace("\n", "").Replace(" ", ""); + + string Code2 = model.Code; + string Code3 = model.Code; + string Code4 = model.Code; + string Code5 = model.Code; + + + if (model.Code.Length == 30 && model.Code.Substring(8, 2) == "92") + { + Code4 = model.Code.Substring(10); + } + if (model.Code.Length == 33 && model.Code.Substring(0, 2) == "96") + { + Code4 = model.Code.Substring(21); + } + + if (originalSearchValue.Length == 34 && string.IsNullOrWhiteSpace(Code4)) + { + Code4 = originalSearchValue.Substring(22); + } + + if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92") + { + Code3 = model.Code.Substring(8); + model.Code = model.Code.Substring(10); + } + else if (model.Code.Length == 30 && model.Code.Substring(8, 2) == "92")//USPS 420809239261290359305328471212 系统61290359305328471212 + { + Code3 = model.Code; + model.Code = model.Code.Substring(10); + } + + else if (model.Code.Length == 34 && model.Code.Substring(8, 2) == "92")//D-UPS 4207102492612903033602543475000211 + { + Code3 = model.Code; + model.Code = model.Code.Substring(8); + } + else if (model.Code.Length == 34 && model.Code.Substring(12, 2) == "92")//USPS 4204485791309200190368766508341877 420531051910 9200190368766508349767 + { + Code3 = model.Code; + model.Code = model.Code.Substring(12); + } + else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92") + { + Code3 = model.Code; + model.Code = model.Code.Substring(2); + } + else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94") + { + Code3 = model.Code; + model.Code = model.Code; + } + else if (model.Code.Length > 22 && model.Code.Substring(0, 2) == "96") + { + Code3 = model.Code; + int startIndex = 22; // 开始索引 + int length = 12; // 子字符串的长度 + + + model.Code = model.Code.Substring(startIndex, length); + } + else if (model.Code.Length > 20 && model.Code.Substring(8, 2) == "94") + { + //示例:420926479400111206204134325488(USPS) + Code3 = model.Code.Substring(8); + model.Code = model.Code.Substring(10); + } + else if (Code2.Length > 20 && Code2.Substring(8, 2) == "94") + { + Code3 = Code2.Substring(8); + model.Code = Code2.Substring(10); + } + else if (model.Code.Length > 12) + { + + Code3 = model.Code.Substring(model.Code.Length - 12); + model.Code = model.Code.Substring(model.Code.Length - 12); + } + + int UserId = model.UserId; + var ordermodel = DataNew.GetScanOrderModelForReturnFinal_250123(originalSearchValue, Code2, Code3, Code4, Code5, UserId); + if (ordermodel != null && ordermodel.GoodsList != null) + { + + ReturnModel.OrderId = ordermodel.OrderId.Value; + if (ordermodel.OrderId.Value == 0) + { + ReturnModel.OrderCode = ""; + ReturnModel.PrintDate = ""; + ReturnModel.PostDate = ""; + ReturnModel.RevName = ""; + ReturnModel.RevAddr = ""; + ReturnModel.ShopName = ""; + ReturnModel.PostInfo = ""; + ReturnModel.PostCode = ""; + ReturnModel.TrackCode = ""; + ReturnModel.OrderDate = ""; + ReturnModel.PostionCode = ""; + } + else + { + if (ordermodel.OrderDate != null) + ReturnModel.OrderDate = ordermodel.OrderDate.Value.ToString("yyyy-MM-dd HH:mm"); + ReturnModel.OrderCode = ordermodel.PlatOrderCode; + if (ordermodel.PrintDate != null) + ReturnModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm"); + if (ordermodel.PostDate != null) + ReturnModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm"); + ReturnModel.RevName = ordermodel.RevName; + ReturnModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr; + ReturnModel.ShopName = ordermodel.ShopName; + ReturnModel.PostInfo = ordermodel.PostInfo; + ReturnModel.PostCode = ordermodel.RevFax; + ReturnModel.TrackCode = ordermodel.TrackCode; + ReturnModel.PostionCode = ordermodel.OrderName; + } + var glist = new List(); + foreach (var goods in ordermodel.GoodsList) + { + Sync_ReturnGoods gmd = new Sync_ReturnGoods(); + + gmd.Id = goods.Id.Value; + gmd.GoodsCode = goods.GoodsCode; + gmd.GoodsNum = goods.GoodsNum.Value; + gmd.SKU = goods.GoodsOldCode; + gmd.GoodsName = goods.GoodsName; + if (goods.Weight != null) + gmd.Weight = goods.Weight.Value; + else + gmd.Weight = 0; + glist.Add(gmd); + } + ReturnModel.GoodsList = glist; + + if (ordermodel.TrackList != null) + { + var plist = new List(); + foreach (var pmd in ordermodel.TrackList) + { + Sync_ReturnPostion ppmd = new Sync_ReturnPostion(); + + ppmd.PostionType = pmd.TrackType; + ppmd.PostionCode = pmd.TrackCode; + ppmd.PostionName = pmd.TrackCode2; + + plist.Add(ppmd); + } + ReturnModel.PostionList = plist; + } + md.Code = "100"; + md.Result = "Success"; + md.Data = JsonConvert.SerializeObject(ReturnModel); + } + else + { + md.Code = "400"; + md.Result = "Tracking No non-existent"; + md.Data = null; + } + + } + + + } + else + { + //获取用户数据 + // var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID); + md.Code = "400"; + md.Result = "Data transmission error"; + md.Data = null; + } + } + + if (Method == "SelfPickupOrderUsedSalePlatform") { @@ -1595,6 +1967,8 @@ namespace TradeManageNew.OuterService md.Result = "Success"; md.Data = null; } + + } } catch (Exception ex) @@ -1802,8 +2176,9 @@ namespace TradeManageNew.OuterService public int GoodsId { get; set; } public int GoodsNum { get; set; } - - + public string SKU { get; set; } + public string ImageUrls { get; set; } + } ///