纽威
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.

1198 lines
70 KiB

3 years ago
3 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
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
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
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
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
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
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
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
2 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 ICSWareHouseService
  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 OneStepTransferDocIn(string TransCode,string TransSequence, string WorkPoint,string Quantity, SqlCommand cmd, Dictionary<string, string> language)
  32. {
  33. try
  34. {
  35. string sql = @"UPDATE ICSTransfer SET TransferQuantity=ISNULL(TransferQuantity,0)+'{2}'
  36. WHERE TransferNO='{0}' AND Sequence='{3}' AND WorkPoint='{1}' AND Type='1'
  37. IF EXISTS(SELECT a.ID FROM ICSTransfer a
  38. WHERE a.TransferNO='{0}' AND a.Sequence='{3}' and a.WorkPoint='{1}' AND a.Type='1'
  39. AND a.Quantity<a.TransferQuantity)
  40. BEGIN
  41. RAISERROR('" + language.GetNameByCode("WMSAPIInfo144") + @"',16,1);
  42. RETURN
  43. END";
  44. sql = string.Format(sql, TransCode, WorkPoint, Quantity, TransSequence);
  45. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  46. {
  47. throw new Exception(language.GetNameByCode("WMSAPIInfo145"));//"调拨单信息更新失败!");
  48. }
  49. }
  50. catch (Exception)
  51. {
  52. throw;
  53. }
  54. }
  55. #region 一步调拨(调拨申请单)
  56. /// <summary>
  57. /// 一步调拨(调拨申请单)
  58. /// </summary>
  59. /// <param name="TransCode"></param>
  60. /// <param name="TransSequence"></param>
  61. /// <param name="Quantity"></param>
  62. /// <param name="WorkPoint"></param>
  63. /// <param name="cmd"></param>
  64. public static void OneStepTransferApplicationIn(string TransCode, string TransSequence, string WorkPoint, string Quantity, SqlCommand cmd, Dictionary<string, string> language)
  65. {
  66. try
  67. {
  68. string sql = @"UPDATE ICSTransferApplication SET TransferQuantity=ISNULL(TransferQuantity,0)+'{2}'
  69. WHERE TransferNO='{0}' AND Sequence='{3}' AND WorkPoint='{1}' AND Type='1'
  70. IF EXISTS(SELECT a.ID FROM ICSTransferApplication a
  71. WHERE a.TransferNO='{0}' AND a.Sequence='{3}' and a.WorkPoint='{1}' AND a.Type='1' AND a.TransferQuantity<a.TransferQuantity)
  72. BEGIN
  73. RAISERROR('" + language.GetNameByCode("WMSAPIInfo144") + @"',16,1);
  74. RETURN
  75. END";
  76. sql = string.Format(sql, TransCode, WorkPoint, Quantity, TransSequence);
  77. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  78. {
  79. throw new Exception(language.GetNameByCode("WMSAPIInfo145"));//"调拨单信息更新失败!");
  80. }
  81. }
  82. catch (Exception)
  83. {
  84. throw;
  85. }
  86. }
  87. /// <summary>
  88. /// 一步调拨接口
  89. /// </summary>
  90. /// <param name="TransType"></param>
  91. /// <param name="Identification"></param>
  92. /// <param name="cmd"></param>
  93. public static void OneStepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  94. {
  95. try
  96. {
  97. #region ERP开立状态单据审核
  98. //检验调拨单是否一次性发完
  99. string sql = @"IF EXISTS(SELECT b.ID FROM ICSTransfer b
  100. WHERE b.TransferNO+b.WorkPoint IN (SELECT a.TransCode+a.WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a.Identification='{0}')
  101. AND b.Type = '1' AND b.Quantity!=b.TransferQuantity)
  102. BEGIN
  103. RAISERROR('" + language.GetNameByCode("WMSAPIInfo097") + @"',16,1);
  104. RETURN
  105. END
  106. SELECT b.TransferID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint
  107. FROM ICSWareHouseLotInfoLog a
  108. INNER JOIN ICSTransfer b ON a.TransCode=b.TransferNO AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  109. INNER JOIN ICSConfiguration con ON con.Code='Stock003' AND a.WorkPoint=con.WorkPoint
  110. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock006' AND a.WorkPoint=conStock.WorkPoint
  111. WHERE a.Identification='{0}' AND ERPUpload='0' AND b.Type='1'
  112. GROUP BY b.TransferID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint";
  113. sql = string.Format(sql, Identification);
  114. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  115. string Inputstr =JsonConvert.SerializeObject(dt);
  116. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.OneStepTransferDocInURL, Inputstr);
  117. Result result = new Result();
  118. result = JsonConvert.DeserializeObject<Result>(resultStr);
  119. if (result.Success)
  120. {
  121. try
  122. {
  123. foreach (DataRow dr in dt.Rows)
  124. {
  125. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "","", cmd, language, BusinessCode);
  126. }
  127. }
  128. catch (Exception ex)
  129. {
  130. log.Debug(ex.ToString());
  131. log.Debug(resultStr);
  132. }
  133. }
  134. else
  135. {
  136. throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message);
  137. }
  138. #endregion
  139. }
  140. catch (Exception)
  141. {
  142. throw;
  143. }
  144. }
  145. #endregion
  146. #region 调拨
  147. /// <summary>
  148. /// 调拨接口
  149. /// </summary>
  150. /// <param name="TransType"></param>
  151. /// <param name="Identification"></param>
  152. /// <param name="cmd"></param>
  153. public static void StepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  154. {
  155. try
  156. {
  157. #region ERP开立状态单据审核
  158. //检验调拨单是否一次性发完
  159. string sql = @"SELECT a.ToWarehouseCode+a.MUSER+a.FromWarehouseCode AS Costre,a.ToWarehouseCode AS ToWHCode,a.FromWarehouseCode AS FromWHCode,a.MUSER,'' AS FromDepCode,'' AS ToDepCode,NULL AS TACode,ROW_NUMBER() OVER (ORDER BY a.ToWarehouseCode) AS Sequence,NULL AS TADetailID,
  160. a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
  161. ,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,
  162. 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
  163. INTO #TempERP
  164. FROM ICSWareHouseLotInfoLog a
  165. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  166. INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint
  167. INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
  168. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  169. LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.ToWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint
  170. INNER JOIN ICSConfiguration con ON con.Code='Stock003' AND a.WorkPoint=con.WorkPoint
  171. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock006' AND a.WorkPoint=conStock.WorkPoint
  172. WHERE a.Identification='{0}' AND ERPUpload='0'
  173. GROUP BY a.ToWarehouseCode,a.MUSER,a.InvCode,conStock.Enable,con.Enable,a.FromWarehouseCode
  174. ,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, ''),
  175. 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, '')
  176. SELECT DISTINCT Costre,ToWHCode,FromWHCode,FromDepCode ,ToDepCode,MUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity,WorkPoint,TACode,UpdateStock FROM #TempERP
  177. SELECT Costre,Sequence,InvCode,Quantity,Amount,TADetailID,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10
  178. FROM #TempERP
  179. DROP TABLE #TempERP";
  180. sql = string.Format(sql, Identification);
  181. DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd);
  182. string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre");
  183. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.StepTransferDocInURL, Inputstr);
  184. Result result = new Result();
  185. result = JsonConvert.DeserializeObject<Result>(resultStr);
  186. if (result.Success)
  187. {
  188. try
  189. {
  190. JArray res = (JArray)JsonConvert.DeserializeObject(result.Data.ToString());
  191. foreach (var item in res)
  192. {
  193. JObject jo = (JObject)item;
  194. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["details"].ToString());
  195. foreach (var detail in resdetail)
  196. {
  197. JObject det = (JObject)detail;
  198. 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()
  199. + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString();
  200. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["DNDetailID"].ToString(), Identification, jo["ID"].ToString(), det["DetailID"].ToString(), jo["RCVTCode"].ToString(), det["Sequence"].ToString(),allcol, cmd, language, BusinessCode);
  201. }
  202. }
  203. }
  204. catch (Exception ex)
  205. {
  206. log.Debug(ex.ToString());
  207. log.Debug(resultStr);
  208. }
  209. }
  210. else
  211. {
  212. throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message);
  213. }
  214. #endregion
  215. }
  216. catch (Exception)
  217. {
  218. throw;
  219. }
  220. }
  221. #endregion
  222. #region 调拨申请单接口
  223. /// <summary>
  224. /// 调拨申请单接口
  225. /// </summary>
  226. /// <param name="TransType"></param>
  227. /// <param name="Identification"></param>
  228. /// <param name="cmd"></param>
  229. public static void StepTransferApplicationERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language, string BusinessCode)
  230. {
  231. try
  232. {
  233. #region ERP开立状态单据审核
  234. //检验调拨单是否一次性发完
  235. string sql = @"SELECT c.TransferDetailID as TADetailID,a.ToWarehouseCode+a.MUSER+a.FromWarehouseCode AS Costre,a.ToWarehouseCode AS ToWHCode,a.FromWarehouseCode AS FromWHCode,a.MUSER,'' AS FromDepCode,'' AS ToDepCode,a.TransCode AS TACode,ROW_NUMBER() OVER (ORDER BY a.ToWarehouseCode) AS Sequence,
  236. a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
  237. ,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,
  238. 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
  239. INTO #TempERP
  240. FROM ICSWareHouseLotInfoLog a
  241. INNER JOIN ICSTransfer c ON a.TransCode=c.TransferNO and a.TransSequence=c.Sequence and a.WorkPoint=c.WorkPoint
  242. --INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  243. INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint
  244. INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
  245. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  246. LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.ToWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint
  247. INNER JOIN ICSConfiguration con ON con.Code='Stock003' AND a.WorkPoint=con.WorkPoint
  248. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock006' AND a.WorkPoint=conStock.WorkPoint
  249. WHERE a.Identification='{0}' AND ERPUpload='0'
  250. GROUP BY a.ToWarehouseCode,a.MUSER,c.TransferDetailID,a.InvCode,conStock.Enable,con.Enable,a.FromWarehouseCode
  251. ,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, ''),
  252. 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, ''),a.TransCode
  253. SELECT DISTINCT Costre,ToWHCode,FromWHCode,FromDepCode ,ToDepCode,MUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity,WorkPoint,TACode,UpdateStock FROM #TempERP
  254. SELECT Costre,Sequence,InvCode,Quantity,Amount,TADetailID,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10
  255. FROM #TempERP
  256. DROP TABLE #TempERP";
  257. sql = string.Format(sql, Identification);
  258. DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd);
  259. string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre");
  260. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.StepTransferApplicationURL, Inputstr);
  261. Result result = new Result();
  262. result = JsonConvert.DeserializeObject<Result>(resultStr);
  263. if (result.Success)
  264. {
  265. try
  266. {
  267. JArray res = (JArray)JsonConvert.DeserializeObject(result.Data.ToString());
  268. foreach (var item in res)
  269. {
  270. JObject jo = (JObject)item;
  271. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["details"].ToString());
  272. foreach (var detail in resdetail)
  273. {
  274. JObject det = (JObject)detail;
  275. string allcol = "" + 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()
  276. + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString();
  277. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["DNDetailID"].ToString(), Identification, jo["ID"].ToString(), det["DetailID"].ToString(), jo["RCVTCode"].ToString(), det["Sequence"].ToString(), allcol, cmd, language, BusinessCode);
  278. }
  279. }
  280. }
  281. catch (Exception ex)
  282. {
  283. log.Debug(ex.ToString());
  284. log.Debug(resultStr);
  285. }
  286. }
  287. else
  288. {
  289. throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message);
  290. }
  291. #endregion
  292. }
  293. catch (Exception)
  294. {
  295. throw;
  296. }
  297. }
  298. #endregion
  299. #region 两步调出
  300. /// <summary>
  301. /// 两步调出
  302. /// </summary>
  303. /// <param name="TransCode"></param>
  304. /// <param name="TransSequence"></param>
  305. /// <param name="Quantity"></param>
  306. /// <param name="WorkPoint"></param>
  307. /// <param name="cmd"></param>
  308. public static void TwoStepTransferDocOut(string TransCode, string TransSequence, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  309. {
  310. try
  311. {
  312. string sql = @"DECLARE @Status VARCHAR(10)
  313. SELECT @Status=a.Status FROM ICSOtherOut a
  314. INNER JOIN ICSTransfer b ON a.TransferDetailID=b.TransferDetailID AND a.WorkPoint=b.WorkPoint
  315. WHERE a.OutCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}'
  316. IF (@Status IS NULL)
  317. BEGIN
  318. RAISERROR('" + language.GetNameByCode("WMSAPIInfo146") + @"',16,1);
  319. RETURN
  320. END
  321. ELSE IF (@Status!='1')
  322. BEGIN
  323. RAISERROR('" + language.GetNameByCode("WMSAPIInfo147") + @"',16,1);
  324. RETURN
  325. END
  326. UPDATE a SET OutQuantity=ISNULL(OutQuantity,0)+'{2}'
  327. FROM ICSOtherOut a
  328. INNER JOIN ICSTransfer b ON a.TransferDetailID=b.TransferDetailID AND a.WorkPoint=b.WorkPoint
  329. WHERE a.OutCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}'
  330. IF EXISTS(SELECT a.ID FROM ICSOtherOut a
  331. INNER JOIN ICSTransfer b ON a.TransferDetailID=b.TransferDetailID AND a.WorkPoint=b.WorkPoint
  332. WHERE a.OutCode='{0}' AND a.Sequence='{3}' and a.WorkPoint='{1}' AND a.Quantity<a.OutQuantity)
  333. BEGIN
  334. RAISERROR('" + language.GetNameByCode("WMSAPIInfo091") + @"',16,1);
  335. RETURN
  336. END";
  337. sql = string.Format(sql, TransCode, WorkPoint, Quantity, TransSequence);
  338. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  339. {
  340. throw new Exception(language.GetNameByCode("WMSAPIInfo148"));//"两步调出单更新失败!");
  341. }
  342. }
  343. catch (Exception)
  344. {
  345. throw;
  346. }
  347. }
  348. /// <summary>
  349. /// 两步调出接口
  350. /// </summary>
  351. /// <param name="TransType"></param>
  352. /// <param name="Identification"></param>
  353. /// <param name="cmd"></param>
  354. public static void TwoStepTransferDocOutERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  355. {
  356. try
  357. {
  358. #region ERP开立状态单据审核
  359. string sql = @"IF EXISTS(SELECT b.ID FROM ICSOtherOut b
  360. INNER JOIN ICSTransfer c ON b.TransferDetailID=c.TransferDetailID AND b.WorkPoint=c.WorkPoint
  361. WHERE b.OutCode+b.WorkPoint IN (SELECT a.TransCode+a.WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a.Identification='{0}')
  362. AND b.Quantity!=b.OutQuantity)
  363. BEGIN
  364. RAISERROR('" + language.GetNameByCode("WMSAPIInfo098") + @"',16,1);
  365. RETURN
  366. END
  367. SELECT b.OutID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint
  368. FROM ICSWareHouseLotInfoLog a
  369. INNER JOIN ICSOtherOut b ON a.TransCode=b.OutCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  370. INNER JOIN ICSTransfer c ON b.TransferDetailID=c.TransferDetailID AND b.WorkPoint=c.WorkPoint
  371. INNER JOIN ICSConfiguration con ON con.Code='Stock002' AND a.WorkPoint=con.WorkPoint
  372. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock003' AND a.WorkPoint=conStock.WorkPoint
  373. WHERE a.Identification='{0}' AND ERPUpload='0' AND a.BusinessCode = '22'
  374. GROUP BY b.OutID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint";
  375. sql = string.Format(sql, Identification);
  376. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  377. string Inputstr = JsonConvert.SerializeObject(dt);
  378. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.TwoStepTransferDocOutURL, Inputstr);
  379. Result result = new Result();
  380. result = JsonConvert.DeserializeObject<Result>(resultStr);
  381. if (result.Success)
  382. {
  383. try
  384. {
  385. foreach (DataRow dr in dt.Rows)
  386. {
  387. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "", "", cmd, language, BusinessCode);
  388. }
  389. }
  390. catch (Exception ex)
  391. {
  392. log.Debug(ex.ToString());
  393. log.Debug(resultStr);
  394. }
  395. }
  396. else
  397. {
  398. throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message);
  399. }
  400. #endregion
  401. }
  402. catch (Exception)
  403. {
  404. throw;
  405. }
  406. }
  407. #endregion
  408. #region 两步调入
  409. /// <summary>
  410. /// 两步调入
  411. /// </summary>
  412. /// <param name="TransCode"></param>
  413. /// <param name="TransSequence"></param>
  414. /// <param name="Quantity"></param>
  415. /// <param name="WorkPoint"></param>
  416. /// <param name="cmd"></param>
  417. public static void TwoStepTransferDocIn(string TransCode, string TransSequence, string LotNo, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  418. {
  419. //需要关联其他入库单
  420. try
  421. {
  422. string sql = @"DECLARE @Status VARCHAR(10)
  423. SELECT @Status=Otin.Status FROM ICSOtherIn Otin
  424. INNER JOIN ICSTransfer tra ON Otin.TransferDetailID=tra.TransferDetailID AND Otin.WorkPoint=tra.WorkPoint
  425. INNER JOIN ICSOtherOut out ON out.TransferDetailID=tra.TransferDetailID AND out.WorkPoint=tra.WorkPoint
  426. INNER JOIN ICSWareHouseLotInfoLog log ON out.OutCode=log.TransCode AND out.Sequence=log.TransSequence AND out.WorkPoint=log.WorkPoint
  427. INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
  428. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND Otin.InCode='{2}' AND Otin.Sequence='{3}'
  429. IF (@Status IS NULL)
  430. BEGIN
  431. RAISERROR('" + language.GetNameByCode("WMSAPIInfo081") + @"',16,1);
  432. RETURN
  433. END
  434. ELSE IF (@Status!='1')
  435. BEGIN
  436. RAISERROR('" + language.GetNameByCode("WMSAPIInfo137") + @"',16,1);
  437. RETURN
  438. END
  439. UPDATE Otin SET InQuantity=ISNULL(InQuantity,0)+'{4}'
  440. FROM ICSOtherIn Otin
  441. INNER JOIN ICSTransfer tra ON Otin.TransferDetailID=tra.TransferDetailID AND Otin.WorkPoint=tra.WorkPoint
  442. INNER JOIN ICSOtherOut out ON out.TransferDetailID=tra.TransferDetailID AND out.WorkPoint=tra.WorkPoint
  443. INNER JOIN ICSWareHouseLotInfoLog log ON out.OutCode=log.TransCode AND out.Sequence=log.TransSequence AND out.WorkPoint=log.WorkPoint
  444. INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
  445. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND Otin.InCode='{2}' AND Otin.Sequence='{3}'
  446. IF EXISTS(SELECT a.LotNo FROM ICSOtherIn Otin
  447. INNER JOIN ICSTransfer tra ON Otin.TransferDetailID=tra.TransferDetailID AND Otin.WorkPoint=tra.WorkPoint
  448. INNER JOIN ICSOtherOut out ON out.TransferDetailID=tra.TransferDetailID AND out.WorkPoint=tra.WorkPoint
  449. INNER JOIN ICSWareHouseLotInfoLog log ON out.OutCode=log.TransCode AND out.Sequence=log.TransSequence AND out.WorkPoint=log.WorkPoint
  450. INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
  451. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND Otin.InCode='{2}' AND Otin.Sequence='{3}' AND Otin.Quantity<Otin.InQuantity)
  452. BEGIN
  453. RAISERROR('" + language.GetNameByCode("WMSAPIInfo149") + @"',16,1);
  454. END";
  455. sql = string.Format(sql, LotNo, WorkPoint,TransCode,TransSequence, Quantity);
  456. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  457. {
  458. throw new Exception(language.GetNameByCode("WMSAPIInfo150"));//"两步调入单更新失败!");
  459. }
  460. }
  461. catch (Exception)
  462. {
  463. throw;
  464. }
  465. }
  466. /// <summary>
  467. /// 两步调入接口
  468. /// </summary>
  469. /// <param name="TransType"></param>
  470. /// <param name="Identification"></param>
  471. /// <param name="cmd"></param>
  472. public static void TwoStepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  473. {
  474. try
  475. {
  476. #region ERP开立状态单据审核
  477. string sql = @"IF EXISTS(SELECT b.ID FROM ICSOtherIn b
  478. INNER JOIN ICSTransfer c ON b.TransferDetailID=c.TransferDetailID AND b.WorkPoint=c.WorkPoint
  479. WHERE b.InCode+b.WorkPoint IN (SELECT a.TransCode+a.WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a.Identification='{0}')
  480. AND b.Quantity!=b.InQuantity)
  481. BEGIN
  482. RAISERROR('" + language.GetNameByCode("WMSAPIInfo099") + @"',16,1);
  483. RETURN
  484. END
  485. SELECT b.InID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint
  486. FROM ICSWareHouseLotInfoLog a
  487. INNER JOIN ICSOtherIn b ON a.TransCode=b.InCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  488. INNER JOIN ICSTransfer c ON b.TransferDetailID=c.TransferDetailID AND b.WorkPoint=c.WorkPoint
  489. INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
  490. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock003' AND a.WorkPoint=conStock.WorkPoint
  491. WHERE a.Identification='{0}' AND ERPUpload='0'
  492. GROUP BY b.InID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint";
  493. sql = string.Format(sql, Identification);
  494. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  495. string Inputstr = JsonConvert.SerializeObject(dt);
  496. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.TwoStepTransferDocInURL, Inputstr);
  497. Result result = new Result();
  498. result = JsonConvert.DeserializeObject<Result>(resultStr);
  499. if (result.Success)
  500. {
  501. try
  502. {
  503. foreach (DataRow dr in dt.Rows)
  504. {
  505. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "","", cmd, language, BusinessCode);
  506. }
  507. }
  508. catch (Exception ex)
  509. {
  510. log.Debug(ex.ToString());
  511. log.Debug(resultStr);
  512. }
  513. }
  514. else
  515. {
  516. throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message);
  517. }
  518. #endregion
  519. }
  520. catch (Exception)
  521. {
  522. throw;
  523. }
  524. }
  525. #endregion
  526. #region 其他出库
  527. /// <summary>
  528. /// 其他出库
  529. /// </summary>
  530. /// <param name="TransCode"></param>
  531. /// <param name="TransSequence"></param>
  532. /// <param name="Quantity"></param>
  533. /// <param name="WorkPoint"></param>
  534. /// <param name="cmd"></param>
  535. public static void OtherOutDoc(string TransCode, string TransSequence, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  536. {
  537. try
  538. {
  539. string sql = @"DECLARE @Status VARCHAR(10)
  540. SELECT @Status=a.Status FROM ICSOtherOut a
  541. WHERE a.OutCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}'
  542. IF (@Status IS NULL)
  543. BEGIN
  544. RAISERROR('" + language.GetNameByCode("WMSAPIInfo151") + @"',16,1);
  545. RETURN
  546. END
  547. ELSE IF (@Status!='1')
  548. BEGIN
  549. RAISERROR('" + language.GetNameByCode("WMSAPIInfo152") + @"',16,1);
  550. RETURN
  551. END
  552. UPDATE a SET OutQuantity=ISNULL(OutQuantity,0)+'{2}'
  553. FROM ICSOtherOut a
  554. WHERE a.OutCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}'
  555. IF EXISTS(SELECT a.ID FROM ICSOtherOut a
  556. WHERE a.OutCode='{0}' AND a.Sequence='{3}' and a.WorkPoint='{1}' AND a.Quantity<a.OutQuantity)
  557. BEGIN
  558. RAISERROR('" + language.GetNameByCode("WMSAPIInfo091") + @"',16,1);
  559. RETURN
  560. END";
  561. sql = string.Format(sql, TransCode, WorkPoint, Quantity, TransSequence);
  562. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  563. {
  564. throw new Exception(language.GetNameByCode("WMSAPIInfo153"));//"其他出库单更新失败!");
  565. }
  566. }
  567. catch (Exception)
  568. {
  569. throw;
  570. }
  571. }
  572. /// <summary>
  573. /// 其他出库接口
  574. /// </summary>
  575. /// <param name="TransType"></param>
  576. /// <param name="Identification"></param>
  577. /// <param name="cmd"></param>
  578. public static void OtherOutDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  579. {
  580. try
  581. {
  582. #region ERP开立状态单据审核
  583. string sql = @"IF EXISTS(SELECT b.ID FROM ICSOtherOut b
  584. WHERE b.OutCode+b.WorkPoint IN (SELECT a.TransCode+a.WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a.Identification='{0}')
  585. AND b.Quantity!=b.OutQuantity)
  586. BEGIN
  587. RAISERROR('" + language.GetNameByCode("WMSAPIInfo100") + @"',16,1);
  588. RETURN
  589. END
  590. SELECT b.OutID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint
  591. FROM ICSWareHouseLotInfoLog a
  592. INNER JOIN ICSOtherOut b ON a.TransCode=b.OutCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  593. INNER JOIN ICSConfiguration con ON con.Code='Stock002' AND a.WorkPoint=con.WorkPoint
  594. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock003' AND a.WorkPoint=conStock.WorkPoint
  595. WHERE a.Identification='{0}' AND ERPUpload='0' AND a.BusinessCode = '24'
  596. GROUP BY b.OutID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint";
  597. sql = string.Format(sql, Identification);
  598. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  599. string Inputstr = JsonConvert.SerializeObject(dt);
  600. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.OtherOutDocURL, Inputstr);
  601. Result result = new Result();
  602. result = JsonConvert.DeserializeObject<Result>(resultStr);
  603. if (result.Success)
  604. {
  605. try
  606. {
  607. foreach (DataRow dr in dt.Rows)
  608. {
  609. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "","", cmd, language, BusinessCode);
  610. }
  611. }
  612. catch (Exception ex)
  613. {
  614. log.Debug(ex.ToString());
  615. log.Debug(resultStr);
  616. }
  617. }
  618. else
  619. {
  620. throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message);
  621. }
  622. #endregion
  623. }
  624. catch (Exception)
  625. {
  626. throw;
  627. }
  628. }
  629. #endregion
  630. #region 其他入库
  631. /// <summary>
  632. /// 其他入库
  633. /// </summary>
  634. /// <param name="TransCode"></param>
  635. /// <param name="TransSequence"></param>
  636. /// <param name="Quantity"></param>
  637. /// <param name="WorkPoint"></param>
  638. /// <param name="cmd"></param>
  639. public static void OtherInDoc(string LotNo, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  640. {
  641. try
  642. {
  643. string sql = @"DECLARE @Status VARCHAR(10)
  644. SELECT @Status=c.Status FROM ICSInventoryLot a
  645. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  646. INNER JOIN ICSOtherIn c ON b.TransCode=c.InCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  647. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
  648. IF (@Status IS NULL)
  649. BEGIN
  650. RAISERROR('" + language.GetNameByCode("WMSAPIInfo081") + @"',16,1);
  651. RETURN
  652. END
  653. ELSE IF (@Status!='1')
  654. BEGIN
  655. RAISERROR('" + language.GetNameByCode("WMSAPIInfo137") + @"',16,1);
  656. RETURN
  657. END
  658. UPDATE c SET InQuantity=ISNULL(InQuantity,0)+'{2}'
  659. FROM ICSInventoryLot a
  660. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  661. INNER JOIN ICSOtherIn c ON b.TransCode=c.InCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  662. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
  663. IF EXISTS(SELECT a.LotNo FROM ICSInventoryLot a
  664. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  665. INNER JOIN ICSOtherIn c ON b.TransCode=c.InCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  666. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.Quantity<c.InQuantity)
  667. BEGIN
  668. RAISERROR('" + language.GetNameByCode("WMSAPIInfo154") + @"',16,1);
  669. END";
  670. sql = string.Format(sql, LotNo, WorkPoint, Quantity);
  671. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  672. {
  673. throw new Exception(language.GetNameByCode("WMSAPIInfo155"));//"其他入库单更新失败!");
  674. }
  675. }
  676. catch (Exception)
  677. {
  678. throw;
  679. }
  680. }
  681. /// <summary>
  682. /// 其他入库接口
  683. /// </summary>
  684. /// <param name="TransType"></param>
  685. /// <param name="Identification"></param>
  686. /// <param name="cmd"></param>
  687. public static void OtherInDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  688. {
  689. try
  690. {
  691. #region ERP开立状态单据审核
  692. string sql = @"IF EXISTS(SELECT b.ID FROM ICSOtherIn b
  693. WHERE b.InCode+b.WorkPoint IN (SELECT a.TransCode+a.WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a.Identification='{0}')
  694. AND b.Quantity!=b.InQuantity)
  695. BEGIN
  696. RAISERROR('" + language.GetNameByCode("WMSAPIInfo101") + @"',16,1);
  697. RETURN
  698. END
  699. SELECT b.InID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint
  700. FROM ICSWareHouseLotInfoLog a
  701. INNER JOIN ICSOtherIn b ON a.TransCode=b.InCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  702. INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
  703. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock003' AND a.WorkPoint=conStock.WorkPoint
  704. WHERE a.Identification='{0}' AND ERPUpload='0'
  705. GROUP BY b.InID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint";
  706. sql = string.Format(sql, Identification);
  707. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  708. string Inputstr = JsonConvert.SerializeObject(dt);
  709. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.OtherInDocURL, Inputstr);
  710. Result result = new Result();
  711. result = JsonConvert.DeserializeObject<Result>(resultStr);
  712. if (result.Success)
  713. {
  714. try
  715. {
  716. foreach (DataRow dr in dt.Rows)
  717. {
  718. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "","", cmd, language, BusinessCode);
  719. }
  720. }
  721. catch (Exception ex)
  722. {
  723. log.Debug(ex.ToString());
  724. log.Debug(resultStr);
  725. }
  726. }
  727. else
  728. {
  729. throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message);
  730. }
  731. #endregion
  732. }
  733. catch (Exception)
  734. {
  735. throw;
  736. }
  737. }
  738. #endregion
  739. #region 拆卸单
  740. /// <summary>
  741. /// 拆卸单
  742. /// </summary>
  743. /// <param name="TransCode"></param>
  744. /// <param name="TransSequence"></param>
  745. /// <param name="Quantity"></param>
  746. /// <param name="WorkPoint"></param>
  747. /// <param name="cmd"></param>
  748. public static void DisassemblyDoc(string LotNo, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  749. {
  750. try
  751. {
  752. string sql = @"DECLARE @Status VARCHAR(10)
  753. SELECT @Status=c.Status FROM ICSInventoryLot a
  754. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  755. INNER JOIN ICSDisassemblyDoc c ON b.TransCode=c.DABDOCCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  756. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.DABDOCType='2'
  757. IF (@Status IS NULL)
  758. BEGIN
  759. RAISERROR('" + language.GetNameByCode("WMSAPIInfo081") + @"',16,1);
  760. RETURN
  761. END
  762. ELSE IF (@Status!='1')
  763. BEGIN
  764. RAISERROR('" + language.GetNameByCode("WMSAPIInfo137") + @"',16,1);
  765. RETURN
  766. END
  767. UPDATE c SET DABDOCQuantity=ISNULL(DABDOCQuantity,0)+'{2}'
  768. FROM ICSInventoryLot a
  769. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  770. INNER JOIN ICSDisassemblyDoc c ON b.TransCode=c.DABDOCCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  771. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
  772. IF EXISTS(SELECT a.LotNo FROM ICSInventoryLot a
  773. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  774. INNER JOIN ICSDisassemblyDoc c ON b.TransCode=c.DABDOCCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  775. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.Quantity<c.DABDOCQuantity)
  776. BEGIN
  777. RAISERROR('" + language.GetNameByCode("WMSAPIInfo156") + @"',16,1);
  778. END";
  779. sql = string.Format(sql, LotNo, WorkPoint, Quantity);
  780. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  781. {
  782. throw new Exception(language.GetNameByCode("WMSAPIInfo157"));//"拆卸单更新失败!");
  783. }
  784. }
  785. catch (Exception)
  786. {
  787. throw;
  788. }
  789. }
  790. /// <summary>
  791. /// 拆卸单更新套件锁定数量
  792. /// </summary>
  793. /// <param name="Identification"></param>
  794. /// <param name="cmd"></param>
  795. public static void DisassemblyDoc(string Identification, SqlCommand cmd, Dictionary<string, string> language)
  796. {
  797. try
  798. {
  799. string sql = @"UPDATE ICSDisassemblyDoc SET DABDOCQuantity=Quantity
  800. WHERE DABDOCCode+Sequence+WorkPoint IN(SELECT DISTINCT d.TransCode+d.TransSequence+d.WorkPoint
  801. FROM ICSWareHouseLotInfoLog a
  802. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  803. INNER JOIN ICSDisassemblyDoc c ON b.TransCode=c.DABDOCCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  804. INNER JOIN ICSWareHouseLotInfoLog d ON b.TransCode=d.TransCode AND d.TransSequence='1' AND b.WorkPoint=d.WorkPoint
  805. WHERE a.Identification='{0}' AND d.ERPUpload='0' AND d.Lock='1')
  806. UPDATE ICSWareHouseLotInfo SET Quantity=Quantity-LockQuantity,LockQuantity=0
  807. WHERE LotNo+WorkPoint IN(SELECT DISTINCT d.LotNo+d.WorkPoint
  808. FROM ICSWareHouseLotInfoLog a
  809. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  810. INNER JOIN ICSDisassemblyDoc c ON b.TransCode=c.DABDOCCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  811. INNER JOIN ICSWareHouseLotInfoLog d ON b.TransCode=d.TransCode AND d.TransSequence='1' AND b.WorkPoint=d.WorkPoint
  812. WHERE a.Identification='{0}' AND d.ERPUpload='0' AND d.Lock='1')";
  813. sql = string.Format(sql, Identification);
  814. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  815. {
  816. throw new Exception(language.GetNameByCode("WMSAPIInfo158"));//"拆卸单套件更新失败!");
  817. }
  818. }
  819. catch (Exception)
  820. {
  821. throw;
  822. }
  823. }
  824. /// <summary>
  825. /// 拆卸单接口
  826. /// </summary>
  827. /// <param name="TransType"></param>
  828. /// <param name="Identification"></param>
  829. /// <param name="cmd"></param>
  830. public static void DisassemblyDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  831. {
  832. try
  833. {
  834. #region ERP开立状态单据审核
  835. string sql = @"IF EXISTS(SELECT b.ID FROM ICSDisassemblyDoc b
  836. WHERE b.DABDOCCode+b.WorkPoint IN (SELECT a.TransCode+a.WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a.Identification='{0}')
  837. AND b.Quantity!=b.DABDOCQuantity)
  838. BEGIN
  839. RAISERROR('" + language.GetNameByCode("WMSAPIInfo102") + @"',16,1);
  840. RETURN
  841. END
  842. SELECT b.DABDOCID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint
  843. FROM ICSWareHouseLotInfoLog a
  844. INNER JOIN ICSDisassemblyDoc b ON a.TransCode=b.DABDOCCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  845. INNER JOIN ICSConfiguration con ON con.Code='Stock003' AND a.WorkPoint=con.WorkPoint
  846. INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock006' AND a.WorkPoint=conStock.WorkPoint
  847. WHERE a.Identification='{0}' AND ERPUpload='0'
  848. GROUP BY b.DABDOCID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint";
  849. sql = string.Format(sql, Identification);
  850. DataTable dt = DBHelper.SQlReturnData(sql, cmd);
  851. string Inputstr = JsonConvert.SerializeObject(dt);
  852. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.DisassemblyDocURL, Inputstr);
  853. Result result = new Result();
  854. result = JsonConvert.DeserializeObject<Result>(resultStr);
  855. if (result.Success)
  856. {
  857. try
  858. {
  859. foreach (DataRow dr in dt.Rows)
  860. {
  861. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "","", cmd, language, BusinessCode);
  862. }
  863. }
  864. catch (Exception ex)
  865. {
  866. log.Debug(ex.ToString());
  867. log.Debug(resultStr);
  868. }
  869. }
  870. else
  871. {
  872. throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message);
  873. }
  874. #endregion
  875. }
  876. catch (Exception)
  877. {
  878. throw;
  879. }
  880. }
  881. #endregion
  882. #region 借用
  883. /// <summary>
  884. /// 借用
  885. /// </summary>
  886. /// <param name="TransCode"></param>
  887. /// <param name="TransSequence"></param>
  888. /// <param name="Quantity"></param>
  889. /// <param name="WorkPoint"></param>
  890. /// <param name="cmd"></param>
  891. public static void BrrowDoc(string TransCode, string TransSequence, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  892. {
  893. try
  894. {
  895. string sql = @"DECLARE @Status VARCHAR(10)
  896. SELECT @Status=a.Status FROM ICSBrrow a
  897. WHERE a.BrrowCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}'
  898. IF (@Status IS NULL)
  899. BEGIN
  900. RAISERROR('" + language.GetNameByCode("WMSAPIInfo159") + @"',16,1);
  901. RETURN
  902. END
  903. ELSE IF (@Status!='2')
  904. BEGIN
  905. RAISERROR('" + language.GetNameByCode("WMSAPIInfo160") + @"',16,1);
  906. RETURN
  907. END
  908. UPDATE a SET BrrowQuantity=ISNULL(BrrowQuantity,0)+'{2}'
  909. FROM ICSBrrow a
  910. WHERE a.BrrowCode='{0}' AND a.Sequence='{3}' AND a.WorkPoint='{1}'
  911. IF EXISTS(SELECT a.ID FROM ICSBrrow a
  912. WHERE a.BrrowCode='{0}' AND a.Sequence='{3}' and a.WorkPoint='{1}' AND a.Quantity<a.BrrowQuantity)
  913. BEGIN
  914. RAISERROR('" + language.GetNameByCode("WMSAPIInfo091") + @"',16,1);
  915. RETURN
  916. END";
  917. sql = string.Format(sql, TransCode, WorkPoint, Quantity, TransSequence);
  918. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  919. {
  920. throw new Exception(language.GetNameByCode("WMSAPIInfo161"));//"借用单更新失败!");
  921. }
  922. }
  923. catch (Exception)
  924. {
  925. throw;
  926. }
  927. }
  928. /// <summary>
  929. /// 借用接口
  930. /// </summary>
  931. /// <param name="TransType"></param>
  932. /// <param name="Identification"></param>
  933. /// <param name="cmd"></param>
  934. public static void BrrowDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  935. {
  936. try
  937. {
  938. #region ERP
  939. string sql = @"SELECT a.FromWarehouseCode+b.BrrowCode+a.MUSER AS Costre,a.FromWarehouseCode AS WarehouseCode,b.BrrowCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY a.FromWarehouseCode,b.BrrowCode,b.BrrowDetailID,a.InvCode) AS Sequence,
  940. a.InvCode,SUM(a.Quantity) AS Quantity,SUM(a.Quantity*(b.Amount/b.Quantity)) AS Amount,b.BrrowDetailID,Enable AS UpdateTodoQuantity
  941. ,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,
  942. 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
  943. INTO #TempERP
  944. FROM ICSWareHouseLotInfoLog a
  945. INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint
  946. INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
  947. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  948. LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.ToWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint
  949. INNER JOIN ICSBrrow b ON a.TransCode=b.BrrowCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  950. INNER JOIN ICSConfiguration con ON con.Code='Stock002' AND a.WorkPoint=con.WorkPoint
  951. WHERE a.Identification='{0}' AND ERPUpload='0' AND a.BusinessCode = '26'
  952. GROUP BY a.FromWarehouseCode,b.BrrowCode,a.MUSER,a.InvCode,b.BrrowDetailID,Enable
  953. ,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, ''),
  954. 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, '')
  955. SELECT DISTINCT Costre,WorkPoint,'' AS DepCode,WarehouseCode AS WHCode,'' AS SourceType,BrrowCode AS SourceCode,MUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity FROM #TempERP
  956. SELECT Costre,Sequence,InvCode,Quantity,Amount,BrrowDetailID AS SourceDetailID,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10 FROM #TempERP
  957. DROP TABLE #TempERP";
  958. sql = string.Format(sql, Identification);
  959. DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd);
  960. string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre");
  961. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.BrrowDocURL, Inputstr);
  962. Result result = new Result();
  963. result = JsonConvert.DeserializeObject<Result>(resultStr);
  964. if (result.Success)
  965. {
  966. try
  967. {
  968. JArray res = (JArray)JsonConvert.DeserializeObject(result.Data.ToString());
  969. foreach (var item in res)
  970. {
  971. JObject jo = (JObject)item;
  972. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["details"].ToString());
  973. foreach (var detail in resdetail)
  974. {
  975. JObject det = (JObject)detail;
  976. 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()
  977. + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString();
  978. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SourceDetailID"].ToString(), Identification, jo["ID"].ToString(),
  979. det["DetailID"].ToString(), jo["OtherOutCode"].ToString(), det["Sequence"].ToString(), allcol, cmd, language, BusinessCode);
  980. }
  981. }
  982. }
  983. catch (Exception ex)
  984. {
  985. log.Debug(ex.ToString());
  986. log.Debug(resultStr);
  987. }
  988. }
  989. else
  990. {
  991. throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message);
  992. }
  993. #endregion
  994. }
  995. catch (Exception)
  996. {
  997. throw;
  998. }
  999. }
  1000. #endregion
  1001. #region 归还
  1002. /// <summary>
  1003. /// 归还
  1004. /// </summary>
  1005. /// <param name="TransCode"></param>
  1006. /// <param name="TransSequence"></param>
  1007. /// <param name="Quantity"></param>
  1008. /// <param name="WorkPoint"></param>
  1009. /// <param name="cmd"></param>
  1010. public static void ReturnDoc(string LotNo, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
  1011. {
  1012. try
  1013. {
  1014. string sql = @"DECLARE @Status VARCHAR(10)
  1015. SELECT @Status=c.Status FROM ICSInventoryLot a
  1016. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  1017. INNER JOIN ICSReturn c ON b.TransCode=c.ReturnCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  1018. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
  1019. IF (@Status IS NULL)
  1020. BEGIN
  1021. RAISERROR('" + language.GetNameByCode("WMSAPIInfo081") + @"',16,1);
  1022. RETURN
  1023. END
  1024. ELSE IF (@Status!='2')
  1025. BEGIN
  1026. RAISERROR('" + language.GetNameByCode("WMSAPIInfo142") + @"',16,1);
  1027. RETURN
  1028. END
  1029. UPDATE c SET ReturnQuantity=ISNULL(ReturnQuantity,0)+'{2}'
  1030. FROM ICSInventoryLot a
  1031. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  1032. INNER JOIN ICSReturn c ON b.TransCode=c.ReturnCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  1033. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
  1034. IF EXISTS(SELECT a.LotNo FROM ICSInventoryLot a
  1035. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  1036. INNER JOIN ICSReturn c ON b.TransCode=c.ReturnCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
  1037. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.Quantity<c.ReturnQuantity)
  1038. BEGIN
  1039. RAISERROR('" + language.GetNameByCode("WMSAPIInfo162") + @"',16,1);
  1040. END";
  1041. sql = string.Format(sql, LotNo, WorkPoint, Quantity);
  1042. if (!DBHelper.ExecuteNonQuery(sql, cmd))
  1043. {
  1044. throw new Exception(language.GetNameByCode("WMSAPIInfo163"));//"归还单更新失败!");
  1045. }
  1046. }
  1047. catch (Exception)
  1048. {
  1049. throw;
  1050. }
  1051. }
  1052. /// <summary>
  1053. /// 归还接口
  1054. /// </summary>
  1055. /// <param name="TransType"></param>
  1056. /// <param name="Identification"></param>
  1057. /// <param name="cmd"></param>
  1058. public static void ReturnDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary<string, string> language,string BusinessCode)
  1059. {
  1060. try
  1061. {
  1062. #region ERP
  1063. string sql = @"SELECT a.ToWarehouseCode+b.ReturnCode+a.MUSER AS Costre,a.ToWarehouseCode AS WarehouseCode,b.ReturnCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY a.ToWarehouseCode,b.ReturnCode,b.ReturnDetailID,a.InvCode) AS Sequence,
  1064. a.InvCode,SUM(a.Quantity) AS Quantity,SUM(a.Quantity*(lot.Amount/lot.Quantity)) AS Amount,b.ReturnDetailID,Enable AS UpdateTodoQuantity
  1065. ,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,
  1066. 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
  1067. INTO #TempERP
  1068. FROM ICSWareHouseLotInfoLog a
  1069. INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint
  1070. INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
  1071. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  1072. LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.ToWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint
  1073. INNER JOIN ICSReturn b ON a.TransCode=b.ReturnCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
  1074. INNER JOIN ICSConfiguration con ON con.Code='Stock002' AND a.WorkPoint=con.WorkPoint
  1075. WHERE a.Identification='{0}' AND ERPUpload='0' AND BusinessCode='{1}'
  1076. GROUP BY a.ToWarehouseCode,b.ReturnCode,a.MUSER,a.InvCode,b.ReturnDetailID,Enable
  1077. ,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, ''),
  1078. 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, '')
  1079. SELECT DISTINCT Costre,WorkPoint,'' AS DepCode,WarehouseCode AS WHCode,'' AS SourceType,ReturnCode AS SourceCode,MUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity FROM #TempERP
  1080. SELECT Costre,Sequence,InvCode,Quantity,Amount,ReturnDetailID AS SourceDetailID,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10 FROM #TempERP
  1081. DROP TABLE #TempERP";
  1082. sql = string.Format(sql, Identification,BusinessCode);
  1083. DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd);
  1084. string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre");
  1085. string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.ReturnDocURL, Inputstr);
  1086. Result result = new Result();
  1087. result = JsonConvert.DeserializeObject<Result>(resultStr);
  1088. if (result.Success)
  1089. {
  1090. try
  1091. {
  1092. JArray res = (JArray)JsonConvert.DeserializeObject(result.Data.ToString());
  1093. foreach (var item in res)
  1094. {
  1095. JObject jo = (JObject)item;
  1096. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["details"].ToString());
  1097. foreach (var detail in resdetail)
  1098. {
  1099. JObject det = (JObject)detail;
  1100. 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()
  1101. + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString();
  1102. ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SourceDetailID"].ToString(), Identification, jo["ID"].ToString(),
  1103. det["DetailID"].ToString(), jo["OtherInCode"].ToString(), det["Sequence"].ToString(),"", cmd,language, BusinessCode);
  1104. }
  1105. }
  1106. }
  1107. catch (Exception ex)
  1108. {
  1109. log.Debug(ex.ToString());
  1110. log.Debug(resultStr);
  1111. }
  1112. }
  1113. else
  1114. {
  1115. throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message);
  1116. }
  1117. #endregion
  1118. }
  1119. catch (Exception)
  1120. {
  1121. throw;
  1122. }
  1123. }
  1124. #endregion
  1125. #endregion
  1126. }
  1127. }