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.

609 lines
29 KiB

3 weeks ago
  1. using Newtonsoft.Json.Linq;
  2. using Newtonsoft.Json;
  3. using NFine.Code;
  4. using NFine.Data.Extensions;
  5. using NFine.Domain._03_Entity.SRM;
  6. using NFine.Repository;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Configuration;
  10. using System.Data;
  11. using System.Data.Common;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. using System.Threading;
  16. using System.Reflection.Emit;
  17. using NFine.Application.WMS;
  18. namespace NFine.Application.DHAY
  19. {
  20. public class ICSCustomerSuppliedReturnApp : RepositoryFactory<ICSVendor>
  21. {
  22. public static DataTable Invmes = new DataTable();
  23. ICSAccessoriesMOIApplyApp iCSAccessoriesMOIApplyApp = new ICSAccessoriesMOIApplyApp();
  24. #region 获取单据类型
  25. /// <summary>
  26. /// 获取U9单据类型
  27. /// </summary>
  28. /// <returns></returns>
  29. public DataTable GetU9CodeType(string key1)
  30. {
  31. //{
  32. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  33. // string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  34. // string sql = @" select '' as Code,'' as Name
  35. // union all
  36. // SELECT a.Code,b.Name FROM {0}{1}.dbo.InvDoc_MiscshipDocType a
  37. // LEFT JOIN {0}{1}.dbo.InvDoc_MiscshipDocType_Trl b ON a.ID=b.ID
  38. // WHERE Effective_DisableDate>=GETDATE()";
  39. // sql = string.Format(sql, DbHelper.GetErpIpU9(), DbHelper.GetErpNameU9());
  40. // DataTable dt = SqlHelper.GetDataTableBySql(sql);
  41. // return dt;
  42. string msg = "";
  43. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "/GetU9DocType";
  44. string result = DeciliterApp.HttpPost(APIURL, key1);
  45. DataTable dt = JsonConvert.DeserializeObject<DataTable>(result);
  46. DataRow newRow = dt.NewRow();
  47. newRow["Code"] = "";
  48. newRow["Name"] = "";
  49. dt.Rows.InsertAt(newRow, 0);
  50. return dt;
  51. }
  52. #endregion
  53. #region 获取部门
  54. /// <summary>
  55. /// 获取U9单据类型
  56. /// </summary>
  57. /// <returns></returns>
  58. public DataTable GetU9Department()
  59. {
  60. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  61. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  62. string sql = @" select '' as Code,'' as Name
  63. union all
  64. SELECT a.code,b.Name FROM {0}{1}.dbo.CBO_Department a
  65. LEFT JOIN {0}{1}.dbo.CBO_Department_Trl b ON a.id=b.ID
  66. WHERE Effective_DisableDate>=GETDATE()";
  67. sql = string.Format(sql, DbHelper.GetErpIpU9(), DbHelper.GetErpNameU9());
  68. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  69. return dt;
  70. }
  71. #endregion
  72. #region 获取客户
  73. /// <summary>
  74. /// 获取U9单据类型
  75. /// </summary>
  76. /// <returns></returns>
  77. public DataTable GetU9Customer()
  78. {
  79. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  80. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  81. string sql = @" select '' as Code,'' as Name
  82. union all
  83. SELECT a.Code,b.Name FROM {0}{1}.dbo.CBO_Customer a
  84. LEFT JOIN {0}{1}.dbo.CBO_Customer_Trl b ON a.ID=b.ID
  85. WHERE Effective_DisableDate>=GETDATE()";
  86. sql = string.Format(sql, DbHelper.GetErpIpU9(), DbHelper.GetErpNameU9());
  87. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  88. return dt;
  89. }
  90. #endregion
  91. #region 获取物料信息
  92. public DataTable GetItemList(string queryJson, ref Pagination jqgridparam)
  93. {
  94. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  95. var queryParam = queryJson.ToJObject();
  96. List<DbParameter> parameter = new List<DbParameter>();
  97. string sql = @"SELECT INVCODE ,INVNAME , InvStd
  98. FROM ICSINVENTORY WHERE 1=1 ";
  99. if (!string.IsNullOrEmpty(queryJson))
  100. {
  101. if (!string.IsNullOrWhiteSpace(queryParam["INVCODE"].ToString()))
  102. sql += " and INVCODE like '%" + queryParam["INVCODE"].ToString() + "%'";
  103. if (!string.IsNullOrWhiteSpace(queryParam["INVNAME"].ToString()))
  104. sql += " and INVNAME like '%" + queryParam["INVNAME"].ToString() + "%'";
  105. }
  106. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  107. sql += " and WorkPoint=('" + WorkPoint + "')";
  108. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  109. }
  110. #endregion
  111. #region 获取仓库信息
  112. public DataTable GetWHCodeList(string queryJson, ref Pagination jqgridparam)
  113. {
  114. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  115. var queryParam = queryJson.ToJObject();
  116. List<DbParameter> parameter = new List<DbParameter>();
  117. string sql = @"SELECT WarehouseCode ,WarehouseName
  118. FROM ICSWarehouse WHERE 1=1 ";
  119. if (!string.IsNullOrEmpty(queryJson))
  120. {
  121. if (!string.IsNullOrWhiteSpace(queryParam["WarehouseCode"].ToString()))
  122. sql += " and WarehouseCode like '%" + queryParam["WarehouseCode"].ToString() + "%'";
  123. if (!string.IsNullOrWhiteSpace(queryParam["WarehouseName"].ToString()))
  124. sql += " and WarehouseName like '%" + queryParam["WarehouseName"].ToString() + "%'";
  125. }
  126. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  127. sql += " and WorkPoint=('" + WorkPoint + "')";
  128. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  129. }
  130. #endregion
  131. #region 获取批次信息
  132. public DataTable GetBatchList(string queryJson, ref Pagination jqgridparam)
  133. {
  134. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  135. var queryParam = queryJson.ToJObject();
  136. List<DbParameter> parameter = new List<DbParameter>();
  137. string sql = @" SELECT DISTINCT c.BatchCode,a.InvCode FROM ICSWareHouseLotInfo a
  138. LEFT JOIN ICSInventoryLot b ON a.lotNO=b.LOtNO
  139. LEFT JOIN ICSExtension c ON b.ExtensionID=c.ID
  140. LEFT JOIN ICSInventory d ON a.InvCode=d.INVCode
  141. WHERE 1=1";
  142. if (!string.IsNullOrEmpty(queryJson))
  143. {
  144. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  145. sql += " and c.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%'";
  146. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  147. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  148. }
  149. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  150. sql += " and a.WorkPoint in ('" + WorkPoint + "')";
  151. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  152. }
  153. #endregion
  154. #region 获取仓库信息
  155. public DataTable Select_ICSWHCode()
  156. {
  157. string sql = string.Empty;
  158. DataTable dt = null;
  159. sql = @"SELECT ''as WarehouseCode,'' as WarehouseName FROM ICSWarehouse
  160. union
  161. SELECT WarehouseCode,WarehouseName FROM ICSWarehouse ";
  162. dt = SqlHelper.GetDataTableBySql(sql);
  163. return dt;
  164. }
  165. #endregion
  166. #region 删除杂发单
  167. public string DeleteICSOtherOut(string keyValue)
  168. {
  169. //站点信息
  170. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  171. string msg = "";
  172. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  173. string sql = string.Empty;
  174. sql += string.Format(@"DELETE FROM dbo.ICSOtherOut WHERE OutCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  175. try
  176. {
  177. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  178. {
  179. }
  180. }
  181. catch (Exception ex)
  182. {
  183. throw new Exception(ex.Message);
  184. }
  185. return msg;
  186. }
  187. #endregion
  188. #region 保存发料信息
  189. public string SaveICSOtherOut(string ICSASN)
  190. {
  191. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  192. string UserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  193. string msg = "";
  194. List<JsonData> parsedData = JsonConvert.DeserializeObject<List<JsonData>>(ICSASN);
  195. string sql = "";
  196. string Colspan = "";
  197. string str1 = "";
  198. List<string> ExtensionIDList = new List<string>();
  199. // 获取解析后的数据
  200. JsonData data = parsedData[0];
  201. foreach (var detail in data.Detail)
  202. {
  203. //获取物料的可用数量,判断当前创建单据数量
  204. decimal invCount = iCSAccessoriesMOIApplyApp.GetInvCodeCount(detail.InvCode, "", "");
  205. if (invCount < detail.Quantity)
  206. {
  207. throw new Exception($"物料{detail.InvCode}创建单据数量:{detail.Quantity}不能大于库存可用量:{invCount}");
  208. }
  209. Colspan = "~" + detail.Batch + "~~~~~~~~~~~~";
  210. string sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  211. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  212. bool flag = true;
  213. foreach (var item in ExtensionIDList)
  214. {
  215. if (item == Colspan + WorkPoint)
  216. {
  217. flag = false;
  218. }
  219. }
  220. if (ExtensionID == null && flag == true)
  221. {
  222. str1 = Guid.NewGuid().ToString();
  223. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  224. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  225. str1, Colspan, "", detail.Batch, "", "", "", "", "", "", "", "", "", "", "", "",
  226. data.User, UserName, WorkPoint);
  227. }
  228. else if (ExtensionID != null)
  229. {
  230. str1 = ExtensionID.ToString();
  231. }
  232. ExtensionIDList.Add(Colspan + WorkPoint);
  233. sql += "INSERT INTO ICSOtherOut(ID,OutCode,WHCode,Sequence,InvCode,Quantity,CreatePerson,CreateDateTime,WorkPoint,Status,OutID,OutDetailID,ExtensionID,MUSER,MUSERName,MTIME,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE10,OutQuantity,EATTRIBUTE11,EATTRIBUTE12)" +
  234. " select '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}',newID(),newID(),'{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','客供退货',0,'{21}','{22}'";
  235. sql = string.Format(sql, detail.ID, data.Code, detail.WHCode, detail.Sequence, detail.InvCode, detail.Quantity, data.User, data.MTIME, WorkPoint, '1', str1, data.User, UserName, data.MTIME, data.Dept.TrimStart(' '), data.CodeType, data.ApplyNegCode, data.Custmer.TrimStart(), data.Remarks, detail.DetailReamrk, detail.SYproject.TrimStart(), data.DeptName.TrimStart(), data.CodeTypeName.TrimStart());
  236. }
  237. try
  238. {
  239. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  240. {
  241. }
  242. }
  243. catch (Exception ex)
  244. {
  245. msg = ex.Message;
  246. }
  247. return msg;
  248. }
  249. #region 杂发单主表信息查询
  250. public DataTable GetICSOtherOut(ref Pagination jqgridparam, string queryJson)
  251. {
  252. var queryParam = queryJson.ToJObject();
  253. DataTable dt = new DataTable();
  254. List<DbParameter> parameter = new List<DbParameter>();
  255. string sql = @" SELECT DISTINCT
  256. a.OutCode
  257. ,a.Status
  258. ,a.CreatePerson
  259. ,a.CreateDateTime
  260. ,a.MUSER
  261. ,a.MUSERName
  262. ,a.EATTRIBUTE1
  263. ,a.EATTRIBUTE2
  264. ,a.EATTRIBUTE3
  265. ,a.EATTRIBUTE4
  266. ,a.EATTRIBUTE5
  267. --,a.EATTRIBUTE7
  268. ,a.EATTRIBUTE8
  269. ,a.EATTRIBUTE9
  270. ,a.EATTRIBUTE10
  271. ,a.EATTRIBUTE11
  272. ,a.EATTRIBUTE12
  273. ,a.MUSERName AS CreatePersonName
  274. from dbo.ICSOtherOut a
  275. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint WHERE 1=1 ";
  276. if (!string.IsNullOrWhiteSpace(queryJson))
  277. {
  278. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  279. {
  280. sql += " and a.OutCode like '%" + queryParam["POCode"].ToString() + "%' ";
  281. }
  282. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  283. {
  284. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  285. }
  286. if (!string.IsNullOrWhiteSpace(queryParam["CreatedBy"].ToString()))
  287. {
  288. sql += " and a.CreatePerson like '%" + queryParam["CreatedBy"].ToString() + "%' ";
  289. }
  290. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  291. {
  292. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  293. }
  294. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  295. {
  296. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  297. }
  298. }
  299. sql = string.Format(sql);
  300. DataTable dttest = Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  301. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  302. }
  303. #endregion
  304. #region 杂发单主表信息查询
  305. public DataTable GetICSOtherOutByOutCode(string OutCode)
  306. {
  307. DataTable dt = new DataTable();
  308. List<DbParameter> parameter = new List<DbParameter>();
  309. string sql = @" SELECT DISTINCT
  310. a.OutCode
  311. ,a.Status
  312. ,a.CreatePerson
  313. ,a.CreateDateTime
  314. ,a.MUSER
  315. ,a.MUSERName
  316. ,a.EATTRIBUTE1
  317. ,a.EATTRIBUTE2
  318. ,a.EATTRIBUTE3
  319. ,a.EATTRIBUTE4
  320. ,a.EATTRIBUTE5
  321. ,a.EATTRIBUTE7
  322. ,a.EATTRIBUTE8
  323. ,a.EATTRIBUTE9
  324. ,a.EATTRIBUTE10
  325. from dbo.ICSOtherOut a
  326. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  327. WHERE a.OutCode='{0}'";
  328. sql = string.Format(sql, OutCode);
  329. return Repository().FindTableBySql(sql.ToString());
  330. }
  331. #endregion
  332. #region 主页面子表信息查询
  333. public DataTable GetICSOtherOutDetail(string OutCode, ref Pagination jqgridparam)
  334. {
  335. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  336. DataTable dt = new DataTable();
  337. //var queryParam = queryJson.ToJObject();
  338. List<DbParameter> parameter = new List<DbParameter>();
  339. string sql = @" select a.ID
  340. ,a.OutCode
  341. ,a.Sequence
  342. ,a.InvCode
  343. ,a.Quantity
  344. ,a.Amount
  345. ,a.ExtensionID
  346. ,a.MUSER
  347. ,a.MUSERName
  348. ,a.MTIME
  349. ,f.Colspan
  350. ,f.ProjectCode
  351. ,f.BatchCode
  352. ,f.Version
  353. ,f.Brand
  354. ,f.cFree1
  355. ,f.cFree2
  356. ,f.cFree3
  357. ,f.cFree4
  358. ,f.cFree5
  359. ,f.cFree6
  360. ,f.cFree7
  361. ,f.cFree8
  362. ,f.cFree9
  363. ,f.cFree10
  364. ,a.EATTRIBUTE1
  365. ,a.EATTRIBUTE2
  366. ,a.EATTRIBUTE3
  367. ,a.EATTRIBUTE4
  368. ,a.EATTRIBUTE5
  369. ,a.EATTRIBUTE6
  370. ,a.EATTRIBUTE7
  371. ,a.EATTRIBUTE8
  372. ,a.EATTRIBUTE9
  373. ,a.EATTRIBUTE10
  374. ,c.WarehouseName
  375. ,b.InvName AS InvName
  376. ,b.InvStd AS InvSTD
  377. from ICSOtherOut a
  378. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  379. LEFT JOIN dbo.ICSWarehouse c ON a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  380. LEFT JOIN ICSInventory b on b.InvCode=a.InvCode and b.WorkPoint=a.WorkPoint
  381. WHERE a.OutCode='" + OutCode + "' ";
  382. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  383. }
  384. #endregion
  385. public string DeleteICSOtherOutByCode(string keyValue)
  386. {
  387. //站点信息
  388. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  389. string msg = "";
  390. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  391. string sql = string.Empty;
  392. sql += string.Format(@"DELETE FROM dbo.ICSOtherOut WHERE OutCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  393. try
  394. {
  395. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  396. {
  397. }
  398. }
  399. catch (Exception ex)
  400. {
  401. throw new Exception(ex.Message);
  402. }
  403. return msg;
  404. }
  405. public string GetBidCode(string WorkPoint)
  406. {
  407. WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  408. string BidCide = string.Empty;
  409. if (!string.IsNullOrEmpty(WorkPoint))
  410. {
  411. string Date = DateTime.Now.ToString("yyyy");
  412. string Muoth = DateTime.Now.ToString("MM");
  413. string Day = DateTime.Now.ToString("dd");
  414. string Pre = "ZF" + Date + Muoth + Day;
  415. BidCide = GetSerialCode(WorkPoint, "ICSOtherOut", "OutCode", Pre, 4);
  416. }
  417. if (!string.IsNullOrWhiteSpace(BidCide))
  418. {
  419. string sqlISHave = @"SELECT OutCode FROM ICSOtherOut a
  420. WHERE a.OutCode = '{0}'";
  421. sqlISHave = string.Format(sqlISHave, BidCide);
  422. DataTable dtIsHave = SqlHelper.GetDataTableBySql(sqlISHave);
  423. if (dtIsHave.Rows.Count > 0)
  424. {
  425. throw new Exception("单号已存在!");
  426. }
  427. }
  428. return BidCide;
  429. }
  430. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  431. {
  432. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  433. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  434. //return Repository().FindTableBySql(sql.ToString());
  435. return SqlHelper.ExecuteScalar(sql).ToString();
  436. //return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  437. }
  438. public string UpdateICSOtherOut(string ICSASN)
  439. {
  440. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  441. string UserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  442. string msg = "";
  443. List<JsonData> parsedData = JsonConvert.DeserializeObject<List<JsonData>>(ICSASN);
  444. string sql = "";
  445. string Colspan = "";
  446. string str1 = "";
  447. List<string> ExtensionIDList = new List<string>();
  448. // 获取解析后的数据
  449. JsonData data = parsedData[0];
  450. foreach (var detail in data.Detail)
  451. {
  452. //获取物料的可用数量,判断当前创建单据数量
  453. decimal invCount = iCSAccessoriesMOIApplyApp.GetInvCodeCount(detail.InvCode, "", "");
  454. if (invCount < detail.Quantity)
  455. {
  456. throw new Exception($"物料{detail.InvCode}创建单据数量:{detail.Quantity}不能大于库存可用量:{invCount}");
  457. }
  458. Colspan = "~" + detail.Batch + "~~~~~~~~~~~~";
  459. string sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  460. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  461. bool flag = true;
  462. foreach (var item in ExtensionIDList)
  463. {
  464. if (item == Colspan + WorkPoint)
  465. {
  466. flag = false;
  467. }
  468. }
  469. if (ExtensionID == null && flag == true)
  470. {
  471. str1 = Guid.NewGuid().ToString();
  472. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  473. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  474. str1, Colspan, "", detail.Batch, "", "", "", "", "", "", "", "", "", "", "", "",
  475. data.User, UserName, WorkPoint);
  476. }
  477. else if (ExtensionID != null)
  478. {
  479. str1 = ExtensionID.ToString();
  480. }
  481. ExtensionIDList.Add(Colspan + WorkPoint);
  482. sql += @" IF NOT EXISTS(SELECT * FROM dbo.ICSOtherOut WHERE ID='{0}')
  483. BEGIN
  484. INSERT INTO ICSOtherOut(ID,OutCode,WHCode,Sequence,InvCode,Quantity,CreatePerson,CreateDateTime,WorkPoint,Status,OutID,OutDetailID,ExtensionID,MUSER,MUSERName,MTIME,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE10,OutQuantity,EATTRIBUTE11,EATTRIBUTE12)
  485. select '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}',newID(),newID(),'{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','退',0,'{21}','{22}'
  486. END
  487. ELSE
  488. BEGIN
  489. UPDATE dbo.ICSOtherOut
  490. SET WHCode='{2}',InvCode='{4}',Quantity='{5}',CreatePerson='{6}',
  491. CreateDateTime='{7}' ,MTIME='{13}',EATTRIBUTE1='{14}',EATTRIBUTE2='{15}',EATTRIBUTE3='{16}',EATTRIBUTE4='{17}',EATTRIBUTE5='{18}',EATTRIBUTE6='{19}',EATTRIBUTE7='{20}',EATTRIBUTE11='{21}',EATTRIBUTE12='{22}'
  492. WHERE ID='{0}'
  493. END";
  494. //sql += "INSERT INTO ICSOtherOut(ID,OutCode,WHCode,Sequence,InvCode,Quantity,CreatePerson,CreateDateTime,WorkPoint,Status,OutID,OutDetailID,ExtensionID,MUSER,MUSERName,MTIME,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7)" +
  495. // " select '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}',newID(),newID(),'{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'";
  496. sql = string.Format(sql, detail.ID, data.Code, detail.WHCode, detail.Sequence, detail.InvCode, detail.Quantity, data.User, data.MTIME, WorkPoint, '1', str1, data.User, UserName, data.MTIME, data.Dept, data.CodeType.TrimStart(), data.ApplyNegCode, data.Custmer.TrimStart(), data.Remarks, detail.DetailReamrk, detail.SYproject.TrimStart(), data.DeptName.TrimStart(), data.CodeTypeName.TrimStart());
  497. }
  498. try
  499. {
  500. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  501. {
  502. }
  503. }
  504. catch (Exception ex)
  505. {
  506. msg = ex.Message;
  507. }
  508. return msg;
  509. }
  510. public DataTable GetICSReturnTemporary(string rfqno)
  511. {
  512. string sql = @"SELECT
  513. a.ID,
  514. a.OutCode,
  515. a.InvCode,
  516. b.InvName,
  517. b.InvStd,
  518. a.Quantity,
  519. a.WHCode,
  520. a.WHCode as WHCodeHHH,
  521. a.EATTRIBUTE6,
  522. a.Quantity
  523. ,f.BatchCode as Batch
  524. ,c.WarehouseName as WHCodeName
  525. ,a.EATTRIBUTE7 as SYprojectHidden
  526. ,a.EATTRIBUTE7 as SYproject
  527. FROM ICSOtherOut a
  528. LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode
  529. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  530. LEFT JOIN dbo.ICSWarehouse c ON a.WHCode=c.WarehouseCode AND a.WorkPoint=c.WorkPoint
  531. where a.OutCode='" + rfqno + "'";
  532. DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  533. DataTable dtCloned = table.Clone();
  534. foreach (DataColumn col in dtCloned.Columns)
  535. {
  536. col.DataType = typeof(string);
  537. }
  538. foreach (DataRow row in table.Rows)
  539. {
  540. DataRow newrow = dtCloned.NewRow();
  541. foreach (DataColumn column in dtCloned.Columns)
  542. {
  543. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  544. }
  545. dtCloned.Rows.Add(newrow);
  546. }
  547. if (Invmes.Rows.Count > 0)
  548. {
  549. dtCloned.Merge(Invmes, false);
  550. }
  551. return dtCloned;
  552. }
  553. // 定义一个类来表示 JSON 数据的结构
  554. public class JsonData
  555. {
  556. public string Dept { get; set; }
  557. public string DeptName { get; set; }
  558. public string CodeType { get; set; }
  559. public string CodeTypeName { get; set; }
  560. public string ApplyNegCode { get; set; }
  561. public string Custmer { get; set; }
  562. public string Remarks { get; set; }
  563. public string Code { get; set; }
  564. public string MTIME { get; set; }
  565. public string User { get; set; }
  566. public List<JsonDetail> Detail { get; set; }
  567. }
  568. public class JsonDetail
  569. {
  570. public string ID;
  571. public int Sequence { get; set; }
  572. public string InvCode { get; set; }
  573. public decimal Quantity { get; set; }
  574. public string WHCode { get; set; }
  575. public string DetailReamrk { get; set; }
  576. public string Batch { get; set; }
  577. public string SYproject { get; set; }
  578. }
  579. #endregion
  580. }
  581. }