xsx 退货二手

master
chenwenkai 1 month ago
parent d95be93cba
commit f0f46da470

@ -28749,6 +28749,7 @@ namespace TradeManageNew
CreationTime = pageItem.CreationTime,
CreatorId = pageItem.CreatorId,
PublishMessage = pageItem.PublishMessage,
TrackingCode= pageItem.TrackingCode,
};
result.DataSource.Add(resultItem);
}

@ -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<DT_OrderScanModel>();
if (tb.Tables.Count > 1)
model.GoodsList = tb.Tables[1].ToList<DT_OrderScanGoods>();
if (tb.Tables.Count > 2)
model.TrackList = tb.Tables[2].ToList<DT_TrackCodeApply>();
}
return model;
}
#endregion
#region 返回扫描订单Model
public static DT_OrderScanModel GetScanOrderModelForReturn(string OrderCode, string OrderCode2,int UserId)
{

@ -103,5 +103,9 @@ namespace TradeManageNew.Models.ShopifyUsedSale
public string PublishMessage { get; set; }
public ShopifyUsedSaleOrderInfoDto ShopifyOrder { get; set; }
/// <summary>
/// TrackingCode
/// </summary>
public string TrackingCode { get; set; }
}
}

@ -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
}
}
}
//SkuIdWarehousePositionCodeImageUrls UserId
if (Method == "ReturnSaveNew_250123")
{
Sync_ReturnGoodsSave model = JsonConvert.DeserializeObject<Sync_ReturnGoodsSave>(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=245 生成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<GetData>(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")
{
//示例420926479400111206204134325488USPS
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<Sync_ReturnGoods>();
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<Sync_ReturnPostion>();
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; }
}
/// <summary>

Loading…
Cancel
Save