纽威
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

432 lines
24 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. using ICSSoft.Common;
  2. using ICSSoft.Entity;
  3. using Newtonsoft.Json;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Data.SqlClient;
  9. using System.Linq;
  10. using System.Net.Http;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace ICSSoft.DataProject
  14. {
  15. /// <summary>
  16. /// 使用中
  17. /// 销售模块
  18. /// </summary>
  19. public class ICSSalesService
  20. {
  21. private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  22. #region 销售出库
  23. /// <summary>
  24. /// 销售出库
  25. /// </summary>
  26. /// <param name="TransCode"></param>
  27. /// <param name="TransSequence"></param>
  28. /// <param name="Quantity"></param>
  29. /// <param name="WorkPoint"></param>
  30. /// <param name="cmd"></param>
  31. public static void SalesShipmentDoc(string TransCode, string TransSequence, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  32. {
  33. try
  34. {
  35. string sql = @"DECLARE @Status VARCHAR(10)
  36. SELECT @Status=a.Status FROM ICSSDN a
  37. WHERE a.SDNCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}' AND a.Type='1'
  38. IF (@Status IS NULL)
  39. BEGIN
  40. RAISERROR('" + language.GetNameByCode("WMSAPIInfo139") + @"',16,1);
  41. RETURN
  42. END
  43. --ELSE IF (@Status!='2')
  44. --BEGIN
  45. --RAISERROR('" + language.GetNameByCode("WMSAPIInfo140") + @"',16,1);
  46. --RETURN
  47. --END
  48. UPDATE a SET SDNQuantity=ISNULL(SDNQuantity,0)+'{2}'
  49. FROM ICSSDN a
  50. WHERE a.SDNCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}' AND a.Type='1'
  51. IF EXISTS(SELECT a.ID FROM ICSSDN a
  52. WHERE a.SDNCode='{0}' AND a.Sequence='{3}' and a.WorkPoint='{1}' AND a.Type='1' AND a.Quantity<a.SDNQuantity)
  53. BEGIN
  54. RAISERROR('" + language.GetNameByCode("WMSAPIInfo091") + @"',16,1);
  55. RETURN
  56. END";
  57. sql = string.Format(sql, TransCode, WorkPoint, Quantity, TransSequence);
  58. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  59. {
  60. throw new Exception(language.GetNameByCode("WMSAPIInfo141"));//"销售领料单更新失败!");
  61. }
  62. }
  63. catch (Exception)
  64. {
  65. throw;
  66. }
  67. }
  68. /// <summary>
  69. /// 销售出库接口
  70. /// </summary>
  71. /// <param name="TransType"></param>
  72. /// <param name="Identification"></param>
  73. /// <param name="cmd"></param>
  74. public static void SalesShipmentDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  75. {
  76. try
  77. {
  78. #region SAP
  79. string IsSuccess = "";
  80. string ErrorMessage = "";
  81. string sql = @" select Distinct A.SDNCode,A.WorkPoint from ICSSDN A
  82. LEFT JOIN ICSWareHouseLotInfoLog B ON B.TransCode=A.SDNCode AND B.WorkPoint=A.WorkPoint
  83. where B.Identification='{0}' AND BusinessCode='19'";
  84. sql = string.Format(sql, Identification);
  85. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  86. if (dt.Rows.Count > 1)
  87. {
  88. throw new Exception(language.GetNameByCode("WMSAPIInfo202"));//单次提交单据数量卡控(只允许一张单据)
  89. }
  90. for (int i = 0; i < dt.Rows.Count; i++)
  91. {
  92. string chksql = @"select SUM(Quantity) AS Quantity,SUM(SDNQuantity) AS SDNQuantity from ICSSDN
  93. where SDNCode='{0}' and WorkPoint='{1}'
  94. GROUP BY SDNCode,WorkPoint";
  95. chksql = string.Format(chksql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString());
  96. DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd);
  97. if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["SDNQuantity"]))
  98. {
  99. throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["SDNQuantity"].ToString()));//单次提交数量卡控(必须整单提交)
  100. }
  101. SAPCallBackDoc.ZWMS_SK_WS_PZ Client = new SAPCallBackDoc.ZWMS_SK_WS_PZ();
  102. SAPCallBackDoc.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDoc.ZWMS_SK_WS_PZ1();
  103. Info.NEWID = Identification;
  104. Info.DANJU = dt.Rows[i]["SDNCode"].ToString();
  105. Info.STATE = "0";
  106. List<SAPCallBackDoc.ZWMS_PZ> ItemList = new List<SAPCallBackDoc.ZWMS_PZ>();
  107. Info.Z_GERNR = new SAPCallBackDoc.ZWEBS_GERNR[1];
  108. Info.Z_FLAG = new SAPCallBackDoc.ZWEB_RETURN[1];
  109. sql = @" select A.SDNCode,A.Sequence,A.Quantity,A.SDNQuantity,B.BatchCode from ICSSDN A
  110. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint
  111. WHERE SDNCode='{0}' AND A.WorkPoint='{1}'";
  112. sql = string.Format(sql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString());
  113. DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd);
  114. foreach (DataRow dr in Sapdt.Rows)
  115. {
  116. if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["SDNQuantity"].ToString()))
  117. {
  118. SAPCallBackDoc.ZWMS_PZ Item = new SAPCallBackDoc.ZWMS_PZ();
  119. Item.DANJU = dr["SDNCode"].ToString();
  120. Item.POSNR = dr["Sequence"].ToString();
  121. Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3);
  122. Item.SERNP = dr["BatchCode"].ToString();
  123. ItemList.Add(Item);
  124. }
  125. }
  126. if (ItemList.Count > 0)
  127. {
  128. Info.Z_ITEM = ItemList.ToArray();
  129. SAPCallBackDoc.ZWMS_SK_WS_PZResponse result = new SAPCallBackDoc.ZWMS_SK_WS_PZResponse();
  130. result = Client.CallZWMS_SK_WS_PZ(Info);
  131. if (result.Z_NULL == "N")
  132. {
  133. foreach (SAPCallBackDoc.ZWEB_RETURN resultItem in result.Z_FLAG)
  134. {
  135. IsSuccess = "N";
  136. ErrorMessage += resultItem.L_MESSAGE + "/r/n";
  137. }
  138. }
  139. }
  140. }
  141. if (IsSuccess == "N")
  142. {
  143. throw new Exception(ErrorMessage);
  144. }
  145. #endregion
  146. }
  147. catch (Exception)
  148. {
  149. throw;
  150. }
  151. }
  152. #endregion
  153. #region 销售退货
  154. /// <summary>
  155. /// 销售退货
  156. /// </summary>
  157. /// <param name="TransCode"></param>
  158. /// <param name="TransSequence"></param>
  159. /// <param name="Quantity"></param>
  160. /// <param name="WorkPoint"></param>
  161. /// <param name="cmd"></param>
  162. public static void SalesShipmentDocNegative(string LotNo, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  163. {
  164. try
  165. {
  166. string sql = @"DECLARE @Status VARCHAR(10)
  167. SELECT @Status=c.Status FROM ICSInventoryLot a
  168. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  169. INNER JOIN ICSSDN c ON b.TransCode=c.SDNCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  170. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.Type='2'
  171. IF (@Status IS NULL)
  172. BEGIN
  173. RAISERROR('" + language.GetNameByCode("WMSAPIInfo081") + @"',16,1);
  174. RETURN
  175. END
  176. --ELSE IF (@Status!='2')
  177. --BEGIN
  178. -- RAISERROR('" + language.GetNameByCode("WMSAPIInfo142") + @"',16,1);
  179. -- RETURN
  180. --END
  181. UPDATE c SET SDNQuantity=ISNULL(SDNQuantity,0)+'{2}'
  182. FROM ICSInventoryLot a
  183. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  184. INNER JOIN ICSSDN c ON b.TransCode=c.SDNCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  185. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.Type='2'
  186. IF EXISTS(SELECT a.LotNo FROM ICSInventoryLot a
  187. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  188. INNER JOIN ICSSDN c ON b.TransCode=c.SDNCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  189. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.Type='2' AND c.Quantity<c.SDNQuantity)
  190. BEGIN
  191. RAISERROR('" + language.GetNameByCode("WMSAPIInfo114") + @"',16,1);
  192. END";
  193. sql = string.Format(sql, LotNo, WorkPoint, Quantity);
  194. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  195. {
  196. throw new Exception("销售退货单更新失败!");
  197. }
  198. }
  199. catch (Exception)
  200. {
  201. throw;
  202. }
  203. }
  204. /// <summary>
  205. /// 销售退货接口
  206. /// </summary>
  207. /// <param name="TransType"></param>
  208. /// <param name="Identification"></param>
  209. /// <param name="cmd"></param>
  210. public static void SalesShipmentDocNegativeERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  211. {
  212. try
  213. {
  214. #region SAP
  215. string IsSuccess = "";
  216. string ErrorMessage = "";
  217. string sql = @" select Distinct A.SDNCode,A.WorkPoint from ICSSDN A
  218. LEFT JOIN ICSWareHouseLotInfoLog B ON B.TransCode=A.SDNCode AND B.WorkPoint=A.WorkPoint
  219. where B.Identification='{0}' AND BusinessCode='18'";
  220. sql = string.Format(sql, Identification);
  221. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  222. if (dt.Rows.Count > 1)
  223. {
  224. throw new Exception(language.GetNameByCode("WMSAPIInfo202"));//单次提交单据数量卡控(只允许一张单据)
  225. }
  226. for (int i = 0; i < dt.Rows.Count; i++)
  227. {
  228. string chksql = @"select SUM(Quantity) AS Quantity,SUM(SDNQuantity) AS SDNQuantity from ICSSDN
  229. where SDNCode='{0}' and WorkPoint='{1}'
  230. GROUP BY SDNCode,WorkPoint";
  231. chksql = string.Format(chksql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString());
  232. DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd);
  233. if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["SDNQuantity"]))
  234. {
  235. throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["SDNQuantity"].ToString()));//单次提交数量卡控(必须整单提交)
  236. }
  237. SAPCallBackDoc.ZWMS_SK_WS_PZ Client = new SAPCallBackDoc.ZWMS_SK_WS_PZ();
  238. SAPCallBackDoc.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDoc.ZWMS_SK_WS_PZ1();
  239. Info.NEWID = Identification;
  240. Info.DANJU = dt.Rows[i]["SDNCode"].ToString();
  241. Info.STATE = "0";
  242. List<SAPCallBackDoc.ZWMS_PZ> ItemList = new List<SAPCallBackDoc.ZWMS_PZ>();
  243. Info.Z_GERNR = new SAPCallBackDoc.ZWEBS_GERNR[1];
  244. Info.Z_FLAG = new SAPCallBackDoc.ZWEB_RETURN[1];
  245. sql = @"select A.SDNCode,A.Sequence,A.Quantity,A.SDNQuantity,B.BatchCode from ICSSDN A
  246. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint
  247. WHERE SDNCode='{0}' AND A.WorkPoint='{1}'";
  248. sql = string.Format(sql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString());
  249. DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd);
  250. foreach (DataRow dr in Sapdt.Rows)
  251. {
  252. if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["SDNQuantity"].ToString()))
  253. {
  254. SAPCallBackDoc.ZWMS_PZ Item = new SAPCallBackDoc.ZWMS_PZ();
  255. Item.DANJU = dr["SDNCode"].ToString();
  256. Item.POSNR = dr["Sequence"].ToString();
  257. Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3);
  258. Item.SERNP = dr["BatchCode"].ToString();
  259. ItemList.Add(Item);
  260. }
  261. }
  262. if (ItemList.Count > 0)
  263. {
  264. Info.Z_ITEM = ItemList.ToArray();
  265. SAPCallBackDoc.ZWMS_SK_WS_PZResponse result = new SAPCallBackDoc.ZWMS_SK_WS_PZResponse();
  266. result = Client.CallZWMS_SK_WS_PZ(Info);
  267. if (result.Z_NULL == "N")
  268. {
  269. foreach (SAPCallBackDoc.ZWEB_RETURN resultItem in result.Z_FLAG)
  270. {
  271. IsSuccess = "N";
  272. ErrorMessage += resultItem.L_MESSAGE + "/r/n";
  273. }
  274. }
  275. }
  276. }
  277. if (IsSuccess == "N")
  278. {
  279. throw new Exception(ErrorMessage);
  280. }
  281. #endregion
  282. }
  283. catch (Exception)
  284. {
  285. throw;
  286. }
  287. }
  288. #endregion
  289. #region 销售退货-原条码
  290. /// <summary>
  291. /// 销售退货-原条码
  292. /// </summary>
  293. /// <param name="TransCode"></param>
  294. /// <param name="TransSequence"></param>
  295. /// <param name="Quantity"></param>
  296. /// <param name="WorkPoint"></param>
  297. /// <param name="cmd"></param>
  298. public static void SalesReturnBackIn(string TransCode, string TransSequence, string LotNo, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  299. {
  300. try
  301. {
  302. string sql = @"DECLARE @Status VARCHAR(10)
  303. SELECT @Status=sdn.Status FROM ICSSDN sdn
  304. INNER JOIN ICSWareHouseLotInfoLog log ON sdn.WorkPoint=log.WorkPoint
  305. INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
  306. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND sdn.SDNCode='{2}' AND sdn.Sequence='{3}' AND sdn.Type='2'
  307. IF (@Status IS NULL)
  308. BEGIN
  309. RAISERROR('" + language.GetNameByCode("WMSAPIInfo081") + @"',16,1);
  310. RETURN
  311. END
  312. ELSE IF (@Status!='2')
  313. BEGIN
  314. RAISERROR('" + language.GetNameByCode("WMSAPIInfo142") + @"',16,1);
  315. RETURN
  316. END
  317. UPDATE sdn SET SDNQuantity=ISNULL(SDNQuantity,0)+'{4}'
  318. FROM ICSSDN sdn
  319. INNER JOIN ICSWareHouseLotInfoLog log ON sdn.WorkPoint=log.WorkPoint
  320. INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
  321. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND sdn.SDNCode='{2}' AND sdn.Sequence='{3}' AND sdn.Type='2'
  322. IF EXISTS(SELECT a.LotNo FROM ICSSDN sdn
  323. INNER JOIN ICSWareHouseLotInfoLog log ON sdn.WorkPoint=log.WorkPoint
  324. INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
  325. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND sdn.SDNCode='{2}' AND sdn.Sequence='{3}' AND sdn.Type='2' AND sdn.Quantity<sdn.SDNQuantity)
  326. BEGIN
  327. RAISERROR('" + language.GetNameByCode("WMSAPIInfo114") + @"',16,1);
  328. END";
  329. sql = string.Format(sql, LotNo, WorkPoint, TransCode, TransSequence, Quantity);
  330. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  331. {
  332. throw new Exception(language.GetNameByCode("WMSAPIInfo143"));//"销售退货单更新失败!");
  333. }
  334. }
  335. catch (Exception)
  336. {
  337. throw;
  338. }
  339. }
  340. /// <summary>
  341. /// 销售退货-原条码接口
  342. /// </summary>
  343. /// <param name="TransType"></param>
  344. /// <param name="Identification"></param>
  345. /// <param name="cmd"></param>
  346. public static void SalesReturnBackInERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  347. {
  348. try
  349. {
  350. #region ERP
  351. string sql = @"SELECT c.CusCode+a.ToWarehouseCode+c.SDNCode+a.MUSER AS Costre,c.CusCode,a.ToWarehouseCode AS WarehouseCode,c.SDNCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY c.CusCode,a.ToWarehouseCode,c.SDNCode,c.SDNDetailID,a.InvCode) AS Sequence,
  352. a.InvCode,SUM(a.Quantity) AS Quantity,SUM(a.Quantity*(lot.Amount/lot.Quantity)) AS Amount,c.SDNDetailID,Enable AS UpdateTodoQuantity
  353. ,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
  354. ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
  355. INTO #TempERP
  356. FROM ICSWareHouseLotInfoLog a
  357. INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint
  358. INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
  359. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  360. LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.ToWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint
  361. INNER JOIN ICSSDN c ON a.TransCode=c.SDNCode AND a.TransSequence=c.Sequence AND a.WorkPoint=c.WorkPoint
  362. INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
  363. WHERE a.Identification='{0}' AND ERPUpload='0' AND c.Type='2' AND BusinessCode='{1}'
  364. GROUP BY c.CusCode,a.ToWarehouseCode,c.SDNCode,a.MUSER,a.InvCode,c.SDNDetailID,Enable
  365. ,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
  366. ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
  367. SELECT DISTINCT Costre,WorkPoint,CusCode,WarehouseCode AS WHCode,SDNCode AS SDNRTCode,MUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity FROM #TempERP
  368. SELECT Costre,Sequence,InvCode,Quantity,Amount,SDNDetailID AS SDNRTDetailID,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10 FROM #TempERP
  369. DROP TABLE #TempERP";
  370. sql = string.Format(sql, Identification,BusinessCode);
  371. DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd);
  372. string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre");
  373. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.SalesReturnBackURL, Inputstr);
  374. Result result = new Result();
  375. result = JsonConvert.DeserializeObject<Result>(resultStr);
  376. if (result.Success)
  377. {
  378. try
  379. {
  380. JArray res = (JArray)JsonConvert.DeserializeObject(result.Data.ToString());
  381. foreach (var item in res)
  382. {
  383. JObject jo = (JObject)item;
  384. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["details"].ToString());
  385. foreach (var detail in resdetail)
  386. {
  387. JObject det = (JObject)detail;
  388. string allcol = jo["cWhCode"].ToString() + det["ProjectCode"].ToString() + det["cBatch"].ToString() + det["version"].ToString() + det["brand"].ToString() + det["cFree1"].ToString() + det["cFree2"].ToString() + det["cFree3"].ToString() + det["cFree4"].ToString() + det["cFree5"].ToString()
  389. + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString();
  390. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SDNRTDetailID"].ToString(), Identification, jo["ID"].ToString(),
  391. det["DetailID"].ToString(), jo["SDNNEGCode"].ToString(), det["Sequence"].ToString(), allcol,cmd, language, BusinessCode);
  392. }
  393. }
  394. }
  395. catch (Exception ex)
  396. {
  397. log.Debug(ex.ToString());
  398. log.Debug(resultStr);
  399. }
  400. }
  401. else
  402. {
  403. throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message);
  404. }
  405. #endregion
  406. }
  407. catch (Exception)
  408. {
  409. throw;
  410. }
  411. }
  412. #endregion
  413. }
  414. }