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.

1520 lines
92 KiB

3 days ago
  1. using Newtonsoft.Json.Linq;
  2. using Newtonsoft.Json;
  3. using NFine.Code;
  4. using NFine.Data.Extensions;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Configuration;
  8. using System.Data.Common;
  9. using System.Data;
  10. using System.IO;
  11. using System.Linq;
  12. using System.Net;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. using NFine.Domain._03_Entity.SRM;
  16. using NFine.Repository;
  17. using System.Data.SqlClient;
  18. namespace NFine.Application.SRM
  19. {
  20. public class DHCreateItemLotApp : 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 sql = @"SELECT a.ID, a.POCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,
  29. a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
  30. b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode
  31. ,CreatePerson,e.ProjectCode,a.EATTRIBUTE2,a.EATTRIBUTE3,a.Status
  32. FROM dbo.ICSPurchaseOrder a
  33. LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
  34. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  35. LEFT JOIN (
  36. SELECT mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
  37. FROM ICSInventoryLot ee
  38. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo
  39. WHERE (ISNULL(ee.EATTRIBUTE1,'') ='' or ISNULL(ee.EATTRIBUTE7,'') ='' )
  40. group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) bb
  41. on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
  42. left join (
  43. select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  44. from ICSDeliveryNotice a
  45. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  46. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  47. group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3') cc
  48. on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
  49. left join (select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
  50. FROM ICSDeliveryNotice a
  51. left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
  52. group by b.POCode,b.Sequence,a.DNType,a.WorkPoint having a.DNType='2' ) dd
  53. on a.POCode=dd.POCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
  54. left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
  55. WHERE 1=1 AND a.ReleaseState = '1' ";
  56. if (!string.IsNullOrWhiteSpace(queryJson))
  57. {
  58. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  59. {
  60. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  61. }
  62. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  63. {
  64. sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  65. }
  66. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  67. {
  68. sql += " and a.ReleaseDate >='" + queryParam["BeginDate"].ToString() + "' ";
  69. }
  70. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  71. {
  72. sql += " and a.ReleaseDate <='" + queryParam["EndDate"].ToString() + "'";
  73. }
  74. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  75. {
  76. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  77. }
  78. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  79. {
  80. sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  81. }
  82. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  83. {
  84. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  85. }
  86. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  87. {
  88. string POStatus = queryParam["POStatus"].ToString();
  89. if (POStatus == "0")
  90. {
  91. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  92. }
  93. else if (POStatus == "1")
  94. {
  95. sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  96. }
  97. else
  98. {
  99. sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  100. }
  101. }
  102. if (!string.IsNullOrWhiteSpace(queryParam["POCodeStatus"].ToString()))
  103. {
  104. string POCodeStatus = queryParam["POCodeStatus"].ToString();
  105. if (POCodeStatus == "0")
  106. {
  107. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  108. }
  109. else if (POCodeStatus == "1")
  110. {
  111. sql += " and a.Status='3'";
  112. }
  113. else
  114. {
  115. sql += " and a.Status<>'3'";
  116. }
  117. }
  118. }
  119. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  120. {
  121. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  122. }
  123. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  124. {
  125. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  126. }
  127. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  128. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  129. {
  130. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  131. }
  132. else
  133. {
  134. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  135. }
  136. }
  137. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  138. {
  139. string ParentId = "";
  140. DataTable dt = new DataTable();
  141. var queryParam = queryJson.ToJObject();
  142. List<DbParameter> parameter = new List<DbParameter>();
  143. string sql = @" SELECT a.ID, a.OOCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,a.OODetailID,
  144. a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
  145. b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode,e.ProjectCode,a.EATTRIBUTE2,a.EATTRIBUTE3
  146. FROM dbo.ICSOutsourcingOrder a
  147. LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
  148. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  149. LEFT JOIN (
  150. SELECT mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
  151. FROM ICSInventoryLot ee
  152. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo
  153. WHERE (ISNULL(ee.EATTRIBUTE1,'') ='' or ISNULL(ee.EATTRIBUTE7,'') ='' )
  154. group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) bb
  155. on a.OOCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
  156. left join (
  157. select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  158. from ICSODeliveryNotice a
  159. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  160. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  161. group by c.TransCode,c.TransSequence,a.WorkPoint,ODNType having a.ODNType='3') cc
  162. on a.OOCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
  163. left join (select b.OOCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
  164. FROM ICSODeliveryNotice a
  165. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID
  166. group by b.OOCode,b.Sequence,a.ODNType,a.WorkPoint having a.ODNType='2' ) dd
  167. on a.OOCode=dd.OOCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
  168. left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
  169. WHERE 1=1 AND a.ReleaseState = '1' ";
  170. if (!string.IsNullOrWhiteSpace(queryJson))
  171. {
  172. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  173. {
  174. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  175. }
  176. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  177. {
  178. sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  179. }
  180. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  181. {
  182. sql += " and a.ReleaseDate >='" + queryParam["BeginDate"].ToString() + "' ";
  183. }
  184. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  185. {
  186. sql += " and a.ReleaseDate <='" + queryParam["EndDate"].ToString() + "'";
  187. }
  188. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  189. {
  190. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  191. }
  192. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  193. {
  194. sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  195. }
  196. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  197. {
  198. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  199. }
  200. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  201. {
  202. string POStatus = queryParam["POStatus"].ToString();
  203. if (POStatus == "0")
  204. {
  205. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  206. }
  207. else if (POStatus == "1")
  208. {
  209. sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  210. }
  211. else
  212. {
  213. sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  214. }
  215. }
  216. if (!string.IsNullOrWhiteSpace(queryParam["POCodeStatus"].ToString()))
  217. {
  218. string POCodeStatus = queryParam["POCodeStatus"].ToString();
  219. if (POCodeStatus == "0")
  220. {
  221. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  222. }
  223. else if (POCodeStatus == "1")
  224. {
  225. sql += " and a.Status='3'";
  226. }
  227. else
  228. {
  229. sql += " and a.Status<>'3'";
  230. }
  231. }
  232. }
  233. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  234. {
  235. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  236. }
  237. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  238. {
  239. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  240. }
  241. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  242. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  243. {
  244. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  245. }
  246. else
  247. {
  248. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  249. }
  250. }
  251. /// <summary>
  252. /// 子表查询(排除分批后的条码)
  253. /// </summary>
  254. /// <param name="queryJson"></param>
  255. /// <param name="jqgridparam"></param>
  256. /// <returns></returns>
  257. public DataTable GetSubGridJson(string POCode, string PORow, string WorkPoint, ref Pagination jqgridparam)
  258. {
  259. DataTable dt = new DataTable();
  260. //var queryParam = queryJson.ToJObject();
  261. List<DbParameter> parameter = new List<DbParameter>();
  262. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  263. string sql = @"SELECT c.TransCode,c.TransSequence,a.ID,a.LotNO,a.Quantity,a.PrintTimes,a.ProductDate,
  264. CASE WHEN b.LotNoCount>0 THEN b.Quantity ELSE 0 END AS ruku,a.LastPrintTime,a.WorkPoint
  265. FROM dbo.ICSInventoryLot a
  266. LEFT JOIN (SELECT COUNT(LotNO) LotNoCount,LotNO,WorkPoint,
  267. Quantity from dbo.ICSWareHouseLotInfolog
  268. where BusinessCode='1'
  269. group BY LotNO,WorkPoint,Quantity) b ON a.LotNO=b.LotNO AND a.WorkPoint=b.WorkPoint
  270. left JOIN ICSInventoryLotDetail c on a.LotNo=c.LotNo
  271. --left JOIN (SELECT DISTINCT LotNO,WorkPoint FROM ICSWareHouseLotInfolog WHERE ISNULL(BusinessCode,'')<>'32') d ON a.LotNO=d.LotNO AND a.WorkPoint=d.WorkPoint
  272. WHERE c.TransCode='" + POCode + "' and c.TransSequence='" + PORow + "' and a.WorkPoint in ('" + WorkPoint + "')and (ISNULL(a.EATTRIBUTE1,'') ='' or ISNULL(a.EATTRIBUTE7,'') ='' )";
  273. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  274. }
  275. /// <summary>
  276. /// 点击生成条码
  277. /// </summary>
  278. /// <param name="POCode">采购订单</param>
  279. /// <param name="PORow">采购订单行</param>
  280. /// <param name="WorkPoint">多站点</param>
  281. /// 已改
  282. /// <returns></returns>
  283. public DataTable GetSubGridJsonByCreate(string POCode, string PORow, string WorkPoint)
  284. {
  285. DataTable dt = new DataTable();
  286. //var queryParam = queryJson.ToJObject();
  287. List<DbParameter> parameter = new List<DbParameter>();
  288. string sql = @"SELECT a.ID, a.POCode,a.Sequence, CONVERT(NVARCHAR(50),a.CreateDateTime,23) as PODate,a.ExtensionID,a.VenCode,mm.VenName,a.InvCode,
  289. (a.Quantity-ISNULL(potp.Quantity,0)-ISNULL(bb.LOTQTY,0)+isnull(cc.NGQTY,0)+isnull(dd.returnqty,0)) as thisCreateQty,
  290. b.InvName,b.InvStd,b.InvDesc,b.InvUnit,a.Quantity,isnull(a.InQuantity,0) as InQty,a.WorkPoint,ISNULL(bb.LOTQTY,0) AS CreatedQty,
  291. isnull(cc.NGQTY,0) AS RefuseLotQty,isnull(dd.returnqty,0) AS BackLotQty,ISNULL(ee.repairqty,0) AS RepairQty,
  292. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,2)) as EffectiveDays ,
  293. CAST( a.Amount as DECIMAL(18,2)) as Amount
  294. FROM dbo.ICSPurchaseOrder a
  295. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  296. left join (
  297. SELECT b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY
  298. FROM ICSInventoryLot a
  299. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  300. WHERE (ISNULL(a.EATTRIBUTE1,'') ='' or ISNULL(a.EATTRIBUTE7,'') ='' )
  301. group by b.TransCode,b.TransSequence
  302. ) bb on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence
  303. left join ( select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  304. from ICSDeliveryNotice a
  305. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  306. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  307. group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3'
  308. ) cc on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence
  309. left join (
  310. select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty
  311. from ICSDeliveryNotice a
  312. left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
  313. group by b.POCode,b.Sequence,a.DNType
  314. having a.DNType='2' ) dd
  315. on a.POCode=dd.POCode and a.Sequence=dd.Sequence
  316. --LEFT JOIN (
  317. --SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
  318. --SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
  319. -- FROM dbo.ICSInventoryLot x
  320. -- LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  321. --left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
  322. --WHERE ISNULL(x.EATTRIBUTE1,'')=''
  323. --GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
  324. -- ) c ON a.POCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
  325. LEFT JOIN (SELECT c.TransCode,c.TransSequence,
  326. 0 AS repairqty,a.WorkPoint
  327. FROM ICSASNDetail a
  328. LEFT JOIN ICSInventoryLot b ON a.LotNO = b.LotNO AND a.WorkPoint = b.WorkPoint
  329. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo and b.WorkPoint=c.WorkPoint
  330. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  331. ) ee ON a.POCode = ee.TransCode AND a.Sequence = ee.TransSequence AND a.WorkPoint = ee.WorkPoint
  332. left join ICSVendor mm on a.VenCode=mm.VenCode
  333. LEFT JOIN po_temp potp ON a.pocode=potp.pocode AND a.Sequence=potp.pocodeseq
  334. WHERE 1 =1
  335. and a.POCode='" + POCode + "' and a.Sequence='" + PORow + "'";
  336. sql += " and a.WorkPoint='" + WorkPoint + "'";
  337. return Repository().FindTableBySql(sql.ToString());
  338. }
  339. public DataTable GetSubGridJsonByCreateBYMore(string POCode, string PORow, string WorkPoint)
  340. {
  341. DataTable dt = new DataTable();
  342. //var queryParam = queryJson.ToJObject();
  343. List<DbParameter> parameter = new List<DbParameter>();
  344. string sql = @"SELECT a.ID, a.POCode,a.Sequence, CONVERT(NVARCHAR(50),a.CreateDateTime,23) as PODate,a.ExtensionID,a.VenCode,mm.VenName,a.InvCode,
  345. (a.Quantity-ISNULL(potp.Quantity,0)-ISNULL(bb.LOTQTY,0)+isnull(cc.NGQTY,0)+isnull(dd.returnqty,0)) as thisCreateQty,
  346. b.InvName,b.InvStd,b.InvDesc,b.InvUnit,a.Quantity,isnull(a.InQuantity,0) as InQty,a.WorkPoint,ISNULL(bb.LOTQTY,0) AS CreatedQty,
  347. isnull(cc.NGQTY,0) AS RefuseLotQty,isnull(dd.returnqty,0) AS BackLotQty,ISNULL(ee.repairqty,0) AS RepairQty,
  348. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,2)) as EffectiveDays ,
  349. CAST( a.Amount as DECIMAL(18,2)) as Amount
  350. FROM dbo.ICSPurchaseOrder a
  351. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  352. LEFT JOIN (
  353. SELECT ee.TransCode,ee.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
  354. FROM ICSFinishedProductShipment ee
  355. WHERE ee.Type='4'
  356. group by ee.TransCode,ee.TransSequence,ee.WorkPoint ) bb
  357. on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
  358. left join ( select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  359. from ICSDeliveryNotice a
  360. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  361. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  362. group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3'
  363. ) cc on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence
  364. left join (
  365. select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty
  366. from ICSDeliveryNotice a
  367. left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
  368. group by b.POCode,b.Sequence,a.DNType
  369. having a.DNType='2' ) dd
  370. on a.POCode=dd.POCode and a.Sequence=dd.Sequence
  371. --LEFT JOIN (
  372. --SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
  373. --SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
  374. -- FROM dbo.ICSInventoryLot x
  375. -- LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  376. --left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
  377. --WHERE ISNULL(x.EATTRIBUTE1,'')=''
  378. --GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
  379. -- ) c ON a.POCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
  380. LEFT JOIN (SELECT c.TransCode,c.TransSequence,
  381. 0 AS repairqty,a.WorkPoint
  382. FROM ICSASNDetail a
  383. LEFT JOIN ICSInventoryLot b ON a.LotNO = b.LotNO AND a.WorkPoint = b.WorkPoint
  384. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo and b.WorkPoint=c.WorkPoint
  385. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  386. ) ee ON a.POCode = ee.TransCode AND a.Sequence = ee.TransSequence AND a.WorkPoint = ee.WorkPoint
  387. left join ICSVendor mm on a.VenCode=mm.VenCode
  388. LEFT JOIN po_temp potp ON a.pocode=potp.pocode AND a.Sequence=potp.pocodeseq
  389. WHERE 1 =1
  390. and a.POCode='" + POCode + "' and a.Sequence='" + PORow + "'";
  391. sql += " and a.WorkPoint='" + WorkPoint + "'";
  392. return Repository().FindTableBySql(sql.ToString());
  393. }
  394. /// <summary>
  395. /// 点击生成条码
  396. /// </summary>
  397. /// <param name="POCode">采购订单</param>
  398. /// <param name="PORow">采购订单行</param>
  399. /// <param name="WorkPoint">多站点</param>
  400. /// 已改
  401. /// 拒收数量取值变更
  402. /// <returns></returns>
  403. public DataTable GetSubGridJsonByCreateWeiWai(string OOCode, string Sequence, string WorkPoint)
  404. {
  405. DataTable dt = new DataTable();
  406. //var queryParam = queryJson.ToJObject();
  407. //string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  408. List<DbParameter> parameter = new List<DbParameter>();
  409. string sql = @"
  410. SELECT a.ID, pp.Enable,a.OOCode,a.Sequence,CAST( a.Amount as DECIMAL(18,2)) as Amount, CONVERT(NVARCHAR(50),a.CreateDateTime,23) as PODate,a.ExtensionID,a.VenCode,mm.VenName,a.InvCode,
  411. (a.Quantity-ISNULL(bb.LOTQTY,0)+isnull(cc.NGQTY,0)+isnull(dd.returnqty,0)) as thisCreateQty,
  412. b.InvName,b.InvStd,b.InvDesc,b.InvUnit,a.Quantity,isnull(a.InQuantity,0) as InQty,a.WorkPoint,ISNULL(bb.LOTQTY,0) AS CreatedQty,
  413. isnull(cc.NGQTY,0) AS RefuseLotQty,isnull(dd.returnqty,0) AS BackLotQty,ISNULL(ee.repairqty,0) AS RepairQty,
  414. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,2)) as EffectiveDays
  415. FROM dbo.ICSOutsourcingOrder a
  416. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  417. left join (
  418. SELECT b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY
  419. FROM ICSInventoryLot a
  420. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
  421. WHERE (ISNULL(a.EATTRIBUTE1,'') ='' or ISNULL(a.EATTRIBUTE7,'') ='' )
  422. group by b.TransCode,b.TransSequence
  423. ) bb on a.OOCode=bb.TransCode and a.Sequence=bb.TransSequence
  424. left join (
  425. select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  426. from ICSODeliveryNotice a
  427. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  428. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  429. group by c.TransCode,c.TransSequence,a.WorkPoint,ODNType having a.ODNType='3'
  430. ) cc on a.OOCode=cc.TransCode and a.Sequence=cc.TransSequence
  431. left join (
  432. select b.OOCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty
  433. from ICSODeliveryNotice a
  434. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID
  435. group by b.OOCode,b.Sequence,a.ODNType
  436. having a.ODNType='2' ) dd
  437. on a.OOCode=dd.OOCode and a.Sequence=dd.Sequence
  438. --LEFT JOIN (
  439. --SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
  440. --SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
  441. --FROM dbo.ICSInventoryLot x
  442. --LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  443. --left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
  444. --WHERE ISNULL(x.EATTRIBUTE1,'')=''
  445. --GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
  446. --) c ON a.OOCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
  447. LEFT JOIN (SELECT c.TransCode,c.TransSequence,
  448. 0 AS repairqty,a.WorkPoint
  449. FROM ICSOASNDetail a
  450. LEFT JOIN ICSInventoryLot b ON a.LotNO = b.LotNO AND a.WorkPoint = b.WorkPoint
  451. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo and b.WorkPoint=c.WorkPoint
  452. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  453. ) ee ON a.OOCode = ee.TransCode AND a.Sequence = ee.TransSequence AND a.WorkPoint = ee.WorkPoint
  454. left join ICSVendor mm on a.VenCode=mm.VenCode
  455. left join ICSConfiguration pp on pp.Code='CompleteVerification004'
  456. WHERE 1 =1
  457. and a.OOCode='" + OOCode + "' and a.Sequence='" + Sequence + "'";
  458. sql += " and a.WorkPoint='" + WorkPoint + "'";
  459. return Repository().FindTableBySql(sql.ToString());
  460. }
  461. public DataTable GetSubGridJsonByCreateWeiWaiByMore(string OOCode, string Sequence, string WorkPoint)
  462. {
  463. DataTable dt = new DataTable();
  464. //var queryParam = queryJson.ToJObject();
  465. //string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  466. List<DbParameter> parameter = new List<DbParameter>();
  467. string sql = @"
  468. SELECT a.ID, pp.Enable,a.OOCode,a.Sequence,CAST( a.Amount as DECIMAL(18,2)) as Amount, CONVERT(NVARCHAR(50),a.CreateDateTime,23) as PODate,a.ExtensionID,a.VenCode,mm.VenName,a.InvCode,
  469. (a.Quantity-ISNULL(bb.LOTQTY,0)+isnull(cc.NGQTY,0)+isnull(dd.returnqty,0)) as thisCreateQty,
  470. b.InvName,b.InvStd,b.InvDesc,b.InvUnit,a.Quantity,isnull(a.InQuantity,0) as InQty,a.WorkPoint,ISNULL(bb.LOTQTY,0) AS CreatedQty,
  471. isnull(cc.NGQTY,0) AS RefuseLotQty,isnull(dd.returnqty,0) AS BackLotQty,ISNULL(ee.repairqty,0) AS RepairQty,
  472. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,2)) as EffectiveDays
  473. FROM dbo.ICSOutsourcingOrder a
  474. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  475. LEFT JOIN (
  476. SELECT ee.TransCode,ee.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
  477. FROM ICSFinishedProductShipment ee
  478. WHERE ee.Type='6'
  479. group by ee.TransCode,ee.TransSequence,ee.WorkPoint) bb
  480. on a.OOCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
  481. left join (
  482. select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  483. from ICSODeliveryNotice a
  484. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  485. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  486. group by c.TransCode,c.TransSequence,a.WorkPoint,ODNType having a.ODNType='3'
  487. ) cc on a.OOCode=cc.TransCode and a.Sequence=cc.TransSequence
  488. left join (
  489. select b.OOCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty
  490. from ICSODeliveryNotice a
  491. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID
  492. group by b.OOCode,b.Sequence,a.ODNType
  493. having a.ODNType='2' ) dd
  494. on a.OOCode=dd.OOCode and a.Sequence=dd.Sequence
  495. --LEFT JOIN (
  496. --SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
  497. --SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
  498. --FROM dbo.ICSInventoryLot x
  499. --LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
  500. --left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
  501. --WHERE ISNULL(x.EATTRIBUTE1,'')=''
  502. --GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
  503. --) c ON a.OOCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
  504. LEFT JOIN (SELECT c.TransCode,c.TransSequence,
  505. 0 AS repairqty,a.WorkPoint
  506. FROM ICSOASNDetail a
  507. LEFT JOIN ICSInventoryLot b ON a.LotNO = b.LotNO AND a.WorkPoint = b.WorkPoint
  508. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo and b.WorkPoint=c.WorkPoint
  509. GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
  510. ) ee ON a.OOCode = ee.TransCode AND a.Sequence = ee.TransSequence AND a.WorkPoint = ee.WorkPoint
  511. left join ICSVendor mm on a.VenCode=mm.VenCode
  512. left join ICSConfiguration pp on pp.Code='CompleteVerification'
  513. WHERE 1 =1
  514. and a.OOCode='" + OOCode + "' and a.Sequence='" + Sequence + "'";
  515. sql += " and a.WorkPoint='" + WorkPoint + "'";
  516. return Repository().FindTableBySql(sql.ToString());
  517. }
  518. /// <summary>
  519. /// 自动生成批次信息
  520. /// </summary>
  521. /// <param name="InvCode"></param>
  522. /// <param name="WorkPoint"></param>
  523. /// <returns></returns>
  524. public DataTable GetVendorLotNo(string InvCode, string WorkPoint)
  525. {
  526. DataTable dt = new DataTable();
  527. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  528. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  529. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  530. string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
  531. //var queryParam = queryJson.ToJObject();
  532. //List<DbParameter> parameter = new List<DbParameter>();
  533. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  534. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  535. return Repository().FindTableBySql(sql.ToString());
  536. }
  537. public string GetPoStatus(string POCode, string PORow)
  538. {
  539. string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  540. DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  541. string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  542. string DBName = dtU9.Rows[0]["DBName"].ToString();
  543. string msg = "";
  544. string U9ConnStr = ConfigurationManager.ConnectionStrings["U9connstr"].ConnectionString;
  545. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  546. string sql = string.Format(@"select a.docno,b.DocLineNo,b.status,d.code 组织
  547. from [{0}].{1}.dbo.PM_PurchaseOrder A
  548. LEFT JOIN [{0}].{1}.dbo.PM_POLine B ON A.ID=B.PurchaseOrder and a.Org=b.CurrentOrg
  549. LEFT JOIN [{0}].{1}.dbo.pm_poshipline C ON B.ID=C.poline and a.Org=c.CurrentOrg
  550. left join [{0}].{1}.dbo.Base_Organization d with (nolock) on a.org=d.id
  551. left join [{0}].{1}.dbo.Base_Organization_trl e with (nolock) on d.id=e.ID
  552. WHERE d.code='" + WorkPoint + "'and a.docno='" + POCode + "' and b.doclineno='" + PORow + "'", U9IP, DBName);
  553. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  554. if (dt != null && dt.Rows.Count > 0)
  555. {
  556. string poStatus = dt.Rows[0]["status"].ToString();
  557. if (poStatus != "2")
  558. {
  559. msg = "该订单行不是审核状态,无法生成条码!";
  560. }
  561. }
  562. return msg;
  563. }
  564. /// <summary>
  565. /// 生成条码
  566. /// </summary>
  567. /// <param name="POCode"></param>
  568. /// <param name="PORow"></param>
  569. /// <param name="keyValue"></param>
  570. /// 已改
  571. /// <returns></returns>
  572. public int CreateItemLotNo(string POCode, string PORow, string keyValue, string WorkPoint, string IsEable)
  573. {
  574. int RowNumber = Convert.ToInt32(SqlHelper.GetItemsDetails("PORowZero"));
  575. var queryParam = keyValue.ToJObject();
  576. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  577. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  578. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  579. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  580. decimal PageNUM = Convert.ToDecimal(queryParam["PageNUM"].ToString());
  581. decimal Quantity = Convert.ToDecimal(queryParam["Quantity"].ToString());
  582. decimal LOTQTY = minPackQty;
  583. string VenCode = GetVendorCode(POCode, PORow, WorkPoint);
  584. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");
  585. string sql = string.Empty;
  586. //string VendorLot = queryParam["VendorLot"].ToString();
  587. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  588. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  589. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  590. string sqls = string.Empty;
  591. string Colspan = "";
  592. string str1 = "";
  593. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  594. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  595. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  596. if (ExtensionID == null)
  597. {
  598. str1 = Guid.NewGuid().ToString();
  599. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  600. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  601. str1, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(),
  602. queryParam["Version"].ToString(), queryParam["Brand"].ToString(),
  603. queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(),
  604. queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(),
  605. queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(),
  606. queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(),
  607. queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  608. MUSER, MUSERNAME, WorkPoint);
  609. }
  610. else if (ExtensionID != null)
  611. {
  612. str1 = ExtensionID.ToString();
  613. }
  614. if (IsEable == "" || IsEable == "0")
  615. {
  616. for (int i = 0; i < createPageCount; i++)
  617. {
  618. if (i + 1 == createPageCount)
  619. {
  620. if (minPackQty * createPageCount > thisCreateQty)
  621. {
  622. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  623. }
  624. }
  625. string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + Convert.ToDateTime(PRODUCTDATE).ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
  626. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 3);
  627. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  628. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  629. LotNo, POCode, PORow, MUSER, MUSERNAME, WorkPoint);
  630. sql += string.Format(@" insert into ICSInventoryLot
  631. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  632. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  633. select
  634. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','200','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  635. from ICSPurchaseOrder where POCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  636. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, POCode, PORow, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  637. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  638. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  639. sql += "\r\n";
  640. }
  641. }
  642. else
  643. {
  644. var CartonCount = Math.Ceiling(createPageCount / PageNUM);
  645. decimal Count = 0;
  646. for (int j = 0; j < PageNUM; j++)
  647. {
  648. object CARID = Guid.NewGuid();
  649. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  650. sql += @"INSERT INTO dbo.ICSContainer
  651. ( ID,ContainerCode ,
  652. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  653. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM','" + CARID + "','" + Carton + "',1,1,1,1)";
  654. for (int i = 0; i < CartonCount; i++)
  655. {
  656. if (Count >= Quantity)
  657. {
  658. break;
  659. }
  660. if (j + 1 == PageNUM)
  661. {
  662. if (minPackQty * CartonCount * CartonCount > thisCreateQty)
  663. {
  664. LOTQTY = thisCreateQty - Count;
  665. }
  666. }
  667. string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + Convert.ToDateTime(PRODUCTDATE).ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
  668. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 4);
  669. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  670. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
  671. LotNo, POCode, PORow, MUSER, MUSERNAME, WorkPoint);
  672. sql += string.Format(@" insert into ICSInventoryLot
  673. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  674. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  675. select
  676. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','200','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  677. from ICSPurchaseOrder where POCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  678. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, POCode, PORow, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString(), queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  679. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  680. sql += "\r\n";
  681. sql += string.Format(@"INSERT INTO dbo.ICSContainerLot
  682. ( ID ,ContainerID ,LotNo ,
  683. MUSER ,MUSERName ,MTIME ,WorkPoint )
  684. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' )", CARID, LotNo, MUSER, MUSERNAME, WorkPoint);
  685. Count = Count + LOTQTY;
  686. }
  687. }
  688. }
  689. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  690. return count;
  691. }
  692. /// <summary>
  693. /// 生成条码
  694. /// </summary>
  695. /// <param name="POCode"></param>
  696. /// <param name="PORow"></param>
  697. /// <param name="keyValue"></param>
  698. /// 已改
  699. /// <returns></returns>
  700. public int SubmitFormWeiWai(string OOCode, string Sequence, string keyValue, string WorkPoint, string IsEable)
  701. {
  702. int RowNumber = Convert.ToInt32(SqlHelper.GetItemsDetails("PORowZero"));
  703. var queryParam = keyValue.ToJObject();
  704. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  705. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  706. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  707. decimal PageNUM = Convert.ToDecimal(queryParam["PageNUM"].ToString());
  708. decimal Quantity = Convert.ToDecimal(queryParam["Quantity"].ToString());
  709. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  710. decimal LOTQTY = minPackQty;
  711. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  712. string VenCode = GetVendorCodeWW(OOCode, Sequence, WorkPoint);
  713. //string Pre = OOCode + Sequence.PadLeft(RowNumber, '0');
  714. string sql = string.Empty;
  715. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");
  716. //string VendorLot = queryParam["VendorLot"].ToString();
  717. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  718. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  719. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  720. string sqls = string.Empty;
  721. string Colspan = "";
  722. string str1 = "";
  723. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  724. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}'", Colspan);
  725. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  726. if (ExtensionID == null)
  727. {
  728. str1 = Guid.NewGuid().ToString();
  729. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  730. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  731. str1, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  732. MUSER, MUSERNAME, WorkPoint);
  733. }
  734. else if (ExtensionID != null)
  735. {
  736. str1 = ExtensionID.ToString();
  737. }
  738. if (IsEable == "" || IsEable == "0")
  739. {
  740. for (int i = 0; i < createPageCount; i++)
  741. {
  742. if (i + 1 == createPageCount)
  743. {
  744. if (minPackQty * createPageCount > thisCreateQty)
  745. {
  746. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  747. }
  748. }
  749. string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + Convert.ToDateTime(PRODUCTDATE).ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
  750. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
  751. // sqls= string.Format(@"select * from ICSInventoryLotDetail where TransCode='{0}' and TransSequence='{1}' )",
  752. // POCode, PORow);
  753. //DataTable dtASN = SqlHelper.GetDataTableBySql(sqls);
  754. //if (dtASN == null && dtASN.Rows.Count <= 0)
  755. //{
  756. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  757. Values('{0}','{1}','{2}','{3}','{4}',getdate(),{5} )",
  758. LotNo, OOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  759. //}
  760. //if (SqlHelper.ExecuteNonQuery(sqls)>0)
  761. //{
  762. sql += string.Format(@" insert into ICSInventoryLot
  763. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  764. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  765. select
  766. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),{5},'{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  767. from ICSOutsourcingOrder where OOCode='{6}' and Sequence='{7}' and WorkPoint={5} ",
  768. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString(), queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  769. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  770. sql += "\r\n";
  771. //}
  772. }
  773. }
  774. else
  775. {
  776. var CartonCount = Math.Ceiling(createPageCount / PageNUM);
  777. decimal Count = 0;
  778. for (int j = 0; j < PageNUM; j++)
  779. {
  780. object CARID = Guid.NewGuid();
  781. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  782. sql += @"INSERT INTO dbo.ICSContainer
  783. ( ID,ContainerCode ,
  784. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  785. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM','" + CARID + "','" + Carton + "',1,1,1,1)";
  786. for (int i = 0; i < CartonCount; i++)
  787. {
  788. if (Count >= Quantity)
  789. {
  790. break;
  791. }
  792. if (j + 1 == PageNUM)
  793. {
  794. if (minPackQty * CartonCount * CartonCount > thisCreateQty)
  795. {
  796. LOTQTY = thisCreateQty - Count;
  797. }
  798. }
  799. string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + Convert.ToDateTime(PRODUCTDATE).ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
  800. string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 4);
  801. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  802. Values('{0}','{1}','{2}','{3}','{4}',getdate(),{5} )",
  803. LotNo, OOCode, Sequence, MUSER, MUSERNAME, WorkPoints);
  804. sql += string.Format(@" insert into ICSInventoryLot
  805. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  806. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  807. select
  808. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),{5},'{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  809. from ICSOutsourcingOrder where OOCode='{6}' and Sequence='{7}' and WorkPoint={5} ",
  810. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString(), queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  811. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  812. sql += "\r\n";
  813. sql += string.Format(@"INSERT INTO dbo.ICSContainerLot
  814. ( ID ,ContainerID ,LotNo ,
  815. MUSER ,MUSERName ,MTIME ,WorkPoint )
  816. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' )", CARID, LotNo, MUSER, MUSERNAME, WorkPoint);
  817. Count = Count + LOTQTY;
  818. }
  819. }
  820. }
  821. int count = SqlHelper.ExecuteNonQuery(sql);
  822. return count;
  823. }
  824. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  825. {
  826. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  827. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  828. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  829. }
  830. public string GetVendorCode(string POCode, string PORow, string WorkPoint)
  831. {
  832. string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPurchaseOrder
  833. WHERE POCode='{0}' AND Sequence='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
  834. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  835. string VenCode = string.Empty;
  836. if (dt != null && dt.Rows.Count > 0)
  837. {
  838. VenCode = dt.Rows[0][0].ToString();
  839. }
  840. return VenCode;
  841. }
  842. public string GetVendorCodeWW(string POCode, string PORow, string WorkPoint)
  843. {
  844. string sql = string.Format(@"SELECT VenCode FROM dbo.ICSOutsourcingOrder
  845. WHERE OOCode='{0}' AND Sequence='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
  846. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  847. string VenCode = string.Empty;
  848. if (dt != null && dt.Rows.Count > 0)
  849. {
  850. VenCode = dt.Rows[0][0].ToString();
  851. }
  852. return VenCode;
  853. }
  854. /// <summary>
  855. /// 删除条码
  856. /// </summary>
  857. /// <param name="keyValue"></param>
  858. /// <returns></returns>
  859. public string DeleteItemLot(string keyValue, string WorkPoint)
  860. {
  861. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  862. string msg = string.Empty;
  863. string sql = string.Format(@"SELECT * FROM dbo.ICSASNDetail
  864. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  865. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  866. if (dtASN != null && dtASN.Rows.Count > 0)
  867. {
  868. msg = "所选条码已有加入送货单中,请先在送货单中删除!";
  869. }
  870. sql = string.Format(@"SELECT * FROM dbo.ICSOASNDetail
  871. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  872. DataTable dtOAASN = SqlHelper.GetDataTableBySql(sql);
  873. if (dtOAASN != null && dtOAASN.Rows.Count > 0)
  874. {
  875. msg = "所选条码已有加入送货单中,请先在送货单中删除!";
  876. }
  877. sql = string.Format(@"SELECT * FROM dbo.ICSContainerLot WHERE LotNO IN
  878. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  879. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  880. if (dtCarton != null && dtCarton.Rows.Count > 0)
  881. {
  882. msg += "所选条码已有加入箱号中,请先在箱号中删除!";
  883. }
  884. if (string.IsNullOrEmpty(msg))
  885. {
  886. sql = string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  887. SqlHelper.ExecuteNonQuery(sql);
  888. }
  889. return msg;
  890. //keyValue = keyValue.Substring(1, keyValue.Length - 2);
  891. //string sql = @"DELETE FROM dbo.ICSITEMLot WHERE ID IN (" + keyValue.TrimEnd(',') + ")";
  892. //int i = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
  893. //return i;
  894. }
  895. public DataTable SelectICSExtensionEnable(string BeginTime, string EndTime)
  896. {
  897. string sql = @"select ColCode from ICSExtensionEnable
  898. where Enable=0
  899. order by cast(EATTRIBUTE1 as int)";
  900. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  901. return dt;
  902. }
  903. public DataTable SelectICSInventoryEnable(string InvCode)
  904. {
  905. string sql = @"SELECT case when AmountEnable=1 then '是' else '否' end as AmountEnable
  906. FROM dbo.ICSInventory WHERE InvCode='" + InvCode + "'";
  907. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  908. return dt;
  909. }
  910. public DataTable SelectICSColumnEnableForLotEnable(string WorkPoint)
  911. {
  912. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  913. string sql = @" select ColumnCode from ICSColumnEnable
  914. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoint + "' order by cast(Code as int)";
  915. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  916. return dt;
  917. }
  918. public object GetQiSetNum(string keyValue)
  919. {
  920. decimal Num = 0;
  921. string msg = "";
  922. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  923. string result = HttpPost(APIURL, keyValue);
  924. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  925. string MessAge = Obj["Message"].ToString();
  926. string Success = Obj["Success"].ToString();
  927. if (Success.ToUpper() == "FALSE")
  928. {
  929. msg = MessAge;
  930. }
  931. else
  932. {
  933. if (MessAge == "U9")
  934. {
  935. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  936. int date = Convert.ToInt32(Date);
  937. Num = date;
  938. }
  939. else
  940. {
  941. if (msg == "")
  942. {
  943. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  944. foreach (var item in res)
  945. {
  946. JObject jo = (JObject)item;
  947. //var aa= jo["min_lotqty"].ToString();
  948. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  949. }
  950. }
  951. }
  952. }
  953. var Header = new
  954. {
  955. msg = msg,
  956. Num = Num,
  957. };
  958. return Header;
  959. }
  960. public DataTable GetWWComplete(string BeginTime, string EndTime)
  961. {
  962. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004'";
  963. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  964. return dt;
  965. }
  966. public DataTable GetLoadShowForColumn(string WorkPoint)
  967. {
  968. //string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  969. string sql = @"
  970. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoint + "' order by cast(code as int) ";
  971. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  972. return dt;
  973. }
  974. //接口api解析
  975. public static string HttpPost(string url, string body)
  976. {
  977. try
  978. {
  979. Encoding encoding = Encoding.UTF8;
  980. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  981. request.Method = "POST";
  982. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  983. request.ContentType = "application/json; charset=utf-8";
  984. byte[] buffer = encoding.GetBytes(body);
  985. request.ContentLength = buffer.Length;
  986. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  987. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  988. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  989. {
  990. return reader.ReadToEnd();
  991. }
  992. }
  993. catch (WebException ex)
  994. {
  995. throw new Exception(ex.Message);
  996. }
  997. }
  998. public DataTable GetInventoryIsEnable(string InvCode, string WorkPoint)
  999. {
  1000. DataTable dt = new DataTable();
  1001. //var queryParam = queryJson.ToJObject();
  1002. List<DbParameter> parameter = new List<DbParameter>();
  1003. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  1004. string sql = @"SELECT EATTRIBUTE10 FROM ICSInventory WHERE invcode='" + InvCode + "'";
  1005. return Repository().FindTableBySql(sql.ToString());
  1006. }
  1007. public DataTable GetInvBatchEnable(string InvCode)
  1008. {
  1009. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1010. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint in({1})";
  1011. sql = string.Format(sql, InvCode, WorkPoints);
  1012. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1013. return dt;
  1014. }
  1015. public DataTable GetVendorBatchBYInvCodeZZ(string InvCode, string WorkPoint)
  1016. {
  1017. DataTable dataTable = new DataTable();
  1018. string text = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  1019. text = string.Format(text, InvCode, WorkPoint);
  1020. DataTable dataTableBySql = SqlHelper.GetDataTableBySql(text, new SqlParameter[0]);
  1021. if (dataTableBySql.Rows.Count > 0)
  1022. {
  1023. string zZNumber = SqlHelper.GetZZNumber(dataTableBySql.Rows[0]["EATTRIBUTE1"].ToString());
  1024. string text2 = zZNumber + DateTime.Now.ToString("yyyyMMdd");
  1025. string text3 = string.Concat(new string[]
  1026. {
  1027. "EXEC Addins_GetSerialCode '",
  1028. WorkPoint,
  1029. "','ICSInventoryLot','BatchCode','",
  1030. text2,
  1031. "',3"
  1032. });
  1033. return base.Repository().FindTableBySql(text3.ToString());
  1034. }
  1035. throw new Exception("物料档案不存在!!!");
  1036. }
  1037. public DataTable GetGridJsonNOGK(string queryJson, ref Pagination jqgridparam)
  1038. {
  1039. string ParentId = "";
  1040. DataTable dt = new DataTable();
  1041. var queryParam = queryJson.ToJObject();
  1042. List<DbParameter> parameter = new List<DbParameter>();
  1043. string sql = @"SELECT a.ID, a.POCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,
  1044. a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
  1045. b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode
  1046. ,CreatePerson,e.ProjectCode
  1047. FROM dbo.ICSPurchaseOrder a
  1048. LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
  1049. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  1050. LEFT JOIN (
  1051. SELECT ee.TransCode,ee.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
  1052. FROM ICSFinishedProductShipment ee
  1053. WHERE ee.Type='4'
  1054. group by ee.TransCode,ee.TransSequence,ee.WorkPoint ) bb
  1055. on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
  1056. left join (
  1057. select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
  1058. from ICSDeliveryNotice a
  1059. left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
  1060. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  1061. group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3') cc
  1062. on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
  1063. left join (select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
  1064. FROM ICSDeliveryNotice a
  1065. left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
  1066. group by b.POCode,b.Sequence,a.DNType,a.WorkPoint having a.DNType='2' ) dd
  1067. on a.POCode=dd.POCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
  1068. left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
  1069. WHERE 1=1 AND a.ReleaseState = '1' ";
  1070. if (!string.IsNullOrWhiteSpace(queryJson))
  1071. {
  1072. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  1073. {
  1074. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  1075. }
  1076. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1077. {
  1078. sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1079. }
  1080. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  1081. {
  1082. sql += " and CONVERT(NVARCHAR(15),a.CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
  1083. }
  1084. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  1085. {
  1086. sql += " and CONVERT(NVARCHAR(15),a.CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
  1087. }
  1088. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1089. {
  1090. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1091. }
  1092. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1093. {
  1094. sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  1095. }
  1096. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1097. {
  1098. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  1099. }
  1100. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1101. {
  1102. string POStatus = queryParam["POStatus"].ToString();
  1103. if (POStatus == "0")
  1104. {
  1105. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1106. }
  1107. else if (POStatus == "1")
  1108. {
  1109. sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  1110. }
  1111. else
  1112. {
  1113. sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  1114. }
  1115. }
  1116. if (!string.IsNullOrWhiteSpace(queryParam["POCodeStatus"].ToString()))
  1117. {
  1118. string POCodeStatus = queryParam["POCodeStatus"].ToString();
  1119. if (POCodeStatus == "0")
  1120. {
  1121. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1122. }
  1123. else if (POCodeStatus == "1")
  1124. {
  1125. sql += " and a.Status='3'";
  1126. }
  1127. else
  1128. {
  1129. sql += " and a.Status<>'3'";
  1130. }
  1131. }
  1132. }
  1133. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1134. {
  1135. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1136. }
  1137. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1138. {
  1139. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1140. }
  1141. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1142. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  1143. {
  1144. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  1145. }
  1146. else
  1147. {
  1148. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1149. }
  1150. }
  1151. /// <summary>
  1152. /// 子表查询(不受管控条码)
  1153. /// </summary>
  1154. /// <param name="queryJson"></param>
  1155. /// <param name="jqgridparam"></param>
  1156. /// <returns></returns>
  1157. public DataTable GetSubGridJsonNOGK(string POCode, string PORow, string WorkPoint, ref Pagination jqgridparam)
  1158. {
  1159. DataTable dt = new DataTable();
  1160. //var queryParam = queryJson.ToJObject();
  1161. List<DbParameter> parameter = new List<DbParameter>();
  1162. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1163. string sql = @"SELECT ID, TransCode,TransSequence,LotNo,Quantity,MUSERName,ProductDate,WorkPoint
  1164. FROM ICSFinishedProductShipment
  1165. WHERE TransCode='" + POCode + "' AND TransSequence='" + PORow + "' and Type='4' and WorkPoint in ('" + WorkPoint + "')";
  1166. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1167. }
  1168. /// <summary>
  1169. /// 子表查询(不受管控条码)
  1170. /// </summary>
  1171. /// <param name="queryJson"></param>
  1172. /// <param name="jqgridparam"></param>
  1173. /// <returns></returns>
  1174. public DataTable GetSubGridJsonWeiWaiNOGK(string POCode, string PORow, string WorkPoint, ref Pagination jqgridparam)
  1175. {
  1176. DataTable dt = new DataTable();
  1177. //var queryParam = queryJson.ToJObject();
  1178. List<DbParameter> parameter = new List<DbParameter>();
  1179. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1180. string sql = @"SELECT ID, TransCode,TransSequence,LotNo,Quantity,MUSERName,ProductDate,WorkPoint
  1181. FROM ICSFinishedProductShipment
  1182. WHERE TransCode='" + POCode + "' AND TransSequence='" + PORow + "' and Type='6' and WorkPoint in ('" + WorkPoint + "')";
  1183. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1184. }
  1185. /// <summary>
  1186. /// 生成条码
  1187. /// </summary>
  1188. /// <param name="POCode"></param>
  1189. /// <param name="PORow"></param>
  1190. /// <param name="keyValue"></param>
  1191. /// 已改
  1192. /// <returns></returns>
  1193. public int SubmitFormNOGK(string POCode, string PORow, string keyValue, string WorkPoint, string IsEable)
  1194. {
  1195. int RowNumber = Convert.ToInt32(SqlHelper.GetItemsDetails("PORowZero"));
  1196. var queryParam = keyValue.ToJObject();
  1197. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1198. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1199. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1200. decimal PageNUM = Convert.ToDecimal(queryParam["PageNUM"].ToString());
  1201. decimal Quantity = Convert.ToDecimal(queryParam["Quantity"].ToString());
  1202. string InvCode = queryParam["InvCode"].ToString();
  1203. decimal LOTQTY = minPackQty;
  1204. string Pre = POCode;
  1205. string sql = string.Empty;
  1206. //string VendorLot = queryParam["VendorLot"].ToString();
  1207. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1208. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1209. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1210. string EATTRIBUTE3 = queryParam["EATTRIBUTE3"].ToString();
  1211. string EATTRIBUTE4 = queryParam["EATTRIBUTE4"].ToString();
  1212. string EATTRIBUTE5 = queryParam["EATTRIBUTE5"].ToString();
  1213. string str1 = "";
  1214. if (IsEable == "" || IsEable == "0")
  1215. {
  1216. for (int i = 0; i < createPageCount; i++)
  1217. {
  1218. if (i + 1 == createPageCount)
  1219. {
  1220. if (minPackQty * createPageCount > thisCreateQty)
  1221. {
  1222. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1223. }
  1224. }
  1225. //string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + DateTime.Now.ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
  1226. string LotNo = GetSerialCode(WorkPoint, "ICSFinishedProductShipment", "LotNo", Pre, 4);
  1227. sql += string.Format(@"INSERT INTO [dbo].[ICSFinishedProductShipment]
  1228. ([ID], [LotNo], [InvCode], [ProductDate], [ExpirationDate],
  1229. [Quantity], [Amount], [TransCode], [TransSequence],
  1230. [ExtensionID], [Type], [PrintTimes], [LastPrintUser],
  1231. [LastPrintTime], [MUSER], [MUSERName], [MTIME],
  1232. [WorkPoint], [EATTRIBUTE1], [EATTRIBUTE2],
  1233. [EATTRIBUTE3], [EATTRIBUTE4], [EATTRIBUTE5],
  1234. [EATTRIBUTE6], [EATTRIBUTE7], [EATTRIBUTE8],
  1235. [EATTRIBUTE9], [EATTRIBUTE10], [minPackQty])
  1236. VALUES (
  1237. NEWID(), N'{0}', N'{1}', GETDATE(), '{2}',
  1238. {3},0, N'{4}', N'{5}'
  1239. , NULL, N'4', NULL, NULL,
  1240. NULL, N'{6}', N'{7}', GETDATE(),
  1241. N'{8}', N'', NULL,
  1242. NULL, NULL, NULL,
  1243. NULL, NULL, N'{12}',
  1244. N'{11}', N'{10}', {9})", LotNo, InvCode, PRODUCTDATE, LOTQTY, POCode, PORow, MUSER, MUSERNAME, WorkPoint, minPackQty, EATTRIBUTE3, EATTRIBUTE4, EATTRIBUTE5);
  1245. }
  1246. }
  1247. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1248. return count;
  1249. }
  1250. /// <summary>
  1251. /// 删除条码
  1252. /// </summary>
  1253. /// <param name="keyValue"></param>
  1254. /// <returns></returns>
  1255. public string DeleteItemLotNOGK(string keyValue, string WorkPoint)
  1256. {
  1257. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1258. string msg = string.Empty;
  1259. string sql = string.Empty;
  1260. if (string.IsNullOrEmpty(msg))
  1261. {
  1262. sql = string.Format("DELETE FROM dbo.ICSFinishedProductShipment WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  1263. SqlHelper.ExecuteNonQuery(sql);
  1264. }
  1265. return msg;
  1266. }
  1267. public DataTable GetGridJsonWeiWaiNOGK(string queryJson, ref Pagination jqgridparam)
  1268. {
  1269. string ParentId = "";
  1270. DataTable dt = new DataTable();
  1271. var queryParam = queryJson.ToJObject();
  1272. List<DbParameter> parameter = new List<DbParameter>();
  1273. string sql = @" SELECT a.ID, a.OOCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,a.OODetailID,
  1274. a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
  1275. b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode,e.ProjectCode
  1276. FROM dbo.ICSOutsourcingOrder a
  1277. LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
  1278. LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  1279. LEFT JOIN (
  1280. SELECT ee.TransCode,ee.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
  1281. FROM ICSFinishedProductShipment ee
  1282. WHERE ee.Type='6'
  1283. group by ee.TransCode,ee.TransSequence,ee.WorkPoint) bb
  1284. on a.OOCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
  1285. left join (
  1286. select c.TransCode,c.TransSequence,sum(isnull(a.UnqualifiedQuantity,0)) NGQTY,a.WorkPoint
  1287. from ICSInspection a
  1288. left join ICSInventoryLot b on a.LotNo=b.LotNo
  1289. left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
  1290. group by c.TransCode,c.TransSequence,a.WorkPoint) cc
  1291. on a.OOCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
  1292. left join (select b.OOCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
  1293. FROM ICSODeliveryNotice a
  1294. left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID
  1295. group by b.OOCode,b.Sequence,a.ODNType,a.WorkPoint having a.ODNType='2' ) dd
  1296. on a.OOCode=dd.OOCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
  1297. left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
  1298. WHERE 1=1 AND a.ReleaseState = '1' ";
  1299. if (!string.IsNullOrWhiteSpace(queryJson))
  1300. {
  1301. if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
  1302. {
  1303. sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
  1304. }
  1305. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1306. {
  1307. sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1308. }
  1309. if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
  1310. {
  1311. sql += " and a.ReleaseDate >='" + queryParam["BeginDate"].ToString() + "' ";
  1312. }
  1313. if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
  1314. {
  1315. sql += " and a.ReleaseDate <='" + queryParam["EndDate"].ToString() + "'";
  1316. }
  1317. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1318. {
  1319. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  1320. }
  1321. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1322. {
  1323. sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
  1324. }
  1325. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1326. {
  1327. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
  1328. }
  1329. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1330. {
  1331. string POStatus = queryParam["POStatus"].ToString();
  1332. if (POStatus == "0")
  1333. {
  1334. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1335. }
  1336. else if (POStatus == "1")
  1337. {
  1338. sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  1339. }
  1340. else
  1341. {
  1342. sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
  1343. }
  1344. }
  1345. if (!string.IsNullOrWhiteSpace(queryParam["POCodeStatus"].ToString()))
  1346. {
  1347. string POCodeStatus = queryParam["POCodeStatus"].ToString();
  1348. if (POCodeStatus == "0")
  1349. {
  1350. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1351. }
  1352. else if (POCodeStatus == "1")
  1353. {
  1354. sql += " and a.Status='3'";
  1355. }
  1356. else
  1357. {
  1358. sql += " and a.Status<>'3'";
  1359. }
  1360. }
  1361. }
  1362. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1363. {
  1364. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1365. }
  1366. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1367. {
  1368. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1369. }
  1370. ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1371. if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
  1372. {
  1373. return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
  1374. }
  1375. else
  1376. {
  1377. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1378. }
  1379. }
  1380. /// <summary>
  1381. /// 生成条码
  1382. /// </summary>
  1383. /// <param name="POCode"></param>
  1384. /// <param name="PORow"></param>
  1385. /// <param name="keyValue"></param>
  1386. /// 已改
  1387. /// <returns></returns>
  1388. public int SubmitFormWeiWaiNOGK(string POCode, string PORow, string keyValue, string WorkPoint, string IsEable)
  1389. {
  1390. int RowNumber = Convert.ToInt32(SqlHelper.GetItemsDetails("PORowZero"));
  1391. var queryParam = keyValue.ToJObject();
  1392. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1393. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1394. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1395. decimal PageNUM = Convert.ToDecimal(queryParam["PageNUM"].ToString());
  1396. decimal Quantity = Convert.ToDecimal(queryParam["Quantity"].ToString());
  1397. string InvCode = queryParam["InvCode"].ToString();
  1398. decimal LOTQTY = minPackQty;
  1399. string Pre = POCode;
  1400. string sql = string.Empty;
  1401. //string VendorLot = queryParam["VendorLot"].ToString();
  1402. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1403. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1404. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1405. string EATTRIBUTE3 = queryParam["EATTRIBUTE3"].ToString();
  1406. string EATTRIBUTE4 = queryParam["EATTRIBUTE4"].ToString();
  1407. string EATTRIBUTE5= queryParam["EATTRIBUTE5"].ToString();
  1408. string str1 = "";
  1409. if (IsEable == "" || IsEable == "0")
  1410. {
  1411. for (int i = 0; i < createPageCount; i++)
  1412. {
  1413. if (i + 1 == createPageCount)
  1414. {
  1415. if (minPackQty * createPageCount > thisCreateQty)
  1416. {
  1417. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1418. }
  1419. }
  1420. //string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + DateTime.Now.ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
  1421. string LotNo = GetSerialCode(WorkPoint, "ICSFinishedProductShipment", "LotNo", Pre, 4);
  1422. sql += string.Format(@"INSERT INTO [dbo].[ICSFinishedProductShipment]
  1423. ([ID], [LotNo], [InvCode], [ProductDate], [ExpirationDate],
  1424. [Quantity], [Amount], [TransCode], [TransSequence],
  1425. [ExtensionID], [Type], [PrintTimes], [LastPrintUser],
  1426. [LastPrintTime], [MUSER], [MUSERName], [MTIME],
  1427. [WorkPoint], [EATTRIBUTE1], [EATTRIBUTE2],
  1428. [EATTRIBUTE3], [EATTRIBUTE4], [EATTRIBUTE5],
  1429. [EATTRIBUTE6], [EATTRIBUTE7], [EATTRIBUTE8],
  1430. [EATTRIBUTE9], [EATTRIBUTE10], [minPackQty])
  1431. VALUES (
  1432. NEWID(), N'{0}', N'{1}', GETDATE(), '{2}',
  1433. {3},0, N'{4}', N'{5}'
  1434. , NULL, N'6', NULL, NULL,
  1435. NULL, N'{6}', N'{7}', GETDATE(),
  1436. N'{8}', N'', NULL,
  1437. NULL, NULL, NULL,
  1438. NULL, NULL, N'{12}',
  1439. N'{11}', N'{10}', {9})", LotNo, InvCode, PRODUCTDATE, LOTQTY, POCode, PORow, MUSER, MUSERNAME, WorkPoint, minPackQty, EATTRIBUTE3, EATTRIBUTE4,EATTRIBUTE5);
  1440. }
  1441. }
  1442. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1443. return count;
  1444. }
  1445. }
  1446. }