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.

1854 lines
97 KiB

1 month 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. using System.Text;
  13. using System.Threading.Tasks;
  14. namespace NFine.Application.PNSRM
  15. {
  16. public class ASNManageApp : RepositoryFactory<ICSVendor>
  17. {
  18. #region MyRegion
  19. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  20. {
  21. string ParentId = "";
  22. //加载前删除空白单据
  23. // string sqlDelete = @"DELETE a FROM dbo.ICSASN a
  24. // LEFT JOIN dbo.ICSASNDETAIL b ON a.ASNCode=b.ASNCode
  25. // WHERE b.ASNCode IS NULL";
  26. // SqlHelper.ExecuteNonQuery(sqlDelete);
  27. DataTable dt = new DataTable();
  28. var queryParam = queryJson.ToJObject();
  29. string sqlAccount = string.Empty;
  30. List<DbParameter> parameter = new List<DbParameter>();
  31. // string sql = @"SELECT distinct a.ID, a.ASNCode,a.VenCode,b.VenName AS VENDORNAME,w.WorkPointName,w.WorkPointCode,a.MUSERName,
  32. // a.MTIME,CONVERT(NVARCHAR(50),a.PlanArriveDate,23) as EXPARRIVALDATE,
  33. // CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUS
  34. // ,a.EATTRIBUTE1,
  35. // CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUSHidden
  36. // ,a.EATTRIBUTE2,a.EATTRIBUTE10,ISNULL(d.Quantity,0) AS Quantity,ISNULL(d.CountNum,0) as CountNum,convert(nvarchar(20),c.MTIME,120) DMTIME
  37. // FROM dbo.ICSASN a
  38. // LEFT JOIN (SELECT ISNULL(SUM(Quantity),0) AS Quantity,COUNT(*) AS CountNum,ASNCode,WorkPoint FROM ICSASNDetail
  39. // GROUP BY ASNCode,WorkPoint) d on a.ASNCode=d.ASNCode and a.WorkPoint=d.WorkPoint
  40. // LEFT JOIN ICSASNDetail e on a.ASNCode=e.ASNCode and a.WorkPoint=e.WorkPoint
  41. //left join ICSInventoryLotDetail f on e.LotNo=f.LotNo and e.WorkPoint=f.WorkPoint
  42. //left join ICSPurchaseOrder g on f.TransCode=g.POCode and f.TransSequence=g.Sequence and f.WorkPoint=g.WorkPoint
  43. // LEFT JOIN dbo.ICSVendor b ON a.VenCode=b.VenCode and a.WOrkPoint=b.WorkPoint
  44. // LEFT JOIN ICSDeliveryNotice c ON a.ASNCode = c.ASNCode
  45. // LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  46. // WHERE 1=1";
  47. string sql = @"SELECT distinct a.ID, a.ASNCode,a.VenCode,b.VenName AS VENDORNAME,w.WorkPointName,w.WorkPointCode,a.MUSERName,
  48. a.MTIME,CONVERT(NVARCHAR(50),a.PlanArriveDate,23) as EXPARRIVALDATE,
  49. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUS
  50. ,a.EATTRIBUTE1,
  51. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUSHidden
  52. ,a.EATTRIBUTE2,a.EATTRIBUTE10,ISNULL(d.Quantity,0) AS Quantity,convert(nvarchar(20),c.MTIME,120) DMTIME
  53. FROM dbo.ICSASN a
  54. LEFT JOIN (SELECT ISNULL(SUM(Quantity),0) AS Quantity,ASNCode,WorkPoint FROM ICSASNDetailDocuments
  55. GROUP BY ASNCode,WorkPoint) d on a.ASNCode=d.ASNCode and a.WorkPoint=d.WorkPoint
  56. LEFT JOIN dbo.ICSVendor b ON a.VenCode=b.VenCode and a.WOrkPoint=b.WorkPoint
  57. LEFT JOIN ICSDeliveryNotice c ON a.ASNCode = c.ASNCode and a.WorkPoint=c.WorkPoint
  58. LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  59. WHERE 1=1";
  60. if (!string.IsNullOrWhiteSpace(queryJson))
  61. {
  62. if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
  63. {
  64. sql += " and a.ASNCode like '%" + queryParam["STNO"].ToString() + "%' ";
  65. }
  66. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  67. {
  68. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  69. }
  70. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  71. {
  72. sql += " and b.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  73. }
  74. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  75. {
  76. sql += " and a.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
  77. }
  78. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  79. {
  80. sql += " and a.MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
  81. }
  82. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  83. {
  84. sql += " and g.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  85. }
  86. if (!string.IsNullOrWhiteSpace(queryParam["PoCode"].ToString()))
  87. {
  88. sql += " and g.POCode like '%" + queryParam["PoCode"].ToString() + "%' ";
  89. }
  90. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  91. {
  92. string ReleaseState = queryParam["ReleaseState"].ToString();
  93. if (ReleaseState == "0")
  94. sql += " AND CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '0'";
  95. else if (ReleaseState == "1")
  96. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '1'";
  97. else if (ReleaseState == "2")
  98. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '2'";
  99. else if (ReleaseState == "3")
  100. {
  101. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END='3'";
  102. }
  103. else if (ReleaseState == "4")
  104. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '4'";
  105. }
  106. }
  107. //多站点
  108. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  109. {
  110. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  111. }
  112. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  113. {
  114. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  115. }
  116. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  117. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  118. {
  119. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  120. }
  121. else
  122. {
  123. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  124. }
  125. }
  126. public DataTable GetGridJsonAdmin(string queryJson, ref Pagination jqgridparam)
  127. {
  128. string ParentId = "";
  129. DataTable dt = new DataTable();
  130. var queryParam = queryJson.ToJObject();
  131. List<DbParameter> parameter = new List<DbParameter>();
  132. string sql = @"SELECT distinct a.ID, a.ASNCode,a.venCode,b.VenName ,CONVERT(NVARCHAR(50),a.Mtime,23) as CREATETIME,w.WorkPointName,w.WorkPointCode,ISNULL(d.Quantity,0) AS Quantity,
  133. a.MUserName,
  134. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUS,
  135. CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END AS STATUSHidden
  136. ,a.EATTRIBUTE10,ISNULL(d.CountNum,0) as CountNum
  137. ,CASE WHEN p.LotNo IS NULL THEN '否' ELSE '是' END ISRK
  138. FROM dbo.ICSASN a
  139. LEFT JOIN (SELECT ISNULL(SUM(Quantity),0) AS Quantity,COUNT(*) AS CountNum,ASNCode,WorkPoint
  140. FROM ICSASNDetail
  141. GROUP BY ASNCode,WorkPoint) d on a.ASNCode=d.ASNCode and a.WorkPoint=d.WorkPoint
  142. LEFT JOIN ICSASNDetail e on a.ASNCode=e.ASNCode and a.WorkPoint=e.WorkPoint
  143. LEFT JOIN dbo.ICSVendor b ON a.venCOde=b.venCOde and a.WOrkPoint=b.WorkPoint
  144. LEFT JOIN (SELECT ASNCode,WorkPoint,DNCode
  145. FROM ICSDeliveryNotice)
  146. c ON a.ASNCode = c.ASNCode AND a.WorkPoint=c.WorkPoint
  147. LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
  148. LEFT join ICSInventoryLotDetail m on e.LotNo=m.LotNo and e.WorkPoint=m.WorkPoint
  149. LEFT JOIN dbo.ICSPurchaseOrder n ON m.TransCode=n.POCode AND m.TransSequence=n.Sequence AND a.WorkPoint=n.WorkPoint
  150. LEFT JOIN dbo.ICSInventory o ON n.InvCode=o.InvCode AND n.WorkPoint=o.WorkPoint
  151. LEFT JOIN dbo.ICSWareHouseLotInfoLog p ON e.LotNo=p.LotNo AND e.WorkPoint=p.WorkPoint
  152. WHERE 1=1 and a.status in ( '1','2')";
  153. if (!string.IsNullOrWhiteSpace(queryJson))
  154. {
  155. if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
  156. {
  157. sql += " and a.ASNCode like '%" + queryParam["STNO"].ToString() + "%' ";
  158. }
  159. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  160. sql += " and a.venCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  161. }
  162. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  163. {
  164. sql += " and b.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  165. }
  166. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  167. {
  168. sql += " and o.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  169. }
  170. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  171. {
  172. sql += " and o.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  173. }
  174. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  175. {
  176. sql += " and a.Mtime >= '" + queryParam["TimeFrom"].ToString() + "' ";
  177. }
  178. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  179. {
  180. sql += " and a.Mtime <= '" + queryParam["TimeTo"].ToString() + "' ";
  181. }
  182. if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
  183. {
  184. string ReleaseState = queryParam["ReleaseState"].ToString();
  185. if (ReleaseState == "1")
  186. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '1'";
  187. else if (ReleaseState == "2")
  188. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END = '2'";
  189. else if (ReleaseState == "3")
  190. sql += " and CASE WHEN c.DNCode IS NULL THEN a.Status ELSE '3' END= '3'";
  191. }
  192. //多站点
  193. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  194. {
  195. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  196. }
  197. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  198. {
  199. sql += " and a.venCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  200. }
  201. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  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. /// <summary>
  212. /// 子表查询
  213. /// </summary>
  214. /// <param name="queryJson"></param>
  215. /// <param name="jqgridparam"></param>
  216. /// <returns></returns>
  217. public DataTable GetSubGridJson(string STNO, ref Pagination jqgridparam, string WorkPoint)
  218. {
  219. DataTable dt = new DataTable();
  220. List<DbParameter> parameter = new List<DbParameter>();
  221. string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "e").TrimEnd(',');
  222. // string sql = @"SELECT a.ID, a.LotNo,d.InvCode,d.InvName,x.ContainerCode as XH,
  223. // y.ContainerCode as ZB,b.Quantity,
  224. // a.ASNCode,f.BatchCode,f.ProjectCode,m.TransCode,m.TransSequence,d.InvDesc
  225. // ,d.ClassName,d.InvStd,w.WorkPointName,w.WorkPointCode,CASE WHEN p.LotNo IS NULL THEN '否' ELSE '是' END ISRK
  226. // ," + EATTRIBUTE + "";
  227. // sql += @"
  228. // FROM dbo.ICSASNDetail a
  229. // LEFT JOIN dbo.ICSInventoryLot b ON a.LotNo =b.LotNo AND a.WorkPoint=b.WorkPoint
  230. // left join ICSExtension f on b.ExtensionID=f.ID and b.WorkPoint=f.WorkPoint
  231. // left join ICSInventoryLotDetail m on b.LotNo=m.LotNo and b.WorkPoint=m.WorkPoint
  232. // LEFT JOIN dbo.ICSContainerLot c ON b.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  233. // LEFT JOIN dbo.ICSInventory d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  234. // LEFT JOIN dbo.ICSPurchaseOrder e ON m.TransCode=e.POCode AND m.TransSequence=e.Sequence AND a.WorkPoint=e.WorkPoint
  235. // LEFT JOIN Sys_WorkPoint w on e.WorkPoint=w.WorkPointCode
  236. // LEFT JOIN ICSContainer X ON c.ContainerID=X.ID AND c.WorkPoint=x.WorkPoint and X.ContainerType='ContainerType01'
  237. //left join ICSContainer y on X.ContainerID=y.ID and X.WorkPoint=y.WorkPoint and y.ContainerType='ContainerType04'
  238. // LEFT JOIN dbo.ICSWareHouseLotInfoLog p ON a.LotNo=p.LotNo AND a.WorkPoint=p.WorkPoint AND p.BusinessCode='1'and isnull(p.EATTRIBUTE1,'')<>'1'
  239. // WHERE (b.TYPE='200' OR ISNULL(b.EATTRIBUTE6,'') ='入库前分批') AND a.ASNCode='" + STNO + "' and a.WorkPoint='" + WorkPoint + "' ";
  240. string sql = @" select a.SourceCode,a.SourceSequence,a.InvCode,b.InvName,b.InvStd,a.Quantity,a.Amount,a.DNQuantity,a.DNAmount,a.RTQuantity,a.RTAmount,a.MUSER,a.MUSERName,a.MTIME ,
  241. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1 ,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,
  242. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10
  243. from dbo.ICSASNDetailDocuments a
  244. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  245. inner join dbo.ICSPurchaseOrder c on a.SourceCode=c.POCode and a.SourceSequence=c.Sequence
  246. left join dbo.ICSExtension f on c.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  247. where a.ASNCode='" + STNO + "' and a.WorkPoint='" + WorkPoint + "'";
  248. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  249. }
  250. /// <summary>
  251. /// 选择条码信息
  252. /// </summary>
  253. /// <param name="queryJson"></param>
  254. /// <param name="jqgridparam"></param>
  255. /// <returns></returns>
  256. public DataTable GetSubGridJson_Add(string queryJson, ref Pagination jqgridparam)
  257. {
  258. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  259. DataTable dt = new DataTable();
  260. var queryParam = queryJson.ToJObject();
  261. List<DbParameter> parameter = new List<DbParameter>();
  262. // string sql = @"SELECT a.ID,a.ID as ZJID, a.LOTNO,d.InvCode,d.InvName,g.ContainerCode,b.Quantity,
  263. // a.ASNCode,m.BatchCode,f.POCode,f.Sequence,d.InvDesc,d.ClassName,d.InvStd
  264. // FROM dbo.ICSASNDetail a
  265. // LEFT JOIN dbo.ICSInventoryLot b ON a.LotNo =b.LotNo AND a.WorkPoint=b.WorkPoint
  266. //left join ICSExtension m on b.ExtensionID=m.ID and b.WorkPoint=m.WorkPoint
  267. // LEFT JOIN dbo.ICSContainerLot c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  268. // left join dbo.ICSContainer g on c.ContainerID=g.ID and a.WorkPoint=g.WorkPoint
  269. // LEFT JOIN dbo.ICSInventory d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  270. //left join ICSInventoryLotDetail e on b.LotNo=e.LotNo and b.WorkPoint=e.WorkPoint
  271. // LEFT JOIN dbo.ICSPurchaseOrder f ON e.TransCode=f.POCode AND e.TransSequence=f.Sequence and a.WorkPoint=f.WorkPoint
  272. // WHERE 1=1
  273. // AND a.ASNCode='" + queryParam["STNO"].ToString() + "' and a.WorkPoint='" + queryParam["WorkPoint"].ToString() + "' ";
  274. string sql = @" select a.ID,a.POCode as Code ,a.Sequence,a.InvCode,b.InvName,b.InvStd,c.Quantity,c.Amount ,
  275. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1 ,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,
  276. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10
  277. from dbo.ICSPurchaseOrder a
  278. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  279. left join dbo.ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  280. left join ICSASNDetailDocuments c on a.POCode=c.SourceCode and a.Sequence=c.SourceSequence and a.WorkPoint=c.WorkPoint
  281. where c.ASNCode='" + queryParam["STNO"].ToString() + "'";
  282. sql += " and a.WorkPoint='" + queryParam["WorkPoint"].ToString() + "'";
  283. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  284. }
  285. /// <summary>
  286. /// 子表查询
  287. /// </summary>
  288. /// <param name="queryJson"></param>
  289. /// <param name="jqgridparam"></param>
  290. /// <returns></returns>
  291. public DataTable GetSubGridJson(string CartonNo, string queryJson, ref Pagination jqgridparam)
  292. {
  293. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  294. DataTable dt = new DataTable();
  295. //var queryParam = queryJson.ToJObject();
  296. List<DbParameter> parameter = new List<DbParameter>();
  297. string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE
  298. FROM dbo.ICSITEMLot2Carton a
  299. LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  300. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  301. LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  302. WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
  303. if (!string.IsNullOrEmpty(queryJson))
  304. {
  305. sql += @"UNION ALL
  306. SELECT a.ID,a.ItemCODE,b.INVNAME,a.VenderLotNO,a.LOTQTY,a.TYPE FROM
  307. dbo.ICSITEMLot a
  308. LEFT JOIN dbo.ICSINVENTORY b ON a.ItemCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
  309. WHERE a.ID IN (" + queryJson.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
  310. }
  311. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  312. }
  313. public DataTable GetSubGridJsonByCreate(string POCode, string PORow)
  314. {
  315. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  316. DataTable dt = new DataTable();
  317. //var queryParam = queryJson.ToJObject();
  318. List<DbParameter> parameter = new List<DbParameter>();
  319. string sql = @"SELECT a.ID, a.POCode,a.PORow,a.PODate,a.ORDERNO,a.VenCode,a.VenName,a.InvCode,
  320. b.INVNAME,b.INVSTD,b.INVDESC,b.INVUOM,a.Quantity,ISNULL(c.CreatedQty,0) AS CreatedQty,isnull(c.InQty,0) as InQty,a.WorkPoint
  321. FROM dbo.ICSPO_PoMain a
  322. LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
  323. LEFT JOIN (SELECT SUM(x.LOTQTY) CreatedQty,TransNO,TransLine,x.WorkPoint,
  324. SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.LOTQTY ELSE 0 END) AS InQty
  325. FROM dbo.ICSITEMLot x
  326. LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  327. GROUP BY TransNO,TransLine,x.WorkPoint) c ON a.POCode=c.TransNO AND a.PORow=c.TransLine AND a.WorkPoint=c.WorkPoint
  328. WHERE 1=1
  329. and a.POCode='" + POCode + "' and a.PORow='" + PORow + "' and a.WorkPoint='" + WorkPoint + "'";
  330. return Repository().FindTableBySql(sql.ToString());
  331. }
  332. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  333. {
  334. DataTable dt = new DataTable();
  335. //var queryParam = queryJson.ToJObject();
  336. List<DbParameter> parameter = new List<DbParameter>();
  337. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  338. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  339. return Repository().FindTableBySql(sql.ToString());
  340. }
  341. /// <summary>
  342. /// 生成条码
  343. /// </summary>
  344. /// <param name="POCode"></param>
  345. /// <param name="PORow"></param>
  346. /// <param name="keyValue"></param>
  347. /// <returns></returns>
  348. public int CreateItemLotNo(string POCode, string PORow, string keyValue)
  349. {
  350. var queryParam = keyValue.ToJObject();
  351. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  352. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  353. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  354. decimal LOTQTY = minPackQty;
  355. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  356. string VenCode = GetVendorCode(POCode, PORow, WorkPoint);
  357. string Pre = VenCode + DateTime.Now.ToString("yyMMdd");
  358. string sql = string.Empty;
  359. string VendorLot = queryParam["VendorLot"].ToString();
  360. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  361. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  362. for (int i = 0; i < createPageCount; i++)
  363. {
  364. if (i + 1 == createPageCount)
  365. {
  366. if (minPackQty * createPageCount > thisCreateQty)
  367. {
  368. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  369. }
  370. }
  371. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
  372. sql += string.Format(@"INSERT INTO dbo.ICSITEMLot
  373. ( ID ,LotNO ,ItemCODE ,TransNO ,TransLine ,VENDORITEMCODE ,VENDORCODE ,
  374. VenderLotNO ,PRODUCTDATE ,LOTQTY ,ACTIVE ,Exdate ,WorkPoint ,
  375. MUSER ,MUSERName ,MTIME ,TYPE,ORDERNO)
  376. SELECT NEWID(),'{0}',InvCode,POCode,PORow,'',NULL,
  377. '{1}',GETDATE(),'{2}','Y','2999-12-31 00:00:00.000','{3}',
  378. '{4}','{5}',GETDATE(),'',ORDERNO
  379. FROM dbo.ICSPO_PoMain WHERE POCode='{6}' AND PORow='{7}' AND WorkPoint='{3}'",
  380. LotNo, VendorLot, LOTQTY, WorkPoint, MUSER, MUSERNAME, POCode, PORow);
  381. sql += "\r\n";
  382. }
  383. int count = SqlHelper.ExecuteNonQuery(sql);
  384. return count;
  385. }
  386. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  387. {
  388. string sql = "EXEC Addins_GetSerialCode {0},'{1}','{2}','{3}',{4}";
  389. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  390. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  391. }
  392. public string GetVendorCode(string POCode, string PORow, string WorkPoint)
  393. {
  394. string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPO_PoMain
  395. WHERE POCode='{0}' AND PORow='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
  396. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  397. string VenCode = string.Empty;
  398. if (dt != null && dt.Rows.Count > 0)
  399. {
  400. VenCode = dt.Rows[0][0].ToString();
  401. }
  402. return VenCode;
  403. }
  404. /// <summary>
  405. /// 删除送货单内的条码或者箱号
  406. /// </summary>
  407. /// <param name="keyValue"></param>
  408. /// <returns></returns>
  409. public string DeleteInfo(string keyValue, string WorkPoint)
  410. {
  411. string msg = "";
  412. string sql = string.Format(@" DELETE FROM dbo.ICSASNDetail
  413. WHERE ID IN (
  414. SELECT ID FROM dbo.ICSASNDetail WHERE LotNo IN (
  415. SELECT LotNo FROM dbo.ICSContainerLot WHERE ContainerID IN (
  416. SELECT a.ContainerID
  417. FROM dbo.ICSContainerLot a
  418. LEFT JOIN dbo.ICSASNDetail b ON a.LotNO=b.LotNo AND a.WorkPoint=b.WorkPoint
  419. WHERE b.ID IN ({0}) AND a.WorkPoint='{1}')
  420. ))", keyValue.TrimEnd(','), WorkPoint);
  421. SqlHelper.ExecuteNonQuery(sql);
  422. sql = string.Format(@" DELETE
  423. FROM dbo.ICSASNDetail
  424. WHERE ID IN ({0}) and WorkPoint ='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  425. try
  426. {
  427. SqlHelper.ExecuteNonQuery(sql);
  428. }
  429. catch (Exception ex)
  430. {
  431. msg = ex.Message;
  432. }
  433. return msg;
  434. }
  435. /// <summary>
  436. /// 更新送货单
  437. /// </summary>
  438. /// <param name="keyValue"></param>
  439. /// <returns></returns>
  440. public string UpdateSTNO(string keyValue, string WorkPoint, string EATTRIBUTE1)
  441. {
  442. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  443. string msg = "";
  444. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  445. string[] keyValues = keyValue.Split(',');
  446. string sql = string.Empty;
  447. sql = "UPDATE ICSASN SET MTIME = getdate(),EATTRIBUTE1='{2}' WHERE ASNCode = {0} AND WorkPoint in ('{1}')";
  448. sql = string.Format(sql, keyValues[0].TrimStart(',').TrimEnd(','), WorkPoint, EATTRIBUTE1);
  449. SqlHelper.ExecuteNonQuery(sql);
  450. return msg;
  451. }
  452. /// <summary>
  453. /// 删除送货单
  454. /// </summary>
  455. /// <param name="keyValue"></param>
  456. /// <returns></returns>
  457. public string DeleteSTNO(string keyValue, string WorkPoint, string EATTRIBUTE1)
  458. {
  459. string msg = "";
  460. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  461. string sql = string.Empty;
  462. sql = "SELECT ASNCode FROM dbo.ICSDeliveryNotice WHERE ASNCode IN (" + keyValue.TrimEnd(',') + ")";
  463. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  464. foreach (DataRow dr in dt.Rows)
  465. {
  466. string STNO = dr["ASNCode"].ToString();
  467. if (!string.IsNullOrEmpty(STNO))
  468. {
  469. msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
  470. }
  471. }
  472. if (string.IsNullOrEmpty(msg))
  473. {
  474. sql = string.Format(@" DELETE FROM dbo.ICSASNDetail WHERE ASNCode IN ({0}) and WorkPoint in ('{1}')
  475. DELETE FROM dbo.ICSASN WHERE ASNCode IN ({0}) and WorkPoint in ('{1}')
  476. UPDATE ICSASN SET EATTRIBUTE1='{2}'WHERE ASNCode IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint, EATTRIBUTE1);
  477. //string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  478. // WHERE LOTNO IN (
  479. // SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  480. //DataTable dt = SqlHelper.GetDataTableBySql(sql);
  481. //if (dt == null || dt.Rows.Count <= 0)
  482. //{
  483. // sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
  484. // DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  485. // DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  486. //}
  487. //else
  488. //{
  489. // msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  490. //}
  491. SqlHelper.ExecuteNonQuery(sql);
  492. }
  493. return msg;
  494. }
  495. public int UpDateBySTNO(string keyValue, string Status, string WorkPoint)
  496. {
  497. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  498. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  499. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  500. string sql = string.Empty;
  501. sql = @"UPDATE ICSASN SET Status = '{1}' WHERE ASNCode IN ({0}) AND WorkPoint in({2})";
  502. sql = string.Format(sql, keyValue.TrimEnd(','), Status, WorkPoint.TrimEnd(','));
  503. return SqlHelper.ExecuteNonQuery(sql);
  504. }
  505. /// <summary>
  506. /// 单号
  507. /// </summary>
  508. /// <param name="keyValue"></param>
  509. /// <param name="Status"></param>
  510. /// <param name="WorkPoint"></param>
  511. /// <param name="EATTRIBUTE1"></param>
  512. /// <returns></returns>
  513. public string UpDateBySTNODH(string keyValue)
  514. {
  515. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  516. string msg = "";
  517. string sql = string.Empty;
  518. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  519. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  520. foreach (var item in res)
  521. {
  522. JObject jo = (JObject)item;
  523. sql += $@"
  524. UPDATE ICSASN SET EATTRIBUTE1 = '{jo["EATTRIBUTE1"]}' WHERE ASNCode = '{jo["objArr"]}' AND WorkPoint = '{jo["WorkPoint"]}' ";
  525. }
  526. try
  527. {
  528. SqlHelper.CmdExecuteNonQueryLi(sql);
  529. }
  530. catch (Exception ex)
  531. {
  532. msg = ex.Message;
  533. //throw new Exception(ex.Message);
  534. }
  535. return msg;
  536. }
  537. public int UpDateBySTNOAdmin(string keyValue, string Status, string WorkPoint)
  538. {
  539. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  540. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  541. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  542. string sql = string.Empty;
  543. sql = @"UPDATE ICSASN SET Status = '{1}' WHERE ASNCode IN ({0}) AND WorkPoint in({2})";
  544. sql = string.Format(sql, keyValue.TrimEnd(','), Status, WorkPoint.TrimEnd(','));
  545. return SqlHelper.ExecuteNonQuery(sql);
  546. }
  547. public string ChangeStatusBySTNO(string keyValue)
  548. {
  549. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  550. string msg = "";
  551. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  552. string sql = string.Empty;
  553. sql = "SELECT STNO FROM dbo.ICSPOArrive WHERE STNO IN (" + keyValue.TrimEnd(',') + ")";
  554. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  555. foreach (DataRow dr in dt.Rows)
  556. {
  557. string STNO = dr["STNO"].ToString();
  558. if (!string.IsNullOrEmpty(STNO))
  559. {
  560. msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
  561. }
  562. }
  563. if (string.IsNullOrEmpty(msg))
  564. {
  565. sql = string.Format(@"DELETE FROM dbo.ICSASNDETAIL WHERE STNO IN ({0}) and WorkPoint ='{1}'
  566. DELETE FROM dbo.ICSASN WHERE STNO IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
  567. //string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  568. // WHERE LOTNO IN (
  569. // SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  570. //DataTable dt = SqlHelper.GetDataTableBySql(sql);
  571. //if (dt == null || dt.Rows.Count <= 0)
  572. //{
  573. // sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
  574. // DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  575. // DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  576. //}
  577. //else
  578. //{
  579. // msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  580. //}
  581. SqlHelper.ExecuteNonQuery(sql);
  582. }
  583. return msg;
  584. }
  585. /// <summary>
  586. /// 删除送货单
  587. /// </summary>
  588. /// <param name="keyValue"></param>
  589. /// <returns></returns>
  590. public string DeleteCartonNo(string keyValue)
  591. {
  592. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  593. string msg = "";
  594. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  595. string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
  596. WHERE LOTNO IN (
  597. SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
  598. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  599. if (dt == null || dt.Rows.Count <= 0)
  600. {
  601. sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
  602. DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
  603. DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  604. }
  605. else
  606. {
  607. msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
  608. }
  609. return msg;
  610. }
  611. /// <summary>
  612. /// 选择条码
  613. /// </summary>
  614. /// <returns></returns>
  615. public DataTable GetInfoBySelectItemCode(string queryJson, ref Pagination jqgridparam)
  616. {
  617. var queryParam = queryJson.ToJObject();
  618. List<DbParameter> parameter = new List<DbParameter>();
  619. // string sql = @"SELECT a.ID, a.LotNO,d.InvCode,d.InvName,a.Quantity,a.TYPE,
  620. //g.ProjectCode,e.POCode,e.Sequence,d.InvDesc,d.ClassName,d.INVSTD,g.BatchCode,a.Amount,a.WorkPoint
  621. // FROM dbo.ICSInventoryLot a
  622. // left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint
  623. // LEFT JOIN dbo.ICSContainerLot b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  624. // LEFT JOIN dbo.ICSASNDetail c ON a.LotNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  625. // LEFT JOIN dbo.ICSInventory d ON a.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  626. // left join ICSInventoryLotDetail f on a.LotNo=f.LotNo and a.WorkPoint=f.WorkPoint
  627. // LEFT JOIN dbo.ICSPurchaseOrder e ON f.TransCode=e.POCode AND f.TransSequence=e.Sequence
  628. // WHERE c.LotNo is null and a.LotNO NOT IN (
  629. // SELECT LotNo FROM dbo.ICSContainerLot X WHERE x.WorkPoint=a.WorkPoint) and ISNULL(a.EATTRIBUTE1,'') ='' and a.Type='200' AND e.Status<>'3'";
  630. string sql = @" select a.ID ,a.POCode ,a.Sequence,a.InvCode,b.InvName,b.InvStd, isnull(a.Quantity,0)-isnull(c.Quantity,0)+isnull(RTQuantity,0) as Quantity,a.Amount ,
  631. f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1 ,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,
  632. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10
  633. from dbo.ICSPurchaseOrder a
  634. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  635. left join dbo.ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  636. left join (select a.SourceCode,a.SourceSequence,a.WorkPoint,sum(a.Quantity) as Quantity,sum(a.RTQuantity) as RTQuantity from ICSASNDetailDocuments a group by a.SourceCode,a.SourceSequence,a.WorkPoint) c on a.POCode=c.SourceCode and a.Sequence=c.SourceSequence and a.WorkPoint=c.WorkPoint
  637. where isnull(a.Quantity,0)-isnull(c.Quantity,0)+isnull(RTQuantity,0)<>0 and a.Status ='2' and a.ReleaseState='1' ";
  638. //AND a.TYPE='采购'";
  639. if (!string.IsNullOrEmpty(queryJson))
  640. {
  641. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  642. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  643. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  644. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%'";
  645. if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
  646. sql += " and f.ProjectCode like '%" + queryParam["OrderNo"].ToString() + "%'";
  647. if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  648. sql += " and a.POCode like '%" + queryParam["TransNo"].ToString() + "%'";
  649. if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  650. sql += " and a.Sequence like '%" + queryParam["TransLine"].ToString() + "%'";
  651. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  652. sql += " and a.VenCode='" + queryParam["VenCode"].ToString() + "'";
  653. }
  654. sql += " and a.WorkPoint='" + queryParam["WorkPoint"].ToString() + "'";
  655. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  656. }
  657. /// <summary>
  658. /// 获取供应商列表
  659. /// </summary>
  660. /// <returns></returns>
  661. public DataTable GetVendor()
  662. {
  663. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  664. string sql = @"select '' as F_VenCode,'' as cVenName
  665. union all
  666. SELECT DISTINCT a.F_VenCode,isnull(b.VenName,'') as cVenName FROM dbo.Sys_SRM_User a
  667. LEFT JOIN dbo.ICSVendor b ON a.F_VenCode=b.VenCode and a.F_Location=b.WorkPoint
  668. WHERE a.F_VenCode IS NOT NULL AND a.F_VenCode <>''";
  669. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  670. if (role != "admin")
  671. {
  672. sql += " and b.WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  673. }
  674. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  675. return dt;
  676. }
  677. /// <summary>
  678. /// 获取供应商列表
  679. /// </summary>
  680. /// <returns></returns>
  681. public DataTable GetASNCode(string VenCode)
  682. {
  683. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  684. string sql = @"
  685. select '' as F_VenCode,'' as cVenName
  686. union all
  687. SELECT asncode AS F_VenCod,asncode AS cVenName FROM icsasn a WHERE status='2'";
  688. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  689. if (role != "admin")
  690. {
  691. sql += " and a.WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  692. }
  693. if (!string.IsNullOrWhiteSpace(VenCode))
  694. {
  695. sql += " AND vencode='" + VenCode + "'";
  696. }
  697. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  698. return dt;
  699. }
  700. /// <summary>
  701. /// 获取组织号信息
  702. /// </summary>
  703. /// <returns></returns>
  704. public DataTable GetWorkPoint()
  705. {
  706. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  707. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  708. string sql = @" select '' as WorkPointCode,'' as WorkPointName
  709. union all
  710. SELECT distinct (b.WorkPointCode),b.WorkPointName FROM Sys_SRM_User a
  711. LEFT JOIN Sys_WorkPoint b ON a.F_Location=b.WorkPointCode where b.WorkPointCode is not null";
  712. //if (role != "admin")
  713. //{
  714. // sql += " and a.F_Account='" + role + "'";
  715. //}
  716. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  717. return dt;
  718. }
  719. public string GetSTNO(string WorkPoint)
  720. {
  721. string STNO = string.Empty;
  722. string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  723. WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  724. if (!string.IsNullOrEmpty(VenCode))
  725. {
  726. string Date = DateTime.Now.ToString("yy");
  727. string Pre = "DN" + VenCode + Date;
  728. STNO = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  729. }
  730. if (!string.IsNullOrEmpty(STNO))
  731. {
  732. string sql = string.Empty;
  733. string configSql = string.Empty;
  734. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  735. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  736. string Status = "";
  737. #region [获取送货单配置信息,判断状态]
  738. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit", WorkPoint);
  739. if (!string.IsNullOrWhiteSpace(F_ItemName))
  740. {
  741. Status = "2";
  742. }
  743. else
  744. {
  745. Status = "0";
  746. }
  747. #endregion
  748. sql = @"INSERT INTO dbo.ICSASN( ID ,MTIME,MUSER,MUSERNAME ,ASNCode ,VenCode ,WorkPoint,Status)
  749. VALUES (NEWID(),GETDATE(),'" + VenCode + "','" + MUSERNAME + "','" + STNO + "','" + VenCode + "'," + WorkPoint + ",'" + Status + "')";
  750. try
  751. {
  752. SqlHelper.ExecuteNonQuery(sql);
  753. }
  754. catch (Exception ex)
  755. {
  756. throw new Exception(ex.Message);
  757. }
  758. }
  759. return STNO;
  760. }
  761. public string GetSTNOByPerson(string VenCode, string ExpArrivalDate, string WorkPoint)
  762. {
  763. string STNO = string.Empty;
  764. string Date = DateTime.Now.ToString("yy");
  765. string Pre = "DN" + VenCode + Date;
  766. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  767. STNO = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  768. if (!string.IsNullOrEmpty(STNO))
  769. {
  770. string sql = string.Empty;
  771. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  772. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  773. string Status = "";
  774. #region [获取送货单配置信息,判断状态]
  775. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit", WorkPoint);
  776. if (!string.IsNullOrWhiteSpace(F_ItemName))
  777. {
  778. Status = "2";
  779. }
  780. else
  781. {
  782. Status = "0";
  783. }
  784. #endregion
  785. sql = @"INSERT INTO dbo.ICSASN
  786. ( ID ,ASNCode,VenCode,Status ,MUSER ,MUSERName ,MTIME,WorkPoint)
  787. VALUES (NEWID(),'" + STNO + "','" + VenCode + "','" + Status + "','" + MUSER + "','" + MUSERNAME + "',getdate(),'" + WorkPoint + "')";
  788. try
  789. {
  790. SqlHelper.ExecuteNonQuery(sql);
  791. }
  792. catch (Exception ex)
  793. {
  794. throw new Exception(ex.Message);
  795. }
  796. }
  797. return STNO;
  798. }
  799. //public string CheckSTNO_ItemCode(string JsonData, string STNO, string WorkPoint, string ICSASN)
  800. //{
  801. // string msg = "";
  802. // string APIURL = ConfigurationManager.ConnectionStrings["APIURLLOT"].ConnectionString;
  803. // string result = SqlHelper.HttpPost(APIURL, ICSASN);
  804. // JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  805. // string MessAge = Obj["message"].ToString();
  806. // string Success = Obj["success"].ToString();
  807. // if (Success.ToUpper() == "FALSE")
  808. // {
  809. // msg = MessAge;
  810. // }
  811. // return msg;
  812. //}
  813. public string CheckSTNO_ItemCode(string JsonData, string STNO, string WorkPoint)
  814. {
  815. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  816. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  817. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  818. string msg = "";
  819. string sql = string.Empty;
  820. sql = @"INSERT INTO dbo.ICSASNDetail
  821. ( ID ,ASNCode ,Sequence ,MUSER ,
  822. LotNo , Quantity ,Amount ,DNQuantity ,DNAmount ,MUSERName,
  823. MTIME,WorkPoint)
  824. SELECT NEWID(),'" + STNO + "',ROW_NUMBER()over(partition by LotNO order by mtime desc),'" + MUSER + @"',
  825. a.LotNO,a.Quantity,a.Quantity*Amount as Amount,0,0,'" + MUSERNAME + @"',
  826. getdate()," + WorkPoint.TrimEnd(',') + @"
  827. FROM dbo.ICSInventoryLot a
  828. WHERE a.ID IN (" + JsonData.TrimEnd(',') + ")";
  829. try
  830. {
  831. SqlHelper.ExecuteNonQuery(sql);
  832. }
  833. catch (Exception ex)
  834. {
  835. throw new Exception(ex.Message);
  836. }
  837. return msg;
  838. }
  839. public string CheckSTNO_CartonNo(string JsonData, string STNO, string WorkPoint)
  840. {
  841. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  842. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  843. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  844. string msg = "";
  845. string sql = string.Empty;
  846. sql = @"INSERT INTO dbo.ICSASNDetail
  847. ( ID ,ASNCode ,Sequence ,MUSER ,
  848. LotNo , Quantity ,Amount ,DNQuantity ,DNAmount ,MUSERName,
  849. MTIME,WorkPoint)
  850. SELECT NEWID(),'" + STNO + "',ROW_NUMBER()over( order by b.LotNO desc),'" + MUSER + @"',
  851. a.LotNO,b.Quantity,b.Quantity*b.Amount as Amount,0,0,'" + MUSERNAME + @"'
  852. ,getdate(),'" + WorkPoint.TrimEnd(',') + @"'
  853. FROM ICSContainer d
  854. LEFT JOIN dbo.ICSContainerLot a ON a.ContainerID=d.ID
  855. left JOIN dbo.ICSInventoryLot b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  856. LEFT JOIN dbo.ICSInventory c ON c.InvCode=b.InvCode AND a.WorkPoint=c.WorkPoint
  857. WHERE d.ID IN(" + JsonData.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
  858. try
  859. {
  860. SqlHelper.ExecuteNonQuery(sql);
  861. }
  862. catch (Exception ex)
  863. {
  864. throw new Exception(ex.Message);
  865. }
  866. return msg;
  867. }
  868. /// <summary>
  869. /// 获取箱号主表信息
  870. /// </summary>
  871. /// <param name="queryJson"></param>
  872. /// <param name="jqgridparam"></param>
  873. /// <returns></returns>
  874. public DataTable GetCartonGridJson(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  875. {
  876. string sql = string.Empty;
  877. DataTable dt = new DataTable();
  878. var queryParam = queryJson.ToJObject();
  879. List<DbParameter> parameter = new List<DbParameter>();
  880. if (queryParam["Type"].ToString() == "ContainerType01")
  881. {
  882. sql = @"SELECT DISTINCT a.ContainerCode,a.ID+d.InvCode as ID,
  883. a.MUSERName, a.MTIME,Dil.F_ItemName,d.InvCode,d.InvName,d.InvStd
  884. FROM ICSContainer a
  885. inner JOIN dbo.ICSContainerLot c ON a.ID=c.ContainerID and a.WorkPoint=c.WorkPoint
  886. LEFT join dbo.ICSInventoryLot lot on c.LotNo=lot.LotNo and a.WorkPoint=lot.WorkPoint and lot.Type='200'
  887. left join Sys_SRM_ItemsDetail Dil on F_ItemId='6230217e-4413-4427-9bec-c67ba789eca9' and F_EnabledMark='1' and a.ContainerType=Dil.F_ItemCode
  888. LEFT JOIN ICSInventory d ON d.InvCode=lot.InvCode AND d.WorkPoint=lot.WorkPoint
  889. WHERE
  890. a.ID not IN
  891. (SELECT b.ContainerID FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSContainerLot b ON a.LotNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
  892. and a.EATTRIBUTE1='1' and a.ContainerID=''
  893. ";
  894. }
  895. else
  896. {
  897. sql = @"SELECT DISTINCT a.ContainerCode,a.ID,
  898. a.MUSERName, a.MTIME,Dil.F_ItemName
  899. FROM ICSContainer a
  900. left join ICSContainer xz on a.ID=xz.ContainerID and a.WorkPoint=xz.WorkPoint
  901. inner JOIN dbo.ICSContainerLot c ON xz.ID=c.ContainerID and xz.WorkPoint=c.WorkPoint
  902. LEFT join dbo.ICSInventoryLot lot on c.LotNo=lot.LotNo and a.WorkPoint=lot.WorkPoint and lot.Type='200'
  903. left join Sys_SRM_ItemsDetail Dil on F_ItemId='6230217e-4413-4427-9bec-c67ba789eca9' and F_EnabledMark='1' and a.ContainerType=Dil.F_ItemCode
  904. WHERE
  905. xz.ID not IN
  906. (SELECT b.ContainerID FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSContainerLot b ON a.LotNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
  907. and
  908. a.EATTRIBUTE1='1'
  909. ";
  910. }
  911. // string sql = @" SELECT Serial,a.CartonNO,CartonStatus,PrintTimes,
  912. //lastPrintTime,a.MUSERName,a.MTIME,EATTRIBUTE8
  913. //FROM dbo.ICSCarton a
  914. //LEFT JOIN
  915. //(SELECT COUNT(x.LotNO) AS LotNoCount,CartonNO,x.WorkPoint FROM dbo.ICSITEMLot2Carton x
  916. //LEFT JOIN dbo.ICSITEMLot y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  917. //GROUP BY CartonNO,x.WorkPoint having COUNT(x.LotNO)>0) b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  918. //left join (SELECT b.CartonNO FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSITEMLot2Carton b ON a.LOTNO =b.LotNO AND a.WorkPoint=b.WorkPoint) c
  919. //on a.CartonNo=c.CartonNO WHERE a.EATTRIBUTE3='SRM' AND c.CartonNo is null
  920. //";
  921. if (!string.IsNullOrWhiteSpace(queryJson))
  922. {
  923. //if (queryParam["Type"].ToString()== "ContainerType01")
  924. //{
  925. // sql += " and a.ContainerID ='' ";
  926. //}
  927. if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  928. {
  929. sql += " and a.ContainerCode like '%" + queryParam["CartonNo"].ToString() + "%' ";
  930. }
  931. //if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
  932. //{
  933. // sql += " and b.OrderNO like '%" + queryParam["OrderNo"].ToString() + "%' ";
  934. //}
  935. //if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
  936. //{
  937. // sql += " and b.TransNO like '%" + queryParam["TransNO"].ToString() + "%' ";
  938. //}
  939. //if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
  940. //{
  941. // sql += " and b.TransLine like '%" + queryParam["TransLine"].ToString() + "%' ";
  942. //}
  943. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  944. {
  945. sql += " and a.EATTRIBUTE8 = '" + queryParam["VenCode"].ToString() + "' ";
  946. }
  947. if (!string.IsNullOrWhiteSpace(queryParam["Type"].ToString()))
  948. {
  949. sql += " and a.ContainerType = '" + queryParam["Type"].ToString() + "' ";
  950. }
  951. }
  952. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  953. {
  954. sql += " and a.WorkPoint='" + WorkPoint + "'";
  955. }
  956. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  957. }
  958. /// <summary>
  959. /// 箱号子表查询
  960. /// </summary>
  961. /// <param name="CartonNo"></param>
  962. /// <param name="jqgridparam"></param>
  963. /// <returns></returns>
  964. public DataTable GetCartonSubGridJson(string CartonNo, ref Pagination jqgridparam)
  965. {
  966. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  967. DataTable dt = new DataTable();
  968. //var queryParam = queryJson.ToJObject();
  969. List<DbParameter> parameter = new List<DbParameter>();
  970. string sql = @"SELECT a.LotNO, a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,
  971. c.TYPE,b.EATTRIBUTE8,c.ORDERNO,c.TransNO,c.TransLine,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
  972. FROM dbo.ICSITEMLot2Carton a
  973. LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
  974. LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
  975. LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  976. LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine =e.PORow AND a.WorkPoint=e.WorkPoint
  977. WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
  978. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  979. }
  980. public DataTable GetASNListGridJson(string queryJson, ref Pagination jqgridparam)
  981. {
  982. string ParentId = "";
  983. var queryParam = queryJson.ToJObject();
  984. List<DbParameter> parameter = new List<DbParameter>();
  985. string sqlAccount = string.Empty;
  986. // string sql = @"SELECT a.ASNDETAILID, a.STNO,a.ITEMCODE,d.INVNAME,d.INVTYPE,d.INVDESC,h.ReMark,a.LOTNO,b.VenderLotNO,
  987. //b.LOTQTY,c.CartonNO,e.VENDORCODE,f.cVenName,
  988. //b.TransNO,b.TransLine,g.F_RealName,CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME,d.INVSTD,d.INVPARSETYPE,case
  989. //when a.RECEIVEQTY is null then '否'
  990. //else '是'
  991. //end as IsReceive
  992. //,w.WorkPointName,w.WorkPointCode
  993. //FROM dbo.ICSASNDETAIL a
  994. //LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  995. //LEFT JOIN dbo.ICSITEMLot2Carton c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  996. //LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
  997. //LEFT JOIN dbo.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
  998. //LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.cVenCode AND a.WorkPoint=f.WorkPoint
  999. //LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account and g.F_Location=a.WorkPoint
  1000. //LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint
  1001. //LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  1002. //where 1=1";
  1003. string sql = @"SELECT DISTINCT a.ID, a.ASNCode,b.InvCode,d.INVNAME,d.INVDESC,a.LOTNO,exc.BatchCode,
  1004. b.Quantity,c.ContainerID,e.VenCode,f.VenName,
  1005. det.TransCode,det.TransSequence,g.F_RealName,CONVERT(NVARCHAR(50),e.MTIME,23) as CREATETIME,d.INVSTD,case
  1006. when a.DNQuantity is null then '否'
  1007. else '是'
  1008. end as IsReceive
  1009. ,w.WorkPointName,w.WorkPointCode,CAST(ISNULL(II.repairqty,0) AS DECIMAL(18,3)) AS RepairQty,CAST(ISNULL(cc.NGQTY,0) AS DECIMAL(18,3))as NGQTY,CAST(ISNULL(cc.YLQTY,0) AS DECIMAL(18,3)) as YLQTY
  1010. FROM dbo.ICSASNDETAIL a
  1011. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1012. LEFT JOIN dbo.ICSInventoryLotDetail det ON b.LotNO=det.LotNo AND b.WorkPoint=det.WorkPoint
  1013. LEFT JOIN dbo.ICSContainerLot c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  1014. LEFT JOIN dbo.ICSINVENTORY d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  1015. LEFT JOIN dbo.ICSExtension exc ON b.ExtensionID=exc.ID
  1016. LEFT JOIN dbo.ICSASN e ON a.ASNCode=e.ASNCode AND a.WorkPoint=e.WorkPoint
  1017. LEFT JOIN dbo.ICSVendor f ON e.VenCode=f.VenCode AND a.WorkPoint=f.WorkPoint
  1018. LEFT JOIN dbo.Sys_SRM_User g ON e.VenCode=g.F_Account and g.F_Location=a.WorkPoint
  1019. LEFT JOIN dbo.ICSPurchaseOrder h ON det.TransCode=h.POCode AND det.TransSequence=h.Sequence AND a.WorkPoint=h.WorkPoint
  1020. LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  1021. LEFT JOIN ( SELECT c.TransCode,c.TransSequence,
  1022. (SUM(ISNULL(a.Quantity, 0)) - SUM(ISNULL(a.DNQuantity, 0))) AS repairqty,a.WorkPoint
  1023. FROM ICSASNDETAIL a
  1024. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO = b.LotNO AND a.WorkPoint = b.WorkPoint AND a.Quantity IS NOT NULL
  1025. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1026. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  1027. ) II ON h.POCode = II.TransCode AND h.Sequence = II.TransSequence AND h.WorkPoint = II.WorkPoint
  1028. left join (
  1029. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY,sum(isnull(a.Quantity,0)) YLQTY,a.WorkPoint from ICSINSPECTION a
  1030. left join dbo.ICSInventoryLot b on a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1031. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1032. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2,a.WorkPoint
  1033. having b.EATTRIBUTE2 is null) cc on h.POCode=cc.TransCode and h.Sequence=cc.TransSequence AND h.WorkPoint=cc.WorkPoint
  1034. where 1=1 ";
  1035. if (!string.IsNullOrWhiteSpace(queryJson))
  1036. {
  1037. if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
  1038. {
  1039. sql += " and a.AsnCode like '%" + queryParam["STNO"].ToString() + "%' ";
  1040. }
  1041. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1042. {
  1043. sql += " and e.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1044. }
  1045. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1046. {
  1047. sql += " and f.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1048. }
  1049. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  1050. {
  1051. sql += " and e.MTIME >= '" + queryParam["BeginDate"].ToString() + "' ";
  1052. }
  1053. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  1054. {
  1055. sql += " and e.MTIME <= '" + queryParam["EndDate"].ToString() + "' ";
  1056. }
  1057. if (!string.IsNullOrWhiteSpace(queryParam["VenderLotNO"].ToString()))
  1058. {
  1059. sql += " and exc.BatchCode = '%" + queryParam["VenderLotNO"].ToString() + "%' ";
  1060. }
  1061. if (!string.IsNullOrWhiteSpace(queryParam["IsReceive"].ToString()))
  1062. {
  1063. string IsReceive = queryParam["IsReceive"].ToString();
  1064. if (IsReceive == "1")
  1065. {
  1066. sql += " and case when a.DNQuantity is null then '否'else '是'end ='是' ";
  1067. }
  1068. else if (IsReceive == "2")
  1069. {
  1070. sql += " and case when a.DNQuantity is null then '否'else '是'end ='否' ";
  1071. }
  1072. }
  1073. }
  1074. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1075. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1076. {
  1077. sql += " and e.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  1078. }
  1079. //组织架构代码
  1080. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1081. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  1082. {
  1083. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  1084. }
  1085. else
  1086. {
  1087. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1088. }
  1089. }
  1090. public DataTable GetASNListExport(string keyVaule)
  1091. {
  1092. //var queryParam = queryJson.ToJObject();
  1093. List<DbParameter> parameter = new List<DbParameter>();
  1094. string sql = @"SELECT DISTINCT a.ASNCode AS 送货单号,b.InvCode AS 物料编码,d.INVNAME AS 物料名称,d.InvStd AS 规格型号,case
  1095. when a.DNQuantity is null then '否'
  1096. else '是'
  1097. end as ,a.LOTNO AS ,exc.BatchCode AS ,
  1098. b.Quantity AS ,CAST(ISNULL(II.repairqty,0) AS DECIMAL(18,3)) AS ,CAST(ISNULL(cc.YLQTY,0) AS DECIMAL(18,3)) as
  1099. ,CAST(ISNULL(cc.NGQTY,0) AS DECIMAL(18,3))as
  1100. ,c.ContainerID AS ,e.VenCode AS ,f.VenName AS ,
  1101. det.TransCode AS ,det.TransSequence AS ,g.F_RealName AS ,CONVERT(NVARCHAR(50),e.MTIME,23) as
  1102. ,w.WorkPointName AS ,w.WorkPointCode AS
  1103. FROM dbo.ICSASNDETAIL a
  1104. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1105. LEFT JOIN dbo.ICSInventoryLotDetail det ON b.LotNO=det.LotNo AND b.WorkPoint=det.WorkPoint
  1106. LEFT JOIN dbo.ICSContainerLot c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  1107. LEFT JOIN dbo.ICSINVENTORY d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  1108. LEFT JOIN dbo.ICSExtension exc ON b.ExtensionID=exc.ID
  1109. LEFT JOIN dbo.ICSASN e ON a.ASNCode=e.ASNCode AND a.WorkPoint=e.WorkPoint
  1110. LEFT JOIN dbo.ICSVendor f ON e.VenCode=f.VenCode AND a.WorkPoint=f.WorkPoint
  1111. LEFT JOIN dbo.Sys_SRM_User g ON e.VenCode=g.F_Account and g.F_Location=a.WorkPoint
  1112. LEFT JOIN dbo.ICSPurchaseOrder h ON det.TransCode=h.POCode AND det.TransSequence=h.Sequence AND a.WorkPoint=h.WorkPoint
  1113. LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  1114. LEFT JOIN ( SELECT c.TransCode,c.TransSequence,
  1115. (SUM(ISNULL(a.Quantity, 0)) - SUM(ISNULL(a.DNQuantity, 0))) AS repairqty,a.WorkPoint
  1116. FROM ICSASNDETAIL a
  1117. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO = b.LotNO AND a.WorkPoint = b.WorkPoint AND a.Quantity IS NOT NULL
  1118. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1119. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  1120. ) II ON h.POCode = II.TransCode AND h.Sequence = II.TransSequence AND h.WorkPoint = II.WorkPoint
  1121. left join (
  1122. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY,sum(isnull(a.Quantity,0)) YLQTY,a.WorkPoint from ICSINSPECTION a
  1123. left join dbo.ICSInventoryLot b on a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1124. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1125. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2,a.WorkPoint
  1126. having b.EATTRIBUTE2 is null) cc on h.POCode=cc.TransCode and h.Sequence=cc.TransSequence AND h.WorkPoint=cc.WorkPoint
  1127. where 1=1 ";
  1128. sql += " and a.ID in (" + keyVaule + ")";
  1129. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1130. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1131. return dt;
  1132. }
  1133. public DataTable GetASNListExport(string ORDERNO, string STNO, string BeginDate, string EndDate, string VenCode, string VenName, string VenderLotNO, string IsReceive)
  1134. {
  1135. //var queryParam = queryJson.ToJObject();
  1136. List<DbParameter> parameter = new List<DbParameter>();
  1137. string sql = @"SELECT DISTINCT a.ASNCode AS 送货单号,b.InvCode AS 物料编码,d.INVNAME AS 物料名称,d.InvStd AS 规格型号,case
  1138. when a.DNQuantity is null then '否'
  1139. else '是'
  1140. end as ,a.LOTNO AS ,exc.BatchCode AS ,
  1141. b.Quantity AS ,CAST(ISNULL(II.repairqty,0) AS DECIMAL(18,3)) AS ,CAST(ISNULL(cc.YLQTY,0) AS DECIMAL(18,3)) as
  1142. ,CAST(ISNULL(cc.NGQTY,0) AS DECIMAL(18,3))as
  1143. ,c.ContainerID AS ,e.VenCode AS ,f.VenName AS ,
  1144. det.TransCode AS ,det.TransSequence AS ,g.F_RealName AS ,CONVERT(NVARCHAR(50),e.MTIME,23) as
  1145. ,w.WorkPointName AS ,w.WorkPointCode AS
  1146. FROM dbo.ICSASNDETAIL a
  1147. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1148. LEFT JOIN dbo.ICSInventoryLotDetail det ON b.LotNO=det.LotNo AND b.WorkPoint=det.WorkPoint
  1149. LEFT JOIN dbo.ICSContainerLot c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
  1150. LEFT JOIN dbo.ICSINVENTORY d ON b.InvCode=d.InvCode AND a.WorkPoint=d.WorkPoint
  1151. LEFT JOIN dbo.ICSExtension exc ON b.ExtensionID=exc.ID
  1152. LEFT JOIN dbo.ICSASN e ON a.ASNCode=e.ASNCode AND a.WorkPoint=e.WorkPoint
  1153. LEFT JOIN dbo.ICSVendor f ON e.VenCode=f.VenCode AND a.WorkPoint=f.WorkPoint
  1154. LEFT JOIN dbo.Sys_SRM_User g ON e.VenCode=g.F_Account and g.F_Location=a.WorkPoint
  1155. LEFT JOIN dbo.ICSPurchaseOrder h ON det.TransCode=h.POCode AND det.TransSequence=h.Sequence AND a.WorkPoint=h.WorkPoint
  1156. LEFT JOIN dbo.Sys_WorkPoint w ON a.WorkPoint=w.WorkPointCode
  1157. LEFT JOIN ( SELECT c.TransCode,c.TransSequence,
  1158. (SUM(ISNULL(a.Quantity, 0)) - SUM(ISNULL(a.DNQuantity, 0))) AS repairqty,a.WorkPoint
  1159. FROM ICSASNDETAIL a
  1160. LEFT JOIN dbo.ICSInventoryLot b ON a.LOTNO = b.LotNO AND a.WorkPoint = b.WorkPoint AND a.Quantity IS NOT NULL
  1161. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1162. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  1163. ) II ON h.POCode = II.TransCode AND h.Sequence = II.TransSequence AND h.WorkPoint = II.WorkPoint
  1164. left join (
  1165. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY,sum(isnull(a.Quantity,0)) YLQTY,a.WorkPoint from ICSINSPECTION a
  1166. left join dbo.ICSInventoryLot b on a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  1167. LEFT JOIN dbo.ICSInventoryLotDetail c ON b.LotNo=c.LotNo AND b.WorkPoint=c.WorkPoint
  1168. group by c.TransCode,c.TransSequence,b.EATTRIBUTE2,a.WorkPoint
  1169. having b.EATTRIBUTE2 is null) cc on h.POCode=cc.TransCode and h.Sequence=cc.TransSequence AND h.WorkPoint=cc.WorkPoint
  1170. where 1=1 ";
  1171. if (!string.IsNullOrWhiteSpace(ORDERNO))
  1172. sql += " and a.ORDERNO like '%" + ORDERNO + "%'";
  1173. if (!string.IsNullOrWhiteSpace(STNO))
  1174. sql += " and a.ASNCode like '%" + STNO + "%'";
  1175. if (!string.IsNullOrWhiteSpace(BeginDate))
  1176. sql += " and e.MTIME >= '" + BeginDate + "'";
  1177. if (!string.IsNullOrWhiteSpace(BeginDate))
  1178. sql += " and e.MTIME <= '" + EndDate + "'";
  1179. if (!string.IsNullOrWhiteSpace(VenCode))
  1180. sql += " and e.VenCode like '%" + VenCode + "%'";
  1181. if (!string.IsNullOrWhiteSpace(VenCode))
  1182. sql += " and f.VenName like '%" + VenName + "%'";
  1183. if (!string.IsNullOrWhiteSpace(VenderLotNO))
  1184. sql += " and exc.BatchCode like '%" + VenderLotNO + "%'";
  1185. if (IsReceive == "1")
  1186. {
  1187. sql += " and case when a.DNQuantity is null then '否'else '是'end ='是' ";
  1188. }
  1189. else if (IsReceive == "2")
  1190. {
  1191. sql += " and case when a.DNQuantity is null then '否'else '是'end ='否' ";
  1192. }
  1193. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1194. {
  1195. sql += " and e.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
  1196. }
  1197. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1198. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1199. return dt;
  1200. }
  1201. public string CheckIsAll(string STNO, string WorkPoint)
  1202. {
  1203. string sql = @"SELECT * FROM dbo.ICSASNDetail WHERE ASNCode='" + STNO + "' AND ISNULL(DNQuantity,0)<>0";
  1204. sql += " and WorkPoint in('" + WorkPoint + "')";
  1205. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1206. if (dt != null && dt.Rows.Count > 0)
  1207. {
  1208. return "0";
  1209. }
  1210. else
  1211. {
  1212. return "1";
  1213. }
  1214. }
  1215. public DataTable GetLoadShowForColumnByASN(string WorkPoint)
  1216. {
  1217. //string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1218. string sql = @"
  1219. select * from ICSColumnEnable where TableCode='icsasn' and WorkPoint='" + WorkPoint + "' order by cast(code as int) ";
  1220. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1221. return dt;
  1222. }
  1223. public DataTable SelectICSColumnEnableForLotEnablebyASN(string WorkPoint)
  1224. {
  1225. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1226. string sql = @" select ColumnCode from ICSColumnEnable
  1227. where Enable='0' and TableCode='icsasn' and WorkPoint='" + WorkPoint + "' order by cast(Code as int)";
  1228. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1229. return dt;
  1230. }
  1231. #region 送货单退回
  1232. public int UpdateBackRemark(string STNO, string ReturnRemark, string WorkPoint)
  1233. {
  1234. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1235. string sql = string.Empty;
  1236. sql = @"UPDATE ICSASN SET EATTRIBUTE2 = '{0}',STATUS='4' WHERE ASNCode ='{1}'";
  1237. sql = string.Format(sql, ReturnRemark, STNO);
  1238. return SqlHelper.ExecuteNonQuery(sql);
  1239. }
  1240. #endregion
  1241. public string GetICSASNCode(string RoleEnCode, string WorkPoint)
  1242. {
  1243. DataTable dt = new DataTable();
  1244. string Date = DateTime.Now.ToString("yy");
  1245. string Pre = "DN" + RoleEnCode + Date;
  1246. string ASNCode = GetSerialCode(WorkPoint, "ICSASN", "STNO", Pre, 5);
  1247. return ASNCode;
  1248. }
  1249. public DataTable GetLotByContainer(string Value, string WorkPoint)
  1250. {
  1251. Value = Value.TrimEnd(',');
  1252. string sql = @"
  1253. WITH ICSBomALL AS
  1254. (
  1255. SELECT
  1256. ContainerCode AS TContainerCode,
  1257. ContainerCode AS PContainerCode,
  1258. ContainerCode AS ContainerCode,
  1259. ID,
  1260. ContainerID,
  1261. 0 AS [Level],
  1262. CAST(1 AS nvarchar(MAX)) AS SortSeq,
  1263. CAST('00001' AS nvarchar(MAX)) AS Sort
  1264. FROM ICSContainer
  1265. WHERE ContainerCode in ({0})
  1266. UNION ALL
  1267. SELECT
  1268. b.TContainerCode,
  1269. b.ContainerCode AS PContainerCode,
  1270. a.ContainerCode,
  1271. a.ID,
  1272. a.ContainerID,
  1273. b.[Level]+1 AS [Level],
  1274. CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq,
  1275. CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort
  1276. FROM
  1277. ICSContainer a
  1278. INNER JOIN ICSBomALL b ON a.ID=b.ContainerID
  1279. )
  1280. SELECT a.ID,
  1281. con.ContainerCode,
  1282. con.ContainerName,
  1283. a.LotNo,
  1284. lotD.TransCode,
  1285. lotD.TransSequence,
  1286. a.InvCode,
  1287. inv.InvName,
  1288. inv.InvStd,
  1289. inv.InvUnit,
  1290. inv.InvDesc,
  1291. a.Quantity AS Quantity,
  1292. a.Quantity*(a.Amount/a.Quantity) AS Amount,
  1293. '' AS WHCode,
  1294. '' AS WHName,
  1295. '' AS LocationCode,
  1296. '' AS LocationName,
  1297. ext.BatchCode AS BatchCode,
  1298. inv.AmountUnit,
  1299. ext.ID AS ExtensionID,
  1300. ext.ProjectCode,
  1301. ext.Version,
  1302. --ext.BatchCode,
  1303. ext.Brand,
  1304. ext.cFree1,
  1305. ext.cFree2,
  1306. ext.cFree3,
  1307. ext.cFree4,
  1308. ext.cFree5,
  1309. ext.cFree6,
  1310. ext.cFree7,
  1311. ext.cFree8,
  1312. ext.cFree9,
  1313. ext.cFree10,
  1314. a.MUSER AS [User],
  1315. a.MTIME AS [MTime],
  1316. a.WorkPoint
  1317. FROM ICSInventoryLot a
  1318. left join dbo.ICSInventoryLotDetail lotD on a.LotNo=lotD.LotNo and a.WorkPoint=lotD.WorkPoint
  1319. INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint
  1320. LEFT JOIN ICSContainerLot conlot ON a.LotNo=conlot.LotNo AND a.WorkPoint=conlot.WorkPoint
  1321. LEFT JOIN ICSContainer con ON conlot.ContainerID=con.ID AND conlot.WorkPoint=con.WorkPoint
  1322. LEFT JOIN ICSBomALL bom ON bom.ID=con.ContainerID
  1323. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  1324. WHERE bom.ContainerCode in ({0}) AND a.WorkPoint='{1}'
  1325. UNION ALL
  1326. SELECT a.ID,
  1327. con.ContainerCode,
  1328. con.ContainerName,
  1329. a.LotNo,
  1330. lotD.TransCode,
  1331. lotD.TransSequence,
  1332. a.InvCode,
  1333. inv.InvName,
  1334. inv.InvStd,
  1335. inv.InvUnit,
  1336. inv.InvDesc,
  1337. a.Quantity AS Quantity,
  1338. a.Quantity*(a.Amount/a.Quantity) AS Amount,
  1339. '' AS WHCode,
  1340. '' AS WHName,
  1341. '' AS LocationCode,
  1342. '' AS LocationName,
  1343. ext.BatchCode AS BatchCode,
  1344. inv.AmountUnit,
  1345. ext.ID AS ExtensionID,
  1346. ext.ProjectCode,
  1347. ext.Version,
  1348. --ext.BatchCode,
  1349. ext.Brand,
  1350. ext.cFree1,
  1351. ext.cFree2,
  1352. ext.cFree3,
  1353. ext.cFree4,
  1354. ext.cFree5,
  1355. ext.cFree6,
  1356. ext.cFree7,
  1357. ext.cFree8,
  1358. ext.cFree9,
  1359. ext.cFree10,
  1360. a.MUSER AS [User],
  1361. a.MTIME AS [MTime],
  1362. a.WorkPoint
  1363. FROM ICSInventoryLot a
  1364. left join dbo.ICSInventoryLotDetail lotD on a.LotNo=lotD.LotNo and a.WorkPoint=lotD.WorkPoint
  1365. INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint
  1366. LEFT JOIN ICSContainerLot conlot ON a.LotNo=conlot.LotNo AND a.WorkPoint=conlot.WorkPoint
  1367. LEFT JOIN ICSContainer con ON conlot.ContainerID=con.ID AND conlot.WorkPoint=con.WorkPoint
  1368. LEFT JOIN ICSBomALL bom ON bom.ID=conlot.ContainerID
  1369. INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
  1370. WHERE bom.ContainerCode in ({0}) AND a.WorkPoint='{1}'
  1371. ";
  1372. sql = string.Format(sql, Value, WorkPoint);
  1373. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1374. return dt;
  1375. }
  1376. public string SaveICSASNAndDetail(string ICSASN, string WorkPoint)
  1377. {
  1378. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1379. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1380. string msg = "";
  1381. string sql = string.Empty;
  1382. string str1 = "";
  1383. string firstPOCode = null;
  1384. string ID = Guid.NewGuid().ToString();
  1385. string Status;
  1386. #region [获取送货单配置信息,判断状态]
  1387. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit", WorkPoint);
  1388. if (!string.IsNullOrWhiteSpace(F_ItemName))
  1389. {
  1390. Status = "2";
  1391. }
  1392. else
  1393. {
  1394. Status = "0";
  1395. }
  1396. #endregion
  1397. // string ISManger = SqlHelper.GetSHDZDSHItemsDetails("ASNISManger", WorkPoint);
  1398. JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
  1399. foreach (var item in res)
  1400. {
  1401. JObject jo = (JObject)item;
  1402. //创建送货单主表
  1403. sql += @" INSERT INTO dbo.ICSASN
  1404. ( ID ,ASNCode ,VenCode,Status,
  1405. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE1)
  1406. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')";
  1407. sql = string.Format(sql, jo["ASNCode"].ToString(), jo["VenCode"].ToString(), Status, MUSER, MUSERNAME, jo["WorkPoint"].ToString(), jo["EATTRIBUTE1"].ToString());
  1408. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
  1409. foreach (var detail in resdetail)
  1410. {
  1411. //if (!string.IsNullOrWhiteSpace(ISManger))
  1412. //{
  1413. // string poCode = (string)detail["POCode"];
  1414. // if (firstPOCode == null)
  1415. // {
  1416. // firstPOCode = poCode;
  1417. // }
  1418. // else if (firstPOCode != poCode)
  1419. // {
  1420. // msg = "本次送货单条码存在多订单,请分单做送货单!!";
  1421. // break;
  1422. // }
  1423. //}
  1424. //创建送货单子表
  1425. JObject det = (JObject)detail;
  1426. sql += @" INSERT INTO dbo.ICSASNDetailDocuments
  1427. ( ID ,ASNCode ,Sequence,SourceCode,SourceSequence,InvCode,Quantity,Amount,DNQuantity,DNAmount,RTQuantity,RTAmount,
  1428. MUSER ,MUSERName ,MTIME,WorkPoint)
  1429. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}',0,0,0,0,'{7}','{8}',getdate(),'{9}')";
  1430. sql = string.Format(sql, jo["ASNCode"].ToString(), det["Sequences"].ToString(), det["Code"].ToString(), det["Sequence"].ToString(), det["InvCode"].ToString(), det["Quantity"].ToString(), det["Amount"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
  1431. }
  1432. }
  1433. try
  1434. {
  1435. if (string.IsNullOrWhiteSpace(msg))
  1436. {
  1437. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1438. {
  1439. }
  1440. else
  1441. {
  1442. msg = "新增失败";
  1443. }
  1444. }
  1445. }
  1446. catch (Exception ex)
  1447. {
  1448. msg = ex.Message;
  1449. }
  1450. return msg;
  1451. }
  1452. public string UpdateICSASNAndDetail(string ICSASN)
  1453. {
  1454. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1455. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1456. string msg = "";
  1457. string sql = string.Empty;
  1458. string idss = "";
  1459. string Code = "";
  1460. JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
  1461. foreach (var item in res)
  1462. {
  1463. JObject jo = (JObject)item;
  1464. JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
  1465. foreach (var detail in resdetail)
  1466. {
  1467. Code = jo["ASNCode"].ToString();
  1468. JObject det = (JObject)detail;
  1469. //sql += @" update ICSASN set Status='1' where ASNCode='{1}'";
  1470. if (string.IsNullOrWhiteSpace(det["ID"].ToString()))
  1471. {
  1472. string DetailID = Guid.NewGuid().ToString();
  1473. sql += @" INSERT INTO dbo.ICSASNDetailDocuments
  1474. ( ID ,ASNCode ,Sequence,SourceCode,SourceSequence,InvCode,Quantity,Amount,DNQuantity,DNAmount,RTQuantity,RTAmount,
  1475. MUSER ,MUSERName ,MTIME,WorkPoint)
  1476. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',0,0,0,0,'{8}','{9}',getdate(),'{10}')";
  1477. sql = string.Format(sql, DetailID, jo["ASNCode"].ToString(), det["Sequences"].ToString(), det["Code"].ToString(), det["Sequence"].ToString(), det["InvCode"].ToString(), det["Quantity"].ToString(), det["Amount"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
  1478. idss += "'" + DetailID + "',";
  1479. }
  1480. else
  1481. {
  1482. idss += "'" + det["ID"].ToString() + "',";
  1483. }
  1484. }
  1485. }
  1486. sql += @"DELETE ICSASNDetailDocuments where ASNCode ='{0}' and id not in ({1})";
  1487. sql = string.Format(sql, Code, idss.Substring(0, idss.Length - 1));
  1488. try
  1489. {
  1490. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1491. {
  1492. }
  1493. else
  1494. {
  1495. msg = "修改失败";
  1496. }
  1497. }
  1498. catch (Exception ex)
  1499. {
  1500. msg = ex.Message;
  1501. }
  1502. return msg;
  1503. }
  1504. public DataTable GetGridJsonUpload(string queryJson, string STNO, ref Pagination jqgridparam, string WorkPoint)
  1505. {
  1506. DataTable dt = new DataTable();
  1507. var queryParam = queryJson.ToJObject();
  1508. List<DbParameter> parameter = new List<DbParameter>();
  1509. string sql = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSASN a
  1510. left join (select ASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSASNDetail a
  1511. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1512. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1513. group by a.ASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint
  1514. left join ICSASNShippingReport c on a.ASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1515. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1516. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1517. where a.ASNCode='{0}'
  1518. ";
  1519. sql = string.Format(sql, STNO);
  1520. //if (!string.IsNullOrWhiteSpace(queryJson))
  1521. //{
  1522. // if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  1523. // {
  1524. // sql += " and a.ContainerID like '%" + queryParam["CartonNo"].ToString() + "%' ";
  1525. // }
  1526. // if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1527. // {
  1528. // sql += " and a.EATTRIBUTE8 = '" + queryParam["VenCode"].ToString() + "' ";
  1529. // }
  1530. // if (!string.IsNullOrWhiteSpace(queryParam["Type"].ToString()))
  1531. // {
  1532. // sql += " and a.ContainerType = '" + queryParam["Type"].ToString() + "' ";
  1533. // }
  1534. //}
  1535. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1536. //{
  1537. // sql += " and a.WorkPoint='" + WorkPoint + "'";
  1538. //}
  1539. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1540. }
  1541. public DataTable GetGridJsonUpload2(string queryJson, string STNO, ref Pagination jqgridparam, string WorkPoint)
  1542. {
  1543. DataTable dt = new DataTable();
  1544. var queryParam = queryJson.ToJObject();
  1545. List<DbParameter> parameter = new List<DbParameter>();
  1546. string sql = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSOASN a
  1547. left join (select OASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSOASNDetail a
  1548. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1549. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1550. group by a.OASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint
  1551. left join ICSASNShippingReport c on a.OASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1552. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1553. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1554. where a.OASNCode='{0}'
  1555. ";
  1556. sql = string.Format(sql, STNO);
  1557. //if (!string.IsNullOrWhiteSpace(queryJson))
  1558. //{
  1559. // if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
  1560. // {
  1561. // sql += " and a.ContainerID like '%" + queryParam["CartonNo"].ToString() + "%' ";
  1562. // }
  1563. // if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1564. // {
  1565. // sql += " and a.EATTRIBUTE8 = '" + queryParam["VenCode"].ToString() + "' ";
  1566. // }
  1567. // if (!string.IsNullOrWhiteSpace(queryParam["Type"].ToString()))
  1568. // {
  1569. // sql += " and a.ContainerType = '" + queryParam["Type"].ToString() + "' ";
  1570. // }
  1571. //}
  1572. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1573. //{
  1574. // sql += " and a.WorkPoint='" + WorkPoint + "'";
  1575. //}
  1576. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1577. }
  1578. public string UpLoadFile(string STNO, string InvCode, string BatchCode, string VenCode, string BatchCodeNum, string FileName, string PathName)
  1579. {
  1580. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1581. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1582. string msg = "";
  1583. string sql = string.Empty;
  1584. sql += @"update ICSASNShippingReport set IsEable='0' where ASNCode='{0}' and InvCode='{1}' and BatchCode='{2}' and EATTRIBUTE1='1'";
  1585. sql += @"
  1586. INSERT INTO ICSASNShippingReport
  1587. ( ID, ASNCode, InvCode, BatchCode, BatchCodeQty, VenCode, FileName, FilePath, CerateTime, CreateUser,IsEable,EATTRIBUTE1)
  1588. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','1','1')";
  1589. sql = string.Format(sql, STNO, InvCode, BatchCode, BatchCodeNum, VenCode, FileName, PathName, MUSER);
  1590. try
  1591. {
  1592. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1593. {
  1594. }
  1595. else
  1596. {
  1597. msg = "上传失败";
  1598. }
  1599. }
  1600. catch (Exception ex)
  1601. {
  1602. msg = ex.Message;
  1603. }
  1604. return msg;
  1605. }
  1606. public string UpLoadFile2(string STNO, string InvCode, string BatchCode, string VenCode, string BatchCodeNum, string FileName, string PathName)
  1607. {
  1608. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1609. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1610. string msg = "";
  1611. string sql = string.Empty;
  1612. sql += @"update ICSASNShippingReport set IsEable='0' where ASNCode='{0}' and InvCode='{1}' and BatchCode='{2}' and EATTRIBUTE1='2'";
  1613. sql += @"
  1614. INSERT INTO ICSASNShippingReport
  1615. ( ID, ASNCode, InvCode, BatchCode, BatchCodeQty, VenCode, FileName, FilePath, CerateTime, CreateUser,IsEable,EATTRIBUTE1)
  1616. VALUES ( newid(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','1','2')";
  1617. sql = string.Format(sql, STNO, InvCode, BatchCode, BatchCodeNum, VenCode, FileName, PathName, MUSER);
  1618. try
  1619. {
  1620. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  1621. {
  1622. }
  1623. else
  1624. {
  1625. msg = "上传失败";
  1626. }
  1627. }
  1628. catch (Exception ex)
  1629. {
  1630. msg = ex.Message;
  1631. }
  1632. return msg;
  1633. }
  1634. public string CheckIsASNAudit()
  1635. {
  1636. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNAudit", "");
  1637. if (!string.IsNullOrWhiteSpace(F_ItemName))
  1638. {
  1639. return "0";
  1640. }
  1641. else
  1642. {
  1643. return "1";
  1644. }
  1645. }
  1646. public bool ISEableReport(string Code, string VenCode, string Type)
  1647. {
  1648. bool ISEableReport = true;
  1649. string sqlSeach = "";
  1650. string sql = @"SELECT * FROM Sys_SRM_ItemsDetail a
  1651. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  1652. WHERE b.F_EnCode = 'ANSReportEable' and a.F_EnabledMark = '1' and F_ItemCode = '" + VenCode + "'";
  1653. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1654. if (dt.Rows.Count > 0)
  1655. {
  1656. if (Type == "1")
  1657. {
  1658. sqlSeach = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSASN a
  1659. left join (select ASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSASNDetail a
  1660. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1661. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1662. group by a.ASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint
  1663. left join ICSASNShippingReport c on a.ASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1664. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1665. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1666. where a.ASNCode='" + Code + "' ";
  1667. sqlSeach += @" select * from ICSASNShippingReport where ASNCode='" + Code + "' and IsEable='1' and EATTRIBUTE1='1'";
  1668. }
  1669. else
  1670. {
  1671. sqlSeach = @" select b.InvCode,d.InvName ,b.BatchCode,b.BatchCodeNum,a.VenCode,e.VenName,c.FileName,c.CerateTime from dbo.ICSOASN a
  1672. left join (select OASNCode,InvCode ,BatchCode,a.WorkPoint,sum(a.Quantity) as BatchCodeNum from dbo.ICSOASNDetail a
  1673. left join dbo.ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  1674. left join dbo.ICSExtension c on b.ExtensionID=c.ID and b.WorkPoint=c.WorkPoint
  1675. group by a.OASNCode,b.InvCode,c.BatchCode,a.WorkPoint)b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint
  1676. left join ICSASNShippingReport c on a.OASNCode=c.ASNCode and b.InvCode=c.InvCode and b.BatchCode=c.BatchCode and c.IsEable='1'
  1677. left join dbo.ICSInventory d on b.InvCode=d.InvCode and a.WorkPoint=d.WorkPoint
  1678. left join dbo.ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  1679. where a.OASNCode='" + Code + "' ";
  1680. sqlSeach += @" select * from ICSASNShippingReport where ASNCode='" + Code + "' and IsEable='1' and EATTRIBUTE1='2'";
  1681. }
  1682. DataSet ds = SqlHelper.GetDataSetBySql(sqlSeach);
  1683. if (ds.Tables[0].Rows.Count != ds.Tables[1].Rows.Count)
  1684. {
  1685. ISEableReport = false;
  1686. }
  1687. }
  1688. return ISEableReport;
  1689. }
  1690. /// <summary>
  1691. /// 获取组织号信息对应认证资料
  1692. /// </summary>
  1693. /// <returns></returns>
  1694. public DataTable GetVendorBYQcc()
  1695. {
  1696. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1697. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  1698. string sql = @" select '' as WorkPointCode,'' as WorkPointName
  1699. union all
  1700. SELECT distinct (b.WorkPointCode),b.WorkPointName FROM Sys_SRM_User a
  1701. LEFT JOIN Sys_WorkPoint b ON a.F_Location=b.WorkPointCode where b.WorkPointCode is not null";
  1702. //if (role != "admin")
  1703. //{
  1704. // sql += " and a.F_Location=" + WorkPoint + "";
  1705. //}
  1706. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1707. return dt;
  1708. }
  1709. public string IsASNByCarton()
  1710. {
  1711. string F_ItemName = SqlHelper.GetSHDZDSHItemsDetails("ASNByCarton", "");
  1712. if (!string.IsNullOrWhiteSpace(F_ItemName))
  1713. {
  1714. return "0";
  1715. }
  1716. else
  1717. {
  1718. return "1";
  1719. }
  1720. }
  1721. #endregion
  1722. }
  1723. }