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.

5193 lines
289 KiB

3 weeks ago
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  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.Data;
  10. using System.Data.Common;
  11. using System.Linq;
  12. namespace NFine.Application.WMS
  13. {
  14. public class PickMaterialApp : RepositoryFactory<ICSVendor>
  15. {
  16. public static DataTable Invmes = new DataTable();
  17. //工单备料(工单子件)
  18. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  19. {
  20. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  21. DataTable dt = new DataTable();
  22. var queryParam = queryJson.ToJObject();
  23. List<DbParameter> parameter = new List<DbParameter>();
  24. string sql = "";
  25. #region [SQL]
  26. // sql = @"select a.ID,b.MOCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  27. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  28. //from ICSMOPick a
  29. //left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  30. //left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  31. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  32. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  33. // sql += " WHERE 1=1 and e.ID is null";
  34. sql = @"select distinct a.MOCode as Code
  35. ,a.CreateDateTime as MTIME
  36. ,a.createperson as MUSER
  37. ,d.MergeID AS IsNew,
  38. case when k.TransCode is null then '' else '' end as IsOccupy
  39. from ICSMO a
  40. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  41. left join ICSMOPickMerge d on d.SourceID=b.ID and d.WorkPoint=b.WorkPoint
  42. left join (select distinct TransCode
  43. ,TransType
  44. ,WorkPoint
  45. from dbo.ICSWareHouseLotInfoLog
  46. ) k on a.MOCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  47. left join (SELECT a.MOCode
  48. ,case when sum(b.Quantity) <=sum(IssueQuantity) then '' else '' end as Status
  49. from ICSMO a
  50. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  51. WHERE a.WorkPoint='{0}' group by a.MOCode) g on a.MOCode = g.MOCode
  52. where a.MOStatus<>'3' and a.WorkPoint='{0}' and a.ERPStatus<>'3'";
  53. sql = string.Format(sql, WorkPoint);
  54. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  55. #endregion
  56. if (!string.IsNullOrWhiteSpace(queryJson))
  57. {
  58. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  59. {
  60. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  61. }
  62. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  63. {
  64. sql += " and b.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  65. }
  66. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  67. {
  68. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  69. }
  70. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  71. {
  72. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  73. }
  74. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  75. {
  76. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  77. }
  78. if (queryParam["Status"].ToString() == "1")
  79. {
  80. sql+= " AND g.Status='已发料' ";
  81. }
  82. else if (queryParam["Status"].ToString() == "2")
  83. {
  84. sql += " AND g.Status='未发料'";
  85. }
  86. }
  87. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  88. }
  89. public DataTable GetGridJson1(string queryJson, ref Pagination jqgridparam)
  90. {
  91. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  92. DataTable dt = new DataTable();
  93. var queryParam = queryJson.ToJObject();
  94. List<DbParameter> parameter = new List<DbParameter>();
  95. string sql = "";
  96. #region [SQL]
  97. // sql = @"select a.ID,b.MOCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  98. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  99. //from ICSMOPick a
  100. //left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint
  101. //left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  102. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  103. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  104. // sql += " WHERE 1=1 and e.ID is null";
  105. sql = @"select distinct a.MOCode as Code
  106. ,a.CreateDateTime as MTIME
  107. ,a.createperson as MUSER
  108. ,d.MergeID AS IsNew,
  109. case when k.TransCode is null then '' else '' end as IsOccupy
  110. from ICSMO a
  111. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  112. left join ICSMOPickMerge d on d.SourceID=b.ID and d.WorkPoint=b.WorkPoint
  113. left join (select distinct TransCode
  114. ,TransType
  115. ,WorkPoint
  116. from dbo.ICSWareHouseLotInfoLog
  117. ) k on a.MOCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  118. left join (SELECT a.MOCode
  119. ,case when sum(b.Quantity) <=sum(IssueQuantity) then '' else '' end as Status
  120. from ICSMO a
  121. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  122. WHERE a.WorkPoint='{0}' group by a.MOCode) g on a.MOCode = g.MOCode
  123. where a.MOStatus<>'3' and a.WorkPoint='{0}' and a.ERPStatus<>'3'";
  124. sql = string.Format(sql, WorkPoint);
  125. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  126. #endregion
  127. if (!string.IsNullOrWhiteSpace(queryJson))
  128. {
  129. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  130. {
  131. List<String> poCodeList = queryParam["POCode"].ToString().Replace(',', ',').Split(',').ToList();
  132. string poCodes = string.Empty;
  133. poCodeList.ForEach(pocede =>
  134. {
  135. poCodes += $"'{pocede.Trim()}',";
  136. });
  137. sql += " and a.MOCode in (" + poCodes.TrimEnd(',') + ") ";
  138. }
  139. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  140. {
  141. sql += " and b.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  142. }
  143. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  144. {
  145. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  146. }
  147. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  148. {
  149. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  150. }
  151. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  152. {
  153. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  154. }
  155. if (queryParam["Status"].ToString() == "1")
  156. {
  157. sql += " AND g.Status='已发料' ";
  158. }
  159. else if (queryParam["Status"].ToString() == "2")
  160. {
  161. sql += " AND g.Status='未发料'";
  162. }
  163. }
  164. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  165. }
  166. //工单备料(工单子件)子表查询
  167. public DataTable GetSubGridJson1(string Code, string Mechanism,string InvCode, ref Pagination jqgridparam)
  168. {
  169. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  170. DataTable dt = new DataTable();
  171. //var queryParam = queryJson.ToJObject();
  172. List<DbParameter> parameter = new List<DbParameter>();
  173. string sql = @" select a.ID,b.MOCode as Code,a.Sequence+'-'+b.Sequence AS Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  174. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  175. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  176. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  177. from ICSMOPick a
  178. left join ICSMO b on a.MODetailID=b.MODetailID and a.WorkPoint=b.WorkPoint and b.MOStatus<>'3'
  179. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  180. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  181. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  182. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  183. where b.MOCode='{0}' and a.WorkPoint='{1}' and ISnull(a.EATTRIBUTE1,'')<>'1' ";
  184. if (!string.IsNullOrWhiteSpace(Mechanism))
  185. {
  186. sql += " and a.EATTRIBUTE2 = '" + Mechanism + "' ";
  187. }
  188. if (!string.IsNullOrWhiteSpace(InvCode))
  189. {
  190. sql += " and a.InvCode = '" + InvCode + "' ";
  191. }
  192. sql = string.Format(sql, Code, WorkPoint);
  193. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  194. }
  195. //工单领料(发料申请)
  196. public DataTable GetGridJson2(string queryJson, ref Pagination jqgridparam)
  197. {
  198. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  199. DataTable dt = new DataTable();
  200. var queryParam = queryJson.ToJObject();
  201. List<DbParameter> parameter = new List<DbParameter>();
  202. string sql = "";
  203. #region [SQL]
  204. // select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  205. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  206. // from ICSMOApply a
  207. // left join ICSWarehouse b on a.WHCode = b.WarehouseCode and a.WorkPoint = b.WorkPoint
  208. // left join ICSInventory d on a.InvCode = d.InvCode and a.WorkPoint = d.WorkPoint
  209. // left join ICSMOPickMerge e on a.ID = e.SourceID and a.WorkPoint = e.WorkPoint
  210. sql = @"select distinct a.ApplyCode as Code
  211. ,a.CreateDateTime as MTIME
  212. ,a.createperson as MUSER
  213. ,e.MergeID AS IsNew
  214. ,case when k.TransCode is null then '' else '' end as IsOccupy
  215. from ICSMOApply a
  216. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  217. left join (select distinct TransCode
  218. ,TransType
  219. ,WorkPoint
  220. from dbo.ICSWareHouseLotInfoLog
  221. ) k on a.ApplyCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  222. left join (SELECT ApplyCode,case when sum(Quantity) <=sum(IssueQuantity) then ''else '' end as Status
  223. from ICSMOApply
  224. where WorkPoint='{0}' group by ApplyCode,MUSERName
  225. ) g on a.ApplyCode = g.ApplyCode
  226. where a.WorkPoint='{0}' and a.Status!=3 ";
  227. sql = string.Format(sql, WorkPoint);
  228. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  229. #endregion
  230. if (!string.IsNullOrWhiteSpace(queryJson))
  231. {
  232. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  233. {
  234. sql += " and a.ApplyCode like '%" + queryParam["POCode"].ToString() + "%' ";
  235. }
  236. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  237. {
  238. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  239. }
  240. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  241. {
  242. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  243. }
  244. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  245. {
  246. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  247. }
  248. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  249. {
  250. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  251. }
  252. if (queryParam["Status"].ToString() == "1")
  253. {
  254. sql += " AND g.Status='已发料' ";
  255. }
  256. else if (queryParam["Status"].ToString() == "2")
  257. {
  258. sql += " AND g.Status='未发料'";
  259. }
  260. }
  261. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  262. }
  263. //工单领料(发料申请)子表查询
  264. public DataTable GetSubGridJson2(string Code,string InvCode, ref Pagination jqgridparam)
  265. {
  266. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  267. DataTable dt = new DataTable();
  268. //var queryParam = queryJson.ToJObject();
  269. List<DbParameter> parameter = new List<DbParameter>();
  270. string sql = @"select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  271. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  272. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  273. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  274. from ICSMOApply a
  275. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  276. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  277. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  278. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  279. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  280. if (!string.IsNullOrWhiteSpace(InvCode))
  281. {
  282. sql += " and a.InvCode = '" + InvCode + "' ";
  283. }
  284. sql = string.Format(sql, Code, WorkPoint);
  285. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  286. }
  287. //工单材料出库(材料出库)
  288. public DataTable GetGridJson3(string queryJson, ref Pagination jqgridparam)
  289. {
  290. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  291. DataTable dt = new DataTable();
  292. var queryParam = queryJson.ToJObject();
  293. List<DbParameter> parameter = new List<DbParameter>();
  294. string sql = "";
  295. #region [SQL]
  296. // sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  297. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  298. // from ICSMOIssue a
  299. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  300. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  301. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint ";
  302. // sql += " WHERE 1=1 and e.ID is null";
  303. sql = @"select distinct a.IssueCode as Code
  304. ,a.CreateDateTime as MTIME
  305. ,a.createperson as MUSER
  306. ,e.MergeID AS IsNew
  307. ,case when k.TransCode is null then '' else '' end as IsOccupy
  308. from ICSMOIssue a
  309. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  310. left join (select distinct TransCode
  311. ,TransType
  312. ,WorkPoint
  313. from dbo.ICSWareHouseLotInfoLog
  314. ) k on a.IssueCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  315. left join (SELECT IssueCode,case when sum(Quantity) <=sum(IssueQuantity) then ''else '' end as Status
  316. from ICSMOIssue
  317. where WorkPoint='{0}' group by IssueCode,MUSERName
  318. ) g on a.IssueCode = g.IssueCode
  319. where a.WorkPoint='{0}'";
  320. sql = string.Format(sql, WorkPoint);
  321. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  322. #endregion
  323. if (!string.IsNullOrWhiteSpace(queryJson))
  324. {
  325. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  326. {
  327. sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
  328. }
  329. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  330. {
  331. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  332. }
  333. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  334. {
  335. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  336. }
  337. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  338. {
  339. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  340. }
  341. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  342. {
  343. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  344. }
  345. if (queryParam["Status"].ToString() == "1")
  346. {
  347. sql += " AND g.Status='已发料' ";
  348. }
  349. else if (queryParam["Status"].ToString() == "2")
  350. {
  351. sql += " AND g.Status='未发料'";
  352. }
  353. }
  354. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  355. {
  356. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  357. }
  358. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  359. }
  360. //工单材料出库(材料出库)子表查询
  361. public DataTable GetSubGridJson3(string Code, string InvCode, ref Pagination jqgridparam)
  362. {
  363. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  364. DataTable dt = new DataTable();
  365. //var queryParam = queryJson.ToJObject();
  366. List<DbParameter> parameter = new List<DbParameter>();
  367. string sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  368. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  369. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  370. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  371. from ICSMOIssue a
  372. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  373. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  374. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  375. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  376. where a.IssueCode='{0}' and a.WorkPoint='{1}'";
  377. if (!string.IsNullOrWhiteSpace(InvCode))
  378. {
  379. sql += " and a.InvCode = '" + InvCode + "' ";
  380. }
  381. sql = string.Format(sql, Code, WorkPoint);
  382. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  383. }
  384. //委外备料(委外备料)
  385. public DataTable GetGridJson4(string queryJson, ref Pagination jqgridparam)
  386. {
  387. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  388. DataTable dt = new DataTable();
  389. var queryParam = queryJson.ToJObject();
  390. List<DbParameter> parameter = new List<DbParameter>();
  391. string sql = "";
  392. #region [SQL]
  393. sql = @"select distinct b.OOCode as Code
  394. ,b.CreateDateTime as MTIME
  395. ,b.CreatePerson as MUSER
  396. ,e.MergeID AS IsNew
  397. ,case when k.TransCode is null then '' else '' end as IsOccupy
  398. from ICSOOPick a
  399. inner join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  400. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  401. left join (select distinct TransCode
  402. ,TransType
  403. ,WorkPoint
  404. from dbo.ICSWareHouseLotInfoLog
  405. ) k on b.OOCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  406. left join (SELECT b.OOCode,case when sum(a.Quantity) <=sum(a.IssueQuantity) then ''else '' end as Status
  407. from ICSOOPick a
  408. inner join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  409. where a.WorkPoint='{0}' group by OOCode
  410. ) g on b.OOCode = g.OOCode
  411. WHERE b.WorkPoint='{0}'";
  412. sql = string.Format(sql, WorkPoint);
  413. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  414. #endregion
  415. if (!string.IsNullOrWhiteSpace(queryJson))
  416. {
  417. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  418. {
  419. sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  420. }
  421. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  422. {
  423. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  424. }
  425. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  426. {
  427. sql += " and b.CreatePerson like '%" + queryParam["User"].ToString() + "%' ";
  428. }
  429. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  430. {
  431. sql += " and convert(nvarchar(20),b.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  432. }
  433. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  434. {
  435. sql += " and convert(nvarchar(20),b.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  436. }
  437. if (queryParam["Status"].ToString() == "1")
  438. {
  439. sql += " AND g.Status='已发料' ";
  440. }
  441. else if (queryParam["Status"].ToString() == "2")
  442. {
  443. sql += " AND g.Status='未发料'";
  444. }
  445. }
  446. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  447. {
  448. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  449. }
  450. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  451. }
  452. //委外备料(委外备料)子表查询
  453. public DataTable GetSubGridJson4(string Code, string InvCode, ref Pagination jqgridparam)
  454. {
  455. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  456. DataTable dt = new DataTable();
  457. //var queryParam = queryJson.ToJObject();
  458. List<DbParameter> parameter = new List<DbParameter>();
  459. string sql = @"select a.ID,b.OOCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,c.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  460. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  461. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  462. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  463. from ICSOOPick a
  464. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  465. left join ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=c.WorkPoint
  466. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  467. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  468. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  469. where b.OOCode='{0}' and b.WorkPoint='{1}'";
  470. if (!string.IsNullOrWhiteSpace(InvCode))
  471. {
  472. sql += " and a.InvCode = '" + InvCode + "' ";
  473. }
  474. sql = string.Format(sql, Code, WorkPoint);
  475. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  476. }
  477. //委外领料(委外发料申请)
  478. public DataTable GetGridJson5(string queryJson, ref Pagination jqgridparam)
  479. {
  480. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  481. DataTable dt = new DataTable();
  482. var queryParam = queryJson.ToJObject();
  483. List<DbParameter> parameter = new List<DbParameter>();
  484. string sql = "";
  485. #region [SQL]
  486. // sql = @"select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  487. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  488. // from ICSOApply a
  489. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  490. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  491. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  492. // sql += " WHERE 1=1 and e.ID is null";
  493. sql = @"select distinct a.ApplyCode as Code
  494. , a.CreateDateTime as MTIME
  495. ,a.CreatePerson as MUSER
  496. ,e.MergeID AS IsNew
  497. ,case when k.TransCode is null then '' else '' end as IsOccupy
  498. from ICSOApply a
  499. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  500. left join (select distinct TransCode
  501. ,TransType
  502. ,WorkPoint
  503. from dbo.ICSWareHouseLotInfoLog
  504. ) k on a.ApplyCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  505. left join (SELECT ApplyCode,case when sum(Quantity) <=sum(IssueQuantity) then ''else '' end as Status
  506. from ICSOApply
  507. where WorkPoint='{0}' group by ApplyCode
  508. ) g on a.ApplyCode = g.ApplyCode
  509. where a.WorkPoint='{0}'";
  510. sql = string.Format(sql, WorkPoint);
  511. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  512. #endregion
  513. if (!string.IsNullOrWhiteSpace(queryJson))
  514. {
  515. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  516. {
  517. sql += " and a.ApplyCode like '%" + queryParam["POCode"].ToString() + "%' ";
  518. }
  519. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  520. {
  521. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  522. }
  523. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  524. {
  525. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  526. }
  527. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  528. {
  529. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  530. }
  531. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  532. {
  533. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  534. }
  535. if (queryParam["Status"].ToString() == "1")
  536. {
  537. sql += " AND g.Status='已发料' ";
  538. }
  539. else if (queryParam["Status"].ToString() == "2")
  540. {
  541. sql += " AND g.Status='未发料'";
  542. }
  543. }
  544. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  545. {
  546. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  547. }
  548. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  549. }
  550. //委外领料(委外发料申请)子表查询
  551. public DataTable GetSubGridJson5(string Code, string InvCode, ref Pagination jqgridparam)
  552. {
  553. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  554. DataTable dt = new DataTable();
  555. //var queryParam = queryJson.ToJObject();
  556. List<DbParameter> parameter = new List<DbParameter>();
  557. string sql = @"select a.ID,a.ApplyCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  558. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  559. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  560. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  561. from ICSOApply a
  562. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  563. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  564. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  565. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  566. where a.ApplyCode='{0}' and a.WorkPoint='{1}'";
  567. if (!string.IsNullOrWhiteSpace(InvCode))
  568. {
  569. sql += " and a.InvCode = '" + InvCode + "' ";
  570. }
  571. sql = string.Format(sql, Code, WorkPoint);
  572. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  573. }
  574. //委外材料出库(委外发料申请)
  575. public DataTable GetGridJson6(string queryJson, ref Pagination jqgridparam)
  576. {
  577. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  578. DataTable dt = new DataTable();
  579. var queryParam = queryJson.ToJObject();
  580. List<DbParameter> parameter = new List<DbParameter>();
  581. string sql = "";
  582. #region [SQL]
  583. // sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseCode,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  584. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  585. // from ICSOIssue a
  586. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  587. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  588. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  589. // sql += " WHERE 1=1 and e.ID is null";
  590. sql = @"select distinct a.IssueCode as Code
  591. , a.CreateDateTime as MTIME
  592. ,a.CreatePerson as MUSER
  593. ,e.MergeID AS IsNew
  594. ,case when k.TransCode is null then '' else '' end as IsOccupy
  595. from ICSOIssue a
  596. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  597. left join (select distinct TransCode
  598. ,TransType
  599. ,WorkPoint
  600. from dbo.ICSWareHouseLotInfoLog
  601. ) k on a.IssueCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  602. left join (SELECT IssueCode,case when sum(Quantity) =sum(IssueQuantity) then ''else '' end as Status
  603. from ICSOIssue
  604. where WorkPoint='{0}' group by IssueCode,MUSERName
  605. ) g on a.IssueCode = g.IssueCode
  606. where a.WorkPoint='{0}'
  607. ";
  608. sql = string.Format(sql, WorkPoint);
  609. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  610. #endregion
  611. if (!string.IsNullOrWhiteSpace(queryJson))
  612. {
  613. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  614. {
  615. sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
  616. }
  617. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  618. {
  619. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  620. }
  621. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  622. {
  623. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  624. }
  625. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  626. {
  627. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  628. }
  629. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  630. {
  631. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  632. }
  633. if (queryParam["Status"].ToString() == "1")
  634. {
  635. sql += " AND g.Status='已发料' ";
  636. }
  637. else if (queryParam["Status"].ToString() == "2")
  638. {
  639. sql += " AND g.Status='未发料'";
  640. }
  641. }
  642. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  643. {
  644. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  645. }
  646. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  647. }
  648. //委外材料出库(委外发料申请)子表查询
  649. public DataTable GetSubGridJson6(string Code, string InvCode, ref Pagination jqgridparam)
  650. {
  651. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  652. DataTable dt = new DataTable();
  653. //var queryParam = queryJson.ToJObject();
  654. List<DbParameter> parameter = new List<DbParameter>();
  655. string sql = @"select a.ID,a.IssueCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseCode,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  656. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  657. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  658. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  659. from ICSOIssue a
  660. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  661. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  662. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  663. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  664. where a.IssueCode='{0}' and b.WorkPoint='{1}'";
  665. if (!string.IsNullOrWhiteSpace(InvCode))
  666. {
  667. sql += " and a.InvCode = '" + InvCode + "' ";
  668. }
  669. sql = string.Format(sql, Code, WorkPoint);
  670. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  671. }
  672. //销售发货(销售发货)
  673. public DataTable GetGridJson7(string queryJson, ref Pagination jqgridparam)
  674. {
  675. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  676. DataTable dt = new DataTable();
  677. var queryParam = queryJson.ToJObject();
  678. List<DbParameter> parameter = new List<DbParameter>();
  679. string sql = "";
  680. #region [SQL]
  681. // sql = @"select a.ID,a.SDNCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  682. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  683. // from ICSSDN a
  684. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  685. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  686. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  687. // sql += " WHERE 1=1 and a.Type='1' and e.ID is null";
  688. sql = @"select distinct a.SDNCode as Code
  689. ,a.CreateDateTime as MTIME
  690. ,a.CreatePerson as MUSER
  691. ,e.MergeID AS IsNew
  692. ,case when k.TransCode is null then '' else '' end as IsOccupy
  693. from ICSSDN a
  694. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  695. left join (select distinct TransCode
  696. ,TransType
  697. ,WorkPoint
  698. from dbo.ICSWareHouseLotInfoLog
  699. ) k on a.SDNCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  700. left join (SELECT SDNCode,case when sum(Quantity) <=sum(SDNQuantity) then ''else '' end as Status
  701. from ICSSDN
  702. where WorkPoint='{0}' group by SDNCode
  703. ) g on a.SDNCode = g.SDNCode
  704. where a.WorkPoint='{0}' and a.Type='1'";
  705. sql = string.Format(sql, WorkPoint);
  706. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  707. #endregion
  708. if (!string.IsNullOrWhiteSpace(queryJson))
  709. {
  710. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  711. {
  712. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  713. }
  714. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  715. {
  716. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  717. }
  718. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  719. {
  720. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  721. }
  722. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  723. {
  724. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  725. }
  726. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  727. {
  728. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  729. }
  730. if (queryParam["Status"].ToString() == "1")
  731. {
  732. sql += " AND g.Status='已发料' ";
  733. }
  734. else if (queryParam["Status"].ToString() == "2")
  735. {
  736. sql += " AND g.Status='未发料'";
  737. }
  738. }
  739. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  740. {
  741. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  742. }
  743. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  744. }
  745. //销售发货(销售发货)子表查询
  746. public DataTable GetSubGridJson7(string Code, string InvCode, ref Pagination jqgridparam)
  747. {
  748. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  749. DataTable dt = new DataTable();
  750. //var queryParam = queryJson.ToJObject();
  751. List<DbParameter> parameter = new List<DbParameter>();
  752. string sql = @"select a.ID,a.SDNCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  753. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  754. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  755. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.SDNQuantity as IssueQuantity
  756. from ICSSDN a
  757. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  758. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  759. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  760. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  761. where a.SDNCode='{0}' and a.WorkPoint='{1}'";
  762. if (!string.IsNullOrWhiteSpace(InvCode))
  763. {
  764. sql += " and a.InvCode = '" + InvCode + "' ";
  765. }
  766. sql = string.Format(sql, Code, WorkPoint);
  767. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  768. }
  769. //其它出库(其它出库)
  770. public DataTable GetGridJson8(string queryJson, ref Pagination jqgridparam)
  771. {
  772. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  773. DataTable dt = new DataTable();
  774. var queryParam = queryJson.ToJObject();
  775. List<DbParameter> parameter = new List<DbParameter>();
  776. string sql = "";
  777. #region [SQL]
  778. // sql = @"select a.ID,a.OutCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  779. //case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  780. //from ICSOtherOut a
  781. //left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  782. //left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  783. //left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  784. // sql += " WHERE 1=1 and e.ID is null ";
  785. sql = @"select distinct a.OutCode as Code
  786. , a.CreateDateTime as MTIME
  787. ,a.CreatePerson as MUSER
  788. ,e.MergeID AS IsNew
  789. ,case when k.TransCode is null then '' else '' end as IsOccupy
  790. from ICSOtherOut a
  791. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  792. left join (select distinct TransCode
  793. ,TransType
  794. ,WorkPoint
  795. from dbo.ICSWareHouseLotInfoLog
  796. ) k on a.OutCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  797. left join (SELECT OutCode,case when sum(Quantity) <=sum(OutQuantity) then ''else '' end as Status
  798. from ICSOtherOut
  799. where WorkPoint='{0}' group by OutCode,MUSERName
  800. ) g on a.OutCode = g.OutCode
  801. where a.WorkPoint='{0}'";
  802. sql = string.Format(sql, WorkPoint);
  803. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  804. #endregion
  805. if (!string.IsNullOrWhiteSpace(queryJson))
  806. {
  807. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  808. {
  809. sql += " and a.OutCode like '%" + queryParam["POCode"].ToString() + "%' ";
  810. }
  811. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  812. {
  813. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  814. }
  815. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  816. {
  817. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  818. }
  819. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  820. {
  821. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  822. }
  823. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  824. {
  825. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  826. }
  827. if (queryParam["Status"].ToString() == "1")
  828. {
  829. sql += " AND g.Status='已发料' ";
  830. }
  831. else if (queryParam["Status"].ToString() == "2")
  832. {
  833. sql += " AND g.Status='未发料'";
  834. }
  835. }
  836. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  837. {
  838. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  839. }
  840. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  841. }
  842. //其它出库(其它出库)子表查询
  843. public DataTable GetSubGridJson8(string Code, string InvCode, ref Pagination jqgridparam)
  844. {
  845. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  846. DataTable dt = new DataTable();
  847. //var queryParam = queryJson.ToJObject();
  848. List<DbParameter> parameter = new List<DbParameter>();
  849. string sql = @"select a.ID,a.OutCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  850. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  851. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  852. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  853. from ICSOtherOut a
  854. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  855. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  856. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  857. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  858. where a.OutCode='{0}' and b.WorkPoint='{1}'";
  859. if (!string.IsNullOrWhiteSpace(InvCode))
  860. {
  861. sql += " and a.InvCode = '" + InvCode + "' ";
  862. }
  863. sql = string.Format(sql, Code, WorkPoint);
  864. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  865. }
  866. //借用(借用)
  867. public DataTable GetGridJson9(string queryJson, ref Pagination jqgridparam)
  868. {
  869. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  870. DataTable dt = new DataTable();
  871. var queryParam = queryJson.ToJObject();
  872. List<DbParameter> parameter = new List<DbParameter>();
  873. string sql = "";
  874. #region [SQL]
  875. // sql = @"
  876. //select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  877. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  878. // from ICSBrrow a
  879. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  880. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  881. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  882. // sql += " WHERE 1=1 and e.ID is null ";
  883. sql = @"select distinct a.BrrowCode as Code
  884. , a.CreateDateTime as MTIME
  885. ,a.CreatePerson as MUSER
  886. ,e.MergeID AS IsNew
  887. ,case when k.TransCode is null then '' else '' end as IsOccupy
  888. from ICSBrrow a
  889. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  890. left join (select distinct TransCode
  891. ,TransType
  892. ,WorkPoint
  893. from dbo.ICSWareHouseLotInfoLog
  894. ) k on a.BrrowCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  895. left join (SELECT BrrowCode,case when sum(Quantity) <=sum(BrrowQuantity) then ''else '' end as Status
  896. from ICSBrrow
  897. where WorkPoint='{0}' group by BrrowCode,MUSERName
  898. ) g on a.BrrowCode = g.BrrowCode
  899. where a.WorkPoint='{0}'";
  900. sql = string.Format(sql, WorkPoint);
  901. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  902. #endregion
  903. if (!string.IsNullOrWhiteSpace(queryJson))
  904. {
  905. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  906. {
  907. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  908. }
  909. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  910. {
  911. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  912. }
  913. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  914. {
  915. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  916. }
  917. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  918. {
  919. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  920. }
  921. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  922. {
  923. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  924. }
  925. if (queryParam["Status"].ToString() == "1")
  926. {
  927. sql += " AND g.Status='已发料' ";
  928. }
  929. else if (queryParam["Status"].ToString() == "2")
  930. {
  931. sql += " AND g.Status='未发料'";
  932. }
  933. }
  934. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  935. {
  936. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  937. }
  938. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  939. }
  940. //借用(借用)子表查询
  941. public DataTable GetSubGridJson9(string Code, string InvCode, ref Pagination jqgridparam)
  942. {
  943. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  944. DataTable dt = new DataTable();
  945. //var queryParam = queryJson.ToJObject();
  946. List<DbParameter> parameter = new List<DbParameter>();
  947. string sql = @"select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  948. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  949. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  950. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.BrrowQuantity as IssueQuantity
  951. from ICSBrrow a
  952. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  953. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  954. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  955. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  956. where a.BrrowCode='{0}' and b.WorkPoint='{1}'";
  957. if (!string.IsNullOrWhiteSpace(InvCode))
  958. {
  959. sql += " and a.InvCode = '" + InvCode + "' ";
  960. }
  961. sql = string.Format(sql, Code, WorkPoint);
  962. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  963. }
  964. //物料调拨
  965. public DataTable GetGridJson10(string queryJson, ref Pagination jqgridparam)
  966. {
  967. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  968. DataTable dt = new DataTable();
  969. var queryParam = queryJson.ToJObject();
  970. List<DbParameter> parameter = new List<DbParameter>();
  971. string sql = "";
  972. #region [SQL]
  973. // sql = @"
  974. //select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  975. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  976. // from ICSBrrow a
  977. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  978. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  979. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  980. // sql += " WHERE 1=1 and e.ID is null ";
  981. sql = @"select distinct a.TransferNO as Code
  982. , a.CreateDateTime as MTIME
  983. ,a.CreatePerson as MUSER
  984. ,e.MergeID AS IsNew
  985. ,case when k.TransCode is null then '' else '' end as IsOccupy
  986. from ICSTransfer a
  987. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  988. left join (select distinct TransCode
  989. ,TransType
  990. ,WorkPoint
  991. from dbo.ICSWareHouseLotInfoLog
  992. ) k on a.TransferNO=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  993. left join (SELECT TransferNO,case when sum(Quantity) <=sum(TransferQuantity) then ''else '' end as Status
  994. from ICSTransfer
  995. where WorkPoint='{0}' group by TransferNO,MUSERName
  996. ) g on a.TransferNO = g.TransferNO
  997. where a.WorkPoint='{0}' and a.Status='1'";
  998. sql = string.Format(sql, WorkPoint);
  999. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1000. #endregion
  1001. if (!string.IsNullOrWhiteSpace(queryJson))
  1002. {
  1003. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1004. {
  1005. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  1006. }
  1007. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1008. {
  1009. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1010. }
  1011. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  1012. {
  1013. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  1014. }
  1015. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  1016. {
  1017. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  1018. }
  1019. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  1020. {
  1021. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  1022. }
  1023. if (queryParam["Status"].ToString() == "1")
  1024. {
  1025. sql += " AND g.Status='已发料' ";
  1026. }
  1027. else if (queryParam["Status"].ToString() == "2")
  1028. {
  1029. sql += " AND g.Status='未发料'";
  1030. }
  1031. }
  1032. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1033. {
  1034. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1035. }
  1036. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1037. }
  1038. //物料调拨子表查询
  1039. public DataTable GetSubGridJson10(string Code, string InvCode,string WHCode, ref Pagination jqgridparam)
  1040. {
  1041. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1042. DataTable dt = new DataTable();
  1043. //var queryParam = queryJson.ToJObject();
  1044. List<DbParameter> parameter = new List<DbParameter>();
  1045. string sql = @"select a.ID,a.TransferNO as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.FromWarehouseCode as WHCode,b.WarehouseName
  1046. ,a.ToWarehouseCode as ToWHCode,c.WarehouseName as ToWHName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1047. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1048. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1049. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.TransferQuantity as IssueQuantity
  1050. from ICSTransfer a
  1051. left join ICSWarehouse b on a.FromWarehouseCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1052. left join ICSWarehouse c on c.WarehouseCode=a.ToWarehouseCode and c.WorkPoint=a.WorkPoint
  1053. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1054. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1055. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1056. where a.TransferNO='{0}' and b.WorkPoint='{1}'";
  1057. if (!string.IsNullOrWhiteSpace(InvCode))
  1058. {
  1059. sql += " and a.InvCode = '" + InvCode + "' ";
  1060. }
  1061. if (!string.IsNullOrWhiteSpace(WHCode))
  1062. {
  1063. sql += " and b.WarehouseName like '%" + WHCode + "%' ";
  1064. }
  1065. sql = string.Format(sql, Code, WorkPoint);
  1066. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1067. }
  1068. //两步调拨
  1069. public DataTable GetGridJson11(string queryJson, ref Pagination jqgridparam)
  1070. {
  1071. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1072. DataTable dt = new DataTable();
  1073. var queryParam = queryJson.ToJObject();
  1074. List<DbParameter> parameter = new List<DbParameter>();
  1075. string sql = "";
  1076. #region [SQL]
  1077. // sql = @"
  1078. //select a.ID,a.BrrowCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1079. // case when e.SourceID is null then '未合并' else '已合并' end as IsNew,a.Quantity
  1080. // from ICSBrrow a
  1081. // left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1082. // left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1083. // left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint";
  1084. // sql += " WHERE 1=1 and e.ID is null ";
  1085. sql = @"select distinct a.OutCode as Code
  1086. , a.CreateDateTime as MTIME
  1087. ,a.CreatePerson as MUSER
  1088. ,e.MergeID AS IsNew
  1089. ,case when k.TransCode is null then '' else '' end as IsOccupy
  1090. FROM ICSOtherOut a
  1091. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1092. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1093. left join (select distinct TransCode
  1094. ,TransType
  1095. ,WorkPoint
  1096. from dbo.ICSWareHouseLotInfoLog
  1097. ) k on a.OutCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  1098. left join (SELECT OutCode,case when sum(Quantity) <=sum(OutQuantity) then ''else '' end as Status
  1099. from ICSOtherOut
  1100. where WorkPoint='{0}' group by OutCode,MUSERName
  1101. ) g on a.OutCode = g.OutCode
  1102. where a.WorkPoint='{0}' and a.Status='2'";
  1103. sql = string.Format(sql, WorkPoint);
  1104. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1105. #endregion
  1106. if (!string.IsNullOrWhiteSpace(queryJson))
  1107. {
  1108. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1109. {
  1110. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1111. }
  1112. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1113. {
  1114. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1115. }
  1116. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  1117. {
  1118. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  1119. }
  1120. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  1121. {
  1122. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  1123. }
  1124. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  1125. {
  1126. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  1127. }
  1128. }
  1129. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1130. {
  1131. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1132. }
  1133. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1134. }
  1135. //两步调拨子表查询
  1136. public DataTable GetSubGridJson11(string Code, string InvCode, ref Pagination jqgridparam)
  1137. {
  1138. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1139. DataTable dt = new DataTable();
  1140. //var queryParam = queryJson.ToJObject();
  1141. List<DbParameter> parameter = new List<DbParameter>();
  1142. string sql = @" select a.ID,a.OutCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1143. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1144. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1145. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.OutQuantity as IssueQuantity
  1146. FROM ICSOtherOut a
  1147. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1148. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1149. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1150. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1151. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1152. where a.OutCode='{0}' and b.WorkPoint='{1}'";
  1153. if (!string.IsNullOrWhiteSpace(InvCode))
  1154. {
  1155. sql += " and a.InvCode = '" + InvCode + "' ";
  1156. }
  1157. sql = string.Format(sql, Code, WorkPoint);
  1158. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1159. }
  1160. //采购退货
  1161. public DataTable GetGridJson13(string queryJson, ref Pagination jqgridparam)
  1162. {
  1163. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1164. DataTable dt = new DataTable();
  1165. var queryParam = queryJson.ToJObject();
  1166. List<DbParameter> parameter = new List<DbParameter>();
  1167. string sql = "";
  1168. #region [SQL]
  1169. sql = @"select distinct a.DNCode as Code
  1170. , a.CreateDateTime as MTIME
  1171. ,a.CreatePerson as MUSER
  1172. ,e.MergeID AS IsNew
  1173. ,case when k.TransCode is null then '' else '' end as IsOccupy
  1174. from ICSDeliveryNotice a
  1175. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1176. left join (select distinct TransCode
  1177. ,TransType
  1178. ,WorkPoint
  1179. from dbo.ICSWareHouseLotInfoLog
  1180. ) k on a.DNCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  1181. left join (SELECT DNCode,case when sum(Quantity) <=sum(RCVQuantity) then ''else '' end as Status
  1182. from ICSDeliveryNotice
  1183. where WorkPoint='{0}' AND DNType='2' group by DNCode,MUSERName
  1184. ) g on a.DNCode = g.DNCode
  1185. where a.WorkPoint='{0}' AND a.DNType='2'";
  1186. sql = string.Format(sql, WorkPoint);
  1187. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1188. #endregion
  1189. if (!string.IsNullOrWhiteSpace(queryJson))
  1190. {
  1191. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1192. {
  1193. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1194. }
  1195. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1196. {
  1197. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1198. }
  1199. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  1200. {
  1201. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  1202. }
  1203. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  1204. {
  1205. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  1206. }
  1207. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  1208. {
  1209. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  1210. }
  1211. if (queryParam["Status"].ToString() == "1")
  1212. {
  1213. sql += " AND g.Status='已发料' ";
  1214. }
  1215. else if (queryParam["Status"].ToString() == "2")
  1216. {
  1217. sql += " AND g.Status='未发料'";
  1218. }
  1219. }
  1220. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1221. {
  1222. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1223. }
  1224. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1225. }
  1226. //采购退货子表查询
  1227. public DataTable GetSubGridJson13(string Code, string InvCode, ref Pagination jqgridparam)
  1228. {
  1229. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1230. DataTable dt = new DataTable();
  1231. //var queryParam = queryJson.ToJObject();
  1232. List<DbParameter> parameter = new List<DbParameter>();
  1233. string sql = @" select a.ID,a.DNCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1234. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1235. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1236. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.RCVQuantity as IssueQuantity
  1237. from ICSDeliveryNotice a
  1238. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1239. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1240. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1241. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1242. where a.DNCode='{0}' and b.WorkPoint='{1}' ";
  1243. if (!string.IsNullOrWhiteSpace(InvCode))
  1244. {
  1245. sql += " and a.InvCode = '" + InvCode + "' ";
  1246. }
  1247. sql = string.Format(sql, Code, WorkPoint);
  1248. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1249. }
  1250. //采购退货---红字入库单
  1251. public DataTable GetGridJson14(string queryJson, ref Pagination jqgridparam)
  1252. {
  1253. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1254. DataTable dt = new DataTable();
  1255. var queryParam = queryJson.ToJObject();
  1256. List<DbParameter> parameter = new List<DbParameter>();
  1257. string sql = "";
  1258. #region [SQL]
  1259. sql = @"select distinct a.RCVCode as Code
  1260. , a.CreateDateTime as MTIME
  1261. ,a.CreatePerson as MUSER
  1262. ,e.MergeID AS IsNew
  1263. ,case when k.TransCode is null then '' else '' end as IsOccupy
  1264. from ICSPurchaseReceive a
  1265. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1266. left join (select distinct TransCode
  1267. ,TransType
  1268. ,WorkPoint
  1269. from dbo.ICSWareHouseLotInfoLog
  1270. ) k on a.RCVCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  1271. left join (SELECT RCVCode,case when sum(Quantity) <=sum(RCVQuantity) then ''else '' end as Status
  1272. from ICSPurchaseReceive
  1273. where WorkPoint='{0}' AND Type='2' group by RCVCode,MUSERName
  1274. ) g on a.RCVCode = g.RCVCode
  1275. where a.WorkPoint='{0}' AND a.Type='2'";
  1276. sql = string.Format(sql, WorkPoint);
  1277. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1278. #endregion
  1279. if (!string.IsNullOrWhiteSpace(queryJson))
  1280. {
  1281. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1282. {
  1283. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1284. }
  1285. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1286. {
  1287. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1288. }
  1289. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  1290. {
  1291. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  1292. }
  1293. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  1294. {
  1295. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  1296. }
  1297. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  1298. {
  1299. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  1300. }
  1301. if (queryParam["Status"].ToString() == "1")
  1302. {
  1303. sql += " AND g.Status='已发料' ";
  1304. }
  1305. else if (queryParam["Status"].ToString() == "2")
  1306. {
  1307. sql += " AND g.Status='未发料'";
  1308. }
  1309. }
  1310. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1311. {
  1312. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1313. }
  1314. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1315. }
  1316. //采购退货---红字入库单子表查询
  1317. public DataTable GetSubGridJson14(string Code, string InvCode, ref Pagination jqgridparam)
  1318. {
  1319. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1320. DataTable dt = new DataTable();
  1321. //var queryParam = queryJson.ToJObject();
  1322. List<DbParameter> parameter = new List<DbParameter>();
  1323. string sql = @" select a.ID,a.RCVCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1324. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1325. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1326. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.RCVQuantity as IssueQuantity
  1327. from ICSPurchaseReceive a
  1328. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1329. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1330. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1331. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1332. where a.RCVCode='{0}' and b.WorkPoint='{1}' ";
  1333. if (!string.IsNullOrWhiteSpace(InvCode))
  1334. {
  1335. sql += " and a.InvCode = '" + InvCode + "' ";
  1336. }
  1337. sql = string.Format(sql, Code, WorkPoint);
  1338. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1339. }
  1340. //红字其他入库
  1341. public DataTable GetGridJson15(string queryJson, ref Pagination jqgridparam)
  1342. {
  1343. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1344. DataTable dt = new DataTable();
  1345. var queryParam = queryJson.ToJObject();
  1346. List<DbParameter> parameter = new List<DbParameter>();
  1347. string sql = "";
  1348. #region [SQL]
  1349. sql = @"select distinct a.InCode as Code
  1350. , a.CreateDateTime as MTIME
  1351. ,a.CreatePerson as MUSER
  1352. ,e.MergeID AS IsNew
  1353. ,case when k.TransCode is null then '' else '' end as IsOccupy
  1354. FROM ICSOtherIn a
  1355. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1356. left join (select distinct TransCode
  1357. ,TransType
  1358. ,WorkPoint
  1359. from dbo.ICSWareHouseLotInfoLog
  1360. ) k on a.InCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  1361. left join (SELECT InCode,case when sum(Quantity) <=sum(InQuantity) then ''else '' end as Status
  1362. from ICSOtherIn
  1363. where WorkPoint='{0}' group by InCode,MUSERName
  1364. ) g on a.InCode = g.InCode
  1365. where a.WorkPoint='{0}' and a.Status='1' and a.EATTRIBUTE2='2'";
  1366. sql = string.Format(sql, WorkPoint);
  1367. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1368. #endregion
  1369. if (!string.IsNullOrWhiteSpace(queryJson))
  1370. {
  1371. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1372. {
  1373. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1374. }
  1375. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1376. {
  1377. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1378. }
  1379. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  1380. {
  1381. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  1382. }
  1383. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  1384. {
  1385. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  1386. }
  1387. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  1388. {
  1389. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  1390. }
  1391. }
  1392. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1393. {
  1394. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1395. }
  1396. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1397. }
  1398. //红字其他入库子表
  1399. public DataTable GetSubGridJson15(string Code, string InvCode, ref Pagination jqgridparam)
  1400. {
  1401. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1402. DataTable dt = new DataTable();
  1403. //var queryParam = queryJson.ToJObject();
  1404. List<DbParameter> parameter = new List<DbParameter>();
  1405. string sql = @" select a.ID,a.InCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1406. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1407. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1408. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.InQuantity as IssueQuantity
  1409. FROM ICSOtherIn a
  1410. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1411. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1412. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1413. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1414. where a.InCode='{0}' and b.WorkPoint='{1}' and a.EATTRIBUTE2='2'";
  1415. if (!string.IsNullOrWhiteSpace(InvCode))
  1416. {
  1417. sql += " and a.InvCode = '" + InvCode + "' ";
  1418. }
  1419. sql = string.Format(sql, Code, WorkPoint);
  1420. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1421. }
  1422. //销售出库单
  1423. public DataTable GetGridJson16(string queryJson, ref Pagination jqgridparam)
  1424. {
  1425. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1426. DataTable dt = new DataTable();
  1427. var queryParam = queryJson.ToJObject();
  1428. List<DbParameter> parameter = new List<DbParameter>();
  1429. string sql = "";
  1430. #region [SQL]
  1431. sql = @"select distinct a.SSDCode as Code
  1432. , a.CreateDateTime as MTIME
  1433. ,a.CreatePerson as MUSER
  1434. ,e.MergeID AS IsNew
  1435. ,case when k.TransCode is null then '' else '' end as IsOccupy
  1436. FROM ICSSSD a
  1437. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1438. left join (select distinct TransCode
  1439. ,TransType
  1440. ,WorkPoint
  1441. from dbo.ICSWareHouseLotInfoLog
  1442. ) k on a.SSDCode = k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  1443. left join (SELECT SSDCode,case when sum(Quantity) <=sum(SSDQuantity) then ''else '' end as Status
  1444. from ICSSSD
  1445. where WorkPoint='{0}' and Type = '1' group by SSDCode,MUSERName
  1446. ) g on a.SSDCode = g.SSDCode
  1447. where a.WorkPoint='{0}' and a.Status='1' and a.Type = '1'";
  1448. sql = string.Format(sql, WorkPoint);
  1449. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  1450. #endregion
  1451. if (!string.IsNullOrWhiteSpace(queryJson))
  1452. {
  1453. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1454. {
  1455. sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1456. }
  1457. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1458. {
  1459. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1460. }
  1461. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  1462. {
  1463. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  1464. }
  1465. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  1466. {
  1467. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  1468. }
  1469. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  1470. {
  1471. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  1472. }
  1473. }
  1474. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1475. {
  1476. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1477. }
  1478. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1479. }
  1480. //销售出库单子表
  1481. public DataTable GetSubGridJson16(string Code, string InvCode, ref Pagination jqgridparam)
  1482. {
  1483. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1484. DataTable dt = new DataTable();
  1485. //var queryParam = queryJson.ToJObject();
  1486. List<DbParameter> parameter = new List<DbParameter>();
  1487. string sql = @" select a.ID,a.SSDCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode ,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  1488. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  1489. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1490. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.SSDQuantity as IssueQuantity
  1491. FROM ICSSSD a
  1492. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  1493. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1494. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  1495. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1496. where a.SSDCode='{0}' and b.WorkPoint='{1}' and a.Type = '1' ";
  1497. if (!string.IsNullOrWhiteSpace(InvCode))
  1498. {
  1499. sql += " and a.InvCode = '" + InvCode + "' ";
  1500. }
  1501. sql = string.Format(sql, Code, WorkPoint);
  1502. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1503. }
  1504. #region 拣料旧逻辑
  1505. // public DataTable GetICSMOPickMergeTemp(string ID, string Type)
  1506. // {
  1507. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1508. // #region sql
  1509. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1510. // c.Code,
  1511. // c.InvCode,
  1512. // c.InvName,
  1513. // c.InvStd,
  1514. //c.InvUnit,
  1515. // FLOOR(c.iQuantity) AS iQuantity,
  1516. // d.WarehouseCode,
  1517. // d.LocationCode,
  1518. // d.LotNO,
  1519. // FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1520. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1521. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  1522. // FROM
  1523. // ({0}) c
  1524. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND ((LEN(ISNULL(c.WHCode,''))<=0) OR (LEN(ISNULL(c.WHCode,''))>0) AND c.WhCode=d.WarehouseCode) AND d.WorkPoint='{1}' AND d.Quantity>0
  1525. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  1526. // LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  1527. //DECLARE @ItemCode VARCHAR(50),
  1528. // @QTY DECIMAL(18,3),
  1529. // @ItemCodeCurrent VARCHAR(50),
  1530. // @QTYCurrent DECIMAL(18,3),
  1531. // @iQuantityCurrent DECIMAL(18,3),
  1532. // @CanDelete BIT,
  1533. // @Row INT,
  1534. // @rowCurrent INT
  1535. //SET @Row = @@rowcount
  1536. //SET @rowCurrent=1
  1537. //SET @CanDelete=0
  1538. //SET @ItemCode=''
  1539. //WHILE @rowCurrent<=@Row
  1540. // BEGIN
  1541. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  1542. //PRINT(@rowCurrent)
  1543. // IF @ItemCode<>@ItemCodeCurrent
  1544. // BEGIN
  1545. // SET @ItemCode=@ItemCodeCurrent
  1546. // SET @QTY=0
  1547. // SET @CanDelete=0
  1548. // END
  1549. // IF @CanDelete=1
  1550. // BEGIN
  1551. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  1552. // SET @rowCurrent += 1
  1553. // CONTINUE
  1554. // END
  1555. // SET @QTY += @QTYCurrent
  1556. // IF @QTY>=@iQuantityCurrent
  1557. // BEGIN
  1558. // SET @CanDelete=1
  1559. // END
  1560. // SET @rowCurrent += 1
  1561. // END
  1562. //SELECT * FROM #temp
  1563. //DROP TABLE #temp
  1564. //";
  1565. // #endregion
  1566. // string sqls = "";
  1567. // if (Type == "1")
  1568. // {
  1569. // #region 工单备料sql
  1570. // sqls = @" SELECT
  1571. // c.MOCode as Code,
  1572. // a.InvCode,
  1573. // b.InvName,
  1574. // b.InvStd,
  1575. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1576. // a.WhCode,
  1577. //b.InvUnit,
  1578. // a.ExtensionID
  1579. // FROM
  1580. // ICSMOPick a
  1581. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  1582. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1583. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  1584. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1585. // #endregion
  1586. // }
  1587. // if (Type == "2")
  1588. // {
  1589. // #region 工单领料SQL
  1590. // sqls = @" select
  1591. // a.ApplyCode as Code,
  1592. // a.InvCode,
  1593. // b.InvName,
  1594. // b.InvStd,
  1595. //b.InvUnit,
  1596. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1597. // a.WhCode,
  1598. // a.ExtensionID
  1599. // FROM
  1600. // ICSMOApply a
  1601. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1602. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1603. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1604. // #endregion
  1605. // }
  1606. // if (Type == "3")
  1607. // {
  1608. // #region 工单材料出库SQL
  1609. // sqls = @" select
  1610. // a.IssueCode as Code,
  1611. // a.InvCode,
  1612. // b.InvName,
  1613. // b.InvStd,
  1614. //b.InvUnit,
  1615. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1616. // a.WhCode,
  1617. // a.ExtensionID
  1618. // FROM
  1619. // ICSMOIssue a
  1620. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1621. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1622. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1623. // #endregion
  1624. // }
  1625. // if (Type == "4")
  1626. // {
  1627. // #region 委外备料SQL
  1628. // sqls = @" select
  1629. // c.OOCode as Code,
  1630. // a.InvCode,
  1631. // b.InvName,
  1632. // b.InvStd,
  1633. //b.InvUnit,
  1634. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1635. // a.WhCode,
  1636. // a.ExtensionID
  1637. // FROM
  1638. // ICSOOPick a
  1639. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  1640. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1641. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  1642. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID";
  1643. // #endregion
  1644. // }
  1645. // if (Type == "5")
  1646. // {
  1647. // #region 委外领料SQL
  1648. // sqls = @" select
  1649. // a.ApplyCode as Code,
  1650. // a.InvCode,
  1651. // b.InvName,
  1652. // b.InvStd,
  1653. //b.InvUnit,
  1654. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1655. // a.WhCode,
  1656. // a.ExtensionID
  1657. // FROM
  1658. // ICSOApply a
  1659. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1660. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  1661. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1662. // #endregion
  1663. // }
  1664. // if (Type == "6")
  1665. // {
  1666. // #region 委外材料出库SQL
  1667. // sqls = @" select
  1668. // a.IssueCode as Code,
  1669. // a.InvCode,
  1670. // b.InvName,
  1671. // b.InvStd,
  1672. //b.InvUnit,
  1673. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1674. // a.WhCode,
  1675. //a.ExtensionID
  1676. // FROM
  1677. // ICSOIssue a
  1678. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1679. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  1680. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1681. // #endregion
  1682. // }
  1683. // if (Type == "7")
  1684. // {
  1685. // #region 销售发货SQL
  1686. // sqls = @" select
  1687. // a.SDNCode as Code,
  1688. // a.InvCode,
  1689. // b.InvName,
  1690. // b.InvStd,
  1691. //b.InvUnit,
  1692. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1693. // a.WhCode,
  1694. //a.ExtensionID
  1695. // FROM
  1696. // ICSSDN a
  1697. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1698. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  1699. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1700. // #endregion
  1701. // }
  1702. // if (Type == "8")
  1703. // {
  1704. // #region 其它出库SQL
  1705. // sqls = @" select
  1706. // a.OutCode as Code,
  1707. // a.InvCode,
  1708. // b.InvName,
  1709. // b.InvStd,
  1710. //b.InvUnit,
  1711. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1712. // a.WhCode,
  1713. //a.ExtensionID
  1714. // FROM
  1715. // ICSOtherOut a
  1716. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1717. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1718. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1719. // #endregion
  1720. // }
  1721. // if (Type == "9")
  1722. // {
  1723. // #region 借用SQL
  1724. // sqls = @"select
  1725. // a.BrrowCode as Code,
  1726. // a.InvCode,
  1727. // b.InvName,
  1728. // b.InvStd,
  1729. //b.InvUnit,
  1730. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1731. // a.WhCode,
  1732. //a.ExtensionID
  1733. // FROM
  1734. // ICSBrrow a
  1735. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1736. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  1737. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID";
  1738. // #endregion
  1739. // }
  1740. // if (Type == "10")
  1741. // {
  1742. // #region 物料调拨
  1743. // sqls = @" select
  1744. // a.TransferNO as Code,
  1745. // a.InvCode,
  1746. // b.InvName,
  1747. // b.InvStd,
  1748. //b.InvUnit,
  1749. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1750. // a.FromWarehouseCode as WhCode,
  1751. //a.ExtensionID
  1752. // FROM
  1753. // ICSTransfer a
  1754. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1755. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  1756. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID";
  1757. // #endregion
  1758. // }
  1759. // if (Type == "11")
  1760. // {
  1761. // #region 两步调出
  1762. // sqls = @"select
  1763. // a.OutCode as Code,
  1764. // a.InvCode,
  1765. // b.InvName,
  1766. // b.InvStd,
  1767. //b.InvUnit,
  1768. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1769. // a.WHCode ,
  1770. //a.ExtensionID
  1771. // from ICSOtherOut a
  1772. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  1773. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  1774. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  1775. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID";
  1776. // #endregion
  1777. // }
  1778. // sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  1779. // sql = string.Format(sql, sqls, WorkPoint);
  1780. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  1781. // DataTable dtCloned = table.Clone();
  1782. // foreach (DataColumn col in dtCloned.Columns)
  1783. // {
  1784. // col.DataType = typeof(string);
  1785. // }
  1786. // foreach (DataRow row in table.Rows)
  1787. // {
  1788. // DataRow newrow = dtCloned.NewRow();
  1789. // foreach (DataColumn column in dtCloned.Columns)
  1790. // {
  1791. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1792. // }
  1793. // dtCloned.Rows.Add(newrow);
  1794. // }
  1795. // if (Invmes.Rows.Count > 0)
  1796. // {
  1797. // dtCloned.Merge(Invmes, false);
  1798. // }
  1799. // return dtCloned;
  1800. // }
  1801. #endregion
  1802. public DataTable GetICSMOPickMergeTemp(string ID, string Type, string Mechanism,string InvCode)
  1803. {
  1804. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1805. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1806. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1807. if (ID == "")
  1808. {
  1809. DataTable dt = new DataTable();
  1810. return dt;
  1811. }
  1812. ID = ID.Replace("'", "''");
  1813. ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  1814. string Code=SqlHelper.GetItemsDetailEnabledMark("MtimeControl");
  1815. string sql = @"EXEC ICSPicking '{0}','{1}','0','{2}'";
  1816. sql = string.Format(sql, ID, Type, WorkPoint);
  1817. var dataset = Repository().FindDataSetBySql(sql);
  1818. if (dataset.Tables[0].Rows.Count == 0)
  1819. return null;
  1820. DataTable table = dataset.Tables[0];
  1821. try
  1822. {
  1823. #region 旧卡控
  1824. //string chksql = "";
  1825. //if (Type == "2" || Type == "12")
  1826. //{
  1827. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSMOApply
  1828. // where ApplyCode in ({0}) and WorkPoint='{1}'
  1829. // GROUP BY InvCode,WHCode";
  1830. //}
  1831. //if (Type == "5")
  1832. //{
  1833. // #region 委外领料SQL
  1834. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSOApply
  1835. // where ApplyCode in ({0}) and WorkPoint='{1}'
  1836. // GROUP BY InvCode,WHCode";
  1837. // #endregion
  1838. //}
  1839. //if (Type == "7")
  1840. //{
  1841. // #region 销售发货SQL
  1842. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSSDN
  1843. // where SDNCode in ({0}) and WorkPoint='{1}'
  1844. // GROUP BY InvCode,WHCode";
  1845. // #endregion
  1846. //}
  1847. //if (Type == "8")
  1848. //{
  1849. // #region 其它出库SQL
  1850. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSOtherOut
  1851. // where OutCode in ({0}) and WorkPoint='{1}'
  1852. // GROUP BY InvCode,WHCode";
  1853. // #endregion
  1854. //}
  1855. //if (Type == "10")
  1856. //{
  1857. // #region 物料调拨
  1858. // chksql = @" select InvCode,FromWarehouseCode AS WHCode,SUM(Quantity) as Quantity from ICSTransfer
  1859. // where TransferNO in ({0}) and WorkPoint='{1}'
  1860. // GROUP BY InvCode,FromWarehouseCode";
  1861. // #endregion
  1862. //}
  1863. //chksql = string.Format(chksql, ID, WorkPoint);
  1864. //var chkdata = Repository().FindDataSetBySql(chksql);
  1865. //DataTable chktable = chkdata.Tables[0];
  1866. //foreach (DataRow chkdr in chktable.Rows)
  1867. //{
  1868. // decimal ZLQty = 0;
  1869. // for (int i = 0; i < table.Rows.Count; i++)
  1870. // {
  1871. // if (table.Rows[i]["WarehouseCode"].ToString() == chkdr["WHCode"].ToString()
  1872. // && table.Rows[i]["InvCode"].ToString() == chkdr["InvCode"].ToString())
  1873. // {
  1874. // ZLQty += Convert.ToDecimal(table.Rows[i]["SendQTY"].ToString());
  1875. // }
  1876. // }
  1877. // if (Convert.ToDecimal(chkdr["Quantity"]) < ZLQty)
  1878. // {
  1879. // throw new Exception("物料:" + chkdr["InvCode"].ToString() + "实际拣料数量大于单据需求数量,请尝试重新拣料。");
  1880. // }
  1881. //}
  1882. #endregion
  1883. DataRow[] dss = table.Select("LotNO=''");
  1884. foreach (var item in dss)
  1885. {
  1886. DataRow[] dsss = table.Select("Code='" + item["Code"].ToString() + "' and Sequence='" + item["Sequence"].ToString() + "' and LotNO <> '' ");
  1887. if (dsss != null && dsss.Length > 0)
  1888. {
  1889. table.Rows.Remove(item);
  1890. }
  1891. }
  1892. var result = ConvertCellToString(table);
  1893. if (Invmes.Rows.Count > 0)
  1894. {
  1895. result.Merge(Invmes, false);
  1896. }
  1897. return result;
  1898. }
  1899. catch (Exception ex)
  1900. {
  1901. throw new Exception(ex.Message);
  1902. }
  1903. }
  1904. public DataTable ConvertCellToString(DataTable data)
  1905. {
  1906. DataTable dtCloned = data.Clone();
  1907. foreach (DataColumn col in dtCloned.Columns)
  1908. {
  1909. col.DataType = typeof(string);
  1910. }
  1911. foreach (DataRow row in data.Rows)
  1912. {
  1913. DataRow newrow = dtCloned.NewRow();
  1914. foreach (DataColumn column in dtCloned.Columns)
  1915. {
  1916. newrow[column.ColumnName] = row[column.ColumnName].ToString();
  1917. }
  1918. dtCloned.Rows.Add(newrow);
  1919. }
  1920. return dtCloned;
  1921. }
  1922. #region 合并拣料旧
  1923. // public DataTable GetICSMOPickMergeTemp2(string ID, string Type)
  1924. // {
  1925. // string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1926. // #region sql
  1927. // string sql = @"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  1928. // c.MergeID,
  1929. // c.Code,
  1930. // c.InvCode,
  1931. // c.InvName,
  1932. // c.InvStd,
  1933. //c.InvUnit,
  1934. // FLOOR(c.iQuantity) AS iQuantity,
  1935. // d.WarehouseCode,
  1936. // d.LocationCode,
  1937. // d.LotNO,
  1938. // FLOOR(ISNULL(d.Quantity, 0)) AS QTY,
  1939. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  1940. // FLOOR(f.QTYTotal) QTYTotal INTO #temp
  1941. // FROM
  1942. // ({0}) c
  1943. // LEFT JOIN ICSWareHouseLotInfo d ON c.InvCode=d.INVCode AND ((LEN(ISNULL(c.WHCode,''))<=0) OR (LEN(ISNULL(c.WHCode,''))>0)) AND c.WhCode=d.WarehouseCode AND d.WorkPoint='{1}' AND d.Quantity>0
  1944. // left join ICSInventoryLot m on d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint and c.ExtensionID=m.ExtensionID
  1945. // LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{1}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  1946. //DECLARE @ItemCode VARCHAR(50),
  1947. // @QTY DECIMAL(18,3),
  1948. // @ItemCodeCurrent VARCHAR(50),
  1949. // @QTYCurrent DECIMAL(18,3),
  1950. // @iQuantityCurrent DECIMAL(18,3),
  1951. // @CanDelete BIT,
  1952. // @Row INT,
  1953. // @rowCurrent INT
  1954. //SET @Row = @@rowcount
  1955. //SET @rowCurrent=1
  1956. //SET @CanDelete=0
  1957. //SET @ItemCode=''
  1958. //WHILE @rowCurrent<=@Row
  1959. // BEGIN
  1960. // SELECT @ItemCodeCurrent=InvCode,@QTYCurrent=QTY,@iQuantityCurrent=iQuantity FROM #temp WHERE rowNo=@rowCurrent
  1961. //PRINT(@rowCurrent)
  1962. // IF @ItemCode<>@ItemCodeCurrent
  1963. // BEGIN
  1964. // SET @ItemCode=@ItemCodeCurrent
  1965. // SET @QTY=0
  1966. // SET @CanDelete=0
  1967. // END
  1968. // IF @CanDelete=1
  1969. // BEGIN
  1970. // DELETE FROM #temp WHERE rowNo=@rowCurrent
  1971. // SET @rowCurrent += 1
  1972. // CONTINUE
  1973. // END
  1974. // SET @QTY += @QTYCurrent
  1975. // IF @QTY>=@iQuantityCurrent
  1976. // BEGIN
  1977. // SET @CanDelete=1
  1978. // END
  1979. // SET @rowCurrent += 1
  1980. // END
  1981. //SELECT * FROM #temp
  1982. //DROP TABLE #temp
  1983. //";
  1984. // #endregion
  1985. // string sqls = "";
  1986. // if (Type == "1")
  1987. // {
  1988. // #region 工单备料sql
  1989. // sqls = @" select
  1990. // x.MergeID,
  1991. // c.MOCode as Code,
  1992. // a.InvCode,
  1993. // b.InvName,
  1994. // b.InvStd,
  1995. //b.InvUnit,
  1996. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  1997. // a.WhCode,
  1998. //a.ExtensionID
  1999. // FROM
  2000. // ICSMOPick a
  2001. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2002. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  2003. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2004. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}'
  2005. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2006. // #endregion
  2007. // }
  2008. // if (Type == "2")
  2009. // {
  2010. // #region 工单领料SQL
  2011. // sqls = @" select
  2012. // x.MergeID,
  2013. // a.ApplyCode as Code,
  2014. // a.InvCode,
  2015. // b.InvName,
  2016. // b.InvStd,
  2017. //b.InvUnit,
  2018. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2019. // a.WhCode,
  2020. // a.ExtensionID
  2021. // FROM
  2022. // ICSMOApply a
  2023. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2024. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2025. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2026. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID";
  2027. // #endregion
  2028. // }
  2029. // if (Type == "3")
  2030. // {
  2031. // #region 工单材料出库SQL
  2032. // sqls = @" select
  2033. // x.MergeID,
  2034. // a.IssueCode as Code,
  2035. // a.InvCode,
  2036. // b.InvName,
  2037. // b.InvStd,
  2038. //b.InvUnit,
  2039. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2040. // a.WhCode,
  2041. //a.ExtensionID
  2042. // FROM
  2043. // ICSMOIssue a
  2044. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2045. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2046. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2047. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2048. // #endregion
  2049. // }
  2050. // if (Type == "4")
  2051. // {
  2052. // #region 委外备料SQL
  2053. // sqls = @" select
  2054. // x.MergeID,
  2055. // c.OOCode as Code,
  2056. // a.InvCode,
  2057. // b.InvName,
  2058. // b.InvStd,
  2059. //b.InvUnit,
  2060. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2061. // a.WhCode,
  2062. //a.ExtensionID
  2063. // FROM
  2064. // ICSOOPick a
  2065. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2066. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  2067. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2068. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}'
  2069. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID";
  2070. // #endregion
  2071. // }
  2072. // if (Type == "5")
  2073. // {
  2074. // #region 委外领料SQL
  2075. // sqls = @" select
  2076. // x.MergeID,
  2077. // a.ApplyCode as Code,
  2078. // a.InvCode,
  2079. // b.InvName,
  2080. // b.InvStd,
  2081. //b.InvUnit,
  2082. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2083. // a.WhCode,
  2084. //a.ExtensionID
  2085. // FROM
  2086. // ICSOApply a
  2087. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2088. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2089. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}'
  2090. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2091. // #endregion
  2092. // }
  2093. // if (Type == "6")
  2094. // {
  2095. // #region 委外材料出库SQL
  2096. // sqls = @" select
  2097. // x.MergeID,
  2098. // a.IssueCode as Code,
  2099. // a.InvCode,
  2100. // b.InvName,
  2101. // b.InvStd,
  2102. //b.InvUnit,
  2103. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2104. // a.WhCode,
  2105. //a.ExtensionID
  2106. // FROM
  2107. // ICSOIssue a
  2108. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2109. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2110. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}'
  2111. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2112. // #endregion
  2113. // }
  2114. // if (Type == "7")
  2115. // {
  2116. // #region 销售发货SQL
  2117. // sqls = @" select
  2118. // x.MergeID,
  2119. // a.SDNCode as Code,
  2120. // a.InvCode,
  2121. // b.InvName,
  2122. // b.InvStd,
  2123. //b.InvUnit,
  2124. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2125. // a.WhCode,
  2126. //a.ExtensionID
  2127. // FROM
  2128. // ICSSDN a
  2129. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2130. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2131. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}'
  2132. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2133. // #endregion
  2134. // }
  2135. // if (Type == "8")
  2136. // {
  2137. // #region 其它出库SQL
  2138. // sqls = @" select
  2139. // x.MergeID,
  2140. // a.OutCode as Code,
  2141. // a.InvCode,
  2142. // b.InvName,
  2143. // b.InvStd,
  2144. //b.InvUnit,
  2145. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2146. // a.WhCode,
  2147. //a.ExtensionID
  2148. // FROM
  2149. // ICSOtherOut a
  2150. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2151. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2152. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2153. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2154. // #endregion
  2155. // }
  2156. // if (Type == "9")
  2157. // {
  2158. // #region 借用SQL
  2159. // sqls = @" select
  2160. // x.MergeID,
  2161. // a.BrrowCode as Code,
  2162. // a.InvCode,
  2163. // b.InvName,
  2164. // b.InvStd,
  2165. //b.InvUnit,
  2166. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2167. // a.WhCode,
  2168. //a.ExtensionID
  2169. // FROM
  2170. // ICSBrrow a
  2171. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2172. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2173. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}'
  2174. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID";
  2175. // #endregion
  2176. // }
  2177. // if (Type == "10")
  2178. // {
  2179. // #region 物料调拨
  2180. // sqls = @" select
  2181. // x.MergeID,
  2182. // a.TransferNO as Code,
  2183. // a.InvCode,
  2184. // b.InvName,
  2185. // b.InvStd,
  2186. //b.InvUnit,
  2187. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2188. // a.FromWarehouseCode as WhCode,
  2189. //a.ExtensionID
  2190. // FROM
  2191. // ICSTransfer a
  2192. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2193. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2194. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}'
  2195. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID";
  2196. // #endregion
  2197. // }
  2198. // if (Type == "10")
  2199. // {
  2200. // #region 两步调出
  2201. // sqls = @"select
  2202. // x.MergeID,
  2203. // a.OutCode as Code,
  2204. // a.InvCode,
  2205. // b.InvName,
  2206. // b.InvStd,
  2207. //b.InvUnit,
  2208. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2209. // a.WHCode as WhCode,
  2210. //a.ExtensionID
  2211. // FROM
  2212. // ICSOtherOut a
  2213. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2214. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  2215. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2216. //WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}'
  2217. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID";
  2218. // #endregion
  2219. // }
  2220. // sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  2221. // sql = string.Format(sql, sqls, WorkPoint);
  2222. // DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
  2223. // DataTable dtCloned = table.Clone();
  2224. // foreach (DataColumn col in dtCloned.Columns)
  2225. // {
  2226. // col.DataType = typeof(string);
  2227. // }
  2228. // foreach (DataRow row in table.Rows)
  2229. // {
  2230. // DataRow newrow = dtCloned.NewRow();
  2231. // foreach (DataColumn column in dtCloned.Columns)
  2232. // {
  2233. // newrow[column.ColumnName] = row[column.ColumnName].ToString();
  2234. // }
  2235. // dtCloned.Rows.Add(newrow);
  2236. // }
  2237. // if (Invmes.Rows.Count > 0)
  2238. // {
  2239. // dtCloned.Merge(Invmes, false);
  2240. // }
  2241. // return dtCloned;
  2242. // }
  2243. #endregion
  2244. public DataTable GetICSMOPickMergeTemp2(string ID, string Type, string Mechanism, string InvCode)
  2245. {
  2246. try
  2247. {
  2248. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2249. string sqlCheck = string.Empty;
  2250. ID = ID.TrimEnd(',');
  2251. if (Type == "1")//工单备料
  2252. {
  2253. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT a.ID FROM ICSMOPick a INNER JOIN ICSMO b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint where MOCode in ({ID}));";
  2254. }
  2255. if (Type == "2")//工单发料
  2256. {
  2257. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSMOApply where ApplyCode in ({ID}));";
  2258. }
  2259. if (Type == "3")//材料出库
  2260. {
  2261. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSMOIssue where IssueCode in ({ID}));";
  2262. }
  2263. if (Type == "4")//委外备料
  2264. {
  2265. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOutsourcingOrder where OOCode in ({ID}));";
  2266. }
  2267. if (Type == "5")//委外领料
  2268. {
  2269. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOApply where ApplyCode in ({ID}));";
  2270. }
  2271. if (Type == "6")//委外材料出库
  2272. {
  2273. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOIssue where IssueCode in ({ID});";
  2274. }
  2275. if (Type == "7")//销售发货
  2276. {
  2277. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSSDN where SDNCode in ({ID}));";
  2278. }
  2279. if (Type == "8")//其它出库
  2280. {
  2281. sqlCheck = $@"SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOtherOut where OutCode in ({ID});";
  2282. }
  2283. if (Type == "9")//借用单
  2284. {
  2285. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOtherOut where OutCode in ({ID}));";
  2286. }
  2287. if (Type == "10")//物料调拨
  2288. {
  2289. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSTransfer where TransferNO in ({ID});";
  2290. }
  2291. if (Type == "11")//两步调出
  2292. {
  2293. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOtherOut where OutCode in ({ID}));";
  2294. }
  2295. if (Type == "12")//补料
  2296. {
  2297. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSMOReplenishment where ReplenishmentCode in ({ID}));";
  2298. }
  2299. if (Type == "16")//销售出库单
  2300. {
  2301. sqlCheck = $@"SELECT DISTINCT MergeID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSSSD where Type = '1' and SSDCode in ({ID}));";
  2302. }
  2303. var dt = Repository().FindDataSetBySql(sqlCheck);
  2304. if (dt.Tables[0].Rows.Count == 0)
  2305. throw new Exception("该单据没有合并");
  2306. // //查询合并领料单
  2307. // ID = ID.Replace("'", "''");
  2308. //ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  2309. //执行存储过程需要传合并ID
  2310. string sql = @"EXEC ICSPicking '''{0}''','{1}','1','{2}'";
  2311. sql = string.Format(sql, dt.Tables[0].Rows[0]["MergeID"].ToString(), Type, WorkPoint);
  2312. var dataset = Repository().FindDataSetBySql(sql);
  2313. if (dataset.Tables[0].Rows.Count == 0)
  2314. return null;
  2315. DataTable table = dataset.Tables[0];
  2316. #region 旧卡控
  2317. //string chksql = "";
  2318. //if (Type == "2" || Type == "12")
  2319. //{
  2320. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSMOApply
  2321. // where ApplyCode in ({0}) and WorkPoint='{1}'
  2322. // GROUP BY InvCode,WHCode";
  2323. //}
  2324. //if (Type == "5")
  2325. //{
  2326. // #region 委外领料SQL
  2327. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSOApply
  2328. // where ApplyCode in ({0}) and WorkPoint='{1}'
  2329. // GROUP BY InvCode,WHCode";
  2330. // #endregion
  2331. //}
  2332. //if (Type == "7")
  2333. //{
  2334. // #region 销售发货SQL
  2335. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSSDN
  2336. // where SDNCode in ({0}) and WorkPoint='{1}'
  2337. // GROUP BY InvCode,WHCode";
  2338. // #endregion
  2339. //}
  2340. //if (Type == "8")
  2341. //{
  2342. // #region 其它出库SQL
  2343. // chksql = @" select InvCode,WHCode,SUM(Quantity) as Quantity from ICSOtherOut
  2344. // where OutCode in ({0}) and WorkPoint='{1}'
  2345. // GROUP BY InvCode,WHCode";
  2346. // #endregion
  2347. //}
  2348. //if (Type == "10")
  2349. //{
  2350. // #region 物料调拨
  2351. // chksql = @" select InvCode,FromWarehouseCode AS WHCode,SUM(Quantity) as Quantity from ICSTransfer
  2352. // where TransferNO in ({0}) and WorkPoint='{1}'
  2353. // GROUP BY InvCode,FromWarehouseCode";
  2354. // #endregion
  2355. //}
  2356. //chksql = string.Format(chksql, ID.TrimEnd(','), WorkPoint);
  2357. //var chkdata = Repository().FindDataSetBySql(chksql);
  2358. //DataTable chktable = chkdata.Tables[0];
  2359. //foreach (DataRow chkdr in chktable.Rows)
  2360. //{
  2361. // decimal ZLQty = 0;
  2362. // for (int i = 0; i < table.Rows.Count; i++)
  2363. // {
  2364. // if (table.Rows[i]["WarehouseCode"].ToString() == chkdr["WHCode"].ToString()
  2365. // && table.Rows[i]["InvCode"].ToString() == chkdr["InvCode"].ToString())
  2366. // {
  2367. // ZLQty += Convert.ToDecimal(table.Rows[i]["SendQTY"].ToString());
  2368. // }
  2369. // }
  2370. // if (Convert.ToDecimal(chkdr["Quantity"]) < ZLQty)
  2371. // {
  2372. // throw new Exception("物料:" + chkdr["InvCode"].ToString() + "实际拣料数量大于单据需求数量,请尝试重新拣料。");
  2373. // }
  2374. //}
  2375. #endregion
  2376. DataRow[] dss = table.Select("LotNO=''");
  2377. foreach (var item in dss)
  2378. {
  2379. DataRow[] dsss = table.Select("Code='" + item["Code"].ToString() + "' and Sequence='" + item["Sequence"].ToString() + "' and LotNO <> '' ");
  2380. if (dsss != null && dsss.Length > 0)
  2381. {
  2382. table.Rows.Remove(item);
  2383. }
  2384. }
  2385. var result = ConvertCellToString(table);
  2386. if (Invmes.Rows.Count > 0)
  2387. {
  2388. result.Merge(Invmes, false);
  2389. }
  2390. return result;
  2391. }
  2392. catch (Exception ex)
  2393. {
  2394. throw new Exception(ex.Message);
  2395. }
  2396. }
  2397. public string BackMergeMaterial(string keyValues, string Type)
  2398. {
  2399. JArray res = (JArray)JsonConvert.DeserializeObject(keyValues);
  2400. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2401. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2402. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2403. string msg = "";
  2404. string sql = string.Empty;
  2405. string keyValue = "";
  2406. foreach (var item in res)
  2407. {
  2408. JObject jo = (JObject)item;
  2409. if (Type == "1")//工单备料
  2410. {
  2411. sql += @"IF EXISTS(SELECT * FROM ICSMO b
  2412. INNER join ICSMOPick c on c.MODetailID=b.MODetailID and c.WorkPoint=b.WorkPoint
  2413. where b.MOCode = '{0}' and c.IssueQuantity>0)
  2414. BEGIN
  2415. RAISERROR('{0}!',16,1);
  2416. RETURN
  2417. END
  2418. delete ICSMOPickMerge from ICSMOPickMerge a
  2419. INNER join ICSMOPick c on a.SourceID=c.id and a.WorkPoint=c.WorkPoint
  2420. LEFT JOIN ICSMO b on c.MODetailID=b.MODetailID and c.WorkPoint=b.WorkPoint and b.MOStatus<>'3'
  2421. where b.MOCode = '{0}'";
  2422. }
  2423. if (Type == "2")//工单发料
  2424. {
  2425. sql += @"IF EXISTS(SELECT * FROM ICSMOApply b
  2426. where b.ApplyCode = '{0}' and b.IssueQuantity>0)
  2427. BEGIN
  2428. RAISERROR('{0}!',16,1);
  2429. RETURN
  2430. END
  2431. delete ICSMOPickMerge from ICSMOPickMerge a
  2432. LEFT JOIN ICSMOApply b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2433. where b.ApplyCode = '{0}'";
  2434. }
  2435. if (Type == "3")//材料出库
  2436. {
  2437. sql += @"IF EXISTS(SELECT * FROM ICSMOIssue b
  2438. where b.IssueCode = '{0}' and b.IssueQuantity>0)
  2439. BEGIN
  2440. RAISERROR('{0}!',16,1);
  2441. RETURN
  2442. END
  2443. delete ICSMOPickMerge from ICSMOPickMerge a
  2444. LEFT JOIN ICSMOIssue b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2445. where b.IssueCode = '{0}' ";
  2446. }
  2447. if (Type == "4")//委外备料
  2448. {
  2449. sql += @"IF EXISTS(SELECT * FROM ICSOutsourcingOrder b
  2450. INNER join ICSOOPick c on c.OODetailID=b.OODetailID and c.WorkPoint=b.WorkPoint
  2451. where b.OOCode = '{0}' and c.IssueQuantity>0)
  2452. BEGIN
  2453. RAISERROR('{0}!',16,1);
  2454. RETURN
  2455. END
  2456. delete ICSMOPickMerge from ICSMOPickMerge a
  2457. INNER join ICSOOPick c on a.SourceID=c.id and a.WorkPoint=c.WorkPoint
  2458. LEFT JOIN ICSOutsourcingOrder b on c.OODetailID=b.OODetailID and c.WorkPoint=b.WorkPoint
  2459. where b.OOCode = '{0}'";
  2460. }
  2461. if (Type == "5")//委外领料
  2462. {
  2463. sql += @"IF EXISTS(SELECT * FROM ICSOApply b
  2464. where b.ApplyCode = '{0}' and b.IssueQuantity>0)
  2465. BEGIN
  2466. RAISERROR('{0}!',16,1);
  2467. RETURN
  2468. END
  2469. delete ICSMOPickMerge from ICSMOPickMerge a
  2470. LEFT JOIN ICSOApply b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2471. where b.ApplyCode = '{0}'";
  2472. }
  2473. if (Type == "6")//委外材料出库
  2474. {
  2475. sql += @"IF EXISTS(SELECT * FROM ICSOIssue b
  2476. where b.IssueCode = '{0}' and b.IssueQuantity>0)
  2477. BEGIN
  2478. RAISERROR('{0}!',16,1);
  2479. RETURN
  2480. END
  2481. delete ICSMOPickMerge from ICSMOPickMerge a
  2482. LEFT JOIN ICSOIssue b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2483. where b.IssueCode = '{0}'";
  2484. }
  2485. if (Type == "7")//销售发货
  2486. {
  2487. sql += @"IF EXISTS(SELECT * FROM ICSSDN b
  2488. where b.SDNCode = '{0}' and b.SDNQuantity>0)
  2489. BEGIN
  2490. RAISERROR('{0}!',16,1);
  2491. RETURN
  2492. END
  2493. delete ICSMOPickMerge from ICSMOPickMerge a
  2494. LEFT JOIN ICSSDN b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2495. where b.SDNCode = '{0}'";
  2496. }
  2497. if (Type == "8")//其它出库
  2498. {
  2499. sql += @"IF EXISTS(SELECT * FROM ICSOtherOut b
  2500. where b.OutCode = '{0}' and b.OutQuantity>0)
  2501. BEGIN
  2502. RAISERROR('{0}!',16,1);
  2503. RETURN
  2504. END
  2505. delete ICSMOPickMerge from ICSMOPickMerge a
  2506. LEFT JOIN ICSOtherOut b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2507. where b.OutCode = '{0}'";
  2508. }
  2509. if (Type == "9")//借用单
  2510. {
  2511. sql += @"IF EXISTS(SELECT * FROM ICSOtherOut b
  2512. where b.OutCode = '{0}' and b.OutQuantity>0)
  2513. BEGIN
  2514. RAISERROR('{0}!',16,1);
  2515. RETURN
  2516. END
  2517. delete ICSMOPickMerge from ICSMOPickMerge a
  2518. LEFT JOIN ICSOtherOut b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2519. where b.OutCode = '{0}'";
  2520. }
  2521. if (Type == "10")//物料调拨
  2522. {
  2523. sql += @"IF EXISTS(SELECT * FROM ICSTransfer b
  2524. where b.TransferNO = '{0}' and b.TransferQuantity>0)
  2525. BEGIN
  2526. RAISERROR('{0}!',16,1);
  2527. RETURN
  2528. END
  2529. delete ICSMOPickMerge from ICSMOPickMerge a
  2530. LEFT JOIN ICSTransfer b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2531. where b.TransferNO = '{0}'";
  2532. }
  2533. if (Type == "11")//两步调出
  2534. {
  2535. sql += @"IF EXISTS(SELECT * FROM ICSOtherOut b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2536. INNER JOIN ICSTransfer tra ON b.TransferDetailID=tra.TransferDetailID AND b.WorkPoint=tra.WorkPoint
  2537. where b.OutCode = '{0}' and b.OutQuantity>0)
  2538. BEGIN
  2539. RAISERROR('{0}!',16,1);
  2540. RETURN
  2541. END
  2542. delete ICSMOPickMerge from ICSMOPickMerge a
  2543. LEFT JOIN ICSOtherOut b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2544. INNER JOIN ICSTransfer tra ON b.TransferDetailID=tra.TransferDetailID AND b.WorkPoint=tra.WorkPoint
  2545. where b.OutCode = '{0}'";
  2546. }
  2547. if (Type == "12")//补料
  2548. {
  2549. sql += @"IF EXISTS(SELECT * FROM ICSMOReplenishment b
  2550. where b.ReplenishmentCode = '{0}' and b.IssueQuantity>0)
  2551. BEGIN
  2552. RAISERROR('{0}!',16,1);
  2553. RETURN
  2554. END
  2555. delete ICSMOPickMerge from ICSMOPickMerge a
  2556. LEFT JOIN ICSMOReplenishment b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2557. where b.ReplenishmentCode = '{0}'";
  2558. }
  2559. if (Type == "15")//红字其他入库
  2560. {
  2561. sql += @"IF EXISTS(SELECT * FROM ICSOtherIn b
  2562. where b.InCode = '{0}' and b.InQuantity>0)
  2563. BEGIN
  2564. RAISERROR('{0}!',16,1);
  2565. RETURN
  2566. END
  2567. delete ICSMOPickMerge from ICSMOPickMerge a
  2568. LEFT JOIN ICSOtherIn b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2569. where b.InCode = '{0}' and a.EATTRIBUTE2='2'";
  2570. }
  2571. if (Type == "16")//销售出库单
  2572. {
  2573. sql += @"IF EXISTS(SELECT * FROM ICSSSD b
  2574. where b.Type = '1' and b.SSDCode = '{0}' and b.SSDQuantity>0)
  2575. BEGIN
  2576. RAISERROR('{0}!',16,1);
  2577. RETURN
  2578. END
  2579. delete ICSMOPickMerge from ICSMOPickMerge a
  2580. LEFT JOIN ICSSSD b on a.SourceID=b.id and a.WorkPoint=b.WorkPoint
  2581. where b.SSDCode = '{0}' and a.EATTRIBUTE2='2' and b.Type = '1' ";
  2582. }
  2583. try
  2584. {
  2585. sql = string.Format(sql, jo["Code"].ToString());
  2586. SqlHelper.ExecuteNonQuery(sql);
  2587. }
  2588. catch (Exception ex)
  2589. {
  2590. msg = ex.Message;
  2591. //throw new Exception(ex.Message);
  2592. }
  2593. }
  2594. return msg;
  2595. }
  2596. public string MergeMaterial(string keyValues, string Type)
  2597. {
  2598. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2599. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2600. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2601. string msg = "";
  2602. string sql = string.Empty;
  2603. string sqlCheck = string.Empty;
  2604. string keyValue = "";
  2605. //keyValue = keyValue.TrimEnd(',');
  2606. string[] keyvaluelist = keyValues.Split(',');
  2607. if (keyvaluelist.Count() > 1)
  2608. {
  2609. for (int i = 0; i < keyvaluelist.Count() - 1; i++)
  2610. {
  2611. if (keyValue == "")
  2612. {
  2613. keyValue += "'" + keyvaluelist[i] + "'";
  2614. }
  2615. else
  2616. {
  2617. keyValue += ",'" + keyvaluelist[i] + "'";
  2618. }
  2619. }
  2620. }
  2621. else
  2622. keyValue = keyValues.TrimEnd(',');
  2623. DateTime time = DateTime.Now;
  2624. string Tday = time.ToString("yyyyMMdd");
  2625. string sqls = string.Format(@"SELECT MAX(A.MergeID) AS MergeID FROM ICSMOPickMerge A WHERE A.MergeID LIKE '{0}%' AND LEN(a.MergeID) = 13", Tday);
  2626. DataSet ds = SqlHelper.GetDataSetBySql(sqls);
  2627. string MergeID = "";
  2628. Int64 Merge_ID = 0;
  2629. DataTable dts = ds.Tables[0];
  2630. if (dts != null && dts.Rows.Count > 0)
  2631. {
  2632. string lot = dts.Rows[0]["MergeID"].ToString();
  2633. if (!string.IsNullOrWhiteSpace(lot))
  2634. Merge_ID = Convert.ToInt64(lot.Substring(lot.Length - 5));
  2635. }
  2636. MergeID = Tday + (Merge_ID + 1).ToString().PadLeft(5, '0');
  2637. if (Type == "1")//工单备料
  2638. {
  2639. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSMO WHERE MOCode in ({keyValue});";
  2640. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT a.ID FROM ICSMOPick a INNER JOIN ICSMO b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint where MOCode in ({5}) ))
  2641. BEGIN
  2642. RAISERROR('',16,1);
  2643. RETURN
  2644. END;
  2645. INSERT INTO dbo.ICSMOPickMerge
  2646. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2647. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2648. from ICSMO a inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  2649. where a.MOStatus<>'3' and a.MOCode in ({5})
  2650. ";
  2651. }
  2652. if (Type == "2")//工单发料
  2653. {
  2654. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSMOApply WHERE ApplyCode in ({keyValue});";
  2655. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSMOApply where ApplyCode in ({5}) ))
  2656. BEGIN
  2657. RAISERROR('',16,1);
  2658. RETURN
  2659. END;
  2660. INSERT INTO dbo.ICSMOPickMerge
  2661. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2662. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2663. from ICSMOApply a
  2664. where a.ApplyCode in ({5})";
  2665. }
  2666. if (Type == "3")//材料出库
  2667. {
  2668. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSMOIssue WHERE IssueCode in ({keyValue});";
  2669. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSMOIssue where IssueCode in ({5}) ))
  2670. BEGIN
  2671. RAISERROR('',16,1);
  2672. RETURN
  2673. END;
  2674. INSERT INTO dbo.ICSMOPickMerge
  2675. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2676. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2677. from ICSMOIssue a
  2678. where a.IssueCode in ({5}) ";
  2679. }
  2680. if (Type == "4")//委外备料
  2681. {
  2682. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSOutsourcingOrder WHERE OOCode in ({keyValue});";
  2683. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOutsourcingOrder where OOCode in ({5}) ))
  2684. BEGIN
  2685. RAISERROR('',16,1);
  2686. RETURN
  2687. END;
  2688. INSERT INTO dbo.ICSMOPickMerge
  2689. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2690. select NEWID(),'{0}',b.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2691. from ICSOutsourcingOrder a inner join ICSOOPick b on a.OODetailID=b.OODetailID and b.WorkPoint=a.WorkPoint
  2692. where a.OOCode in ({5})";
  2693. }
  2694. if (Type == "5")//委外领料
  2695. {
  2696. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSOApply WHERE ApplyCode in ({keyValue});";
  2697. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOApply where ApplyCode in ({5}) ))
  2698. BEGIN
  2699. RAISERROR('',16,1);
  2700. RETURN
  2701. END;
  2702. INSERT INTO dbo.ICSMOPickMerge
  2703. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2704. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2705. from ICSOApply a
  2706. where a.ApplyCode in ({5})";
  2707. }
  2708. if (Type == "6")//委外材料出库
  2709. {
  2710. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSOIssue WHERE IssueCode in ({keyValue});";
  2711. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOIssue where IssueCode in ({5}) ))
  2712. BEGIN
  2713. RAISERROR('',16,1);
  2714. RETURN
  2715. END;
  2716. INSERT INTO dbo.ICSMOPickMerge
  2717. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2718. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2719. from ICSOIssue a
  2720. where a.IssueCode in ('{5}')";
  2721. }
  2722. if (Type == "7")//销售发货
  2723. {
  2724. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSSDN WHERE SDNCode in ({keyValue});";
  2725. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSSDN where SDNCode in ({5}) ))
  2726. BEGIN
  2727. RAISERROR('',16,1);
  2728. RETURN
  2729. END;
  2730. INSERT INTO dbo.ICSMOPickMerge
  2731. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2732. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2733. from ICSSDN a
  2734. where a.SDNCode in ({5})";
  2735. }
  2736. if (Type == "8")//其它出库
  2737. {
  2738. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSOtherOut WHERE OutCode in ({keyValue});";
  2739. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOtherOut where OutCode in ({5}) ))
  2740. BEGIN
  2741. RAISERROR('',16,1);
  2742. RETURN
  2743. END;
  2744. INSERT INTO dbo.ICSMOPickMerge
  2745. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2746. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2747. from ICSOtherOut a
  2748. where a.OutCode in ({5})";
  2749. }
  2750. if (Type == "9")//借用单
  2751. {
  2752. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSOtherOut WHERE OutCode in ({keyValue});";
  2753. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOtherOut where OutCode in ({5}) ))
  2754. BEGIN
  2755. RAISERROR('',16,1);
  2756. RETURN
  2757. END;
  2758. INSERT INTO dbo.ICSMOPickMerge
  2759. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2760. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2761. from ICSOtherOut a
  2762. where a.OutCode in ({5})";
  2763. }
  2764. if (Type == "10")//物料调拨
  2765. {
  2766. sqlCheck = $@"SELECT DISTINCT FromWarehouseCode FROM ICSTransfer WHERE TransferNO in ({keyValue});";
  2767. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSTransfer where TransferNO in ({5}) ))
  2768. BEGIN
  2769. RAISERROR('',16,1);
  2770. RETURN
  2771. END;
  2772. INSERT INTO dbo.ICSMOPickMerge
  2773. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2774. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2775. from ICSTransfer a
  2776. where a.TransferNO in ({5})
  2777. ";
  2778. }
  2779. if (Type == "11")//两步调出
  2780. {
  2781. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSOtherOut WHERE OutCode in ({keyValue});";
  2782. sql += @" IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOtherOut where OutCode in ({5}) ))
  2783. BEGIN
  2784. RAISERROR('',16,1);
  2785. RETURN
  2786. END; INSERT INTO dbo.ICSMOPickMerge
  2787. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2788. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2789. from ICSOtherOut a
  2790. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  2791. where a.OutCode in ({5})
  2792. ";
  2793. }
  2794. if (Type == "12")//补料
  2795. {
  2796. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSMOReplenishment WHERE ReplenishmentCode in ({keyValue});";
  2797. sql += @"IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSMOReplenishment where ReplenishmentCode in ({5}) ))
  2798. BEGIN
  2799. RAISERROR('',16,1);
  2800. RETURN
  2801. END;
  2802. INSERT INTO dbo.ICSMOPickMerge
  2803. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2804. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2805. from ICSMOReplenishment a
  2806. where a.ReplenishmentCode in ({5})";
  2807. }
  2808. if (Type == "15")//其他红字入库
  2809. {
  2810. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSOtherIn WHERE InCode in ({keyValue});";
  2811. sql += @" IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSOtherIn where InCode in ({5}) ))
  2812. BEGIN
  2813. RAISERROR('',16,1);
  2814. RETURN
  2815. END; INSERT INTO dbo.ICSMOPickMerge
  2816. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2817. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2818. from ICSOtherIn a
  2819. where a.InCode in ({5}) and a.EATTRIBUTE2='2'
  2820. ";
  2821. }
  2822. if (Type == "16")//其他红字入库
  2823. {
  2824. sqlCheck = $@"SELECT DISTINCT WHCode FROM ICSSSD WHERE SSDCode in ({keyValue}) and Type = '1';";
  2825. sql += @" IF EXISTS(SELECT ID FROM ICSMOPickMerge WHERE SourceID IN(SELECT ID FROM ICSSSD where SSDCode in ({5}) ))
  2826. BEGIN
  2827. RAISERROR('',16,1);
  2828. RETURN
  2829. END; INSERT INTO dbo.ICSMOPickMerge
  2830. ( ID ,MergeID ,SourceID ,Type,MUSER, MUSERName,MTIME,WorkPoint)
  2831. select NEWID(),'{0}',a.ID ,'{1}','{2}','{3}',GETDATE(),'{4}'
  2832. from ICSSSD a
  2833. where a.SSDCode in ({5}) and a.Type = '1'
  2834. ";
  2835. }
  2836. sql = string.Format(sql, MergeID, Type, MUSER, MUSERNAME, WorkPoint, keyValue);
  2837. try
  2838. {
  2839. var table = SqlHelper.CmdExecuteDataTable(sqlCheck);
  2840. if (table.Rows.Count != 1)
  2841. {
  2842. msg = "合并拣料的仓库不一致,不能合并拣料!";
  2843. return msg;
  2844. }
  2845. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  2846. {
  2847. }
  2848. else
  2849. {
  2850. msg = "新增失败";
  2851. }
  2852. }
  2853. catch (Exception ex)
  2854. {
  2855. throw new Exception(ex.Message);
  2856. }
  2857. return msg;
  2858. }
  2859. public string CheckQty(string objArr)
  2860. {
  2861. objArr= objArr.TrimEnd(',');
  2862. string sql = @"select * from ICSMOPickMerge a
  2863. left join ICSMOPick b on a.SourceID=b.ID and a.WorkPoint=b.WorkPoint
  2864. left join ICSMO c on b.MODetailID=c.MODetailID and b.WorkPoint=c.WorkPoint and c.MOStatus<>'3'
  2865. where MOCode in ({0})";
  2866. sql = string.Format(sql, objArr);
  2867. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  2868. if (dt != null&&dt.Rows.Count>0)
  2869. {
  2870. return "1";
  2871. }
  2872. return "0";
  2873. }
  2874. public string SaveSeizeMaterial(string ID, string Type,string LotNoInfo,string obj)
  2875. {
  2876. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2877. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2878. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2879. string msg = "";
  2880. string sql = string.Empty;
  2881. string pikTbLogsql = string.Empty;
  2882. ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  2883. try
  2884. {
  2885. #region 旧逻辑
  2886. // if (Type == "1")
  2887. // {
  2888. // #region 工单备料sql
  2889. // sqls = @" SELECT
  2890. // c.MOCode as Code,
  2891. //c.Sequence+'~'+a.Sequence as Sequence,
  2892. // a.InvCode,
  2893. // b.InvName,
  2894. // b.InvStd,
  2895. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2896. // a.WhCode,
  2897. // b.InvUnit,
  2898. // a.ExtensionID,
  2899. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2900. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2901. // FROM
  2902. // ICSMOPick a
  2903. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  2904. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2905. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2906. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0) and a.EATTRIBUTE1<>'1'
  2907. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,c.Sequence+'~'+a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2908. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  2909. // #endregion
  2910. // }
  2911. // if (Type == "2")
  2912. // {
  2913. // #region 工单领料sql
  2914. // sqls = @"select
  2915. // a.ApplyCode as Code,a.Sequence, a.InvCode, b.InvName, b.InvStd, b.InvUnit, (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.IssueQuantity, 0))) AS iQuantity, a.WhCode,a.ExtensionID,
  2916. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2917. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2918. // FROM
  2919. // ICSMOApply a
  2920. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2921. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2922. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  2923. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2924. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  2925. // #endregion
  2926. // }
  2927. // if (Type == "3")
  2928. // {
  2929. // #region 工单材料出库SQL
  2930. // sqls = @" select
  2931. // a.IssueCode as Code,
  2932. //a.Sequence,
  2933. // a.InvCode,
  2934. // b.InvName,
  2935. // b.InvStd,
  2936. // b.InvUnit,
  2937. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2938. // a.WhCode,
  2939. // a.ExtensionID,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2940. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2941. // FROM
  2942. // ICSMOIssue a
  2943. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2944. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2945. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  2946. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2947. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  2948. // #endregion
  2949. // }
  2950. // if (Type == "4")
  2951. // {
  2952. // #region 委外备料SQL
  2953. // sqls = @" select
  2954. // c.OOCode as Code,
  2955. //c.Sequence+'~'+a.Sequence as Sequence,
  2956. // a.InvCode,
  2957. // b.InvName,
  2958. // b.InvStd,
  2959. // b.InvUnit,
  2960. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  2961. // a.WhCode,
  2962. // a.ExtensionID, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2963. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2964. // FROM
  2965. // ICSOOPick a
  2966. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  2967. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2968. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2969. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  2970. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode, a.ExtensionID,c.Sequence+'~'+a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2971. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  2972. // #endregion
  2973. // }
  2974. // if (Type == "5")
  2975. // {
  2976. // #region 委外领料SQL
  2977. // sqls = @"select
  2978. // a.ApplyCode as Code,
  2979. //a.Sequence,
  2980. // a.InvCode,
  2981. // b.InvName,
  2982. // b.InvStd,
  2983. // b.InvUnit,
  2984. // (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.IssueQuantity,0))) AS iQuantity,
  2985. // a.WhCode,a.ExtensionID,
  2986. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2987. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  2988. // FROM
  2989. // ICSOApply a
  2990. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  2991. //LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2992. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  2993. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2994. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  2995. // #endregion
  2996. // }
  2997. // if (Type == "6")
  2998. // {
  2999. // #region 委外材料出库SQL
  3000. // sqls = @" select
  3001. // a.IssueCode as Code,
  3002. //a.Sequence,
  3003. // a.InvCode,
  3004. // b.InvName,
  3005. // b.InvStd,
  3006. // b.InvUnit,
  3007. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3008. // a.WhCode,
  3009. // a.ExtensionID,
  3010. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3011. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3012. // FROM
  3013. // ICSOIssue a
  3014. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3015. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3016. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3017. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3018. //,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3019. // #endregion
  3020. // }
  3021. // if (Type == "7")
  3022. // {
  3023. // #region 销售发货SQL
  3024. // sqls = @" select
  3025. // a.SDNCode as Code,
  3026. //a.Sequence,
  3027. // a.InvCode,
  3028. // b.InvName,
  3029. // b.InvStd,
  3030. // b.InvUnit,
  3031. // (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.SDNQuantity, 0))) AS iQuantity,
  3032. // a.WhCode,
  3033. // a.ExtensionID,
  3034. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3035. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3036. // FROM
  3037. // ICSSDN a
  3038. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3039. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3040. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.SDNQuantity, 0)
  3041. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence,
  3042. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3043. //,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3044. // #endregion
  3045. // }
  3046. // if (Type == "8")
  3047. // {
  3048. // #region 其它出库SQL
  3049. // sqls = @" select
  3050. // a.OutCode as Code,
  3051. //a.Sequence,
  3052. // a.InvCode,
  3053. // b.InvName,
  3054. // b.InvStd,
  3055. // b.InvUnit,
  3056. // (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.OutQuantity, 0))) AS iQuantity,
  3057. // a.WhCode,
  3058. // a.ExtensionID,
  3059. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3060. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3061. // FROM
  3062. // ICSOtherOut a
  3063. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3064. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3065. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.OutQuantity, 0)
  3066. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3067. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3068. // #endregion
  3069. // }
  3070. // if (Type == "9")
  3071. // {
  3072. // #region 借用SQL
  3073. // sqls = @"select
  3074. // a.BrrowCode as Code,
  3075. //a.Sequence,
  3076. // a.InvCode,
  3077. // b.InvName,
  3078. // b.InvStd,
  3079. // b.InvUnit,
  3080. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3081. // a.WhCode,
  3082. // a.ExtensionID,
  3083. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3084. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3085. // FROM
  3086. // ICSBrrow a
  3087. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3088. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3089. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.BrrowQuantity, 0)
  3090. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3091. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3092. // #endregion
  3093. // }
  3094. // if (Type == "10")
  3095. // {
  3096. // #region 物料调拨
  3097. // sqls = @"select
  3098. // a.TransferNO as Code,
  3099. //a.Sequence,
  3100. // a.InvCode,
  3101. // b.InvName,
  3102. // b.InvStd,
  3103. // b.InvUnit,
  3104. // (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.TransferQuantity, 0))) AS iQuantity,
  3105. // a.FromWarehouseCode as WhCode,
  3106. // a.ExtensionID,
  3107. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3108. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3109. // FROM
  3110. // ICSTransfer a
  3111. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3112. //LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3113. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.TransferQuantity, 0)
  3114. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,a.Sequence,
  3115. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3116. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3117. // #endregion
  3118. // }
  3119. // if (Type == "11")
  3120. // {
  3121. // #region 两步调出
  3122. // sqls = @"select
  3123. // a.OutCode as Code,
  3124. //a.Sequence,
  3125. // a.InvCode,
  3126. // b.InvName,
  3127. // b.InvStd,
  3128. // b.InvUnit,
  3129. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3130. // a.WHCode ,
  3131. // a.ExtensionID,
  3132. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3133. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3134. // from ICSOtherOut a
  3135. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  3136. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3137. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3138. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.OutQuantity, 0)
  3139. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3140. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3141. // #endregion
  3142. // }
  3143. // if (Type == "12")
  3144. // {
  3145. // #region 补料sql
  3146. // sqls = @"select
  3147. // a.ReplenishmentCode as Code,a.Sequence, a.InvCode, b.InvName, b.InvStd, b.InvUnit, (SUM(ISNULL(a.Quantity, 0))-SUM(ISNULL(a.IssueQuantity, 0))) AS iQuantity, a.WhCode,a.ExtensionID, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3148. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3149. // FROM
  3150. // ICSMOReplenishment a
  3151. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3152. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3153. // WHERE a.ReplenishmentCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3154. // GROUP BY a.ReplenishmentCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3155. //,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3156. // #endregion
  3157. // }
  3158. // sqls = string.Format(sqls, ID, WorkPoint);
  3159. // #region sql结果 处理
  3160. // sql = $@"SELECT row_number() over ( order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  3161. // c.Code,
  3162. //c.Sequence,
  3163. // c.InvCode,
  3164. // c.InvName,
  3165. // c.InvStd,
  3166. // c.InvUnit,
  3167. // c.iQuantity AS iQuantity,
  3168. // c.WHCode AS WarehouseCode,
  3169. // d.LotNO,
  3170. // ISNULL(d.Quantity, 0) AS QTY,
  3171. // ISNULL(d.Quantity, 0) AS QTYLeft,
  3172. // CONVERT(decimal(18,6),0) AS SendQTY,
  3173. // d.LocationCode AS LocationCode,
  3174. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  3175. // f.QTYTotal QTYTotal,c.ExtensionID
  3176. // FROM
  3177. // ({sqls}) c
  3178. // left join (select d.WarehouseCode,d.Quantity-d.LockQuantity as Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3179. //,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3180. // from ICSWareHouseLotInfo d ,ICSInventoryLot m
  3181. //LEFT JOIN ICSExtension f on m.ExtensionID=f.ID and m.WorkPoint=f.WorkPoint
  3182. // where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  3183. // and d.WorkPoint='{WorkPoint}' AND d.Quantity-d.LockQuantity>0 AND d.Quantity>0
  3184. // ) d
  3185. // on c.InvCode=d.INVCode
  3186. //AND (LEN(ISNULL(c.WHCode,''))<=0 OR (LEN(ISNULL(c.WHCode,''))>0 AND c.WHCode=d.WarehouseCode))
  3187. // AND (LEN(ISNULL(c.ProjectCode,''))<=0 OR (LEN(ISNULL(c.ProjectCode,''))>0 AND c.ProjectCode=d.ProjectCode))
  3188. // AND (LEN(ISNULL(c.BatchCode,''))<=0 OR (LEN(ISNULL(c.BatchCode,''))>0 AND c.BatchCode=d.BatchCode))
  3189. // AND (LEN(ISNULL(c.Version,''))<=0 OR (LEN(ISNULL(c.Version,''))>0 AND c.Version=d.Version))
  3190. // AND (LEN(ISNULL(c.Brand,''))<=0 OR (LEN(ISNULL(c.Brand,''))>0 AND c.Brand=d.Brand))
  3191. // AND (LEN(ISNULL(c.cFree1,''))<=0 OR (LEN(ISNULL(c.cFree1,''))>0 AND c.cFree1=d.cFree1))
  3192. // AND (LEN(ISNULL(c.cFree2,''))<=0 OR (LEN(ISNULL(c.cFree2,''))>0 AND c.cFree2=d.cFree2))
  3193. // AND (LEN(ISNULL(c.cFree3,''))<=0 OR (LEN(ISNULL(c.cFree3,''))>0 AND c.cFree3=d.cFree3))
  3194. // AND (LEN(ISNULL(c.cFree4,''))<=0 OR (LEN(ISNULL(c.cFree4,''))>0 AND c.cFree4=d.cFree4))
  3195. // AND (LEN(ISNULL(c.cFree5,''))<=0 OR (LEN(ISNULL(c.cFree5,''))>0 AND c.cFree5=d.cFree5))
  3196. // AND (LEN(ISNULL(c.cFree6,''))<=0 OR (LEN(ISNULL(c.cFree6,''))>0 AND c.cFree6=d.cFree6))
  3197. // AND (LEN(ISNULL(c.cFree7,''))<=0 OR (LEN(ISNULL(c.cFree7,''))>0 AND c.cFree7=d.cFree7))
  3198. // AND (LEN(ISNULL(c.cFree8,''))<=0 OR (LEN(ISNULL(c.cFree8,''))>0 AND c.cFree8=d.cFree8))
  3199. // AND (LEN(ISNULL(c.cFree9,''))<=0 OR (LEN(ISNULL(c.cFree9,''))>0 AND c.cFree9=d.cFree9))
  3200. // AND (LEN(ISNULL(c.cFree10,''))<=0 OR (LEN(ISNULL(c.cFree10,''))>0 AND c.cFree10=d.cFree10))
  3201. // LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity-LockQuantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{WorkPoint}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  3202. // order by c.Code,c.Sequence,d.MTIME,d.LotNO ";
  3203. // #endregion
  3204. // var dataset = Repository().FindDataSetBySql(sql);
  3205. // if (dataset.Tables[0].Rows.Count == 0)
  3206. // return null;
  3207. // DataTable table = dataset.Tables[0];
  3208. // decimal qtyCount = 0;
  3209. // bool remove = false;
  3210. // List<int> removeList = new List<int>();
  3211. // for (int i = 0; i < table.Rows.Count; i++)
  3212. // {
  3213. // if (i != 0
  3214. // && (!table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString())
  3215. // || !table.Rows[i]["Sequence"].ToString().Equals(table.Rows[i - 1]["Sequence"].ToString())
  3216. // || !table.Rows[i]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString())
  3217. // || !table.Rows[i]["ExtensionID"].ToString().Equals(table.Rows[i - 1]["ExtensionID"].ToString()))
  3218. // )
  3219. // {
  3220. // qtyCount = 0;
  3221. // remove = false;
  3222. // }
  3223. // if (table.Rows[i]["QTYLeft"].ToString().ToDecimal() == 0)
  3224. // {
  3225. // removeList.Add(i);
  3226. // continue;
  3227. // }
  3228. // if (remove)
  3229. // {
  3230. // removeList.Add(i);
  3231. // }
  3232. // else
  3233. // {
  3234. // var lotQty = table.Rows[i]["QTYLeft"].ToString().ToDecimal();
  3235. // var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  3236. // qtyCount += lotQty;
  3237. // foreach (DataRow dr in table.Rows)
  3238. // {
  3239. // if (dr["LotNO"].ToString() == table.Rows[i]["LotNO"].ToString())
  3240. // {
  3241. // if (qtyCount > orderQty)
  3242. // {
  3243. // dr["QTYLeft"] = Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty);
  3244. // }
  3245. // else
  3246. // {
  3247. // dr["QTYLeft"] = 0;
  3248. // }
  3249. // }
  3250. // }
  3251. // if (qtyCount >= orderQty)
  3252. // {
  3253. // table.Rows[i]["SendQTY"] = Convert.ToDecimal(lotQty) - (Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty));
  3254. // remove = true;
  3255. // }
  3256. // else
  3257. // {
  3258. // table.Rows[i]["SendQTY"] = lotQty;
  3259. // }
  3260. // }
  3261. // }
  3262. // if (removeList.Count > 0)
  3263. // {
  3264. // removeList.Reverse();
  3265. // foreach (var item in removeList)
  3266. // {
  3267. // table.Rows.RemoveAt(item);
  3268. // }
  3269. // }
  3270. // try
  3271. // {
  3272. // //string[] strArray = LotNoInfo.Split(',');
  3273. // //// 创建一个HashSet集合
  3274. // //HashSet<string> strSet = new HashSet<string>();
  3275. // //// 将切割后的字符串数组添加到集合中
  3276. // //foreach (string elem in strArray)
  3277. // //{
  3278. // // strSet.Add(elem);
  3279. // //}
  3280. // decimal ZLQty = 0;
  3281. // decimal DJQty = 0;
  3282. // for (int i = 0; i < table.Rows.Count; i++)
  3283. // {
  3284. // ZLQty += Convert.ToDecimal(table.Rows[i]["SendQTY"].ToString());
  3285. // DJQty += Convert.ToDecimal(table.Rows[i]["iQuantity"].ToString());
  3286. // }
  3287. // if (ZLQty!= DJQty)
  3288. // {
  3289. // throw new Exception("单据所匹配条码与单据数量不符,无法保存!");
  3290. // }
  3291. #endregion
  3292. var dataSet = JsonConvert.DeserializeObject<DataTable>(obj);
  3293. DataTable table = dataSet;
  3294. table = table.Select("LotNO<>''").CopyToDataTable();//排除空的条码
  3295. if (table.Rows.Count != 0)
  3296. {
  3297. #region 拣料时增加条码出入库记录,修改库存锁定数量,以作占料处理
  3298. string BusinessCode = string.Empty;
  3299. string TransType = string.Empty;
  3300. if (Type == "1") { BusinessCode = "13"; TransType = "生产发料-生产订单备料表"; }
  3301. if (Type == "2") { BusinessCode = "14"; TransType = "生产发料-领料申请单"; }
  3302. if (Type == "3") { BusinessCode = "15"; TransType = "生产发料-材料出库单"; }
  3303. if (Type == "4") { BusinessCode = "5"; TransType = "委外发料-委外订单备料表"; }
  3304. if (Type == "5") { BusinessCode = "6"; TransType = "委外发料-委外领料申请单"; }
  3305. if (Type == "6") { BusinessCode = "7"; TransType = "委外发料-委外材料出库单"; }
  3306. if (Type == "7") { BusinessCode = "19"; TransType = "销售发货-销售发货单"; }
  3307. if (Type == "8") { BusinessCode = "24"; TransType = "杂发"; }
  3308. if (Type == "9") { BusinessCode = "26"; TransType = "借用"; }
  3309. if (Type == "10") { BusinessCode = "46"; TransType = "调拨"; }
  3310. if (Type == "11") { BusinessCode = "22"; TransType = "两步调出"; }
  3311. if (Type == "15") { BusinessCode = "54"; TransType = "红字其他入库"; }
  3312. if (Type == "16") { BusinessCode = "55"; TransType = "销售出库单"; }
  3313. string Identification = Guid.NewGuid().ToString();
  3314. var pikTbLogTime = DateTime.Now;
  3315. pikTbLogsql = @"update b set b.LockQuantity=convert(decimal(18,6),b.LockQuantity)-convert(decimal(18,6),c.Quantity )
  3316. from dbo.ICSWareHouseLotInfo b
  3317. inner join (select sum(Quantity) as Quantity, LotNo from ICSWareHouseLotInfolog
  3318. where TransCode in ({0})and TransType='15' and WorkPoint='{1}' group by LotNo) c
  3319. on c.LotNo =b.LotNo
  3320. delete dbo.ICSWareHouseLotInfoLog where TransCode in({0}) and TransType='15' and WorkPoint='{1}'";
  3321. pikTbLogsql = string.Format(pikTbLogsql, ID, WorkPoint);
  3322. foreach (DataRow PickLog in table.Rows)
  3323. {
  3324. pikTbLogsql += @"
  3325. IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{9}' AND a.WorkPoint='{8}' AND Quantity-LockQuantity-"+ PickLog["SendQTY"].ToString() + @"<0)
  3326. BEGIN
  3327. RAISERROR(':"+ PickLog["LotNO"].ToString() + @"',16,1);
  3328. RETURN
  3329. END
  3330. IF NOT EXISTS(SELECT TransCode FROM ICSWareHouseLotInfoLog WHERE TransCode='{1}' AND TransSequence='{2}' AND LotNo='{9}' AND WorkPoint='{8}' AND TransType='15')
  3331. BEGIN
  3332. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  3333. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  3334. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  3335. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  3336. MTIME,WorkPoint,EATTRIBUTE1)
  3337. SELECT NEWID(),'{0}','{1}','{2}',a.LotNo ,a.InvCode ,
  3338. a.WarehouseCode,a.LocationCode,'','','{3}',
  3339. '','1','15','{4}','0','',
  3340. '','','','{5}' ,'{6}' ,
  3341. '{7}' ,'{8}' ,''
  3342. FROM ICSWareHouseLotInfo a
  3343. WHERE a.LotNo='{9}' AND a.WorkPoint='{8}'
  3344. update ICSWareHouseLotInfo set LockQuantity=LockQuantity+'{3}' where LotNo='{9}' AND WorkPoint='{8}'
  3345. END
  3346. UPDATE ICSMOApply SET MUSER='{6}' WHERE ApplyCode='{1}' and Sequence='{2}' ; ";
  3347. pikTbLogsql = string.Format(pikTbLogsql, Identification, PickLog["Code"].ToString(), PickLog["Sequence"].ToString(), PickLog["SendQTY"].ToString()
  3348. , BusinessCode, MUSER, MUSERNAME, pikTbLogTime, WorkPoint, PickLog["LotNO"].ToString());
  3349. }
  3350. #endregion
  3351. }
  3352. if (SqlHelper.CmdExecuteNonQueryLi(pikTbLogsql) > 0)
  3353. {
  3354. }
  3355. else
  3356. {
  3357. msg = "占料信息保存失败";
  3358. }
  3359. }
  3360. catch (Exception ex)
  3361. {
  3362. msg = ex.Message;
  3363. }
  3364. return msg;
  3365. }
  3366. public string SaveSeizeMaterial2(string ID, string Type,string LotNoInfo,string obj)
  3367. {
  3368. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3369. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3370. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3371. string msg = "";
  3372. string sql = string.Empty;
  3373. string pikTbLogsql = string.Empty;
  3374. ID = string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(',');
  3375. string sqls = "";
  3376. try
  3377. {
  3378. #region 就逻辑
  3379. // #region 各单据sql
  3380. // if (Type == "1")
  3381. // {
  3382. // #region 工单备料sql
  3383. // sqls = @" select
  3384. // x.MergeID,
  3385. // c.MOCode as Code,
  3386. //c.Sequence+'~'+a.Sequence as Sequence,
  3387. // a.InvCode,
  3388. // b.InvName,
  3389. // b.InvStd,
  3390. // b.InvUnit,
  3391. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3392. // a.WhCode,
  3393. // a.ExtensionID,
  3394. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3395. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3396. // FROM
  3397. // ICSMOPick a
  3398. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3399. // inner join ICSMO c on a.MODetailID=c.MODetailID and a.WorkPoint=c.WorkPoint
  3400. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3401. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3402. // WHERE c.MOCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0) and a.EATTRIBUTE1<>'1'
  3403. // GROUP BY c.MOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID,c.Sequence+'~'+a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3404. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3405. // #endregion
  3406. // }
  3407. // if (Type == "2")
  3408. // {
  3409. // #region 工单领料SQL
  3410. // sqls = @" select
  3411. // x.MergeID,
  3412. // a.ApplyCode as Code,
  3413. //a.Sequence,
  3414. // a.InvCode,
  3415. // b.InvName,
  3416. // b.InvStd,
  3417. //b.InvUnit,
  3418. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3419. // a.WhCode,
  3420. // a.ExtensionID,
  3421. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3422. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3423. // FROM
  3424. // ICSMOApply a
  3425. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3426. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3427. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3428. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3429. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3430. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3431. // #endregion
  3432. // }
  3433. // if (Type == "3")
  3434. // {
  3435. // #region 工单材料出库SQL
  3436. // sqls = @" select
  3437. // x.MergeID,
  3438. // a.IssueCode as Code,
  3439. //a.Sequence,
  3440. // a.InvCode,
  3441. // b.InvName,
  3442. // b.InvStd,
  3443. // b.InvUnit,
  3444. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3445. // a.WhCode,
  3446. // a.ExtensionID,
  3447. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3448. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3449. // FROM
  3450. // ICSMOIssue a
  3451. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3452. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3453. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3454. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3455. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3456. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3457. // #endregion
  3458. // }
  3459. // if (Type == "4")
  3460. // {
  3461. // #region 委外备料SQL
  3462. // sqls = @" select
  3463. // x.MergeID,
  3464. // c.OOCode as Code,
  3465. //c.Sequence+'~'+a.Sequence as Sequence,
  3466. // a.InvCode,
  3467. // b.InvName,
  3468. // b.InvStd,
  3469. // b.InvUnit,
  3470. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3471. // a.WhCode,
  3472. // a.ExtensionID,
  3473. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3474. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3475. // FROM
  3476. // ICSOOPick a
  3477. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3478. // left join ICSOutsourcingOrder c on a.OODetailID=c.OODetailID and a.WorkPoint=c.WorkPoint
  3479. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3480. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3481. // WHERE c.OOCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3482. // GROUP BY c.OOCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID, x.MergeID,c.Sequence+'~'+a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3483. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3484. // #endregion
  3485. // }
  3486. // if (Type == "5")
  3487. // {
  3488. // #region 委外领料SQL
  3489. // sqls = @" select
  3490. // x.MergeID,
  3491. // a.ApplyCode as Code,
  3492. //a.Sequence,
  3493. // a.InvCode,
  3494. // b.InvName,
  3495. // b.InvStd,
  3496. // b.InvUnit,
  3497. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3498. // a.WhCode,
  3499. // a.ExtensionID,
  3500. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3501. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3502. // FROM
  3503. // ICSOApply a
  3504. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3505. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3506. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3507. // WHERE a.ApplyCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3508. // GROUP BY a.ApplyCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3509. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3510. // #endregion
  3511. // }
  3512. // if (Type == "6")
  3513. // {
  3514. // #region 委外材料出库SQL
  3515. // sqls = @" select
  3516. // x.MergeID,
  3517. // a.IssueCode as Code,
  3518. //a.Sequence,
  3519. // a.InvCode,
  3520. // b.InvName,
  3521. // b.InvStd,
  3522. // b.InvUnit,
  3523. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3524. // a.WhCode,
  3525. // a.ExtensionID,
  3526. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3527. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3528. // FROM
  3529. // ICSOIssue a
  3530. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3531. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3532. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3533. // WHERE a.IssueCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3534. // GROUP BY a.IssueCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3535. //,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3536. // #endregion
  3537. // }
  3538. // if (Type == "7")
  3539. // {
  3540. // #region 销售发货SQL
  3541. // sqls = @" select
  3542. // x.MergeID,
  3543. // a.SDNCode as Code,
  3544. //a.Sequence,
  3545. // a.InvCode,
  3546. // b.InvName,
  3547. // b.InvStd,
  3548. // b.InvUnit,
  3549. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3550. // a.WhCode,
  3551. // a.ExtensionID,
  3552. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3553. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3554. // FROM
  3555. // ICSSDN a
  3556. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3557. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3558. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3559. // WHERE a.SDNCode in ({0}) AND a.WorkPoint = '{1}' AND a.Type='1' AND ISNULL(a.Quantity, 0)>ISNULL(a.SDNQuantity, 0)
  3560. // GROUP BY a.SDNCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3561. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3562. // #endregion
  3563. // }
  3564. // if (Type == "8")
  3565. // {
  3566. // #region 其它出库SQL
  3567. // sqls = @" select
  3568. // x.MergeID,
  3569. // a.OutCode as Code,
  3570. //a.Sequence,
  3571. // a.InvCode,
  3572. // b.InvName,
  3573. // b.InvStd,
  3574. // b.InvUnit,
  3575. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3576. // a.WhCode,
  3577. // a.ExtensionID,
  3578. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3579. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3580. // FROM
  3581. // ICSOtherOut a
  3582. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3583. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3584. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3585. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.OutQuantity, 0)
  3586. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3587. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3588. // #endregion
  3589. // }
  3590. // if (Type == "9")
  3591. // {
  3592. // #region 借用SQL
  3593. // sqls = @" select
  3594. // x.MergeID,
  3595. // a.BrrowCode as Code,
  3596. //a.Sequence,
  3597. // a.InvCode,
  3598. // b.InvName,
  3599. // b.InvStd,
  3600. // b.InvUnit,
  3601. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3602. // a.WhCode,
  3603. // a.ExtensionID,
  3604. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3605. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3606. // FROM
  3607. // ICSBrrow a
  3608. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3609. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3610. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3611. // WHERE a.BrrowCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.BrrowQuantity, 0)
  3612. // GROUP BY a.BrrowCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,a.ExtensionID,x.MergeID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3613. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3614. // #endregion
  3615. // }
  3616. // if (Type == "10")
  3617. // {
  3618. // #region 物料调拨
  3619. // sqls = @" select
  3620. // x.MergeID,
  3621. // a.TransferNO as Code,
  3622. //a.Sequence,
  3623. // a.InvCode,
  3624. // b.InvName,
  3625. // b.InvStd,
  3626. // b.InvUnit,
  3627. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3628. // a.FromWarehouseCode as WhCode,
  3629. // a.ExtensionID,
  3630. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3631. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3632. // FROM
  3633. // ICSTransfer a
  3634. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3635. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3636. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3637. // WHERE a.TransferNO in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.TransferQuantity, 0)
  3638. // GROUP BY a.TransferNO,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.FromWarehouseCode,a.ExtensionID,x.MergeID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3639. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3640. // #endregion
  3641. // }
  3642. // if (Type == "11")
  3643. // {
  3644. // #region 两步调出
  3645. // sqls = @" select
  3646. // x.MergeID,
  3647. // a.OutCode as Code,
  3648. //a.Sequence,
  3649. // a.InvCode,
  3650. // b.InvName,
  3651. // b.InvStd,
  3652. // b.InvUnit,
  3653. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3654. // a.WHCode as WhCode,
  3655. // a.ExtensionID,
  3656. // f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3657. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3658. // FROM
  3659. // ICSOtherOut a
  3660. // INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  3661. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3662. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3663. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3664. // WHERE a.OutCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.OutQuantity, 0)
  3665. // GROUP BY a.OutCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WHCode,a.ExtensionID,x.MergeID,a.Sequence, f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3666. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3667. // #endregion
  3668. // }
  3669. // if (Type == "12")
  3670. // {
  3671. // #region 补料SQL
  3672. // sqls = @" select
  3673. // x.MergeID,
  3674. // a.ReplenishmentCode as Code,
  3675. //a.Sequence,
  3676. // a.InvCode,
  3677. // b.InvName,
  3678. // b.InvStd,
  3679. //b.InvUnit,
  3680. // SUM(ISNULL(a.Quantity, 0)) AS iQuantity,
  3681. // a.WhCode,
  3682. // a.ExtensionID,
  3683. //f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3684. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3685. // FROM
  3686. // ICSMOReplenishment a
  3687. // inner join ICSMOPickMerge x on a.ID=x.SourceID and a.WorkPoint=x.WorkPoint
  3688. // LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode AND a.WorkPoint=b.WorkPoint
  3689. // LEFT JOIN ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3690. // WHERE a.ReplenishmentCode in ({0}) AND a.WorkPoint = '{1}' AND ISNULL(a.Quantity, 0)>ISNULL(a.IssueQuantity, 0)
  3691. // GROUP BY a.ReplenishmentCode,a.InvCode,b.InvName,b.InvStd,b.InvUnit,a.WhCode,x.MergeID,a.ExtensionID,a.Sequence,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3692. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10";
  3693. // #endregion
  3694. // }
  3695. // #endregion
  3696. // sqls = string.Format(sqls, string.IsNullOrWhiteSpace(ID) ? "''" : ID.TrimEnd(','), WorkPoint);
  3697. // #region sql
  3698. // sql = $@"SELECT row_number() over (order by c.Code,c.InvCode,d.MTIME,d.LotNO) AS rowNo,
  3699. // c.MergeID,
  3700. // c.Code,
  3701. //c.Sequence,
  3702. // c.InvCode,
  3703. // c.InvName,
  3704. // c.InvStd,
  3705. // c.InvUnit,
  3706. // FLOOR(c.iQuantity) AS iQuantity,
  3707. // d.WarehouseCode,
  3708. // d.LocationCode,
  3709. // d.LotNO,
  3710. // ISNULL(d.Quantity, 0) AS QTY,
  3711. // ISNULL(d.Quantity, 0) AS QTYLeft,
  3712. // CONVERT(decimal(18,6),0) AS SendQTY,
  3713. // d.LocationCode AS LocationCode,
  3714. // CONVERT(varchar(100),d.MTIME, 23) MTIME,
  3715. // f.QTYTotal QTYTotal,c.ExtensionID
  3716. // FROM
  3717. // ({sqls}) c
  3718. // inner join (select d.WarehouseCode,d.Quantity,d.INVCode, m.LotNo, d.MTIME,d.LocationCode,m.ExtensionID , f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3719. //,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  3720. // from ICSWareHouseLotInfo d ,ICSInventoryLot m
  3721. // LEFT JOIN ICSExtension f on m.ExtensionID=f.ID and m.WorkPoint=f.WorkPoint
  3722. // where d.LotNo=m.LotNo and d.WorkPoint=m.WorkPoint
  3723. // and d.WorkPoint='{WorkPoint}' AND d.Quantity-d.LockQuantity>0 AND isnull(d.Quantity,0)>0 ) d
  3724. // on c.InvCode=d.INVCode
  3725. // AND (LEN(ISNULL(c.WHCode,''))<=0 OR (LEN(ISNULL(c.WHCode,''))>0 AND c.WHCode=d.WarehouseCode))
  3726. // AND (LEN(ISNULL(c.ProjectCode,''))<=0 OR (LEN(ISNULL(c.ProjectCode,''))>0 AND c.ProjectCode=d.ProjectCode))
  3727. // AND (LEN(ISNULL(c.BatchCode,''))<=0 OR (LEN(ISNULL(c.BatchCode,''))>0 AND c.BatchCode=d.BatchCode))
  3728. // AND (LEN(ISNULL(c.Version,''))<=0 OR (LEN(ISNULL(c.Version,''))>0 AND c.Version=d.Version))
  3729. // AND (LEN(ISNULL(c.Brand,''))<=0 OR (LEN(ISNULL(c.Brand,''))>0 AND c.Brand=d.Brand))
  3730. // AND (LEN(ISNULL(c.cFree1,''))<=0 OR (LEN(ISNULL(c.cFree1,''))>0 AND c.cFree1=d.cFree1))
  3731. // AND (LEN(ISNULL(c.cFree2,''))<=0 OR (LEN(ISNULL(c.cFree2,''))>0 AND c.cFree2=d.cFree2))
  3732. // AND (LEN(ISNULL(c.cFree3,''))<=0 OR (LEN(ISNULL(c.cFree3,''))>0 AND c.cFree3=d.cFree3))
  3733. // AND (LEN(ISNULL(c.cFree4,''))<=0 OR (LEN(ISNULL(c.cFree4,''))>0 AND c.cFree4=d.cFree4))
  3734. // AND (LEN(ISNULL(c.cFree5,''))<=0 OR (LEN(ISNULL(c.cFree5,''))>0 AND c.cFree5=d.cFree5))
  3735. // AND (LEN(ISNULL(c.cFree6,''))<=0 OR (LEN(ISNULL(c.cFree6,''))>0 AND c.cFree6=d.cFree6))
  3736. // AND (LEN(ISNULL(c.cFree7,''))<=0 OR (LEN(ISNULL(c.cFree7,''))>0 AND c.cFree7=d.cFree7))
  3737. // AND (LEN(ISNULL(c.cFree8,''))<=0 OR (LEN(ISNULL(c.cFree8,''))>0 AND c.cFree8=d.cFree8))
  3738. // AND (LEN(ISNULL(c.cFree9,''))<=0 OR (LEN(ISNULL(c.cFree9,''))>0 AND c.cFree9=d.cFree9))
  3739. // AND (LEN(ISNULL(c.cFree10,''))<=0 OR (LEN(ISNULL(c.cFree10,''))>0 AND c.cFree10=d.cFree10))
  3740. // LEFT JOIN (SELECT INVCode,WarehouseCode,SUM(Quantity) AS QTYTotal FROM ICSWareHouseLotInfo WHERE WorkPoint='{WorkPoint}' GROUP BY INVCode,WarehouseCode) f ON c.InvCode=f.INVCode AND c.WhCode=f.WarehouseCode
  3741. // order by c.Code,c.InvCode,c.Sequence,d.MTIME ";
  3742. // #endregion
  3743. // var dataset = Repository().FindDataSetBySql(sql);
  3744. // if (dataset.Tables[0].Rows.Count == 0)
  3745. // return null;
  3746. // DataTable table = dataset.Tables[0];
  3747. // decimal qtyCount = 0;
  3748. // bool remove = false;
  3749. // List<int> removeList = new List<int>();
  3750. // for (int i = 0; i < table.Rows.Count; i++)
  3751. // {
  3752. // if (i != 0
  3753. // && (!table.Rows[i]["InvCode"].ToString().Equals(table.Rows[i - 1]["InvCode"].ToString())
  3754. // || !table.Rows[i]["Sequence"].ToString().Equals(table.Rows[i - 1]["Sequence"].ToString())
  3755. // || !table.Rows[i]["Code"].ToString().Equals(table.Rows[i - 1]["Code"].ToString())
  3756. // || !table.Rows[i]["ExtensionID"].ToString().Equals(table.Rows[i - 1]["ExtensionID"].ToString()))
  3757. // )
  3758. // {
  3759. // qtyCount = 0;
  3760. // remove = false;
  3761. // }
  3762. // if (table.Rows[i]["QTYLeft"].ToString().ToDecimal() == 0)
  3763. // {
  3764. // removeList.Add(i);
  3765. // continue;
  3766. // }
  3767. // if (remove)
  3768. // {
  3769. // removeList.Add(i);
  3770. // }
  3771. // else
  3772. // {
  3773. // var lotQty = table.Rows[i]["QTYLeft"].ToString().ToDecimal();
  3774. // var orderQty = table.Rows[i]["iQuantity"].ToString().ToDecimal();
  3775. // qtyCount += lotQty;
  3776. // foreach (DataRow dr in table.Rows)
  3777. // {
  3778. // if (dr["LotNO"].ToString() == table.Rows[i]["LotNO"].ToString())
  3779. // {
  3780. // if (qtyCount > orderQty)
  3781. // {
  3782. // dr["QTYLeft"] = Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty);
  3783. // }
  3784. // else
  3785. // {
  3786. // dr["QTYLeft"] = 0;
  3787. // }
  3788. // }
  3789. // }
  3790. // if (qtyCount >= orderQty)
  3791. // {
  3792. // table.Rows[i]["SendQTY"] = Convert.ToDecimal(lotQty) - (Convert.ToDecimal(qtyCount) - Convert.ToDecimal(orderQty));
  3793. // remove = true;
  3794. // }
  3795. // else
  3796. // {
  3797. // table.Rows[i]["SendQTY"] = lotQty;
  3798. // }
  3799. // }
  3800. // }
  3801. // if (removeList.Count > 0)
  3802. // {
  3803. // removeList.Reverse();
  3804. // foreach (var item in removeList)
  3805. // {
  3806. // table.Rows.RemoveAt(item);
  3807. // }
  3808. // }
  3809. // try
  3810. // {
  3811. // decimal ZLQty = 0;
  3812. // decimal DJQty = 0;
  3813. // for (int i = 0; i < table.Rows.Count; i++)
  3814. // {
  3815. // ZLQty += Convert.ToDecimal(table.Rows[i]["SendQTY"].ToString());
  3816. // DJQty += Convert.ToDecimal(table.Rows[i]["iQuantity"].ToString());
  3817. // }
  3818. // if (ZLQty != DJQty)
  3819. // {
  3820. // throw new Exception("单据所匹配条码与单据数量不符,无法保存!");
  3821. // }
  3822. #endregion
  3823. var dataSet = JsonConvert.DeserializeObject<DataTable>(obj);
  3824. DataTable table = dataSet;
  3825. table= table.Select("LotNO<>''").CopyToDataTable();//排除空的条码
  3826. if (table.Rows.Count != 0)
  3827. {
  3828. #region 拣料时增加条码出入库记录,修改库存锁定数量,以作占料处理
  3829. string BusinessCode = string.Empty;
  3830. string TransType = string.Empty;
  3831. if (Type == "1") { BusinessCode = "13"; TransType = "生产发料-生产订单备料表"; }
  3832. if (Type == "2") { BusinessCode = "14"; TransType = "生产发料-领料申请单"; }
  3833. if (Type == "3") { BusinessCode = "15"; TransType = "生产发料-材料出库单"; }
  3834. if (Type == "4") { BusinessCode = "5"; TransType = "委外发料-委外订单备料表"; }
  3835. if (Type == "5") { BusinessCode = "6"; TransType = "委外发料-委外领料申请单"; }
  3836. if (Type == "6") { BusinessCode = "7"; TransType = "委外发料-委外材料出库单"; }
  3837. if (Type == "7") { BusinessCode = "19"; TransType = "销售发货-销售发货单"; }
  3838. if (Type == "8") { BusinessCode = "24"; TransType = "杂发"; }
  3839. if (Type == "9") { BusinessCode = "26"; TransType = "借用"; }
  3840. if (Type == "10") { BusinessCode = "46"; TransType = "调拨"; }
  3841. if (Type == "11") { BusinessCode = "22"; TransType = "两步调出"; }
  3842. if (Type == "12") { BusinessCode = "49"; TransType = "补料"; }
  3843. if (Type == "15") { BusinessCode = "54"; TransType = "红字其他入库"; }
  3844. if (Type == "16") { BusinessCode = "55"; TransType = "销售出库单"; }
  3845. string Identification = Guid.NewGuid().ToString();
  3846. var pikTbLogTime = DateTime.Now;
  3847. List<string> DocNoList = new List<string>();
  3848. pikTbLogsql = @"update b set b.LockQuantity=convert(decimal(18,6),b.LockQuantity)-convert(decimal(18,6),c.Quantity )
  3849. from dbo.ICSWareHouseLotInfo b
  3850. inner join (select sum(Quantity) as Quantity, LotNo from ICSWareHouseLotInfolog
  3851. where TransCode in ({0})and TransType='15' and WorkPoint='{1}' group by LotNo) c
  3852. on c.LotNo =b.LotNo
  3853. delete dbo.ICSWareHouseLotInfoLog where TransCode in({0}) and TransType='15' and WorkPoint='{1}'";
  3854. pikTbLogsql = string.Format(pikTbLogsql, ID, WorkPoint);
  3855. foreach (DataRow PickLog in table.Rows)
  3856. {
  3857. pikTbLogsql += @" IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{9}' AND a.WorkPoint='{8}' AND Quantity-LockQuantity-"+ PickLog["SendQTY"].ToString()+ @"<0)
  3858. BEGIN
  3859. RAISERROR(':"+ PickLog["LotNO"].ToString() + @"',16,1);
  3860. RETURN
  3861. END
  3862. IF NOT EXISTS(SELECT TransCode FROM ICSWareHouseLotInfoLog WHERE TransCode='{1}' AND TransSequence='{2}' AND LotNo='{9}' AND WorkPoint='{8}' AND TransType='15')
  3863. BEGIN
  3864. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  3865. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  3866. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  3867. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  3868. MTIME,WorkPoint,EATTRIBUTE1,MergeID)
  3869. SELECT NEWID(),'{0}','{1}','{2}',a.LotNo ,a.InvCode ,
  3870. a.WarehouseCode,a.LocationCode,'','','{3}',
  3871. '','1','15','{4}','0','',
  3872. '','','','{5}' ,'{6}' ,
  3873. '{7}' ,'{8}' ,'','{10}'
  3874. FROM ICSWareHouseLotInfo a
  3875. WHERE a.LotNo='{9}' AND a.WorkPoint='{8}'
  3876. update ICSWareHouseLotInfo set LockQuantity=LockQuantity+'{3}' where LotNo='{9}' AND WorkPoint='{8}'
  3877. END
  3878. UPDATE ICSMOApply SET MUSER='{6}' WHERE ApplyCode='{1}' and Sequence='{2}' ; ";
  3879. pikTbLogsql = string.Format(pikTbLogsql, Identification, PickLog["Code"].ToString(), PickLog["Sequence"].ToString(), PickLog["SendQTY"].ToString()
  3880. , BusinessCode, MUSER, MUSERNAME, pikTbLogTime, WorkPoint, PickLog["LotNO"].ToString(), PickLog["MergeID"].ToString());
  3881. }
  3882. #endregion
  3883. }
  3884. if (SqlHelper.CmdExecuteNonQueryLi(pikTbLogsql) > 0)
  3885. {
  3886. }
  3887. else
  3888. {
  3889. msg = "占料信息保存失败";
  3890. }
  3891. }
  3892. catch (Exception ex)
  3893. {
  3894. msg= ex.Message;
  3895. }
  3896. return msg;
  3897. }
  3898. public object SeachPickingListType(string Type)
  3899. {
  3900. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3901. string sql = @" select b.F_EnabledMark as flag from Sys_SRM_Items a left join Sys_SRM_ItemsDetail b on a.F_Id=b.F_ItemId
  3902. where a.F_EnCode='PL00001' and b.F_ItemCode='{0}' order by cast(b.F_SortCode as int) asc";
  3903. sql = string.Format(sql, Type);
  3904. object flag =SqlHelper.ExecuteScalar(sql);
  3905. return flag;
  3906. }
  3907. //查询占料(工单备料(工单子件))
  3908. public DataTable GetGridJsonSeizeM(string queryJson, ref Pagination jqgridparam)
  3909. {
  3910. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3911. DataTable dt = new DataTable();
  3912. var queryParam = queryJson.ToJObject();
  3913. List<DbParameter> parameter = new List<DbParameter>();
  3914. string sql = "";
  3915. #region [SQL]
  3916. sql = @"select distinct
  3917. a.MOCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,d.MergeID AS IsNew,
  3918. case when k.TransCode is null then '' else '' end as IsOccupy
  3919. from ICSMO a
  3920. inner join ICSMOPick b on b.MODetailID=a.MODetailID and b.WorkPoint=a.WorkPoint
  3921. left join ICSMOPickMerge d on d.SourceID=b.ID and d.WorkPoint=b.WorkPoint
  3922. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.MOCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  3923. where a.MOStatus<>'3' and isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'
  3924. ";
  3925. sql = string.Format(sql, WorkPoint);
  3926. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  3927. #endregion
  3928. #region 条件
  3929. if (!string.IsNullOrWhiteSpace(queryJson))
  3930. {
  3931. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3932. {
  3933. sql += " and b.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3934. }
  3935. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3936. {
  3937. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3938. }
  3939. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  3940. {
  3941. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  3942. }
  3943. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  3944. {
  3945. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  3946. }
  3947. }
  3948. #endregion
  3949. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3950. }
  3951. //查询占料(工单备料(工单子件))子表查询
  3952. public DataTable GetSubGridJsonSeizeM1(string Code, ref Pagination jqgridparam)
  3953. {
  3954. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3955. DataTable dt = new DataTable();
  3956. //var queryParam = queryJson.ToJObject();
  3957. List<DbParameter> parameter = new List<DbParameter>();
  3958. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  3959. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  3960. from ICSMO k
  3961. inner join ICSMOPick d on d.MODetailID=k.MODetailID and d.WorkPoint=k.WorkPoint
  3962. left join ICSMOPickMerge e on d.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  3963. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.MOCode and d.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  3964. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3965. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  3966. where k.MOStatus<>'3' and k.MOCode='{0}' and a.WorkPoint='{1}'";
  3967. sql = string.Format(sql, Code, WorkPoint);
  3968. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3969. }
  3970. //查询占料(工单备料(工单子件))子表查询
  3971. public DataTable GetSubGridJsonSeizeM3(string Code, ref Pagination jqgridparam)
  3972. {
  3973. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3974. DataTable dt = new DataTable();
  3975. //var queryParam = queryJson.ToJObject();
  3976. List<DbParameter> parameter = new List<DbParameter>();
  3977. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  3978. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  3979. from ICSMO k
  3980. inner join ICSMOPick d on d.MODetailID=k.MODetailID and d.WorkPoint=k.WorkPoint
  3981. left join ICSMOPickMerge e on d.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  3982. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.MOCode and d.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  3983. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3984. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  3985. where k.MOStatus<>'3' and k.MOCode='{0}' and a.WorkPoint='{1}'";
  3986. sql = string.Format(sql, Code, WorkPoint);
  3987. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3988. }
  3989. //查询占料(工单领料(发料申请))
  3990. public DataTable GetGridJsonSeizeM2(string queryJson, ref Pagination jqgridparam)
  3991. {
  3992. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3993. DataTable dt = new DataTable();
  3994. var queryParam = queryJson.ToJObject();
  3995. List<DbParameter> parameter = new List<DbParameter>();
  3996. string sql = "";
  3997. #region [SQL]
  3998. sql = @"
  3999. select distinct a.ApplyCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,e.MergeID AS IsNew,
  4000. case when k.TransCode is null then '' else '' end as IsOccupy
  4001. from ICSMOApply a
  4002. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4003. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.ApplyCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4004. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'";
  4005. sql = string.Format(sql, WorkPoint);
  4006. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4007. #endregion
  4008. #region 条件
  4009. if (!string.IsNullOrWhiteSpace(queryJson))
  4010. {
  4011. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4012. {
  4013. sql += " and a.ApplyCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4014. }
  4015. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4016. {
  4017. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4018. }
  4019. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4020. {
  4021. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4022. }
  4023. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4024. {
  4025. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4026. }
  4027. }
  4028. #endregion
  4029. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4030. }
  4031. //查询占料(工单领料(发料申请))子表查询
  4032. public DataTable GetSubGridJsonSeizeM2(string Code, ref Pagination jqgridparam)
  4033. {
  4034. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4035. DataTable dt = new DataTable();
  4036. //var queryParam = queryJson.ToJObject();
  4037. List<DbParameter> parameter = new List<DbParameter>();
  4038. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4039. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4040. from ICSMOApply k
  4041. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4042. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.ApplyCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4043. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4044. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4045. where k.ApplyCode='{0}' and a.WorkPoint='{1}'";
  4046. sql = string.Format(sql, Code, WorkPoint);
  4047. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4048. }
  4049. //查询占料(工单材料出库(材料出库))
  4050. public DataTable GetGridJsonSeizeM3(string queryJson, ref Pagination jqgridparam)
  4051. {
  4052. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4053. DataTable dt = new DataTable();
  4054. var queryParam = queryJson.ToJObject();
  4055. List<DbParameter> parameter = new List<DbParameter>();
  4056. string sql = "";
  4057. #region [SQL]
  4058. sql = @"select distinct a.IssueCode as Code,a.CreateDateTime as MTIME,a.createperson as MUSER,e.MergeID AS IsNew,
  4059. case when k.TransCode is null then '' else '' end as IsOccupy
  4060. from ICSMOIssue a
  4061. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4062. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.IssueCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4063. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'";
  4064. sql = string.Format(sql, WorkPoint);
  4065. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4066. #endregion
  4067. #region 条件
  4068. if (!string.IsNullOrWhiteSpace(queryJson))
  4069. {
  4070. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4071. {
  4072. sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4073. }
  4074. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4075. {
  4076. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4077. }
  4078. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4079. {
  4080. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4081. }
  4082. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4083. {
  4084. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4085. }
  4086. }
  4087. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4088. {
  4089. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4090. }
  4091. #endregion
  4092. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4093. }
  4094. //查询占料(工单材料出库(材料出库))子表查询
  4095. public DataTable GetSubGridJsonSeizeM3(string Code)
  4096. {
  4097. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4098. DataTable dt = new DataTable();
  4099. //var queryParam = queryJson.ToJObject();
  4100. List<DbParameter> parameter = new List<DbParameter>();
  4101. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4102. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4103. from ICSMOApply k
  4104. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4105. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.ApplyCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4106. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4107. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4108. where k.ApplyCode='{0}' and a.WorkPoint='{1}'";
  4109. sql = string.Format(sql, Code, WorkPoint);
  4110. return Repository().FindTableBySql(sql.ToString());
  4111. }
  4112. //查询占料(委外备料(委外备料))
  4113. public DataTable GetGridJsonSeizeM4(string queryJson, ref Pagination jqgridparam)
  4114. {
  4115. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4116. DataTable dt = new DataTable();
  4117. var queryParam = queryJson.ToJObject();
  4118. List<DbParameter> parameter = new List<DbParameter>();
  4119. string sql = "";
  4120. #region [SQL]
  4121. sql = @"select distinct b.OOCode as Code, b.CreateDateTime as MTIME,b.CreatePerson as MUSER,e.MergeID AS IsNew,
  4122. case when k.TransCode is null then '' else '' end as IsOccupy
  4123. from ICSOOPick a
  4124. inner join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID and a.WorkPoint=b.WorkPoint
  4125. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4126. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on b.OOCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4127. WHERE isnull(k.TransCode,'')<>'' and b.WorkPoint='{0}'";
  4128. sql = string.Format(sql, WorkPoint);
  4129. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4130. #endregion
  4131. #region 条件
  4132. if (!string.IsNullOrWhiteSpace(queryJson))
  4133. {
  4134. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4135. {
  4136. sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4137. }
  4138. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4139. {
  4140. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4141. }
  4142. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4143. {
  4144. sql += " and convert(nvarchar(20),b.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4145. }
  4146. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4147. {
  4148. sql += " and convert(nvarchar(20),b.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4149. }
  4150. }
  4151. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4152. {
  4153. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4154. }
  4155. #endregion
  4156. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4157. }
  4158. //查询占料(委外备料(委外备料))子表查询
  4159. public DataTable GetSubGridJsonSeizeM4(string Code, ref Pagination jqgridparam)
  4160. {
  4161. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4162. DataTable dt = new DataTable();
  4163. //var queryParam = queryJson.ToJObject();
  4164. List<DbParameter> parameter = new List<DbParameter>();
  4165. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4166. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4167. from ICSOOPick k
  4168. inner join ICSOutsourcingOrder d on k.OODetailID=d.OODetailID and k.WorkPoint=d.WorkPoint
  4169. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4170. inner join ICSWareHouseLotInfoLog a on a.TransCode=d.OOCode and d.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4171. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4172. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4173. where d.OOCode='{0}' and a.WorkPoint='{1}'";
  4174. sql = string.Format(sql, Code, WorkPoint);
  4175. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4176. }
  4177. //查询占料(委外领料(委外发料申请))
  4178. public DataTable GetGridJsonSeizeM5(string queryJson, ref Pagination jqgridparam)
  4179. {
  4180. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4181. DataTable dt = new DataTable();
  4182. var queryParam = queryJson.ToJObject();
  4183. List<DbParameter> parameter = new List<DbParameter>();
  4184. string sql = "";
  4185. #region [SQL]
  4186. sql = @"select distinct a.ApplyCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,e.MergeID AS IsNew,
  4187. case when k.TransCode is null then '' else '' end as IsOccupy
  4188. from ICSOApply a
  4189. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4190. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.ApplyCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4191. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'";
  4192. sql = string.Format(sql, WorkPoint);
  4193. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4194. #endregion
  4195. #region 条件
  4196. if (!string.IsNullOrWhiteSpace(queryJson))
  4197. {
  4198. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4199. {
  4200. sql += " and a.ApplyCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4201. }
  4202. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4203. {
  4204. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4205. }
  4206. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4207. {
  4208. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4209. }
  4210. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4211. {
  4212. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4213. }
  4214. }
  4215. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4216. {
  4217. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4218. }
  4219. #endregion
  4220. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4221. }
  4222. //查询占料(委外领料(委外发料申请))子表查询
  4223. public DataTable GetSubGridJsonSeizeM5(string Code, ref Pagination jqgridparam)
  4224. {
  4225. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4226. DataTable dt = new DataTable();
  4227. //var queryParam = queryJson.ToJObject();
  4228. List<DbParameter> parameter = new List<DbParameter>();
  4229. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4230. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4231. from ICSOApply k
  4232. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4233. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.ApplyCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4234. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4235. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4236. where k.ApplyCode='{0}' and a.WorkPoint='{1}'";
  4237. sql = string.Format(sql, Code, WorkPoint);
  4238. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4239. }
  4240. //查询占料(委外材料出库(委外发料申请))
  4241. public DataTable GetGridJsonSeizeM6(string queryJson, ref Pagination jqgridparam)
  4242. {
  4243. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4244. DataTable dt = new DataTable();
  4245. var queryParam = queryJson.ToJObject();
  4246. List<DbParameter> parameter = new List<DbParameter>();
  4247. string sql = "";
  4248. #region [SQL]
  4249. sql = @"select distinct a.IssueCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,e.MergeID AS IsNew,
  4250. case when k.TransCode is null then '' else '' end as IsOccupy
  4251. from ICSOIssue a
  4252. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4253. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.IssueCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4254. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'
  4255. ";
  4256. sql = string.Format(sql, WorkPoint);
  4257. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4258. #endregion
  4259. #region 条件
  4260. if (!string.IsNullOrWhiteSpace(queryJson))
  4261. {
  4262. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4263. {
  4264. sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4265. }
  4266. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4267. {
  4268. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4269. }
  4270. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4271. {
  4272. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4273. }
  4274. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4275. {
  4276. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4277. }
  4278. }
  4279. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4280. {
  4281. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4282. }
  4283. #endregion
  4284. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4285. }
  4286. //查询占料(委外材料出库(委外发料申请))子表查询
  4287. public DataTable GetSubGridJsonSeizeM6(string Code, ref Pagination jqgridparam)
  4288. {
  4289. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4290. DataTable dt = new DataTable();
  4291. //var queryParam = queryJson.ToJObject();
  4292. List<DbParameter> parameter = new List<DbParameter>();
  4293. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4294. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4295. from ICSOIssue k
  4296. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4297. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.IssueCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4298. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4299. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4300. where k.IssueCode='{0}' and a.WorkPoint='{1}'";
  4301. sql = string.Format(sql, Code, WorkPoint);
  4302. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4303. }
  4304. //查询占料(销售发货(销售发货))
  4305. public DataTable GetGridJsonSeizeM7(string queryJson, ref Pagination jqgridparam)
  4306. {
  4307. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4308. DataTable dt = new DataTable();
  4309. var queryParam = queryJson.ToJObject();
  4310. List<DbParameter> parameter = new List<DbParameter>();
  4311. string sql = "";
  4312. #region [SQL]
  4313. sql = @"select distinct a.SDNCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,e.MergeID AS IsNew,
  4314. case when k.TransCode is null then '' else '' end as IsOccupy
  4315. from ICSSDN a
  4316. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4317. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.SDNCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4318. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'";
  4319. sql = string.Format(sql, WorkPoint);
  4320. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4321. #endregion
  4322. #region 条件
  4323. if (!string.IsNullOrWhiteSpace(queryJson))
  4324. {
  4325. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4326. {
  4327. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4328. }
  4329. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4330. {
  4331. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4332. }
  4333. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4334. {
  4335. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4336. }
  4337. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4338. {
  4339. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4340. }
  4341. }
  4342. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4343. {
  4344. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4345. }
  4346. #endregion
  4347. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4348. }
  4349. //查询占料(销售发货(销售发货))子表查询
  4350. public DataTable GetSubGridJsonSeizeM7(string Code, ref Pagination jqgridparam)
  4351. {
  4352. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4353. DataTable dt = new DataTable();
  4354. //var queryParam = queryJson.ToJObject();
  4355. List<DbParameter> parameter = new List<DbParameter>();
  4356. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4357. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4358. from ICSSDN k
  4359. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4360. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.SDNCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4361. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4362. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4363. where k.SDNCode='{0}' and a.WorkPoint='{1}'";
  4364. sql = string.Format(sql, Code, WorkPoint);
  4365. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4366. }
  4367. //查询占料(其它出库(其它出库))
  4368. public DataTable GetGridJsonSeizeM8(string queryJson, ref Pagination jqgridparam)
  4369. {
  4370. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4371. DataTable dt = new DataTable();
  4372. var queryParam = queryJson.ToJObject();
  4373. List<DbParameter> parameter = new List<DbParameter>();
  4374. string sql = "";
  4375. #region [SQL]
  4376. sql = @"select distinct a.OutCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,e.MergeID AS IsNew,
  4377. case when k.TransCode is null then '' else '' end as IsOccupy
  4378. from ICSOtherOut a
  4379. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4380. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.OutCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4381. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'";
  4382. sql = string.Format(sql, WorkPoint);
  4383. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4384. #endregion
  4385. #region 条件
  4386. if (!string.IsNullOrWhiteSpace(queryJson))
  4387. {
  4388. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4389. {
  4390. sql += " and a.OutCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4391. }
  4392. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4393. {
  4394. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4395. }
  4396. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4397. {
  4398. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4399. }
  4400. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4401. {
  4402. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4403. }
  4404. }
  4405. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4406. {
  4407. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4408. }
  4409. #endregion
  4410. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4411. }
  4412. //查询占料(其它出库(其它出库))子表查询
  4413. public DataTable GetSubGridJsonSeizeM8(string Code, ref Pagination jqgridparam)
  4414. {
  4415. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4416. DataTable dt = new DataTable();
  4417. //var queryParam = queryJson.ToJObject();
  4418. List<DbParameter> parameter = new List<DbParameter>();
  4419. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4420. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4421. from ICSOtherOut k
  4422. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4423. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.OutCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4424. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4425. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4426. where k.OutCode='{0}' and a.WorkPoint='{1}'";
  4427. sql = string.Format(sql, Code, WorkPoint);
  4428. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4429. }
  4430. //查询占料(借用(借用))
  4431. public DataTable GetGridJsonSeizeM9(string queryJson, ref Pagination jqgridparam)
  4432. {
  4433. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4434. DataTable dt = new DataTable();
  4435. var queryParam = queryJson.ToJObject();
  4436. List<DbParameter> parameter = new List<DbParameter>();
  4437. string sql = "";
  4438. #region [SQL]
  4439. sql = @"select distinct a.BrrowCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,e.MergeID AS IsNew,
  4440. case when k.TransCode is null then '' else '' end as IsOccupy
  4441. from ICSBrrow a
  4442. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4443. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.BrrowCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4444. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}'";
  4445. sql = string.Format(sql, WorkPoint);
  4446. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4447. #endregion
  4448. #region 条件
  4449. if (!string.IsNullOrWhiteSpace(queryJson))
  4450. {
  4451. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4452. {
  4453. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4454. }
  4455. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4456. {
  4457. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4458. }
  4459. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4460. {
  4461. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4462. }
  4463. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4464. {
  4465. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4466. }
  4467. }
  4468. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4469. {
  4470. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4471. }
  4472. #endregion
  4473. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4474. }
  4475. //查询占料(借用(借用))子表查询
  4476. public DataTable GetSubGridJsonSeizeM9(string Code, ref Pagination jqgridparam)
  4477. {
  4478. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4479. DataTable dt = new DataTable();
  4480. //var queryParam = queryJson.ToJObject();
  4481. List<DbParameter> parameter = new List<DbParameter>();
  4482. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4483. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4484. from ICSBrrow k
  4485. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4486. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.BrrowCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4487. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4488. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4489. where k.BrrowCode='{0}' and a.WorkPoint='{1}'";
  4490. sql = string.Format(sql, Code, WorkPoint);
  4491. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4492. }
  4493. //查询占料(物料调拨)
  4494. public DataTable GetGridJsonSeizeM10(string queryJson, ref Pagination jqgridparam)
  4495. {
  4496. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4497. DataTable dt = new DataTable();
  4498. var queryParam = queryJson.ToJObject();
  4499. List<DbParameter> parameter = new List<DbParameter>();
  4500. string sql = "";
  4501. #region [SQL]
  4502. sql = @"select distinct a.TransferNO as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,e.MergeID AS IsNew,
  4503. case when k.TransCode is null then '' else '' end as IsOccupy
  4504. from ICSTransfer a
  4505. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4506. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.TransferNO=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4507. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}' and a.Status='1'";
  4508. sql = string.Format(sql, WorkPoint);
  4509. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4510. #endregion
  4511. #region 条件
  4512. if (!string.IsNullOrWhiteSpace(queryJson))
  4513. {
  4514. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4515. {
  4516. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4517. }
  4518. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4519. {
  4520. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4521. }
  4522. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4523. {
  4524. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4525. }
  4526. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4527. {
  4528. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4529. }
  4530. }
  4531. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4532. {
  4533. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4534. }
  4535. #endregion
  4536. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4537. }
  4538. //查询占料(物料调拨)子表查询
  4539. public DataTable GetSubGridJsonSeizeM10(string Code, ref Pagination jqgridparam)
  4540. {
  4541. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4542. DataTable dt = new DataTable();
  4543. //var queryParam = queryJson.ToJObject();
  4544. List<DbParameter> parameter = new List<DbParameter>();
  4545. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4546. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4547. from ICSTransfer k
  4548. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4549. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.TransferNO and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4550. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4551. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4552. where k.TransferNO='{0}' and a.WorkPoint='{1}'";
  4553. sql = string.Format(sql, Code, WorkPoint);
  4554. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4555. }
  4556. //两步调拨
  4557. public DataTable GetGridJsonSeizeM11(string queryJson, ref Pagination jqgridparam)
  4558. {
  4559. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4560. DataTable dt = new DataTable();
  4561. var queryParam = queryJson.ToJObject();
  4562. List<DbParameter> parameter = new List<DbParameter>();
  4563. string sql = "";
  4564. #region [SQL]
  4565. sql = @"select distinct a.OutCode as Code, a.CreateDateTime as MTIME,a.CreatePerson as MUSER,e.MergeID AS IsNew,
  4566. case when k.TransCode is null then '' else '' end as IsOccupy
  4567. FROM ICSOtherOut a
  4568. INNER JOIN ICSTransfer tra ON a.TransferDetailID=tra.TransferDetailID AND a.WorkPoint=tra.WorkPoint
  4569. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4570. left join (select distinct TransCode,TransType,WorkPoint from dbo.ICSWareHouseLotInfoLog ) k on a.OutCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='15'
  4571. where isnull(k.TransCode,'')<>'' and a.WorkPoint='{0}' and a.Status='2'";
  4572. sql = string.Format(sql, WorkPoint);
  4573. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4574. #endregion
  4575. #region 条件
  4576. if (!string.IsNullOrWhiteSpace(queryJson))
  4577. {
  4578. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4579. {
  4580. sql += " and a.BrrowCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4581. }
  4582. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4583. {
  4584. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4585. }
  4586. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4587. {
  4588. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4589. }
  4590. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4591. {
  4592. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4593. }
  4594. }
  4595. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4596. {
  4597. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4598. }
  4599. #endregion
  4600. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4601. }
  4602. //查询占料(物料调拨)子表查询
  4603. public DataTable GetSubGridJsonSeizeM11(string Code, ref Pagination jqgridparam)
  4604. {
  4605. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4606. DataTable dt = new DataTable();
  4607. //var queryParam = queryJson.ToJObject();
  4608. List<DbParameter> parameter = new List<DbParameter>();
  4609. string sql = @"select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4610. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4611. FROM ICSOtherOut k
  4612. INNER JOIN ICSTransfer tra ON k.TransferDetailID=tra.TransferDetailID AND k.WorkPoint=tra.WorkPoint
  4613. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4614. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.OutCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4615. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4616. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4617. where k.OutCode='{0}' and a.WorkPoint='{1}'";
  4618. sql = string.Format(sql, Code, WorkPoint);
  4619. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4620. }
  4621. //查询占料(红字其他入库)子表查询
  4622. public DataTable GetSubGridJsonSeizeM15(string Code, ref Pagination jqgridparam)
  4623. {
  4624. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4625. DataTable dt = new DataTable();
  4626. List<DbParameter> parameter = new List<DbParameter>();
  4627. string sql = @" select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode, b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4628. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4629. FROM ICSOtherIn k
  4630. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4631. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.InCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4632. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4633. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4634. where k.InCode='{0}' and a.WorkPoint='{1}' and a.EATTRIBUTE2='2'";
  4635. sql = string.Format(sql, Code, WorkPoint);
  4636. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4637. }
  4638. //查询占料(销售出库单)子表查询
  4639. public DataTable GetSubGridJsonSeizeM16(string Code, ref Pagination jqgridparam)
  4640. {
  4641. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4642. DataTable dt = new DataTable();
  4643. List<DbParameter> parameter = new List<DbParameter>();
  4644. string sql = @"
  4645. select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode,
  4646. b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4647. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4648. FROM ICSSSD k
  4649. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4650. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.SSDCode and k.Sequence=a.TransSequence and a.TransType='15' and a.WorkPoint=k.WorkPoint
  4651. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4652. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4653. where k.SSDCode='{0}' and a.WorkPoint='{1}' and k.Type = '1'";
  4654. sql = string.Format(sql, Code, WorkPoint);
  4655. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4656. }
  4657. //删除占料
  4658. public string DelPickLog(string objCode)
  4659. {
  4660. //站点信息
  4661. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4662. string msg = "";
  4663. objCode = objCode.Substring(1, objCode.Length - 2);
  4664. string sql = string.Empty;
  4665. sql += string.Format(@" update b set b.LockQuantity=convert(decimal(18,6),b.LockQuantity)-convert(decimal(18,6),c.Quantity )
  4666. from dbo.ICSWareHouseLotInfo b
  4667. inner join (select sum(Quantity) as Quantity, LotNo from ICSWareHouseLotInfolog where TransCode in ({0})and TransType='15' and WorkPoint='{1}' group by LotNo) c
  4668. on c.LotNo =b.LotNo ", objCode.TrimEnd(','), WorkPoint);
  4669. sql += string.Format(@" delete dbo.ICSWareHouseLotInfoLog where TransCode in({0}) and TransType='15' and WorkPoint='{1}'", objCode.TrimEnd(','), WorkPoint);
  4670. try
  4671. {
  4672. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  4673. {
  4674. }
  4675. }
  4676. catch (Exception ex)
  4677. {
  4678. throw new Exception(ex.Message);
  4679. }
  4680. return msg;
  4681. }
  4682. //补料
  4683. public DataTable GetGridJson12(string queryJson, ref Pagination jqgridparam)
  4684. {
  4685. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4686. DataTable dt = new DataTable();
  4687. var queryParam = queryJson.ToJObject();
  4688. List<DbParameter> parameter = new List<DbParameter>();
  4689. string sql = "";
  4690. #region [SQL]
  4691. sql = @"
  4692. select distinct a.ReplenishmentCode as Code
  4693. ,a.CreateDateTime as MTIME
  4694. ,a.createperson as MUSER
  4695. ,e.MergeID AS IsNew
  4696. ,case when k.TransCode is null then '' else '' end as IsOccupy
  4697. from ICSMOReplenishment a
  4698. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4699. left join (select distinct TransCode
  4700. ,TransType
  4701. ,WorkPoint
  4702. from dbo.ICSWareHouseLotInfoLog
  4703. ) k on a.ReplenishmentCode=k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='3'
  4704. left join (SELECT ReplenishmentCode,case when sum(Quantity) <=sum(IssueQuantity) then ''else '' end as Status
  4705. from ICSMOReplenishment
  4706. where WorkPoint='{0}' group by ReplenishmentCode,MUSERName
  4707. ) g on a.ReplenishmentCode = g.ReplenishmentCode
  4708. where a.WorkPoint='{0}'";
  4709. sql = string.Format(sql, WorkPoint);
  4710. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4711. #endregion
  4712. if (!string.IsNullOrWhiteSpace(queryJson))
  4713. {
  4714. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4715. {
  4716. sql += " and a.ApplyCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4717. }
  4718. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4719. {
  4720. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4721. }
  4722. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  4723. {
  4724. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  4725. }
  4726. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4727. {
  4728. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4729. }
  4730. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4731. {
  4732. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4733. }
  4734. if (queryParam["Status"].ToString() == "1")
  4735. {
  4736. sql += " AND g.Status='已发料' ";
  4737. }
  4738. else if (queryParam["Status"].ToString() == "2")
  4739. {
  4740. sql += " AND g.Status='未发料'";
  4741. }
  4742. }
  4743. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4744. }
  4745. //补料子表查询
  4746. public DataTable GetSubGridJson12(string Code, string InvCode, ref Pagination jqgridparam)
  4747. {
  4748. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4749. DataTable dt = new DataTable();
  4750. //var queryParam = queryJson.ToJObject();
  4751. List<DbParameter> parameter = new List<DbParameter>();
  4752. string sql = @" select a.ID,a.ReplenishmentCode as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.WHCode,b.WarehouseName ,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  4753. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  4754. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4755. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.IssueQuantity as IssueQuantity
  4756. from ICSMOReplenishment a
  4757. left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  4758. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  4759. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4760. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4761. where a.ReplenishmentCode='{0}' and a.WorkPoint='{1}'";
  4762. if (!string.IsNullOrWhiteSpace(InvCode))
  4763. {
  4764. sql += " and a.InvCode = '" + InvCode + "' ";
  4765. }
  4766. sql = string.Format(sql, Code, WorkPoint);
  4767. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4768. }
  4769. //调拨申请单
  4770. public DataTable GetGridJson17(string queryJson, ref Pagination jqgridparam)
  4771. {
  4772. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4773. DataTable dt = new DataTable();
  4774. var queryParam = queryJson.ToJObject();
  4775. List<DbParameter> parameter = new List<DbParameter>();
  4776. string sql = "";
  4777. #region [SQL]
  4778. sql = @"select distinct a.TransferNO as Code
  4779. , a.CreateDateTime as MTIME
  4780. ,a.CreatePerson as MUSER
  4781. ,e.MergeID AS IsNew
  4782. ,case when k.TransCode is null then '' else '' end as IsOccupy
  4783. FROM ICSTransferApplication a
  4784. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4785. left join (select distinct TransCode
  4786. ,TransType
  4787. ,WorkPoint
  4788. from dbo.ICSWareHouseLotInfoLog
  4789. ) k on a.TransferNO = k.TransCode and a.WorkPoint=k.WorkPoint and k.TransType='47'
  4790. left join (SELECT TransferNO,case when sum(Quantity) <=sum(TransferQuantity) then ''else '' end as Status
  4791. from ICSTransferApplication
  4792. where WorkPoint='{0}' and Type = '1' group by TransferNO,MUSERName
  4793. ) g on a.TransferNO = g.TransferNO
  4794. where a.WorkPoint='{0}' and a.Status='2' ";
  4795. sql = string.Format(sql, WorkPoint);
  4796. sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName());
  4797. #endregion
  4798. if (!string.IsNullOrWhiteSpace(queryJson))
  4799. {
  4800. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4801. {
  4802. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  4803. }
  4804. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4805. {
  4806. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4807. }
  4808. if (!string.IsNullOrWhiteSpace(queryParam["User"].ToString()))
  4809. {
  4810. sql += " and a.createperson like '%" + queryParam["User"].ToString() + "%' ";
  4811. }
  4812. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  4813. {
  4814. sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
  4815. }
  4816. if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
  4817. {
  4818. sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
  4819. }
  4820. }
  4821. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4822. {
  4823. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4824. }
  4825. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4826. }
  4827. //调拨申请单子表
  4828. public DataTable GetSubGridJson17(string Code, string InvCode, ref Pagination jqgridparam)
  4829. {
  4830. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4831. DataTable dt = new DataTable();
  4832. //var queryParam = queryJson.ToJObject();
  4833. List<DbParameter> parameter = new List<DbParameter>();
  4834. string sql = @" select a.ID,a.TransferNO as Code,a.Sequence,a.MTIME,a.MUSERName,a.MUSER,a.FromWarehouseCode ,b.WarehouseName,a.InvCode,d.InvName,d.InvDesc,d.InvStd,d.InvUnit,
  4835. case when e.SourceID is null then '' else '' end as IsNew,a.Quantity
  4836. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4837. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.TransferQuantity as IssueQuantity
  4838. FROM ICSTransferApplication a
  4839. left join ICSWarehouse b on a.FromWarehouseCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
  4840. left join ICSInventory d on a.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  4841. left join ICSMOPickMerge e on a.ID=e.SourceID and a.WorkPoint=e.WorkPoint
  4842. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4843. where a.TransferNO='{0}' and b.WorkPoint='{1}' and a.Status='2' ";
  4844. if (!string.IsNullOrWhiteSpace(InvCode))
  4845. {
  4846. sql += " and a.InvCode = '" + InvCode + "' ";
  4847. }
  4848. sql = string.Format(sql, Code, WorkPoint);
  4849. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4850. }
  4851. //查询占料(调拨申请单)子表查询
  4852. public DataTable GetSubGridJsonSeizeM17(string Code, ref Pagination jqgridparam)
  4853. {
  4854. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4855. DataTable dt = new DataTable();
  4856. List<DbParameter> parameter = new List<DbParameter>();
  4857. string sql = @"
  4858. select isnull(e.MergeID,'') as MergeID,a.TransCode as Code,a.TransSequence as Sequence,a.InvCode as InvCode,
  4859. b.InvName as InvName,b.InvStd as InvStd,b.InvUnit as InvSInvUnittd,a.Quantity as iQuantity,
  4860. a.FromWarehouseCode as WarehouseCode,a.FromLocationCode as LocationCode,a.LotNO,a.MTIME,c.Quantity as QTY
  4861. FROM ICSTransferApplication k
  4862. left join ICSMOPickMerge e on k.ID=e.SourceID and k.WorkPoint=e.WorkPoint
  4863. inner join ICSWareHouseLotInfoLog a on a.TransCode=k.TransferNO and k.Sequence=a.TransSequence and a.TransType='47' and a.WorkPoint=k.WorkPoint
  4864. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4865. left join dbo.ICSWareHouseLotInfo c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  4866. where k.TransferNO='{0}' and a.WorkPoint='{1}' and k.Type = '1'";
  4867. sql = string.Format(sql, Code, WorkPoint);
  4868. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4869. }
  4870. }
  4871. }