|
|
|
@ -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<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=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<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")
|
|
|
|
|
{
|
|
|
|
|
//示例: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<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>
|
|
|
|
|