using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json;
using NetLibrary.Log;
using System.IO;
using TradeModel;
using NetLibrary;
using System.Drawing;
using LinqToDB;
using TradeManageNew.Models.Shage;
using TradeUsedSale.Enums;
using TradeUsedSale.Repositories;
using TradeUsedSale.Repositories.Models;
using NPOI.HSSF.Record.Formula.Functions;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Web.Services;
using NPOI.HSSF.Record.Chart;
using System.Data;
using System.Windows.Forms;
using TradeData;
using NetLibrary.Data;
using NetLibrary.ReportPrint;
namespace TradeManageNew.OuterService
{
///
/// ShageService 的摘要说明
///
public class ShageService : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string UserCode = context.Request.QueryString["UserCode"];
string Method = context.Request.QueryString["Method"];
string Ver = context.Request.QueryString["Ver"];
// JavaScriptSerializer jsonconvert = new JavaScriptSerializer();
SyncDataModel md = new SyncDataModel();
md.Result = "";
string content2 = "";
try
{
StreamReader sr = new StreamReader(context.Request.InputStream);
string ResponseContent = sr.ReadToEnd();
ErrorFollow.TraceWrite("协议", "", ResponseContent);
if (string.IsNullOrEmpty(UserCode) == true || string.IsNullOrEmpty(Method) == true || string.IsNullOrEmpty(Ver) == true)
{
md.Code = "101";
md.Result = "缺少参数或者参数不正确,请确保有如下UserCode,Method,Ver参数";
content2 = JsonConvert.SerializeObject(md);
context.Response.Write(content2);
return;
}
if (Ver == "1.0")
{
if (string.IsNullOrEmpty(ResponseContent) == true)
{
md.Code = "104";
md.Result = "提交数据不能为空";
content2 = JsonConvert.SerializeObject(md);
context.Response.Write(content2);
return;
}
if (Method == "UserLogin")
{
UserLogin model =JsonConvert.DeserializeObject(ResponseContent);
if (model != null)
{
//获取用户数据
var ListUserInfo = DataNew.PdaLogin(model.UserName.Replace("\u0002", "").Replace("\n", ""), model.Password.Replace("\u0002", "").Replace("\n", ""));
if (ListUserInfo != null)
{
md.Code = "100";
md.Result = "Success";
md.Data = JsonConvert.SerializeObject(ListUserInfo);
}
else
{
md.Code = "400";
md.Result = "user 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 == "UserScan")
{
UserLogin model =JsonConvert.DeserializeObject(ResponseContent);
if (model != null)
{
//获取用户数据
var ListUserInfo = DataNew.PdaSacnLogin(model.UserCode.Replace("\u0002", ""));
if (ListUserInfo != null)
{
md.Code = "100";
md.Result = "Success";
md.Data = JsonConvert.SerializeObject(ListUserInfo);
}
else
{
md.Code = "400";
md.Result = "user 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 == "OrderScanNew")
{
GetData model =JsonConvert.DeserializeObject(ResponseContent);
if (model != null && model.Code != "")
{
model.Code = model.Code.Replace("\u0002", "").Replace("\n", "");
string Code2 = model.Code;
if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92")
{
model.Code = model.Code.Substring(10);
}
else
if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92")
{
model.Code = model.Code.Substring(2);
}
else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94")
{
model.Code = model.Code;
}
else if (model.Code.Length > 12)
{
model.Code = model.Code.Substring(model.Code.Length - 12);
}
var ordermodel = DataNew.GetScanOrderModelForTM4(model.Code, Code2);
Sync_OrderScanModel OrderScanModel = new Sync_OrderScanModel();
if (ordermodel != null && ordermodel.GoodsList != null)
{
OrderScanModel.OrderId = ordermodel.OrderId.Value;
OrderScanModel.OrderCode = ordermodel.PlatOrderCode;
if (ordermodel.PrintDate != null)
OrderScanModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm");
if (ordermodel.PostDate != null)
OrderScanModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm");
OrderScanModel.RevName = ordermodel.RevName;
OrderScanModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr;
OrderScanModel.ShopName = ordermodel.ShopName;
OrderScanModel.PostInfo = ordermodel.PostInfo;
OrderScanModel.PostCode = ordermodel.RevFax;
OrderScanModel.TrackCode = ordermodel.TrackCode;
var glist = new List();
foreach (var goods in ordermodel.GoodsList)
{
Sync_OrderScanGoods gmd = new Sync_OrderScanGoods();
gmd.Id = 0;
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);
}
OrderScanModel.GoodsList = glist;
if (ordermodel.PostDate == null)
{
DT_TrackCodeScan snd = new DT_TrackCodeScan();
snd.OrderId = ordermodel.OrderId;
snd.JoinOrderCode = ordermodel.JoinOrderCode;
snd.OrderCode = ordermodel.PlatOrderCode;
snd.TrackCode = ordermodel.TrackCode;
snd.ScanUserId = model.UserId;
snd.SureUserId = model.SureUserId;
DataNew.SaveTrackCodeScan2(snd);
}
if (ordermodel.ErrorInfo != null && ordermodel.ErrorInfo != "")
{
OrderScanModel.ResultInfo = "Shipment not allowed " + ordermodel.ErrorInfo;
md.Code = "400";
md.Result = OrderScanModel.ResultInfo;
md.Data = JsonConvert.SerializeObject(OrderScanModel);
}
else if (ordermodel.PostDate != null)
{
md.Code = "400";
md.Result = "Repeated scanning";
md.Data = JsonConvert.SerializeObject(OrderScanModel);
DT_TrackCodeScan snd = new DT_TrackCodeScan();
snd.OrderId = ordermodel.OrderId;
snd.JoinOrderCode = ordermodel.JoinOrderCode;
snd.OrderCode = ordermodel.PlatOrderCode;
snd.TrackCode = ordermodel.TrackCode;
snd.ScanUserId = model.UserId;
snd.SureUserId = model.SureUserId;//拣货人
DataNew.SaveTrackCodeScan5(snd);
}
else if (OrderScanModel != null)
{
OrderScanModel.ResultInfo = "Scan Success";
md.Code = "100";
md.Result = OrderScanModel.ResultInfo;
md.Data = JsonConvert.SerializeObject(OrderScanModel);
}
}
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 == "OrderScan")
{
GetData model =JsonConvert.DeserializeObject(ResponseContent);
if (model != null&&model.Code!="")
{
model.Code = model.Code.Replace("\u0002", "").Replace("\n", "");
string Code2 = model.Code;
if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92")
{
model.Code = model.Code.Substring(10);
}
else
if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92")
{
model.Code = model.Code.Substring(2);
}
else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94")
{
model.Code = model.Code;
}
else if (model.Code.Length >12)
{
model.Code = model.Code.Substring(model.Code.Length - 12);
}
var ordermodel = DataNew.GetScanOrderModelForTM4(model.Code, Code2);
Sync_OrderScanModel OrderScanModel = new Sync_OrderScanModel();
if (ordermodel != null && ordermodel.GoodsList != null)
{
OrderScanModel.OrderId = ordermodel.OrderId.Value;
OrderScanModel.OrderCode = ordermodel.PlatOrderCode;
if (ordermodel.PrintDate != null)
OrderScanModel.PrintDate = ordermodel.PrintDate.Value.ToString("yyyy-MM-dd HH:mm");
if (ordermodel.PostDate != null)
OrderScanModel.PostDate = ordermodel.PostDate.Value.ToString("yyyy-MM-dd HH:mm");
OrderScanModel.RevName = ordermodel.RevName;
OrderScanModel.RevAddr = ordermodel.RevProvince + " " + ordermodel.RevAddr;
OrderScanModel.ShopName = ordermodel.ShopName;
OrderScanModel.PostInfo = ordermodel.PostInfo;
OrderScanModel.PostCode = ordermodel.RevFax;
OrderScanModel.TrackCode = ordermodel.TrackCode;
var glist = new List();
foreach (var goods in ordermodel.GoodsList)
{
Sync_OrderScanGoods gmd = new Sync_OrderScanGoods();
gmd.Id = 0;
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);
}
OrderScanModel.GoodsList = glist;
if (ordermodel.PostDate== null)
{
DT_TrackCodeScan snd = new DT_TrackCodeScan();
snd.OrderId = ordermodel.OrderId;
snd.JoinOrderCode = ordermodel.JoinOrderCode;
snd.OrderCode = ordermodel.PlatOrderCode;
snd.TrackCode = ordermodel.TrackCode;
snd.ScanUserId = model.UserId;
DataNew.SaveTrackCodeScan(snd);
}
if (ordermodel.ErrorInfo != null && ordermodel.ErrorInfo != "")
{
OrderScanModel.ResultInfo = "Shipment not allowed " + ordermodel.ErrorInfo;
md.Code = "400";
md.Result = OrderScanModel.ResultInfo;
md.Data = JsonConvert.SerializeObject(OrderScanModel);
}
else if (ordermodel.PostDate != null)
{
md.Code = "400";
md.Result = "Repeated scanning";
md.Data = JsonConvert.SerializeObject(OrderScanModel);
}
else if (OrderScanModel != null)
{
OrderScanModel.ResultInfo = "Scan Success";
md.Code = "100";
md.Result = OrderScanModel.ResultInfo;
md.Data = JsonConvert.SerializeObject(OrderScanModel);
}
}
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 == "OrderReturnMid")//退货中间状态
{
GetData model = JsonConvert.DeserializeObject(ResponseContent);
if (model != null && model.Code != "")
{
model.Code = model.Code.Replace("\u0002", "").Replace("\n", "");
string Code2 = model.Code;
if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92")
{
model.Code = model.Code.Substring(10);
}
else
if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92")
{
model.Code = model.Code.Substring(2);
}
else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94")
{
model.Code = model.Code;
}
else if (model.Code.Length > 12)
{
model.Code = model.Code.Substring(model.Code.Length - 12);
}
int UserId = model.UserId;
var ordermodel = DataNew.GetScanOrderModelForReturnMid(model.Code, Code2, UserId);
Sync_ReturnModel ReturnModel = new Sync_ReturnModel();
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
{
if((Code2.StartsWith("9") && Code2.Length==22) || (Code2.StartsWith("1Z") && Code2.Length==18) || (Code2.StartsWith("7") && Code2.Length==12) || (Code2.StartsWith("2") && Code2.Length==12) || (Code2.StartsWith("6") && Code2.Length == 20) || model.Code.Length>=12)
{
//var userInfo = DataNew.GetUserInfoByUserId(model.UserId);
////记录到快递跟踪码临时表,等操作人员填好数据之后,同步到DT_OrderReturn表
//DataNew.AddOrderReturnTrackingIdForScan(model.Code, model.UserId, userInfo == null ? "" : userInfo.WorkDesc);
//md.Code = "400";
//md.Result = "Tracking No non-existent,Recorded on the Order Return TrackingId page, waiting for staff to process";
//md.Data = null;
var ordRe = DataNew.GetDT_OrderReturnByTrackId(model.Code, Code2);
if (ordRe == null)
{
var userInfo = DataNew.GetUserInfoByUserId(model.UserId);
//记录到快递跟踪码临时表,等操作人员填好数据之后,同步到DT_OrderReturn表
var id = DataNew.AddOrderReturnTrackingIdForScanReturnID(model.Code,Code2, model.UserId, userInfo == null ? "" : userInfo.WorkDesc);
if (id == 0)
{
md.Code = "400";
md.Result = "Tracking No non-existent,Recorded Fail";
md.Data = id.ToString();
}
else
{
md.Code = "400";
md.Result = "Tracking No non-existent,Recorded on the Order Return TrackingId page, waiting for staff to process";
md.Data = id.ToString();
}
}
else
{
md.Code = "400";
md.Result = "Tracking No has been scanned";
md.Data = null;
}
}
else
{
md.Code = "400";
md.Result = "Tracking No error, not belonging to Fedex, UPS, USPS";
md.Data = null;
}
}
}
else
{
//获取用户数据
// var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID);
md.Code = "400";
md.Result = "Data transmission error";
md.Data = null;
}
}
if(Method== "OrderReturnMidNew")
{
GetData model = JsonConvert.DeserializeObject(ResponseContent);
if (model != null && model.Code != "")
{
model.Code = model.Code.Replace("\u0002", "").Replace("\n", "");
string Code2 = model.Code;
if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92")
{
model.Code = model.Code.Substring(10);
}
else
if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92")
{
model.Code = model.Code.Substring(2);
}
else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94")
{
model.Code = model.Code;
}
else if (model.Code.Length > 12)
{
model.Code = model.Code.Substring(model.Code.Length - 12);
}
int UserId = model.UserId;
var ordermodel = DataNew.GetScanOrderModelForReturnMid(model.Code, Code2, UserId);
Sync_ReturnModel ReturnModel = new Sync_ReturnModel();
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
{
if ((Code2.StartsWith("9") && Code2.Length == 22) || (Code2.StartsWith("1Z") && Code2.Length == 18) || (Code2.StartsWith("7") && Code2.Length == 12) || (Code2.StartsWith("2") && Code2.Length == 12) || (Code2.StartsWith("6") && Code2.Length == 20) || model.Code.Length>=12)
{
var ordRe = DataNew.GetDT_OrderReturnByTrackId(model.Code, Code2);
if (ordRe==null)
{
var userInfo = DataNew.GetUserInfoByUserId(model.UserId);
//记录到快递跟踪码临时表,等操作人员填好数据之后,同步到DT_OrderReturn表
var id = DataNew.AddOrderReturnTrackingIdForScanReturnID(model.Code,Code2, model.UserId, userInfo == null ? "" : userInfo.WorkDesc);
if(id==0)
{
md.Code = "400";
md.Result = "Tracking No non-existent,Recorded Fail";
md.Data = id.ToString();
}
else
{
md.Code = "404";
md.Result = "Tracking No non-existent,Recorded on the Order Return TrackingId page, waiting for staff to process";
md.Data = id.ToString();
}
}
else
{
md.Code = "400";
md.Result = "Tracking No has been scanned";
md.Data = null;
}
}
else
{
md.Code = "400";
md.Result = "Tracking code error, not belonging to Fedex, UPS, USPS";
md.Data = null;
}
}
}
else
{
//获取用户数据
// var ListUserInfo = BaseService.GetListSyncUserInfo(model.CompanyID);
md.Code = "400";
md.Result = "Data transmission error";
md.Data = null;
}
}
if(Method== "OrderReturnMidPhoto")
{
var model = JsonConvert.DeserializeObject(ResponseContent);
if (string.IsNullOrEmpty(model.Photo))
{
md.Code = "400";
md.Result = "Please upload express pictures";
md.Data = null;
}
else
{
string guid = Guid.NewGuid().ToString("N");
string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png";
string photo11 = "/attached/hwcreturn/" + guid + ".png";
//CustomIO.SetImage(photo1, model.Photo);
string message = "";
if(!UploadImage(photo1, model.Photo, out message))
{
md.Code = "400";
md.Result = "Upload Fail,Please try again";
md.Data = null;
}
else
{
var isSucc = DataNew.UploadPhotoOrderReturnTrackingId(model.ID, photo11);
if (isSucc == 1)
{
md.Code = "100";
md.Result = "Success";
md.Data = null;
}
else
{
md.Code = "400";
md.Result = "Fail,Please rescan the tracking code";
md.Data = null;
}
}
}
}
if (Method == "OrderReturn")//退货
{
GetData model =JsonConvert.DeserializeObject(ResponseContent);
if (model != null && model.Code != "")
{
model.Code = model.Code.Replace("\u0002", "").Replace("\n", "");
string Code2 = model.Code;
if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92")
{
model.Code = model.Code.Substring(10);
}
else
if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92")
{
model.Code = model.Code.Substring(2);
}
else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94")
{
model.Code = model.Code;
}
else if (model.Code.Length > 12)
{
model.Code = model.Code.Substring(model.Code.Length - 12);
}
int UserId = model.UserId;
var ordermodel = DataNew.GetScanOrderModelForReturnFinal(model.Code, Code2, UserId);
Sync_ReturnModel ReturnModel = new Sync_ReturnModel();
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 == "OrderReturnold")//退货
{
GetData model =JsonConvert.DeserializeObject(ResponseContent);
if (model != null && model.Code != "")
{
model.Code = model.Code.Replace("\u0002", "").Replace("\n", "");
string Code2 = model.Code;
if (model.Code.Length > 26 && model.Code.Substring(8, 2) == "92")
{
model.Code = model.Code.Substring(10);
}
else
if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "92")
{
model.Code = model.Code.Substring(2);
}
else if (model.Code.Length > 20 && model.Code.Substring(0, 2) == "94")
{
model.Code = model.Code;
}
else if (model.Code.Length > 12)
{
model.Code = model.Code.Substring(model.Code.Length - 12);
}
var ordermodel = DataNew.GetScanOrderModelForTM5(model.Code, Code2);
Sync_ReturnModel ReturnModel = new Sync_ReturnModel();
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 = "";
}
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;
}
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;
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 == "ReturnSaveMid")//退货中间状态
{
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 = model.StoreCode;
backmodel.OrderId = model.OrderId;
backmodel.InUserId = model.UserId;
backmodel.Num = gmd.GoodsNum;
backmodel.TrackCode = model.TrackCode;
backmodel.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;
backmodel.DetailId = gmd.GoodsId;
if (model.OrderId > 0)
backmodel.State = 1;
else
backmodel.State = 0;
backmodel.InDate = DateTime.Now;
if (model.Photo1 != null && model.Photo1 != "")
{
string guid = Guid.NewGuid().ToString("N");
string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png";
string photo11 = "/attached/hwcreturn/" + guid + ".png";
CustomIO.SetImage(photo1, model.Photo1);
backmodel.ImgUrl = photo11;
}
if (model.Photo2 != null && model.Photo2 != "")
{
string guid2 = Guid.NewGuid().ToString("N");
string photo2 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid2 + ".png";
string photo22 = "/attached/hwcreturn/" + guid2 + ".png";
CustomIO.SetImage(photo2, model.Photo2);
backmodel.ImgUrl2 = photo22;
}
if (model.Photo3 != null && model.Photo3 != "")
{
string guid3 = Guid.NewGuid().ToString("N");
string photo3 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid3 + ".png";
string photo33 = "/attached/hwcreturn/" + guid3 + ".png";
CustomIO.SetImage(photo3, model.Photo3);
backmodel.ImgUrl3 = photo33;
}
returnid = DataNew.SaveBackGoodsInReturnMid(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 == "ReturnSave")//退货
{
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;
backmodel.DetailId = gmd.GoodsId;
if (model.OrderId > 0)
backmodel.State = 1;
else
backmodel.State = 0;
backmodel.InDate = DateTime.Now;
if (model.Photo1 != null && model.Photo1 != "")
{
string guid = Guid.NewGuid().ToString("N");
string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png";
string photo11 = "/attached/hwcreturn/" + guid + ".png";
CustomIO.SetImage(photo1, model.Photo1);
backmodel.ImgUrl = photo11;
}
else
{
backmodel.ImgUrl = "";
}
if (model.Photo2 != null && model.Photo2 != "")
{
string guid2 = Guid.NewGuid().ToString("N");
string photo2 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid2 + ".png";
string photo22 = "/attached/hwcreturn/" + guid2 + ".png";
CustomIO.SetImage(photo2, model.Photo2);
backmodel.ImgUrl2 = photo22;
}
if (model.Photo3 != null && model.Photo3 != "")
{
string guid3 = Guid.NewGuid().ToString("N");
string photo3 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid3 + ".png";
string photo33 = "/attached/hwcreturn/" + guid3 + ".png";
CustomIO.SetImage(photo3, model.Photo3);
backmodel.ImgUrl3= photo33;
}
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 == "ReturnSaveold")//退货
{
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 = model.StoreCode;
backmodel.OrderId = model.OrderId;
backmodel.InUserId = model.UserId;
backmodel.Num = gmd.GoodsNum;
backmodel.TrackCode = model.TrackCode;
backmodel.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;
backmodel.DetailId = gmd.GoodsId;
if(model.OrderId>0)
backmodel.State = 1;
else
backmodel.State = 0;
backmodel.InDate = DateTime.Now;
if(model.Photo1!=null&&model.Photo1!="")
{
string guid=Guid.NewGuid().ToString("N");
string photo1= AppDomain.CurrentDomain.BaseDirectory+"attached/hwcreturn/" +guid+".png";
string photo11 = "/attached/hwcreturn/" + guid + ".png";
CustomIO.SetImage(photo1, model.Photo1);
backmodel.ImgUrl = photo11;
}
if (model.Photo2 != null && model.Photo2 != "")
{
string guid2 = Guid.NewGuid().ToString("N");
string photo2 = AppDomain.CurrentDomain.BaseDirectory+"attached/hwcreturn/" + guid2 + ".png";
string photo22 = "/attached/hwcreturn/" + guid2 + ".png";
CustomIO.SetImage(photo2, model.Photo2);
backmodel.ImgUrl2 = photo22;
}
if (model.Photo3 != null && model.Photo3 != "")
{
string guid3 = Guid.NewGuid().ToString("N");
string photo3 = AppDomain.CurrentDomain.BaseDirectory+ "attached/hwcreturn/" + guid3 + ".png";
string photo33 = "/attached/hwcreturn/" + guid3 + ".png";
CustomIO.SetImage(photo3, model.Photo3);
backmodel.ImgUrl2 = photo33;
}
returnid=DataNew.SaveBackGoodsIn(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 == "UploadImage")
{
OrderReturnMidPhotoModel model = JsonConvert.DeserializeObject(ResponseContent);
try
{
if (model.Photo != null && model.Photo != "")
{
string guid = Guid.NewGuid().ToString("N");
string photo1 = AppDomain.CurrentDomain.BaseDirectory + "attached/hwcreturn/" + guid + ".png";
string photo11 = "/attached/hwcreturn/" + guid + ".png";
CustomIO.SetImage(photo1, model.Photo);
md.Code = "100";
md.Result = photo11;
md.Data = null;
}
else
{
md.Code = "400";
md.Result = "Data transmission error";
md.Data = null;
}
}
catch (Exception e)
{
md.Code = "400";
md.Result = "Upload Image Fail";
md.Data = null;
}
}
if (Method == "ReturnSaveNew")
{
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;
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== "ReturnSaveMidNew")
{
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 = model.StoreCode;
backmodel.OrderId = model.OrderId;
backmodel.InUserId = model.UserId;
backmodel.Num = gmd.GoodsNum;
backmodel.TrackCode = model.TrackCode;
backmodel.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;
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.SaveBackGoodsInReturnMid(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 == "GetOrderUsedSalePlatform")
{
var input = JsonConvert.DeserializeObject(ResponseContent);
if (string.IsNullOrWhiteSpace(input.SkuCode))
{
md.Code = "400";
md.Result = "Please enter sku code";
md.Data = null;
}
else
{
input.SkuCode = input.SkuCode.Trim();
using (var db = new ErpDbContext())
{
var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.SKU1 == input.SkuCode ||
x.SKU2 == input.SkuCode ||
x.SKU3 == input.SkuCode ||
x.SKU4 == input.SkuCode ||
x.SKU5 == input.SkuCode ||
x.Barcode == input.SkuCode);
if (sku is null)
{
throw new Exception($"There is no SKU encoded as {input.SkuCode}");
}
var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == sku.GoodsId);
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);
}
}
}
if (Method == "PostOrderUsedSalePlatform")
{
var input = JsonConvert.DeserializeObject(ResponseContent);
var validatedSuccess = true;
if (input.SkuId<=0)
{
md.Code = "400";
md.Result = "Please enter sku code";
md.Data = null;
validatedSuccess = false;
}
if (string.IsNullOrWhiteSpace(input.WarehousePositionCode))
{
md.Code = "400";
md.Result = "Please enter the storage location";
md.Data = null;
validatedSuccess = false;
}
if (input.ImageUrls is null || !input.ImageUrls.Any())
{
md.Code = "400";
md.Result = "Please upload photos";
md.Data = null;
validatedSuccess = false;
}
if (validatedSuccess)
{
using (var db = new ErpDbContext())
{
var user = db.JC_UserInfo.FirstOrDefault(x => x.UserId == input.UserId);
if (user is null || (user.WorkDesc != "西仓" && user.WorkDesc != "东仓"))
{
throw new Exception("Non warehouse staff");
}
var warehouseLocation = WarehouseLocation.East;
if (user.WorkDesc == "西仓")
{
warehouseLocation = WarehouseLocation.West;
}
var storePosition = db.CK_StorePostion.FirstOrDefault(x =>
x.PostionCode == input.WarehousePositionCode.Trim());
if (storePosition is null)
{
throw new Exception(
$"There is no storage location encoded as {input.WarehousePositionCode}");
}
var sku = db.HW_GoodsDetail.FirstOrDefault(x => x.DetailId == input.SkuId);
if (sku is null)
{
throw new Exception($"There is no SKU with ID {input.SkuId}");
}
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(input.ImageUrls),
CreationTime = DateTime.Now,
CreatorId = input.UserId,
};
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();
md.Code = "100";
md.Result = "Success";
md.Data = JsonConvert.SerializeObject(newOrderUsedSalePlatform);
}
}
}
//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}");
}
List filePaths = new List(i.ImageUrls.Split(',', (char)StringSplitOptions.RemoveEmptyEntries));
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(filePaths),
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")
{
var input = JsonConvert.DeserializeObject(ResponseContent);
if (string.IsNullOrWhiteSpace(input.BarCode))
{
md.Code = "400";
md.Result = "Please enter barcode";
md.Data = null;
}
else
{
input.BarCode = input.BarCode.Trim();
using (var db = new ErpDbContext())
{
var orderUsedSalePlatform = db.DT_OrderUsedSalePlatform.FirstOrDefault(x =>
x.BarCode == input.BarCode
&& x.Status == UsedSalePlatformStatus.PendingPickup);
if (orderUsedSalePlatform is null)
{
throw new Exception(
$"No barcode for {input.BarCode} to be shipped used sale item exists");
}
var product = db.HW_GoodsInfo.FirstOrDefault(x => x.GoodsId == orderUsedSalePlatform.ProductId);
var result = new GetPickupOrderUsedSalePlatformDto
{
Id = orderUsedSalePlatform.Id,
ProductId = orderUsedSalePlatform.ProductId,
ProductCode = orderUsedSalePlatform.ProductCode,
ProductDescription = product?.GoodsEnglisgName,
SkuId = orderUsedSalePlatform.SkuId,
SkuCode = orderUsedSalePlatform.SkuCode,
BarCode = orderUsedSalePlatform.BarCode,
IsPrinted = orderUsedSalePlatform.IsPrinted,
Status = orderUsedSalePlatform.Status,
WarehouseLocation =orderUsedSalePlatform.WarehouseLocation,
WarehousePositionId = orderUsedSalePlatform.WarehousePositionId,
WarehousePositionCode = orderUsedSalePlatform.WarehousePositionCode,
ImageUrls = JsonConvert.DeserializeObject>(orderUsedSalePlatform.ImageUrls),
ShippingMethod = orderUsedSalePlatform.ShippingMethod,
IsNew = orderUsedSalePlatform.IsNew,
CreationTime = orderUsedSalePlatform.CreationTime,
CreatorId = orderUsedSalePlatform.CreatorId
};
md.Code = "100";
md.Result = "Success";
md.Data = JsonConvert.SerializeObject(result);
}
}
}
//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(model.Code,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")
{
var input = JsonConvert.DeserializeObject(ResponseContent);
using (var db = new ErpDbContext())
{
var orderUsedSalePlatformList = db.DT_OrderUsedSalePlatform.Where(x =>
input.Ids.Contains(x.Id)
&& x.Status == UsedSalePlatformStatus.PendingPickup)
.ToList();
if (orderUsedSalePlatformList.Any())
{
db.DT_OrderUsedSalePlatform.Where(x =>
input.Ids.Contains(x.Id)
&& x.Status == UsedSalePlatformStatus.PendingPickup)
.Set(x => x.ShippingMethod, ShippingMethod.SelfPickup)
.Set(x => x.Status, UsedSalePlatformStatus.Sold)
.Set(x => x.LastModifierId, input.UserId)
.Set(x => x.LastModificationTime, DateTime.Now)
.Update();
}
}
md.Code = "100";
md.Result = "Success";
md.Data = null;
}
}
}
catch (Exception ex)
{
md.Code = "104";
md.Result = ex.Message;
}
content2 = JsonConvert.SerializeObject(md);
ErrorFollow.TraceWrite("返回值", "", content2);
context.Response.Write(content2);
}
public bool UploadImage(string filePath, string ImageBase64,out string message)
{
try
{
char[] array = ImageBase64.ToCharArray();
var photo = Convert.FromBase64CharArray(array, 0, array.Length);
MemoryStream memoryStream = new MemoryStream(photo);
Image image = Image.FromStream(memoryStream, useEmbeddedColorManagement: true);
image.Save(filePath, image.RawFormat);
memoryStream.Dispose();
image.Dispose();
message = "";
return true;
}
catch (Exception ex)
{
message = ex.Message;
return false;
}
}
public bool IsReusable
{
get
{
return false;
}
}
public class UserLogin
{
public string UserName { get; set; }
public string Password { get; set; }
public string UserCode { get; set; }
}
public class UserModel
{
public string Name { get; set; }
public int UserId { get; set; }
}
public class SyncDataModel
{
public string Result { get; set; }
public string Code { get; set; }
public string Data { get; set; }
}
///
/// 传入参数
///
public class GetData
{
public string Code { get; set; }
public int UserId { get; set; }
public int SureUserId { get; set; }
}
///
/// 扫描返回
///
public class Sync_OrderScanModel
{
public int OrderId { get; set; }
public string OrderCode { get; set; }
public string OrderDate { get; set; }
public string PostDate { get; set; }
public string PrintDate { get; set; }
public string PostInfo { get; set; }
public string PostCode { get; set; }
public string RevAddr { get; set; }
public string RevName { get; set; }
public string ShopName { get; set; }
public string TrackCode { get; set; }
public string ResultInfo { get; set; }
public List GoodsList { get; set; }
}
public class Sync_OrderScanGoods
{
public int Id { get; set; }
public string GoodsCode { get; set; }
public string GoodsName { get; set; }
public int GoodsNum { get; set; }
public string SKU { get; set; }
public string TypeDesc { get; set; }
public decimal Weight { get; set; }
}
///
/// 退货返回
///
public class Sync_ReturnModel
{
public int OrderId { get; set; }
public string OrderCode { get; set; }
public string OrderDate { get; set; }
public string PostDate { get; set; }
public string PrintDate { get; set; }
public string PostInfo { get; set; }
public string PostCode { get; set; }
public string PostionCode { get; set; }
public string RevAddr { get; set; }
public string RevName { get; set; }
public string ShopName { get; set; }
public string TrackCode { get; set; }
public string ResultInfo { get; set; }
public List GoodsList { get; set; }
public List PostionList { get; set; }
}
public class Sync_ReturnPostion
{
///
/// 库位类型 operationtype=restore 的时候 对应 库位类型1
///
public Int32? PostionType { get; set; }
///
/// 库位编号
///
public string PostionCode { get; set; }
///
/// 库位
///
public string PostionName { get; set; }
}
public class Sync_ReturnGoods
{
public int Id { get; set; }
public string GoodsCode { get; set; }
public string GoodsName { get; set; }
public int GoodsNum { get; set; }
public string SKU { get; set; }
public string TypeDesc { get; set; }
public decimal Weight { get; set; }
}
///
/// 入库提交
///
public class Sync_ReturnGoodsSave
{
///
/// 1 直接入库 2 没外包装 3 报废
///
public int InType { get; set; }
///
/// 入库库位
///
public string StoreCode { get; set; }
public string OrderCode { get; set; }
public string TrackCode { get; set; }
public int UserId { get; set; }
public int OrderId { get; set; }
///
/// Base64
///
public string Photo1 { get; set; }
///
/// Base64
///
public string Photo2 { get; set; }
///
/// Base64
///
public string Photo3 { get; set; }
public string Photo4 { get; set; }
public string Photo5 { get; set; }
public List GoodsList { get; set; }
}
public class Sync_ReturnGoodsSaveDetail
{
public int GoodsId { get; set; }
public int GoodsNum { get; set; }
public string SKU { get; set; }
public string ImageUrls { get; set; }
}
///
/// 第一次扫描不到跟踪码保存图片
///
public class OrderReturnMidPhotoModel
{
public int ID { get; set; }
public string Photo { get; set; }
}
}
}