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.

11653 lines
684 KiB

3 weeks ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using NFine.Code;
  6. using NFine.Repository;
  7. using System.Data.Common;
  8. using NFine.Domain._03_Entity.SRM;
  9. using System.Configuration;
  10. using System.Text;
  11. using System.Net;
  12. using Newtonsoft.Json.Linq;
  13. using Newtonsoft.Json;
  14. using System.IO;
  15. using System.Data.SqlClient;
  16. using System.Linq;
  17. using NFine.Application.Models;
  18. namespace NFine.Application.PNWMS
  19. {
  20. public class WMSCreateItemLotApp : RepositoryFactory<ICSVendor>
  21. {
  22. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  23. {
  24. DataTable dt = new DataTable();
  25. var queryParam = queryJson.ToJObject();
  26. List<DbParameter> parameter = new List<DbParameter>();
  27. object Figure = GetDecimalDigits();
  28. #region [SQL]
  29. string sql = @"select a.ID,y.MOCode,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  30. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  31. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  32. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  33. ,b.EffectiveEnable,b.EffectiveDays
  34. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  35. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  36. a.EATTRIBUTE9,a.EATTRIBUTE10
  37. from ICSMOApplyNegDetail a
  38. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  39. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  40. left join (
  41. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  42. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  43. where isnull(ee.EATTRIBUTE1,'')=''
  44. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  45. )c
  46. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  47. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  48. inner JOIN ICSMOPick x ON a.SourceDetailID=x.PickID AND a.WorkPoint=x.WorkPoint
  49. left JOIN ICSMO y ON x.MODetailID=y.MODetailID AND x.WorkPoint=y.WorkPoint
  50. where d.Type='1' and d.Status='2' ";
  51. sql = string.Format(sql, Figure);
  52. #endregion
  53. if (!string.IsNullOrWhiteSpace(queryJson))
  54. {
  55. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  56. {
  57. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  58. }
  59. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  60. {
  61. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  62. }
  63. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  64. {
  65. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  66. }
  67. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  68. {
  69. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  70. }
  71. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  72. {
  73. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  74. }
  75. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  76. {
  77. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  78. }
  79. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  80. {
  81. string POStatus = queryParam["POStatus"].ToString();
  82. if (POStatus == "0")
  83. {
  84. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  85. }
  86. else if (POStatus == "1")
  87. {
  88. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  89. }
  90. else
  91. {
  92. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  93. }
  94. }
  95. }
  96. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  97. {
  98. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  99. }
  100. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  101. {
  102. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  103. }
  104. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  105. }
  106. /// <summary>
  107. /// 领料子件信息
  108. /// </summary>
  109. /// <param name="MODetailID"></param>
  110. /// <param name="workpoint"></param>
  111. /// <param name="jqgridparam"></param>
  112. /// <returns></returns>
  113. public DataTable GetICSMOPick(string MODetailID, string workpoint, ref Pagination jqgridparam)
  114. {
  115. DataTable dt = new DataTable();
  116. List<DbParameter> parameter = new List<DbParameter>();
  117. object Figure = GetDecimalDigits();
  118. #region [SQL]
  119. string sql = @" SELECT b.InvCode,c.InvName,c.InvStd,InvUnit,b.ID,b.Quantity,b.IssueQuantity,d.WarehouseCode,d.WarehouseName FROM dbo.ICSMO a
  120. LEFT JOIN dbo.ICSMOPick b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint
  121. LEFT JOIN dbo.ICSInventory c ON b.InvCode=c.InvCode AND b.WorkPoint=c.WorkPoint
  122. left join dbo.ICSWarehouse d on b.WHCode=d.WarehouseCode and b.WorkPoint=d.WorkPoint
  123. WHERE a.MODetailID='{0}'
  124. ";
  125. sql = string.Format(sql, MODetailID);
  126. #endregion
  127. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  128. }
  129. public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, string isPrint, ref Pagination jqgridparam)
  130. {
  131. DataTable dt = new DataTable();
  132. object Figure = GetDecimalDigits();
  133. List<DbParameter> parameter = new List<DbParameter>();
  134. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  135. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  136. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  137. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  138. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  139. case when g.InvIQC='1'and isnull(e.ID,'')='' then '' else '' end as isInspection,
  140. case when isnull(a.LastPrintUser,'')='' then '' else '' end as isPrint,
  141. case when Isnull(g.InvIQC,'0')='1' then '否' else '是' end as isExemption,a.Amount,
  142. convert(varchar(20),a.ProductDate,23) as ProductDate,convert(varchar(20),a.ExpirationDate,23) as ExpirationDate ,g.EffectiveDays,a.EATTRIBUTE4,a.EATTRIBUTE5
  143. from ICSInventoryLot a
  144. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  145. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  146. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  147. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  148. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  149. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  150. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  151. WHERE isnull(a.EATTRIBUTE1,'')='' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  152. if (!string.IsNullOrWhiteSpace(isPrint))
  153. {
  154. if (isPrint == "0")
  155. {
  156. }
  157. else if (isPrint == "1")
  158. {
  159. sql += " and isnull(LastPrintUser,'')<>''";
  160. }
  161. else
  162. {
  163. sql += " and isnull(LastPrintUser,'')=''";
  164. }
  165. }
  166. sql = string.Format(sql, Figure);
  167. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  168. }
  169. /// <summary>
  170. /// 点击生成条码
  171. /// </summary>
  172. public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  173. {
  174. DataTable dt = new DataTable();
  175. object Figure = GetDecimalDigits();
  176. List<DbParameter> parameter = new List<DbParameter>();
  177. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn017', " + Quantity + ",1,2,'')";
  178. object Num = SqlHelper.ExecuteScalar(SeachNum);
  179. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  180. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty ,
  181. CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  182. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ,
  183. d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  184. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  185. from ICSMOApplyNegDetail a
  186. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  187. left join (
  188. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  189. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='1'
  190. where isnull(a.EATTRIBUTE1,'')=''
  191. group by b.TransCode,b.TransSequence
  192. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  193. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  194. WHERE 1 =1
  195. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  196. sql += " and a.WorkPoint='" + WorkPoint + "'";
  197. sql = string.Format(sql, Figure);
  198. return Repository().FindTableBySql(sql.ToString());
  199. }
  200. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  201. {
  202. DataTable dt = new DataTable();
  203. //var queryParam = queryJson.ToJObject();
  204. List<DbParameter> parameter = new List<DbParameter>();
  205. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  206. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  207. return Repository().FindTableBySql(sql.ToString());
  208. }
  209. /// <summary>
  210. /// 生产退料生成条码
  211. /// </summary>
  212. /// <param name="POCode"></param>
  213. /// <param name="PORow"></param>
  214. /// <param name="keyValue"></param>
  215. /// 已改
  216. /// <returns></returns>
  217. public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  218. {
  219. var queryParam = keyValue.ToJObject();
  220. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  221. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  222. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  223. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  224. decimal LOTQTY = minPackQty;
  225. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  226. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  227. string Pre = "MDN" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  228. string sql = string.Empty;
  229. //string VendorLot = queryParam["VendorLot"].ToString();
  230. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  231. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  232. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  233. string InvCode = queryParam["ClassCode"].ToString();
  234. string Colspan = "";
  235. string sqls = string.Empty;
  236. string LotNo = string.Empty;
  237. string str1 = "";
  238. List<string> ExtensionIDList = new List<string>();
  239. #region 装箱的功能
  240. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  241. string VenCode = queryParam["VenCode"].ToString();
  242. int PackCount = 0;//每箱放的数量
  243. int Pack_YuShu = 0;//需要平摊的数量
  244. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  245. List<PackModel> List_Pack = new List<PackModel>();
  246. int ZQty = 0;
  247. if (createPackCount > 0)
  248. {
  249. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  250. if (Pack_YuShu == 0)
  251. {
  252. PackCount = (createPageCount / createPackCount);
  253. }
  254. else
  255. {
  256. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  257. }
  258. for (int jj = 0; jj < createPackCount; jj++)
  259. {
  260. object CARID = Guid.NewGuid();
  261. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  262. sql += @" INSERT INTO dbo.ICSContainer
  263. ( ID,ContainerCode ,
  264. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  265. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  266. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  267. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  268. PackModel PP = new PackModel();
  269. PP.ID = CARID.ToString();
  270. PP.PackCode = Carton;
  271. if (jj < Pack_YuShu)
  272. {
  273. PP.FristBarIndex = ZQty;
  274. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  275. }
  276. else
  277. {
  278. PP.FristBarIndex = ZQty;
  279. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  280. }
  281. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  282. List_Pack.Add(PP);
  283. }
  284. }
  285. #endregion
  286. for (int i = 0; i < createPageCount; i++)
  287. {
  288. if (i + 1 == createPageCount)
  289. {
  290. if (minPackQty * createPageCount > thisCreateQty)
  291. {
  292. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  293. }
  294. }
  295. 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();
  296. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  297. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  298. bool flag = true;
  299. foreach (var item in ExtensionIDList)
  300. {
  301. if (item == Colspan + WorkPoint)
  302. {
  303. flag = false;
  304. }
  305. }
  306. if (ExtensionID == null && flag == true)
  307. {
  308. str1 = Guid.NewGuid().ToString();
  309. 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)
  310. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  311. 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(),
  312. MUSER, MUSERNAME, WorkPoints);
  313. }
  314. else if (ExtensionID != null)
  315. {
  316. str1 = ExtensionID.ToString();
  317. }
  318. ExtensionIDList.Add(Colspan + WorkPoint);
  319. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  320. if (AMEnable == "true")
  321. {
  322. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  323. }
  324. else
  325. {
  326. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  327. }
  328. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  329. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  330. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  331. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  332. //{
  333. sql += string.Format(@"insert into ICSInventoryLot
  334. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  335. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  336. select
  337. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  338. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  339. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  340. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  341. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  342. sql += "\r\n";
  343. //装箱的功能
  344. if (List_Pack.Count > 0)
  345. {
  346. PackModel mm = new PackModel();
  347. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  348. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  349. ( ID ,ContainerID ,LotNo ,
  350. MUSER ,MUSERName ,MTIME ,WorkPoint )
  351. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  352. }
  353. //}
  354. }
  355. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  356. return count;
  357. }
  358. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  359. {
  360. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  361. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  362. //return Repository().FindTableBySql(sql.ToString());
  363. return SqlHelper.ExecuteScalar(sql).ToString();
  364. //return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  365. }
  366. /// <summary>
  367. /// 删除条码
  368. /// </summary>
  369. /// <param name="keyValue"></param>
  370. /// <returns></returns>
  371. public string DeleteItemLot(string keyValue)
  372. {
  373. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  374. string msg = string.Empty;
  375. string sql = string.Format(@"select Type from ICSInventoryLot
  376. where ID in ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  377. DataTable lotdt = SqlHelper.GetDataTableBySql(sql);
  378. if (lotdt.Rows[0]["Type"].ToString() == "203")
  379. {
  380. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  381. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')
  382. and WarehouseCode not in (select B.F_ItemCode from Sys_SRM_Items A
  383. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId = A.F_Id
  384. where A.F_EnCode = 'WorkLineWHConfig')", keyValue.TrimEnd(','), WorkPoint);
  385. lotdt = SqlHelper.GetDataTableBySql(sql);
  386. if (lotdt.Rows.Count > 0)
  387. {
  388. msg = "所选条码中已有条码调拨到其他仓库,无法删除!";
  389. }
  390. else
  391. {
  392. if (string.IsNullOrEmpty(msg))
  393. {
  394. string sqls = string.Format("DELETE FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  395. sqls += string.Format("DELETE FROM ICSInventoryLotDetail WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  396. sqls += string.Format("DELETE FROM dbo.ICSContainerLot WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);//删除箱子 条码对应关系
  397. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  398. SqlHelper.CmdExecuteNonQueryLi(sqls);
  399. }
  400. }
  401. }
  402. else
  403. {
  404. sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  405. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  406. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  407. if (dtASN != null && dtASN.Rows.Count > 0)
  408. {
  409. msg = "所选条码已生成检验单,无法删除!";
  410. }
  411. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  412. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  413. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  414. if (dtCarton != null && dtCarton.Rows.Count > 0)
  415. {
  416. msg += "所选条码已入库,无法删除!";
  417. }
  418. if (string.IsNullOrEmpty(msg))
  419. {
  420. string sqls = string.Format("DELETE FROM ICSInventoryLotDetail WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  421. sqls += string.Format("DELETE FROM dbo.ICSContainerLot WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);//删除箱子 条码对应关系
  422. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  423. SqlHelper.CmdExecuteNonQueryLi(sqls);
  424. }
  425. }
  426. return msg;
  427. }
  428. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  429. {
  430. DataTable dt = new DataTable();
  431. var queryParam = queryJson.ToJObject();
  432. List<DbParameter> parameter = new List<DbParameter>();
  433. object Figure = GetDecimalDigits();
  434. #region [SQL]
  435. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  436. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  437. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
  438. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  439. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  440. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  441. a.EATTRIBUTE9,a.EATTRIBUTE10
  442. from ICSOApplyNegDetail a
  443. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  444. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  445. left join (
  446. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  447. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  448. where isnull(ee.EATTRIBUTE1,'')=''
  449. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  450. )c
  451. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  452. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  453. WHERE d.Type='1' ";
  454. sql = string.Format(sql, Figure);
  455. #endregion
  456. if (!string.IsNullOrWhiteSpace(queryJson))
  457. {
  458. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  459. {
  460. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  461. }
  462. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  463. {
  464. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  465. }
  466. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  467. {
  468. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  469. }
  470. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  471. {
  472. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  473. }
  474. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  475. {
  476. sql += " and d.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  477. }
  478. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  479. {
  480. sql += " and d.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  481. }
  482. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  483. {
  484. sql += " and d.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  485. }
  486. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  487. {
  488. string POStatus = queryParam["POStatus"].ToString();
  489. if (POStatus == "0")
  490. {
  491. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  492. }
  493. else if (POStatus == "1")
  494. {
  495. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  496. }
  497. else
  498. {
  499. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  500. }
  501. }
  502. }
  503. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  504. {
  505. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  506. }
  507. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  508. {
  509. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  510. }
  511. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  512. }
  513. public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
  514. {
  515. DataTable dt = new DataTable();
  516. object Figure = GetDecimalDigits();
  517. //var queryParam = queryJson.ToJObject();
  518. List<DbParameter> parameter = new List<DbParameter>();
  519. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  520. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity from ICSInventoryLot a
  521. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  522. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  523. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  524. WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
  525. sql = string.Format(sql, Figure);
  526. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  527. }
  528. /// <summary>
  529. /// 点击委外退料生成条码
  530. /// </summary>
  531. public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  532. {
  533. DataTable dt = new DataTable();
  534. object Figure = GetDecimalDigits();
  535. List<DbParameter> parameter = new List<DbParameter>();
  536. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn008', " + Quantity + ",1,2,'')";
  537. object Num = SqlHelper.ExecuteScalar(SeachNum);
  538. string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  539. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  540. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  541. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  542. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  543. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  544. from ICSOApplyNegDetail a
  545. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  546. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  547. left join (
  548. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  549. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='2'
  550. where isnull(a.EATTRIBUTE1,'')=''
  551. group by b.TransCode,b.TransSequence
  552. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  553. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  554. WHERE d.Type='1'
  555. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  556. sql += " and a.WorkPoint='" + WorkPoint + "'";
  557. sql = string.Format(sql, Figure);
  558. return Repository().FindTableBySql(sql.ToString());
  559. }
  560. /// <summary>
  561. /// 委外退料生成条码
  562. /// </summary>
  563. /// <param name="POCode"></param>
  564. /// <param name="PORow"></param>
  565. /// <param name="keyValue"></param>
  566. /// 已改
  567. /// <returns></returns>
  568. public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  569. {
  570. var queryParam = keyValue.ToJObject();
  571. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  572. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  573. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  574. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  575. decimal LOTQTY = minPackQty;
  576. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  577. string sql = string.Empty;
  578. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  579. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  580. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  581. string sqls = string.Empty;
  582. string Colspan = "";
  583. List<string> ExtensionIDList = new List<string>();
  584. string str1 = "";
  585. #region 装箱的功能
  586. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  587. string VenCode = queryParam["VenCode"].ToString();
  588. int PackCount = 0;//每箱放的数量
  589. int Pack_YuShu = 0;//需要平摊的数量
  590. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  591. List<PackModel> List_Pack = new List<PackModel>();
  592. int ZQty = 0;
  593. if (createPackCount > 0)
  594. {
  595. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  596. if (Pack_YuShu == 0)
  597. {
  598. PackCount = (createPageCount / createPackCount);
  599. }
  600. else
  601. {
  602. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  603. }
  604. for (int jj = 0; jj < createPackCount; jj++)
  605. {
  606. object CARID = Guid.NewGuid();
  607. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  608. sql += @" INSERT INTO dbo.ICSContainer
  609. ( ID,ContainerCode ,
  610. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  611. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  612. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  613. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  614. PackModel PP = new PackModel();
  615. PP.ID = CARID.ToString();
  616. PP.PackCode = Carton;
  617. if (jj < Pack_YuShu)
  618. {
  619. PP.FristBarIndex = ZQty;
  620. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  621. }
  622. else
  623. {
  624. PP.FristBarIndex = ZQty;
  625. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  626. }
  627. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  628. List_Pack.Add(PP);
  629. }
  630. }
  631. #endregion
  632. for (int i = 0; i < createPageCount; i++)
  633. {
  634. if (i + 1 == createPageCount)
  635. {
  636. if (minPackQty * createPageCount > thisCreateQty)
  637. {
  638. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  639. }
  640. }
  641. 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();
  642. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  643. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  644. bool flag = true;
  645. foreach (var item in ExtensionIDList)
  646. {
  647. if (item == Colspan + WorkPoint)
  648. {
  649. flag = false;
  650. }
  651. }
  652. if (ExtensionID == null && flag == true)
  653. {
  654. str1 = Guid.NewGuid().ToString();
  655. 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)
  656. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  657. 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(),
  658. MUSER, MUSERNAME, WorkPoints);
  659. }
  660. else if (ExtensionID != null)
  661. {
  662. str1 = ExtensionID.ToString();
  663. }
  664. ExtensionIDList.Add(Colspan + WorkPoint);
  665. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  666. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  667. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  668. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  669. sql += string.Format(@"insert into ICSInventoryLot
  670. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  671. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  672. select
  673. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  674. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  675. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  676. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  677. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  678. sql += "\r\n";
  679. //装箱的功能
  680. if (List_Pack.Count > 0)
  681. {
  682. PackModel mm = new PackModel();
  683. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  684. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  685. ( ID ,ContainerID ,LotNo ,
  686. MUSER ,MUSERName ,MTIME ,WorkPoint )
  687. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  688. }
  689. }
  690. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  691. return count;
  692. }
  693. /// <summary>
  694. /// 委外退料生成条码
  695. /// </summary>
  696. /// <param name="POCode"></param>
  697. /// <param name="PORow"></param>
  698. /// <param name="keyValue"></param>
  699. /// 已改
  700. /// <returns></returns>
  701. public int SubmitFormWeiWaiNew(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  702. {
  703. var queryParam = keyValue.ToJObject();
  704. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  705. // decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  706. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  707. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  708. List<decimal> lotQtys = new List<decimal>();
  709. foreach (var jLotno in jLotnos)
  710. {
  711. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  712. lotQtys.Add(qty);
  713. }
  714. int createPageCount = lotQtys.Count();
  715. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  716. string sql = string.Empty;
  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. List<string> ExtensionIDList = new List<string>();
  723. string str1 = "";
  724. #region 装箱的功能
  725. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  726. string VenCode = queryParam["VenCode"].ToString();
  727. int PackCount = 0;//每箱放的数量
  728. int Pack_YuShu = 0;//需要平摊的数量
  729. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  730. List<PackModel> List_Pack = new List<PackModel>();
  731. int ZQty = 0;
  732. if (createPackCount > 0)
  733. {
  734. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  735. if (Pack_YuShu == 0)
  736. {
  737. PackCount = (createPageCount / createPackCount);
  738. }
  739. else
  740. {
  741. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  742. }
  743. for (int jj = 0; jj < createPackCount; jj++)
  744. {
  745. object CARID = Guid.NewGuid();
  746. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  747. sql += @" INSERT INTO dbo.ICSContainer
  748. ( ID,ContainerCode ,
  749. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  750. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  751. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  752. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  753. PackModel PP = new PackModel();
  754. PP.ID = CARID.ToString();
  755. PP.PackCode = Carton;
  756. if (jj < Pack_YuShu)
  757. {
  758. PP.FristBarIndex = ZQty;
  759. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  760. }
  761. else
  762. {
  763. PP.FristBarIndex = ZQty;
  764. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  765. }
  766. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  767. List_Pack.Add(PP);
  768. }
  769. }
  770. #endregion
  771. for (int i = 0; i < createPageCount; i++)
  772. {
  773. decimal LOTQTY = lotQtys[i];
  774. 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();
  775. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  776. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  777. bool flag = true;
  778. foreach (var item in ExtensionIDList)
  779. {
  780. if (item == Colspan + WorkPoint)
  781. {
  782. flag = false;
  783. }
  784. }
  785. if (ExtensionID == null && flag == true)
  786. {
  787. str1 = Guid.NewGuid().ToString();
  788. 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)
  789. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  790. 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(),
  791. MUSER, MUSERNAME, WorkPoints);
  792. }
  793. else if (ExtensionID != null)
  794. {
  795. str1 = ExtensionID.ToString();
  796. }
  797. ExtensionIDList.Add(Colspan + WorkPoint);
  798. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  799. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  800. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  801. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  802. sql += string.Format(@"insert into ICSInventoryLot
  803. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  804. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE13)
  805. select
  806. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}'
  807. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  808. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  809. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  810. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString(), queryParam["EATTRIBUTE13"].ToString());
  811. sql += "\r\n";
  812. //装箱的功能
  813. if (List_Pack.Count > 0)
  814. {
  815. PackModel mm = new PackModel();
  816. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  817. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  818. ( ID ,ContainerID ,LotNo ,
  819. MUSER ,MUSERName ,MTIME ,WorkPoint )
  820. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  821. }
  822. }
  823. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  824. return count;
  825. }
  826. public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
  827. {
  828. DataTable dt = new DataTable();
  829. var queryParam = queryJson.ToJObject();
  830. List<DbParameter> parameter = new List<DbParameter>();
  831. object Figure = GetDecimalDigits();
  832. #region [SQL]
  833. string sql = @" select distinct a.ID, a.MODetailID,a.MOCode,a.Sequence,
  834. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  835. CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,a.StartDate,a.WHCode,warehouse.WarehouseName as WHName
  836. ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,
  837. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  838. CAST( a.Quantity AS DECIMAL(38,{0})) -CAST(a.RCVQuantity AS DECIMAL(38,{0})) as ERPNum,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,a.MOMemo
  839. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  840. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  841. a.EATTRIBUTE9,a.EATTRIBUTE10,a.EATTRIBUTE11,a.EATTRIBUTE12,b.MTIME as TMTime,dep.DepName,a.CreateDateTime,b.EATTRIBUTE9 as CustInvCode,
  842. isnull(a.Quantity,'') as MPQ
  843. from ICSMO a
  844. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  845. left join (
  846. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  847. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  848. where isnull(ee.EATTRIBUTE1,'')=''
  849. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  850. )c
  851. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  852. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  853. left join ICSDepartment dep ON dep.DepCode=a.DepCode and a.WorkPoint=dep.WorkPoint
  854. left join ICSWarehouse warehouse on a.WHCode=warehouse.WarehouseCode and a.WorkPoint=warehouse.WorkPoint ";
  855. sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  856. sql = string.Format(sql, Figure);
  857. #endregion
  858. if (!string.IsNullOrWhiteSpace(queryJson))
  859. {
  860. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  861. {
  862. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  863. }
  864. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  865. {
  866. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  867. }
  868. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  869. {
  870. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  871. }
  872. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  873. {
  874. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  875. }
  876. if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString()))
  877. {
  878. sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' ";
  879. }
  880. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  881. {
  882. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  883. }
  884. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  885. {
  886. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  887. }
  888. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  889. {
  890. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  891. }
  892. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  893. {
  894. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  895. }
  896. if (!string.IsNullOrWhiteSpace(queryParam["ClassGroup"].ToString()))
  897. {
  898. sql += " and a.EATTRIBUTE12 = '" + queryParam["ClassGroup"].ToString() + "' ";
  899. }
  900. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  901. {
  902. string POStatus = queryParam["POStatus"].ToString();
  903. if (POStatus == "0")
  904. {
  905. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  906. }
  907. else if (POStatus == "1")
  908. {
  909. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  910. }
  911. else
  912. {
  913. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0";
  914. }
  915. }
  916. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  917. {
  918. string WHStatus = queryParam["WHStatus"].ToString();
  919. if (WHStatus == "0")
  920. {
  921. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  922. }
  923. else if (WHStatus == "1")
  924. {
  925. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  926. }
  927. else
  928. {
  929. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  930. }
  931. }
  932. }
  933. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  934. {
  935. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  936. }
  937. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  938. {
  939. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  940. }
  941. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  942. }
  943. /// <summary>
  944. /// 点击成品生成条码(成品)
  945. /// </summary>
  946. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  947. {
  948. DataTable dt = new DataTable();
  949. object Figure = GetDecimalDigits();
  950. List<DbParameter> parameter = new List<DbParameter>();
  951. // string sql = @"select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  952. //CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  953. // ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,''as EATTRIBUTE2,''as EATTRIBUTE3,''as EATTRIBUTE4,''as EATTRIBUTE5
  954. // from ICSMO a
  955. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  956. // left join (
  957. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  958. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  959. // where isnull(a.EATTRIBUTE1,'')=''
  960. // group by b.TransCode,b.TransSequence
  961. // ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  962. // left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  963. // left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  964. // WHERE 1 =1 and a.MOStatus<>'3'
  965. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn011', " + Quantity + ",1,2,'')";
  966. object Num = SqlHelper.ExecuteScalar(SeachNum);
  967. string sql = @" select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit,
  968. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  969. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  970. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  971. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  972. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  973. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  974. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  975. from ICSMO a
  976. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  977. left join (
  978. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  979. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  980. where isnull(a.EATTRIBUTE1,'')=''
  981. group by b.TransCode,b.TransSequence
  982. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  983. left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  984. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  985. WHERE 1 =1 and a.MOStatus<>'3'
  986. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  987. sql += " and a.WorkPoint='" + WorkPoint + "'";
  988. sql = string.Format(sql, Figure);
  989. return Repository().FindTableBySql(sql.ToString());
  990. }
  991. /// <summary>
  992. /// 成品生成条码
  993. /// </summary>
  994. /// <param name="POCode"></param>
  995. /// <param name="PORow"></param>
  996. /// <param name="keyValue"></param>
  997. /// 已改
  998. /// <returns></returns>
  999. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1000. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1001. {
  1002. var queryParam = keyValue.ToJObject();
  1003. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1004. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1005. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1006. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1007. decimal LOTQTY = minPackQty;
  1008. string InvCode = queryParam["ClassCode"].ToString();
  1009. string InvCodeLP = queryParam["InvCode"].ToString();
  1010. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1011. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1012. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1013. string Pre = WorkPoints + MOCode.Remove(0, 5);
  1014. string sql = string.Empty;
  1015. //string VendorLot = queryParam["VendorLot"].ToString();
  1016. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1017. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1018. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1019. string sqls = string.Empty;
  1020. string Colspan = "";
  1021. string str1 = "";
  1022. string LotNo = string.Empty;
  1023. List<string> ExtensionIDList = new List<string>();
  1024. #region 装箱的功能
  1025. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1026. string VenCode = queryParam["VenCode"].ToString();
  1027. int PackCount = 0;//每箱放的数量
  1028. int Pack_YuShu = 0;//需要平摊的数量
  1029. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1030. List<PackModel> List_Pack = new List<PackModel>();
  1031. int ZQty = 0;
  1032. if (createPackCount > 0)
  1033. {
  1034. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1035. if (Pack_YuShu == 0)
  1036. {
  1037. PackCount = (createPageCount / createPackCount);
  1038. }
  1039. else
  1040. {
  1041. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1042. }
  1043. for (int jj = 0; jj < createPackCount; jj++)
  1044. {
  1045. object CARID = Guid.NewGuid();
  1046. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1047. sql += @" INSERT INTO dbo.ICSContainer
  1048. ( ID,ContainerCode ,
  1049. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1050. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1051. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1052. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1053. PackModel PP = new PackModel();
  1054. PP.ID = CARID.ToString();
  1055. PP.PackCode = Carton;
  1056. if (jj < Pack_YuShu)
  1057. {
  1058. PP.FristBarIndex = ZQty;
  1059. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1060. }
  1061. else
  1062. {
  1063. PP.FristBarIndex = ZQty;
  1064. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1065. }
  1066. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1067. List_Pack.Add(PP);
  1068. }
  1069. }
  1070. #endregion
  1071. for (int i = 0; i < createPageCount; i++)
  1072. {
  1073. if (i + 1 == createPageCount)
  1074. {
  1075. if (minPackQty * createPageCount > thisCreateQty)
  1076. {
  1077. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1078. }
  1079. }
  1080. 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();
  1081. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1082. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1083. bool flag = true;
  1084. foreach (var item in ExtensionIDList)
  1085. {
  1086. if (item == Colspan + WorkPoint)
  1087. {
  1088. flag = false;
  1089. }
  1090. }
  1091. if (ExtensionID == null && flag == true)
  1092. {
  1093. str1 = Guid.NewGuid().ToString();
  1094. 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)
  1095. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1096. 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(),
  1097. MUSER, MUSERNAME, WorkPoints);
  1098. }
  1099. else if (ExtensionID != null)
  1100. {
  1101. str1 = ExtensionID.ToString();
  1102. }
  1103. ExtensionIDList.Add(Colspan + WorkPoint);
  1104. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1105. //if (AMEnable == "true")
  1106. //{
  1107. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1108. //}vvv
  1109. //else
  1110. //{
  1111. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  1112. //}
  1113. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1114. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1115. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1116. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1117. //{
  1118. sql += string.Format(@"insert into ICSInventoryLot
  1119. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1120. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1121. select
  1122. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1123. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1124. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1125. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1126. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1127. sql += "\r\n";
  1128. //装箱的功能
  1129. if (List_Pack.Count > 0)
  1130. {
  1131. PackModel mm = new PackModel();
  1132. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1133. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1134. ( ID ,ContainerID ,LotNo ,
  1135. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1136. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1137. }
  1138. //}
  1139. }
  1140. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1141. return count;
  1142. }
  1143. /// <summary>
  1144. /// 成品生成条码
  1145. /// </summary>
  1146. /// <param name="POCode"></param>
  1147. /// <param name="PORow"></param>
  1148. /// <param name="keyValue"></param>
  1149. /// 已改
  1150. /// <returns></returns>
  1151. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1152. public int SubmitFormChengPingNew(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1153. {
  1154. var queryParam = keyValue.ToJObject();
  1155. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1156. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1157. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1158. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1159. List<decimal> lotQtys = new List<decimal>();
  1160. foreach (var jLotno in jLotnos)
  1161. {
  1162. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1163. lotQtys.Add(qty);
  1164. }
  1165. int createPageCount = lotQtys.Count();
  1166. string InvCode = queryParam["ClassCode"].ToString();
  1167. string InvCodeLP = queryParam["InvCode"].ToString();
  1168. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1169. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1170. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1171. string Pre = WorkPoints + MOCode.Remove(0, 5);
  1172. string sql = string.Empty;
  1173. //string VendorLot = queryParam["VendorLot"].ToString();
  1174. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1175. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1176. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1177. string sqls = string.Empty;
  1178. string Colspan = "";
  1179. string str1 = "";
  1180. string LotNo = string.Empty;
  1181. List<string> ExtensionIDList = new List<string>();
  1182. #region 装箱的功能
  1183. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1184. string VenCode = queryParam["VenCode"].ToString();
  1185. int PackCount = 0;//每箱放的数量
  1186. int Pack_YuShu = 0;//需要平摊的数量
  1187. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1188. List<PackModel> List_Pack = new List<PackModel>();
  1189. int ZQty = 0;
  1190. if (createPackCount > 0)
  1191. {
  1192. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1193. if (Pack_YuShu == 0)
  1194. {
  1195. PackCount = (createPageCount / createPackCount);
  1196. }
  1197. else
  1198. {
  1199. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1200. }
  1201. for (int jj = 0; jj < createPackCount; jj++)
  1202. {
  1203. object CARID = Guid.NewGuid();
  1204. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1205. sql += @" INSERT INTO dbo.ICSContainer
  1206. ( ID,ContainerCode ,
  1207. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1208. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1209. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1210. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1211. PackModel PP = new PackModel();
  1212. PP.ID = CARID.ToString();
  1213. PP.PackCode = Carton;
  1214. if (jj < Pack_YuShu)
  1215. {
  1216. PP.FristBarIndex = ZQty;
  1217. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1218. }
  1219. else
  1220. {
  1221. PP.FristBarIndex = ZQty;
  1222. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1223. }
  1224. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1225. List_Pack.Add(PP);
  1226. }
  1227. }
  1228. #endregion
  1229. for (int i = 0; i < createPageCount; i++)
  1230. {
  1231. var LOTQTY = lotQtys[i];
  1232. 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();
  1233. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1234. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1235. bool flag = true;
  1236. foreach (var item in ExtensionIDList)
  1237. {
  1238. if (item == Colspan + WorkPoint)
  1239. {
  1240. flag = false;
  1241. }
  1242. }
  1243. if (ExtensionID == null && flag == true)
  1244. {
  1245. str1 = Guid.NewGuid().ToString();
  1246. 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)
  1247. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1248. 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(),
  1249. MUSER, MUSERNAME, WorkPoints);
  1250. }
  1251. else if (ExtensionID != null)
  1252. {
  1253. str1 = ExtensionID.ToString();
  1254. }
  1255. ExtensionIDList.Add(Colspan + WorkPoint);
  1256. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1257. //if (AMEnable == "true")
  1258. //{
  1259. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1260. //}vvv
  1261. //else
  1262. //{
  1263. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  1264. //}
  1265. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1266. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1267. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1268. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1269. //{
  1270. sql += string.Format(@"insert into ICSInventoryLot
  1271. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1272. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1273. select
  1274. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1275. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1276. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1277. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1278. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1279. sql += "\r\n";
  1280. //装箱的功能
  1281. if (List_Pack.Count > 0)
  1282. {
  1283. PackModel mm = new PackModel();
  1284. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1285. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1286. ( ID ,ContainerID ,LotNo ,
  1287. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1288. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1289. }
  1290. //}
  1291. }
  1292. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1293. return count;
  1294. }
  1295. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  1296. {
  1297. DataTable dt = new DataTable();
  1298. var queryParam = queryJson.ToJObject();
  1299. List<DbParameter> parameter = new List<DbParameter>();
  1300. object Figure = GetDecimalDigits();
  1301. #region [SQL]
  1302. string sql = @" select a.ID,a.SDNCode,a.Sequence,a.SOCode,a.SOSequence,a.CusCode,a.CusName,a.Type,a.ArriveDate,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  1303. ,cast(a.Amount as decimal(38,{0})) as Amount, CAST(a.SDNQuantity AS DECIMAL(38,{0})) as SDNQuantity ,a.Status,a.ExtensionID,a.CreatePerson,a.CreateDateTime ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  1304. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1305. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  1306. a.EATTRIBUTE9,a.EATTRIBUTE10
  1307. from ICSSDN a
  1308. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1309. left join (
  1310. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1311. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  1312. where isnull(ee.EATTRIBUTE1,'')=''
  1313. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1314. )c
  1315. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1316. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1317. --left join ICSDepartment dep ON dep.DepCode=a.[Detp]
  1318. where a.Type='2'";
  1319. sql = string.Format(sql, Figure);
  1320. #endregion
  1321. if (!string.IsNullOrWhiteSpace(queryJson))
  1322. {
  1323. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1324. {
  1325. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1326. }
  1327. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1328. {
  1329. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1330. }
  1331. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1332. {
  1333. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1334. }
  1335. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1336. {
  1337. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1338. }
  1339. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1340. {
  1341. string POStatus = queryParam["POStatus"].ToString();
  1342. if (POStatus == "0")
  1343. {
  1344. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1345. }
  1346. else if (POStatus == "1")
  1347. {
  1348. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1349. }
  1350. else
  1351. {
  1352. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1353. }
  1354. }
  1355. }
  1356. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1357. {
  1358. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1359. }
  1360. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1361. {
  1362. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1363. }
  1364. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1365. }
  1366. /// <summary>
  1367. /// 点击销售退货生成条码(销售退货)
  1368. /// </summary>
  1369. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1370. {
  1371. DataTable dt = new DataTable();
  1372. object Figure = GetDecimalDigits();
  1373. List<DbParameter> parameter = new List<DbParameter>();
  1374. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn020', " + Quantity + ",1,3,'')";
  1375. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1376. string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  1377. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1378. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  1379. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  1380. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1381. from ICSSDN a
  1382. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1383. left join (
  1384. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1385. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='4'
  1386. where isnull(a.EATTRIBUTE1,'')=''
  1387. group by b.TransCode,b.TransSequence
  1388. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  1389. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1390. WHERE 1 =1
  1391. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  1392. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1393. sql = string.Format(sql, Figure);
  1394. return Repository().FindTableBySql(sql.ToString());
  1395. }
  1396. /// <summary>
  1397. /// 销售退货生成条码
  1398. /// </summary>
  1399. /// <param name="POCode"></param>
  1400. /// <param name="PORow"></param>
  1401. /// <param name="keyValue"></param>
  1402. /// 已改
  1403. /// <returns></returns>
  1404. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1405. {
  1406. var queryParam = keyValue.ToJObject();
  1407. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1408. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1409. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1410. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1411. decimal LOTQTY = minPackQty;
  1412. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1413. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1414. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1415. string sql = string.Empty;
  1416. //string VendorLot = queryParam["VendorLot"].ToString();
  1417. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1418. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1419. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1420. string InvCode = queryParam["ClassCode"].ToString();
  1421. string sqls = string.Empty;
  1422. string Colspan = "";
  1423. string str1 = "";
  1424. string LotNo = string.Empty;
  1425. List<string> ExtensionIDList = new List<string>();
  1426. #region 装箱的功能
  1427. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1428. string VenCode = queryParam["VenCode"].ToString();
  1429. int PackCount = 0;//每箱放的数量
  1430. int Pack_YuShu = 0;//需要平摊的数量
  1431. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1432. List<PackModel> List_Pack = new List<PackModel>();
  1433. int ZQty = 0;
  1434. if (createPackCount > 0)
  1435. {
  1436. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1437. if (Pack_YuShu == 0)
  1438. {
  1439. PackCount = (createPageCount / createPackCount);
  1440. }
  1441. else
  1442. {
  1443. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1444. }
  1445. for (int jj = 0; jj < createPackCount; jj++)
  1446. {
  1447. object CARID = Guid.NewGuid();
  1448. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1449. sql += @" INSERT INTO dbo.ICSContainer
  1450. ( ID,ContainerCode ,
  1451. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1452. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1453. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1454. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1455. PackModel PP = new PackModel();
  1456. PP.ID = CARID.ToString();
  1457. PP.PackCode = Carton;
  1458. if (jj < Pack_YuShu)
  1459. {
  1460. PP.FristBarIndex = ZQty;
  1461. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1462. }
  1463. else
  1464. {
  1465. PP.FristBarIndex = ZQty;
  1466. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1467. }
  1468. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1469. List_Pack.Add(PP);
  1470. }
  1471. }
  1472. #endregion
  1473. for (int i = 0; i < createPageCount; i++)
  1474. {
  1475. if (i + 1 == createPageCount)
  1476. {
  1477. if (minPackQty * createPageCount > thisCreateQty)
  1478. {
  1479. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1480. }
  1481. }
  1482. 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();
  1483. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1484. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1485. bool flag = true;
  1486. foreach (var item in ExtensionIDList)
  1487. {
  1488. if (item == Colspan + WorkPoint)
  1489. {
  1490. flag = false;
  1491. }
  1492. }
  1493. if (ExtensionID == null && flag == true)
  1494. {
  1495. str1 = Guid.NewGuid().ToString();
  1496. 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)
  1497. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1498. 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(),
  1499. MUSER, MUSERNAME, WorkPoints);
  1500. }
  1501. else if (ExtensionID != null)
  1502. {
  1503. str1 = ExtensionID.ToString();
  1504. }
  1505. ExtensionIDList.Add(Colspan + WorkPoint);
  1506. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1507. if (AMEnable == "true")
  1508. {
  1509. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1510. }
  1511. else
  1512. {
  1513. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1514. }
  1515. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1516. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1517. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1518. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1519. //{
  1520. sql += string.Format(@"
  1521. insert into ICSInventoryLot
  1522. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1523. select
  1524. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1525. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1526. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1527. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1528. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1529. sql += "\r\n";
  1530. //}
  1531. //装箱的功能
  1532. if (List_Pack.Count > 0)
  1533. {
  1534. PackModel mm = new PackModel();
  1535. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1536. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1537. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1538. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1539. }
  1540. }
  1541. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1542. return count;
  1543. }
  1544. /// <summary>
  1545. /// 销售退货生成条码
  1546. /// </summary>
  1547. /// <param name="POCode"></param>
  1548. /// <param name="PORow"></param>
  1549. /// <param name="keyValue"></param>
  1550. /// 已改
  1551. /// <returns></returns>
  1552. public int SubmitFormXiaoShouNew(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1553. {
  1554. var queryParam = keyValue.ToJObject();
  1555. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1556. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1557. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1558. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1559. List<decimal> lotQtys = new List<decimal>();
  1560. foreach (var jLotno in jLotnos)
  1561. {
  1562. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1563. lotQtys.Add(qty);
  1564. }
  1565. int createPageCount = lotQtys.Count();
  1566. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1567. string sql = string.Empty;
  1568. //string VendorLot = queryParam["VendorLot"].ToString();
  1569. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1570. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1571. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1572. string InvCode = queryParam["ClassCode"].ToString();
  1573. string sqls = string.Empty;
  1574. string Colspan = "";
  1575. string str1 = "";
  1576. string LotNo = string.Empty;
  1577. List<string> ExtensionIDList = new List<string>();
  1578. #region 装箱的功能
  1579. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1580. string VenCode = queryParam["VenCode"].ToString();
  1581. int PackCount = 0;//每箱放的数量
  1582. int Pack_YuShu = 0;//需要平摊的数量
  1583. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1584. List<PackModel> List_Pack = new List<PackModel>();
  1585. int ZQty = 0;
  1586. if (createPackCount > 0)
  1587. {
  1588. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1589. if (Pack_YuShu == 0)
  1590. {
  1591. PackCount = (createPageCount / createPackCount);
  1592. }
  1593. else
  1594. {
  1595. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1596. }
  1597. for (int jj = 0; jj < createPackCount; jj++)
  1598. {
  1599. object CARID = Guid.NewGuid();
  1600. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1601. sql += @" INSERT INTO dbo.ICSContainer
  1602. ( ID,ContainerCode ,
  1603. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1604. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1605. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1606. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1607. PackModel PP = new PackModel();
  1608. PP.ID = CARID.ToString();
  1609. PP.PackCode = Carton;
  1610. if (jj < Pack_YuShu)
  1611. {
  1612. PP.FristBarIndex = ZQty;
  1613. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1614. }
  1615. else
  1616. {
  1617. PP.FristBarIndex = ZQty;
  1618. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1619. }
  1620. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1621. List_Pack.Add(PP);
  1622. }
  1623. }
  1624. #endregion
  1625. for (int i = 0; i < createPageCount; i++)
  1626. {
  1627. var LOTQTY = lotQtys[i];
  1628. 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();
  1629. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1630. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1631. bool flag = true;
  1632. foreach (var item in ExtensionIDList)
  1633. {
  1634. if (item == Colspan + WorkPoint)
  1635. {
  1636. flag = false;
  1637. }
  1638. }
  1639. if (ExtensionID == null && flag == true)
  1640. {
  1641. str1 = Guid.NewGuid().ToString();
  1642. 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)
  1643. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1644. 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(),
  1645. MUSER, MUSERNAME, WorkPoints);
  1646. }
  1647. else if (ExtensionID != null)
  1648. {
  1649. str1 = ExtensionID.ToString();
  1650. }
  1651. ExtensionIDList.Add(Colspan + WorkPoint);
  1652. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1653. if (AMEnable == "true")
  1654. {
  1655. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1656. }
  1657. else
  1658. {
  1659. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1660. }
  1661. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1662. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1663. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1664. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1665. //{
  1666. sql += string.Format(@"
  1667. insert into ICSInventoryLot
  1668. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1669. select
  1670. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1671. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1672. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1673. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1674. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1675. sql += "\r\n";
  1676. //}
  1677. //装箱的功能
  1678. if (List_Pack.Count > 0)
  1679. {
  1680. PackModel mm = new PackModel();
  1681. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1682. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1683. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1684. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1685. }
  1686. }
  1687. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1688. return count;
  1689. }
  1690. public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
  1691. {
  1692. DataTable dt = new DataTable();
  1693. var queryParam = queryJson.ToJObject();
  1694. List<DbParameter> parameter = new List<DbParameter>();
  1695. object Figure = GetDecimalDigits();
  1696. #region [SQL]
  1697. string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  1698. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity,CAST(a.Amount AS DECIMAL(38,{0})) as Amount, CAST(a.InQuantity AS DECIMAL(38,{0})) as InQuantity,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  1699. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1700. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  1701. a.EATTRIBUTE9,a.EATTRIBUTE10
  1702. from ICSOtherIn a
  1703. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1704. left join (
  1705. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1706. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  1707. where isnull(ee.EATTRIBUTE1,'')=''
  1708. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1709. )c
  1710. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1711. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1712. where a.Status='1' and ISNULL(a.Type,'1')='1' ";
  1713. sql = string.Format(sql, Figure);
  1714. #endregion
  1715. if (!string.IsNullOrWhiteSpace(queryJson))
  1716. {
  1717. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1718. {
  1719. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1720. }
  1721. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1722. {
  1723. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1724. }
  1725. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1726. {
  1727. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1728. }
  1729. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1730. {
  1731. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1732. }
  1733. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  1734. {
  1735. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  1736. }
  1737. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  1738. {
  1739. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  1740. }
  1741. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  1742. {
  1743. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  1744. }
  1745. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  1746. {
  1747. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  1748. }
  1749. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1750. {
  1751. string POStatus = queryParam["POStatus"].ToString();
  1752. if (POStatus == "0")
  1753. {
  1754. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1755. }
  1756. else if (POStatus == "1")
  1757. {
  1758. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1759. }
  1760. else
  1761. {
  1762. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1763. }
  1764. }
  1765. }
  1766. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1767. {
  1768. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1769. }
  1770. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1771. {
  1772. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1773. }
  1774. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1775. }
  1776. /// <summary>
  1777. /// 点击销售退货生成条码(其他入库)
  1778. /// </summary>
  1779. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1780. {
  1781. DataTable dt = new DataTable();
  1782. object Figure = GetDecimalDigits();
  1783. List<DbParameter> parameter = new List<DbParameter>();
  1784. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn021', " + Quantity + ",1,4,'')";
  1785. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1786. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  1787. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1788. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  1789. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,ISNULL(a.EATTRIBUTE3,'') AS EATTRIBUTE3,'' AS EATTRIBUTE4,a.EATTRIBUTE7,a.EATTRIBUTE9,a.EATTRIBUTE10,
  1790. ISNULL(a.EATTRIBUTE5,'') AS EATTRIBUTE5
  1791. ,a.EATTRIBUTE6 AS EATTRIBUTE6,a.EATTRIBUTE8 AS EATTRIBUTE8
  1792. from ICSOtherIn a
  1793. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1794. left join (
  1795. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1796. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='5'
  1797. where isnull(a.EATTRIBUTE1,'')=''
  1798. group by b.TransCode,b.TransSequence
  1799. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  1800. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1801. WHERE 1 =1
  1802. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "' and ISNULL(a.EATTRIBUTE2,'1')='1'";
  1803. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1804. sql = string.Format(sql, Figure);
  1805. return Repository().FindTableBySql(sql.ToString());
  1806. }
  1807. /// <summary>
  1808. /// 其他入库生成条码
  1809. /// </summary>
  1810. /// <param name="POCode"></param>
  1811. /// <param name="PORow"></param>
  1812. /// <param name="keyValue"></param>
  1813. /// 已改
  1814. /// <returns></returns>
  1815. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1816. {
  1817. var queryParam = keyValue.ToJObject();
  1818. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1819. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1820. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1821. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1822. decimal LOTQTY = minPackQty;
  1823. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1824. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1825. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1826. string sql = string.Empty;
  1827. //string VendorLot = queryParam["VendorLot"].ToString();
  1828. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1829. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1830. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1831. string InvCode = queryParam["ClassCode"].ToString();
  1832. string sqls = string.Empty;
  1833. string Colspan = "";
  1834. string str1 = "";
  1835. string LotNo = string.Empty;
  1836. List<string> ExtensionIDList = new List<string>();
  1837. #region 装箱的功能
  1838. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1839. string VenCode = queryParam["VenCode"].ToString();
  1840. int PackCount = 0;//每箱放的数量
  1841. int Pack_YuShu = 0;//需要平摊的数量
  1842. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1843. List<PackModel> List_Pack = new List<PackModel>();
  1844. int ZQty = 0;
  1845. if (createPackCount > 0)
  1846. {
  1847. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1848. if (Pack_YuShu == 0)
  1849. {
  1850. PackCount = (createPageCount / createPackCount);
  1851. }
  1852. else
  1853. {
  1854. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1855. }
  1856. for (int jj = 0; jj < createPackCount; jj++)
  1857. {
  1858. object CARID = Guid.NewGuid();
  1859. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1860. sql += @" INSERT INTO dbo.ICSContainer
  1861. ( ID,ContainerCode ,
  1862. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1863. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1864. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1865. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1866. PackModel PP = new PackModel();
  1867. PP.ID = CARID.ToString();
  1868. PP.PackCode = Carton;
  1869. if (jj < Pack_YuShu)
  1870. {
  1871. PP.FristBarIndex = ZQty;
  1872. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1873. }
  1874. else
  1875. {
  1876. PP.FristBarIndex = ZQty;
  1877. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1878. }
  1879. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1880. List_Pack.Add(PP);
  1881. }
  1882. }
  1883. #endregion
  1884. for (int i = 0; i < createPageCount; i++)
  1885. {
  1886. if (i + 1 == createPageCount)
  1887. {
  1888. if (minPackQty * createPageCount > thisCreateQty)
  1889. {
  1890. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1891. }
  1892. }
  1893. 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();
  1894. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1895. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1896. bool flag = true;
  1897. foreach (var item in ExtensionIDList)
  1898. {
  1899. if (item == Colspan + WorkPoint)
  1900. {
  1901. flag = false;
  1902. }
  1903. }
  1904. if (ExtensionID == null && flag == true)
  1905. {
  1906. str1 = Guid.NewGuid().ToString();
  1907. 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)
  1908. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1909. 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(),
  1910. MUSER, MUSERNAME, WorkPoints);
  1911. }
  1912. else if (ExtensionID != null)
  1913. {
  1914. str1 = ExtensionID.ToString();
  1915. }
  1916. ExtensionIDList.Add(Colspan + WorkPoint);
  1917. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1918. if (AMEnable == "true")
  1919. {
  1920. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1921. }
  1922. else
  1923. {
  1924. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1925. }
  1926. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1927. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1928. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1929. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1930. //{
  1931. sql += string.Format(@"
  1932. insert into ICSInventoryLot
  1933. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1934. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1935. select
  1936. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1937. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  1938. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1939. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1940. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1941. sql += "\r\n";
  1942. //装箱的功能
  1943. if (List_Pack.Count > 0)
  1944. {
  1945. PackModel mm = new PackModel();
  1946. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1947. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1948. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1949. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1950. }
  1951. //}
  1952. }
  1953. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1954. return count;
  1955. }
  1956. public int SubmitFormQiTaNew(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1957. {
  1958. var queryParam = keyValue.ToJObject();
  1959. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1960. //int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1961. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1962. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1963. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1964. List<decimal> lotQtys = new List<decimal>();
  1965. foreach (var jLotno in jLotnos)
  1966. {
  1967. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1968. lotQtys.Add(qty);
  1969. }
  1970. int createPageCount = lotQtys.Count();
  1971. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1972. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1973. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1974. string sql = string.Empty;
  1975. //string VendorLot = queryParam["VendorLot"].ToString();
  1976. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1977. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1978. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1979. string InvCode = queryParam["ClassCode"].ToString();
  1980. string sqls = string.Empty;
  1981. string Colspan = "";
  1982. string str1 = "";
  1983. string LotNo = string.Empty;
  1984. List<string> ExtensionIDList = new List<string>();
  1985. #region 装箱的功能
  1986. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1987. string VenCode = queryParam["VenCode"].ToString();
  1988. int PackCount = 0;//每箱放的数量
  1989. int Pack_YuShu = 0;//需要平摊的数量
  1990. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1991. List<PackModel> List_Pack = new List<PackModel>();
  1992. int ZQty = 0;
  1993. if (createPackCount > 0)
  1994. {
  1995. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1996. if (Pack_YuShu == 0)
  1997. {
  1998. PackCount = (createPageCount / createPackCount);
  1999. }
  2000. else
  2001. {
  2002. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2003. }
  2004. for (int jj = 0; jj < createPackCount; jj++)
  2005. {
  2006. object CARID = Guid.NewGuid();
  2007. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2008. sql += @" INSERT INTO dbo.ICSContainer
  2009. ( ID,ContainerCode ,
  2010. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2011. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2012. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2013. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2014. PackModel PP = new PackModel();
  2015. PP.ID = CARID.ToString();
  2016. PP.PackCode = Carton;
  2017. if (jj < Pack_YuShu)
  2018. {
  2019. PP.FristBarIndex = ZQty;
  2020. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2021. }
  2022. else
  2023. {
  2024. PP.FristBarIndex = ZQty;
  2025. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2026. }
  2027. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2028. List_Pack.Add(PP);
  2029. }
  2030. }
  2031. #endregion
  2032. for (int i = 0; i < createPageCount; i++)
  2033. {
  2034. var LOTQTY = lotQtys[i];
  2035. 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();
  2036. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2037. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2038. bool flag = true;
  2039. foreach (var item in ExtensionIDList)
  2040. {
  2041. if (item == Colspan + WorkPoint)
  2042. {
  2043. flag = false;
  2044. }
  2045. }
  2046. if (ExtensionID == null && flag == true)
  2047. {
  2048. str1 = Guid.NewGuid().ToString();
  2049. 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)
  2050. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2051. 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(),
  2052. MUSER, MUSERNAME, WorkPoints);
  2053. }
  2054. else if (ExtensionID != null)
  2055. {
  2056. str1 = ExtensionID.ToString();
  2057. }
  2058. ExtensionIDList.Add(Colspan + WorkPoint);
  2059. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2060. if (AMEnable == "true")
  2061. {
  2062. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2063. }
  2064. else
  2065. {
  2066. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2067. }
  2068. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2069. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2070. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2071. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2072. //{
  2073. sql += string.Format(@"
  2074. insert into ICSInventoryLot
  2075. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  2076. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2077. select
  2078. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2079. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  2080. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  2081. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2082. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2083. sql += "\r\n";
  2084. //装箱的功能
  2085. if (List_Pack.Count > 0)
  2086. {
  2087. PackModel mm = new PackModel();
  2088. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2089. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2090. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2091. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2092. }
  2093. //}
  2094. }
  2095. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2096. return count;
  2097. }
  2098. //归还
  2099. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  2100. {
  2101. DataTable dt = new DataTable();
  2102. var queryParam = queryJson.ToJObject();
  2103. List<DbParameter> parameter = new List<DbParameter>();
  2104. object Figure = GetDecimalDigits();
  2105. #region [SQL]
  2106. string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2107. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2108. CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime,
  2109. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2110. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2111. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2112. a.EATTRIBUTE9,a.EATTRIBUTE10
  2113. from ICSReturn a
  2114. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2115. left join (
  2116. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2117. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  2118. where isnull(ee.EATTRIBUTE1,'')=''
  2119. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2120. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2121. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2122. where a.Status='2'";
  2123. sql = string.Format(sql, Figure);
  2124. #endregion
  2125. if (!string.IsNullOrWhiteSpace(queryJson))
  2126. {
  2127. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2128. {
  2129. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2130. }
  2131. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2132. {
  2133. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2134. }
  2135. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2136. {
  2137. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2138. }
  2139. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2140. {
  2141. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2142. }
  2143. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2144. {
  2145. string POStatus = queryParam["POStatus"].ToString();
  2146. if (POStatus == "0")
  2147. {
  2148. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2149. }
  2150. else if (POStatus == "1")
  2151. {
  2152. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2153. }
  2154. else
  2155. {
  2156. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2157. }
  2158. }
  2159. }
  2160. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2161. {
  2162. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2163. }
  2164. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2165. {
  2166. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2167. }
  2168. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2169. }
  2170. //审核到货单(采购订单需与审核到货单一起同步)
  2171. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  2172. {
  2173. DataTable dt = new DataTable();
  2174. var queryParam = queryJson.ToJObject();
  2175. List<DbParameter> parameter = new List<DbParameter>();
  2176. object Figure = GetDecimalDigits();
  2177. #region [SQL]
  2178. string sql = @"select distinct a.ID, d.POCode,d.Sequence as POSequence,a.DNCode,a.Sequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2179. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2180. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2181. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  2182. Case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2183. --,isnull(b.EffectiveEnable,0) as EffectiveEnable
  2184. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2185. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2186. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2187. a.EATTRIBUTE9,a.EATTRIBUTE10
  2188. from ICSDeliveryNotice a
  2189. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2190. left join (
  2191. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2192. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  2193. where isnull(ee.EATTRIBUTE1,'')=''
  2194. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2195. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2196. left join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  2197. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2198. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2199. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  2200. ";
  2201. sql = string.Format(sql, Figure);
  2202. #endregion
  2203. if (!string.IsNullOrWhiteSpace(queryJson))
  2204. {
  2205. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2206. {
  2207. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2208. }
  2209. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2210. {
  2211. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2212. }
  2213. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2214. {
  2215. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2216. }
  2217. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2218. {
  2219. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2220. }
  2221. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2222. {
  2223. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2224. }
  2225. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2226. {
  2227. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2228. }
  2229. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2230. {
  2231. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2232. }
  2233. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2234. {
  2235. string POStatus = queryParam["POStatus"].ToString();
  2236. if (POStatus == "0")
  2237. {
  2238. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2239. }
  2240. else if (POStatus == "1")
  2241. {
  2242. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2243. }
  2244. else
  2245. {
  2246. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2247. }
  2248. }
  2249. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2250. {
  2251. string WHStatus = queryParam["WHStatus"].ToString();
  2252. if (WHStatus == "0")
  2253. {
  2254. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2255. }
  2256. else if (WHStatus == "1")
  2257. {
  2258. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2259. }
  2260. else
  2261. {
  2262. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2263. }
  2264. }
  2265. }
  2266. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2267. {
  2268. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2269. }
  2270. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2271. {
  2272. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2273. }
  2274. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2275. }
  2276. //审核委外到货单
  2277. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  2278. {
  2279. DataTable dt = new DataTable();
  2280. var queryParam = queryJson.ToJObject();
  2281. List<DbParameter> parameter = new List<DbParameter>();
  2282. object Figure = GetDecimalDigits();
  2283. #region [SQL]
  2284. string sql = @"select distinct a.ID, d.OOCode,d.Sequence as OOSequence,a.ODNCode,a.Sequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2285. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2286. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2287. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
  2288. CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2289. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  2290. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,d.OODetailID ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2291. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2292. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2293. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2294. a.EATTRIBUTE9,a.EATTRIBUTE10
  2295. from ICSODeliveryNotice a
  2296. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2297. left join (
  2298. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2299. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  2300. where isnull(ee.EATTRIBUTE1,'')=''
  2301. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2302. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2303. left join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  2304. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2305. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2306. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  2307. sql = string.Format(sql, Figure);
  2308. #endregion
  2309. if (!string.IsNullOrWhiteSpace(queryJson))
  2310. {
  2311. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2312. {
  2313. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2314. }
  2315. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2316. {
  2317. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2318. }
  2319. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2320. {
  2321. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2322. }
  2323. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2324. {
  2325. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2326. }
  2327. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2328. {
  2329. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2330. }
  2331. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2332. {
  2333. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2334. }
  2335. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2336. {
  2337. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2338. }
  2339. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2340. {
  2341. string POStatus = queryParam["POStatus"].ToString();
  2342. if (POStatus == "0")
  2343. {
  2344. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2345. }
  2346. else if (POStatus == "1")
  2347. {
  2348. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2349. }
  2350. else
  2351. {
  2352. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2353. }
  2354. }
  2355. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2356. {
  2357. string WHStatus = queryParam["WHStatus"].ToString();
  2358. if (WHStatus == "0")
  2359. {
  2360. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2361. }
  2362. else if (WHStatus == "1")
  2363. {
  2364. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2365. }
  2366. else
  2367. {
  2368. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2369. }
  2370. }
  2371. }
  2372. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2373. {
  2374. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2375. }
  2376. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2377. {
  2378. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2379. }
  2380. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2381. }
  2382. //开立得成品入库单
  2383. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  2384. {
  2385. DataTable dt = new DataTable();
  2386. var queryParam = queryJson.ToJObject();
  2387. List<DbParameter> parameter = new List<DbParameter>();
  2388. object Figure = GetDecimalDigits();
  2389. #region [SQL]
  2390. string sql = @"
  2391. select a.ID,a.RCVCode,a.Sequence,a.SourceCode as MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2392. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2393. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2394. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.CreatePerson,a.CreateDateTime,
  2395. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2396. ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable,b.EffectiveDays
  2397. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2398. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  2399. a.EATTRIBUTE9,a.EATTRIBUTE10
  2400. from ICSManufactureReceive a
  2401. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2402. left join (
  2403. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2404. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  2405. where isnull(ee.EATTRIBUTE1,'')=''
  2406. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2407. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2408. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2409. --left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint
  2410. where a.Status='1' and a.Type='1'";
  2411. sql = string.Format(sql, Figure);
  2412. #endregion
  2413. if (!string.IsNullOrWhiteSpace(queryJson))
  2414. {
  2415. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2416. {
  2417. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2418. }
  2419. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2420. {
  2421. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2422. }
  2423. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2424. {
  2425. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2426. }
  2427. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2428. {
  2429. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2430. }
  2431. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  2432. {
  2433. sql += " and a.SourceCode like '%" + queryParam["SCode"].ToString() + "%' ";
  2434. }
  2435. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2436. {
  2437. string POStatus = queryParam["POStatus"].ToString();
  2438. if (POStatus == "0")
  2439. {
  2440. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2441. }
  2442. else if (POStatus == "1")
  2443. {
  2444. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2445. }
  2446. else
  2447. {
  2448. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2449. }
  2450. }
  2451. }
  2452. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2453. {
  2454. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2455. }
  2456. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2457. {
  2458. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2459. }
  2460. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2461. }
  2462. /// <summary>
  2463. /// 点击审核委外到货单生成条码(审核委外到货单)
  2464. /// </summary>
  2465. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2466. {
  2467. DataTable dt = new DataTable();
  2468. object Figure = GetDecimalDigits();
  2469. List<DbParameter> parameter = new List<DbParameter>();
  2470. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn005', " + Quantity + ",1,1,'')";
  2471. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2472. //锐腾添加退补逻辑
  2473. string sql = @"select e.Enable, a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2474. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2475. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2476. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2477. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2478. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  2479. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2480. from ICSODeliveryNotice a
  2481. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2482. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2483. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8'
  2484. where isnull(a.EATTRIBUTE1,'')=''
  2485. group by b.TransCode,b.TransSequence
  2486. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2487. left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
  2488. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2489. left join (select a.ODNCode,a.Sequence,a.WorkPoint, ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  2490. from ICSODeliveryNotice a
  2491. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2492. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  2493. left join (SELECT OODetailID,WorkPoint,sum(Quantity) Quantity FROM ICSODeliveryNotice WHERE ODNType='3' GROUP BY OODetailID,WorkPoint )j ON a.ODNDetailID=j.OODetailID and a.WorkPoint=j.WorkPoint) f ON a.ODNCode=f.ODNCode and a.WorkPoint=f.WorkPoint
  2494. WHERE 1 =1
  2495. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2496. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2497. sql = string.Format(sql, Figure);
  2498. return Repository().FindTableBySql(sql.ToString());
  2499. }
  2500. /// <summary>
  2501. /// 点击开立成品入库生成条码(开立成品入库单)
  2502. /// </summary>
  2503. /// //--
  2504. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2505. {
  2506. DataTable dt = new DataTable();
  2507. object Figure = GetDecimalDigits();
  2508. List<DbParameter> parameter = new List<DbParameter>();
  2509. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn013', " + Quantity + ",1,2,'')";
  2510. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2511. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2512. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2513. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2514. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2515. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2516. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2517. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  2518. '' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10
  2519. from ICSManufactureReceive a
  2520. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2521. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2522. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9'
  2523. where isnull(a.EATTRIBUTE1,'')=''
  2524. group by b.TransCode,b.TransSequence
  2525. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  2526. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2527. WHERE 1 =1
  2528. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  2529. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2530. sql = string.Format(sql, Figure);
  2531. return Repository().FindTableBySql(sql.ToString());
  2532. }
  2533. /// <summary>
  2534. /// 点击审核到货单生成条码(审核到货单)
  2535. /// </summary>
  2536. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2537. {
  2538. DataTable dt = new DataTable();
  2539. object Figure = GetDecimalDigits();
  2540. List<DbParameter> parameter = new List<DbParameter>();
  2541. /***
  2542. * 退退退退
  2543. * 退退
  2544. ***/
  2545. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn002', " + Quantity + ",1,1,'')";
  2546. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2547. string checksql = $@"select a.ID from ICSDeliveryNotice a
  2548. inner join ICSDeliveryNotice b ON a.DNDetailID=Isnull(b.EATTRIBUTE8,'') and a.WorkPoint=b.WorkPoint and b.DNType='2' and b.EATTRIBUTE7='退'
  2549. where a.DNType='1' and a.DNCode='{DNCode}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}' ";
  2550. var checkdt = SqlHelper.CmdExecuteDataTable(checksql);
  2551. string sql = string.Empty;
  2552. if (checkdt.Rows.Count > 0)
  2553. {
  2554. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2555. CAST( " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2556. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2557. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,6)) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2558. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2559. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  2560. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2561. from ICSDeliveryNotice a
  2562. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2563. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2564. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  2565. from ICSDeliveryNotice a
  2566. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) e on e.DNCode=a.DNCode and e.Sequence=a.Sequence
  2567. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2568. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2569. where isnull(a.EATTRIBUTE1,'')=''
  2570. group by b.TransCode,b.TransSequence
  2571. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2572. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2573. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  2574. left join (SELECT PODetailID,WorkPoint,sum(Quantity) as Quantity FROM ICSDeliveryNotice WHERE DNType='3' GROUP BY PODetailID,WorkPoint) j ON a.DNDetailID=j.PODetailID and a.WorkPoint=j.WorkPoint
  2575. WHERE 1 =1
  2576. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2577. }
  2578. else
  2579. {
  2580. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2581. CAST( " + Num + @"+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2582. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2583. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2584. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2585. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  2586. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2587. from ICSDeliveryNotice a
  2588. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2589. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2590. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  2591. from ICSDeliveryNotice a
  2592. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) e on e.DNCode=a.DNCode and e.Sequence=a.Sequence
  2593. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2594. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2595. where isnull(a.EATTRIBUTE1,'')=''
  2596. group by b.TransCode,b.TransSequence
  2597. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2598. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2599. left join (SELECT PODetailID,WorkPoint,sum(Quantity) as Quantity FROM ICSDeliveryNotice WHERE DNType='3' GROUP BY PODetailID,WorkPoint) j ON a.DNDetailID=j.PODetailID and a.WorkPoint=j.WorkPoint
  2600. WHERE 1 =1
  2601. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2602. }
  2603. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2604. sql = string.Format(sql, Figure);
  2605. return Repository().FindTableBySql(sql.ToString());
  2606. }
  2607. /// <summary>
  2608. /// 点击归还生成条码(归还)
  2609. /// </summary>
  2610. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2611. {
  2612. DataTable dt = new DataTable();
  2613. object Figure = GetDecimalDigits();
  2614. List<DbParameter> parameter = new List<DbParameter>();
  2615. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn023', " + Quantity + ",1,4,'')";
  2616. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2617. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2618. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2619. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2620. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2621. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2622. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2623. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  2624. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2625. from ICSReturn a
  2626. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2627. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2628. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6'
  2629. where isnull(a.EATTRIBUTE1,'')=''
  2630. group by b.TransCode,b.TransSequence
  2631. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  2632. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2633. WHERE 1 =1
  2634. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  2635. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2636. sql = string.Format(sql, Figure);
  2637. return Repository().FindTableBySql(sql.ToString());
  2638. }
  2639. /// <summary>
  2640. /// 归还单生成条码
  2641. /// </summary>
  2642. /// <param name="POCode"></param>
  2643. /// <param name="PORow"></param>
  2644. /// <param name="keyValue"></param>
  2645. /// 已改
  2646. /// <returns></returns>
  2647. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  2648. {
  2649. var queryParam = keyValue.ToJObject();
  2650. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2651. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2652. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2653. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2654. decimal LOTQTY = minPackQty;
  2655. string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2656. string sql = string.Empty;
  2657. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2658. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2659. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2660. string sqls = string.Empty;
  2661. string Colspan = "";
  2662. string str1 = "";
  2663. List<string> ExtensionIDList = new List<string>();
  2664. #region 装箱的功能
  2665. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2666. string VenCode = queryParam["VenCode"].ToString();
  2667. int PackCount = 0;//每箱放的数量
  2668. int Pack_YuShu = 0;//需要平摊的数量
  2669. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2670. List<PackModel> List_Pack = new List<PackModel>();
  2671. int ZQty = 0;
  2672. if (createPackCount > 0)
  2673. {
  2674. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2675. if (Pack_YuShu == 0)
  2676. {
  2677. PackCount = (createPageCount / createPackCount);
  2678. }
  2679. else
  2680. {
  2681. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2682. }
  2683. for (int jj = 0; jj < createPackCount; jj++)
  2684. {
  2685. object CARID = Guid.NewGuid();
  2686. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2687. sql += @" INSERT INTO dbo.ICSContainer
  2688. ( ID,ContainerCode ,
  2689. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2690. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2691. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2692. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2693. PackModel PP = new PackModel();
  2694. PP.ID = CARID.ToString();
  2695. PP.PackCode = Carton;
  2696. if (jj < Pack_YuShu)
  2697. {
  2698. PP.FristBarIndex = ZQty;
  2699. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2700. }
  2701. else
  2702. {
  2703. PP.FristBarIndex = ZQty;
  2704. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2705. }
  2706. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2707. List_Pack.Add(PP);
  2708. }
  2709. }
  2710. #endregion
  2711. for (int i = 0; i < createPageCount; i++)
  2712. {
  2713. if (i + 1 == createPageCount)
  2714. {
  2715. if (minPackQty * createPageCount > thisCreateQty)
  2716. {
  2717. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2718. }
  2719. }
  2720. 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();
  2721. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2722. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2723. bool flag = true;
  2724. foreach (var item in ExtensionIDList)
  2725. {
  2726. if (item == Colspan + WorkPoint)
  2727. {
  2728. flag = false;
  2729. }
  2730. }
  2731. if (ExtensionID == null && flag == true)
  2732. {
  2733. str1 = Guid.NewGuid().ToString();
  2734. 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)
  2735. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2736. 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(),
  2737. MUSER, MUSERNAME, WorkPoints);
  2738. }
  2739. else if (ExtensionID != null)
  2740. {
  2741. str1 = ExtensionID.ToString();
  2742. }
  2743. ExtensionIDList.Add(Colspan + WorkPoint);
  2744. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2745. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2746. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  2747. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2748. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2749. //{
  2750. sql += string.Format(@"
  2751. insert into ICSInventoryLot
  2752. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2753. select
  2754. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2755. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2756. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2757. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2758. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2759. sql += "\r\n";
  2760. //装箱的功能
  2761. if (List_Pack.Count > 0)
  2762. {
  2763. PackModel mm = new PackModel();
  2764. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2765. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2766. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  2767. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2768. }
  2769. //}
  2770. }
  2771. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2772. return count;
  2773. }
  2774. /// <summary>
  2775. /// 审核到货单生成条码
  2776. /// </summary>
  2777. /// <param name="POCode"></param>
  2778. /// <param name="PORow"></param>
  2779. /// <param name="keyValue"></param>
  2780. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  2781. /// <returns></returns>
  2782. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2783. {
  2784. var queryParam = keyValue.ToJObject();
  2785. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2786. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2787. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2788. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2789. decimal LOTQTY = minPackQty;
  2790. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2791. string sql = string.Empty;
  2792. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2793. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2794. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2795. string InvCode = queryParam["ClassCode"].ToString();
  2796. string sqls = string.Empty;
  2797. string Colspan = "";
  2798. string str1 = "";
  2799. string LotNo = string.Empty;
  2800. List<string> ExtensionIDList = new List<string>();
  2801. #region 装箱的功能
  2802. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2803. string VenCode = queryParam["VenCode"].ToString();
  2804. int PackCount = 0;//每箱放的数量
  2805. int Pack_YuShu = 0;//需要平摊的数量
  2806. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2807. List<PackModel> List_Pack = new List<PackModel>();
  2808. int ZQty = 0;
  2809. if (createPackCount > 0)
  2810. {
  2811. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2812. if (Pack_YuShu == 0)
  2813. {
  2814. PackCount = (createPageCount / createPackCount);
  2815. }
  2816. else
  2817. {
  2818. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2819. }
  2820. for (int jj = 0; jj < createPackCount; jj++)
  2821. {
  2822. object CARID = Guid.NewGuid();
  2823. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2824. sql += @" INSERT INTO dbo.ICSContainer
  2825. ( ID,ContainerCode ,
  2826. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2827. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2828. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2829. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2830. PackModel PP = new PackModel();
  2831. PP.ID = CARID.ToString();
  2832. PP.PackCode = Carton;
  2833. if (jj < Pack_YuShu)
  2834. {
  2835. PP.FristBarIndex = ZQty;
  2836. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2837. }
  2838. else
  2839. {
  2840. PP.FristBarIndex = ZQty;
  2841. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2842. }
  2843. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2844. List_Pack.Add(PP);
  2845. }
  2846. }
  2847. #endregion
  2848. for (int i = 0; i < createPageCount; i++)
  2849. {
  2850. if (i + 1 == createPageCount)
  2851. {
  2852. if (minPackQty * createPageCount > thisCreateQty)
  2853. {
  2854. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2855. }
  2856. }
  2857. 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();
  2858. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2859. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2860. bool flag = true;
  2861. foreach (var item in ExtensionIDList)
  2862. {
  2863. if (item == Colspan + WorkPoint)
  2864. {
  2865. flag = false;
  2866. }
  2867. }
  2868. if (ExtensionID == null && flag == true)
  2869. {
  2870. str1 = Guid.NewGuid().ToString();
  2871. 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)
  2872. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2873. 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(),
  2874. MUSER, MUSERNAME, WorkPoints);
  2875. }
  2876. else if (ExtensionID != null)
  2877. {
  2878. str1 = ExtensionID.ToString();
  2879. }
  2880. ExtensionIDList.Add(Colspan + WorkPoint);
  2881. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2882. if (AMEnable == "true")
  2883. {
  2884. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2885. }
  2886. else
  2887. {
  2888. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2889. }
  2890. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2891. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  2892. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2893. sql += string.Format(@"
  2894. insert into ICSInventoryLot
  2895. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2896. select
  2897. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  2898. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2899. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2900. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2901. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2902. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2903. sql += "\r\n";
  2904. //装箱的功能
  2905. if (List_Pack.Count > 0)
  2906. {
  2907. PackModel mm = new PackModel();
  2908. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2909. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2910. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  2911. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2912. }
  2913. }
  2914. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2915. return count;
  2916. }
  2917. /// <summary>
  2918. /// 审核委外到货单生成条码
  2919. /// </summary>
  2920. /// <param name="POCode"></param>
  2921. /// <param name="PORow"></param>
  2922. /// <param name="keyValue"></param>
  2923. /// 已改
  2924. /// <returns></returns>
  2925. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  2926. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2927. {
  2928. var queryParam = keyValue.ToJObject();
  2929. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2930. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2931. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2932. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2933. decimal LOTQTY = minPackQty;
  2934. string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2935. string sql = string.Empty;
  2936. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2937. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2938. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2939. string InvCode = queryParam["ClassCode"].ToString();
  2940. string sqls = string.Empty;
  2941. string Colspan = "";
  2942. string str1 = "";
  2943. string LotNo = string.Empty;
  2944. List<string> ExtensionIDList = new List<string>();
  2945. #region 装箱的功能
  2946. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2947. string VenCode = queryParam["VenCode"].ToString();
  2948. int PackCount = 0;//每箱放的数量
  2949. int Pack_YuShu = 0;//需要平摊的数量
  2950. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2951. List<PackModel> List_Pack = new List<PackModel>();
  2952. int ZQty = 0;
  2953. if (createPackCount > 0)
  2954. {
  2955. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2956. if (Pack_YuShu == 0)
  2957. {
  2958. PackCount = (createPageCount / createPackCount);
  2959. }
  2960. else
  2961. {
  2962. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2963. }
  2964. for (int jj = 0; jj < createPackCount; jj++)
  2965. {
  2966. object CARID = Guid.NewGuid();
  2967. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2968. sql += @" INSERT INTO dbo.ICSContainer
  2969. ( ID,ContainerCode ,
  2970. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2971. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2972. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2973. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2974. PackModel PP = new PackModel();
  2975. PP.ID = CARID.ToString();
  2976. PP.PackCode = Carton;
  2977. if (jj < Pack_YuShu)
  2978. {
  2979. PP.FristBarIndex = ZQty;
  2980. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2981. }
  2982. else
  2983. {
  2984. PP.FristBarIndex = ZQty;
  2985. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2986. }
  2987. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2988. List_Pack.Add(PP);
  2989. }
  2990. }
  2991. #endregion
  2992. for (int i = 0; i < createPageCount; i++)
  2993. {
  2994. if (i + 1 == createPageCount)
  2995. {
  2996. if (minPackQty * createPageCount > thisCreateQty)
  2997. {
  2998. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2999. }
  3000. }
  3001. 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();
  3002. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3003. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3004. bool flag = true;
  3005. foreach (var item in ExtensionIDList)
  3006. {
  3007. if (item == Colspan + WorkPoint)
  3008. {
  3009. flag = false;
  3010. }
  3011. }
  3012. if (ExtensionID == null && flag == true)
  3013. {
  3014. str1 = Guid.NewGuid().ToString();
  3015. 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)
  3016. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3017. 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(),
  3018. MUSER, MUSERNAME, WorkPoints);
  3019. }
  3020. else if (ExtensionID != null)
  3021. {
  3022. str1 = ExtensionID.ToString();
  3023. }
  3024. ExtensionIDList.Add(Colspan + WorkPoint);
  3025. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  3026. if (AMEnable == "true")
  3027. {
  3028. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  3029. }
  3030. else
  3031. {
  3032. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3033. }
  3034. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3035. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3036. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3037. sql += string.Format(@"
  3038. insert into ICSInventoryLot
  3039. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3040. select
  3041. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  3042. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3043. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3044. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3045. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3046. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3047. sql += "\r\n";
  3048. //装箱的功能
  3049. if (List_Pack.Count > 0)
  3050. {
  3051. PackModel mm = new PackModel();
  3052. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3053. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3054. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3055. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3056. }
  3057. }
  3058. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3059. return count;
  3060. }
  3061. /// <summary>
  3062. /// 开立成品入库单
  3063. /// </summary>
  3064. /// <param name="POCode"></param>
  3065. /// <param name="PORow"></param>
  3066. /// <param name="keyValue"></param>
  3067. /// 已改
  3068. /// <returns></returns>
  3069. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  3070. {
  3071. var queryParam = keyValue.ToJObject();
  3072. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3073. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3074. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3075. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3076. decimal LOTQTY = minPackQty;
  3077. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3078. string sql = string.Empty;
  3079. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3080. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3081. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3082. string sqls = string.Empty;
  3083. string Colspan = "";
  3084. string str1 = "";
  3085. List<string> ExtensionIDList = new List<string>();
  3086. #region 装箱的功能
  3087. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3088. string VenCode = queryParam["VenCode"].ToString();
  3089. int PackCount = 0;//每箱放的数量
  3090. int Pack_YuShu = 0;//需要平摊的数量
  3091. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3092. List<PackModel> List_Pack = new List<PackModel>();
  3093. int ZQty = 0;
  3094. if (createPackCount > 0)
  3095. {
  3096. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3097. if (Pack_YuShu == 0)
  3098. {
  3099. PackCount = (createPageCount / createPackCount);
  3100. }
  3101. else
  3102. {
  3103. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3104. }
  3105. for (int jj = 0; jj < createPackCount; jj++)
  3106. {
  3107. object CARID = Guid.NewGuid();
  3108. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3109. sql += @" INSERT INTO dbo.ICSContainer
  3110. ( ID,ContainerCode ,
  3111. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3112. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3113. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3114. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3115. PackModel PP = new PackModel();
  3116. PP.ID = CARID.ToString();
  3117. PP.PackCode = Carton;
  3118. if (jj < Pack_YuShu)
  3119. {
  3120. PP.FristBarIndex = ZQty;
  3121. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3122. }
  3123. else
  3124. {
  3125. PP.FristBarIndex = ZQty;
  3126. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3127. }
  3128. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3129. List_Pack.Add(PP);
  3130. }
  3131. }
  3132. #endregion
  3133. for (int i = 0; i < createPageCount; i++)
  3134. {
  3135. if (i + 1 == createPageCount)
  3136. {
  3137. if (minPackQty * createPageCount > thisCreateQty)
  3138. {
  3139. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3140. }
  3141. }
  3142. 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();
  3143. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3144. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3145. bool flag = true;
  3146. foreach (var item in ExtensionIDList)
  3147. {
  3148. if (item == Colspan + WorkPoint)
  3149. {
  3150. flag = false;
  3151. }
  3152. }
  3153. if (ExtensionID == null && flag == true)
  3154. {
  3155. str1 = Guid.NewGuid().ToString();
  3156. 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)
  3157. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3158. 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(),
  3159. MUSER, MUSERNAME, WorkPoints);
  3160. }
  3161. else if (ExtensionID != null)
  3162. {
  3163. str1 = ExtensionID.ToString();
  3164. }
  3165. ExtensionIDList.Add(Colspan + WorkPoint);
  3166. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3167. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3168. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3169. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3170. sql += string.Format(@"
  3171. insert into ICSInventoryLot
  3172. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3173. select
  3174. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3175. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3176. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3177. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3178. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3179. sql += "\r\n";
  3180. //装箱的功能
  3181. if (List_Pack.Count > 0)
  3182. {
  3183. PackModel mm = new PackModel();
  3184. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3185. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3186. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3187. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3188. }
  3189. }
  3190. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3191. return count;
  3192. }
  3193. //委外拒收单
  3194. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  3195. {
  3196. DataTable dt = new DataTable();
  3197. var queryParam = queryJson.ToJObject();
  3198. List<DbParameter> parameter = new List<DbParameter>();
  3199. object Figure = GetDecimalDigits();
  3200. #region [SQL]
  3201. string sql = @"select a.ID, a.ODNCode OOCode,a.Sequence OOSequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  3202. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
  3203. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3204. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3205. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3206. a.EATTRIBUTE9,a.EATTRIBUTE10
  3207. from ICSODeliveryNotice a
  3208. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3209. left join (
  3210. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3211. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3212. where isnull(ee.EATTRIBUTE1,'')=''
  3213. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3214. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3215. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3216. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3217. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3218. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3219. ";
  3220. sql = string.Format(sql, Figure);
  3221. #endregion
  3222. if (!string.IsNullOrWhiteSpace(queryJson))
  3223. {
  3224. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3225. {
  3226. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3227. }
  3228. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3229. {
  3230. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3231. }
  3232. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3233. {
  3234. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3235. }
  3236. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3237. {
  3238. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3239. }
  3240. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3241. {
  3242. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3243. }
  3244. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3245. {
  3246. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3247. }
  3248. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3249. {
  3250. string POStatus = queryParam["POStatus"].ToString();
  3251. if (POStatus == "0")
  3252. {
  3253. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3254. }
  3255. else if (POStatus == "1")
  3256. {
  3257. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3258. }
  3259. else
  3260. {
  3261. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3262. }
  3263. }
  3264. }
  3265. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3266. {
  3267. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3268. }
  3269. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3270. {
  3271. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3272. }
  3273. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3274. }
  3275. //拒收单
  3276. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  3277. {
  3278. DataTable dt = new DataTable();
  3279. var queryParam = queryJson.ToJObject();
  3280. List<DbParameter> parameter = new List<DbParameter>();
  3281. object Figure = GetDecimalDigits();
  3282. #region [SQL]
  3283. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  3284. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
  3285. CAST( a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  3286. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3287. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3288. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3289. a.EATTRIBUTE9,a.EATTRIBUTE10
  3290. from ICSDeliveryNotice a
  3291. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3292. left join (
  3293. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3294. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3295. where isnull(ee.EATTRIBUTE1,'')=''
  3296. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3297. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3298. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3299. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3300. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3301. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3302. ";
  3303. sql = string.Format(sql, Figure);
  3304. #endregion
  3305. if (!string.IsNullOrWhiteSpace(queryJson))
  3306. {
  3307. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3308. {
  3309. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3310. }
  3311. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3312. {
  3313. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3314. }
  3315. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3316. {
  3317. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3318. }
  3319. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3320. {
  3321. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3322. }
  3323. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3324. {
  3325. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3326. }
  3327. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3328. {
  3329. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3330. }
  3331. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3332. {
  3333. string POStatus = queryParam["POStatus"].ToString();
  3334. if (POStatus == "0")
  3335. {
  3336. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3337. }
  3338. else if (POStatus == "1")
  3339. {
  3340. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3341. }
  3342. else
  3343. {
  3344. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3345. }
  3346. }
  3347. }
  3348. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3349. {
  3350. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3351. }
  3352. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3353. {
  3354. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3355. }
  3356. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3357. }
  3358. //领料申请退料
  3359. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  3360. {
  3361. DataTable dt = new DataTable();
  3362. var queryParam = queryJson.ToJObject();
  3363. List<DbParameter> parameter = new List<DbParameter>();
  3364. object Figure = GetDecimalDigits();
  3365. #region [SQL]
  3366. string sql = @"select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,bb.SourceCode,bb.SourceSequence,
  3367. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Quantity AS DECIMAL(38,{0})) as MPQ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  3368. CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3369. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3370. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3371. a.EATTRIBUTE9,a.EATTRIBUTE10
  3372. from ICSMOApplyNegDetail a
  3373. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3374. left JOIN ICSMOApply bb ON a.SourceDetailID=bb.ApplyDetailID AND a.WorkPoint=bb.WorkPoint
  3375. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3376. left join (
  3377. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3378. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3379. where isnull(ee.EATTRIBUTE1,'')=''
  3380. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3381. )c
  3382. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3383. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3384. WHERE d.Type='2' and d.Status='2' ";
  3385. sql = string.Format(sql, Figure);
  3386. #endregion
  3387. if (!string.IsNullOrWhiteSpace(queryJson))
  3388. {
  3389. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3390. {
  3391. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3392. }
  3393. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3394. {
  3395. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3396. }
  3397. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3398. {
  3399. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3400. }
  3401. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3402. {
  3403. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3404. }
  3405. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  3406. {
  3407. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  3408. }
  3409. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  3410. {
  3411. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  3412. }
  3413. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3414. {
  3415. string POStatus = queryParam["POStatus"].ToString();
  3416. if (POStatus == "0")
  3417. {
  3418. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3419. }
  3420. else if (POStatus == "1")
  3421. {
  3422. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3423. }
  3424. else
  3425. {
  3426. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3427. }
  3428. }
  3429. }
  3430. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3431. {
  3432. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3433. }
  3434. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3435. {
  3436. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3437. }
  3438. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3439. }
  3440. /// <summary>
  3441. /// 拒收生成条码
  3442. /// </summary>
  3443. /// <param name="POCode"></param>
  3444. /// <param name="PORow"></param>
  3445. /// <param name="keyValue"></param>
  3446. /// <returns></returns>
  3447. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  3448. {
  3449. var queryParam = keyValue.ToJObject();
  3450. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3451. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3452. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3453. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3454. decimal LOTQTY = minPackQty;
  3455. string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3456. string sql = string.Empty;
  3457. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3458. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3459. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3460. string sqls = string.Empty;
  3461. string Colspan = "";
  3462. string str1 = "";
  3463. List<string> ExtensionIDList = new List<string>();
  3464. #region 装箱的功能
  3465. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3466. string VenCode = queryParam["VenCode"].ToString();
  3467. int PackCount = 0;//每箱放的数量
  3468. int Pack_YuShu = 0;//需要平摊的数量
  3469. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3470. List<PackModel> List_Pack = new List<PackModel>();
  3471. int ZQty = 0;
  3472. if (createPackCount > 0)
  3473. {
  3474. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3475. if (Pack_YuShu == 0)
  3476. {
  3477. PackCount = (createPageCount / createPackCount);
  3478. }
  3479. else
  3480. {
  3481. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3482. }
  3483. for (int jj = 0; jj < createPackCount; jj++)
  3484. {
  3485. object CARID = Guid.NewGuid();
  3486. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3487. sql += @" INSERT INTO dbo.ICSContainer
  3488. ( ID,ContainerCode ,
  3489. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3490. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3491. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3492. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3493. PackModel PP = new PackModel();
  3494. PP.ID = CARID.ToString();
  3495. PP.PackCode = Carton;
  3496. if (jj < Pack_YuShu)
  3497. {
  3498. PP.FristBarIndex = ZQty;
  3499. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3500. }
  3501. else
  3502. {
  3503. PP.FristBarIndex = ZQty;
  3504. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3505. }
  3506. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3507. List_Pack.Add(PP);
  3508. }
  3509. }
  3510. #endregion
  3511. for (int i = 0; i < createPageCount; i++)
  3512. {
  3513. if (i + 1 == createPageCount)
  3514. {
  3515. if (minPackQty * createPageCount > thisCreateQty)
  3516. {
  3517. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3518. }
  3519. }
  3520. 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();
  3521. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3522. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3523. bool flag = true;
  3524. foreach (var item in ExtensionIDList)
  3525. {
  3526. if (item == Colspan + WorkPoint)
  3527. {
  3528. flag = false;
  3529. }
  3530. }
  3531. if (ExtensionID == null && flag == true)
  3532. {
  3533. str1 = Guid.NewGuid().ToString();
  3534. 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)
  3535. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3536. 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(),
  3537. MUSER, MUSERNAME, WorkPoints);
  3538. }
  3539. else if (ExtensionID != null)
  3540. {
  3541. str1 = ExtensionID.ToString();
  3542. }
  3543. ExtensionIDList.Add(Colspan + WorkPoint);
  3544. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3545. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3546. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3547. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3548. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3549. //{
  3550. sql += string.Format(@"
  3551. insert into ICSInventoryLot
  3552. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3553. select
  3554. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3555. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3556. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3557. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3558. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3559. sql += "\r\n";
  3560. //装箱的功能
  3561. if (List_Pack.Count > 0)
  3562. {
  3563. PackModel mm = new PackModel();
  3564. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3565. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3566. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3567. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3568. }
  3569. //}
  3570. }
  3571. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3572. return count;
  3573. }
  3574. /// <summary>
  3575. /// 委外拒收生成条码
  3576. /// </summary>
  3577. /// <param name="POCode"></param>
  3578. /// <param name="PORow"></param>
  3579. /// <param name="keyValue"></param>
  3580. /// <returns></returns>
  3581. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  3582. {
  3583. var queryParam = keyValue.ToJObject();
  3584. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3585. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3586. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3587. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3588. decimal LOTQTY = minPackQty;
  3589. string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3590. string sql = string.Empty;
  3591. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3592. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3593. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3594. string sqls = string.Empty;
  3595. string Colspan = "";
  3596. string str1 = "";
  3597. List<string> ExtensionIDList = new List<string>();
  3598. #region 装箱的功能
  3599. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3600. string VenCode = queryParam["VenCode"].ToString();
  3601. int PackCount = 0;//每箱放的数量
  3602. int Pack_YuShu = 0;//需要平摊的数量
  3603. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3604. List<PackModel> List_Pack = new List<PackModel>();
  3605. int ZQty = 0;
  3606. if (createPackCount > 0)
  3607. {
  3608. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3609. if (Pack_YuShu == 0)
  3610. {
  3611. PackCount = (createPageCount / createPackCount);
  3612. }
  3613. else
  3614. {
  3615. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3616. }
  3617. for (int jj = 0; jj < createPackCount; jj++)
  3618. {
  3619. object CARID = Guid.NewGuid();
  3620. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3621. sql += @" INSERT INTO dbo.ICSContainer
  3622. ( ID,ContainerCode ,
  3623. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3624. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3625. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3626. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3627. PackModel PP = new PackModel();
  3628. PP.ID = CARID.ToString();
  3629. PP.PackCode = Carton;
  3630. if (jj < Pack_YuShu)
  3631. {
  3632. PP.FristBarIndex = ZQty;
  3633. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3634. }
  3635. else
  3636. {
  3637. PP.FristBarIndex = ZQty;
  3638. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3639. }
  3640. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3641. List_Pack.Add(PP);
  3642. }
  3643. }
  3644. #endregion
  3645. for (int i = 0; i < createPageCount; i++)
  3646. {
  3647. if (i + 1 == createPageCount)
  3648. {
  3649. if (minPackQty * createPageCount > thisCreateQty)
  3650. {
  3651. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3652. }
  3653. }
  3654. 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();
  3655. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3656. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3657. bool flag = true;
  3658. foreach (var item in ExtensionIDList)
  3659. {
  3660. if (item == Colspan + WorkPoint)
  3661. {
  3662. flag = false;
  3663. }
  3664. }
  3665. if (ExtensionID == null && flag == true)
  3666. {
  3667. str1 = Guid.NewGuid().ToString();
  3668. 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)
  3669. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3670. 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(),
  3671. MUSER, MUSERNAME, WorkPoints);
  3672. }
  3673. else if (ExtensionID != null)
  3674. {
  3675. str1 = ExtensionID.ToString();
  3676. }
  3677. ExtensionIDList.Add(Colspan + WorkPoint);
  3678. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3679. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3680. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3681. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3682. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3683. //{
  3684. sql += string.Format(@"
  3685. insert into ICSInventoryLot
  3686. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3687. select
  3688. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3689. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3690. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3691. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3692. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3693. sql += "\r\n";
  3694. //装箱的功能
  3695. if (List_Pack.Count > 0)
  3696. {
  3697. PackModel mm = new PackModel();
  3698. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3699. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3700. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3701. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3702. }
  3703. //}
  3704. }
  3705. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3706. return count;
  3707. }
  3708. /// <summary>
  3709. /// 点击审核到货单生成条码(审核到货单)
  3710. /// </summary>
  3711. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3712. {
  3713. DataTable dt = new DataTable();
  3714. object Figure = GetDecimalDigits();
  3715. List<DbParameter> parameter = new List<DbParameter>();
  3716. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn003', " + Quantity + ",1,1,'')";
  3717. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3718. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3719. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3720. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3721. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  3722. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  3723. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3724. from ICSDeliveryNotice a
  3725. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3726. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3727. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10'
  3728. where isnull(a.EATTRIBUTE1,'')=''
  3729. group by b.TransCode,b.TransSequence
  3730. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  3731. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3732. WHERE a.DNType='3'
  3733. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  3734. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3735. sql = string.Format(sql, Figure);
  3736. return Repository().FindTableBySql(sql.ToString());
  3737. }
  3738. /// <summary>
  3739. /// 点击审核委外到货单生成条码(审核委外到货单)
  3740. /// </summary>
  3741. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3742. {
  3743. DataTable dt = new DataTable();
  3744. object Figure = GetDecimalDigits();
  3745. List<DbParameter> parameter = new List<DbParameter>();
  3746. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn006', " + Quantity + ",1,1,'')";
  3747. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3748. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3749. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3750. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  3751. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3752. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3753. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  3754. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  3755. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3756. from ICSODeliveryNotice a
  3757. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3758. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3759. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11'
  3760. where isnull(a.EATTRIBUTE1,'')=''
  3761. group by b.TransCode,b.TransSequence
  3762. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  3763. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3764. WHERE a.ODNType='3'
  3765. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  3766. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3767. sql = string.Format(sql, Figure);
  3768. return Repository().FindTableBySql(sql.ToString());
  3769. }
  3770. //获取委外退料源头条码
  3771. public DataTable GetWeiWaiTLSrcLot(string OApplyNegCode, string Sequence, string WorkPoint)
  3772. {
  3773. DataTable dt = new DataTable();
  3774. List<DbParameter> parameter = new List<DbParameter>();
  3775. string sql = @"select C.LotNo from ICSOApplyNegDetail A
  3776. INNER JOIN ICSOIssue B ON B.PickID=A.SourceDetailID AND B.InvCode=A.InvCode
  3777. INNER JOIN ICSWareHouseLotInfoLog C
  3778. ON C.TransCode=B.SourceCode AND SUBSTRING(C.TransSequence,0,CharIndex('~',C.TransSequence))=B.SourceSequence
  3779. AND C.WorkPoint=B.WorkPoint
  3780. AND C.TransType=3 AND C.BusinessCode=5
  3781. where A.OApplyNegCode='" + OApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  3782. order by C.MTIME desc";
  3783. return Repository().FindTableBySql(sql.ToString());
  3784. }
  3785. //获取领料申请源头条码
  3786. public DataTable GetLLSQSrcLot(string ApplyNegCode, string Sequence, string WorkPoint)
  3787. {
  3788. DataTable dt = new DataTable();
  3789. List<DbParameter> parameter = new List<DbParameter>();
  3790. string sql = @"select C.LotNo from ICSMOApplyNegDetail A
  3791. INNER JOIN ICSMOApply B ON B.EATTRIBUTE30=A.SourceDetailID AND B.InvCode=A.InvCode
  3792. INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.ApplyCode AND C.TransSequence=B.Sequence
  3793. AND C.TransType=3 AND C.BusinessCode=14
  3794. where A.ApplyNegCode='" + ApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  3795. order by C.MTIME desc";
  3796. return Repository().FindTableBySql(sql.ToString());
  3797. }
  3798. //获取条码备用字段568(派纳特殊需求---销售退货直接取单据备用字段信息)
  3799. public DataTable GetSSDDocEATTRIBUTEInfo(string SSDCode, string Sequence, string WorkPoint)
  3800. {
  3801. string sql = @"select A.CreateDateTime AS ProductDate,B.BatchCode AS BatchCode,A.EATTRIBUTE3,A.EATTRIBUTE5,A.EATTRIBUTE6,A.EATTRIBUTE8,A.EATTRIBUTE13 from ICSSSD A
  3802. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  3803. where A.SSDCode='" + SSDCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + "'";
  3804. return Repository().FindTableBySql(sql.ToString());
  3805. }
  3806. //获取业务源头条码备用字段456(派纳特殊需求)
  3807. public DataTable GetSrcLotNoInfoPN(string LotNo, string WorkPoint)
  3808. {
  3809. try
  3810. {
  3811. string sql = "SELECT '' AS EATTRIBUTE3,'' AS EATTRIBUTE5,'' AS EATTRIBUTE6,'' AS EATTRIBUTE8,'' AS EATTRIBUTE13 ";
  3812. DataTable dt = new DataTable();
  3813. List<DbParameter> parameter = new List<DbParameter>();
  3814. string lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  3815. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  3816. WHERE A.LotNo='" + LotNo + "' AND A.WorkPoint='" + WorkPoint + "'";
  3817. dt = SqlHelper.GetDataTableBySql(lotsql);
  3818. if (dt.Rows.Count > 0)
  3819. {
  3820. if (dt.Rows[0]["Type"].ToString() == "101" || dt.Rows[0]["Type"].ToString() == "102")//分批合批或形态转换后条码 需要找到最初的原条码确认单据后再取备用字段
  3821. {
  3822. string OriginalLot = LotNo.Split('-')[0];
  3823. lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  3824. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  3825. WHERE A.LotNo='" + OriginalLot + "' AND A.WorkPoint='" + WorkPoint + "'";
  3826. dt = SqlHelper.GetDataTableBySql(lotsql);
  3827. if (dt.Rows.Count == 0)
  3828. {
  3829. return Repository().FindTableBySql(sql.ToString());
  3830. }
  3831. else
  3832. {
  3833. LotNo = OriginalLot;
  3834. }
  3835. }
  3836. if (dt.Rows[0]["Type"].ToString() == "0" || dt.Rows[0]["Type"].ToString() == "2"
  3837. || dt.Rows[0]["Type"].ToString() == "12" || dt.Rows[0]["Type"].ToString() == "24")//期初条码 成品条码 生产退料条码 销售退货条码 取条码备用字段
  3838. {
  3839. sql = @"SELECT B.BatchCode AS BatchCode,A.ProductDate AS ProductDate,A.EATTRIBUTE3 as EATTRIBUTE3,A.EATTRIBUTE5 AS EATTRIBUTE5
  3840. ,A.EATTRIBUTE6 AS EATTRIBUTE6,A.EATTRIBUTE8 AS EATTRIBUTE8,A.EATTRIBUTE13 AS EATTRIBUTE13
  3841. from ICSInventoryLot A
  3842. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  3843. where A.LotNo = '" + LotNo + "' and A.WorkPoint = '" + WorkPoint + "'";
  3844. }
  3845. else if (dt.Rows[0]["Type"].ToString() == "22")//采购入库(标准收货单)条码 取单据备用字段
  3846. {
  3847. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3848. LEFT JOIN ICSPurchaseReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3849. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3850. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3851. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3852. }
  3853. else if (dt.Rows[0]["Type"].ToString() == "23")//委外入库(委外收货单)条码 取单据备用字段
  3854. {
  3855. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3856. LEFT JOIN ICSOutsourcingReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3857. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3858. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3859. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3860. }
  3861. else if (dt.Rows[0]["Type"].ToString() == "3")//成品入库(完工申报单)条码 取单据备用字段
  3862. {
  3863. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3864. LEFT JOIN ICSMO B ON B.MOCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3865. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3866. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3867. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3868. }
  3869. else if (dt.Rows[0]["Type"].ToString() == "5")//杂收条码 取单据备用字段
  3870. {
  3871. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3872. LEFT JOIN ICSOtherIn B ON B.InCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3873. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3874. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3875. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3876. }
  3877. }
  3878. return Repository().FindTableBySql(sql.ToString());
  3879. }
  3880. catch (Exception ex)
  3881. {
  3882. throw new Exception(ex.Message);
  3883. }
  3884. }
  3885. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3886. {
  3887. DataTable dt = new DataTable();
  3888. object Figure = GetDecimalDigits();
  3889. List<DbParameter> parameter = new List<DbParameter>();
  3890. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn018', " + Quantity + ",1,2,'')";
  3891. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3892. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3893. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3894. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  3895. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3896. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3897. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  3898. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  3899. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE6 AS EATTRIBUTE6 ,'' EATTRIBUTE7 ,a.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3900. from ICSMOApplyNegDetail a
  3901. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3902. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3903. left join (
  3904. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3905. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12'
  3906. where isnull(a.EATTRIBUTE1,'')=''
  3907. group by b.TransCode,b.TransSequence
  3908. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  3909. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  3910. WHERE d.Type='2' and d.Status='2'
  3911. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  3912. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3913. sql = string.Format(sql, Figure);
  3914. return Repository().FindTableBySql(sql.ToString());
  3915. }
  3916. //领料申请退料生成条码
  3917. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  3918. {
  3919. var queryParam = keyValue.ToJObject();
  3920. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3921. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3922. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3923. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3924. decimal LOTQTY = minPackQty;
  3925. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3926. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  3927. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3928. string sql = string.Empty;
  3929. //string VendorLot = queryParam["VendorLot"].ToString();
  3930. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3931. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3932. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3933. string sqls = string.Empty;
  3934. string Colspan = "";
  3935. string str1 = "";
  3936. List<string> ExtensionIDList = new List<string>();
  3937. #region 装箱的功能
  3938. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3939. string VenCode = queryParam["VenCode"].ToString();
  3940. int PackCount = 0;//每箱放的数量
  3941. int Pack_YuShu = 0;//需要平摊的数量
  3942. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3943. List<PackModel> List_Pack = new List<PackModel>();
  3944. int ZQty = 0;
  3945. if (createPackCount > 0)
  3946. {
  3947. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3948. if (Pack_YuShu == 0)
  3949. {
  3950. PackCount = (createPageCount / createPackCount);
  3951. }
  3952. else
  3953. {
  3954. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3955. }
  3956. for (int jj = 0; jj < createPackCount; jj++)
  3957. {
  3958. object CARID = Guid.NewGuid();
  3959. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3960. sql += @" INSERT INTO dbo.ICSContainer
  3961. ( ID,ContainerCode ,
  3962. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3963. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3964. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3965. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3966. PackModel PP = new PackModel();
  3967. PP.ID = CARID.ToString();
  3968. PP.PackCode = Carton;
  3969. if (jj < Pack_YuShu)
  3970. {
  3971. PP.FristBarIndex = ZQty;
  3972. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3973. }
  3974. else
  3975. {
  3976. PP.FristBarIndex = ZQty;
  3977. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3978. }
  3979. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3980. List_Pack.Add(PP);
  3981. }
  3982. }
  3983. #endregion
  3984. for (int i = 0; i < createPageCount; i++)
  3985. {
  3986. if (i + 1 == createPageCount)
  3987. {
  3988. if (minPackQty * createPageCount > thisCreateQty)
  3989. {
  3990. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3991. }
  3992. }
  3993. 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();
  3994. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3995. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3996. bool flag = true;
  3997. foreach (var item in ExtensionIDList)
  3998. {
  3999. if (item == Colspan + WorkPoint)
  4000. {
  4001. flag = false;
  4002. }
  4003. }
  4004. if (ExtensionID == null && flag == true)
  4005. {
  4006. str1 = Guid.NewGuid().ToString();
  4007. 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)
  4008. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4009. 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(),
  4010. MUSER, MUSERNAME, WorkPoints);
  4011. }
  4012. else if (ExtensionID != null)
  4013. {
  4014. str1 = ExtensionID.ToString();
  4015. }
  4016. ExtensionIDList.Add(Colspan + WorkPoint);
  4017. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4018. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4019. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4020. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4021. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4022. //{
  4023. sql += string.Format(@"insert into ICSInventoryLot
  4024. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4025. select
  4026. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4027. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4028. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4029. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4030. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4031. sql += "\r\n";
  4032. //装箱的功能
  4033. if (List_Pack.Count > 0)
  4034. {
  4035. PackModel mm = new PackModel();
  4036. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4037. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4038. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4039. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4040. }
  4041. //}
  4042. }
  4043. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4044. return count;
  4045. }
  4046. public int SubmitFormLLSQTLNew(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4047. {
  4048. var queryParam = keyValue.ToJObject();
  4049. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4050. decimal minPackQty = 1;
  4051. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4052. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  4053. List<decimal> lotQtys = new List<decimal>();
  4054. foreach (var jLotno in jLotnos)
  4055. {
  4056. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  4057. lotQtys.Add(qty);
  4058. }
  4059. int createPageCount = lotQtys.Count();
  4060. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4061. string sql = string.Empty;
  4062. //string VendorLot = queryParam["VendorLot"].ToString();
  4063. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4064. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4065. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4066. string sqls = string.Empty;
  4067. string Colspan = "";
  4068. string str1 = "";
  4069. List<string> ExtensionIDList = new List<string>();
  4070. #region 装箱的功能
  4071. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4072. string VenCode = queryParam["VenCode"].ToString();
  4073. int PackCount = 0;//每箱放的数量
  4074. int Pack_YuShu = 0;//需要平摊的数量
  4075. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4076. List<PackModel> List_Pack = new List<PackModel>();
  4077. int ZQty = 0;
  4078. if (createPackCount > 0)
  4079. {
  4080. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4081. if (Pack_YuShu == 0)
  4082. {
  4083. PackCount = (createPageCount / createPackCount);
  4084. }
  4085. else
  4086. {
  4087. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4088. }
  4089. for (int jj = 0; jj < createPackCount; jj++)
  4090. {
  4091. object CARID = Guid.NewGuid();
  4092. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4093. sql += @" INSERT INTO dbo.ICSContainer
  4094. ( ID,ContainerCode ,
  4095. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4096. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4097. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4098. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4099. PackModel PP = new PackModel();
  4100. PP.ID = CARID.ToString();
  4101. PP.PackCode = Carton;
  4102. if (jj < Pack_YuShu)
  4103. {
  4104. PP.FristBarIndex = ZQty;
  4105. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4106. }
  4107. else
  4108. {
  4109. PP.FristBarIndex = ZQty;
  4110. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4111. }
  4112. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4113. List_Pack.Add(PP);
  4114. }
  4115. }
  4116. #endregion
  4117. for (int i = 0; i < lotQtys.Count(); i++)
  4118. {
  4119. decimal LOTQTY = lotQtys[i];
  4120. 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();
  4121. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4122. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4123. bool flag = true;
  4124. foreach (var item in ExtensionIDList)
  4125. {
  4126. if (item == Colspan + WorkPoint)
  4127. {
  4128. flag = false;
  4129. }
  4130. }
  4131. if (ExtensionID == null && flag == true)
  4132. {
  4133. str1 = Guid.NewGuid().ToString();
  4134. 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)
  4135. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4136. 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(),
  4137. MUSER, MUSERNAME, WorkPoints);
  4138. }
  4139. else if (ExtensionID != null)
  4140. {
  4141. str1 = ExtensionID.ToString();
  4142. }
  4143. ExtensionIDList.Add(Colspan + WorkPoint);
  4144. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4145. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4146. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4147. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4148. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4149. //{
  4150. sql += string.Format(@"insert into ICSInventoryLot
  4151. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE13)
  4152. select
  4153. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}'
  4154. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4155. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  4156. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4157. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString(), queryParam["EATTRIBUTE13"].ToString());
  4158. sql += "\r\n";
  4159. //装箱的功能
  4160. if (List_Pack.Count > 0)
  4161. {
  4162. PackModel mm = new PackModel();
  4163. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4164. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4165. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4166. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4167. }
  4168. //}
  4169. }
  4170. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4171. return count;
  4172. }
  4173. //材料出库退料
  4174. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  4175. {
  4176. DataTable dt = new DataTable();
  4177. var queryParam = queryJson.ToJObject();
  4178. List<DbParameter> parameter = new List<DbParameter>();
  4179. object Figure = GetDecimalDigits();
  4180. #region [SQL]
  4181. string sql = @"
  4182. select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4183. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  4184. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4185. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4186. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4187. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  4188. from ICSMOApplyNegDetail a
  4189. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4190. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4191. left join (
  4192. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4193. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  4194. where isnull(ee.EATTRIBUTE1,'')=''
  4195. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4196. )c
  4197. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4198. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4199. left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint
  4200. WHERE d.Type='3' and d.Status='2' ";
  4201. sql = string.Format(sql, Figure);
  4202. #endregion
  4203. if (!string.IsNullOrWhiteSpace(queryJson))
  4204. {
  4205. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4206. {
  4207. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4208. }
  4209. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4210. {
  4211. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4212. }
  4213. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4214. {
  4215. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4216. }
  4217. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4218. {
  4219. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4220. }
  4221. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  4222. {
  4223. sql += " and g.IssueCode like '%" + queryParam["SCode"].ToString() + "%' ";
  4224. }
  4225. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4226. {
  4227. string POStatus = queryParam["POStatus"].ToString();
  4228. if (POStatus == "0")
  4229. {
  4230. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4231. }
  4232. else if (POStatus == "1")
  4233. {
  4234. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4235. }
  4236. else
  4237. {
  4238. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4239. }
  4240. }
  4241. }
  4242. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4243. {
  4244. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4245. }
  4246. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4247. {
  4248. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4249. }
  4250. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4251. }
  4252. //材料出库退料
  4253. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4254. {
  4255. DataTable dt = new DataTable();
  4256. object Figure = GetDecimalDigits();
  4257. List<DbParameter> parameter = new List<DbParameter>();
  4258. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn019', " + Quantity + ",1,2,'')";
  4259. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4260. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4261. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4262. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4263. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4264. ,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,
  4265. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4266. from ICSMOApplyNegDetail a
  4267. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4268. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4269. left join (
  4270. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4271. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13'
  4272. where isnull(a.EATTRIBUTE1,'')=''
  4273. group by b.TransCode,b.TransSequence
  4274. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4275. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4276. WHERE d.Type='3' and d.Status='2'
  4277. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4278. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4279. sql = string.Format(sql, Figure);
  4280. return Repository().FindTableBySql(sql.ToString());
  4281. }
  4282. //材料出库退料生成条码
  4283. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4284. {
  4285. var queryParam = keyValue.ToJObject();
  4286. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4287. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4288. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4289. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4290. decimal LOTQTY = minPackQty;
  4291. string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4292. string sql = string.Empty;
  4293. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4294. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4295. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4296. string sqls = string.Empty;
  4297. string Colspan = "";
  4298. string str1 = "";
  4299. List<string> ExtensionIDList = new List<string>();
  4300. #region 装箱的功能
  4301. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4302. string VenCode = queryParam["VenCode"].ToString();
  4303. int PackCount = 0;//每箱放的数量
  4304. int Pack_YuShu = 0;//需要平摊的数量
  4305. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4306. List<PackModel> List_Pack = new List<PackModel>();
  4307. int ZQty = 0;
  4308. if (createPackCount > 0)
  4309. {
  4310. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4311. if (Pack_YuShu == 0)
  4312. {
  4313. PackCount = (createPageCount / createPackCount);
  4314. }
  4315. else
  4316. {
  4317. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4318. }
  4319. for (int jj = 0; jj < createPackCount; jj++)
  4320. {
  4321. object CARID = Guid.NewGuid();
  4322. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4323. sql += @" INSERT INTO dbo.ICSContainer
  4324. ( ID,ContainerCode ,
  4325. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4326. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4327. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4328. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4329. PackModel PP = new PackModel();
  4330. PP.ID = CARID.ToString();
  4331. PP.PackCode = Carton;
  4332. if (jj < Pack_YuShu)
  4333. {
  4334. PP.FristBarIndex = ZQty;
  4335. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4336. }
  4337. else
  4338. {
  4339. PP.FristBarIndex = ZQty;
  4340. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4341. }
  4342. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4343. List_Pack.Add(PP);
  4344. }
  4345. }
  4346. #endregion
  4347. for (int i = 0; i < createPageCount; i++)
  4348. {
  4349. if (i + 1 == createPageCount)
  4350. {
  4351. if (minPackQty * createPageCount > thisCreateQty)
  4352. {
  4353. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4354. }
  4355. }
  4356. 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();
  4357. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4358. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4359. bool flag = true;
  4360. foreach (var item in ExtensionIDList)
  4361. {
  4362. if (item == Colspan + WorkPoint)
  4363. {
  4364. flag = false;
  4365. }
  4366. }
  4367. if (ExtensionID == null && flag == true)
  4368. {
  4369. str1 = Guid.NewGuid().ToString();
  4370. 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)
  4371. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4372. 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(),
  4373. MUSER, MUSERNAME, WorkPoints);
  4374. }
  4375. else if (ExtensionID != null)
  4376. {
  4377. str1 = ExtensionID.ToString();
  4378. }
  4379. ExtensionIDList.Add(Colspan + WorkPoint);
  4380. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4381. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4382. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4383. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4384. sql += string.Format(@"insert into ICSInventoryLot
  4385. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4386. select
  4387. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4388. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4389. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4390. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4391. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4392. sql += "\r\n";
  4393. //装箱的功能
  4394. if (List_Pack.Count > 0)
  4395. {
  4396. PackModel mm = new PackModel();
  4397. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4398. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4399. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4400. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4401. }
  4402. }
  4403. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4404. return count;
  4405. }
  4406. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  4407. {
  4408. DataTable dt = new DataTable();
  4409. var queryParam = queryJson.ToJObject();
  4410. List<DbParameter> parameter = new List<DbParameter>();
  4411. object Figure = GetDecimalDigits();
  4412. #region [SQL]
  4413. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4414. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,
  4415. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4416. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4417. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  4418. a.EATTRIBUTE9,a.EATTRIBUTE10
  4419. from ICSOApplyNegDetail a
  4420. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4421. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4422. left join (
  4423. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4424. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  4425. where isnull(ee.EATTRIBUTE1,'')=''
  4426. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4427. )c
  4428. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4429. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4430. WHERE d.Type='2'";
  4431. sql = string.Format(sql, Figure);
  4432. #endregion
  4433. if (!string.IsNullOrWhiteSpace(queryJson))
  4434. {
  4435. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4436. {
  4437. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4438. }
  4439. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4440. {
  4441. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4442. }
  4443. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4444. {
  4445. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4446. }
  4447. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4448. {
  4449. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4450. }
  4451. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4452. {
  4453. string POStatus = queryParam["POStatus"].ToString();
  4454. if (POStatus == "0")
  4455. {
  4456. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4457. }
  4458. else if (POStatus == "1")
  4459. {
  4460. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4461. }
  4462. else
  4463. {
  4464. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4465. }
  4466. }
  4467. }
  4468. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4469. {
  4470. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4471. }
  4472. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4473. {
  4474. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4475. }
  4476. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4477. }
  4478. /// <summary>
  4479. /// 点击委外领料退料生成条码
  4480. /// </summary>
  4481. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4482. {
  4483. DataTable dt = new DataTable();
  4484. object Figure = GetDecimalDigits();
  4485. List<DbParameter> parameter = new List<DbParameter>();
  4486. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn009', " + Quantity + ",1,1,'')";
  4487. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4488. string sql = @"
  4489. select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  4490. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4491. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4492. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4493. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  4494. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4495. from ICSOApplyNegDetail a
  4496. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4497. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4498. left join (
  4499. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4500. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14'
  4501. where isnull(a.EATTRIBUTE1,'')=''
  4502. group by b.TransCode,b.TransSequence
  4503. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4504. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4505. WHERE d.Type='2'
  4506. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4507. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4508. sql = string.Format(sql, Figure);
  4509. return Repository().FindTableBySql(sql.ToString());
  4510. }
  4511. //委外领料申请退料
  4512. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4513. {
  4514. var queryParam = keyValue.ToJObject();
  4515. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4516. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4517. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4518. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4519. decimal LOTQTY = minPackQty;
  4520. string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4521. string sql = string.Empty;
  4522. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4523. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4524. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4525. string sqls = string.Empty;
  4526. string Colspan = "";
  4527. string str1 = "";
  4528. List<string> ExtensionIDList = new List<string>();
  4529. #region 装箱的功能
  4530. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4531. string VenCode = queryParam["VenCode"].ToString();
  4532. int PackCount = 0;//每箱放的数量
  4533. int Pack_YuShu = 0;//需要平摊的数量
  4534. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4535. List<PackModel> List_Pack = new List<PackModel>();
  4536. int ZQty = 0;
  4537. if (createPackCount > 0)
  4538. {
  4539. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4540. if (Pack_YuShu == 0)
  4541. {
  4542. PackCount = (createPageCount / createPackCount);
  4543. }
  4544. else
  4545. {
  4546. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4547. }
  4548. for (int jj = 0; jj < createPackCount; jj++)
  4549. {
  4550. object CARID = Guid.NewGuid();
  4551. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4552. sql += @" INSERT INTO dbo.ICSContainer
  4553. ( ID,ContainerCode ,
  4554. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4555. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4556. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4557. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4558. PackModel PP = new PackModel();
  4559. PP.ID = CARID.ToString();
  4560. PP.PackCode = Carton;
  4561. if (jj < Pack_YuShu)
  4562. {
  4563. PP.FristBarIndex = ZQty;
  4564. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4565. }
  4566. else
  4567. {
  4568. PP.FristBarIndex = ZQty;
  4569. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4570. }
  4571. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4572. List_Pack.Add(PP);
  4573. }
  4574. }
  4575. #endregion
  4576. for (int i = 0; i < createPageCount; i++)
  4577. {
  4578. if (i + 1 == createPageCount)
  4579. {
  4580. if (minPackQty * createPageCount > thisCreateQty)
  4581. {
  4582. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4583. }
  4584. }
  4585. 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();
  4586. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4587. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4588. bool flag = true;
  4589. foreach (var item in ExtensionIDList)
  4590. {
  4591. if (item == Colspan + WorkPoint)
  4592. {
  4593. flag = false;
  4594. }
  4595. }
  4596. if (ExtensionID == null && flag == true)
  4597. {
  4598. str1 = Guid.NewGuid().ToString();
  4599. 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)
  4600. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4601. 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(),
  4602. MUSER, MUSERNAME, WorkPoints);
  4603. }
  4604. else if (ExtensionID != null)
  4605. {
  4606. str1 = ExtensionID.ToString();
  4607. }
  4608. ExtensionIDList.Add(Colspan + WorkPoint);
  4609. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4610. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4611. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4612. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4613. sql += string.Format(@"insert into ICSInventoryLot
  4614. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4615. select
  4616. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4617. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4618. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4619. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4620. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4621. sql += "\r\n";
  4622. //装箱的功能
  4623. if (List_Pack.Count > 0)
  4624. {
  4625. PackModel mm = new PackModel();
  4626. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4627. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4628. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4629. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4630. }
  4631. }
  4632. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4633. return count;
  4634. }
  4635. //委外材料出库
  4636. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  4637. {
  4638. DataTable dt = new DataTable();
  4639. var queryParam = queryJson.ToJObject();
  4640. List<DbParameter> parameter = new List<DbParameter>();
  4641. object Figure = GetDecimalDigits();
  4642. #region [SQL]
  4643. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4644. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,
  4645. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4646. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4647. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  4648. a.EATTRIBUTE9,a.EATTRIBUTE10
  4649. from ICSOApplyNegDetail a
  4650. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4651. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4652. left join (
  4653. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4654. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  4655. where isnull(ee.EATTRIBUTE1,'')=''
  4656. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4657. )c
  4658. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4659. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4660. WHERE d.Type='3'";
  4661. sql = string.Format(sql, Figure);
  4662. #endregion
  4663. if (!string.IsNullOrWhiteSpace(queryJson))
  4664. {
  4665. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4666. {
  4667. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4668. }
  4669. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4670. {
  4671. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4672. }
  4673. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4674. {
  4675. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4676. }
  4677. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4678. {
  4679. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4680. }
  4681. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4682. {
  4683. string POStatus = queryParam["POStatus"].ToString();
  4684. if (POStatus == "0")
  4685. {
  4686. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4687. }
  4688. else if (POStatus == "1")
  4689. {
  4690. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4691. }
  4692. else
  4693. {
  4694. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4695. }
  4696. }
  4697. }
  4698. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4699. {
  4700. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4701. }
  4702. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4703. {
  4704. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4705. }
  4706. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4707. }
  4708. //委外材料出库
  4709. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4710. {
  4711. DataTable dt = new DataTable();
  4712. object Figure = GetDecimalDigits();
  4713. List<DbParameter> parameter = new List<DbParameter>();
  4714. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn010', " + Quantity + ",1,1,'')";
  4715. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4716. string sql = @"
  4717. select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  4718. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4719. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4720. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4721. ,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,
  4722. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4723. from ICSOApplyNegDetail a
  4724. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4725. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4726. left join (
  4727. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4728. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15'
  4729. where isnull(a.EATTRIBUTE1,'')=''
  4730. group by b.TransCode,b.TransSequence
  4731. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4732. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4733. WHERE d.Type='3'
  4734. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4735. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4736. sql = string.Format(sql, Figure);
  4737. return Repository().FindTableBySql(sql.ToString());
  4738. }
  4739. //委外材料出库
  4740. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4741. {
  4742. var queryParam = keyValue.ToJObject();
  4743. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4744. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4745. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4746. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4747. decimal LOTQTY = minPackQty;
  4748. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4749. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  4750. string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4751. string sql = string.Empty;
  4752. //string VendorLot = queryParam["VendorLot"].ToString();
  4753. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4754. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4755. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4756. string sqls = string.Empty;
  4757. string Colspan = "";
  4758. string str1 = "";
  4759. List<string> ExtensionIDList = new List<string>();
  4760. #region 装箱的功能
  4761. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4762. string VenCode = queryParam["VenCode"].ToString();
  4763. int PackCount = 0;//每箱放的数量
  4764. int Pack_YuShu = 0;//需要平摊的数量
  4765. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4766. List<PackModel> List_Pack = new List<PackModel>();
  4767. int ZQty = 0;
  4768. if (createPackCount > 0)
  4769. {
  4770. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4771. if (Pack_YuShu == 0)
  4772. {
  4773. PackCount = (createPageCount / createPackCount);
  4774. }
  4775. else
  4776. {
  4777. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4778. }
  4779. for (int jj = 0; jj < createPackCount; jj++)
  4780. {
  4781. object CARID = Guid.NewGuid();
  4782. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4783. sql += @" INSERT INTO dbo.ICSContainer
  4784. ( ID,ContainerCode ,
  4785. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4786. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4787. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4788. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4789. PackModel PP = new PackModel();
  4790. PP.ID = CARID.ToString();
  4791. PP.PackCode = Carton;
  4792. if (jj < Pack_YuShu)
  4793. {
  4794. PP.FristBarIndex = ZQty;
  4795. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4796. }
  4797. else
  4798. {
  4799. PP.FristBarIndex = ZQty;
  4800. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4801. }
  4802. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4803. List_Pack.Add(PP);
  4804. }
  4805. }
  4806. #endregion
  4807. for (int i = 0; i < createPageCount; i++)
  4808. {
  4809. if (i + 1 == createPageCount)
  4810. {
  4811. if (minPackQty * createPageCount > thisCreateQty)
  4812. {
  4813. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4814. }
  4815. }
  4816. 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();
  4817. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4818. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4819. bool flag = true;
  4820. foreach (var item in ExtensionIDList)
  4821. {
  4822. if (item == Colspan + WorkPoint)
  4823. {
  4824. flag = false;
  4825. }
  4826. }
  4827. if (ExtensionID == null && flag == true)
  4828. {
  4829. str1 = Guid.NewGuid().ToString();
  4830. 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)
  4831. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4832. 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(),
  4833. MUSER, MUSERNAME, WorkPoints);
  4834. }
  4835. else if (ExtensionID != null)
  4836. {
  4837. str1 = ExtensionID.ToString();
  4838. }
  4839. ExtensionIDList.Add(Colspan + WorkPoint);
  4840. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4841. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4842. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4843. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4844. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4845. //{
  4846. sql += string.Format(@"insert into ICSInventoryLot
  4847. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4848. select
  4849. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  4850. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4851. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4852. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4853. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4854. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4855. sql += "\r\n";
  4856. //装箱的功能
  4857. if (List_Pack.Count > 0)
  4858. {
  4859. PackModel mm = new PackModel();
  4860. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4861. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4862. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4863. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4864. }
  4865. //}
  4866. }
  4867. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4868. return count;
  4869. }
  4870. public DataTable SelectICSExtensionEnable()
  4871. {
  4872. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4873. string sql = @"select ColCode from ICSExtensionEnable
  4874. where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
  4875. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4876. return dt;
  4877. }
  4878. public DataTable GetComplete()
  4879. {
  4880. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4881. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
  4882. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4883. return dt;
  4884. }
  4885. public DataTable GetWWComplete()
  4886. {
  4887. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4888. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004' and WorkPoint='" + WorkPoints + "'";
  4889. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4890. return dt;
  4891. }
  4892. //返工工单
  4893. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  4894. {
  4895. DataTable dt = new DataTable();
  4896. var queryParam = queryJson.ToJObject();
  4897. List<DbParameter> parameter = new List<DbParameter>();
  4898. object Figure = GetDecimalDigits();
  4899. #region [SQL]
  4900. string sql = @"select a.ID,d.MOCode,d.Sequence+'~'+ a.Sequence as Sequence,a.PickID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4901. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  4902. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4903. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4904. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4905. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  4906. a.EATTRIBUTE9,a.EATTRIBUTE10
  4907. from ICSMOPick a
  4908. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4909. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4910. left join (
  4911. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4912. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  4913. where isnull(ee.EATTRIBUTE1,'')=''
  4914. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4915. )c
  4916. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4917. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4918. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  4919. sql = string.Format(sql, Figure);
  4920. #endregion
  4921. if (!string.IsNullOrWhiteSpace(queryJson))
  4922. {
  4923. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4924. {
  4925. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4926. }
  4927. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4928. {
  4929. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4930. }
  4931. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4932. {
  4933. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4934. }
  4935. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4936. {
  4937. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4938. }
  4939. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4940. {
  4941. string POStatus = queryParam["POStatus"].ToString();
  4942. if (POStatus == "0")
  4943. {
  4944. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4945. }
  4946. else if (POStatus == "1")
  4947. {
  4948. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4949. }
  4950. else
  4951. {
  4952. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4953. }
  4954. }
  4955. }
  4956. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4957. {
  4958. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4959. }
  4960. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4961. {
  4962. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4963. }
  4964. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4965. }
  4966. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4967. {
  4968. DataTable dt = new DataTable();
  4969. object Figure = GetDecimalDigits();
  4970. List<DbParameter> parameter = new List<DbParameter>();
  4971. // string sql = @"
  4972. //select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
  4973. //CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
  4974. //,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10
  4975. // from ICSMOPick a
  4976. // left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4977. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4978. // left join (
  4979. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4980. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  4981. //where isnull(a.EATTRIBUTE1,'')=''
  4982. // group by b.TransCode,b.TransSequence
  4983. // ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  4984. // left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4985. // WHERE 1=1
  4986. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn015', " + Quantity + ",1,2,'')";
  4987. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4988. string sql = @"
  4989. select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  4990. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4991. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4992. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4993. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  4994. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4995. from ICSMOPick a
  4996. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4997. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4998. left join (
  4999. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5000. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5001. where isnull(a.EATTRIBUTE1,'')=''
  5002. group by b.TransCode,b.TransSequence
  5003. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5004. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5005. WHERE 1=1
  5006. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  5007. sql += " and a.WorkPoint='" + WorkPoint + "'";
  5008. sql = string.Format(sql, Figure);
  5009. return Repository().FindTableBySql(sql.ToString());
  5010. }
  5011. //返工工单
  5012. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  5013. {
  5014. var queryParam = keyValue.ToJObject();
  5015. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5016. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5017. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5018. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5019. decimal LOTQTY = minPackQty;
  5020. Sequence = Sequence.Replace("~", "");
  5021. string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5022. string sql = string.Empty;
  5023. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5024. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5025. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5026. string sqls = string.Empty;
  5027. string Colspan = "";
  5028. string str1 = "";
  5029. List<string> ExtensionIDList = new List<string>();
  5030. #region 装箱的功能
  5031. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5032. string VenCode = queryParam["VenCode"].ToString();
  5033. int PackCount = 0;//每箱放的数量
  5034. int Pack_YuShu = 0;//需要平摊的数量
  5035. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5036. List<PackModel> List_Pack = new List<PackModel>();
  5037. int ZQty = 0;
  5038. if (createPackCount > 0)
  5039. {
  5040. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5041. if (Pack_YuShu == 0)
  5042. {
  5043. PackCount = (createPageCount / createPackCount);
  5044. }
  5045. else
  5046. {
  5047. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5048. }
  5049. for (int jj = 0; jj < createPackCount; jj++)
  5050. {
  5051. object CARID = Guid.NewGuid();
  5052. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5053. sql += @" INSERT INTO dbo.ICSContainer
  5054. ( ID,ContainerCode ,
  5055. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5056. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5057. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5058. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5059. PackModel PP = new PackModel();
  5060. PP.ID = CARID.ToString();
  5061. PP.PackCode = Carton;
  5062. if (jj < Pack_YuShu)
  5063. {
  5064. PP.FristBarIndex = ZQty;
  5065. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5066. }
  5067. else
  5068. {
  5069. PP.FristBarIndex = ZQty;
  5070. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5071. }
  5072. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5073. List_Pack.Add(PP);
  5074. }
  5075. }
  5076. #endregion
  5077. for (int i = 0; i < createPageCount; i++)
  5078. {
  5079. if (i + 1 == createPageCount)
  5080. {
  5081. if (minPackQty * createPageCount > thisCreateQty)
  5082. {
  5083. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5084. }
  5085. }
  5086. 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();
  5087. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5088. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5089. bool flag = true;
  5090. foreach (var item in ExtensionIDList)
  5091. {
  5092. if (item == Colspan + WorkPoint)
  5093. {
  5094. flag = false;
  5095. }
  5096. }
  5097. if (ExtensionID == null && flag == true)
  5098. {
  5099. str1 = Guid.NewGuid().ToString();
  5100. 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)
  5101. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5102. 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(),
  5103. MUSER, MUSERNAME, WorkPoints);
  5104. }
  5105. else if (ExtensionID != null)
  5106. {
  5107. str1 = ExtensionID.ToString();
  5108. }
  5109. ExtensionIDList.Add(Colspan + WorkPoint);
  5110. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5111. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5112. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5113. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5114. sql += string.Format(@"insert into ICSInventoryLot
  5115. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5116. select
  5117. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5118. from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint where d.MOCode='{6}' and d.Sequence+'~'+a.Sequence='{7}' and a.WorkPoint='{5}' ",
  5119. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5120. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5121. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5122. sql += "\r\n";
  5123. //装箱的功能
  5124. if (List_Pack.Count > 0)
  5125. {
  5126. PackModel mm = new PackModel();
  5127. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5128. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5129. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5130. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5131. }
  5132. }
  5133. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5134. return count;
  5135. }
  5136. /// <summary>
  5137. /// 锐腾获取单据信息
  5138. /// </summary>
  5139. /// <param name="FGGDMOCode"></param>
  5140. /// <param name="Sequence"></param>
  5141. /// <param name="WorkPoint"></param>
  5142. /// <returns></returns>
  5143. public DataTable GetSubGridJsonTransferByCreate(string TransferNO, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5144. {
  5145. DataTable dt = new DataTable();
  5146. object Figure = GetDecimalDigits();
  5147. List<DbParameter> parameter = new List<DbParameter>();
  5148. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn025', " + Quantity + ",1,2,'')";
  5149. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5150. string sql = $@"SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit, CAST ( " + Num + @" AS DECIMAL ( 18,6 )) AS Amount, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 18,6 ) ) AS CreatedQty, CAST ( ( " + Num + $@"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 18,6 ) ) AS thisCreateQty, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 18,6 ) ) AS EffectiveDays, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,isnull(b.EATTRIBUTE2,'') as MPQ,
  5151. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5152. FROM
  5153. ICSTransfer a
  5154. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  5155. LEFT JOIN (
  5156. SELECT
  5157. b.TransCode,
  5158. b.TransSequence,
  5159. SUM ( isnull( Quantity, 0 ) ) LOTQTY
  5160. FROM
  5161. ICSInventoryLot a
  5162. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo
  5163. AND a.Type= '19'
  5164. WHERE
  5165. isnull( a.EATTRIBUTE1, '' ) = ''
  5166. GROUP BY
  5167. b.TransCode,
  5168. b.TransSequence
  5169. ) c ON a.TransferNO= c.TransCode
  5170. AND a.Sequence= c.TransSequence
  5171. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID
  5172. AND a.WorkPoint= e.WorkPoint
  5173. WHERE
  5174. 1 = 1
  5175. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  5176. and a.WorkPoint='{WorkPoint}'";
  5177. sql = string.Format(sql, Figure);
  5178. return Repository().FindTableBySql(sql.ToString());
  5179. }
  5180. /// <summary>
  5181. /// 锐腾两步调入单生成条码
  5182. /// </summary>
  5183. /// <param name="TransferNO"></param>
  5184. /// <param name="Sequence"></param>
  5185. /// <param name="keyValue"></param>
  5186. /// <param name="WorkPoint"></param>
  5187. /// <returns></returns>
  5188. public int SubmitFormTransfer(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  5189. {
  5190. var queryParam = keyValue.ToJObject();
  5191. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5192. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5193. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5194. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5195. decimal LOTQTY = minPackQty;
  5196. Sequence = Sequence.Replace("~", "");
  5197. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  5198. string sql = string.Empty;
  5199. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5200. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5201. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5202. string sqls = string.Empty;
  5203. string Colspan = "";
  5204. string str1 = "";
  5205. List<string> ExtensionIDList = new List<string>();
  5206. #region 装箱的功能
  5207. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5208. string VenCode = queryParam["VenCode"].ToString();
  5209. int PackCount = 0;//每箱放的数量
  5210. int Pack_YuShu = 0;//需要平摊的数量
  5211. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5212. List<PackModel> List_Pack = new List<PackModel>();
  5213. int ZQty = 0;
  5214. if (createPackCount > 0)
  5215. {
  5216. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5217. if (Pack_YuShu == 0)
  5218. {
  5219. PackCount = (createPageCount / createPackCount);
  5220. }
  5221. else
  5222. {
  5223. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5224. }
  5225. for (int jj = 0; jj < createPackCount; jj++)
  5226. {
  5227. object CARID = Guid.NewGuid();
  5228. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5229. sql += @" INSERT INTO dbo.ICSContainer
  5230. ( ID,ContainerCode ,
  5231. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5232. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5233. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5234. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5235. PackModel PP = new PackModel();
  5236. PP.ID = CARID.ToString();
  5237. PP.PackCode = Carton;
  5238. if (jj < Pack_YuShu)
  5239. {
  5240. PP.FristBarIndex = ZQty;
  5241. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5242. }
  5243. else
  5244. {
  5245. PP.FristBarIndex = ZQty;
  5246. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5247. }
  5248. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5249. List_Pack.Add(PP);
  5250. }
  5251. }
  5252. #endregion
  5253. for (int i = 0; i < createPageCount; i++)
  5254. {
  5255. if (i + 1 == createPageCount)
  5256. {
  5257. if (minPackQty * createPageCount > thisCreateQty)
  5258. {
  5259. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5260. }
  5261. }
  5262. 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();
  5263. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5264. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5265. bool flag = true;
  5266. foreach (var item in ExtensionIDList)
  5267. {
  5268. if (item == Colspan + WorkPoint)
  5269. {
  5270. flag = false;
  5271. }
  5272. }
  5273. if (ExtensionID == null && flag == true)
  5274. {
  5275. str1 = Guid.NewGuid().ToString();
  5276. 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)
  5277. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5278. 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(),
  5279. MUSER, MUSERNAME, WorkPoints);
  5280. }
  5281. else if (ExtensionID != null)
  5282. {
  5283. str1 = ExtensionID.ToString();
  5284. }
  5285. ExtensionIDList.Add(Colspan + WorkPoint);
  5286. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5287. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5288. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5289. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5290. sql += string.Format(@"insert into ICSInventoryLot
  5291. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5292. select
  5293. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','20','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5294. from ICSTransfer a where a.TransferNO='{6}' and a.Sequence='{7}' and a.WorkPoint='{5}' ",
  5295. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5296. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5297. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5298. sql += "\r\n";
  5299. //装箱的功能
  5300. if (List_Pack.Count > 0)
  5301. {
  5302. PackModel mm = new PackModel();
  5303. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5304. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5305. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5306. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5307. }
  5308. }
  5309. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5310. return count;
  5311. }
  5312. public object GetDecimalDigits()
  5313. {
  5314. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5315. try
  5316. {
  5317. string sql = string.Empty;
  5318. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
  5319. object Figure = SqlHelper.ExecuteScalar(sql);
  5320. return Figure;
  5321. }
  5322. catch (Exception ex)
  5323. {
  5324. throw new Exception(ex.Message.ToString());
  5325. }
  5326. }
  5327. /// <summary>
  5328. /// 生成条码导出
  5329. /// </summary>
  5330. /// <param name="ProductBrand"></param>
  5331. /// <param name="cCusName"></param>
  5332. /// <param name="DesignAddRate"></param>
  5333. /// <returns></returns>
  5334. public DataTable StatementExportAll(string Type, string ID)
  5335. {
  5336. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5337. string sql = string.Empty;
  5338. object Figure = GetDecimalDigits();
  5339. string TableCode = string.Empty;
  5340. #region sql语句
  5341. if (Type == "1") //生产退料
  5342. {
  5343. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(38,{0})) as 数量
  5344. ,CAST(a.Amount AS DECIMAL(38,{0})) as , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 退 ,a.MUSERName as ,a.MTIME as , CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5345. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5346. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5347. a.EATTRIBUTE9,a.EATTRIBUTE10
  5348. from ICSMOApplyNegDetail a
  5349. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5350. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5351. left join (
  5352. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5353. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  5354. where isnull(ee.EATTRIBUTE1,'')=''
  5355. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5356. )c
  5357. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5358. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5359. where d.Type='1' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5360. TableCode = "ICSMOApplyNegDetail";
  5361. }
  5362. if (Type == "2") //委外退料
  5363. {
  5364. sql = @"select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(38,{0})) as 数量
  5365. ,CAST(a.Amount AS DECIMAL(38,{0})) as , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 退 ,a.MUSERName as ,a.MTIME as , CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5366. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5367. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5368. a.EATTRIBUTE9,a.EATTRIBUTE10
  5369. from ICSOApplyNegDetail a
  5370. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5371. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5372. left join (
  5373. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5374. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  5375. where isnull(ee.EATTRIBUTE1,'')=''
  5376. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5377. )c
  5378. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5379. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5380. WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5381. TableCode = "ICSOApplyNegDetail";
  5382. }
  5383. if (Type == "3")//工单成品生成条码
  5384. {
  5385. sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
  5386. ,CAST( a.Quantity AS DECIMAL(38,{0})) as ,CAST( a.Amount as DECIMAL(38,{0})) as
  5387. ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5388. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5389. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5390. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5391. a.EATTRIBUTE9,a.EATTRIBUTE10
  5392. from ICSMO a
  5393. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5394. left join (
  5395. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5396. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  5397. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5398. )c
  5399. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5400. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5401. WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
  5402. TableCode = "ICSMO";
  5403. }
  5404. if (Type == "4")//销售退货
  5405. {
  5406. sql = @"select a.SDNCode as 单据号,a.Sequence as 行号,a.SOCode as 销售订单号,a.SOSequence as 销售订单行号,a.CusCode as 客户代码 ,a.CusName as 客户名称 ,a.ArriveDate as 发货日期,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位,CAST(a.Quantity AS DECIMAL(38,{0})) as 数量
  5407. ,cast(a.Amount as decimal(38,{0})) as , CAST(a.SDNQuantity AS DECIMAL(38,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5408. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5409. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5410. a.EATTRIBUTE9,a.EATTRIBUTE10
  5411. from ICSSDN a
  5412. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5413. left join (
  5414. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5415. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  5416. where isnull(ee.EATTRIBUTE1,'')=''
  5417. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5418. )c
  5419. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5420. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5421. where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
  5422. TableCode = "ICSSDN";
  5423. }
  5424. if (Type == "5")//其它入库生成条码
  5425. {
  5426. sql = @"select a.InCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库编码,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号 ,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  5427. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as , CAST(a.InQuantity AS DECIMAL(38,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5428. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5429. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5430. a.EATTRIBUTE9,a.EATTRIBUTE10
  5431. from ICSOtherIn a
  5432. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5433. left join (
  5434. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5435. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  5436. where isnull(ee.EATTRIBUTE1,'')=''
  5437. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5438. )c
  5439. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5440. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5441. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5442. TableCode = "ICSOtherIn";
  5443. }
  5444. if (Type == "6")//归还单生成条码
  5445. {
  5446. sql = @" select a.ReturnCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库编码,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位
  5447. ,CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as , CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5448. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5449. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5450. a.EATTRIBUTE9,a.EATTRIBUTE10
  5451. from ICSReturn a
  5452. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5453. left join (
  5454. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5455. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  5456. where isnull(ee.EATTRIBUTE1,'')=''
  5457. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5458. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5459. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5460. where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5461. TableCode = "ICSReturn";
  5462. }
  5463. if (Type == "7")//*审核到货单生成条码
  5464. {
  5465. sql = @"select d.POCode as 采购订单号,d.Sequence as 采购订单行号,a.DNCode as 单据号,a.Sequence as 行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  5466. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as ,a.Currency as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5467. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5468. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5469. a.EATTRIBUTE9,a.EATTRIBUTE10
  5470. from ICSDeliveryNotice a
  5471. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5472. left join (
  5473. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5474. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  5475. where isnull(ee.EATTRIBUTE1,'')=''
  5476. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5477. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5478. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5479. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5480. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5481. where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5482. TableCode = "ICSDeliveryNotice";
  5483. }
  5484. if (Type == "8")//审核委外到货单生成条码
  5485. {
  5486. sql = @"select d.OOCode as 委外采购订单号,d.Sequence as 委外采购订单行号,a.ODNCode as 单据号,a.Sequence as 行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as ,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as 入库数量,a.Currency as 币种,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,
  5487. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5488. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5489. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5490. a.EATTRIBUTE9,a.EATTRIBUTE10
  5491. from ICSODeliveryNotice a
  5492. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5493. left join (
  5494. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5495. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  5496. where isnull(ee.EATTRIBUTE1,'')=''
  5497. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5498. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5499. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5500. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5501. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5502. where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5503. TableCode = "ICSODeliveryNotice";
  5504. }
  5505. if (Type == "9")//开立得成品入库单 生成条码
  5506. {
  5507. sql = @"select a.RCVCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库号,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,
  5508. CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5509. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5510. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5511. a.EATTRIBUTE9,a.EATTRIBUTE10
  5512. from ICSManufactureReceive a
  5513. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5514. left join (
  5515. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5516. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  5517. where isnull(ee.EATTRIBUTE1,'')=''
  5518. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5519. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5520. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5521. where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5522. TableCode = "ICSManufactureReceive";
  5523. }
  5524. if (Type == "10")//采购拒收单
  5525. {
  5526. sql = @"select a.DNCode as 拒收单号 ,a.Sequence as 拒收单行号 ,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  5527. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as ,a.Currency as ,a.CreatePerson as ,a.CreateDateTime as ,
  5528. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5529. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5530. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5531. a.EATTRIBUTE9,a.EATTRIBUTE10
  5532. from ICSDeliveryNotice a
  5533. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5534. left join (
  5535. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5536. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  5537. where isnull(ee.EATTRIBUTE1,'')=''
  5538. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5539. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5540. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5541. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5542. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5543. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5544. TableCode = "ICSDeliveryNotice";
  5545. }
  5546. if (Type == "11") //委外拒收单生成条码
  5547. {
  5548. sql = @"select a.ODNCode as 委外拒收单号,a.Sequence as 委外拒收单行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
  5549. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as ,a.Currency as ,a.CreatePerson as ,a.CreateDateTime as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5550. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5551. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5552. a.EATTRIBUTE9,a.EATTRIBUTE10
  5553. from ICSODeliveryNotice a
  5554. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5555. left join (
  5556. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5557. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  5558. where isnull(ee.EATTRIBUTE1,'')=''
  5559. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5560. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5561. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5562. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5563. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5564. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5565. TableCode = "ICSODeliveryNotice";
  5566. }
  5567. if (Type == "12")//领料申请退料生成条码
  5568. {
  5569. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5570. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5571. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5572. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5573. a.EATTRIBUTE9,a.EATTRIBUTE10
  5574. from ICSMOApplyNegDetail a
  5575. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5576. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5577. left join (
  5578. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5579. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  5580. where isnull(ee.EATTRIBUTE1,'')=''
  5581. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5582. )c
  5583. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5584. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5585. WHERE d.Type='2' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5586. TableCode = "ICSMOApplyNegDetail";
  5587. }
  5588. if (Type == "13")//材料出库退料
  5589. {
  5590. sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5591. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5592. CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5593. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5594. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  5595. from ICSMOApplyNegDetail a
  5596. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5597. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5598. left join (
  5599. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5600. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  5601. where isnull(ee.EATTRIBUTE1,'')=''
  5602. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5603. )c
  5604. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5605. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5606. WHERE d.Type='3' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5607. TableCode = "ICSMOApplyNegDetail";
  5608. }
  5609. if (Type == "14")//委外领料申请退料
  5610. {
  5611. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5612. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5613. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5614. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5615. a.EATTRIBUTE9,a.EATTRIBUTE10
  5616. from ICSOApplyNegDetail a
  5617. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5618. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5619. left join (
  5620. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5621. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  5622. where isnull(ee.EATTRIBUTE1,'')=''
  5623. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5624. )c
  5625. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5626. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5627. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5628. TableCode = "ICSOApplyNegDetail";
  5629. }
  5630. if (Type == "15")//委外材料出库退料
  5631. {
  5632. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5633. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5634. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5635. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5636. a.EATTRIBUTE9,a.EATTRIBUTE10
  5637. from ICSOApplyNegDetail a
  5638. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5639. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5640. left join (
  5641. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5642. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  5643. where isnull(ee.EATTRIBUTE1,'')=''
  5644. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5645. )c
  5646. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5647. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5648. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  5649. TableCode = "ICSOApplyNegDetail";
  5650. }
  5651. if (Type == "16") //返工工单
  5652. {
  5653. sql = @"select d.MOCode as 工单号,d.Sequence+'~'+ a.Sequence as 工单子件行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5654. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5655. CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5656. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5657. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5658. a.EATTRIBUTE9,a.EATTRIBUTE10
  5659. from ICSMOPick a
  5660. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5661. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5662. left join (
  5663. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5664. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  5665. where isnull(ee.EATTRIBUTE1,'')=''
  5666. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5667. )c
  5668. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5669. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5670. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5671. TableCode = "ICSMOPick";
  5672. }
  5673. if (Type == "17")//检验不合格条码重新生成
  5674. {
  5675. sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5676. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5677. CAST(c.Amount AS DECIMAL(38,{0})) as ,a.MUSERName,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5678. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5679. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5680. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5681. a.EATTRIBUTE9,a.EATTRIBUTE10
  5682. from ICSInspection a
  5683. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5684. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5685. left join (
  5686. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5687. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  5688. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  5689. )c
  5690. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  5691. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5692. where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5693. TableCode = "ICSInspection";
  5694. }
  5695. #endregion
  5696. sql = sql + " and a.WorkPoint='{1}'";
  5697. sql = string.Format(sql, Figure, WorkPoint);
  5698. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5699. string sqls = @"SELECT ColCode,ColName,Enable
  5700. from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
  5701. DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
  5702. foreach (DataRow drE in dtExtension.Rows)
  5703. {
  5704. if (dt.Columns.Contains(drE["ColCode"].ToString()))
  5705. {
  5706. if (!Convert.ToBoolean(drE["Enable"]))
  5707. {
  5708. dt.Columns.Remove(drE["ColCode"].ToString());
  5709. }
  5710. else if (Convert.ToBoolean(drE["Enable"]))
  5711. {
  5712. dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
  5713. }
  5714. }
  5715. }
  5716. DataTable dtColumn = ColumnEnable(TableCode);
  5717. foreach (DataRow drC in dtColumn.Rows)
  5718. {
  5719. if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
  5720. {
  5721. if (!Convert.ToBoolean(drC["Enable"]))
  5722. {
  5723. dt.Columns.Remove(drC["ColumnCode"].ToString());
  5724. }
  5725. else if (Convert.ToBoolean(drC["Enable"]))
  5726. {
  5727. dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
  5728. }
  5729. }
  5730. }
  5731. return dt;
  5732. }
  5733. public DataTable ColumnEnable(string TableCode)
  5734. {
  5735. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5736. string sql = string.Empty;
  5737. sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
  5738. sql = string.Format(sql, TableCode, WorkPoint);
  5739. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5740. return dt;
  5741. }
  5742. public object GetQiSetNum(string keyValue)
  5743. {
  5744. decimal Num = 0;
  5745. string msg = "";
  5746. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  5747. string result = HttpPost(APIURL, keyValue);
  5748. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  5749. string MessAge = Obj["Message"].ToString();
  5750. string Success = Obj["Success"].ToString();
  5751. if (Success.ToUpper() == "FALSE")
  5752. {
  5753. msg = MessAge;
  5754. }
  5755. else
  5756. {
  5757. if (MessAge == "U9")
  5758. {
  5759. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  5760. int date = Convert.ToInt32(Date);
  5761. Num = date;
  5762. }
  5763. else
  5764. {
  5765. if (msg == "")
  5766. {
  5767. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  5768. foreach (var item in res)
  5769. {
  5770. JObject jo = (JObject)item;
  5771. //var aa= jo["min_lotqty"].ToString();
  5772. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  5773. }
  5774. }
  5775. }
  5776. }
  5777. var Header = new
  5778. {
  5779. msg = msg,
  5780. Num = Num,
  5781. };
  5782. return Header;
  5783. }
  5784. //接口api解析
  5785. public static string HttpPost(string url, string body)
  5786. {
  5787. try
  5788. {
  5789. Encoding encoding = Encoding.UTF8;
  5790. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  5791. request.Method = "POST";
  5792. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  5793. request.ContentType = "application/json; charset=utf-8";
  5794. byte[] buffer = encoding.GetBytes(body);
  5795. request.ContentLength = buffer.Length;
  5796. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  5797. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  5798. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  5799. {
  5800. return reader.ReadToEnd();
  5801. }
  5802. }
  5803. catch (WebException ex)
  5804. {
  5805. throw new Exception(ex.Message);
  5806. }
  5807. }
  5808. public DataTable GetLoadShow()
  5809. {
  5810. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5811. string sql = @"
  5812. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  5813. return Repository().FindTableBySql(sql.ToString());
  5814. }
  5815. //不合格条码重新生成入库
  5816. public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
  5817. {
  5818. DataTable dt = new DataTable();
  5819. var queryParam = queryJson.ToJObject();
  5820. List<DbParameter> parameter = new List<DbParameter>();
  5821. object Figure = GetDecimalDigits();
  5822. #region [SQL]
  5823. string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  5824. CAST(a.UnqualifiedQuantity AS DECIMAL(38,{0})) as Quantity ,
  5825. CAST(c.Amount AS DECIMAL(38,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY,d.ExtensionID
  5826. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5827. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5828. a.EATTRIBUTE9,a.EATTRIBUTE10
  5829. from ICSInspection a
  5830. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5831. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5832. left join (
  5833. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5834. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  5835. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  5836. )c
  5837. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  5838. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5839. where a.UnqualifiedQuantity>0 and a.Enable='1'";
  5840. sql = string.Format(sql, Figure);
  5841. #endregion
  5842. if (!string.IsNullOrWhiteSpace(queryJson))
  5843. {
  5844. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  5845. {
  5846. sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
  5847. }
  5848. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  5849. {
  5850. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  5851. }
  5852. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  5853. {
  5854. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  5855. }
  5856. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  5857. {
  5858. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  5859. }
  5860. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  5861. {
  5862. string POStatus = queryParam["POStatus"].ToString();
  5863. if (POStatus == "0")
  5864. {
  5865. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  5866. }
  5867. else if (POStatus == "1")
  5868. {
  5869. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
  5870. }
  5871. else
  5872. {
  5873. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
  5874. }
  5875. }
  5876. }
  5877. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  5878. {
  5879. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  5880. }
  5881. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5882. }
  5883. public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
  5884. {
  5885. DataTable dt = new DataTable();
  5886. object Figure = GetDecimalDigits();
  5887. List<DbParameter> parameter = new List<DbParameter>();
  5888. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5889. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  5890. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5891. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5892. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  5893. case when isnull(e.ID,'')='' then '' else '' end as isInspection,
  5894. case when g.InvIQC='1' then '是' else '否' end as isExemption
  5895. from ICSInventoryLot a
  5896. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  5897. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  5898. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  5899. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5900. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5901. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  5902. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  5903. WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
  5904. sql = string.Format(sql, Figure);
  5905. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5906. }
  5907. public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
  5908. {
  5909. var queryParam = keyValue.ToJObject();
  5910. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5911. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5912. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5913. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5914. decimal LOTQTY = minPackQty;
  5915. // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5916. string sql = string.Empty;
  5917. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5918. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5919. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5920. string sqls = string.Empty;
  5921. string Colspan = "";
  5922. string str1 = "";
  5923. List<string> ExtensionIDList = new List<string>();
  5924. for (int i = 0; i < createPageCount; i++)
  5925. {
  5926. if (i + 1 == createPageCount)
  5927. {
  5928. if (minPackQty * createPageCount > thisCreateQty)
  5929. {
  5930. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5931. }
  5932. }
  5933. string LotNo = GetNewLotNo(OldLotNo);
  5934. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5935. select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}',TransID from ICSInventoryLotDetail where LotNo='{4}'",
  5936. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  5937. sql += string.Format(@"
  5938. insert into ICSInventoryLot
  5939. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
  5940. select
  5941. newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
  5942. from ICSInventoryLot a
  5943. inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
  5944. where a.LotNo='{4}' and a.WorkPoint='{3}'",
  5945. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  5946. sql += "\r\n";
  5947. }
  5948. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5949. return count;
  5950. }
  5951. public string GetNewLotNo(string LotNO)
  5952. {
  5953. DataTable dt = new DataTable();
  5954. List<DbParameter> parameter = new List<DbParameter>();
  5955. //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
  5956. string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
  5957. ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
  5958. sql = string.Format(sql, LotNO);
  5959. dt = Repository().FindTableBySql(sql.ToString());
  5960. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
  5961. {
  5962. return LotNO + "-1";
  5963. }
  5964. else
  5965. {
  5966. string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
  5967. int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
  5968. return LotNO + "-" + COUNT.ToString();
  5969. }
  5970. }
  5971. public DataTable SelGDLX()
  5972. {
  5973. string sql = string.Empty;
  5974. DataTable dt = null;
  5975. sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
  5976. dt = SqlHelper.GetDataTableBySql(sql);
  5977. return dt;
  5978. }
  5979. public DataTable GetFreeEnble()
  5980. {
  5981. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5982. string sql = @"
  5983. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  5984. return Repository().FindTableBySql(sql.ToString());
  5985. }
  5986. public DataTable GetInvBatchEnable(string InvCode)
  5987. {
  5988. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5989. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'";
  5990. sql = string.Format(sql, InvCode, WorkPoints);
  5991. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5992. return dt;
  5993. }
  5994. //副产品
  5995. public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
  5996. {
  5997. DataTable dt = new DataTable();
  5998. var queryParam = queryJson.ToJObject();
  5999. List<DbParameter> parameter = new List<DbParameter>();
  6000. object Figure = GetDecimalDigits();
  6001. #region [SQL]
  6002. string sql = @"select a.ID,d.MOCode,d.Sequence+'~'+ a.Sequence as Sequence,a.PickID,a.InvCode as ZInvCode,d.InvCode as MInvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  6003. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  6004. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  6005. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6006. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  6007. a.EATTRIBUTE9,a.EATTRIBUTE10
  6008. from ICSMOPick a
  6009. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  6010. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6011. left join (
  6012. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6013. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  6014. where isnull(ee.EATTRIBUTE1,'')=''
  6015. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6016. )c
  6017. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6018. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6019. where a.EATTRIBUTE1='1' ";
  6020. sql = string.Format(sql, Figure);
  6021. #endregion
  6022. if (!string.IsNullOrWhiteSpace(queryJson))
  6023. {
  6024. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6025. {
  6026. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6027. }
  6028. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6029. {
  6030. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6031. }
  6032. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6033. {
  6034. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6035. }
  6036. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6037. {
  6038. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6039. }
  6040. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6041. {
  6042. string POStatus = queryParam["POStatus"].ToString();
  6043. if (POStatus == "0")
  6044. {
  6045. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6046. }
  6047. else if (POStatus == "1")
  6048. {
  6049. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6050. }
  6051. else
  6052. {
  6053. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6054. }
  6055. }
  6056. }
  6057. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6058. {
  6059. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6060. }
  6061. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6062. {
  6063. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6064. }
  6065. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6066. }
  6067. /// <summary>
  6068. /// 锐腾调入单生成条码
  6069. /// </summary>
  6070. /// <param name="queryJson"></param>
  6071. /// <param name="jqgridparam"></param>
  6072. /// <returns></returns>
  6073. public DataTable GetGridJsonTransfer(string queryJson, ref Pagination jqgridparam)
  6074. {
  6075. DataTable dt = new DataTable();
  6076. var queryParam = queryJson.ToJObject();
  6077. List<DbParameter> parameter = new List<DbParameter>();
  6078. object Figure = GetDecimalDigits();
  6079. #region [SQL]
  6080. string sql = @" select * from (SELECT a.ID,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,Isnull(a.TransferQuantity,0) TransferQuantity,b.InvName,b.InvStd,b.InvUnit,sum(Isnull(d.Quantity,0)) as LOTQTY,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,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10
  6081. FROM ICSTransfer a
  6082. LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  6083. LEFT JOIN ICSInventoryLotDetail c ON a.TransferNO=c.TransCode AND c.WorkPoint=a.WorkPoint
  6084. LEFT JOIN ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint
  6085. left JOIN ICSExtension f ON f.Id=a.ExtensionID AND f.WorkPoint=a.WorkPoint
  6086. WHERE a.Type='2'
  6087. AND Isnull(a.Status,'')<>3
  6088. ";
  6089. sql = string.Format(sql, Figure);
  6090. #endregion
  6091. if (!string.IsNullOrWhiteSpace(queryJson))
  6092. {
  6093. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6094. {
  6095. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  6096. }
  6097. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6098. {
  6099. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6100. }
  6101. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6102. {
  6103. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6104. }
  6105. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6106. {
  6107. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6108. }
  6109. }
  6110. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6111. {
  6112. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6113. }
  6114. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6115. {
  6116. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6117. }
  6118. sql += @" GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,b.InvStd,b.InvUnit,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,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
  6119. where 1=1 ";
  6120. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6121. {
  6122. string POStatus = queryParam["POStatus"].ToString();
  6123. if (POStatus == "0")
  6124. {
  6125. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6126. }
  6127. else if (POStatus == "1")
  6128. {
  6129. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6130. }
  6131. else
  6132. {
  6133. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6134. }
  6135. }
  6136. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6137. }
  6138. /// <summary>
  6139. /// 采购入库生成条码
  6140. /// </summary>
  6141. /// <param name="queryJson"></param>
  6142. /// <param name="jqgridparam"></param>
  6143. /// <returns></returns>
  6144. ///
  6145. public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6146. {
  6147. DataTable dt = new DataTable();
  6148. var queryParam = queryJson.ToJObject();
  6149. List<DbParameter> parameter = new List<DbParameter>();
  6150. object Figure = GetDecimalDigits();
  6151. #region [SQL]
  6152. string sql = @"select distinct a.ID,a.RCVCode,a.Sequence,a.WHCode,e.WarehouseName as WHName,a.InvCode, b.InvName,b.InvStd,b.InvUnit,d.POCode,d.Sequence as POSequence,
  6153. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6154. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6155. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6156. ,c.LOTQTY
  6157. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6158. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6159. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  6160. a.EATTRIBUTE9,a.EATTRIBUTE10,d.VenCode,g.VenName,b.EATTRIBUTE11 as ManufacturerInvCode,a.EATTRIBUTE14 AS SupplierBatch,
  6161. isnull(a.Quantity,'') as MPQ
  6162. from ICSPurchaseReceive a
  6163. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6164. left join (
  6165. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6166. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6167. where isnull(ee.EATTRIBUTE1,'')=''
  6168. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6169. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6170. left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6171. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6172. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6173. left join dbo.ICSVendor g on d.VenCode=g.VenCode and d.WorkPoint=g.WorkPoint
  6174. where a.Type='1' ";
  6175. sql = string.Format(sql, Figure);
  6176. #endregion
  6177. if (!string.IsNullOrWhiteSpace(queryJson))
  6178. {
  6179. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6180. {
  6181. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6182. }
  6183. if (!string.IsNullOrWhiteSpace(queryParam["SourceCode"].ToString()))
  6184. {
  6185. sql += " and d.POCode like '%" + queryParam["SourceCode"].ToString() + "%' ";
  6186. }
  6187. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6188. {
  6189. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6190. }
  6191. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6192. {
  6193. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6194. }
  6195. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  6196. {
  6197. sql += " and d.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  6198. }
  6199. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  6200. {
  6201. sql += " and g.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  6202. }
  6203. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6204. {
  6205. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6206. }
  6207. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6208. {
  6209. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6210. }
  6211. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6212. {
  6213. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6214. }
  6215. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6216. {
  6217. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6218. }
  6219. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6220. {
  6221. string POStatus = queryParam["POStatus"].ToString();
  6222. if (POStatus == "0")
  6223. {
  6224. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6225. }
  6226. else if (POStatus == "1")
  6227. {
  6228. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6229. }
  6230. else
  6231. {
  6232. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6233. }
  6234. }
  6235. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  6236. {
  6237. string WHStatus = queryParam["WHStatus"].ToString();
  6238. if (WHStatus == "0")
  6239. {
  6240. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6241. }
  6242. else if (WHStatus == "1")
  6243. {
  6244. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  6245. }
  6246. else
  6247. {
  6248. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  6249. }
  6250. }
  6251. }
  6252. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6253. {
  6254. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6255. }
  6256. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6257. {
  6258. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6259. }
  6260. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6261. }
  6262. // public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6263. // {
  6264. // DataTable dt = new DataTable();
  6265. // var queryParam = queryJson.ToJObject();
  6266. // List<DbParameter> parameter = new List<DbParameter>();
  6267. // object Figure = GetDecimalDigits();
  6268. // #region [SQL]
  6269. // string sql = @" select * from (select distinct a.ID,a.RCVCode,a.Sequence,a.WHCode,e.WarehouseName as WHName,a.InvCode, b.InvName,b.InvStd,b.InvUnit,d.POCode,d.Sequence as POSequence,
  6270. // CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6271. // ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6272. // ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6273. // ,c.LOTQTY
  6274. // ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6275. // ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6276. // ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  6277. // a.EATTRIBUTE9,a.EATTRIBUTE10,
  6278. // isnull(b.EATTRIBUTE2,'') as MPQ
  6279. // from ICSPurchaseReceive a
  6280. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6281. // left join (
  6282. // select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6283. // left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6284. // where isnull(ee.EATTRIBUTE1,'')=''
  6285. // group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6286. // ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6287. // left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6288. // left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6289. // left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6290. // where a.Type='1' ";
  6291. // sql = string.Format(sql, Figure);
  6292. // #endregion
  6293. // if (!string.IsNullOrWhiteSpace(queryJson))
  6294. // {
  6295. // if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6296. // {
  6297. // sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6298. // }
  6299. // if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6300. // {
  6301. // sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6302. // }
  6303. // if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6304. // {
  6305. // sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6306. // }
  6307. // if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6308. // {
  6309. // sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6310. // }
  6311. // }
  6312. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6313. // {
  6314. // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6315. // }
  6316. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6317. // {
  6318. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6319. // }
  6320. // sql += @" GROUP BY a.Id,a.RCVCode,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.RCVQuantity,b.InvName,e.WarehouseName,a.WHCode,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,d.POCode,d.Sequence,c.LOTQTY,
  6321. //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,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
  6322. // where 1=1 ";
  6323. // if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6324. // {
  6325. // string POStatus = queryParam["POStatus"].ToString();
  6326. // if (POStatus == "0")
  6327. // {
  6328. // //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6329. // }
  6330. // else if (POStatus == "1")
  6331. // {
  6332. // sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6333. // }
  6334. // else
  6335. // {
  6336. // sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6337. // }
  6338. // }
  6339. // return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6340. // }
  6341. /// <summary>
  6342. /// 采购入库获取单据信息
  6343. /// </summary>
  6344. /// <param name="FGGDMOCode"></param>
  6345. /// <param name="Sequence"></param>
  6346. /// <param name="WorkPoint"></param>
  6347. /// <returns></returns>
  6348. public DataTable GetSubGridJsonPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6349. {
  6350. DataTable dt = new DataTable();
  6351. object Figure = GetDecimalDigits();
  6352. List<DbParameter> parameter = new List<DbParameter>();
  6353. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6354. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6355. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6356. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6357. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6358. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6359. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6360. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays
  6361. ,isnull(b.EATTRIBUTE2,'') as MPQ
  6362. , e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
  6363. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6364. FROM ICSPurchaseReceive a
  6365. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6366. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6367. FROM ICSInventoryLot a
  6368. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '22'
  6369. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6370. GROUP BY
  6371. b.TransCode,
  6372. b.TransSequence
  6373. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6374. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6375. WHERE 1 = 1
  6376. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6377. // sql = string.Format(sql, Figure);
  6378. return Repository().FindTableBySql(sql.ToString());
  6379. }
  6380. /// <summary>
  6381. /// 采购入库单生成条码 保存
  6382. /// </summary>
  6383. /// <param name="RCVCode"></param>
  6384. /// <param name="Sequence"></param>
  6385. /// <param name="keyValue"></param>
  6386. /// <param name="WorkPoint"></param>
  6387. /// <returns></returns>
  6388. public int SubmitFormCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6389. {
  6390. var queryParam = keyValue.ToJObject();
  6391. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6392. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6393. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6394. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6395. decimal LOTQTY = minPackQty;
  6396. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6397. string sql = string.Empty;
  6398. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6399. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6400. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6401. string sqls = string.Empty;
  6402. string Colspan = "";
  6403. string str1 = "";
  6404. List<string> ExtensionIDList = new List<string>();
  6405. #region 装箱的功能
  6406. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6407. string VenCode = queryParam["VenCode"].ToString();
  6408. int PackCount = 0;//每箱放的数量
  6409. int Pack_YuShu = 0;//需要平摊的数量
  6410. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6411. List<PackModel> List_Pack = new List<PackModel>();
  6412. int ZQty = 0;
  6413. if (createPackCount > 0)
  6414. {
  6415. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6416. if (Pack_YuShu == 0)
  6417. {
  6418. PackCount = (createPageCount / createPackCount);
  6419. }
  6420. else
  6421. {
  6422. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6423. }
  6424. for (int jj = 0; jj < createPackCount; jj++)
  6425. {
  6426. object CARID = Guid.NewGuid();
  6427. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6428. sql += @" INSERT INTO dbo.ICSContainer
  6429. ( ID,ContainerCode ,
  6430. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6431. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6432. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6433. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6434. PackModel PP = new PackModel();
  6435. PP.ID = CARID.ToString();
  6436. PP.PackCode = Carton;
  6437. if (jj < Pack_YuShu)
  6438. {
  6439. PP.FristBarIndex = ZQty;
  6440. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6441. }
  6442. else
  6443. {
  6444. PP.FristBarIndex = ZQty;
  6445. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6446. }
  6447. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6448. List_Pack.Add(PP);
  6449. }
  6450. }
  6451. #endregion
  6452. for (int i = 0; i < createPageCount; i++)
  6453. {
  6454. if (i + 1 == createPageCount)
  6455. {
  6456. if (minPackQty * createPageCount > thisCreateQty)
  6457. {
  6458. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6459. }
  6460. }
  6461. 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();
  6462. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6463. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6464. bool flag = true;
  6465. foreach (var item in ExtensionIDList)
  6466. {
  6467. if (item == Colspan + WorkPoint)
  6468. {
  6469. flag = false;
  6470. }
  6471. }
  6472. if (ExtensionID == null && flag == true)
  6473. {
  6474. str1 = Guid.NewGuid().ToString();
  6475. 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)
  6476. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6477. 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(),
  6478. MUSER, MUSERNAME, WorkPoints);
  6479. }
  6480. else if (ExtensionID != null)
  6481. {
  6482. str1 = ExtensionID.ToString();
  6483. }
  6484. ExtensionIDList.Add(Colspan + WorkPoint);
  6485. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6486. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6487. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6488. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6489. sql += string.Format(@"
  6490. insert into ICSInventoryLot
  6491. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6492. select
  6493. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6494. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6495. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6496. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6497. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6498. sql += "\r\n";
  6499. //装箱的功能
  6500. if (List_Pack.Count > 0)
  6501. {
  6502. PackModel mm = new PackModel();
  6503. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6504. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6505. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6506. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6507. }
  6508. }
  6509. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6510. return count;
  6511. }
  6512. /// <summary>
  6513. /// 采购入库单生成条码 保存(新)
  6514. /// </summary>
  6515. /// <param name="RCVCode"></param>
  6516. /// <param name="Sequence"></param>
  6517. /// <param name="keyValue"></param>
  6518. /// <param name="WorkPoint"></param>
  6519. /// <returns></returns>
  6520. public int SubmitFormCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6521. {
  6522. var queryParam = keyValue.ToJObject();
  6523. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6524. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6525. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6526. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  6527. List<decimal> lotQtys = new List<decimal>();
  6528. foreach (var jLotno in jLotnos)
  6529. {
  6530. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  6531. lotQtys.Add(qty);
  6532. }
  6533. int createPageCount = lotQtys.Count();
  6534. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6535. string sql = string.Empty;
  6536. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6537. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6538. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6539. string sqls = string.Empty;
  6540. string Colspan = "";
  6541. string str1 = "";
  6542. List<string> ExtensionIDList = new List<string>();
  6543. #region 装箱的功能
  6544. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6545. string VenCode = queryParam["VenCode"].ToString();
  6546. int PackCount = 0;//每箱放的数量
  6547. int Pack_YuShu = 0;//需要平摊的数量
  6548. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6549. List<PackModel> List_Pack = new List<PackModel>();
  6550. int ZQty = 0;
  6551. if (createPackCount > 0)
  6552. {
  6553. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6554. if (Pack_YuShu == 0)
  6555. {
  6556. PackCount = (createPageCount / createPackCount);
  6557. }
  6558. else
  6559. {
  6560. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6561. }
  6562. for (int jj = 0; jj < createPackCount; jj++)
  6563. {
  6564. object CARID = Guid.NewGuid();
  6565. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6566. sql += @" INSERT INTO dbo.ICSContainer
  6567. ( ID,ContainerCode ,
  6568. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6569. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6570. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6571. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6572. PackModel PP = new PackModel();
  6573. PP.ID = CARID.ToString();
  6574. PP.PackCode = Carton;
  6575. if (jj < Pack_YuShu)
  6576. {
  6577. PP.FristBarIndex = ZQty;
  6578. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6579. }
  6580. else
  6581. {
  6582. PP.FristBarIndex = ZQty;
  6583. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6584. }
  6585. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6586. List_Pack.Add(PP);
  6587. }
  6588. }
  6589. #endregion
  6590. for (int i = 0; i < createPageCount; i++)
  6591. {
  6592. //if (i + 1 == createPageCount)
  6593. //{
  6594. // if (minPackQty * createPageCount > thisCreateQty)
  6595. // {
  6596. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6597. // }
  6598. //}
  6599. decimal LOTQTY = lotQtys[i];
  6600. 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();
  6601. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6602. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6603. bool flag = true;
  6604. foreach (var item in ExtensionIDList)
  6605. {
  6606. if (item == Colspan + WorkPoint)
  6607. {
  6608. flag = false;
  6609. }
  6610. }
  6611. if (ExtensionID == null && flag == true)
  6612. {
  6613. str1 = Guid.NewGuid().ToString();
  6614. 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)
  6615. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6616. 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(),
  6617. MUSER, MUSERNAME, WorkPoints);
  6618. }
  6619. else if (ExtensionID != null)
  6620. {
  6621. str1 = ExtensionID.ToString();
  6622. }
  6623. ExtensionIDList.Add(Colspan + WorkPoint);
  6624. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6625. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6626. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6627. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6628. try
  6629. {
  6630. sql += string.Format(@"
  6631. insert into ICSInventoryLot
  6632. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6633. select
  6634. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6635. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6636. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  6637. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6638. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6639. sql += "\r\n";
  6640. }
  6641. catch (Exception EX)
  6642. {
  6643. throw EX;
  6644. }
  6645. //装箱的功能
  6646. if (List_Pack.Count > 0)
  6647. {
  6648. PackModel mm = new PackModel();
  6649. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6650. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6651. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6652. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6653. }
  6654. }
  6655. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6656. return count;
  6657. }
  6658. /// <summary>
  6659. /// 委外采购入库生成条码
  6660. /// </summary>
  6661. /// <param name="queryJson"></param>
  6662. /// <param name="jqgridparam"></param>
  6663. /// <returns></returns>
  6664. public DataTable GetGridJsonOutPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6665. {
  6666. DataTable dt = new DataTable();
  6667. var queryParam = queryJson.ToJObject();
  6668. List<DbParameter> parameter = new List<DbParameter>();
  6669. object Figure = GetDecimalDigits();
  6670. #region [SQL]
  6671. string sql = @" select distinct a.ID,a.RCVCode,a.Sequence,a.WHCode,e.WarehouseName as WHName,a.InvCode, b.InvName,b.InvStd,b.InvUnit,d.OOCode,d.Sequence as POSequence,
  6672. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6673. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6674. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6675. ,c.LOTQTY
  6676. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6677. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6678. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  6679. a.EATTRIBUTE9,a.EATTRIBUTE10,g.VenName
  6680. from ICSOutsourcingReceive a
  6681. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6682. left join (
  6683. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6684. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  6685. where isnull(ee.EATTRIBUTE1,'')=''
  6686. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6687. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6688. left join ICSOutsourcingOrder d on a.SourceCode = d.OOCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6689. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6690. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6691. left join dbo.ICSVendor g on d.VenCode=g.VenCode and d.WorkPoint=g.WorkPoint
  6692. where a.Type='1' ";
  6693. sql = string.Format(sql, Figure);
  6694. #endregion
  6695. if (!string.IsNullOrWhiteSpace(queryJson))
  6696. {
  6697. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6698. {
  6699. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6700. }
  6701. if (!string.IsNullOrWhiteSpace(queryParam["SourceCode"].ToString()))
  6702. {
  6703. sql += " and d.OOCode like '%" + queryParam["SourceCode"].ToString() + "%' ";
  6704. }
  6705. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  6706. {
  6707. sql += " and d.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  6708. }
  6709. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  6710. {
  6711. sql += " and g.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  6712. }
  6713. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6714. {
  6715. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6716. }
  6717. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6718. {
  6719. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6720. }
  6721. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6722. {
  6723. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6724. }
  6725. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6726. {
  6727. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6728. }
  6729. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6730. {
  6731. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6732. }
  6733. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6734. {
  6735. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6736. }
  6737. }
  6738. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6739. {
  6740. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6741. }
  6742. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6743. {
  6744. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6745. }
  6746. // sql += @" GROUP BY a.Id,a.RCVCode,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.RCVQuantity,b.InvName,e.WarehouseName,a.WHCode,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,d.POCode,d.Sequence,c.LOTQTY,
  6747. //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,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
  6748. // where 1=1 ";
  6749. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6750. {
  6751. string POStatus = queryParam["POStatus"].ToString();
  6752. if (POStatus == "0")
  6753. {
  6754. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6755. }
  6756. else if (POStatus == "1")
  6757. {
  6758. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6759. }
  6760. else
  6761. {
  6762. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6763. }
  6764. }
  6765. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  6766. {
  6767. string WHStatus = queryParam["WHStatus"].ToString();
  6768. if (WHStatus == "0")
  6769. {
  6770. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6771. }
  6772. else if (WHStatus == "1")
  6773. {
  6774. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  6775. }
  6776. else
  6777. {
  6778. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  6779. }
  6780. }
  6781. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6782. }
  6783. /// <summary>
  6784. /// 委外采购入库获取单据信息
  6785. /// </summary>
  6786. /// <param name="FGGDMOCode"></param>
  6787. /// <param name="Sequence"></param>
  6788. /// <param name="WorkPoint"></param>
  6789. /// <returns></returns>
  6790. public DataTable GetSubGridJsonOutPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6791. {
  6792. DataTable dt = new DataTable();
  6793. object Figure = GetDecimalDigits();
  6794. List<DbParameter> parameter = new List<DbParameter>();
  6795. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6796. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6797. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6798. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6799. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6800. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6801. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6802. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  6803. , e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
  6804. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6805. FROM ICSOutsourcingReceive a
  6806. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6807. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6808. FROM ICSInventoryLot a
  6809. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '23'
  6810. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6811. GROUP BY
  6812. b.TransCode,
  6813. b.TransSequence
  6814. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6815. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6816. WHERE 1 = 1
  6817. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6818. sql = string.Format(sql, Figure);
  6819. return Repository().FindTableBySql(sql.ToString());
  6820. }
  6821. /// <summary>
  6822. /// 委外采购入库单生成条码 保存
  6823. /// </summary>
  6824. /// <param name="RCVCode"></param>
  6825. /// <param name="Sequence"></param>
  6826. /// <param name="keyValue"></param>
  6827. /// <param name="WorkPoint"></param>
  6828. /// <returns></returns>
  6829. public int SubmitFormWWCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6830. {
  6831. var queryParam = keyValue.ToJObject();
  6832. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6833. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6834. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6835. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6836. decimal LOTQTY = minPackQty;
  6837. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6838. string sql = string.Empty;
  6839. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6840. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6841. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6842. string sqls = string.Empty;
  6843. string Colspan = "";
  6844. string str1 = "";
  6845. List<string> ExtensionIDList = new List<string>();
  6846. #region 装箱的功能
  6847. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6848. string VenCode = queryParam["VenCode"].ToString();
  6849. int PackCount = 0;//每箱放的数量
  6850. int Pack_YuShu = 0;//需要平摊的数量
  6851. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6852. List<PackModel> List_Pack = new List<PackModel>();
  6853. int ZQty = 0;
  6854. if (createPackCount > 0)
  6855. {
  6856. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6857. if (Pack_YuShu == 0)
  6858. {
  6859. PackCount = (createPageCount / createPackCount);
  6860. }
  6861. else
  6862. {
  6863. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6864. }
  6865. for (int jj = 0; jj < createPackCount; jj++)
  6866. {
  6867. object CARID = Guid.NewGuid();
  6868. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6869. sql += @" INSERT INTO dbo.ICSContainer
  6870. ( ID,ContainerCode ,
  6871. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6872. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6873. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6874. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6875. PackModel PP = new PackModel();
  6876. PP.ID = CARID.ToString();
  6877. PP.PackCode = Carton;
  6878. if (jj < Pack_YuShu)
  6879. {
  6880. PP.FristBarIndex = ZQty;
  6881. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6882. }
  6883. else
  6884. {
  6885. PP.FristBarIndex = ZQty;
  6886. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6887. }
  6888. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6889. List_Pack.Add(PP);
  6890. }
  6891. }
  6892. #endregion
  6893. for (int i = 0; i < createPageCount; i++)
  6894. {
  6895. if (i + 1 == createPageCount)
  6896. {
  6897. if (minPackQty * createPageCount > thisCreateQty)
  6898. {
  6899. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6900. }
  6901. }
  6902. 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();
  6903. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6904. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6905. bool flag = true;
  6906. foreach (var item in ExtensionIDList)
  6907. {
  6908. if (item == Colspan + WorkPoint)
  6909. {
  6910. flag = false;
  6911. }
  6912. }
  6913. if (ExtensionID == null && flag == true)
  6914. {
  6915. str1 = Guid.NewGuid().ToString();
  6916. 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)
  6917. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6918. 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(),
  6919. MUSER, MUSERNAME, WorkPoints);
  6920. }
  6921. else if (ExtensionID != null)
  6922. {
  6923. str1 = ExtensionID.ToString();
  6924. }
  6925. ExtensionIDList.Add(Colspan + WorkPoint);
  6926. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6927. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6928. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6929. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6930. sql += string.Format(@"
  6931. insert into ICSInventoryLot
  6932. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6933. select
  6934. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6935. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6936. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6937. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6938. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6939. sql += "\r\n";
  6940. //装箱的功能
  6941. if (List_Pack.Count > 0)
  6942. {
  6943. PackModel mm = new PackModel();
  6944. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6945. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6946. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6947. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6948. }
  6949. }
  6950. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6951. return count;
  6952. }
  6953. /// <summary>
  6954. /// 委外采购入库单生成条码 保存(新)
  6955. /// </summary>
  6956. /// <param name="RCVCode"></param>
  6957. /// <param name="Sequence"></param>
  6958. /// <param name="keyValue"></param>
  6959. /// <param name="WorkPoint"></param>
  6960. /// <returns></returns>
  6961. public int SubmitFormWWCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6962. {
  6963. var queryParam = keyValue.ToJObject();
  6964. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6965. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6966. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6967. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  6968. List<decimal> lotQtys = new List<decimal>();
  6969. foreach (var jLotno in jLotnos)
  6970. {
  6971. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  6972. lotQtys.Add(qty);
  6973. }
  6974. int createPageCount = lotQtys.Count();
  6975. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6976. string sql = string.Empty;
  6977. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6978. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6979. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6980. string sqls = string.Empty;
  6981. string Colspan = "";
  6982. string str1 = "";
  6983. List<string> ExtensionIDList = new List<string>();
  6984. #region 装箱的功能
  6985. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6986. string VenCode = queryParam["VenCode"].ToString();
  6987. int PackCount = 0;//每箱放的数量
  6988. int Pack_YuShu = 0;//需要平摊的数量
  6989. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6990. List<PackModel> List_Pack = new List<PackModel>();
  6991. int ZQty = 0;
  6992. if (createPackCount > 0)
  6993. {
  6994. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6995. if (Pack_YuShu == 0)
  6996. {
  6997. PackCount = (createPageCount / createPackCount);
  6998. }
  6999. else
  7000. {
  7001. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7002. }
  7003. for (int jj = 0; jj < createPackCount; jj++)
  7004. {
  7005. object CARID = Guid.NewGuid();
  7006. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7007. sql += @" INSERT INTO dbo.ICSContainer
  7008. ( ID,ContainerCode ,
  7009. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7010. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7011. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7012. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7013. PackModel PP = new PackModel();
  7014. PP.ID = CARID.ToString();
  7015. PP.PackCode = Carton;
  7016. if (jj < Pack_YuShu)
  7017. {
  7018. PP.FristBarIndex = ZQty;
  7019. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7020. }
  7021. else
  7022. {
  7023. PP.FristBarIndex = ZQty;
  7024. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7025. }
  7026. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7027. List_Pack.Add(PP);
  7028. }
  7029. }
  7030. #endregion
  7031. for (int i = 0; i < createPageCount; i++)
  7032. {
  7033. //if (i + 1 == createPageCount)
  7034. //{
  7035. // if (minPackQty * createPageCount > thisCreateQty)
  7036. // {
  7037. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7038. // }
  7039. //}
  7040. decimal LOTQTY = lotQtys[i];
  7041. 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();
  7042. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7043. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7044. bool flag = true;
  7045. foreach (var item in ExtensionIDList)
  7046. {
  7047. if (item == Colspan + WorkPoint)
  7048. {
  7049. flag = false;
  7050. }
  7051. }
  7052. if (ExtensionID == null && flag == true)
  7053. {
  7054. str1 = Guid.NewGuid().ToString();
  7055. 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)
  7056. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7057. 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(),
  7058. MUSER, MUSERNAME, WorkPoints);
  7059. }
  7060. else if (ExtensionID != null)
  7061. {
  7062. str1 = ExtensionID.ToString();
  7063. }
  7064. ExtensionIDList.Add(Colspan + WorkPoint);
  7065. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7066. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7067. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7068. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7069. try
  7070. {
  7071. sql += string.Format(@"
  7072. insert into ICSInventoryLot
  7073. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7074. select
  7075. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7076. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7077. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / LOTQTY, queryParam["ExpirationDate"].ToString()
  7078. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7079. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7080. sql += "\r\n";
  7081. }
  7082. catch (Exception EX)
  7083. {
  7084. throw EX;
  7085. }
  7086. //装箱的功能
  7087. if (List_Pack.Count > 0)
  7088. {
  7089. PackModel mm = new PackModel();
  7090. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7091. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7092. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7093. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7094. }
  7095. }
  7096. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7097. return count;
  7098. }
  7099. /// <summary>
  7100. /// 铭锋 退货调拨申请单生成条码
  7101. /// </summary>
  7102. /// <param name="queryJson"></param>
  7103. /// <param name="jqgridparam"></param>
  7104. /// <returns></returns>
  7105. public DataTable GetGridJsonTransferApplication(string queryJson, ref Pagination jqgridparam)
  7106. {
  7107. DataTable dt = new DataTable();
  7108. var queryParam = queryJson.ToJObject();
  7109. List<DbParameter> parameter = new List<DbParameter>();
  7110. object Figure = GetDecimalDigits();
  7111. #region [SQL]
  7112. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  7113. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  7114. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  7115. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  7116. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  7117. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  7118. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  7119. ,c.LOTQTY
  7120. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  7121. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  7122. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  7123. a.EATTRIBUTE9,a.EATTRIBUTE10
  7124. from ICSTransferApplication a
  7125. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7126. left join (
  7127. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7128. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  7129. where isnull(ee.EATTRIBUTE1,'')=''
  7130. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7131. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7132. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  7133. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7134. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  7135. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  7136. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  7137. where 1 = 1";
  7138. sql = string.Format(sql, Figure);
  7139. #endregion
  7140. if (!string.IsNullOrWhiteSpace(queryJson))
  7141. {
  7142. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  7143. {
  7144. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  7145. }
  7146. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  7147. {
  7148. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  7149. }
  7150. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  7151. {
  7152. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  7153. }
  7154. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  7155. {
  7156. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  7157. }
  7158. }
  7159. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  7160. {
  7161. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  7162. }
  7163. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  7164. //{
  7165. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  7166. //}
  7167. sql += @"GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,e.WarehouseName,a.FromWarehouseCode,e.WarehouseName,a.FromLocationCode,h.LocationName,
  7168. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  7169. 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,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
  7170. where 1=1 ";
  7171. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  7172. {
  7173. string POStatus = queryParam["POStatus"].ToString();
  7174. if (POStatus == "0")
  7175. {
  7176. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  7177. }
  7178. else if (POStatus == "1")
  7179. {
  7180. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  7181. }
  7182. else
  7183. {
  7184. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  7185. }
  7186. }
  7187. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  7188. }
  7189. /// <summary>
  7190. /// 铭锋 退货调拨申请单获取单据信息
  7191. /// </summary>
  7192. /// <param name="TransferNO"></param>
  7193. /// <param name="Sequence"></param>
  7194. /// <param name="WorkPoint"></param>
  7195. /// <returns></returns>
  7196. public DataTable GetSubGridJsonTransferApplicationByCreate(string TransferNO, string Sequence, string WorkPoint)
  7197. {
  7198. DataTable dt = new DataTable();
  7199. object Figure = GetDecimalDigits();
  7200. List<DbParameter> parameter = new List<DbParameter>();
  7201. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  7202. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  7203. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  7204. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  7205. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  7206. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7207. , e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
  7208. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7209. FROM ICSTransferApplication a
  7210. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  7211. LEFT JOIN ( SELECT a.Id, a.InvCode, a.Sequence, a.WorkPoint,CASE WHEN b.OverInType= '1' THEN a.Quantity* ( 1+b.OverInValue ) WHEN b.OverInType= '2' THEN a.Quantity+ b.OverInValue WHEN b.OverInType= '3' THEN 999999 ELSE a.Quantity
  7212. END AS Quantity
  7213. FROM ICSTransferApplication a
  7214. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  7215. AND a.WorkPoint= b.WorkPoint
  7216. ) xx ON xx.Id= a.Id
  7217. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  7218. FROM ICSInventoryLot a
  7219. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  7220. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  7221. GROUP BY
  7222. b.TransCode,
  7223. b.TransSequence
  7224. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  7225. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  7226. WHERE 1 = 1
  7227. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  7228. and a.WorkPoint='{WorkPoint}'";
  7229. sql = string.Format(sql, Figure);
  7230. return Repository().FindTableBySql(sql.ToString());
  7231. }
  7232. /// <summary>
  7233. /// 铭锋 退货调拨申请单生成条码 保存
  7234. /// </summary>
  7235. /// <param name="TransferNO"></param>
  7236. /// <param name="Sequence"></param>
  7237. /// <param name="keyValue"></param>
  7238. /// <param name="WorkPoint"></param>
  7239. /// <returns></returns>
  7240. public int SubmitFormTransferApplicatioSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7241. {
  7242. var queryParam = keyValue.ToJObject();
  7243. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7244. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7245. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7246. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7247. decimal LOTQTY = minPackQty;
  7248. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7249. string sql = string.Empty;
  7250. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7251. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7252. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7253. string sqls = string.Empty;
  7254. string Colspan = "";
  7255. string str1 = "";
  7256. List<string> ExtensionIDList = new List<string>();
  7257. #region 装箱的功能
  7258. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7259. string VenCode = queryParam["VenCode"].ToString();
  7260. int PackCount = 0;//每箱放的数量
  7261. int Pack_YuShu = 0;//需要平摊的数量
  7262. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7263. List<PackModel> List_Pack = new List<PackModel>();
  7264. int ZQty = 0;
  7265. if (createPackCount > 0)
  7266. {
  7267. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7268. if (Pack_YuShu == 0)
  7269. {
  7270. PackCount = (createPageCount / createPackCount);
  7271. }
  7272. else
  7273. {
  7274. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7275. }
  7276. for (int jj = 0; jj < createPackCount; jj++)
  7277. {
  7278. object CARID = Guid.NewGuid();
  7279. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7280. sql += @" INSERT INTO dbo.ICSContainer
  7281. ( ID,ContainerCode ,
  7282. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7283. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7284. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7285. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7286. PackModel PP = new PackModel();
  7287. PP.ID = CARID.ToString();
  7288. PP.PackCode = Carton;
  7289. if (jj < Pack_YuShu)
  7290. {
  7291. PP.FristBarIndex = ZQty;
  7292. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7293. }
  7294. else
  7295. {
  7296. PP.FristBarIndex = ZQty;
  7297. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7298. }
  7299. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7300. List_Pack.Add(PP);
  7301. }
  7302. }
  7303. #endregion
  7304. for (int i = 0; i < createPageCount; i++)
  7305. {
  7306. if (i + 1 == createPageCount)
  7307. {
  7308. if (minPackQty * createPageCount > thisCreateQty)
  7309. {
  7310. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7311. }
  7312. }
  7313. 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();
  7314. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7315. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7316. bool flag = true;
  7317. foreach (var item in ExtensionIDList)
  7318. {
  7319. if (item == Colspan + WorkPoint)
  7320. {
  7321. flag = false;
  7322. }
  7323. }
  7324. if (ExtensionID == null && flag == true)
  7325. {
  7326. str1 = Guid.NewGuid().ToString();
  7327. 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)
  7328. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7329. 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(),
  7330. MUSER, MUSERNAME, WorkPoints);
  7331. }
  7332. else if (ExtensionID != null)
  7333. {
  7334. str1 = ExtensionID.ToString();
  7335. }
  7336. ExtensionIDList.Add(Colspan + WorkPoint);
  7337. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7338. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7339. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7340. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7341. sql += string.Format(@"
  7342. insert into ICSInventoryLot
  7343. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7344. select
  7345. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7346. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7347. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7348. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7349. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7350. sql += "\r\n";
  7351. //装箱的功能
  7352. if (List_Pack.Count > 0)
  7353. {
  7354. PackModel mm = new PackModel();
  7355. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7356. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7357. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7358. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7359. }
  7360. }
  7361. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7362. return count;
  7363. }
  7364. public int SubmitFormTransferApplicatioSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7365. {
  7366. var queryParam = keyValue.ToJObject();
  7367. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7368. //decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7369. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7370. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7371. List<decimal> lotQtys = new List<decimal>();
  7372. foreach (var jLotno in jLotnos)
  7373. {
  7374. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7375. lotQtys.Add(qty);
  7376. }
  7377. int createPageCount = lotQtys.Count();
  7378. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7379. string sql = string.Empty;
  7380. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7381. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7382. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7383. string sqls = string.Empty;
  7384. string Colspan = "";
  7385. string str1 = "";
  7386. List<string> ExtensionIDList = new List<string>();
  7387. #region 装箱的功能
  7388. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7389. string VenCode = queryParam["VenCode"].ToString();
  7390. int PackCount = 0;//每箱放的数量
  7391. int Pack_YuShu = 0;//需要平摊的数量
  7392. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7393. List<PackModel> List_Pack = new List<PackModel>();
  7394. int ZQty = 0;
  7395. if (createPackCount > 0)
  7396. {
  7397. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7398. if (Pack_YuShu == 0)
  7399. {
  7400. PackCount = (createPageCount / createPackCount);
  7401. }
  7402. else
  7403. {
  7404. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7405. }
  7406. for (int jj = 0; jj < createPackCount; jj++)
  7407. {
  7408. object CARID = Guid.NewGuid();
  7409. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7410. sql += @" INSERT INTO dbo.ICSContainer
  7411. ( ID,ContainerCode ,
  7412. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7413. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7414. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7415. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7416. PackModel PP = new PackModel();
  7417. PP.ID = CARID.ToString();
  7418. PP.PackCode = Carton;
  7419. if (jj < Pack_YuShu)
  7420. {
  7421. PP.FristBarIndex = ZQty;
  7422. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7423. }
  7424. else
  7425. {
  7426. PP.FristBarIndex = ZQty;
  7427. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7428. }
  7429. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7430. List_Pack.Add(PP);
  7431. }
  7432. }
  7433. #endregion
  7434. for (int i = 0; i < createPageCount; i++)
  7435. {
  7436. var LOTQTY = lotQtys[i];
  7437. 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();
  7438. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7439. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7440. bool flag = true;
  7441. foreach (var item in ExtensionIDList)
  7442. {
  7443. if (item == Colspan + WorkPoint)
  7444. {
  7445. flag = false;
  7446. }
  7447. }
  7448. if (ExtensionID == null && flag == true)
  7449. {
  7450. str1 = Guid.NewGuid().ToString();
  7451. 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)
  7452. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7453. 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(),
  7454. MUSER, MUSERNAME, WorkPoints);
  7455. }
  7456. else if (ExtensionID != null)
  7457. {
  7458. str1 = ExtensionID.ToString();
  7459. }
  7460. ExtensionIDList.Add(Colspan + WorkPoint);
  7461. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7462. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7463. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7464. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7465. sql += string.Format(@"
  7466. insert into ICSInventoryLot
  7467. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7468. select
  7469. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7470. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7471. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  7472. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7473. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7474. sql += "\r\n";
  7475. //装箱的功能
  7476. if (List_Pack.Count > 0)
  7477. {
  7478. PackModel mm = new PackModel();
  7479. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7480. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7481. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7482. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7483. }
  7484. }
  7485. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7486. return count;
  7487. }
  7488. public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  7489. {
  7490. DataTable dt = new DataTable();
  7491. object Figure = GetDecimalDigits();
  7492. List<DbParameter> parameter = new List<DbParameter>();
  7493. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn014', " + Quantity + ",1,2,'')";
  7494. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7495. string sql = @"
  7496. select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  7497. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  7498. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7499. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  7500. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7501. from ICSMOPick a
  7502. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7503. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7504. left join (
  7505. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  7506. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18'
  7507. where isnull(a.EATTRIBUTE1,'')=''
  7508. group by b.TransCode,b.TransSequence
  7509. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  7510. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  7511. WHERE 1=1
  7512. and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  7513. sql += " and a.WorkPoint='" + WorkPoint + "'";
  7514. sql = string.Format(sql, Figure);
  7515. return Repository().FindTableBySql(sql.ToString());
  7516. }
  7517. //副产品
  7518. public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  7519. {
  7520. var queryParam = keyValue.ToJObject();
  7521. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7522. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7523. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7524. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7525. decimal LOTQTY = minPackQty;
  7526. string Sequences = Sequence.Replace("~", "");
  7527. string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  7528. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7529. string sql = string.Empty;
  7530. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7531. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7532. string sqls = string.Empty;
  7533. string Colspan = "";
  7534. string str1 = "";
  7535. List<string> ExtensionIDList = new List<string>();
  7536. #region 装箱的功能
  7537. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7538. string VenCode = queryParam["VenCode"].ToString();
  7539. int PackCount = 0;//每箱放的数量
  7540. int Pack_YuShu = 0;//需要平摊的数量
  7541. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7542. List<PackModel> List_Pack = new List<PackModel>();
  7543. int ZQty = 0;
  7544. if (createPackCount > 0)
  7545. {
  7546. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7547. if (Pack_YuShu == 0)
  7548. {
  7549. PackCount = (createPageCount / createPackCount);
  7550. }
  7551. else
  7552. {
  7553. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7554. }
  7555. for (int jj = 0; jj < createPackCount; jj++)
  7556. {
  7557. object CARID = Guid.NewGuid();
  7558. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7559. sql += @" INSERT INTO dbo.ICSContainer
  7560. ( ID,ContainerCode ,
  7561. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7562. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7563. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7564. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7565. PackModel PP = new PackModel();
  7566. PP.ID = CARID.ToString();
  7567. PP.PackCode = Carton;
  7568. if (jj < Pack_YuShu)
  7569. {
  7570. PP.FristBarIndex = ZQty;
  7571. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7572. }
  7573. else
  7574. {
  7575. PP.FristBarIndex = ZQty;
  7576. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7577. }
  7578. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7579. List_Pack.Add(PP);
  7580. }
  7581. }
  7582. #endregion
  7583. for (int i = 0; i < createPageCount; i++)
  7584. {
  7585. if (i + 1 == createPageCount)
  7586. {
  7587. if (minPackQty * createPageCount > thisCreateQty)
  7588. {
  7589. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7590. }
  7591. }
  7592. 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();
  7593. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7594. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7595. bool flag = true;
  7596. foreach (var item in ExtensionIDList)
  7597. {
  7598. if (item == Colspan + WorkPoint)
  7599. {
  7600. flag = false;
  7601. }
  7602. }
  7603. if (ExtensionID == null && flag == true)
  7604. {
  7605. str1 = Guid.NewGuid().ToString();
  7606. 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)
  7607. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7608. 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(),
  7609. MUSER, MUSERNAME, WorkPoints);
  7610. }
  7611. else if (ExtensionID != null)
  7612. {
  7613. str1 = ExtensionID.ToString();
  7614. }
  7615. ExtensionIDList.Add(Colspan + WorkPoint);
  7616. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7617. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7618. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  7619. LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7620. sql += string.Format(@"insert into ICSInventoryLot
  7621. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7622. select
  7623. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7624. from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' where d.MOCode='{6}' and d.Sequence+'~'+a.Sequence='{7}' and a.WorkPoint='{5}' ",
  7625. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7626. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7627. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7628. sql += "\r\n";
  7629. //装箱的功能
  7630. if (List_Pack.Count > 0)
  7631. {
  7632. PackModel mm = new PackModel();
  7633. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7634. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7635. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7636. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7637. }
  7638. }
  7639. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7640. return count;
  7641. }
  7642. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty, string InvCode, string Quantitys)
  7643. {
  7644. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7645. DataTable dt = new DataTable();
  7646. List<DbParameter> parameter = new List<DbParameter>();
  7647. string sql = string.Empty;
  7648. bool flag = true;
  7649. if (Type == "1")
  7650. {
  7651. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn017', " + Quantitys + ",1,2,'')";
  7652. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7653. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7654. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7655. from ICSMOApplyNegDetail a
  7656. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7657. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7658. left join (
  7659. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7660. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  7661. where isnull(ee.EATTRIBUTE1,'')=''
  7662. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7663. )c
  7664. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7665. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7666. where d.Type='1' and d.Status='2'
  7667. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7668. }
  7669. if (Type == "2")
  7670. {
  7671. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn008', " + Quantitys + ",1,2,'')";
  7672. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7673. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7674. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7675. from ICSOApplyNegDetail a
  7676. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7677. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7678. left join (
  7679. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7680. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  7681. where isnull(ee.EATTRIBUTE1,'')=''
  7682. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7683. )c
  7684. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7685. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7686. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7687. }
  7688. if (Type == "3")
  7689. {
  7690. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn011', " + Quantitys + ",1,2,'')";
  7691. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7692. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7693. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7694. from ICSMO a
  7695. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7696. left join (
  7697. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7698. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  7699. where isnull(ee.EATTRIBUTE1,'')=''
  7700. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7701. )c
  7702. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7703. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7704. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7705. }
  7706. if (Type == "4")
  7707. {
  7708. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn020', " + Quantitys + ",1,3,'')";
  7709. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7710. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7711. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7712. from ICSSDN a
  7713. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7714. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7715. left join(select a.SDNCode,a.Sequence,a.WorkPoint,
  7716. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  7717. from ICSSDN a
  7718. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.SDNCode=a.SDNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  7719. left join (
  7720. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7721. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  7722. where isnull(ee.EATTRIBUTE1,'')=''
  7723. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7724. )c
  7725. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7726. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7727. where a.Type='2'
  7728. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7729. }
  7730. if (Type == "5")
  7731. {
  7732. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn021', " + Quantitys + ",1,4,'')";
  7733. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7734. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7735. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7736. from ICSOtherIn a
  7737. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7738. left join(select a.InCode,a.Sequence,a.WorkPoint,
  7739. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  7740. from ICSOtherIn a
  7741. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.InCode=a.InCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  7742. left join (
  7743. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7744. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  7745. where isnull(ee.EATTRIBUTE1,'')=''
  7746. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7747. )c
  7748. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7749. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7750. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1'
  7751. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7752. }
  7753. if (Type == "6")
  7754. {
  7755. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn023', " + Quantitys + ",1,4,'')";
  7756. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7757. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7758. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7759. from ICSReturn a
  7760. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7761. left join(select a.ReturnCode,a.Sequence,a.WorkPoint,
  7762. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  7763. from ICSReturn a
  7764. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ReturnCode=a.ReturnCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  7765. left join (
  7766. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7767. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  7768. where isnull(ee.EATTRIBUTE1,'')=''
  7769. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7770. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7771. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7772. where a.Status='2'
  7773. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7774. }
  7775. if (Type == "7")
  7776. {
  7777. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn002', " + Quantitys + ",1,1,'')";
  7778. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7779. //锐腾添加退补逻辑
  7780. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  7781. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7782. from ICSDeliveryNotice a
  7783. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7784. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  7785. " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  7786. from ICSDeliveryNotice a
  7787. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7788. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  7789. left join (SELECT PODetailID,WorkPoint,sum(Quantity) Quantity FROM ICSDeliveryNotice WHERE DNType='3' GROUP BY PODetailID,WorkPoint )j ON a.DNDetailID=j.PODetailID and a.WorkPoint=j.WorkPoint) xx on xx.DNCode=a.DNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  7790. left join (
  7791. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7792. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  7793. where isnull(ee.EATTRIBUTE1,'')=''
  7794. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7795. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7796. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  7797. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7798. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7799. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  7800. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7801. }
  7802. if (Type == "8")
  7803. {
  7804. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn005', " + Quantitys + ",1,1,'')";
  7805. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7806. //锐腾添加退补逻辑
  7807. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  7808. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7809. from ICSODeliveryNotice a
  7810. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7811. left join(select a.ODNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  7812. from ICSODeliveryNotice a
  7813. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7814. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  7815. left join (SELECT OODetailID,WorkPoint,sum(Quantity) Quantity FROM ICSODeliveryNotice WHERE ODNType='3' GROUP BY OODetailID,WorkPoint )j ON a.ODNDetailID=j.OODetailID and a.WorkPoint=j.WorkPoint) xx on xx.ODNCode=a.ODNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  7816. left join (
  7817. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7818. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  7819. where isnull(ee.EATTRIBUTE1,'')=''
  7820. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7821. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7822. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  7823. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7824. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7825. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  7826. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7827. }
  7828. if (Type == "9")
  7829. {
  7830. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn013', " + Quantitys + ",1,2,'')";
  7831. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7832. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7833. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7834. from ICSManufactureReceive a
  7835. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7836. left join (
  7837. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7838. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  7839. where isnull(ee.EATTRIBUTE1,'')=''
  7840. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7841. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7842. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7843. where a.Status='1' and a.Type='1'
  7844. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7845. }
  7846. if (Type == "10")
  7847. {
  7848. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn003', " + Quantitys + ",1,1,'')";
  7849. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7850. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7851. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7852. from ICSDeliveryNotice a
  7853. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7854. left join (
  7855. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7856. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  7857. where isnull(ee.EATTRIBUTE1,'')=''
  7858. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7859. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7860. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  7861. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7862. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7863. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  7864. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7865. }
  7866. if (Type == "11")
  7867. {
  7868. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn006', " + Quantitys + ",1,1,'')";
  7869. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7870. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7871. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7872. from ICSODeliveryNotice a
  7873. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7874. left join (
  7875. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7876. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  7877. where isnull(ee.EATTRIBUTE1,'')=''
  7878. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7879. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7880. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  7881. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7882. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7883. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  7884. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7885. }
  7886. if (Type == "12")
  7887. {
  7888. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn018', " + Quantitys + ",1,2,'')";
  7889. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7890. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7891. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7892. from ICSMOApplyNegDetail a
  7893. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7894. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7895. left join (
  7896. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7897. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  7898. where isnull(ee.EATTRIBUTE1,'')=''
  7899. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7900. )c
  7901. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7902. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7903. WHERE d.Type='2' and d.Status='2'
  7904. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7905. }
  7906. if (Type == "13")
  7907. {
  7908. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn019', " + Quantitys + ",1,2,'')";
  7909. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7910. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7911. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7912. from ICSMOApplyNegDetail a
  7913. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7914. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7915. left join (
  7916. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7917. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  7918. where isnull(ee.EATTRIBUTE1,'')=''
  7919. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7920. )c
  7921. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7922. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7923. WHERE d.Type='3' and d.Status='2'
  7924. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7925. }
  7926. if (Type == "14")
  7927. {
  7928. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn009', " + Quantitys + ",1,1,'')";
  7929. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7930. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7931. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7932. from ICSOApplyNegDetail a
  7933. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7934. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7935. left join (
  7936. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7937. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  7938. where isnull(ee.EATTRIBUTE1,'')=''
  7939. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7940. )c
  7941. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7942. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7943. WHERE d.Type='2'
  7944. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7945. }
  7946. if (Type == "15")
  7947. {
  7948. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn010', " + Quantitys + ",1,1,'')";
  7949. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7950. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7951. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7952. from ICSOApplyNegDetail a
  7953. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7954. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7955. left join (
  7956. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7957. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  7958. where isnull(ee.EATTRIBUTE1,'')=''
  7959. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7960. )c
  7961. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7962. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7963. WHERE d.Type='3'
  7964. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7965. }
  7966. if (Type == "16")
  7967. {
  7968. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn015', " + Quantitys + ",1,2,'')";
  7969. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7970. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7971. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7972. from ICSMOPick a
  7973. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7974. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7975. left join (
  7976. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7977. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  7978. where isnull(ee.EATTRIBUTE1,'')=''
  7979. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7980. )c
  7981. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7982. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7983. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  7984. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7985. }
  7986. if (Type == "18")
  7987. {
  7988. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn014', " + Quantitys + ",1,2,'')";
  7989. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7990. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7991. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7992. from ICSMOPick a
  7993. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7994. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7995. left join (
  7996. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7997. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  7998. where isnull(ee.EATTRIBUTE1,'')=''
  7999. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8000. )c
  8001. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8002. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8003. where a.EATTRIBUTE1='1'
  8004. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8005. }
  8006. if (Type == "22")
  8007. {
  8008. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8009. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8010. from ICSPurchaseReceive a
  8011. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8012. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8013. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  8014. from ICSPurchaseReceive a
  8015. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.RCVCode=a.RCVCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  8016. left join (
  8017. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8018. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  8019. where isnull(ee.EATTRIBUTE1,'')=''
  8020. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8021. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8022. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8023. where a.Status='1'
  8024. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8025. }
  8026. if (Type == "23")
  8027. {
  8028. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8029. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8030. from ICSOutsourcingReceive a
  8031. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8032. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8033. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  8034. from ICSOutsourcingReceive a
  8035. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.RCVCode=a.RCVCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.WorkPoint
  8036. left join (
  8037. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8038. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  8039. where isnull(ee.EATTRIBUTE1,'')=''
  8040. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8041. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8042. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8043. where a.Status='1'
  8044. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8045. }
  8046. if (Type == "24")
  8047. {
  8048. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn026', " + Quantitys + ",1,3,'')";
  8049. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8050. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8051. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8052. from ICSSSD a
  8053. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8054. left join(select a.SDNCode,a.SDNSequence Sequence,a.WorkPoint,
  8055. case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
  8056. from ICSSSD a
  8057. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint WHERE a.Type='2') xx on xx.SDNCode=a.SDNCode and xx.Sequence=a.SDNSequence and xx.WorkPoint=a.WorkPoint
  8058. left join (
  8059. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8060. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  8061. where isnull(ee.EATTRIBUTE1,'')=''
  8062. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8063. )c
  8064. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8065. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8066. where a.Status='1' and a.Type='2'
  8067. and a.SSDCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8068. }
  8069. dt = SqlHelper.GetDataTableBySql(sql);
  8070. decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  8071. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  8072. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  8073. if (LOTQTY + thisQty > Quantity)
  8074. {
  8075. flag = false;
  8076. }
  8077. return flag;
  8078. }
  8079. /// <summary>
  8080. /// 开立成品入库单(一键生成)
  8081. /// </summary>
  8082. public int SubmitFormKLCPRKALL(string keyValue)
  8083. {
  8084. string sql = string.Empty;
  8085. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8086. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8087. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8088. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8089. foreach (var item in res)
  8090. {
  8091. JObject jo = (JObject)item;
  8092. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8093. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8094. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8095. decimal LOTQTY = minPackQty;
  8096. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8097. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8098. string sqls = string.Empty;
  8099. string Colspan = "";
  8100. string str1 = "";
  8101. List<string> ExtensionIDList = new List<string>();
  8102. for (int i = 0; i < createPageCount; i++)
  8103. {
  8104. if (i + 1 == createPageCount)
  8105. {
  8106. if (minPackQty * createPageCount > thisCreateQty)
  8107. {
  8108. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8109. }
  8110. }
  8111. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  8112. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8113. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8114. bool flag = true;
  8115. foreach (var items in ExtensionIDList)
  8116. {
  8117. if (items == Colspan + WorkPoint)
  8118. {
  8119. flag = false;
  8120. }
  8121. }
  8122. if (ExtensionID == null && flag == true)
  8123. {
  8124. str1 = Guid.NewGuid().ToString();
  8125. 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)
  8126. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8127. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  8128. MUSER, MUSERNAME, WorkPoint);
  8129. }
  8130. else if (ExtensionID != null)
  8131. {
  8132. str1 = ExtensionID.ToString();
  8133. }
  8134. ExtensionIDList.Add(Colspan + WorkPoint);
  8135. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8136. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8137. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8138. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8139. sql += string.Format(@"
  8140. insert into ICSInventoryLot
  8141. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8142. select
  8143. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  8144. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8145. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8146. sql += "\r\n";
  8147. }
  8148. }
  8149. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8150. return count;
  8151. }
  8152. /// <summary>
  8153. /// 审核到货单生成条码(一键生成)
  8154. /// </summary>
  8155. /// <param name="POCode"></param>
  8156. /// <param name="PORow"></param>
  8157. /// <param name="keyValue"></param>
  8158. /// 已改
  8159. /// <returns></returns>
  8160. public int SubmitFormSHDHALL(string keyValue)
  8161. {
  8162. string sql = string.Empty;
  8163. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8164. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8165. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8166. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8167. foreach (var resItem in res)
  8168. {
  8169. JObject jo = (JObject)resItem;
  8170. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8171. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8172. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8173. decimal LOTQTY = minPackQty;
  8174. string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8175. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8176. string sqls = string.Empty;
  8177. string Colspan = "";
  8178. string str1 = "";
  8179. List<string> ExtensionIDList = new List<string>();
  8180. for (int i = 0; i < createPageCount; i++)
  8181. {
  8182. if (i + 1 == createPageCount)
  8183. {
  8184. if (minPackQty * createPageCount > thisCreateQty)
  8185. {
  8186. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8187. }
  8188. }
  8189. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  8190. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8191. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8192. bool flag = true;
  8193. foreach (var item in ExtensionIDList)
  8194. {
  8195. if (item == Colspan + WorkPoint)
  8196. {
  8197. flag = false;
  8198. }
  8199. }
  8200. if (ExtensionID == null && flag == true)
  8201. {
  8202. str1 = Guid.NewGuid().ToString();
  8203. 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)
  8204. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8205. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  8206. MUSER, MUSERNAME, WorkPoint);
  8207. }
  8208. else if (ExtensionID != null)
  8209. {
  8210. str1 = ExtensionID.ToString();
  8211. }
  8212. ExtensionIDList.Add(Colspan + WorkPoint);
  8213. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8214. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8215. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  8216. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8217. sql += string.Format(@"
  8218. insert into ICSInventoryLot
  8219. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8220. select
  8221. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  8222. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8223. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8224. sql += "\r\n";
  8225. }
  8226. }
  8227. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8228. return count;
  8229. }
  8230. /// <summary>
  8231. /// 审核委外到货单生成条码(一键生成)
  8232. /// </summary>
  8233. /// <param name="POCode"></param>
  8234. /// <param name="PORow"></param>
  8235. /// <param name="keyValue"></param>
  8236. /// 已改
  8237. /// <returns></returns>
  8238. public int SubmitFormWWSHDHALL(string keyValue)
  8239. {
  8240. string sql = string.Empty;
  8241. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8242. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8243. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8244. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8245. foreach (var resItem in res)
  8246. {
  8247. JObject jo = (JObject)resItem;
  8248. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8249. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8250. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8251. decimal LOTQTY = minPackQty;
  8252. string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8253. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8254. string sqls = string.Empty;
  8255. string Colspan = "";
  8256. string str1 = "";
  8257. List<string> ExtensionIDList = new List<string>();
  8258. for (int i = 0; i < createPageCount; i++)
  8259. {
  8260. if (i + 1 == createPageCount)
  8261. {
  8262. if (minPackQty * createPageCount > thisCreateQty)
  8263. {
  8264. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8265. }
  8266. }
  8267. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  8268. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8269. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8270. bool flag = true;
  8271. foreach (var item in ExtensionIDList)
  8272. {
  8273. if (item == Colspan + WorkPoint)
  8274. {
  8275. flag = false;
  8276. }
  8277. }
  8278. if (ExtensionID == null && flag == true)
  8279. {
  8280. str1 = Guid.NewGuid().ToString();
  8281. 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)
  8282. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8283. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  8284. MUSER, MUSERNAME, WorkPoint);
  8285. }
  8286. else if (ExtensionID != null)
  8287. {
  8288. str1 = ExtensionID.ToString();
  8289. }
  8290. ExtensionIDList.Add(Colspan + WorkPoint);
  8291. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8292. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8293. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8294. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]);
  8295. sql += string.Format(@"
  8296. insert into ICSInventoryLot
  8297. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8298. select
  8299. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  8300. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8301. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8302. sql += "\r\n";
  8303. }
  8304. }
  8305. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8306. return count;
  8307. }
  8308. public DataTable SelectICSColumnEnableForLotEnable()
  8309. {
  8310. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8311. string sql = @" select ColumnCode from ICSColumnEnable
  8312. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
  8313. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8314. return dt;
  8315. }
  8316. public DataTable GetLoadShowForColumn()
  8317. {
  8318. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8319. string sql = @"
  8320. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
  8321. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8322. return dt;
  8323. }
  8324. public string GetAMEnable()
  8325. {
  8326. string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
  8327. return Code;
  8328. }
  8329. public DataTable SeachMeasure()
  8330. {
  8331. DataTable dt = new DataTable();
  8332. List<DbParameter> parameter = new List<DbParameter>();
  8333. string sql = @" SELECT Top 1 a.F_ItemCode as Code
  8334. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8335. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8336. WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
  8337. return Repository().FindTableBySql(sql.ToString());
  8338. }
  8339. public DataTable SeachLableofDisable()
  8340. {
  8341. DataTable dt = new DataTable();
  8342. List<DbParameter> parameter = new List<DbParameter>();
  8343. string sql = @"
  8344. SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
  8345. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8346. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8347. WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
  8348. return Repository().FindTableBySql(sql.ToString());
  8349. }
  8350. public DataTable SeachAmountEnablebyInvCode(string InvCode)
  8351. {
  8352. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8353. DataTable dt = new DataTable();
  8354. List<DbParameter> parameter = new List<DbParameter>();
  8355. string sql = @"
  8356. select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8357. return Repository().FindTableBySql(sql.ToString());
  8358. }
  8359. public DataTable SeachDatabyInvCode(string InvCode)
  8360. {
  8361. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8362. DataTable dt = new DataTable();
  8363. List<DbParameter> parameter = new List<DbParameter>();
  8364. string sql = @"
  8365. select isnull(AmountEnable,0) as AmountEnable,
  8366. isnull(ContainerEnable,0) ContainerEnable
  8367. from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8368. return Repository().FindTableBySql(sql.ToString());
  8369. }
  8370. public string LotBindCode(String savePath, string Code, string Sequence)
  8371. {
  8372. //数据获取
  8373. try
  8374. {
  8375. int index = 1;
  8376. string msg = "";
  8377. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8378. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8379. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8380. SqlConnection conn = SqlHelper.GetDataCenterConn();
  8381. string sql = "";
  8382. int count = 0;
  8383. DataTable data = FileToExcel.ExcelToTable(savePath);
  8384. int totalNum = data.AsEnumerable().Sum(row => int.Parse(row.Field<string>("条码数量")));
  8385. string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
  8386. case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
  8387. a.ExtensionID
  8388. from ICSMO a
  8389. left join (
  8390. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  8391. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  8392. where isnull(a.EATTRIBUTE1,'')=''
  8393. group by b.TransCode,b.TransSequence
  8394. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  8395. inner join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint where a.MOCode='{0}' and a.Sequence='{1}' and a.WorkPoint='{2}'";
  8396. sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
  8397. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
  8398. string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
  8399. string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString();
  8400. string InvCode = dd.Rows[0]["InvCode"].ToString();
  8401. decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
  8402. decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
  8403. decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
  8404. decimal SQTY = CQuantity - CLOTQTY;
  8405. if (totalNum > SQTY)
  8406. {
  8407. throw new Exception("单号: " + Code + "行号" + Sequence + " 所导入条码数量超出该单据可生成数量,该单据剩余可生成数量为" + SQTY + "!");
  8408. }
  8409. // string CodeSequence = "";
  8410. foreach (DataRow dr in data.Rows)
  8411. {
  8412. index++;
  8413. //string GUID = Guid.NewGuid().ToString();
  8414. // string Code = dr["单据号"].ToString().Trim().ToUpper();
  8415. // string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
  8416. string LotNo = dr["条码"].ToString().Trim().ToUpper();
  8417. string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
  8418. //if (CodeSequence != "" && CodeSequence != Code + Sequence)
  8419. //{
  8420. // throw new Exception("一次只能导入同一单据数据!");
  8421. //}
  8422. //else
  8423. //{
  8424. // CodeSequence = Code + Sequence;
  8425. //}
  8426. if (Code == "" || Code == null)
  8427. {
  8428. throw new Exception("第 " + index + " 行单据号不能为空!");
  8429. }
  8430. if (Sequence == "" || Sequence == null)
  8431. {
  8432. throw new Exception("第 " + index + " 行单据行号不能为空!");
  8433. }
  8434. if (LotNo == "" || LotNo == null)
  8435. {
  8436. throw new Exception("第 " + index + " 行条码不能为空!");
  8437. }
  8438. if (Quantity == "" || Quantity == null)
  8439. {
  8440. throw new Exception("第 " + index + " 行条码数量不能为空!");
  8441. }
  8442. //if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY))
  8443. //{
  8444. // decimal SQTY = CQuantity - CLOTQTY;
  8445. // throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量,该单据剩余可生成数量为"+ SQTY + "!");
  8446. //}
  8447. var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
  8448. sql += @"Insert INto ICSInventoryLot
  8449. ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
  8450. Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
  8451. ";
  8452. sql += @" Insert INto ICSInventoryLotDetail
  8453. ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  8454. Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
  8455. sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
  8456. }
  8457. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8458. if (count > 0)
  8459. {
  8460. msg = "导入成功";
  8461. }
  8462. else
  8463. {
  8464. return "无有效的导入数据。";
  8465. }
  8466. return msg;
  8467. }
  8468. catch (Exception ex)
  8469. {
  8470. return ex.Message;
  8471. }
  8472. }
  8473. /// <summary>
  8474. /// 生产退料(一键生成)
  8475. /// </summary>
  8476. public int SubmitFormGDTLALL(string keyValue)
  8477. {
  8478. string sql = string.Empty;
  8479. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8480. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8481. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8482. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8483. foreach (var item in res)
  8484. {
  8485. JObject jo = (JObject)item;
  8486. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8487. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8488. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8489. decimal LOTQTY = minPackQty;
  8490. string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8491. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8492. string sqls = string.Empty;
  8493. string Colspan = "";
  8494. string str1 = "";
  8495. List<string> ExtensionIDList = new List<string>();
  8496. for (int i = 0; i < createPageCount; i++)
  8497. {
  8498. if (i + 1 == createPageCount)
  8499. {
  8500. if (minPackQty * createPageCount > thisCreateQty)
  8501. {
  8502. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8503. }
  8504. }
  8505. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  8506. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8507. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8508. bool flag = true;
  8509. foreach (var items in ExtensionIDList)
  8510. {
  8511. if (items == Colspan + WorkPoint)
  8512. {
  8513. flag = false;
  8514. }
  8515. }
  8516. if (ExtensionID == null && flag == true)
  8517. {
  8518. str1 = Guid.NewGuid().ToString();
  8519. 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)
  8520. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8521. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  8522. MUSER, MUSERNAME, WorkPoint);
  8523. }
  8524. else if (ExtensionID != null)
  8525. {
  8526. str1 = ExtensionID.ToString();
  8527. }
  8528. ExtensionIDList.Add(Colspan + WorkPoint);
  8529. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8530. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8531. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8532. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8533. sql += string.Format(@"
  8534. insert into ICSInventoryLot
  8535. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8536. select
  8537. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  8538. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8539. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8540. sql += "\r\n";
  8541. }
  8542. }
  8543. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8544. return count;
  8545. }
  8546. /// <summary>
  8547. /// 自动生成批次信息
  8548. /// </summary>
  8549. /// <param name="InvCode"></param>
  8550. /// <param name="WorkPoint"></param>
  8551. /// <returns></returns>
  8552. public DataTable GetVendorBatch()
  8553. {
  8554. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8555. string pre = "C" + DateTime.Now.ToString("yyyyMMdd");
  8556. //var queryParam = queryJson.ToJObject();
  8557. //List<DbParameter> parameter = new List<DbParameter>();
  8558. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  8559. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  8560. return Repository().FindTableBySql(sql.ToString());
  8561. }
  8562. public DataTable GetVendorBatchBYInvCode(string InvCode, string WorkPoint)
  8563. {
  8564. DataTable dt = new DataTable();
  8565. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  8566. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  8567. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  8568. string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
  8569. //var queryParam = queryJson.ToJObject();
  8570. //List<DbParameter> parameter = new List<DbParameter>();
  8571. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  8572. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  8573. return Repository().FindTableBySql(sql.ToString());
  8574. }
  8575. public DataTable GetReworkMo(string invcode, string Code, string SourceCode, ref Pagination jqgridparam)
  8576. {
  8577. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8578. List<DbParameter> parameter = new List<DbParameter>();
  8579. DataTable table = new DataTable();
  8580. string wherestr = "";
  8581. if (!string.IsNullOrEmpty(invcode))
  8582. {
  8583. wherestr += " and a.InvCode like '%" + invcode + "%'";
  8584. }
  8585. if (!string.IsNullOrEmpty(Code))
  8586. {
  8587. wherestr += " and a.MOCode like '%" + Code + "%'";
  8588. }
  8589. string sql = @"SELECT
  8590. a.ID,
  8591. a.MOCode,
  8592. a.Sequence,
  8593. a.InvCode,
  8594. a.Quantity,
  8595. a.Amount,
  8596. a.RCVQuantity,
  8597. a.DepCode,
  8598. a.WHCode,
  8599. a.StartDate,
  8600. a.DueDate,
  8601. a.MOType,
  8602. a.MOStatus,
  8603. a.MOMemo,
  8604. a.CreatePerson,
  8605. a.CreateDateTime,
  8606. a.ERPStatus,
  8607. a.MOID,
  8608. a.MODetailID,
  8609. a.ExtensionID,
  8610. a.MUSER,
  8611. a.MUSERName,
  8612. a.MTIME,
  8613. a.WorkPoint,
  8614. a.EATTRIBUTE1,
  8615. a.EATTRIBUTE2,
  8616. a.EATTRIBUTE3,
  8617. a.EATTRIBUTE4,
  8618. a.EATTRIBUTE5,
  8619. a.EATTRIBUTE6,
  8620. a.EATTRIBUTE7,
  8621. a.EATTRIBUTE8,
  8622. a.EATTRIBUTE9,
  8623. a.EATTRIBUTE10,
  8624. b.InvName,
  8625. b.InvStd,
  8626. b.InvUnit
  8627. from
  8628. dbo.ICSMO a
  8629. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8630. where a.EATTRIBUTE1='1' and a.MOStatus<>'3' and a.WorkPoint = '" + WorkPoint + "'" + wherestr;
  8631. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  8632. }
  8633. //修改形态转换
  8634. public string LotReworkBind(string LotNo, string Code, string Sequence, string ExtensionID)
  8635. {
  8636. string Colspan = "";
  8637. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8638. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8639. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8640. string msg = "";
  8641. string MTDOCCode = "";
  8642. DateTime TimeNow = DateTime.Now;
  8643. string sql = string.Empty;
  8644. //修改条码绑定关系
  8645. sql += @"update dbo.ICSInventoryLotDetail set TransCode='{0}' ,TransSequence='{1}' where LotNo in({2}) and WorkPoint='{3}'";
  8646. //修改条码批次
  8647. sql += @"update dbo.ICSInventoryLot set ExtensionID='{4}' where LotNo in({2}) and WorkPoint='{3}'";
  8648. //删除条码库存
  8649. sql += @"delete dbo.ICSWareHouseLotInfo where LotNo in({2}) and WorkPoint='{3}' ";
  8650. sql = string.Format(sql, Code, Sequence, LotNo, WorkPoint, ExtensionID);
  8651. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  8652. {
  8653. msg = "";
  8654. }
  8655. else
  8656. {
  8657. msg = "条码重新绑定失败!";
  8658. }
  8659. return msg;
  8660. }
  8661. /// <summary>
  8662. /// 一键退库(咖博士新增需求:根据生产退料单,B2、C类物料可以实现一键退库操作),调用PDA上架接口
  8663. /// </summary>
  8664. /// <param name="IDs"></param>
  8665. /// <returns></returns>
  8666. public string PostInWareHouse(string IDs)
  8667. {
  8668. string Colspan = "";
  8669. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8670. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8671. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8672. string msg = "";
  8673. DateTime TimeNow = DateTime.Now;
  8674. string sql = string.Empty;
  8675. try
  8676. {
  8677. IDs = IDs.Substring(1, IDs.Length - 2);
  8678. //1.获取退料单中的B2和C类物料,检验是否全部生成条码,没有生成条码的单据需要先生成条码后一键退库
  8679. string whereSql1 = @"SELECT ' '+F_Define1+' '+F_Define2+' '+F_Define3+' '+F_Define4+' ' as Conditions FROM Sys_SRM_ItemsDetail WHERE F_ItemId=(SELECT F_Id FROM Sys_SRM_Items WHERE F_EnCode='Trans_btnInWareHouse' AND F_ParentId='abee1b7d-160b-4aa0-948c-440e48cf0649') AND F_ItemCode='01' ;
  8680. SELECT F_Define1,F_Define2 FROM Sys_SRM_ItemsDetail WHERE F_ItemId=(SELECT F_Id FROM Sys_SRM_Items WHERE F_EnCode='LocationCode' ) AND F_ItemCode='MaterialReturned' ";
  8681. string whereSql2 = @"
  8682. SELECT F_Define1,F_Define2 FROM Sys_SRM_ItemsDetail WHERE F_ItemId=(SELECT F_Id FROM Sys_SRM_Items WHERE F_EnCode='LocationCode' ) AND F_ItemCode='MaterialReturned' ";
  8683. DataTable dataTable1 = SqlHelper.CmdExecuteDataTable(whereSql1);
  8684. DataTable dataTable2 = SqlHelper.CmdExecuteDataTable(whereSql2);
  8685. if (dataTable1.Rows.Count <= 0)
  8686. {
  8687. throw new Exception("请先再自定义档案配置需要一键退库的物料信息!");
  8688. }
  8689. if (dataTable2.Rows.Count <= 0)
  8690. {
  8691. throw new Exception("请先再自定义档案配置需要一键退库的仓库库位信息!");
  8692. }
  8693. //判断是否全部生成条码
  8694. string isCreate = $@" SELECT a.ApplyNegCode,a.Sequence,a.Quantity,sum(isnull(c.Quantity,0)) as LotQuantity
  8695. FROM ICSMOApplyNegDetail a
  8696. left JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  8697. left JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  8698. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  8699. WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]}
  8700. GROUP BY a.Quantity,a.Id,a.ApplyNegCode,a.Sequence ";
  8701. DataTable isCreatedt = SqlHelper.CmdExecuteDataTable(isCreate);
  8702. if (isCreatedt.Rows.Count <= 0)
  8703. {
  8704. throw new Exception("请先确认退料单物料类别信息,然后确认自定义档案配置可以自动出库的物料信息!");
  8705. }
  8706. else
  8707. {
  8708. for (int i = 0; i < isCreatedt.Rows.Count; i++)
  8709. {
  8710. if (isCreatedt.Rows[i]["Quantity"].ToDecimal() != isCreatedt.Rows[i]["LotQuantity"].ToDecimal())
  8711. {
  8712. throw new Exception($"请先将单据:{isCreatedt.Rows[i]["ApplyNegCode"]},行号:{isCreatedt.Rows[i]["Sequence"]} ,全部生成条码!");
  8713. }
  8714. }
  8715. }
  8716. //查询需要入库的条码信息
  8717. sql = $@" SELECT a.ApplyNegCode,a.Sequence,c.LotNo,c.Quantity,c.InvCode FROM ICSMOApplyNegDetail a
  8718. INNER JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  8719. INNER JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  8720. LEFT JOIN ICSWareHouseLotInfo d ON d.LotNo=c.LotNo AND d.WorkPoint=c.WorkPoint
  8721. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  8722. WHERE
  8723. a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} AND
  8724. d.ID is null ";
  8725. //2.查询退料的条码和退料的条码数量,拼接参数,调用PDA接口
  8726. var getSql = SqlHelper.CmdExecuteDataTable(sql);
  8727. if (getSql.Rows.Count > 0)
  8728. {
  8729. List<LOTStockUpCreateIModel> models = new List<LOTStockUpCreateIModel>();
  8730. LOTStockUpCreateIModel model = new LOTStockUpCreateIModel
  8731. {
  8732. User = MUSER,
  8733. MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"),
  8734. WorkPoint = WorkPoint,
  8735. TransType = "生产退料-生产退料单"
  8736. };
  8737. model.detail = new List<LOTStockUpCreateIModelList>();
  8738. for (int i = 0; i < getSql.Rows.Count; i++)
  8739. {
  8740. LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList
  8741. {
  8742. LotNo = getSql.Rows[i]["LotNo"].ToString(),
  8743. WarehouseCode = dataTable2.Rows[0]["F_Define1"].ToString(),
  8744. LocationCode = dataTable2.Rows[0]["F_Define2"].ToString(),
  8745. TransCode = getSql.Rows[i]["ApplyNegCode"].ToString(),
  8746. TransSequence = getSql.Rows[i]["Sequence"].ToString(),
  8747. Quantity = getSql.Rows[i]["Quantity"].ToString(),
  8748. InvCode = getSql.Rows[i]["InvCode"].ToString()
  8749. };
  8750. model.detail.Add(detail);
  8751. }
  8752. models.Add(model);
  8753. var input = models.ToJson();
  8754. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create";
  8755. string result = HttpPost(APIURL, input);
  8756. Result res = result.ToObject<Result>();
  8757. if (!res.Success)
  8758. {
  8759. throw new Exception(res.Message);
  8760. }
  8761. msg = "";
  8762. }
  8763. return msg;
  8764. }
  8765. catch (Exception ex)
  8766. {
  8767. throw new Exception(ex.Message);
  8768. }
  8769. }
  8770. /// <summary>
  8771. /// 红字销售出库单生成条码列表数据
  8772. /// </summary>
  8773. /// <param name="queryJson"></param>
  8774. /// <param name="jqgridparam"></param>
  8775. /// <returns></returns>
  8776. public DataTable GetGridJsonWMSSSD(string queryJson, ref Pagination jqgridparam)
  8777. {
  8778. DataTable dt = new DataTable();
  8779. var queryParam = queryJson.ToJObject();
  8780. List<DbParameter> parameter = new List<DbParameter>();
  8781. object Figure = GetDecimalDigits();
  8782. #region [SQL]
  8783. string sql = @"select distinct a.ID,a.SSDCode,a.Sequence,a.CusCode,a.CusName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,CAST(a.Quantity AS DECIMAL(38,6)) as Quantity ,CAST(a.Amount AS DECIMAL(38,6)) as Amount,CAST(a.SSDQuantity AS DECIMAL(38,6)) as SSDQuantity,CAST((a.Quantity-ISnull(a.SSDQuantity,0)) AS DECIMAL(38,6)) as NSSDQuantity,a.CreatePerson,a.CreateDateTime,
  8784. CAST(c.LOTQTY AS DECIMAL(38,6)) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  8785. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  8786. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  8787. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  8788. a.EATTRIBUTE9,a.EATTRIBUTE10,isnull(a.Quantity,'') as MPQ
  8789. from ICSSSD a
  8790. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8791. left join (
  8792. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8793. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='24'
  8794. where isnull(ee.EATTRIBUTE1,'')=''
  8795. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8796. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8797. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8798. where a.Type='2' and a.Status='1' ";
  8799. sql = string.Format(sql, Figure);
  8800. #endregion
  8801. if (!string.IsNullOrWhiteSpace(queryJson))
  8802. {
  8803. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  8804. {
  8805. sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' ";
  8806. }
  8807. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  8808. {
  8809. sql += " and a.CusCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  8810. }
  8811. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  8812. {
  8813. sql += " and a.CusName like '%" + queryParam["VenName"].ToString() + "%' ";
  8814. }
  8815. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  8816. {
  8817. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  8818. }
  8819. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  8820. {
  8821. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  8822. }
  8823. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  8824. {
  8825. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  8826. }
  8827. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  8828. {
  8829. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  8830. }
  8831. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  8832. {
  8833. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  8834. }
  8835. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  8836. {
  8837. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  8838. }
  8839. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  8840. {
  8841. string POStatus = queryParam["POStatus"].ToString();
  8842. if (POStatus == "0")
  8843. {
  8844. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  8845. }
  8846. else if (POStatus == "1")
  8847. {
  8848. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  8849. }
  8850. else
  8851. {
  8852. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  8853. }
  8854. }
  8855. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  8856. {
  8857. string WHStatus = queryParam["WHStatus"].ToString();
  8858. if (WHStatus == "0")
  8859. {
  8860. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  8861. }
  8862. else if (WHStatus == "1")
  8863. {
  8864. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)>0";
  8865. }
  8866. else
  8867. {
  8868. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)=0";
  8869. }
  8870. }
  8871. }
  8872. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  8873. {
  8874. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  8875. }
  8876. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  8877. {
  8878. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  8879. }
  8880. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  8881. }
  8882. /// <summary>
  8883. /// 红字销售出库单生成条码
  8884. /// </summary>
  8885. /// <param name="SDNCode"></param>
  8886. /// <param name="Sequence"></param>
  8887. /// <param name="keyValue"></param>
  8888. /// <param name="WorkPoint"></param>
  8889. /// <param name="AMEnable"></param>
  8890. /// <returns></returns>
  8891. public int SubmitFormSSD(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  8892. {
  8893. var queryParam = keyValue.ToJObject();
  8894. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8895. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  8896. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  8897. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  8898. decimal LOTQTY = minPackQty;
  8899. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8900. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  8901. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  8902. string sql = string.Empty;
  8903. //string VendorLot = queryParam["VendorLot"].ToString();
  8904. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8905. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8906. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  8907. string InvCode = queryParam["ClassCode"].ToString();
  8908. string sqls = string.Empty;
  8909. string Colspan = "";
  8910. string str1 = "";
  8911. string LotNo = string.Empty;
  8912. List<string> ExtensionIDList = new List<string>();
  8913. #region 装箱的功能
  8914. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  8915. string VenCode = queryParam["VenCode"].ToString();
  8916. int PackCount = 0;//每箱放的数量
  8917. int Pack_YuShu = 0;//需要平摊的数量
  8918. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  8919. List<PackModel> List_Pack = new List<PackModel>();
  8920. int ZQty = 0;
  8921. if (createPackCount > 0)
  8922. {
  8923. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  8924. if (Pack_YuShu == 0)
  8925. {
  8926. PackCount = (createPageCount / createPackCount);
  8927. }
  8928. else
  8929. {
  8930. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  8931. }
  8932. for (int jj = 0; jj < createPackCount; jj++)
  8933. {
  8934. object CARID = Guid.NewGuid();
  8935. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  8936. sql += @" INSERT INTO dbo.ICSContainer
  8937. ( ID,ContainerCode ,
  8938. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  8939. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  8940. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  8941. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  8942. PackModel PP = new PackModel();
  8943. PP.ID = CARID.ToString();
  8944. PP.PackCode = Carton;
  8945. if (jj < Pack_YuShu)
  8946. {
  8947. PP.FristBarIndex = ZQty;
  8948. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  8949. }
  8950. else
  8951. {
  8952. PP.FristBarIndex = ZQty;
  8953. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  8954. }
  8955. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  8956. List_Pack.Add(PP);
  8957. }
  8958. }
  8959. #endregion
  8960. for (int i = 0; i < createPageCount; i++)
  8961. {
  8962. if (i + 1 == createPageCount)
  8963. {
  8964. if (minPackQty * createPageCount > thisCreateQty)
  8965. {
  8966. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8967. }
  8968. }
  8969. 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();
  8970. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8971. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8972. bool flag = true;
  8973. foreach (var item in ExtensionIDList)
  8974. {
  8975. if (item == Colspan + WorkPoint)
  8976. {
  8977. flag = false;
  8978. }
  8979. }
  8980. if (ExtensionID == null && flag == true)
  8981. {
  8982. str1 = Guid.NewGuid().ToString();
  8983. 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)
  8984. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8985. 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(),
  8986. MUSER, MUSERNAME, WorkPoints);
  8987. }
  8988. else if (ExtensionID != null)
  8989. {
  8990. str1 = ExtensionID.ToString();
  8991. }
  8992. ExtensionIDList.Add(Colspan + WorkPoint);
  8993. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  8994. if (AMEnable == "true")
  8995. {
  8996. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  8997. }
  8998. else
  8999. {
  9000. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9001. }
  9002. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9003. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9004. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9005. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9006. //{
  9007. sql += string.Format(@"
  9008. insert into ICSInventoryLot
  9009. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9010. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9011. select
  9012. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9013. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9014. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9015. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9016. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9017. sql += "\r\n";
  9018. //装箱的功能
  9019. if (List_Pack.Count > 0)
  9020. {
  9021. PackModel mm = new PackModel();
  9022. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9023. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9024. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9025. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9026. }
  9027. //}
  9028. }
  9029. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9030. return count;
  9031. }
  9032. /// <summary>
  9033. /// 红字销售出库单生成条码
  9034. /// </summary>
  9035. /// <param name="SDNCode"></param>
  9036. /// <param name="Sequence"></param>
  9037. /// <param name="keyValue"></param>
  9038. /// <param name="WorkPoint"></param>
  9039. /// <param name="AMEnable"></param>
  9040. /// <returns></returns>
  9041. public int SubmitFormSSDNew(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  9042. {
  9043. var queryParam = keyValue.ToJObject();
  9044. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9045. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9046. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9047. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9048. List<decimal> lotQtys = new List<decimal>();
  9049. foreach (var jLotno in jLotnos)
  9050. {
  9051. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9052. lotQtys.Add(qty);
  9053. }
  9054. int createPageCount = lotQtys.Count();
  9055. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9056. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  9057. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  9058. string sql = string.Empty;
  9059. //string VendorLot = queryParam["VendorLot"].ToString();
  9060. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9061. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9062. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9063. string InvCode = queryParam["ClassCode"].ToString();
  9064. string sqls = string.Empty;
  9065. string Colspan = "";
  9066. string str1 = "";
  9067. string LotNo = string.Empty;
  9068. List<string> ExtensionIDList = new List<string>();
  9069. #region 装箱的功能
  9070. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9071. string VenCode = queryParam["VenCode"].ToString();
  9072. int PackCount = 0;//每箱放的数量
  9073. int Pack_YuShu = 0;//需要平摊的数量
  9074. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9075. List<PackModel> List_Pack = new List<PackModel>();
  9076. int ZQty = 0;
  9077. if (createPackCount > 0)
  9078. {
  9079. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9080. if (Pack_YuShu == 0)
  9081. {
  9082. PackCount = (createPageCount / createPackCount);
  9083. }
  9084. else
  9085. {
  9086. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9087. }
  9088. for (int jj = 0; jj < createPackCount; jj++)
  9089. {
  9090. object CARID = Guid.NewGuid();
  9091. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9092. sql += @" INSERT INTO dbo.ICSContainer
  9093. ( ID,ContainerCode ,
  9094. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9095. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9096. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9097. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9098. PackModel PP = new PackModel();
  9099. PP.ID = CARID.ToString();
  9100. PP.PackCode = Carton;
  9101. if (jj < Pack_YuShu)
  9102. {
  9103. PP.FristBarIndex = ZQty;
  9104. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9105. }
  9106. else
  9107. {
  9108. PP.FristBarIndex = ZQty;
  9109. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9110. }
  9111. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9112. List_Pack.Add(PP);
  9113. }
  9114. }
  9115. #endregion
  9116. for (int i = 0; i < createPageCount; i++)
  9117. {
  9118. var LOTQTY = lotQtys[i];
  9119. 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();
  9120. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9121. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9122. bool flag = true;
  9123. foreach (var item in ExtensionIDList)
  9124. {
  9125. if (item == Colspan + WorkPoint)
  9126. {
  9127. flag = false;
  9128. }
  9129. }
  9130. if (ExtensionID == null && flag == true)
  9131. {
  9132. str1 = Guid.NewGuid().ToString();
  9133. 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)
  9134. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9135. 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(),
  9136. MUSER, MUSERNAME, WorkPoints);
  9137. }
  9138. else if (ExtensionID != null)
  9139. {
  9140. str1 = ExtensionID.ToString();
  9141. }
  9142. ExtensionIDList.Add(Colspan + WorkPoint);
  9143. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9144. if (AMEnable == "true")
  9145. {
  9146. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9147. }
  9148. else
  9149. {
  9150. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9151. }
  9152. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9153. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9154. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9155. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9156. //{
  9157. sql += string.Format(@"
  9158. insert into ICSInventoryLot
  9159. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9160. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9161. select
  9162. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9163. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9164. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9165. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9166. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9167. sql += "\r\n";
  9168. //装箱的功能
  9169. if (List_Pack.Count > 0)
  9170. {
  9171. PackModel mm = new PackModel();
  9172. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9173. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9174. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9175. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9176. }
  9177. //}
  9178. }
  9179. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9180. return count;
  9181. }
  9182. /// <summary>
  9183. /// 红字销售出库单查询
  9184. /// </summary>
  9185. /// <param name="SSDCode"></param>
  9186. /// <param name="Sequence"></param>
  9187. /// <param name="WorkPoint"></param>
  9188. /// <returns></returns>
  9189. public DataTable GetSubGridJsonSSDByCreate(string SSDCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  9190. {
  9191. DataTable dt = new DataTable();
  9192. object Figure = GetDecimalDigits();
  9193. List<DbParameter> parameter = new List<DbParameter>();
  9194. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn026', " + Quantity + ",1,3,'')";
  9195. object Num = SqlHelper.ExecuteScalar(SeachNum);
  9196. string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,6)) as Quantity,CAST( a.Amount as DECIMAL(38,6)) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,6)) as CreatedQty,
  9197. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) as thisCreateQty,
  9198. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  9199. ,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
  9200. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  9201. from ICSSSD a
  9202. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9203. left join (
  9204. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  9205. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='24'
  9206. where isnull(a.EATTRIBUTE1,'')=''
  9207. group by b.TransCode,b.TransSequence
  9208. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence
  9209. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  9210. WHERE a.Status='1'
  9211. and a.Type='2' and a.SSDCode='" + SSDCode + "' and a.Sequence='" + Sequence + "'";
  9212. sql += " and a.WorkPoint='" + WorkPoint + "'";
  9213. sql = string.Format(sql, Figure);
  9214. return Repository().FindTableBySql(sql.ToString());
  9215. }
  9216. /// <summary>
  9217. /// 派纳 线边仓调拨申请单生成条码
  9218. /// </summary>
  9219. /// <param name="queryJson"></param>
  9220. /// <param name="jqgridparam"></param>
  9221. /// <returns></returns>
  9222. public DataTable GetGridJsonTransferApplicationPN(string queryJson, ref Pagination jqgridparam)
  9223. {
  9224. DataTable dt = new DataTable();
  9225. var queryParam = queryJson.ToJObject();
  9226. List<DbParameter> parameter = new List<DbParameter>();
  9227. object Figure = GetDecimalDigits();
  9228. #region [SQL]
  9229. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9230. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9231. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9232. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9233. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9234. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9235. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9236. ,c.LOTQTY
  9237. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9238. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9239. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  9240. a.EATTRIBUTE9,a.EATTRIBUTE10
  9241. from ICSTransferApplication a
  9242. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9243. left join (
  9244. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9245. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='201'
  9246. where isnull(ee.EATTRIBUTE1,'')=''
  9247. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9248. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9249. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9250. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9251. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9252. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9253. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9254. where 1 = 1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9255. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9256. where A.F_EnCode='WorkLineWHConfig')";
  9257. sql = string.Format(sql, Figure);
  9258. #endregion
  9259. if (!string.IsNullOrWhiteSpace(queryJson))
  9260. {
  9261. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9262. {
  9263. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9264. }
  9265. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9266. {
  9267. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9268. }
  9269. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9270. {
  9271. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9272. }
  9273. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9274. {
  9275. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9276. }
  9277. }
  9278. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9279. {
  9280. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9281. }
  9282. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9283. //{
  9284. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9285. //}
  9286. sql += @"GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,e.WarehouseName,a.FromWarehouseCode,e.WarehouseName,a.FromLocationCode,h.LocationName,
  9287. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9288. 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,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
  9289. where 1=1 ";
  9290. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9291. {
  9292. string POStatus = queryParam["POStatus"].ToString();
  9293. if (POStatus == "0")
  9294. {
  9295. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9296. }
  9297. else if (POStatus == "1")
  9298. {
  9299. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9300. }
  9301. else
  9302. {
  9303. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9304. }
  9305. }
  9306. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9307. }
  9308. /// <summary>
  9309. /// 派纳 线边仓一步调入单生成条码
  9310. /// </summary>
  9311. /// <param name="queryJson"></param>
  9312. /// <param name="jqgridparam"></param>
  9313. /// <returns></returns>
  9314. public DataTable GetGridJsonOneSetpTransPN(string queryJson, ref Pagination jqgridparam)
  9315. {
  9316. DataTable dt = new DataTable();
  9317. var queryParam = queryJson.ToJObject();
  9318. List<DbParameter> parameter = new List<DbParameter>();
  9319. object Figure = GetDecimalDigits();
  9320. #region [SQL]
  9321. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9322. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9323. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9324. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9325. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9326. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9327. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9328. ,c.LOTQTY
  9329. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9330. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9331. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  9332. a.EATTRIBUTE9,a.EATTRIBUTE10,isnull(a.Quantity,'') as MPQ
  9333. from ICSTransfer a
  9334. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9335. left join (
  9336. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9337. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='203'
  9338. where isnull(ee.EATTRIBUTE1,'')=''
  9339. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9340. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9341. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9342. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9343. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9344. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9345. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9346. where 1 = 1 and a.Type=1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9347. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9348. where A.F_EnCode='WorkLineWHConfig')";
  9349. sql = string.Format(sql, Figure);
  9350. #endregion
  9351. if (!string.IsNullOrWhiteSpace(queryJson))
  9352. {
  9353. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9354. {
  9355. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9356. }
  9357. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9358. {
  9359. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9360. }
  9361. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9362. {
  9363. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9364. }
  9365. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9366. {
  9367. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9368. }
  9369. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  9370. {
  9371. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  9372. }
  9373. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  9374. {
  9375. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  9376. }
  9377. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  9378. {
  9379. sql += " and a.FromWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  9380. }
  9381. }
  9382. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9383. {
  9384. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9385. }
  9386. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9387. //{
  9388. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9389. //}
  9390. sql += @"GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,e.WarehouseName,a.FromWarehouseCode,e.WarehouseName,a.FromLocationCode,h.LocationName,
  9391. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9392. 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,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
  9393. where 1=1 ";
  9394. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9395. {
  9396. string POStatus = queryParam["POStatus"].ToString();
  9397. if (POStatus == "0")
  9398. {
  9399. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9400. }
  9401. else if (POStatus == "1")
  9402. {
  9403. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9404. }
  9405. else
  9406. {
  9407. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9408. }
  9409. }
  9410. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9411. }
  9412. /// <summary>
  9413. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9414. /// </summary>
  9415. /// <param name="TransferNO"></param>
  9416. /// <param name="Sequence"></param>
  9417. /// <param name="keyValue"></param>
  9418. /// <param name="WorkPoint"></param>
  9419. /// <returns></returns>
  9420. public int SubmitFormTransferApplicatioPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9421. {
  9422. var queryParam = keyValue.ToJObject();
  9423. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9424. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9425. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9426. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9427. decimal LOTQTY = minPackQty;
  9428. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9429. string sql = string.Empty;
  9430. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9431. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9432. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9433. string Identification = Guid.NewGuid().ToString();
  9434. string sqls = string.Empty;
  9435. string Colspan = "";
  9436. string str1 = "";
  9437. List<string> ExtensionIDList = new List<string>();
  9438. #region 装箱的功能
  9439. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9440. string VenCode = queryParam["VenCode"].ToString();
  9441. int PackCount = 0;//每箱放的数量
  9442. int Pack_YuShu = 0;//需要平摊的数量
  9443. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9444. List<PackModel> List_Pack = new List<PackModel>();
  9445. int ZQty = 0;
  9446. if (createPackCount > 0)
  9447. {
  9448. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9449. if (Pack_YuShu == 0)
  9450. {
  9451. PackCount = (createPageCount / createPackCount);
  9452. }
  9453. else
  9454. {
  9455. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9456. }
  9457. for (int jj = 0; jj < createPackCount; jj++)
  9458. {
  9459. object CARID = Guid.NewGuid();
  9460. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9461. sql += @" INSERT INTO dbo.ICSContainer
  9462. ( ID,ContainerCode ,
  9463. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9464. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9465. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9466. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9467. PackModel PP = new PackModel();
  9468. PP.ID = CARID.ToString();
  9469. PP.PackCode = Carton;
  9470. if (jj < Pack_YuShu)
  9471. {
  9472. PP.FristBarIndex = ZQty;
  9473. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9474. }
  9475. else
  9476. {
  9477. PP.FristBarIndex = ZQty;
  9478. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9479. }
  9480. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9481. List_Pack.Add(PP);
  9482. }
  9483. }
  9484. #endregion
  9485. for (int i = 0; i < createPageCount; i++)
  9486. {
  9487. if (i + 1 == createPageCount)
  9488. {
  9489. if (minPackQty * createPageCount > thisCreateQty)
  9490. {
  9491. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9492. }
  9493. }
  9494. 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();
  9495. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9496. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9497. bool flag = true;
  9498. foreach (var item in ExtensionIDList)
  9499. {
  9500. if (item == Colspan + WorkPoint)
  9501. {
  9502. flag = false;
  9503. }
  9504. }
  9505. if (ExtensionID == null && flag == true)
  9506. {
  9507. str1 = Guid.NewGuid().ToString();
  9508. 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)
  9509. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9510. 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(),
  9511. MUSER, MUSERNAME, WorkPoints);
  9512. }
  9513. else if (ExtensionID != null)
  9514. {
  9515. str1 = ExtensionID.ToString();
  9516. }
  9517. ExtensionIDList.Add(Colspan + WorkPoint);
  9518. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9519. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9520. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9521. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9522. sql += string.Format(@"
  9523. insert into ICSInventoryLot
  9524. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9525. select
  9526. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9527. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9528. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9529. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9530. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9531. //派纳调拨申请单生成的条码需要自动入库
  9532. sql += string.Format(@"
  9533. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9534. SELECT NEWID(),a.LotNo
  9535. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9536. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9537. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9538. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9539. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9540. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9541. FROM ICSInventoryLot a
  9542. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9543. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9544. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9545. sql += string.Format(@"
  9546. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9547. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9548. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9549. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9550. MTIME,WorkPoint)
  9551. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9552. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9553. '','0','6','75','1',D.TransferID,
  9554. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9555. SYSDATETIME() ,a.WorkPoint
  9556. FROM ICSInventoryLot a
  9557. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9558. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9559. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9560. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9561. LotNo, WorkPoint, Identification);
  9562. sql += "\r\n";
  9563. //装箱的功能
  9564. if (List_Pack.Count > 0)
  9565. {
  9566. PackModel mm = new PackModel();
  9567. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9568. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9569. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9570. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9571. }
  9572. }
  9573. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9574. return count;
  9575. }
  9576. /// <summary>
  9577. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库)
  9578. /// </summary>
  9579. /// <param name="TransferNO"></param>
  9580. /// <param name="Sequence"></param>
  9581. /// <param name="keyValue"></param>
  9582. /// <param name="WorkPoint"></param>
  9583. /// <returns></returns>
  9584. public int SubmitFormOneStepTransPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9585. {
  9586. var queryParam = keyValue.ToJObject();
  9587. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9588. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9589. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9590. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9591. decimal LOTQTY = minPackQty;
  9592. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9593. string sql = string.Empty;
  9594. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9595. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9596. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9597. string Identification = Guid.NewGuid().ToString();
  9598. string sqls = string.Empty;
  9599. string Colspan = "";
  9600. string str1 = "";
  9601. List<string> ExtensionIDList = new List<string>();
  9602. #region 装箱的功能
  9603. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9604. string VenCode = queryParam["VenCode"].ToString();
  9605. int PackCount = 0;//每箱放的数量
  9606. int Pack_YuShu = 0;//需要平摊的数量
  9607. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9608. List<PackModel> List_Pack = new List<PackModel>();
  9609. int ZQty = 0;
  9610. if (createPackCount > 0)
  9611. {
  9612. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9613. if (Pack_YuShu == 0)
  9614. {
  9615. PackCount = (createPageCount / createPackCount);
  9616. }
  9617. else
  9618. {
  9619. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9620. }
  9621. for (int jj = 0; jj < createPackCount; jj++)
  9622. {
  9623. object CARID = Guid.NewGuid();
  9624. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9625. sql += @" INSERT INTO dbo.ICSContainer
  9626. ( ID,ContainerCode ,
  9627. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9628. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9629. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9630. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9631. PackModel PP = new PackModel();
  9632. PP.ID = CARID.ToString();
  9633. PP.PackCode = Carton;
  9634. if (jj < Pack_YuShu)
  9635. {
  9636. PP.FristBarIndex = ZQty;
  9637. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9638. }
  9639. else
  9640. {
  9641. PP.FristBarIndex = ZQty;
  9642. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9643. }
  9644. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9645. List_Pack.Add(PP);
  9646. }
  9647. }
  9648. #endregion
  9649. for (int i = 0; i < createPageCount; i++)
  9650. {
  9651. if (i + 1 == createPageCount)
  9652. {
  9653. if (minPackQty * createPageCount > thisCreateQty)
  9654. {
  9655. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9656. }
  9657. }
  9658. 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();
  9659. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9660. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9661. bool flag = true;
  9662. foreach (var item in ExtensionIDList)
  9663. {
  9664. if (item == Colspan + WorkPoint)
  9665. {
  9666. flag = false;
  9667. }
  9668. }
  9669. if (ExtensionID == null && flag == true)
  9670. {
  9671. str1 = Guid.NewGuid().ToString();
  9672. 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)
  9673. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9674. 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(),
  9675. MUSER, MUSERNAME, WorkPoints);
  9676. }
  9677. else if (ExtensionID != null)
  9678. {
  9679. str1 = ExtensionID.ToString();
  9680. }
  9681. ExtensionIDList.Add(Colspan + WorkPoint);
  9682. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9683. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9684. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9685. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9686. sql += string.Format(@"
  9687. insert into ICSInventoryLot
  9688. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9689. select
  9690. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9691. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9692. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9693. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9694. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9695. //派纳调拨申请单生成的条码需要自动入库
  9696. sql += string.Format(@"
  9697. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9698. SELECT NEWID(),a.LotNo
  9699. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9700. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9701. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9702. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9703. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9704. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9705. FROM ICSInventoryLot a
  9706. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9707. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9708. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9709. sql += string.Format(@"
  9710. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9711. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9712. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9713. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9714. MTIME,WorkPoint)
  9715. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9716. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9717. '','0','6','75','1',D.TransferID,
  9718. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9719. SYSDATETIME() ,a.WorkPoint
  9720. FROM ICSInventoryLot a
  9721. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9722. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9723. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9724. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9725. LotNo, WorkPoint, Identification);
  9726. sql += "\r\n";
  9727. //装箱的功能
  9728. if (List_Pack.Count > 0)
  9729. {
  9730. PackModel mm = new PackModel();
  9731. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9732. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9733. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9734. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9735. }
  9736. }
  9737. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9738. return count;
  9739. }
  9740. /// <summary>
  9741. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9742. /// </summary>
  9743. /// <param name="TransferNO"></param>
  9744. /// <param name="Sequence"></param>
  9745. /// <param name="keyValue"></param>
  9746. /// <param name="WorkPoint"></param>
  9747. /// <returns></returns>
  9748. public int SubmitFormTransferApplicatioPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9749. {
  9750. var queryParam = keyValue.ToJObject();
  9751. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9752. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9753. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9754. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9755. List<decimal> lotQtys = new List<decimal>();
  9756. foreach (var jLotno in jLotnos)
  9757. {
  9758. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9759. lotQtys.Add(qty);
  9760. }
  9761. int createPageCount = lotQtys.Count();
  9762. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9763. string sql = string.Empty;
  9764. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9765. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9766. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9767. string Identification = Guid.NewGuid().ToString();
  9768. string sqls = string.Empty;
  9769. string Colspan = "";
  9770. string str1 = "";
  9771. List<string> ExtensionIDList = new List<string>();
  9772. #region 装箱的功能
  9773. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9774. string VenCode = queryParam["VenCode"].ToString();
  9775. int PackCount = 0;//每箱放的数量
  9776. int Pack_YuShu = 0;//需要平摊的数量
  9777. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9778. List<PackModel> List_Pack = new List<PackModel>();
  9779. int ZQty = 0;
  9780. if (createPackCount > 0)
  9781. {
  9782. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9783. if (Pack_YuShu == 0)
  9784. {
  9785. PackCount = (createPageCount / createPackCount);
  9786. }
  9787. else
  9788. {
  9789. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9790. }
  9791. for (int jj = 0; jj < createPackCount; jj++)
  9792. {
  9793. object CARID = Guid.NewGuid();
  9794. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9795. sql += @" INSERT INTO dbo.ICSContainer
  9796. ( ID,ContainerCode ,
  9797. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9798. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9799. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9800. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9801. PackModel PP = new PackModel();
  9802. PP.ID = CARID.ToString();
  9803. PP.PackCode = Carton;
  9804. if (jj < Pack_YuShu)
  9805. {
  9806. PP.FristBarIndex = ZQty;
  9807. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9808. }
  9809. else
  9810. {
  9811. PP.FristBarIndex = ZQty;
  9812. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9813. }
  9814. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9815. List_Pack.Add(PP);
  9816. }
  9817. }
  9818. #endregion
  9819. for (int i = 0; i < createPageCount; i++)
  9820. {
  9821. var LOTQTY = lotQtys[i];
  9822. 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();
  9823. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9824. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9825. bool flag = true;
  9826. foreach (var item in ExtensionIDList)
  9827. {
  9828. if (item == Colspan + WorkPoint)
  9829. {
  9830. flag = false;
  9831. }
  9832. }
  9833. if (ExtensionID == null && flag == true)
  9834. {
  9835. str1 = Guid.NewGuid().ToString();
  9836. 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)
  9837. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9838. 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(),
  9839. MUSER, MUSERNAME, WorkPoints);
  9840. }
  9841. else if (ExtensionID != null)
  9842. {
  9843. str1 = ExtensionID.ToString();
  9844. }
  9845. ExtensionIDList.Add(Colspan + WorkPoint);
  9846. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9847. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9848. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9849. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9850. sql += string.Format(@"
  9851. insert into ICSInventoryLot
  9852. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9853. select
  9854. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9855. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9856. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9857. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9858. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9859. //派纳调拨申请单生成的条码需要自动入库
  9860. sql += string.Format(@"
  9861. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9862. SELECT NEWID(),a.LotNo
  9863. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9864. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9865. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9866. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9867. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9868. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9869. FROM ICSInventoryLot a
  9870. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9871. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9872. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9873. sql += string.Format(@"
  9874. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9875. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9876. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9877. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9878. MTIME,WorkPoint)
  9879. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9880. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9881. '','0','6','75','1',D.TransferID,
  9882. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9883. SYSDATETIME() ,a.WorkPoint
  9884. FROM ICSInventoryLot a
  9885. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9886. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9887. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9888. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9889. LotNo, WorkPoint, Identification);
  9890. sql += "\r\n";
  9891. //装箱的功能
  9892. if (List_Pack.Count > 0)
  9893. {
  9894. PackModel mm = new PackModel();
  9895. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9896. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9897. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9898. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9899. }
  9900. }
  9901. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9902. return count;
  9903. }
  9904. /// <summary>
  9905. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库---非规则生成条码)
  9906. /// </summary>
  9907. /// <param name="TransferNO"></param>
  9908. /// <param name="Sequence"></param>
  9909. /// <param name="keyValue"></param>
  9910. /// <param name="WorkPoint"></param>
  9911. /// <returns></returns>
  9912. public int SubmitFormOneStepTransferPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9913. {
  9914. var queryParam = keyValue.ToJObject();
  9915. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9916. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9917. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9918. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9919. List<decimal> lotQtys = new List<decimal>();
  9920. foreach (var jLotno in jLotnos)
  9921. {
  9922. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9923. lotQtys.Add(qty);
  9924. }
  9925. int createPageCount = lotQtys.Count();
  9926. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9927. string sql = string.Empty;
  9928. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9929. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9930. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9931. string Identification = Guid.NewGuid().ToString();
  9932. string sqls = string.Empty;
  9933. string Colspan = "";
  9934. string str1 = "";
  9935. List<string> ExtensionIDList = new List<string>();
  9936. #region 装箱的功能
  9937. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9938. string VenCode = queryParam["VenCode"].ToString();
  9939. int PackCount = 0;//每箱放的数量
  9940. int Pack_YuShu = 0;//需要平摊的数量
  9941. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9942. List<PackModel> List_Pack = new List<PackModel>();
  9943. int ZQty = 0;
  9944. if (createPackCount > 0)
  9945. {
  9946. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9947. if (Pack_YuShu == 0)
  9948. {
  9949. PackCount = (createPageCount / createPackCount);
  9950. }
  9951. else
  9952. {
  9953. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9954. }
  9955. for (int jj = 0; jj < createPackCount; jj++)
  9956. {
  9957. object CARID = Guid.NewGuid();
  9958. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9959. sql += @" INSERT INTO dbo.ICSContainer
  9960. ( ID,ContainerCode ,
  9961. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9962. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9963. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9964. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9965. PackModel PP = new PackModel();
  9966. PP.ID = CARID.ToString();
  9967. PP.PackCode = Carton;
  9968. if (jj < Pack_YuShu)
  9969. {
  9970. PP.FristBarIndex = ZQty;
  9971. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9972. }
  9973. else
  9974. {
  9975. PP.FristBarIndex = ZQty;
  9976. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9977. }
  9978. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9979. List_Pack.Add(PP);
  9980. }
  9981. }
  9982. #endregion
  9983. for (int i = 0; i < createPageCount; i++)
  9984. {
  9985. var LOTQTY = lotQtys[i];
  9986. 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();
  9987. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9988. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9989. bool flag = true;
  9990. foreach (var item in ExtensionIDList)
  9991. {
  9992. if (item == Colspan + WorkPoint)
  9993. {
  9994. flag = false;
  9995. }
  9996. }
  9997. if (ExtensionID == null && flag == true)
  9998. {
  9999. str1 = Guid.NewGuid().ToString();
  10000. 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)
  10001. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10002. 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(),
  10003. MUSER, MUSERNAME, WorkPoints);
  10004. }
  10005. else if (ExtensionID != null)
  10006. {
  10007. str1 = ExtensionID.ToString();
  10008. }
  10009. ExtensionIDList.Add(Colspan + WorkPoint);
  10010. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10011. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10012. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10013. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10014. sql += string.Format(@"
  10015. insert into ICSInventoryLot
  10016. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10017. select
  10018. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10019. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10020. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  10021. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10022. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10023. //派纳调拨申请单生成的条码需要自动入库
  10024. sql += string.Format(@"
  10025. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10026. SELECT NEWID(),a.LotNo
  10027. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10028. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10029. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10030. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10031. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10032. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10033. FROM ICSInventoryLot a
  10034. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10035. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10036. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10037. sql += string.Format(@"
  10038. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10039. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10040. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10041. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10042. MTIME,WorkPoint)
  10043. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10044. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10045. '','0','6','75','1',D.TransferID,
  10046. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10047. SYSDATETIME() ,a.WorkPoint
  10048. FROM ICSInventoryLot a
  10049. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10050. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10051. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10052. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10053. LotNo, WorkPoint, Identification);
  10054. sql += "\r\n";
  10055. //装箱的功能
  10056. if (List_Pack.Count > 0)
  10057. {
  10058. PackModel mm = new PackModel();
  10059. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10060. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10061. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10062. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10063. }
  10064. }
  10065. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10066. return count;
  10067. }
  10068. /// <summary>
  10069. /// 派纳 线边仓调拨申请单获取单据信息
  10070. /// </summary>
  10071. /// <param name="TransferNO"></param>
  10072. /// <param name="Sequence"></param>
  10073. /// <param name="WorkPoint"></param>
  10074. /// <returns></returns>
  10075. public DataTable GetSubGridJsonTransferApplicationByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10076. {
  10077. DataTable dt = new DataTable();
  10078. object Figure = GetDecimalDigits();
  10079. List<DbParameter> parameter = new List<DbParameter>();
  10080. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10081. , CAST ( a.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10082. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10083. , CAST ( ( a.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10084. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10085. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10086. , e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
  10087. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE10 AS EATTRIBUTE6 ,'' EATTRIBUTE7 ,a.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10088. FROM ICSTransferApplication a
  10089. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10090. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10091. FROM ICSInventoryLot a
  10092. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '201'
  10093. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  10094. GROUP BY
  10095. b.TransCode,
  10096. b.TransSequence
  10097. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10098. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10099. WHERE 1 = 1
  10100. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10101. and a.WorkPoint='{WorkPoint}'";
  10102. sql = string.Format(sql, Figure);
  10103. return Repository().FindTableBySql(sql.ToString());
  10104. }
  10105. /// <summary>
  10106. /// 派纳 线边仓一步调入单获取单据信息
  10107. /// </summary>
  10108. /// <param name="TransferNO"></param>
  10109. /// <param name="Sequence"></param>
  10110. /// <param name="WorkPoint"></param>
  10111. /// <returns></returns>
  10112. public DataTable GetSubGridJsonOneSetpTransByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10113. {
  10114. DataTable dt = new DataTable();
  10115. object Figure = GetDecimalDigits();
  10116. List<DbParameter> parameter = new List<DbParameter>();
  10117. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10118. , CAST ( a.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10119. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10120. , CAST ( ( a.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10121. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10122. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10123. , e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
  10124. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE6 AS EATTRIBUTE6 ,'' EATTRIBUTE7 ,a.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10125. FROM ICSTransfer a
  10126. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10127. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10128. FROM ICSInventoryLot a
  10129. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '203'
  10130. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  10131. GROUP BY
  10132. b.TransCode,
  10133. b.TransSequence
  10134. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10135. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10136. WHERE 1 = 1
  10137. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10138. and a.WorkPoint='{WorkPoint}'";
  10139. sql = string.Format(sql, Figure);
  10140. return Repository().FindTableBySql(sql.ToString());
  10141. }
  10142. public int SubmitFormCGRKALL(string keyValue)
  10143. {
  10144. string sql = string.Empty;
  10145. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10146. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10147. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10148. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10149. foreach (var item in res)
  10150. {
  10151. JObject jo = (JObject)item;
  10152. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10153. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10154. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10155. decimal LOTQTY = minPackQty;
  10156. //aa
  10157. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10158. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10159. string sqls = string.Empty;
  10160. string Colspan = "";
  10161. string str1 = "";
  10162. List<string> ExtensionIDList = new List<string>();
  10163. for (int i = 0; i < createPageCount; i++)
  10164. {
  10165. if (i + 1 == createPageCount)
  10166. {
  10167. if (minPackQty * createPageCount > thisCreateQty)
  10168. {
  10169. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10170. }
  10171. }
  10172. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  10173. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10174. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10175. bool flag = true;
  10176. foreach (var items in ExtensionIDList)
  10177. {
  10178. if (items == Colspan + WorkPoint)
  10179. {
  10180. flag = false;
  10181. }
  10182. }
  10183. if (ExtensionID == null && flag == true)
  10184. {
  10185. str1 = Guid.NewGuid().ToString();
  10186. 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)
  10187. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10188. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  10189. MUSER, MUSERNAME, WorkPoint);
  10190. }
  10191. else if (ExtensionID != null)
  10192. {
  10193. str1 = ExtensionID.ToString();
  10194. }
  10195. ExtensionIDList.Add(Colspan + WorkPoint);
  10196. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10197. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10198. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10199. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10200. //aa
  10201. sql += string.Format(@"
  10202. insert into ICSInventoryLot
  10203. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10204. select
  10205. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}'
  10206. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10207. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10208. sql += "\r\n";
  10209. }
  10210. }
  10211. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10212. return count;
  10213. }
  10214. public int SubmitFormXSTHALL(string keyValue)
  10215. {
  10216. try
  10217. {
  10218. string sql = string.Empty;
  10219. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10220. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10221. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10222. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10223. foreach (var item in res)
  10224. {
  10225. JObject jo = (JObject)item;
  10226. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10227. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10228. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10229. decimal LOTQTY = minPackQty;
  10230. //aa
  10231. string Pre = "SSD" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10232. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10233. string sqls = string.Empty;
  10234. string Colspan = "";
  10235. string str1 = "";
  10236. List<string> ExtensionIDList = new List<string>();
  10237. for (int i = 0; i < createPageCount; i++)
  10238. {
  10239. if (i + 1 == createPageCount)
  10240. {
  10241. if (minPackQty * createPageCount > thisCreateQty)
  10242. {
  10243. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10244. }
  10245. }
  10246. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  10247. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10248. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10249. bool flag = true;
  10250. foreach (var items in ExtensionIDList)
  10251. {
  10252. if (items == Colspan + WorkPoint)
  10253. {
  10254. flag = false;
  10255. }
  10256. }
  10257. if (ExtensionID == null && flag == true)
  10258. {
  10259. str1 = Guid.NewGuid().ToString();
  10260. 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)
  10261. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10262. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  10263. MUSER, MUSERNAME, WorkPoint);
  10264. }
  10265. else if (ExtensionID != null)
  10266. {
  10267. str1 = ExtensionID.ToString();
  10268. }
  10269. ExtensionIDList.Add(Colspan + WorkPoint);
  10270. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10271. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10272. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10273. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10274. //aa
  10275. sql += string.Format(@"
  10276. insert into ICSInventoryLot
  10277. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10278. select
  10279. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}'
  10280. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10281. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10282. sql += "\r\n";
  10283. }
  10284. }
  10285. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10286. return count;
  10287. }
  10288. catch (Exception ex)
  10289. {
  10290. throw new Exception(ex.Message);
  10291. }
  10292. }
  10293. public int SubmitFormGDCPALL(string keyValue)
  10294. {
  10295. try
  10296. {
  10297. string sql = string.Empty;
  10298. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10299. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10300. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10301. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10302. foreach (var item in res)
  10303. {
  10304. JObject jo = (JObject)item;
  10305. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10306. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10307. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10308. decimal LOTQTY = minPackQty;
  10309. string Pre = WorkPoint + jo["Code"].ToString().Remove(0, 5);
  10310. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10311. string sqls = string.Empty;
  10312. string Colspan = "";
  10313. string str1 = "";
  10314. List<string> ExtensionIDList = new List<string>();
  10315. for (int i = 0; i < createPageCount; i++)
  10316. {
  10317. if (i + 1 == createPageCount)
  10318. {
  10319. if (minPackQty * createPageCount > thisCreateQty)
  10320. {
  10321. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10322. }
  10323. }
  10324. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  10325. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10326. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10327. bool flag = true;
  10328. foreach (var items in ExtensionIDList)
  10329. {
  10330. if (items == Colspan + WorkPoint)
  10331. {
  10332. flag = false;
  10333. }
  10334. }
  10335. if (ExtensionID == null && flag == true)
  10336. {
  10337. str1 = Guid.NewGuid().ToString();
  10338. 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)
  10339. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10340. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  10341. MUSER, MUSERNAME, WorkPoint);
  10342. }
  10343. else if (ExtensionID != null)
  10344. {
  10345. str1 = ExtensionID.ToString();
  10346. }
  10347. ExtensionIDList.Add(Colspan + WorkPoint);
  10348. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  10349. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10350. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10351. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10352. sql += string.Format(@"
  10353. insert into ICSInventoryLot
  10354. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10355. select
  10356. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}'
  10357. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10358. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10359. sql += "\r\n";
  10360. }
  10361. }
  10362. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10363. return count;
  10364. }
  10365. catch (Exception ex)
  10366. {
  10367. throw new Exception(ex.Message);
  10368. }
  10369. }
  10370. public int SubmitFormLLTLALL(string keyValue)
  10371. {
  10372. try
  10373. {
  10374. string sql = string.Empty;
  10375. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10376. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10377. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10378. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10379. foreach (var item in res)
  10380. {
  10381. JObject jo = (JObject)item;
  10382. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10383. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10384. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10385. decimal LOTQTY = minPackQty;
  10386. string Pre = "MA" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  10387. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10388. string sqls = string.Empty;
  10389. string Colspan = "";
  10390. string str1 = "";
  10391. List<string> ExtensionIDList = new List<string>();
  10392. for (int i = 0; i < createPageCount; i++)
  10393. {
  10394. if (i + 1 == createPageCount)
  10395. {
  10396. if (minPackQty * createPageCount > thisCreateQty)
  10397. {
  10398. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10399. }
  10400. }
  10401. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  10402. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10403. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10404. bool flag = true;
  10405. foreach (var items in ExtensionIDList)
  10406. {
  10407. if (items == Colspan + WorkPoint)
  10408. {
  10409. flag = false;
  10410. }
  10411. }
  10412. if (ExtensionID == null && flag == true)
  10413. {
  10414. str1 = Guid.NewGuid().ToString();
  10415. 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)
  10416. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10417. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  10418. MUSER, MUSERNAME, WorkPoint);
  10419. }
  10420. else if (ExtensionID != null)
  10421. {
  10422. str1 = ExtensionID.ToString();
  10423. }
  10424. ExtensionIDList.Add(Colspan + WorkPoint);
  10425. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  10426. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10427. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10428. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10429. sql += string.Format(@"
  10430. insert into ICSInventoryLot
  10431. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10432. select
  10433. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}'
  10434. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10435. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10436. sql += "\r\n";
  10437. }
  10438. }
  10439. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10440. return count;
  10441. }
  10442. catch (Exception ex)
  10443. {
  10444. throw new Exception(ex.Message);
  10445. }
  10446. }
  10447. public int SubmitFormYBDBALL(string keyValue)
  10448. {
  10449. string sql = string.Empty;
  10450. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10451. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10452. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10453. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10454. string Identification = Guid.NewGuid().ToString();
  10455. foreach (var item in res)
  10456. {
  10457. JObject jo = (JObject)item;
  10458. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10459. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10460. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10461. decimal LOTQTY = minPackQty;
  10462. string Pre = "Tra" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10463. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10464. string sqls = string.Empty;
  10465. string Colspan = "";
  10466. string str1 = "";
  10467. List<string> ExtensionIDList = new List<string>();
  10468. for (int i = 0; i < createPageCount; i++)
  10469. {
  10470. if (i + 1 == createPageCount)
  10471. {
  10472. if (minPackQty * createPageCount > thisCreateQty)
  10473. {
  10474. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10475. }
  10476. }
  10477. Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
  10478. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10479. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10480. bool flag = true;
  10481. foreach (var items in ExtensionIDList)
  10482. {
  10483. if (items == Colspan + WorkPoint)
  10484. {
  10485. flag = false;
  10486. }
  10487. }
  10488. if (ExtensionID == null && flag == true)
  10489. {
  10490. str1 = Guid.NewGuid().ToString();
  10491. 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)
  10492. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10493. str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(), jo["Version"].ToString(), jo["Brand"].ToString(), jo["cFree1"].ToString(), jo["cFree2"].ToString(), jo["cFree3"].ToString(), jo["cFree4"].ToString(), jo["cFree5"].ToString(), jo["cFree6"].ToString(), jo["cFree7"].ToString(), jo["cFree8"].ToString(), jo["cFree9"].ToString(), jo["cFree10"].ToString(),
  10494. MUSER, MUSERNAME, WorkPoint);
  10495. }
  10496. else if (ExtensionID != null)
  10497. {
  10498. str1 = ExtensionID.ToString();
  10499. }
  10500. ExtensionIDList.Add(Colspan + WorkPoint);
  10501. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10502. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10503. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10504. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10505. sql += string.Format(@"
  10506. insert into ICSInventoryLot
  10507. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10508. select
  10509. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}'
  10510. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10511. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10512. //派纳调拨申请单生成的条码需要自动入库
  10513. sql += string.Format(@"
  10514. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10515. SELECT NEWID(),a.LotNo
  10516. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10517. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10518. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10519. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10520. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10521. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10522. FROM ICSInventoryLot a
  10523. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10524. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10525. LotNo, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME);
  10526. sql += string.Format(@"
  10527. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10528. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10529. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10530. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10531. MTIME,WorkPoint)
  10532. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10533. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10534. '','0','6','75','1',D.TransferID,
  10535. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10536. SYSDATETIME() ,a.WorkPoint
  10537. FROM ICSInventoryLot a
  10538. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10539. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10540. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10541. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10542. LotNo, WorkPoint, Identification);
  10543. sql += "\r\n";
  10544. }
  10545. }
  10546. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10547. return count;
  10548. }
  10549. }
  10550. public class PackModel
  10551. {
  10552. public string ID { get; set; }
  10553. public string PackCode { get; set; }
  10554. public int FristBarIndex { get; set; }
  10555. public int LastBarIndex { get; set; }
  10556. }
  10557. }