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.

1583 lines
90 KiB

3 days ago
  1. using ICSSoft.SendMail;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. using NFine.Code;
  5. using NFine.Data.Extensions;
  6. using NFine.Domain._03_Entity.SRM;
  7. using NFine.Domain.Entity.ProductManage;
  8. using NFine.Domain.IRepository.ProductManage;
  9. using NFine.Repository;
  10. using NFine.Repository.ProductManage;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Configuration;
  14. using System.Data;
  15. using System.Data.Common;
  16. using System.Linq;
  17. using System.Text;
  18. namespace NFine.Application
  19. {
  20. public class POReleaseApp : RepositoryFactory<ICSPO_PoMain>
  21. {
  22. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  23. {
  24. string ParentId = "";
  25. DataTable dt = new DataTable();
  26. var queryParam = queryJson.ToJObject();
  27. List<DbParameter> parameter = new List<DbParameter>();
  28. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  29. string sql = @"SELECT DISTINCT POCode as ID, POCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS CreateDateTime,
  30. a.VenCode, CreatePerson,a.WorkPoint,c.VenName,case when ReleaseState='1' then '' else '' end as ReleaseState
  31. ,case when ReleaseState='1' then '' else '' end as ReleaseStateBlock,d.ProjectCode,e.F_RealName as PersonCode
  32. ," + EATTRIBUTE + "";
  33. sql+= @" FROM dbo.ICSPurchaseOrder a
  34. left join Sys_WorkPoint b on a.WorkPoint=b.WorkPointCode
  35. left join ICSVendor c on a.VenCode=c.VenCode and a.WorkPoint=c.WorkPoint
  36. LEFT JOIN dbo.ICSExtension d ON a.ExtensionID=d.ID AND a.WorkPoint=d.WorkPoint
  37. LEFT JOIN dbo.Sys_SRM_User e ON a.PersonCode=e.F_Account AND a.WorkPoint=e.F_Location
  38. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  39. WHERE 1=1 and Status<>'3'";
  40. if (!string.IsNullOrWhiteSpace(queryJson))
  41. {
  42. if (!string.IsNullOrWhiteSpace(queryParam["ExtensionID"].ToString()))
  43. {
  44. sql += " and ExtensionID like '%" + queryParam["ExtensionID"].ToString() + "%' ";
  45. }
  46. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  47. {
  48. sql += " and POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  49. }
  50. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  51. {
  52. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  53. }
  54. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  55. {
  56. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  57. }
  58. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  59. {
  60. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  61. }
  62. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  63. {
  64. sql += " and c.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  65. }
  66. if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
  67. {
  68. sql += " and CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'";
  69. }
  70. if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString()))
  71. {
  72. sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'";
  73. }
  74. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  75. {
  76. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  77. }
  78. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  79. {
  80. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  81. }
  82. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  83. {
  84. string ReleaseState = queryParam["ReleaseState"].ToString();
  85. if (ReleaseState == "1")
  86. sql += " and ReleaseState = '1'";
  87. else if (ReleaseState == "0")
  88. sql += " and ReleaseState = '0'";
  89. else if (ReleaseState == "2")
  90. sql += " and ReleaseState = '2'";
  91. }
  92. if (!string.IsNullOrWhiteSpace(queryParam["U8Status"].ToString()))
  93. {
  94. string U8Status = queryParam["U8Status"].ToString();
  95. if (U8Status == "1")
  96. sql += " and isnull(STATUS,'')<>'关闭'";
  97. else if (U8Status == "2")
  98. sql += " and isnull(STATUS,'')='关闭'";
  99. }
  100. //多站点增加
  101. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  102. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  103. {
  104. sql += " AND a.WorkPoint in (" + WorkPoint + ")";
  105. }
  106. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  107. }
  108. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  109. {
  110. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  111. }
  112. else
  113. {
  114. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  115. }
  116. }
  117. public DataTable GetGridJsonByBB(string queryJson, ref Pagination jqgridparam)
  118. {
  119. string ParentId = "";
  120. DataTable dt = new DataTable();
  121. var queryParam = queryJson.ToJObject();
  122. List<DbParameter> parameter = new List<DbParameter>();
  123. // string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  124. string sql = @"SELECT DISTINCT POCode as ID, POCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS CreateDateTime,
  125. a.VenCode, CreatePerson,a.WorkPoint,c.VenName,case when ReleaseState='1' then '' else '' end as ReleaseState
  126. ,case when ReleaseState='1' then '' else '' end as ReleaseStateBlock,d.ProjectCode,e.F_RealName as PersonCode
  127. FROM dbo.ICSPurchaseOrder a
  128. left join Sys_WorkPoint b on a.WorkPoint=b.WorkPointCode
  129. left join ICSVendor c on a.VenCode=c.VenCode and a.WorkPoint=c.WorkPoint
  130. LEFT JOIN dbo.ICSExtension d ON a.ExtensionID=d.ID AND a.WorkPoint=d.WorkPoint
  131. LEFT JOIN dbo.Sys_SRM_User e ON a.PersonCode=e.F_Account AND a.WorkPoint=e.F_Location
  132. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  133. WHERE 1=1 and Status<>'3'";
  134. if (!string.IsNullOrWhiteSpace(queryJson))
  135. {
  136. if (!string.IsNullOrWhiteSpace(queryParam["ExtensionID"].ToString()))
  137. {
  138. sql += " and ExtensionID like '%" + queryParam["ExtensionID"].ToString() + "%' ";
  139. }
  140. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  141. {
  142. sql += " and POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  143. }
  144. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  145. {
  146. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  147. }
  148. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  149. {
  150. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  151. }
  152. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  153. {
  154. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  155. }
  156. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  157. {
  158. sql += " and c.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  159. }
  160. if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
  161. {
  162. sql += " and CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'";
  163. }
  164. if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString()))
  165. {
  166. sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'";
  167. }
  168. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  169. {
  170. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  171. }
  172. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  173. {
  174. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  175. }
  176. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  177. {
  178. string ReleaseState = queryParam["ReleaseState"].ToString();
  179. if (ReleaseState == "1")
  180. sql += " and ReleaseState = '1'";
  181. else if (ReleaseState == "0")
  182. sql += " and ReleaseState = '0'";
  183. else if (ReleaseState == "2")
  184. sql += " and ReleaseState = '2'";
  185. }
  186. if (!string.IsNullOrWhiteSpace(queryParam["U8Status"].ToString()))
  187. {
  188. string U8Status = queryParam["U8Status"].ToString();
  189. if (U8Status == "1")
  190. sql += " and isnull(STATUS,'')<>'关闭'";
  191. else if (U8Status == "2")
  192. sql += " and isnull(STATUS,'')='关闭'";
  193. }
  194. //多站点增加
  195. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  196. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  197. {
  198. sql += " AND a.WorkPoint in (" + WorkPoint + ")";
  199. }
  200. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  201. }
  202. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  203. {
  204. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  205. }
  206. else
  207. {
  208. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  209. }
  210. }
  211. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  212. {
  213. string ParentId = "";
  214. DataTable dt = new DataTable();
  215. var queryParam = queryJson.ToJObject();
  216. List<DbParameter> parameter = new List<DbParameter>();
  217. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  218. string sql = @" SELECT DISTINCT OOCode as ID, OOCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS CreateDateTime,
  219. ExtensionID,a.VenCode, CreatePerson,a.WorkPoint,c.VenName,case when ReleaseState='1' then '' else '' end as ReleaseState
  220. ,case when ReleaseState='1' then '' else '' end as ReleaseStateBlock,e.F_RealName as PersonCode ," + EATTRIBUTE + "";
  221. sql+= @" FROM dbo.ICSOutsourcingOrder a
  222. left join Sys_WorkPoint b on a.WorkPoint=b.WorkPointCode
  223. left join ICSVendor c on a.VenCode=c.VenCode and a.WorkPoint=c.WorkPoint
  224. LEFT JOIN dbo.ICSExtension d ON a.ExtensionID=d.ID AND a.WorkPoint=d.WorkPoint
  225. LEFT JOIN dbo.Sys_SRM_User e ON a.PersonCode=e.F_Account AND a.WorkPoint=e.F_Location
  226. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  227. WHERE 1=1 and Status<>'3'";
  228. if (!string.IsNullOrWhiteSpace(queryJson))
  229. {
  230. if (!string.IsNullOrWhiteSpace(queryParam["ExtensionID"].ToString()))
  231. {
  232. sql += " and ExtensionID like '%" + queryParam["ExtensionID"].ToString() + "%' ";
  233. }
  234. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  235. {
  236. sql += " and OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  237. }
  238. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  239. {
  240. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  241. }
  242. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  243. {
  244. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  245. }
  246. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  247. {
  248. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  249. }
  250. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  251. {
  252. sql += " and c.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  253. }
  254. if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
  255. {
  256. sql += " and CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'";
  257. }
  258. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  259. {
  260. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  261. }
  262. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  263. {
  264. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  265. }
  266. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  267. {
  268. string ReleaseState = queryParam["ReleaseState"].ToString();
  269. if (ReleaseState == "1")
  270. sql += " and ReleaseState = '1'";
  271. else if (ReleaseState == "0")
  272. sql += " and ReleaseState = '0'";
  273. }
  274. if (!string.IsNullOrWhiteSpace(queryParam["U8Status"].ToString()))
  275. {
  276. string U8Status = queryParam["U8Status"].ToString();
  277. if (U8Status == "1")
  278. sql += " and isnull(STATUS,'')<>'关闭'";
  279. else if (U8Status == "2")
  280. sql += " and isnull(STATUS,'')='关闭'";
  281. }
  282. //多站点增加
  283. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  284. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  285. {
  286. sql += " AND a.WorkPoint in (" + WorkPoint + ")";
  287. }
  288. }
  289. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  290. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  291. {
  292. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  293. }
  294. else
  295. {
  296. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  297. }
  298. }
  299. public DataTable GetGridJsonWeiWaiByBB(string queryJson, ref Pagination jqgridparam)
  300. {
  301. string ParentId = "";
  302. DataTable dt = new DataTable();
  303. var queryParam = queryJson.ToJObject();
  304. List<DbParameter> parameter = new List<DbParameter>();
  305. // string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
  306. string sql = @" SELECT DISTINCT OOCode as ID, OOCode,CONVERT(NVARCHAR(15),CreateDateTime,23) AS CreateDateTime,
  307. ExtensionID,a.VenCode, CreatePerson,a.WorkPoint,c.VenName,case when ReleaseState='1' then '' else '' end as ReleaseState
  308. ,case when ReleaseState='1' then '' else '' end as ReleaseStateBlock,e.F_RealName as PersonCode
  309. FROM dbo.ICSOutsourcingOrder a
  310. left join Sys_WorkPoint b on a.WorkPoint=b.WorkPointCode
  311. left join ICSVendor c on a.VenCode=c.VenCode and a.WorkPoint=c.WorkPoint
  312. LEFT JOIN dbo.ICSExtension d ON a.ExtensionID=d.ID AND a.WorkPoint=d.WorkPoint
  313. LEFT JOIN dbo.Sys_SRM_User e ON a.PersonCode=e.F_Account AND a.WorkPoint=e.F_Location
  314. LEFT JOIN dbo.ICSInventory f ON a.InvCode=f.InvCode AND a.WorkPoint=f.WorkPoint
  315. WHERE 1=1 and Status<>'3'";
  316. if (!string.IsNullOrWhiteSpace(queryJson))
  317. {
  318. if (!string.IsNullOrWhiteSpace(queryParam["ExtensionID"].ToString()))
  319. {
  320. sql += " and ExtensionID like '%" + queryParam["ExtensionID"].ToString() + "%' ";
  321. }
  322. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  323. {
  324. sql += " and OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  325. }
  326. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  327. {
  328. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  329. }
  330. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  331. {
  332. sql += " and CONVERT(NVARCHAR(20), CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  333. }
  334. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  335. {
  336. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  337. }
  338. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  339. {
  340. sql += " and c.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  341. }
  342. if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
  343. {
  344. sql += " and CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'";
  345. }
  346. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  347. {
  348. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  349. }
  350. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  351. {
  352. sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  353. }
  354. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  355. {
  356. string ReleaseState = queryParam["ReleaseState"].ToString();
  357. if (ReleaseState == "1")
  358. sql += " and ReleaseState = '1'";
  359. else if (ReleaseState == "0")
  360. sql += " and ReleaseState = '0'";
  361. }
  362. if (!string.IsNullOrWhiteSpace(queryParam["U8Status"].ToString()))
  363. {
  364. string U8Status = queryParam["U8Status"].ToString();
  365. if (U8Status == "1")
  366. sql += " and isnull(STATUS,'')<>'关闭'";
  367. else if (U8Status == "2")
  368. sql += " and isnull(STATUS,'')='关闭'";
  369. }
  370. //多站点增加
  371. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  372. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  373. {
  374. sql += " AND a.WorkPoint in (" + WorkPoint + ")";
  375. }
  376. }
  377. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  378. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  379. {
  380. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  381. }
  382. else
  383. {
  384. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  385. }
  386. }
  387. /// <summary>
  388. /// 子表查询
  389. /// </summary>
  390. /// <param name="queryJson"></param>
  391. /// <param name="jqgridparam"></param>
  392. /// <returns></returns>
  393. public DataTable GetSubGridJson(string POCode, ref Pagination jqgridparam,string WorkPoint)
  394. {
  395. DataTable dt = new DataTable();
  396. //var queryParam = queryJson.ToJObject();
  397. List<DbParameter> parameter = new List<DbParameter>();
  398. string sql = @"SELECT a.Sequence,a.InvCode,b.InvName,b.INVSTD,b.InvUnit,a.Quantity,a.ArriveDate,a.DeliveryDate,
  399. CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,CONVERT(NVARCHAR(50),a.ReleaseDate,23) as ReleaseDate,
  400. c.ProjectCode,b.InvDesc,b.ClassName
  401. FROM dbo.ICSPurchaseOrder a
  402. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  403. LEFT JOIN dbo.ICSExtension c ON a.ExtensionID=c.ID AND a.WorkPoint=c.WorkPoint
  404. WHERE a.POCode='" + POCode + "' and a.WorkPoint='"+ WorkPoint + "' ";
  405. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  406. }
  407. /// <summary>
  408. /// 子表查询(委外)
  409. /// </summary>
  410. /// <param name="queryJson"></param>
  411. /// <param name="jqgridparam"></param>
  412. /// <returns></returns>
  413. public DataTable GetSubGridJsonWW(string OOCode, ref Pagination jqgridparam,string WorkPoint)
  414. {
  415. DataTable dt = new DataTable();
  416. //var queryParam = queryJson.ToJObject();
  417. List<DbParameter> parameter = new List<DbParameter>();
  418. string sql = @"SELECT a.Sequence,a.InvCode,b.InvName,b.INVSTD,b.InvUnit,a.Quantity,a.ArriveDate,a.DeliveryDate,
  419. CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,CONVERT(NVARCHAR(50),a.ReleaseDate,23) as ReleaseDate,
  420. c.ProjectCode,b.InvDesc,b.ClassName
  421. FROM dbo.ICSOutsourcingOrder a
  422. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  423. LEFT JOIN dbo.ICSExtension c ON a.ExtensionID=c.ID AND a.WorkPoint=c.WorkPoint
  424. WHERE a.OOCode='" + OOCode + "'and a.WorkPoint='"+WorkPoint+"'";
  425. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  426. }
  427. /// <summary>
  428. /// 发布采购订单信息
  429. /// </summary>
  430. /// <param name="queryJson">采购订单</param>
  431. /// <param name="WorkPoint">多站点</param>
  432. /// <returns></returns>
  433. public int SubmitPoRelease(string queryJson, string WorkPoint)
  434. {
  435. //DataTable dt = new DataTable();
  436. List<DbParameter> parameter = new List<DbParameter>();
  437. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  438. string sql = @"UPDATE ICSPurchaseOrder SET ReleaseState='1',ReleaseDate=getdate(), MTIME=getdate() WHERE POCode IN (" + queryJson.TrimEnd(',') + ") AND WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  439. StringBuilder Str = new StringBuilder(sql);
  440. int i = Repository().ExecuteBySql(Str);
  441. string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString;
  442. if (MailOpen == "true")
  443. {
  444. string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString;
  445. string CusterJC = ConfigurationManager.ConnectionStrings["CusterJC"].ConnectionString;
  446. string CusterQC = ConfigurationManager.ConnectionStrings["CusterQC"].ConnectionString;
  447. string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString;
  448. int SendPort = 25;
  449. if (!string.IsNullOrEmpty(StrSendPort))
  450. SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString);
  451. string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString;
  452. string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString;
  453. string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString;
  454. sql = @"SELECT distinct POCode,b.VenCode,b.VenName FROM dbo.ICSPurchaseOrder a
  455. left join ICSVendor b on a.VenCode=b.VenCode
  456. WHERE a.POCode IN (" + queryJson.TrimEnd(',') + ") AND a.WorkPoint in (" + WorkPoint.TrimEnd(',') + ")";
  457. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  458. string sendCommect = SqlHelper.GetItemsDetailsbySendMail("POSendMailComment");
  459. foreach (DataRow dr in dt.Rows)
  460. {
  461. string cVenCode = dr["VenCode"].ToString();
  462. string TOAddress = GetVendorEmail(cVenCode).TrimEnd(',');
  463. string[] Partint = TOAddress.Split(';');
  464. if (!string.IsNullOrEmpty(TOAddress))
  465. {
  466. foreach (var p in Partint)
  467. {
  468. string CCAddress = "";
  469. string Subject = "有来自" + CusterJC + "SRM平台新发布的采购订单信息";
  470. bool isBodyHtml = false;
  471. string VenName = dr["VenName"].ToString();
  472. string POCode = dr["POCode"].ToString();
  473. string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString();
  474. string body = VenName + cVenCode + ":";
  475. body += "\r\n";
  476. body += " 您好!有来自" + CusterJC + "SRM新发布的采购订单:" + POCode + " ,请在24小时内确认订单,可登陆" + CusterJC + "SRM系统查看相关信息!";
  477. body += "\r\n";
  478. body += sendCommect;
  479. body += "\r\n";
  480. body += " 顺颂商祺!";
  481. body += "\r\n";
  482. body += " " + CusterQC + "";
  483. body += "\r\n";
  484. body += " " + NowDate;
  485. if (!string.IsNullOrEmpty(TOAddress))
  486. {
  487. string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  488. ICSSendMail.SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, p.ToString(), CCAddress, Subject, isBodyHtml, body);
  489. }
  490. }
  491. }
  492. //if(string.IsNullOrWhiteSpace(TOAddress))
  493. //{
  494. // throw new Exception("未维护邮箱,请到ERP维护供应商邮箱地址!");
  495. //}
  496. //string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  497. //ICSSendMail.SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, TOAddress, CCAddress, Subject, isBodyHtml, body);
  498. }
  499. }
  500. //SendEmailByWH(queryJson.TrimEnd(','),"采购");
  501. return i;
  502. }
  503. public string SendEmailByWH(string Code ,string Type)
  504. {
  505. string msg = "";
  506. try
  507. {
  508. string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString;
  509. if (MailOpen == "true")
  510. {
  511. string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString;
  512. string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString;
  513. int SendPort = 25;
  514. if (!string.IsNullOrEmpty(StrSendPort))
  515. SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString);
  516. string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString;
  517. string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString;
  518. string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString;
  519. string sql = @"SELECT a.F_ItemName,a.F_ItemCode,c.F_Email FROM Sys_SRM_ItemsDetail a
  520. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  521. LEFT JOIN Sys_SRM_User c ON a.F_ItemCode=c.F_Account
  522. WHERE b.F_EnCode = 'WWTZCK' and a.F_EnabledMark='1'";
  523. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  524. foreach (DataRow dr in dt.Rows)
  525. {
  526. string cVenCode = dr["F_ItemCode"].ToString();
  527. string TOAddress = dr["F_Email"].ToString();
  528. string CCAddress = "";
  529. string Subject = "有来自咖博士SRM平台新发布的" + Type + "订单信息";
  530. bool isBodyHtml = false;
  531. string VenName = dr["F_ItemName"].ToString();
  532. string POCode = Code;
  533. string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString();
  534. string body = VenName + ":";
  535. body += "\r\n";
  536. body += " 您好!有来自咖博士SRM新发布的" + Type + "订单:" + POCode + " ,请把订单对应发料的物料进行备料,谢谢!";
  537. body += "\r\n";
  538. body += " 顺颂商祺!";
  539. body += "\r\n";
  540. body += " 苏州咖博士咖啡系统科技有限公司";
  541. body += "\r\n";
  542. body += " " + NowDate;
  543. if (string.IsNullOrWhiteSpace(TOAddress))
  544. {
  545. throw new Exception("未维护仓库人员邮箱,请先维护仓库人员:" + cVenCode + "对应邮箱!");
  546. }
  547. string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  548. ICSSendMail.SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, TOAddress, CCAddress, Subject, isBodyHtml, body);
  549. }
  550. }
  551. }
  552. catch (Exception ex)
  553. {
  554. throw ex;
  555. }
  556. return msg;
  557. }
  558. /// <summary>
  559. /// 取消发布
  560. /// </summary>
  561. /// <param name="queryJson"></param>
  562. /// <param name="WorkPoint"></param>
  563. /// <returns></returns>
  564. public int CeanlSubmitForm(string queryJson, string WorkPoint)
  565. {
  566. //DataTable dt = new DataTable();
  567. List<DbParameter> parameter = new List<DbParameter>();
  568. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  569. string sql = @"UPDATE ICSPurchaseOrder SET ReleaseState='2',MTIME=getdate() WHERE POCode IN (" + queryJson.TrimEnd(',') + ") AND WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  570. StringBuilder Str = new StringBuilder(sql);
  571. int i = Repository().ExecuteBySql(Str);
  572. return i;
  573. }
  574. public int SubmitFormWeiWai(string queryJson, string WorkPoint)
  575. {
  576. //DataTable dt = new DataTable();
  577. List<DbParameter> parameter = new List<DbParameter>();
  578. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  579. try
  580. {
  581. string sql = @"UPDATE ICSOutsourcingOrder SET ReleaseState='1',MTIME=getdate() WHERE OOCode IN (" + queryJson.TrimEnd(',') + ") AND WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  582. StringBuilder Str = new StringBuilder(sql);
  583. int i = Repository().ExecuteBySql(Str);
  584. string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString;
  585. if (MailOpen == "true")
  586. {
  587. string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString;
  588. string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString;
  589. int SendPort = 25;
  590. if (!string.IsNullOrEmpty(StrSendPort))
  591. SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString);
  592. string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString;
  593. string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString;
  594. string CusterJC = ConfigurationManager.ConnectionStrings["CusterJC"].ConnectionString;
  595. string CusterQC = ConfigurationManager.ConnectionStrings["CusterQC"].ConnectionString;
  596. string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString;
  597. sql = @"SELECT distinct a.OOCode,a.VenCode,b.VenName FROM dbo.ICSOutsourcingOrder a
  598. left join ICSVendor b on a.VenCode=b.VenCode
  599. WHERE OOCode IN (" + queryJson.TrimEnd(',') + ") AND a.WorkPoint in (" + WorkPoint.TrimEnd(',') + ")";
  600. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  601. string sendCommect = SqlHelper.GetItemsDetailsbySendMail("POSendMailComment");
  602. foreach (DataRow dr in dt.Rows)
  603. {
  604. string cVenCode = dr["VenCode"].ToString();
  605. string TOAddress = GetVendorEmail(cVenCode).TrimEnd(',');
  606. string[] Partint = TOAddress.Split(';');
  607. if (!string.IsNullOrEmpty(TOAddress))
  608. {
  609. foreach (var p in Partint)
  610. {
  611. string CCAddress = "";
  612. string Subject = "有来自" + CusterJC + "SRM平台新发布的采购订单信息";
  613. bool isBodyHtml = false;
  614. string VenName = dr["VenName"].ToString();
  615. string POCode = dr["OOCode"].ToString();
  616. string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString();
  617. string body = VenName + ":";
  618. body += "\r\n";
  619. body += " 您好!有来自" + CusterJC + "SRM新发布的委外采购订单:" + POCode + " ,请在24小时内确认订单,可登陆基础SRM系统查看相关信息!";
  620. body += "\r\n";
  621. body += sendCommect;
  622. body += "\r\n";
  623. body += " 顺颂商祺!";
  624. body += "\r\n";
  625. body += " " + CusterQC + "";
  626. body += "\r\n";
  627. body += " " + NowDate;
  628. string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  629. ICSSendMail.SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, p.ToString(), CCAddress, Subject, isBodyHtml, body);
  630. }
  631. }
  632. }
  633. }
  634. SendEmailByWH(queryJson.TrimEnd(','), "委外采购");
  635. return i;
  636. }
  637. catch (Exception ex)
  638. {
  639. throw ex;
  640. }
  641. }
  642. /// <summary>
  643. /// 取消发布 委外
  644. /// </summary>
  645. /// <param name="queryJson"></param>
  646. /// <param name="WorkPoint"></param>
  647. /// <returns></returns>
  648. public int CeanlSubmitFormWeiWai(string queryJson, string WorkPoint)
  649. {
  650. //DataTable dt = new DataTable();
  651. List<DbParameter> parameter = new List<DbParameter>();
  652. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  653. string sql = @"UPDATE ICSOutsourcingOrder SET ReleaseState='2',MTIME=getdate() WHERE OOCode IN (" + queryJson.TrimEnd(',') + ") AND WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  654. StringBuilder Str = new StringBuilder(sql);
  655. int i = Repository().ExecuteBySql(Str);
  656. return i;
  657. }
  658. public string GetVendorEmail(string VenCode)
  659. {
  660. string sql = " SELECT F_Email FROM dbo.Sys_SRM_User WHERE F_VenCode='" + VenCode + "'";
  661. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  662. string Email = string.Empty;
  663. foreach (DataRow dr in dt.Rows)
  664. {
  665. Email += dr["F_Email"].ToString() + ",";
  666. }
  667. return Email;
  668. }
  669. public DataTable GetPOListGridJson(string queryJson, ref Pagination jqgridparam)
  670. {
  671. string ParentId = "";
  672. DataTable dt = new DataTable();
  673. var queryParam = queryJson.ToJObject();
  674. List<DbParameter> parameter = new List<DbParameter>();
  675. // string sql = @" SELECT a.ID,jjj.PaperNo,case when jjj.PaperNo is not null Then '已开票'ELSE '未开票' END as ISDOCNO,a.POCode,PORow,CONVERT(NVARCHAR(50),PODate,23) as PODate,VenCode,VenName,CreatePerson,POType,a.InvCode,
  676. //c.INVNAME,c.INVDESC,c.INVTYPE,a.ReMark,ORDERNO,Price,
  677. //Quantity,ReleaseState,CONVERT(NVARCHAR(50),PreArriveDate,23) as PreArriveDate,CONVERT(NVARCHAR(50),ArriveDate,23) as ArriveDate, CONVERT(NVARCHAR(50),Free5,23) as Free5,a.WorkPoint,b.WorkPointName,
  678. //DateTime1User,CONVERT(NVARCHAR(50),DateTime1,23) as DateTime1,DateTime2User,CONVERT(NVARCHAR(50),DateTime2,23) as DateTime2,c.INVSTD,c.INVPARSETYPE,cast( cc.RECEIVEQTY as decimal(18,3)) AS LJDH,
  679. //ff.TransQTY AS JLRK,isnull(gg.NGQTY,0) AS RefuseLotQty,isnull(hh.returnqty,0) AS BackLotQty,CAST(ISNULL(II.repairqty,0) AS DECIMAL(18,3)) AS RepairQty
  680. //FROM dbo.ICSPO_PoMain a LEFT JOIN dbo.Sys_WorkPoint b ON a.WorkPoint=b.WorkPointCode
  681. //LEFT JOIN dbo.ICSINVENTORY c ON a.InvCode=c.INVCODE AND a.WorkPoint=c.WorkPoint
  682. //left join (select bb.TransNO TransNO,bb.TransLine TransLine,bb.ItemCODE ItemCODE,sum(aa.RECEIVEQTY) RECEIVEQTY from
  683. //ICSASNdetail aa
  684. //left join ICSITEMLot bb on aa.LOTNO=bb.LotNO
  685. //group by bb.TransNO,bb.TransLine,bb.ItemCODE) cc on a.pocode=cc.transno and a.PORow=cc.TransLine
  686. //left join (select dd.TransNO TransNO,dd.TransLine TransLine,dd.ItemCODE ItemCODE,sum(ee.TransQTY) TransQTY from
  687. // ICSITEMLot dd
  688. // left join ICSWareHouseLotInfolog ee on dd.LotNO=ee.LotNO
  689. // where ee.BusinessCode ='采购入库'
  690. //group by dd.TransNO,dd.TransLine,dd.ItemCODE) ff on a.pocode=ff.transno and a.PORow=ff.TransLine
  691. //left join (
  692. //select b.TransNO,b.TransLine,sum(isnull(a.NGQTY,0)) NGQTY from ICSREJECTIONDETAIL a
  693. //left join ICSITEMLot b on a.LOTNO=b.LotNO
  694. //group by b.TransNO,b.TransLine,b.EATTRIBUTE2
  695. //having b.EATTRIBUTE2 is null
  696. // ) gg on a.POCode=cc.TransNO and a.PORow=gg.TransLine
  697. //left join (
  698. //select POCode,iPOsID,sum(isnull(iQuantity,0)) returnqty
  699. //FROM ICSPOArrive group by POCode,iPOsID,free2,free3 having free2='退' and Free3=1
  700. //) hh on a.POCode=hh.POCode and a.PORow=hh.iPOsID
  701. //LEFT JOIN (SELECT b.TransNO,b.TransLine,
  702. // (SUM(ISNULL(a.PLANQTY, 0)) - SUM(ISNULL(a.RECEIVEQTY, 0))) AS repairqty,a.WorkPoint
  703. // FROM ICSASNDETAIL a
  704. // LEFT JOIN ICSITEMLot b ON a.LOTNO = b.LotNO AND a.WorkPoint = b.WorkPoint AND a.RECEIVEQTY IS NOT NULL
  705. // GROUP BY b.TransNO,b.TransLine,a.WorkPoint
  706. // ) II ON a.POCode = II.TransNO AND a.PORow = II.TransLine AND a.WorkPoint = II.WorkPoint
  707. // LEFT JOIN (SELECT bb.TransNO,bb.TransLine,hh.PaperNo from ICSCADetail jj
  708. // left join ICSInvoiceDetail nn on jj.DocNO=nn.src_caDocNO
  709. // left join ICSInvoice hh on nn.DocNO=hh.DocNO
  710. // left join ICSASN ss ON jj.Src_ASNDocNo = ss.STNO
  711. // left join ICSASNdetail sss on ss.stno=ss.STNO
  712. // left join ICSITEMLot bb on sss.LOTNO=bb.LotNO) jjj on cc.TransNO=jjj.TransNO and cc.TransLine=jjj.TransLine
  713. // WHERE 1=1";
  714. // string sql = @" SELECT DISTINCT a.ID,a.POCode,a.Sequence,CONVERT(NVARCHAR(50),CreateDateTime,23) as PODate,a.VenCode,VenName,CreatePerson,POType,a.InvCode,
  715. //c.INVNAME,c.INVDESC,--c.INVTYPE,a.ReMark
  716. //es.ProjectCode,UnitPrice,
  717. //Quantity,CASE WHEN ReleaseState='1' THEN '已发布'ELSE '未发布' END AS ReleaseState,CONVERT(NVARCHAR(50),PlanArriveDate,23) as PreArriveDate,CONVERT(NVARCHAR(50),ArriveDate,23) as ArriveDate, CONVERT(NVARCHAR(50),DeliveryDate,23) as Free5,a.WorkPoint,b.WorkPointName,
  718. //ArriveUser,DeliveryUser,c.INVSTD,cast( cc.RECEIVEQTY as decimal(18,3)) AS LJDH,
  719. //ff.TransQTY AS JLRK,isnull(gg.NGQTY,0) AS RefuseLotQty,isnull(hh.returnqty,0) AS BackLotQty
  720. //,a.EATTRIBUTE11,a.EATTRIBUTE12,a.EATTRIBUTE13,a.EATTRIBUTE14,a.EATTRIBUTE15,a.EATTRIBUTE16,a.EATTRIBUTE17
  721. //FROM dbo.ICSPurchaseOrder a LEFT JOIN dbo.Sys_WorkPoint b ON a.WorkPoint=b.WorkPointCode
  722. //LEFT JOIN dbo.ICSINVENTORY c ON a.InvCode=c.INVCODE AND a.WorkPoint=c.WorkPoint
  723. //LEFT JOIN dbo.ICSVendor ven ON a.VenCode=ven.VenCode
  724. //LEFT JOIN dbo.ICSExtension es ON a.ExtensionID=es.ID
  725. //left join ( select cc.TransCode,cc.TransSequence,bb.InvCode ,sum(aa.Quantity) RECEIVEQTY from
  726. //ICSASNdetail aa
  727. //LEFT JOIN ICSInventoryLot bb ON aa.LotNo=bb.LotNo AND aa.WorkPoint=bb.WorkPoint
  728. //left join ICSInventoryLotDetail cc on bb.LOTNO=cc.LotNO
  729. //group by cc.TransCode,cc.TransSequence,bb.InvCode) cc on a.pocode=cc.TransCode and a.Sequence=cc.TransSequence
  730. //left join (
  731. // select cc.TransCode,cc.TransSequence,dd.InvCode ItemCODE,sum(ee.Quantity) TransQTY
  732. // FROM ICSInventoryLot dd
  733. // left join ICSInventoryLotDetail cc on dd.LOTNO=cc.LotNO
  734. // left join ICSWareHouseLotInfolog ee on dd.LotNO=ee.LotNO
  735. // where ee.BusinessCode ='1'
  736. //group by cc.TransCode,cc.TransSequence,dd.InvCode) ff on a.pocode=ff.TransCode and a.Sequence=ff.TransSequence
  737. //left join (
  738. //select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY
  739. //FROM ICSInspection a
  740. //LEFT JOIN ICSInventoryLot b ON a.LotNo=b.lotno
  741. //left join ICSInventoryLotDetail c on b.LOTNO=c.LotNO
  742. //group by c.TransCode,c.TransSequence,b.EATTRIBUTE2
  743. //having b.EATTRIBUTE2 is null
  744. // ) gg on a.POCode=cc.TransCode and a.Sequence=gg.TransSequence
  745. //left join (
  746. //select n.POCode,n.Sequence,sum(isnull(a.Quantity,0)) returnqty
  747. //FROM ICSDeliveryNotice a
  748. //INNER JOIN ICSPurchaseOrder n ON a.POID =n.POID AND a.PODetailID=n.PODetailID AND a.WorkPoint=n.WorkPoint
  749. // group by POCode,n.Sequence,DNType HAVING DNType='2'
  750. //) hh on a.POCode=hh.POCode and a.Sequence=hh.Sequence
  751. // WHERE 1=1 and a.Status<>'3'";
  752. string sql = @"SELECT DISTINCT
  753. a.ID,
  754. a.POCode,
  755. a.Sequence,
  756. CONVERT(NVARCHAR(50), a.CreateDateTime, 23) AS PODate,
  757. a.VenCode,
  758. ven.VenName,
  759. a.CreatePerson,
  760. a.POType,
  761. a.InvCode,
  762. c.INVNAME,
  763. c.INVDESC,
  764. es.ProjectCode,
  765. a.UnitPrice,
  766. a.Quantity,
  767. CASE WHEN a.ReleaseState = '1' THEN '' ELSE '' END AS ReleaseState,
  768. CONVERT(NVARCHAR(50), a.PlanArriveDate, 23) AS PreArriveDate,
  769. CONVERT(NVARCHAR(50), a.ArriveDate, 23) AS ArriveDate,
  770. CONVERT(NVARCHAR(50), a.DeliveryDate, 23) AS Free5,
  771. a.WorkPoint,
  772. b.WorkPointName,
  773. a.ArriveUser,
  774. a.DeliveryUser,
  775. c.INVSTD,
  776. CAST(cc.RECEIVEQTY AS DECIMAL(18, 3)) AS LJDH,
  777. ff.TransQTY AS JLRK,
  778. ISNULL(gg.NGQTY, 0) AS RefuseLotQty,
  779. ISNULL(hh.returnqty, 0) AS BackLotQty,
  780. a.EATTRIBUTE11,
  781. a.EATTRIBUTE12,
  782. a.EATTRIBUTE13,
  783. a.EATTRIBUTE14,
  784. a.EATTRIBUTE15,
  785. a.EATTRIBUTE16,
  786. a.EATTRIBUTE17,
  787. ii.TMQty,
  788. jj.ASNQty,
  789. kk.insQty,
  790. ll.ConQty,
  791. mm.NOAsnQty,
  792. nn.DnQty,
  793. oo.NOInqty
  794. FROM
  795. dbo.ICSPurchaseOrder a
  796. LEFT JOIN dbo.Sys_WorkPoint b ON a.WorkPoint = b.WorkPointCode
  797. LEFT JOIN dbo.ICSINVENTORY c ON a.InvCode = c.INVCODE AND a.WorkPoint = c.WorkPoint
  798. LEFT JOIN dbo.ICSVendor ven ON a.VenCode = ven.VenCode
  799. LEFT JOIN dbo.ICSExtension es ON a.ExtensionID = es.ID
  800. --
  801. LEFT JOIN (
  802. SELECT cc.TransCode, cc.TransSequence, bb.InvCode, SUM(aa.Quantity) AS RECEIVEQTY
  803. FROM ICSASNdetail aa
  804. LEFT JOIN ICSInventoryLot bb ON aa.LotNo = bb.LotNo AND aa.WorkPoint = bb.WorkPoint
  805. LEFT JOIN ICSInventoryLotDetail cc ON bb.LOTNO = cc.LotNO
  806. GROUP BY cc.TransCode, cc.TransSequence, bb.InvCode
  807. ) cc ON a.pocode = cc.TransCode AND a.Sequence = cc.TransSequence
  808. --
  809. LEFT JOIN (
  810. SELECT cc.TransCode, cc.TransSequence, dd.InvCode AS ItemCODE, SUM(ee.Quantity) AS TransQTY
  811. FROM ICSInventoryLot dd
  812. LEFT JOIN ICSInventoryLotDetail cc ON dd.LOTNO = cc.LotNO
  813. LEFT JOIN ICSWareHouseLotInfolog ee ON dd.LotNO = ee.LotNO
  814. WHERE ee.BusinessCode = '1'
  815. GROUP BY cc.TransCode, cc.TransSequence, dd.InvCode
  816. ) ff ON a.pocode = ff.TransCode AND a.Sequence = ff.TransSequence
  817. --
  818. LEFT JOIN (
  819. SELECT c.TransCode, c.TransSequence, SUM(ISNULL(a.UnqualifiedQuantity, 0)) AS NGQTY, a.WorkPoint
  820. FROM ICSInspection a
  821. LEFT JOIN ICSInventoryLot b ON a.LotNo = b.lotno AND a.WorkPoint = b.WorkPoint
  822. LEFT JOIN ICSInventoryLotDetail c ON b.LOTNO = c.LotNO AND b.WorkPoint = c.WorkPoint
  823. GROUP BY c.TransCode, c.TransSequence, b.EATTRIBUTE2, a.WorkPoint
  824. HAVING b.EATTRIBUTE2 IS NULL
  825. ) gg ON a.POCode = gg.TransCode AND a.Sequence = gg.TransSequence AND a.WorkPoint = gg.WorkPoint
  826. -- 退
  827. LEFT JOIN (
  828. SELECT n.POCode, n.Sequence, SUM(ISNULL(a.Quantity, 0)) AS returnqty
  829. FROM ICSDeliveryNotice a
  830. INNER JOIN ICSPurchaseOrder n ON a.POID = n.POID AND a.PODetailID = n.PODetailID AND a.WorkPoint = n.WorkPoint
  831. GROUP BY n.POCode, n.Sequence, a.DNType
  832. HAVING a.DNType = '2'
  833. ) hh ON a.POCode = hh.POCode AND a.Sequence = hh.Sequence
  834. --
  835. LEFT JOIN (
  836. SELECT SUM(a.Quantity) AS TMQty, b.TransCode, b.TransSequence, a.WorkPoint
  837. FROM dbo.ICSInventoryLot a
  838. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  839. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  840. ) ii ON ii.TransCode = a.PoCode AND ii.TransSequence = a.Sequence AND a.WorkPoint = ii.WorkPoint
  841. --
  842. LEFT JOIN (
  843. SELECT SUM(a.Quantity) AS ASNQty, b.TransCode, b.TransSequence, b.WorkPoint
  844. FROM dbo.ICSASNDetail a
  845. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  846. GROUP BY b.TransCode, b.TransSequence, b.WorkPoint
  847. ) jj ON a.PoCode = jj.TransCode AND a.Sequence = jj.TransSequence AND a.WorkPoint = jj.WorkPoint
  848. --
  849. LEFT JOIN (
  850. SELECT SUM(a.Quantity) AS insQty, b.TransCode, b.TransSequence, b.WorkPoint
  851. FROM dbo.ICSInspection a
  852. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  853. LEFT JOIN dbo.ICSWareHouseLotInfoLog c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  854. WHERE c.LotNo IS NULL
  855. GROUP BY b.TransCode, b.TransSequence, b.WorkPoint
  856. ) kk ON a.PoCode = kk.TransCode AND a.Sequence = kk.TransSequence AND a.WorkPoint = kk.WorkPoint
  857. --
  858. LEFT JOIN (
  859. SELECT SUM(a.Quantity) AS ConQty, b.TransCode, b.TransSequence, a.WorkPoint
  860. FROM dbo.ICSInventoryLot a
  861. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  862. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  863. LEFT JOIN dbo.ICSContainer d ON c.ContainerID = d.ID AND c.WorkPoint = d.WorkPoint
  864. WHERE d.ContainerCode IS NULL
  865. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  866. ) ll ON a.PoCode = ll.TransCode AND a.Sequence = ll.TransSequence AND a.WorkPoint = ll.WorkPoint
  867. --
  868. LEFT JOIN (
  869. SELECT SUM(a.Quantity) AS NOAsnQty, b.TransCode, b.TransSequence, a.WorkPoint
  870. FROM dbo.ICSInventoryLot a
  871. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  872. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  873. LEFT JOIN dbo.ICSContainer d ON c.ContainerID = d.ID AND c.WorkPoint = d.WorkPoint
  874. LEFT JOIN dbo.ICSASNDetail e ON a.LotNo = e.LotNo AND a.WorkPoint = e.WorkPoint
  875. WHERE e.LotNo IS NULL
  876. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  877. ) mm ON a.PoCode = mm.TransCode AND a.Sequence = mm.TransSequence AND a.WorkPoint = mm.WorkPoint
  878. --
  879. LEFT JOIN (
  880. SELECT SUM(a.Quantity) AS DnQty, c.TransCode, c.TransSequence, a.WorkPoint
  881. FROM dbo.ICSASNDetail a
  882. LEFT JOIN dbo.ICSASN b ON a.ASNCode = b.ASNCode AND a.WorkPoint = b.WorkPoint
  883. LEFT JOIN dbo.ICSInventoryLotDetail c ON a.LotNo = c.LotNo AND a.WorkPoint = c.WorkPoint
  884. LEFT JOIN dbo.ICSDeliveryNotice d ON b.ASNCode = d.ASNCode AND b.WorkPoint = d.WorkPoint AND d.DNType = '1'
  885. WHERE d.ASNCode IS NULL
  886. GROUP BY c.TransCode, c.TransSequence, a.WorkPoint
  887. ) nn ON a.PoCode = nn.TransCode AND a.Sequence = nn.TransSequence AND a.WorkPoint = nn.WorkPoint
  888. --
  889. LEFT JOIN (
  890. SELECT SUM(a.Quantity) AS NOInqty, e.TransCode, e.TransSequence, a.WorkPoint
  891. FROM dbo.ICSDeliveryNotice a
  892. LEFT JOIN dbo.ICSASNDetail b ON a.ASNCode = b.ASNCode AND a.WorkPoint = b.WorkPoint
  893. LEFT JOIN dbo.ICSInspection c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  894. LEFT JOIN dbo.ICSInventory d ON c.InvCode = d.InvCode AND c.WorkPoint = d.WorkPoint
  895. LEFT JOIN dbo.ICSInventoryLotDetail e ON c.LotNo = e.LotNo AND c.WorkPoint = e.WorkPoint
  896. WHERE c.LotNo IS NULL AND d.InvIQC = '1'
  897. GROUP BY e.TransCode, e.TransSequence, a.WorkPoint
  898. ) oo ON a.PoCode = oo.TransCode AND a.Sequence = oo.TransSequence AND a.WorkPoint = oo.WorkPoint
  899. WHERE
  900. 1 = 1 ";
  901. if (!string.IsNullOrWhiteSpace(queryJson))
  902. {
  903. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  904. {
  905. sql += " and es.ProjectCode like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  906. }
  907. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  908. {
  909. sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  910. }
  911. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  912. {
  913. sql += " and a.CreateDateTime >='" + queryParam["BeginDate"].ToString() + "' ";
  914. }
  915. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  916. {
  917. sql += " and a.CreateDateTime <='" + queryParam["EndDate"].ToString() + "'";
  918. }
  919. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  920. {
  921. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  922. }
  923. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  924. {
  925. sql += " and VenName like '%" + queryParam["VenName"].ToString() + "%'";
  926. }
  927. if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
  928. {
  929. sql += " and a.CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'";
  930. }
  931. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  932. {
  933. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  934. }
  935. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  936. {
  937. string ReleaseState = queryParam["ReleaseState"].ToString();
  938. if (ReleaseState == "1")
  939. sql += " and ReleaseState = '1'";
  940. else if (ReleaseState == "2")
  941. sql += " and ReleaseState = '0'";
  942. }
  943. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  944. sql += " AND a.WorkPoint=" + WorkPoint + "";
  945. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  946. {
  947. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  948. }
  949. }
  950. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  951. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  952. {
  953. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  954. }
  955. else
  956. {
  957. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  958. }
  959. }
  960. public DataTable GetPOlistbyYLGridJson(string queryJson, ref Pagination jqgridparam)
  961. {
  962. string ParentId = "";
  963. DataTable dt = new DataTable();
  964. var queryParam = queryJson.ToJObject();
  965. List<DbParameter> parameter = new List<DbParameter>();
  966. #region 查询数据字典中维护的站点信息
  967. string sqlEnabledMark = @"SELECT a.F_ItemName,a.F_Description,a.F_ItemCode FROM Sys_SRM_ItemsDetail a
  968. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  969. WHERE b.F_EnCode = 'ERP001' and a.F_EnabledMark='1'
  970. ";
  971. dt = SqlHelper.GetDataTableBySql(sqlEnabledMark);
  972. #endregion
  973. string sql = @" select distinct b.ccode,CONVERT(nvarchar(20),b.dDate,23) as dDate ,a.VenCode,c.VenName,a.EATTRIBUTE2,a.Sequence,d.LotNo,a.InvCode,e.InvName,e.InvStd,a.Quantity,b.cDefine22
  974. ,b.cDefine23,CONVERT(nvarchar(20),b.dRequirDate,23) as dRequirDate,CONVERT(nvarchar(20),a.PlanArriveDate,23) as PlanArriveDate,CONVERT(nvarchar(20),g.MTIME,23) as MTIME,
  975. case
  976. when i.Quantity>0 then ''
  977. when h.Quantity>0 then ''
  978. when g.Quantity>0 then ''
  979. when f.Quantity>0 then ''
  980. end ststus,cc.NGQTY AS RefuseLotQty,dd.rkqty,CONVERT(nvarchar(20),a.ArriveDate,23) as ArriveDate
  981. from ICSPurchaseOrder a
  982. inner join (
  983. select iAppIds ,d.ccode,a.cpoid,b.ivouchrowno,d.dDate,b.cDefine22,b.cDefine23,c.dRequirDate from {0}.dbo.PO_Pomain a
  984. inner join {0}.dbo.PO_Podetails b on a.POID =b.POID
  985. inner join {0}.dbo.PU_AppVouchs c on b.iAppIds=c.AutoID
  986. inner join {0}.dbo.PU_AppVouch d on c.ID =d.ID ) b on a.POCode=b.cpoid and a.Sequence=b.ivouchrowno
  987. left join ICSVendor c on a.WorkPoint=c.WorkPoint and a.VenCode=c.VenCode
  988. inner join ICSInventoryLotDetail d on a.POCode=d.TransCode and a.Sequence=d.TransSequence and a.WorkPoint=d.WorkPoint
  989. left join ICSInventory e on a.InvCode=e.InvCode and a.WorkPoint=e.WorkPoint
  990. left join ICSASNDetail f on d.LotNo=f.LotNo and d.WorkPoint=f.WorkPoint
  991. left join ICSDeliveryNotice g on f.ASNCode=g.ASNCode and f.WorkPoint=g.WorkPoint
  992. left join ICSInspection h on d.LotNo=h.LotNo and d.WorkPoint=h.WorkPoint
  993. left join ICSWareHouseLotInfoLog i on d.LotNo=i.LotNo and d.WorkPoint=i.WorkPoint
  994. left join (
  995. select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  996. from ICSDeliveryNotice a
  997. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  998. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  999. group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3'
  1000. ) cc on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
  1001. left join (select SUM(Quantity)as rkqty,TransCode,TransSequence,WorkPoint from ICSWareHouseLotInfoLog a
  1002. group by TransCode,TransSequence,WorkPoint) dd on a.POCode=dd.TransCode and a.Sequence=dd.TransSequence and a.WorkPoint=dd.WorkPoint
  1003. where 1=1";
  1004. if (!string.IsNullOrWhiteSpace(queryJson))
  1005. {
  1006. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  1007. {
  1008. sql += " and ORDERNO like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  1009. }
  1010. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1011. {
  1012. sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1013. }
  1014. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  1015. {
  1016. sql += " and PODate >='" + queryParam["BeginDate"].ToString() + "' ";
  1017. }
  1018. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  1019. {
  1020. sql += " and PODate <='" + queryParam["EndDate"].ToString() + "'";
  1021. }
  1022. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1023. {
  1024. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1025. }
  1026. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1027. {
  1028. sql += " and VenName like '%" + queryParam["VenName"].ToString() + "%'";
  1029. }
  1030. if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
  1031. {
  1032. sql += " and CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'";
  1033. }
  1034. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1035. {
  1036. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  1037. }
  1038. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  1039. {
  1040. string ReleaseState = queryParam["ReleaseState"].ToString();
  1041. if (ReleaseState == "1")
  1042. sql += " and ReleaseState = '1'";
  1043. else if (ReleaseState == "2")
  1044. sql += " and ReleaseState = '0'";
  1045. }
  1046. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1047. {
  1048. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1049. sql += " AND a.WorkPoint=" + WorkPoint + "";
  1050. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1051. }
  1052. sql = string.Format(sql, dt.Rows[0]["F_Description"].ToString());
  1053. }
  1054. //ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1055. //if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  1056. //{
  1057. // return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  1058. //}
  1059. //else
  1060. //{
  1061. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1062. //}
  1063. }
  1064. public DataTable GetPOListExport(string keyVaule)
  1065. {
  1066. string ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1067. string sql = @"with
  1068. CTE
  1069. as
  1070. (
  1071. select * from Sys_SRM_Organize where F_Id='" + ParentId + @"'
  1072. union all
  1073. select G.* from CTE inner join Sys_SRM_Organize as G
  1074. on CTE.F_Id=G.F_ParentID
  1075. )SELECT DISTINCT a.POCode AS ,a.Sequence AS ,CONVERT(NVARCHAR(50),CreateDateTime,23) as ,a.VenCode AS ,VenName AS ,CreatePerson AS ,POType AS ,a.InvCode AS ,
  1076. c.INVNAME AS ,c.INVSTD AS , --c.INVTYPE,a.ReMark
  1077. es.ProjectCode AS ,UnitPrice AS ,
  1078. Quantity AS ,cast( cc.RECEIVEQTY as decimal(18,3)) AS ,
  1079. ff.TransQTY AS ,isnull(hh.returnqty,0) AS 退,isnull(gg.NGQTY,0) AS , ii.TMQty as ,
  1080. jj.ASNQty as ,
  1081. ll.ConQty as ,
  1082. mm.NOAsnQty as ,
  1083. nn.DnQty as ,
  1084. oo.NOInqty as ,
  1085. kk.insQty as ,
  1086. CASE WHEN ReleaseState='1' THEN ''ELSE '' END AS
  1087. ,CONVERT(NVARCHAR(50),ArriveDate,23) as ,a.ArriveUser AS ,a.DeliveryDate AS ,a.DeliveryUser AS
  1088. ,a.WorkPoint
  1089. FROM dbo.ICSPurchaseOrder a LEFT JOIN dbo.Sys_WorkPoint b ON a.WorkPoint=b.WorkPointCode
  1090. LEFT JOIN dbo.ICSINVENTORY c ON a.InvCode=c.INVCODE AND a.WorkPoint=c.WorkPoint
  1091. LEFT JOIN dbo.ICSVendor ven ON a.VenCode=ven.VenCode
  1092. LEFT JOIN dbo.ICSExtension es ON a.ExtensionID=es.ID
  1093. left join ( select cc.TransCode,cc.TransSequence,bb.InvCode ,sum(aa.Quantity) RECEIVEQTY from
  1094. ICSASNdetail aa
  1095. LEFT JOIN ICSInventoryLot bb ON aa.LotNo=bb.LotNo AND aa.WorkPoint=bb.WorkPoint
  1096. left join ICSInventoryLotDetail cc on bb.LOTNO=cc.LotNO
  1097. group by cc.TransCode,cc.TransSequence,bb.InvCode) cc on a.pocode=cc.TransCode and a.Sequence=cc.TransSequence
  1098. left join (
  1099. select cc.TransCode,cc.TransSequence,dd.InvCode ItemCODE,sum(ee.Quantity) TransQTY
  1100. FROM ICSInventoryLot dd
  1101. left join ICSInventoryLotDetail cc on dd.LOTNO=cc.LotNO
  1102. left join ICSWareHouseLotInfolog ee on dd.LotNO=ee.LotNO
  1103. where ee.BusinessCode ='1'
  1104. group by cc.TransCode,cc.TransSequence,dd.InvCode) ff on a.pocode=ff.TransCode and a.Sequence=ff.TransSequence
  1105. left join (
  1106. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY
  1107. FROM ICSInspection a
  1108. LEFT JOIN ICSInventoryLot b ON a.LotNo=b.lotno
  1109. left join ICSInventoryLotDetail c on b.LOTNO=c.LotNO
  1110. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2
  1111. having b.EATTRIBUTE2 is null
  1112. ) gg on a.POCode=cc.TransCode and a.Sequence=gg.TransSequence
  1113. left join (
  1114. select n.POCode,n.Sequence,sum(isnull(a.Quantity,0)) returnqty
  1115. FROM ICSDeliveryNotice a
  1116. INNER JOIN ICSPurchaseOrder n ON a.POID =n.POID AND a.PODetailID=n.PODetailID AND a.WorkPoint=n.WorkPoint
  1117. group by POCode,n.Sequence,DNType HAVING DNType='2'
  1118. ) hh on a.POCode=hh.POCode and a.Sequence=hh.Sequence
  1119. --
  1120. LEFT JOIN (
  1121. SELECT SUM(a.Quantity) AS TMQty, b.TransCode, b.TransSequence, a.WorkPoint
  1122. FROM dbo.ICSInventoryLot a
  1123. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1124. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  1125. ) ii ON ii.TransCode = a.PoCode AND ii.TransSequence = a.Sequence AND a.WorkPoint = ii.WorkPoint
  1126. --
  1127. LEFT JOIN (
  1128. SELECT SUM(a.Quantity) AS ASNQty, b.TransCode, b.TransSequence, b.WorkPoint
  1129. FROM dbo.ICSASNDetail a
  1130. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1131. GROUP BY b.TransCode, b.TransSequence, b.WorkPoint
  1132. ) jj ON a.PoCode = jj.TransCode AND a.Sequence = jj.TransSequence AND a.WorkPoint = jj.WorkPoint
  1133. --
  1134. LEFT JOIN (
  1135. SELECT SUM(a.Quantity) AS insQty, b.TransCode, b.TransSequence, b.WorkPoint
  1136. FROM dbo.ICSInspection a
  1137. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1138. LEFT JOIN dbo.ICSWareHouseLotInfoLog c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1139. WHERE c.LotNo IS NULL
  1140. GROUP BY b.TransCode, b.TransSequence, b.WorkPoint
  1141. ) kk ON a.PoCode = kk.TransCode AND a.Sequence = kk.TransSequence AND a.WorkPoint = kk.WorkPoint
  1142. --
  1143. LEFT JOIN (
  1144. SELECT SUM(a.Quantity) AS ConQty, b.TransCode, b.TransSequence, a.WorkPoint
  1145. FROM dbo.ICSInventoryLot a
  1146. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1147. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1148. LEFT JOIN dbo.ICSContainer d ON c.ContainerID = d.ID AND c.WorkPoint = d.WorkPoint
  1149. WHERE d.ContainerCode IS NULL
  1150. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  1151. ) ll ON a.PoCode = ll.TransCode AND a.Sequence = ll.TransSequence AND a.WorkPoint = ll.WorkPoint
  1152. --
  1153. LEFT JOIN (
  1154. SELECT SUM(a.Quantity) AS NOAsnQty, b.TransCode, b.TransSequence, a.WorkPoint
  1155. FROM dbo.ICSInventoryLot a
  1156. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1157. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1158. LEFT JOIN dbo.ICSContainer d ON c.ContainerID = d.ID AND c.WorkPoint = d.WorkPoint
  1159. LEFT JOIN dbo.ICSASNDetail e ON a.LotNo = e.LotNo AND a.WorkPoint = e.WorkPoint
  1160. WHERE e.LotNo IS NULL
  1161. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  1162. ) mm ON a.PoCode = mm.TransCode AND a.Sequence = mm.TransSequence AND a.WorkPoint = mm.WorkPoint
  1163. --
  1164. LEFT JOIN (
  1165. SELECT SUM(a.Quantity) AS DnQty, c.TransCode, c.TransSequence, a.WorkPoint
  1166. FROM dbo.ICSASNDetail a
  1167. LEFT JOIN dbo.ICSASN b ON a.ASNCode = b.ASNCode AND a.WorkPoint = b.WorkPoint
  1168. LEFT JOIN dbo.ICSInventoryLotDetail c ON a.LotNo = c.LotNo AND a.WorkPoint = c.WorkPoint
  1169. LEFT JOIN dbo.ICSDeliveryNotice d ON b.ASNCode = d.ASNCode AND b.WorkPoint = d.WorkPoint AND d.DNType = '1'
  1170. WHERE d.ASNCode IS NULL
  1171. GROUP BY c.TransCode, c.TransSequence, a.WorkPoint
  1172. ) nn ON a.PoCode = nn.TransCode AND a.Sequence = nn.TransSequence AND a.WorkPoint = nn.WorkPoint
  1173. --
  1174. LEFT JOIN (
  1175. SELECT SUM(a.Quantity) AS NOInqty, e.TransCode, e.TransSequence, a.WorkPoint
  1176. FROM dbo.ICSDeliveryNotice a
  1177. LEFT JOIN dbo.ICSASNDetail b ON a.ASNCode = b.ASNCode AND a.WorkPoint = b.WorkPoint
  1178. LEFT JOIN dbo.ICSInspection c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1179. LEFT JOIN dbo.ICSInventory d ON c.InvCode = d.InvCode AND c.WorkPoint = d.WorkPoint
  1180. LEFT JOIN dbo.ICSInventoryLotDetail e ON c.LotNo = e.LotNo AND c.WorkPoint = e.WorkPoint
  1181. WHERE c.LotNo IS NULL AND d.InvIQC = '1'
  1182. GROUP BY e.TransCode, e.TransSequence, a.WorkPoint
  1183. ) oo ON a.PoCode = oo.TransCode AND a.Sequence = oo.TransSequence AND a.WorkPoint = oo.WorkPoint
  1184. WHERE 1=1
  1185. ";
  1186. sql += " and a.ID in (" + keyVaule + ")";
  1187. sql += " and a.WorkPoint in ("+ NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1188. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  1189. {
  1190. sql += @" AND a.CreatePerson IN
  1191. (select F_RealName from CTE a
  1192. inner JOIN sys_SRM_Role b ON a.F_ID=b.F_OrganizeId
  1193. inner JOIN sys_srm_user c ON b.F_ID=c.F_RoleID
  1194. )";
  1195. }
  1196. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1197. return dt;
  1198. }
  1199. public DataTable GetPOListExport(string ORDERNO, string STNO, string BeginDate, string EndDate, string VenCode, string VenName, string InvCode, string PersonName, string POStatus,string IsAll)
  1200. {
  1201. string ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1202. List<DbParameter> parameter = new List<DbParameter>();
  1203. string sql = @"with
  1204. CTE
  1205. as
  1206. (
  1207. select * from Sys_SRM_Organize where F_Id='" + ParentId + @"'
  1208. union all
  1209. select G.* from CTE inner join Sys_SRM_Organize as G
  1210. on CTE.F_Id=G.F_ParentID
  1211. )SELECT DISTINCT a.POCode AS ,a.Sequence AS ,CONVERT(NVARCHAR(50),CreateDateTime,23) as ,a.VenCode AS ,VenName AS ,CreatePerson AS ,POType AS ,a.InvCode AS ,
  1212. c.INVNAME AS ,c.INVSTD AS , --c.INVTYPE,a.ReMark
  1213. es.ProjectCode AS ,UnitPrice AS ,
  1214. Quantity AS ,cast( cc.RECEIVEQTY as decimal(18,3)) AS ,
  1215. ff.TransQTY AS ,isnull(hh.returnqty,0) AS 退,isnull(gg.NGQTY,0) AS , ii.TMQty as ,
  1216. jj.ASNQty as ,
  1217. ll.ConQty as ,
  1218. mm.NOAsnQty as ,
  1219. nn.DnQty as ,
  1220. oo.NOInqty as ,
  1221. kk.insQty as ,
  1222. CASE WHEN ReleaseState='1' THEN ''ELSE '' END AS
  1223. ,CONVERT(NVARCHAR(50),ArriveDate,23) as ,a.ArriveUser AS ,a.DeliveryDate AS ,a.DeliveryUser AS
  1224. ,a.WorkPoint
  1225. FROM dbo.ICSPurchaseOrder a LEFT JOIN dbo.Sys_WorkPoint b ON a.WorkPoint=b.WorkPointCode
  1226. LEFT JOIN dbo.ICSINVENTORY c ON a.InvCode=c.INVCODE AND a.WorkPoint=c.WorkPoint
  1227. LEFT JOIN dbo.ICSVendor ven ON a.VenCode=ven.VenCode
  1228. LEFT JOIN dbo.ICSExtension es ON a.ExtensionID=es.ID
  1229. left join ( select cc.TransCode,cc.TransSequence,bb.InvCode ,sum(aa.Quantity) RECEIVEQTY from
  1230. ICSASNdetail aa
  1231. LEFT JOIN ICSInventoryLot bb ON aa.LotNo=bb.LotNo AND aa.WorkPoint=bb.WorkPoint
  1232. left join ICSInventoryLotDetail cc on bb.LOTNO=cc.LotNO
  1233. group by cc.TransCode,cc.TransSequence,bb.InvCode) cc on a.pocode=cc.TransCode and a.Sequence=cc.TransSequence
  1234. left join (
  1235. select cc.TransCode,cc.TransSequence,dd.InvCode ItemCODE,sum(ee.Quantity) TransQTY
  1236. FROM ICSInventoryLot dd
  1237. left join ICSInventoryLotDetail cc on dd.LOTNO=cc.LotNO
  1238. left join ICSWareHouseLotInfolog ee on dd.LotNO=ee.LotNO
  1239. where ee.BusinessCode ='1'
  1240. group by cc.TransCode,cc.TransSequence,dd.InvCode) ff on a.pocode=ff.TransCode and a.Sequence=ff.TransSequence
  1241. left join (
  1242. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY
  1243. FROM ICSInspection a
  1244. LEFT JOIN ICSInventoryLot b ON a.LotNo=b.lotno
  1245. left join ICSInventoryLotDetail c on b.LOTNO=c.LotNO
  1246. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2
  1247. having b.EATTRIBUTE2 is null
  1248. ) gg on a.POCode=cc.TransCode and a.Sequence=gg.TransSequence
  1249. left join (
  1250. select n.POCode,n.Sequence,sum(isnull(a.Quantity,0)) returnqty
  1251. FROM ICSDeliveryNotice a
  1252. INNER JOIN ICSPurchaseOrder n ON a.POID =n.POID AND a.PODetailID=n.PODetailID AND a.WorkPoint=n.WorkPoint
  1253. group by POCode,n.Sequence,DNType HAVING DNType='2'
  1254. ) hh on a.POCode=hh.POCode and a.Sequence=hh.Sequence
  1255. --
  1256. LEFT JOIN (
  1257. SELECT SUM(a.Quantity) AS TMQty, b.TransCode, b.TransSequence, a.WorkPoint
  1258. FROM dbo.ICSInventoryLot a
  1259. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1260. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  1261. ) ii ON ii.TransCode = a.PoCode AND ii.TransSequence = a.Sequence AND a.WorkPoint = ii.WorkPoint
  1262. --
  1263. LEFT JOIN (
  1264. SELECT SUM(a.Quantity) AS ASNQty, b.TransCode, b.TransSequence, b.WorkPoint
  1265. FROM dbo.ICSASNDetail a
  1266. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1267. GROUP BY b.TransCode, b.TransSequence, b.WorkPoint
  1268. ) jj ON a.PoCode = jj.TransCode AND a.Sequence = jj.TransSequence AND a.WorkPoint = jj.WorkPoint
  1269. --
  1270. LEFT JOIN (
  1271. SELECT SUM(a.Quantity) AS insQty, b.TransCode, b.TransSequence, b.WorkPoint
  1272. FROM dbo.ICSInspection a
  1273. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1274. LEFT JOIN dbo.ICSWareHouseLotInfoLog c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1275. WHERE c.LotNo IS NULL
  1276. GROUP BY b.TransCode, b.TransSequence, b.WorkPoint
  1277. ) kk ON a.PoCode = kk.TransCode AND a.Sequence = kk.TransSequence AND a.WorkPoint = kk.WorkPoint
  1278. --
  1279. LEFT JOIN (
  1280. SELECT SUM(a.Quantity) AS ConQty, b.TransCode, b.TransSequence, a.WorkPoint
  1281. FROM dbo.ICSInventoryLot a
  1282. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1283. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1284. LEFT JOIN dbo.ICSContainer d ON c.ContainerID = d.ID AND c.WorkPoint = d.WorkPoint
  1285. WHERE d.ContainerCode IS NULL
  1286. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  1287. ) ll ON a.PoCode = ll.TransCode AND a.Sequence = ll.TransSequence AND a.WorkPoint = ll.WorkPoint
  1288. --
  1289. LEFT JOIN (
  1290. SELECT SUM(a.Quantity) AS NOAsnQty, b.TransCode, b.TransSequence, a.WorkPoint
  1291. FROM dbo.ICSInventoryLot a
  1292. LEFT JOIN dbo.ICSInventoryLotDetail b ON a.LotNo = b.LotNo AND a.WorkPoint = b.WorkPoint
  1293. LEFT JOIN dbo.ICSContainerLot c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1294. LEFT JOIN dbo.ICSContainer d ON c.ContainerID = d.ID AND c.WorkPoint = d.WorkPoint
  1295. LEFT JOIN dbo.ICSASNDetail e ON a.LotNo = e.LotNo AND a.WorkPoint = e.WorkPoint
  1296. WHERE e.LotNo IS NULL
  1297. GROUP BY b.TransCode, b.TransSequence, a.WorkPoint
  1298. ) mm ON a.PoCode = mm.TransCode AND a.Sequence = mm.TransSequence AND a.WorkPoint = mm.WorkPoint
  1299. --
  1300. LEFT JOIN (
  1301. SELECT SUM(a.Quantity) AS DnQty, c.TransCode, c.TransSequence, a.WorkPoint
  1302. FROM dbo.ICSASNDetail a
  1303. LEFT JOIN dbo.ICSASN b ON a.ASNCode = b.ASNCode AND a.WorkPoint = b.WorkPoint
  1304. LEFT JOIN dbo.ICSInventoryLotDetail c ON a.LotNo = c.LotNo AND a.WorkPoint = c.WorkPoint
  1305. LEFT JOIN dbo.ICSDeliveryNotice d ON b.ASNCode = d.ASNCode AND b.WorkPoint = d.WorkPoint AND d.DNType = '1'
  1306. WHERE d.ASNCode IS NULL
  1307. GROUP BY c.TransCode, c.TransSequence, a.WorkPoint
  1308. ) nn ON a.PoCode = nn.TransCode AND a.Sequence = nn.TransSequence AND a.WorkPoint = nn.WorkPoint
  1309. --
  1310. LEFT JOIN (
  1311. SELECT SUM(a.Quantity) AS NOInqty, e.TransCode, e.TransSequence, a.WorkPoint
  1312. FROM dbo.ICSDeliveryNotice a
  1313. LEFT JOIN dbo.ICSASNDetail b ON a.ASNCode = b.ASNCode AND a.WorkPoint = b.WorkPoint
  1314. LEFT JOIN dbo.ICSInspection c ON b.LotNo = c.LotNo AND b.WorkPoint = c.WorkPoint
  1315. LEFT JOIN dbo.ICSInventory d ON c.InvCode = d.InvCode AND c.WorkPoint = d.WorkPoint
  1316. LEFT JOIN dbo.ICSInventoryLotDetail e ON c.LotNo = e.LotNo AND c.WorkPoint = e.WorkPoint
  1317. WHERE c.LotNo IS NULL AND d.InvIQC = '1'
  1318. GROUP BY e.TransCode, e.TransSequence, a.WorkPoint
  1319. ) oo ON a.PoCode = oo.TransCode AND a.Sequence = oo.TransSequence AND a.WorkPoint = oo.WorkPoint
  1320. WHERE 1=1 ";
  1321. if (!string.IsNullOrWhiteSpace(ORDERNO))
  1322. sql += " and es.ProjectCode like '%" + ORDERNO + "%'";
  1323. if (!string.IsNullOrWhiteSpace(STNO))
  1324. sql += " and POCode like '%" + STNO + "%'";
  1325. if (!string.IsNullOrWhiteSpace(BeginDate))
  1326. sql += " and CONVERT(NVARCHAR(50),CreateDateTime,23) >= '" + BeginDate + "'";
  1327. if (!string.IsNullOrWhiteSpace(BeginDate))
  1328. sql += " and CONVERT(NVARCHAR(50),CreateDateTime,23) <= '" + EndDate + "'";
  1329. if (!string.IsNullOrWhiteSpace(VenCode))
  1330. sql += " and a.VenCode like '%" + VenCode + "%'";
  1331. if (!string.IsNullOrWhiteSpace(VenCode))
  1332. sql += " and VenName like '%" + VenName + "%'";
  1333. if (!string.IsNullOrWhiteSpace(InvCode))
  1334. sql += " and a.InvCode like '%" + InvCode + "%'";
  1335. if (!string.IsNullOrWhiteSpace(PersonName))
  1336. sql += " and a.CreatePerson like '%" + PersonName + "%'";
  1337. if (POStatus == "1")
  1338. sql += " and a.ReleaseState = '1'";
  1339. else if (POStatus == "2")
  1340. sql += " and a.ReleaseState = '0'";
  1341. if (IsAll == "1")
  1342. {
  1343. sql += " and cast( cc.RECEIVEQTY as decimal(18,3))<Quantity and PreArriveDate>ArriveDate";
  1344. }
  1345. else if (IsAll == "2")
  1346. {
  1347. sql += " and cast( cc.RECEIVEQTY as decimal(18,3))<Quantity and PreArriveDate<ArriveDate";
  1348. }
  1349. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1350. {
  1351. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1352. }
  1353. sql += " and a.WorkPoint in ("+ NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1354. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  1355. {
  1356. sql += @" AND a.CreatePerson IN
  1357. (select F_RealName from CTE a
  1358. inner JOIN sys_SRM_Role b ON a.F_ID=b.F_OrganizeId
  1359. inner JOIN sys_srm_user c ON b.F_ID=c.F_RoleID
  1360. )";
  1361. }
  1362. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1363. return dt;
  1364. }
  1365. /// <summary>
  1366. /// 判断后续工作
  1367. /// </summary>
  1368. /// <param name="CartonNo"></param>
  1369. /// <returns></returns>
  1370. public string CheckIsAgaion(string CartonNo, string PORow)
  1371. {
  1372. string msg = string.Empty;
  1373. string sql = @"SELECT ArriveDate FROM ICSPurchaseOrder WHERE POCODE=" + CartonNo + " AND WorkPOint=" + PORow + "";
  1374. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1375. if (dt != null && dt.Rows.Count > 0)
  1376. {
  1377. string sqlLot = @"
  1378. SELECT * FROM dbo.ICSInventoryLot a
  1379. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  1380. WHERE c.TransCode=" + CartonNo + " AND c.WorkPOint=" + PORow + "";
  1381. DataTable dtLot = SqlHelper.GetDataTableBySql(sqlLot);
  1382. if (dtLot != null && dtLot.Rows.Count > 0)
  1383. {
  1384. string sqlCarton = @"SELECT * FROM dbo.ICSInventoryLot a
  1385. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  1386. LEFT JOIN ICSContainerLot c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  1387. WHERE b.TransCode=" + CartonNo + " AND b.WorkPOint=" + PORow + "";
  1388. DataTable dtCarton = SqlHelper.GetDataTableBySql(sqlCarton);
  1389. if (dtCarton != null && dtCarton.Rows.Count > 0)
  1390. {
  1391. string sqlASN = @" SELECT *
  1392. FROM dbo.ICSASNDetail a
  1393. LEFT JOIN dbo.ICSInventoryLot b ON a.LotNo =b.LotNo AND a.WorkPoint=b.WorkPoint
  1394. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  1395. WHERE c.TransCode=" + CartonNo + " AND c.WorkPOint=" + PORow + "";
  1396. DataTable dtASN = SqlHelper.GetDataTableBySql(sqlASN);
  1397. if (dtASN != null && dtASN.Rows.Count > 0)
  1398. {
  1399. msg = "3";
  1400. }
  1401. else
  1402. {
  1403. msg = "2";
  1404. }
  1405. }
  1406. else
  1407. {
  1408. msg = "1";
  1409. }
  1410. }
  1411. else
  1412. {
  1413. msg = "0";
  1414. }
  1415. }
  1416. return msg;
  1417. }
  1418. public DataTable SelectColumnName(string BeginTime, string EndTime)
  1419. {
  1420. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1421. string sql = @"select ColCode, ColName from ICSExtensionEnable
  1422. where Enable=1
  1423. order by cast(EATTRIBUTE1 as int)";
  1424. sql = string.Format(sql, WorkPoint.TrimEnd(','));
  1425. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1426. return dt;
  1427. }
  1428. public DataTable SelectTableColumnName(string BeginTime, string EndTime)
  1429. {
  1430. string sql = @"select TableCode, ColumnCode AS Code,Name from ICSSRMColumnEnable
  1431. where Enable=1 order by MTIME";
  1432. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1433. return dt;
  1434. }
  1435. /// <summary>
  1436. /// 子表查询
  1437. /// </summary>
  1438. /// <param name="queryJson"></param>
  1439. /// <param name="jqgridparam"></param>
  1440. /// <returns></returns>
  1441. public DataTable GetSubGridJsonBYBB(string POCode, ref Pagination jqgridparam, string WorkPoint)
  1442. {
  1443. DataTable dt = new DataTable();
  1444. //var queryParam = queryJson.ToJObject();
  1445. List<DbParameter> parameter = new List<DbParameter>();
  1446. string sql = @"SELECT a.ID, a.POCode as Code,a.Sequence,a.InvCode,b.InvName,b.INVSTD,b.InvUnit,a.Quantity,a.ArriveDate,a.DeliveryDate,
  1447. CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,CONVERT(NVARCHAR(50),a.ReleaseDate,23) as ReleaseDate,
  1448. c.ProjectCode,b.InvDesc,b.ClassName,a.EATTRIBUTE2,a.EATTRIBUTE5
  1449. FROM dbo.ICSPurchaseOrder a
  1450. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  1451. LEFT JOIN dbo.ICSExtension c ON a.ExtensionID=c.ID AND a.WorkPoint=c.WorkPoint
  1452. WHERE a.POCode='" + POCode + "' and a.WorkPoint='" + WorkPoint + "' ";
  1453. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1454. }
  1455. /// <summary>
  1456. /// 子表查询(委外)
  1457. /// </summary>
  1458. /// <param name="queryJson"></param>
  1459. /// <param name="jqgridparam"></param>
  1460. /// <returns></returns>
  1461. public DataTable GetSubGridJsonWWByBB(string OOCode, ref Pagination jqgridparam, string WorkPoint)
  1462. {
  1463. DataTable dt = new DataTable();
  1464. //var queryParam = queryJson.ToJObject();
  1465. List<DbParameter> parameter = new List<DbParameter>();
  1466. string sql = @"SELECT a.ID, a.OOCode as Code, a.Sequence,a.InvCode,b.InvName,b.INVSTD,b.InvUnit,a.Quantity,a.ArriveDate,a.DeliveryDate,
  1467. CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,CONVERT(NVARCHAR(50),a.ReleaseDate,23) as ReleaseDate,
  1468. c.ProjectCode,b.InvDesc,b.ClassName,a.EATTRIBUTE2,a.EATTRIBUTE5
  1469. FROM dbo.ICSOutsourcingOrder a
  1470. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  1471. LEFT JOIN dbo.ICSExtension c ON a.ExtensionID=c.ID AND a.WorkPoint=c.WorkPoint
  1472. WHERE a.OOCode='" + OOCode + "'and a.WorkPoint='" + WorkPoint + "'";
  1473. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1474. }
  1475. public string SaveRemark(string keyValue,string Type)
  1476. {
  1477. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1478. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1479. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1480. string msg = "";
  1481. string sql = string.Empty;
  1482. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  1483. foreach (var item in res)
  1484. {
  1485. JObject jo = (JObject)item;
  1486. if (Type=="1")
  1487. {
  1488. sql += @" update ICSPurchaseOrder set EATTRIBUTE5='{0}' where ID='{1}'
  1489. ";
  1490. }
  1491. else
  1492. {
  1493. sql += @" update ICSOutsourcingOrder set EATTRIBUTE5='{0}' where ID='{1}'
  1494. ";
  1495. }
  1496. sql = string.Format(sql, jo["Remark"].ToString(), jo["ID"].ToString() );
  1497. }
  1498. try
  1499. {
  1500. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1501. {
  1502. }
  1503. else
  1504. {
  1505. msg = "保存失败";
  1506. }
  1507. }
  1508. catch (Exception ex)
  1509. {
  1510. msg = ex.Message;
  1511. }
  1512. return msg;
  1513. }
  1514. }
  1515. }