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.

12206 lines
724 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.XJYWMS
  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.EATTRIBUTE30,'')<>'' AND 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' AND (a.EATTRIBUTE30='完工申报' OR ISNULL(a.EATTRIBUTE30,'')='')";
  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["InvStd"].ToString()))
  877. {
  878. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  879. }
  880. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  881. {
  882. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  883. }
  884. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  885. {
  886. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  887. }
  888. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  889. {
  890. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  891. }
  892. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  893. {
  894. string POStatus = queryParam["POStatus"].ToString();
  895. if (POStatus == "0")
  896. {
  897. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  898. }
  899. else if (POStatus == "1")
  900. {
  901. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  902. }
  903. else
  904. {
  905. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0";
  906. }
  907. }
  908. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  909. {
  910. string WHStatus = queryParam["WHStatus"].ToString();
  911. if (WHStatus == "0")
  912. {
  913. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  914. }
  915. else if (WHStatus == "1")
  916. {
  917. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  918. }
  919. else
  920. {
  921. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  922. }
  923. }
  924. }
  925. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  926. {
  927. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  928. }
  929. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  930. {
  931. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  932. }
  933. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  934. }
  935. /// <summary>
  936. /// 点击成品生成条码(成品)
  937. /// </summary>
  938. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  939. {
  940. DataTable dt = new DataTable();
  941. object Figure = GetDecimalDigits();
  942. List<DbParameter> parameter = new List<DbParameter>();
  943. // 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,
  944. //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
  945. // ,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
  946. // from ICSMO a
  947. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  948. // left join (
  949. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  950. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  951. // where isnull(a.EATTRIBUTE1,'')=''
  952. // group by b.TransCode,b.TransSequence
  953. // ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  954. // left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  955. // left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  956. // WHERE 1 =1 and a.MOStatus<>'3'
  957. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn011', " + Quantity + ",1,2,'')";
  958. object Num = SqlHelper.ExecuteScalar(SeachNum);
  959. string sql = @" select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit,
  960. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  961. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  962. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  963. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  964. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  965. ,e.ProjectCode,CASE WHEN ISNULL(e.BatchCode,'')='' AND ISNULL(F.F_EnabledMark,'')=1 THEN CONVERT(VARCHAR(8), GETDATE(), 112)
  966. ELSE E.BatchCode END AS BatchCode
  967. ,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  968. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE3 AS EATTRIBUTE6 ,b.EATTRIBUTE7 AS EATTRIBUTE7 ,b.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  969. from ICSMO a
  970. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  971. left join (
  972. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  973. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  974. where isnull(a.EATTRIBUTE1,'')=''
  975. group by b.TransCode,b.TransSequence
  976. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  977. left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  978. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  979. left join (select B.F_ItemCode,B.F_EnabledMark from Sys_SRM_Items A
  980. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  981. WHERE A.F_EnCode='NeedDefaultBatch' AND B.F_EnabledMark=1) F ON F.F_ItemCode='3'
  982. WHERE 1 =1 and a.MOStatus<>'3'
  983. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  984. sql += " and a.WorkPoint='" + WorkPoint + "'";
  985. sql = string.Format(sql, Figure);
  986. return Repository().FindTableBySql(sql.ToString());
  987. }
  988. /// <summary>
  989. /// 成品生成条码
  990. /// </summary>
  991. /// <param name="POCode"></param>
  992. /// <param name="PORow"></param>
  993. /// <param name="keyValue"></param>
  994. /// 已改
  995. /// <returns></returns>
  996. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  997. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  998. {
  999. var queryParam = keyValue.ToJObject();
  1000. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1001. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1002. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1003. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1004. decimal LOTQTY = minPackQty;
  1005. string InvCode = queryParam["ClassCode"].ToString();
  1006. string InvCodeLP = queryParam["InvCode"].ToString();
  1007. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1008. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1009. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1010. string Pre = WorkPoints + MOCode.Remove(0, 5);
  1011. string sql = string.Empty;
  1012. //string VendorLot = queryParam["VendorLot"].ToString();
  1013. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1014. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1015. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1016. string sqls = string.Empty;
  1017. string Colspan = "";
  1018. string str1 = "";
  1019. string LotNo = string.Empty;
  1020. List<string> ExtensionIDList = new List<string>();
  1021. #region 装箱的功能
  1022. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1023. string VenCode = queryParam["VenCode"].ToString();
  1024. int PackCount = 0;//每箱放的数量
  1025. int Pack_YuShu = 0;//需要平摊的数量
  1026. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1027. List<PackModel> List_Pack = new List<PackModel>();
  1028. int ZQty = 0;
  1029. if (createPackCount > 0)
  1030. {
  1031. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1032. if (Pack_YuShu == 0)
  1033. {
  1034. PackCount = (createPageCount / createPackCount);
  1035. }
  1036. else
  1037. {
  1038. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1039. }
  1040. for (int jj = 0; jj < createPackCount; jj++)
  1041. {
  1042. object CARID = Guid.NewGuid();
  1043. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1044. sql += @" INSERT INTO dbo.ICSContainer
  1045. ( ID,ContainerCode ,
  1046. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1047. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1048. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1049. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1050. PackModel PP = new PackModel();
  1051. PP.ID = CARID.ToString();
  1052. PP.PackCode = Carton;
  1053. if (jj < Pack_YuShu)
  1054. {
  1055. PP.FristBarIndex = ZQty;
  1056. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1057. }
  1058. else
  1059. {
  1060. PP.FristBarIndex = ZQty;
  1061. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1062. }
  1063. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1064. List_Pack.Add(PP);
  1065. }
  1066. }
  1067. #endregion
  1068. for (int i = 0; i < createPageCount; i++)
  1069. {
  1070. if (i + 1 == createPageCount)
  1071. {
  1072. if (minPackQty * createPageCount > thisCreateQty)
  1073. {
  1074. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1075. }
  1076. }
  1077. 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();
  1078. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1079. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1080. bool flag = true;
  1081. foreach (var item in ExtensionIDList)
  1082. {
  1083. if (item == Colspan + WorkPoint)
  1084. {
  1085. flag = false;
  1086. }
  1087. }
  1088. if (ExtensionID == null && flag == true)
  1089. {
  1090. str1 = Guid.NewGuid().ToString();
  1091. 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)
  1092. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1093. 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(),
  1094. MUSER, MUSERNAME, WorkPoints);
  1095. }
  1096. else if (ExtensionID != null)
  1097. {
  1098. str1 = ExtensionID.ToString();
  1099. }
  1100. ExtensionIDList.Add(Colspan + WorkPoint);
  1101. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1102. //if (AMEnable == "true")
  1103. //{
  1104. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1105. //}vvv
  1106. //else
  1107. //{
  1108. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  1109. //}
  1110. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1111. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1112. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1113. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1114. //{
  1115. sql += string.Format(@"insert into ICSInventoryLot
  1116. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1117. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1118. select
  1119. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1120. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1121. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1122. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1123. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1124. sql += "\r\n";
  1125. //装箱的功能
  1126. if (List_Pack.Count > 0)
  1127. {
  1128. PackModel mm = new PackModel();
  1129. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1130. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1131. ( ID ,ContainerID ,LotNo ,
  1132. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1133. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1134. }
  1135. //}
  1136. }
  1137. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1138. return count;
  1139. }
  1140. /// <summary>
  1141. /// 成品生成条码
  1142. /// </summary>
  1143. /// <param name="POCode"></param>
  1144. /// <param name="PORow"></param>
  1145. /// <param name="keyValue"></param>
  1146. /// 已改
  1147. /// <returns></returns>
  1148. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1149. public int SubmitFormChengPingXJY(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1150. {
  1151. try
  1152. {
  1153. var queryParam = keyValue.ToJObject();
  1154. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1155. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1156. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1157. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1158. decimal LOTQTY = minPackQty;
  1159. decimal FreeQty = Convert.ToDecimal(queryParam["thisFreeQty"].ToString());
  1160. string InvCode = queryParam["ClassCode"].ToString();
  1161. string InvCodeLP = queryParam["InvCode"].ToString();
  1162. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1163. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1164. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1165. string Pre = WorkPoints + MOCode;
  1166. string sql = string.Empty;
  1167. //string VendorLot = queryParam["VendorLot"].ToString();
  1168. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1169. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1170. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1171. string sqls = string.Empty;
  1172. string Colspan = "";
  1173. string str1 = "";
  1174. string LotNo = string.Empty;
  1175. List<string> ExtensionIDList = new List<string>();
  1176. #region 装箱的功能
  1177. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1178. string VenCode = queryParam["VenCode"].ToString();
  1179. int PackCount = 0;//每箱放的数量
  1180. int Pack_YuShu = 0;//需要平摊的数量
  1181. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1182. List<PackModel> List_Pack = new List<PackModel>();
  1183. int ZQty = 0;
  1184. if (createPackCount > 0)
  1185. {
  1186. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1187. if (Pack_YuShu == 0)
  1188. {
  1189. PackCount = (createPageCount / createPackCount);
  1190. }
  1191. else
  1192. {
  1193. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1194. }
  1195. for (int jj = 0; jj < createPackCount; jj++)
  1196. {
  1197. object CARID = Guid.NewGuid();
  1198. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1199. sql += @" INSERT INTO dbo.ICSContainer
  1200. ( ID,ContainerCode ,
  1201. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1202. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1203. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1204. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1205. PackModel PP = new PackModel();
  1206. PP.ID = CARID.ToString();
  1207. PP.PackCode = Carton;
  1208. if (jj < Pack_YuShu)
  1209. {
  1210. PP.FristBarIndex = ZQty;
  1211. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1212. }
  1213. else
  1214. {
  1215. PP.FristBarIndex = ZQty;
  1216. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1217. }
  1218. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1219. List_Pack.Add(PP);
  1220. }
  1221. }
  1222. #endregion
  1223. string FreeLotNo = "";
  1224. for (int i = 0; i < createPageCount; i++)
  1225. {
  1226. if (i + 1 == createPageCount)
  1227. {
  1228. if (minPackQty * createPageCount > thisCreateQty)
  1229. {
  1230. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1231. }
  1232. }
  1233. 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();
  1234. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1235. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1236. bool flag = true;
  1237. foreach (var item in ExtensionIDList)
  1238. {
  1239. if (item == Colspan + WorkPoint)
  1240. {
  1241. flag = false;
  1242. }
  1243. }
  1244. if (ExtensionID == null && flag == true)
  1245. {
  1246. str1 = Guid.NewGuid().ToString();
  1247. 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)
  1248. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1249. 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(),
  1250. MUSER, MUSERNAME, WorkPoints);
  1251. }
  1252. else if (ExtensionID != null)
  1253. {
  1254. str1 = ExtensionID.ToString();
  1255. }
  1256. ExtensionIDList.Add(Colspan + WorkPoint);
  1257. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1258. //if (AMEnable == "true")
  1259. //{
  1260. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1261. //}vvv
  1262. //else
  1263. //{
  1264. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  1265. //}
  1266. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1267. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1268. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1269. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1270. //{
  1271. #region 当赠品数量不等于0且【最后一次循环】时,生成赠品条码(核心修改处)
  1272. if (Convert.ToDecimal(queryParam["thisFreeQty"].ToString()) != 0 && i == createPageCount - 1)
  1273. {
  1274. FreeLotNo = "ZP" + LotNo;
  1275. #region 生成赠品条码
  1276. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1277. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1278. FreeLotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1279. sql += string.Format(@"
  1280. insert into ICSInventoryLot
  1281. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE29,EATTRIBUTE30)
  1282. select
  1283. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}'
  1284. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  1285. FreeLotNo, PRODUCTDATE, FreeQty, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1286. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1287. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()
  1288. , LotNo, "赠品");
  1289. sql += "\r\n";
  1290. #endregion
  1291. sql += string.Format(@" insert into ICSInventoryLot
  1292. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1293. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1294. select
  1295. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1296. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1297. LotNo, PRODUCTDATE, LOTQTY - FreeQty, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1298. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1299. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1300. sql += "\r\n";
  1301. }
  1302. #endregion
  1303. else
  1304. {
  1305. sql += string.Format(@" insert into ICSInventoryLot
  1306. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1307. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1308. select
  1309. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1310. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1311. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1312. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1313. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1314. sql += "\r\n";
  1315. }
  1316. //装箱的功能
  1317. if (List_Pack.Count > 0)
  1318. {
  1319. PackModel mm = new PackModel();
  1320. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1321. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1322. ( ID ,ContainerID ,LotNo ,
  1323. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1324. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1325. }
  1326. //}
  1327. }
  1328. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1329. return count;
  1330. }
  1331. catch (Exception ex)
  1332. {
  1333. throw new Exception(ex.Message);
  1334. }
  1335. }
  1336. /// <summary>
  1337. /// 成品生成条码
  1338. /// </summary>
  1339. /// <param name="POCode"></param>
  1340. /// <param name="PORow"></param>
  1341. /// <param name="keyValue"></param>
  1342. /// 已改
  1343. /// <returns></returns>
  1344. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1345. public int SubmitFormChengPingNew(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1346. {
  1347. var queryParam = keyValue.ToJObject();
  1348. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1349. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1350. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1351. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1352. List<decimal> lotQtys = new List<decimal>();
  1353. foreach (var jLotno in jLotnos)
  1354. {
  1355. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1356. lotQtys.Add(qty);
  1357. }
  1358. int createPageCount = lotQtys.Count();
  1359. string InvCode = queryParam["ClassCode"].ToString();
  1360. string InvCodeLP = queryParam["InvCode"].ToString();
  1361. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1362. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1363. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1364. string Pre = WorkPoints + MOCode.Remove(0, 5);
  1365. string sql = string.Empty;
  1366. //string VendorLot = queryParam["VendorLot"].ToString();
  1367. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1368. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1369. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1370. string sqls = string.Empty;
  1371. string Colspan = "";
  1372. string str1 = "";
  1373. string LotNo = string.Empty;
  1374. List<string> ExtensionIDList = new List<string>();
  1375. #region 装箱的功能
  1376. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1377. string VenCode = queryParam["VenCode"].ToString();
  1378. int PackCount = 0;//每箱放的数量
  1379. int Pack_YuShu = 0;//需要平摊的数量
  1380. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1381. List<PackModel> List_Pack = new List<PackModel>();
  1382. int ZQty = 0;
  1383. if (createPackCount > 0)
  1384. {
  1385. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1386. if (Pack_YuShu == 0)
  1387. {
  1388. PackCount = (createPageCount / createPackCount);
  1389. }
  1390. else
  1391. {
  1392. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1393. }
  1394. for (int jj = 0; jj < createPackCount; jj++)
  1395. {
  1396. object CARID = Guid.NewGuid();
  1397. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1398. sql += @" INSERT INTO dbo.ICSContainer
  1399. ( ID,ContainerCode ,
  1400. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1401. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1402. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1403. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1404. PackModel PP = new PackModel();
  1405. PP.ID = CARID.ToString();
  1406. PP.PackCode = Carton;
  1407. if (jj < Pack_YuShu)
  1408. {
  1409. PP.FristBarIndex = ZQty;
  1410. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1411. }
  1412. else
  1413. {
  1414. PP.FristBarIndex = ZQty;
  1415. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1416. }
  1417. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1418. List_Pack.Add(PP);
  1419. }
  1420. }
  1421. #endregion
  1422. for (int i = 0; i < createPageCount; i++)
  1423. {
  1424. var LOTQTY = lotQtys[i];
  1425. 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();
  1426. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1427. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1428. bool flag = true;
  1429. foreach (var item in ExtensionIDList)
  1430. {
  1431. if (item == Colspan + WorkPoint)
  1432. {
  1433. flag = false;
  1434. }
  1435. }
  1436. if (ExtensionID == null && flag == true)
  1437. {
  1438. str1 = Guid.NewGuid().ToString();
  1439. 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)
  1440. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1441. 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(),
  1442. MUSER, MUSERNAME, WorkPoints);
  1443. }
  1444. else if (ExtensionID != null)
  1445. {
  1446. str1 = ExtensionID.ToString();
  1447. }
  1448. ExtensionIDList.Add(Colspan + WorkPoint);
  1449. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1450. //if (AMEnable == "true")
  1451. //{
  1452. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1453. //}vvv
  1454. //else
  1455. //{
  1456. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  1457. //}
  1458. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1459. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1460. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1461. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1462. //{
  1463. sql += string.Format(@"insert into ICSInventoryLot
  1464. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1465. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1466. select
  1467. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1468. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1469. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1470. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1471. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1472. sql += "\r\n";
  1473. //装箱的功能
  1474. if (List_Pack.Count > 0)
  1475. {
  1476. PackModel mm = new PackModel();
  1477. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1478. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1479. ( ID ,ContainerID ,LotNo ,
  1480. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1481. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1482. }
  1483. //}
  1484. }
  1485. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1486. return count;
  1487. }
  1488. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  1489. {
  1490. DataTable dt = new DataTable();
  1491. var queryParam = queryJson.ToJObject();
  1492. List<DbParameter> parameter = new List<DbParameter>();
  1493. object Figure = GetDecimalDigits();
  1494. #region [SQL]
  1495. 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
  1496. ,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
  1497. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1498. ,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,
  1499. a.EATTRIBUTE9,a.EATTRIBUTE10
  1500. from ICSSDN a
  1501. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1502. left join (
  1503. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1504. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  1505. where isnull(ee.EATTRIBUTE1,'')=''
  1506. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1507. )c
  1508. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1509. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1510. --left join ICSDepartment dep ON dep.DepCode=a.[Detp]
  1511. where a.Type='2'";
  1512. sql = string.Format(sql, Figure);
  1513. #endregion
  1514. if (!string.IsNullOrWhiteSpace(queryJson))
  1515. {
  1516. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1517. {
  1518. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1519. }
  1520. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1521. {
  1522. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1523. }
  1524. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1525. {
  1526. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1527. }
  1528. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1529. {
  1530. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1531. }
  1532. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1533. {
  1534. string POStatus = queryParam["POStatus"].ToString();
  1535. if (POStatus == "0")
  1536. {
  1537. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1538. }
  1539. else if (POStatus == "1")
  1540. {
  1541. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1542. }
  1543. else
  1544. {
  1545. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1546. }
  1547. }
  1548. }
  1549. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1550. {
  1551. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1552. }
  1553. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1554. {
  1555. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1556. }
  1557. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1558. }
  1559. /// <summary>
  1560. /// 点击销售退货生成条码(销售退货)
  1561. /// </summary>
  1562. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1563. {
  1564. DataTable dt = new DataTable();
  1565. object Figure = GetDecimalDigits();
  1566. List<DbParameter> parameter = new List<DbParameter>();
  1567. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn020', " + Quantity + ",1,3,'')";
  1568. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1569. 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,
  1570. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1571. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  1572. ,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,
  1573. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1574. from ICSSDN a
  1575. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1576. left join (
  1577. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1578. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='4'
  1579. where isnull(a.EATTRIBUTE1,'')=''
  1580. group by b.TransCode,b.TransSequence
  1581. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  1582. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1583. WHERE 1 =1
  1584. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  1585. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1586. sql = string.Format(sql, Figure);
  1587. return Repository().FindTableBySql(sql.ToString());
  1588. }
  1589. /// <summary>
  1590. /// 销售退货生成条码
  1591. /// </summary>
  1592. /// <param name="POCode"></param>
  1593. /// <param name="PORow"></param>
  1594. /// <param name="keyValue"></param>
  1595. /// 已改
  1596. /// <returns></returns>
  1597. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1598. {
  1599. var queryParam = keyValue.ToJObject();
  1600. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1601. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1602. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1603. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1604. decimal LOTQTY = minPackQty;
  1605. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1606. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1607. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1608. string sql = string.Empty;
  1609. //string VendorLot = queryParam["VendorLot"].ToString();
  1610. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1611. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1612. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1613. string InvCode = queryParam["ClassCode"].ToString();
  1614. string sqls = string.Empty;
  1615. string Colspan = "";
  1616. string str1 = "";
  1617. string LotNo = string.Empty;
  1618. List<string> ExtensionIDList = new List<string>();
  1619. #region 装箱的功能
  1620. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1621. string VenCode = queryParam["VenCode"].ToString();
  1622. int PackCount = 0;//每箱放的数量
  1623. int Pack_YuShu = 0;//需要平摊的数量
  1624. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1625. List<PackModel> List_Pack = new List<PackModel>();
  1626. int ZQty = 0;
  1627. if (createPackCount > 0)
  1628. {
  1629. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1630. if (Pack_YuShu == 0)
  1631. {
  1632. PackCount = (createPageCount / createPackCount);
  1633. }
  1634. else
  1635. {
  1636. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1637. }
  1638. for (int jj = 0; jj < createPackCount; jj++)
  1639. {
  1640. object CARID = Guid.NewGuid();
  1641. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1642. sql += @" INSERT INTO dbo.ICSContainer
  1643. ( ID,ContainerCode ,
  1644. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1645. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1646. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1647. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1648. PackModel PP = new PackModel();
  1649. PP.ID = CARID.ToString();
  1650. PP.PackCode = Carton;
  1651. if (jj < Pack_YuShu)
  1652. {
  1653. PP.FristBarIndex = ZQty;
  1654. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1655. }
  1656. else
  1657. {
  1658. PP.FristBarIndex = ZQty;
  1659. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1660. }
  1661. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1662. List_Pack.Add(PP);
  1663. }
  1664. }
  1665. #endregion
  1666. for (int i = 0; i < createPageCount; i++)
  1667. {
  1668. if (i + 1 == createPageCount)
  1669. {
  1670. if (minPackQty * createPageCount > thisCreateQty)
  1671. {
  1672. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1673. }
  1674. }
  1675. 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();
  1676. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1677. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1678. bool flag = true;
  1679. foreach (var item in ExtensionIDList)
  1680. {
  1681. if (item == Colspan + WorkPoint)
  1682. {
  1683. flag = false;
  1684. }
  1685. }
  1686. if (ExtensionID == null && flag == true)
  1687. {
  1688. str1 = Guid.NewGuid().ToString();
  1689. 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)
  1690. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1691. 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(),
  1692. MUSER, MUSERNAME, WorkPoints);
  1693. }
  1694. else if (ExtensionID != null)
  1695. {
  1696. str1 = ExtensionID.ToString();
  1697. }
  1698. ExtensionIDList.Add(Colspan + WorkPoint);
  1699. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1700. if (AMEnable == "true")
  1701. {
  1702. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1703. }
  1704. else
  1705. {
  1706. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1707. }
  1708. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1709. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1710. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1711. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1712. //{
  1713. sql += string.Format(@"
  1714. insert into ICSInventoryLot
  1715. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1716. select
  1717. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1718. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1719. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1720. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1721. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1722. sql += "\r\n";
  1723. //}
  1724. //装箱的功能
  1725. if (List_Pack.Count > 0)
  1726. {
  1727. PackModel mm = new PackModel();
  1728. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1729. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1730. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1731. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1732. }
  1733. }
  1734. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1735. return count;
  1736. }
  1737. /// <summary>
  1738. /// 销售退货生成条码
  1739. /// </summary>
  1740. /// <param name="POCode"></param>
  1741. /// <param name="PORow"></param>
  1742. /// <param name="keyValue"></param>
  1743. /// 已改
  1744. /// <returns></returns>
  1745. public int SubmitFormXiaoShouNew(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1746. {
  1747. var queryParam = keyValue.ToJObject();
  1748. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1749. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1750. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1751. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1752. List<decimal> lotQtys = new List<decimal>();
  1753. foreach (var jLotno in jLotnos)
  1754. {
  1755. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1756. lotQtys.Add(qty);
  1757. }
  1758. int createPageCount = lotQtys.Count();
  1759. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1760. string sql = string.Empty;
  1761. //string VendorLot = queryParam["VendorLot"].ToString();
  1762. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1763. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1764. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1765. string InvCode = queryParam["ClassCode"].ToString();
  1766. string sqls = string.Empty;
  1767. string Colspan = "";
  1768. string str1 = "";
  1769. string LotNo = string.Empty;
  1770. List<string> ExtensionIDList = new List<string>();
  1771. #region 装箱的功能
  1772. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1773. string VenCode = queryParam["VenCode"].ToString();
  1774. int PackCount = 0;//每箱放的数量
  1775. int Pack_YuShu = 0;//需要平摊的数量
  1776. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1777. List<PackModel> List_Pack = new List<PackModel>();
  1778. int ZQty = 0;
  1779. if (createPackCount > 0)
  1780. {
  1781. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1782. if (Pack_YuShu == 0)
  1783. {
  1784. PackCount = (createPageCount / createPackCount);
  1785. }
  1786. else
  1787. {
  1788. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1789. }
  1790. for (int jj = 0; jj < createPackCount; jj++)
  1791. {
  1792. object CARID = Guid.NewGuid();
  1793. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1794. sql += @" INSERT INTO dbo.ICSContainer
  1795. ( ID,ContainerCode ,
  1796. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1797. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1798. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1799. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1800. PackModel PP = new PackModel();
  1801. PP.ID = CARID.ToString();
  1802. PP.PackCode = Carton;
  1803. if (jj < Pack_YuShu)
  1804. {
  1805. PP.FristBarIndex = ZQty;
  1806. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1807. }
  1808. else
  1809. {
  1810. PP.FristBarIndex = ZQty;
  1811. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1812. }
  1813. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1814. List_Pack.Add(PP);
  1815. }
  1816. }
  1817. #endregion
  1818. for (int i = 0; i < createPageCount; i++)
  1819. {
  1820. var LOTQTY = lotQtys[i];
  1821. 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();
  1822. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1823. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1824. bool flag = true;
  1825. foreach (var item in ExtensionIDList)
  1826. {
  1827. if (item == Colspan + WorkPoint)
  1828. {
  1829. flag = false;
  1830. }
  1831. }
  1832. if (ExtensionID == null && flag == true)
  1833. {
  1834. str1 = Guid.NewGuid().ToString();
  1835. 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)
  1836. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1837. 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(),
  1838. MUSER, MUSERNAME, WorkPoints);
  1839. }
  1840. else if (ExtensionID != null)
  1841. {
  1842. str1 = ExtensionID.ToString();
  1843. }
  1844. ExtensionIDList.Add(Colspan + WorkPoint);
  1845. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1846. if (AMEnable == "true")
  1847. {
  1848. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1849. }
  1850. else
  1851. {
  1852. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1853. }
  1854. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1855. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1856. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1857. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1858. //{
  1859. sql += string.Format(@"
  1860. insert into ICSInventoryLot
  1861. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1862. select
  1863. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1864. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1865. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1866. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1867. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1868. sql += "\r\n";
  1869. //}
  1870. //装箱的功能
  1871. if (List_Pack.Count > 0)
  1872. {
  1873. PackModel mm = new PackModel();
  1874. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1875. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1876. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1877. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1878. }
  1879. }
  1880. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1881. return count;
  1882. }
  1883. public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
  1884. {
  1885. DataTable dt = new DataTable();
  1886. var queryParam = queryJson.ToJObject();
  1887. List<DbParameter> parameter = new List<DbParameter>();
  1888. object Figure = GetDecimalDigits();
  1889. #region [SQL]
  1890. string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  1891. 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
  1892. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1893. ,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,
  1894. a.EATTRIBUTE9,a.EATTRIBUTE10
  1895. from ICSOtherIn a
  1896. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1897. left join (
  1898. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1899. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  1900. where isnull(ee.EATTRIBUTE1,'')=''
  1901. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1902. )c
  1903. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1904. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1905. where a.Status='1' and ISNULL(a.Type,'1')='1' ";
  1906. sql = string.Format(sql, Figure);
  1907. #endregion
  1908. if (!string.IsNullOrWhiteSpace(queryJson))
  1909. {
  1910. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1911. {
  1912. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1913. }
  1914. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1915. {
  1916. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1917. }
  1918. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1919. {
  1920. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1921. }
  1922. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1923. {
  1924. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1925. }
  1926. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  1927. {
  1928. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  1929. }
  1930. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  1931. {
  1932. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  1933. }
  1934. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  1935. {
  1936. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  1937. }
  1938. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  1939. {
  1940. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  1941. }
  1942. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1943. {
  1944. string POStatus = queryParam["POStatus"].ToString();
  1945. if (POStatus == "0")
  1946. {
  1947. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1948. }
  1949. else if (POStatus == "1")
  1950. {
  1951. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1952. }
  1953. else
  1954. {
  1955. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1956. }
  1957. }
  1958. }
  1959. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1960. {
  1961. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1962. }
  1963. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1964. {
  1965. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1966. }
  1967. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1968. }
  1969. /// <summary>
  1970. /// 点击销售退货生成条码(其他入库)
  1971. /// </summary>
  1972. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1973. {
  1974. DataTable dt = new DataTable();
  1975. object Figure = GetDecimalDigits();
  1976. List<DbParameter> parameter = new List<DbParameter>();
  1977. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn021', " + Quantity + ",1,4,'')";
  1978. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1979. 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,
  1980. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1981. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  1982. ,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,
  1983. ISNULL(a.EATTRIBUTE5,'') AS EATTRIBUTE5
  1984. ,a.EATTRIBUTE6 AS EATTRIBUTE6,a.EATTRIBUTE8 AS EATTRIBUTE8
  1985. from ICSOtherIn a
  1986. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1987. left join (
  1988. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1989. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='5'
  1990. where isnull(a.EATTRIBUTE1,'')=''
  1991. group by b.TransCode,b.TransSequence
  1992. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  1993. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1994. WHERE 1 =1
  1995. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "' and ISNULL(a.EATTRIBUTE2,'1')='1'";
  1996. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1997. sql = string.Format(sql, Figure);
  1998. return Repository().FindTableBySql(sql.ToString());
  1999. }
  2000. /// <summary>
  2001. /// 其他入库生成条码
  2002. /// </summary>
  2003. /// <param name="POCode"></param>
  2004. /// <param name="PORow"></param>
  2005. /// <param name="keyValue"></param>
  2006. /// 已改
  2007. /// <returns></returns>
  2008. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2009. {
  2010. var queryParam = keyValue.ToJObject();
  2011. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2012. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2013. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2014. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2015. decimal LOTQTY = minPackQty;
  2016. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2017. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2018. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2019. string sql = string.Empty;
  2020. //string VendorLot = queryParam["VendorLot"].ToString();
  2021. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2022. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2023. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2024. string InvCode = queryParam["ClassCode"].ToString();
  2025. string sqls = string.Empty;
  2026. string Colspan = "";
  2027. string str1 = "";
  2028. string LotNo = string.Empty;
  2029. List<string> ExtensionIDList = new List<string>();
  2030. #region 装箱的功能
  2031. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2032. string VenCode = queryParam["VenCode"].ToString();
  2033. int PackCount = 0;//每箱放的数量
  2034. int Pack_YuShu = 0;//需要平摊的数量
  2035. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2036. List<PackModel> List_Pack = new List<PackModel>();
  2037. int ZQty = 0;
  2038. if (createPackCount > 0)
  2039. {
  2040. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2041. if (Pack_YuShu == 0)
  2042. {
  2043. PackCount = (createPageCount / createPackCount);
  2044. }
  2045. else
  2046. {
  2047. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2048. }
  2049. for (int jj = 0; jj < createPackCount; jj++)
  2050. {
  2051. object CARID = Guid.NewGuid();
  2052. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2053. sql += @" INSERT INTO dbo.ICSContainer
  2054. ( ID,ContainerCode ,
  2055. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2056. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2057. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2058. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2059. PackModel PP = new PackModel();
  2060. PP.ID = CARID.ToString();
  2061. PP.PackCode = Carton;
  2062. if (jj < Pack_YuShu)
  2063. {
  2064. PP.FristBarIndex = ZQty;
  2065. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2066. }
  2067. else
  2068. {
  2069. PP.FristBarIndex = ZQty;
  2070. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2071. }
  2072. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2073. List_Pack.Add(PP);
  2074. }
  2075. }
  2076. #endregion
  2077. for (int i = 0; i < createPageCount; i++)
  2078. {
  2079. if (i + 1 == createPageCount)
  2080. {
  2081. if (minPackQty * createPageCount > thisCreateQty)
  2082. {
  2083. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2084. }
  2085. }
  2086. 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();
  2087. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2088. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2089. bool flag = true;
  2090. foreach (var item in ExtensionIDList)
  2091. {
  2092. if (item == Colspan + WorkPoint)
  2093. {
  2094. flag = false;
  2095. }
  2096. }
  2097. if (ExtensionID == null && flag == true)
  2098. {
  2099. str1 = Guid.NewGuid().ToString();
  2100. 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)
  2101. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2102. 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(),
  2103. MUSER, MUSERNAME, WorkPoints);
  2104. }
  2105. else if (ExtensionID != null)
  2106. {
  2107. str1 = ExtensionID.ToString();
  2108. }
  2109. ExtensionIDList.Add(Colspan + WorkPoint);
  2110. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2111. if (AMEnable == "true")
  2112. {
  2113. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2114. }
  2115. else
  2116. {
  2117. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2118. }
  2119. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2120. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2121. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2122. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2123. //{
  2124. sql += string.Format(@"
  2125. insert into ICSInventoryLot
  2126. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  2127. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2128. select
  2129. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2130. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  2131. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2132. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2133. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2134. sql += "\r\n";
  2135. //装箱的功能
  2136. if (List_Pack.Count > 0)
  2137. {
  2138. PackModel mm = new PackModel();
  2139. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2140. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2141. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2142. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2143. }
  2144. //}
  2145. }
  2146. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2147. return count;
  2148. }
  2149. public int SubmitFormQiTaNew(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2150. {
  2151. var queryParam = keyValue.ToJObject();
  2152. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2153. //int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2154. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2155. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2156. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  2157. List<decimal> lotQtys = new List<decimal>();
  2158. foreach (var jLotno in jLotnos)
  2159. {
  2160. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  2161. lotQtys.Add(qty);
  2162. }
  2163. int createPageCount = lotQtys.Count();
  2164. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2165. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2166. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2167. string sql = string.Empty;
  2168. //string VendorLot = queryParam["VendorLot"].ToString();
  2169. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2170. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2171. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2172. string InvCode = queryParam["ClassCode"].ToString();
  2173. string sqls = string.Empty;
  2174. string Colspan = "";
  2175. string str1 = "";
  2176. string LotNo = string.Empty;
  2177. List<string> ExtensionIDList = new List<string>();
  2178. #region 装箱的功能
  2179. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2180. string VenCode = queryParam["VenCode"].ToString();
  2181. int PackCount = 0;//每箱放的数量
  2182. int Pack_YuShu = 0;//需要平摊的数量
  2183. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2184. List<PackModel> List_Pack = new List<PackModel>();
  2185. int ZQty = 0;
  2186. if (createPackCount > 0)
  2187. {
  2188. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2189. if (Pack_YuShu == 0)
  2190. {
  2191. PackCount = (createPageCount / createPackCount);
  2192. }
  2193. else
  2194. {
  2195. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2196. }
  2197. for (int jj = 0; jj < createPackCount; jj++)
  2198. {
  2199. object CARID = Guid.NewGuid();
  2200. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2201. sql += @" INSERT INTO dbo.ICSContainer
  2202. ( ID,ContainerCode ,
  2203. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2204. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2205. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2206. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2207. PackModel PP = new PackModel();
  2208. PP.ID = CARID.ToString();
  2209. PP.PackCode = Carton;
  2210. if (jj < Pack_YuShu)
  2211. {
  2212. PP.FristBarIndex = ZQty;
  2213. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2214. }
  2215. else
  2216. {
  2217. PP.FristBarIndex = ZQty;
  2218. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2219. }
  2220. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2221. List_Pack.Add(PP);
  2222. }
  2223. }
  2224. #endregion
  2225. for (int i = 0; i < createPageCount; i++)
  2226. {
  2227. var LOTQTY = lotQtys[i];
  2228. 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();
  2229. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2230. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2231. bool flag = true;
  2232. foreach (var item in ExtensionIDList)
  2233. {
  2234. if (item == Colspan + WorkPoint)
  2235. {
  2236. flag = false;
  2237. }
  2238. }
  2239. if (ExtensionID == null && flag == true)
  2240. {
  2241. str1 = Guid.NewGuid().ToString();
  2242. 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)
  2243. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2244. 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(),
  2245. MUSER, MUSERNAME, WorkPoints);
  2246. }
  2247. else if (ExtensionID != null)
  2248. {
  2249. str1 = ExtensionID.ToString();
  2250. }
  2251. ExtensionIDList.Add(Colspan + WorkPoint);
  2252. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2253. if (AMEnable == "true")
  2254. {
  2255. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2256. }
  2257. else
  2258. {
  2259. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2260. }
  2261. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2262. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2263. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2264. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2265. //{
  2266. sql += string.Format(@"
  2267. insert into ICSInventoryLot
  2268. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  2269. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2270. select
  2271. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2272. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  2273. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  2274. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2275. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2276. sql += "\r\n";
  2277. //装箱的功能
  2278. if (List_Pack.Count > 0)
  2279. {
  2280. PackModel mm = new PackModel();
  2281. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2282. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2283. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2284. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2285. }
  2286. //}
  2287. }
  2288. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2289. return count;
  2290. }
  2291. //归还
  2292. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  2293. {
  2294. DataTable dt = new DataTable();
  2295. var queryParam = queryJson.ToJObject();
  2296. List<DbParameter> parameter = new List<DbParameter>();
  2297. object Figure = GetDecimalDigits();
  2298. #region [SQL]
  2299. string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2300. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2301. CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime,
  2302. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2303. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2304. ,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,
  2305. a.EATTRIBUTE9,a.EATTRIBUTE10
  2306. from ICSReturn a
  2307. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2308. left join (
  2309. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2310. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  2311. where isnull(ee.EATTRIBUTE1,'')=''
  2312. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2313. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2314. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2315. where a.Status='2'";
  2316. sql = string.Format(sql, Figure);
  2317. #endregion
  2318. if (!string.IsNullOrWhiteSpace(queryJson))
  2319. {
  2320. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2321. {
  2322. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2323. }
  2324. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2325. {
  2326. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2327. }
  2328. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2329. {
  2330. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2331. }
  2332. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2333. {
  2334. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2335. }
  2336. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2337. {
  2338. string POStatus = queryParam["POStatus"].ToString();
  2339. if (POStatus == "0")
  2340. {
  2341. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2342. }
  2343. else if (POStatus == "1")
  2344. {
  2345. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2346. }
  2347. else
  2348. {
  2349. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2350. }
  2351. }
  2352. }
  2353. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2354. {
  2355. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2356. }
  2357. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2358. {
  2359. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2360. }
  2361. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2362. }
  2363. //审核到货单(采购订单需与审核到货单一起同步)
  2364. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  2365. {
  2366. DataTable dt = new DataTable();
  2367. var queryParam = queryJson.ToJObject();
  2368. List<DbParameter> parameter = new List<DbParameter>();
  2369. object Figure = GetDecimalDigits();
  2370. #region [SQL]
  2371. 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,
  2372. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2373. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2374. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  2375. Case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2376. --,isnull(b.EffectiveEnable,0) as EffectiveEnable
  2377. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2378. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2379. ,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,
  2380. a.EATTRIBUTE9,a.EATTRIBUTE10
  2381. from ICSDeliveryNotice a
  2382. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2383. left join (
  2384. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2385. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  2386. where isnull(ee.EATTRIBUTE1,'')=''
  2387. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2388. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2389. left join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  2390. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2391. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2392. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  2393. ";
  2394. sql = string.Format(sql, Figure);
  2395. #endregion
  2396. if (!string.IsNullOrWhiteSpace(queryJson))
  2397. {
  2398. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2399. {
  2400. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2401. }
  2402. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2403. {
  2404. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2405. }
  2406. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2407. {
  2408. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2409. }
  2410. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2411. {
  2412. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2413. }
  2414. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2415. {
  2416. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2417. }
  2418. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2419. {
  2420. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2421. }
  2422. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2423. {
  2424. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2425. }
  2426. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2427. {
  2428. string POStatus = queryParam["POStatus"].ToString();
  2429. if (POStatus == "0")
  2430. {
  2431. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2432. }
  2433. else if (POStatus == "1")
  2434. {
  2435. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2436. }
  2437. else
  2438. {
  2439. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2440. }
  2441. }
  2442. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2443. {
  2444. string WHStatus = queryParam["WHStatus"].ToString();
  2445. if (WHStatus == "0")
  2446. {
  2447. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2448. }
  2449. else if (WHStatus == "1")
  2450. {
  2451. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2452. }
  2453. else
  2454. {
  2455. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2456. }
  2457. }
  2458. }
  2459. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2460. {
  2461. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2462. }
  2463. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2464. {
  2465. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2466. }
  2467. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2468. }
  2469. //审核委外到货单
  2470. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  2471. {
  2472. DataTable dt = new DataTable();
  2473. var queryParam = queryJson.ToJObject();
  2474. List<DbParameter> parameter = new List<DbParameter>();
  2475. object Figure = GetDecimalDigits();
  2476. #region [SQL]
  2477. 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,
  2478. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2479. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2480. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
  2481. CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2482. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  2483. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,d.OODetailID ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2484. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2485. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2486. ,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,
  2487. a.EATTRIBUTE9,a.EATTRIBUTE10
  2488. from ICSODeliveryNotice a
  2489. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2490. left join (
  2491. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2492. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  2493. where isnull(ee.EATTRIBUTE1,'')=''
  2494. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2495. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2496. left join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  2497. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2498. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2499. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  2500. sql = string.Format(sql, Figure);
  2501. #endregion
  2502. if (!string.IsNullOrWhiteSpace(queryJson))
  2503. {
  2504. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2505. {
  2506. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2507. }
  2508. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2509. {
  2510. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2511. }
  2512. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2513. {
  2514. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2515. }
  2516. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2517. {
  2518. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2519. }
  2520. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2521. {
  2522. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2523. }
  2524. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2525. {
  2526. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2527. }
  2528. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2529. {
  2530. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2531. }
  2532. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2533. {
  2534. string POStatus = queryParam["POStatus"].ToString();
  2535. if (POStatus == "0")
  2536. {
  2537. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2538. }
  2539. else if (POStatus == "1")
  2540. {
  2541. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2542. }
  2543. else
  2544. {
  2545. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2546. }
  2547. }
  2548. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2549. {
  2550. string WHStatus = queryParam["WHStatus"].ToString();
  2551. if (WHStatus == "0")
  2552. {
  2553. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2554. }
  2555. else if (WHStatus == "1")
  2556. {
  2557. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2558. }
  2559. else
  2560. {
  2561. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2562. }
  2563. }
  2564. }
  2565. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2566. {
  2567. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2568. }
  2569. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2570. {
  2571. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2572. }
  2573. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2574. }
  2575. //开立得成品入库单
  2576. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  2577. {
  2578. DataTable dt = new DataTable();
  2579. var queryParam = queryJson.ToJObject();
  2580. List<DbParameter> parameter = new List<DbParameter>();
  2581. object Figure = GetDecimalDigits();
  2582. #region [SQL]
  2583. string sql = @"
  2584. select a.ID,a.RCVCode,a.Sequence,a.SourceCode as MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2585. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2586. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2587. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.CreatePerson,a.CreateDateTime,
  2588. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2589. ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable,b.EffectiveDays
  2590. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2591. ,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,
  2592. a.EATTRIBUTE9,a.EATTRIBUTE10
  2593. from ICSManufactureReceive a
  2594. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2595. left join (
  2596. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2597. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  2598. where isnull(ee.EATTRIBUTE1,'')=''
  2599. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2600. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2601. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2602. --left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint
  2603. where a.Status='1' and a.Type='1'";
  2604. sql = string.Format(sql, Figure);
  2605. #endregion
  2606. if (!string.IsNullOrWhiteSpace(queryJson))
  2607. {
  2608. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2609. {
  2610. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2611. }
  2612. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2613. {
  2614. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2615. }
  2616. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2617. {
  2618. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2619. }
  2620. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2621. {
  2622. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2623. }
  2624. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  2625. {
  2626. sql += " and a.SourceCode like '%" + queryParam["SCode"].ToString() + "%' ";
  2627. }
  2628. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2629. {
  2630. string POStatus = queryParam["POStatus"].ToString();
  2631. if (POStatus == "0")
  2632. {
  2633. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2634. }
  2635. else if (POStatus == "1")
  2636. {
  2637. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2638. }
  2639. else
  2640. {
  2641. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2642. }
  2643. }
  2644. }
  2645. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2646. {
  2647. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2648. }
  2649. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2650. {
  2651. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2652. }
  2653. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2654. }
  2655. /// <summary>
  2656. /// 点击审核委外到货单生成条码(审核委外到货单)
  2657. /// </summary>
  2658. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2659. {
  2660. DataTable dt = new DataTable();
  2661. object Figure = GetDecimalDigits();
  2662. List<DbParameter> parameter = new List<DbParameter>();
  2663. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn005', " + Quantity + ",1,1,'')";
  2664. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2665. //锐腾添加退补逻辑
  2666. string sql = @"select e.Enable, a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2667. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2668. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2669. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2670. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2671. ,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,
  2672. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2673. from ICSODeliveryNotice a
  2674. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2675. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2676. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8'
  2677. where isnull(a.EATTRIBUTE1,'')=''
  2678. group by b.TransCode,b.TransSequence
  2679. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2680. left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
  2681. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2682. left join (select a.ODNCode,a.Sequence,a.WorkPoint, ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  2683. from ICSODeliveryNotice a
  2684. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2685. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  2686. 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
  2687. WHERE 1 =1
  2688. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2689. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2690. sql = string.Format(sql, Figure);
  2691. return Repository().FindTableBySql(sql.ToString());
  2692. }
  2693. /// <summary>
  2694. /// 点击开立成品入库生成条码(开立成品入库单)
  2695. /// </summary>
  2696. /// //--
  2697. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2698. {
  2699. DataTable dt = new DataTable();
  2700. object Figure = GetDecimalDigits();
  2701. List<DbParameter> parameter = new List<DbParameter>();
  2702. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn013', " + Quantity + ",1,2,'')";
  2703. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2704. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2705. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2706. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2707. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2708. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2709. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2710. ,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,
  2711. '' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10
  2712. from ICSManufactureReceive a
  2713. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2714. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2715. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9'
  2716. where isnull(a.EATTRIBUTE1,'')=''
  2717. group by b.TransCode,b.TransSequence
  2718. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  2719. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2720. WHERE 1 =1
  2721. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  2722. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2723. sql = string.Format(sql, Figure);
  2724. return Repository().FindTableBySql(sql.ToString());
  2725. }
  2726. /// <summary>
  2727. /// 点击审核到货单生成条码(审核到货单)
  2728. /// </summary>
  2729. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2730. {
  2731. DataTable dt = new DataTable();
  2732. object Figure = GetDecimalDigits();
  2733. List<DbParameter> parameter = new List<DbParameter>();
  2734. /***
  2735. * 退退退退
  2736. * 退退
  2737. ***/
  2738. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn002', " + Quantity + ",1,1,'')";
  2739. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2740. string checksql = $@"select a.ID from ICSDeliveryNotice a
  2741. inner join ICSDeliveryNotice b ON a.DNDetailID=Isnull(b.EATTRIBUTE8,'') and a.WorkPoint=b.WorkPoint and b.DNType='2' and b.EATTRIBUTE7='退'
  2742. where a.DNType='1' and a.DNCode='{DNCode}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}' ";
  2743. var checkdt = SqlHelper.CmdExecuteDataTable(checksql);
  2744. string sql = string.Empty;
  2745. if (checkdt.Rows.Count > 0)
  2746. {
  2747. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2748. CAST( " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2749. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2750. 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,
  2751. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2752. ,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,
  2753. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2754. from ICSDeliveryNotice a
  2755. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2756. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2757. 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
  2758. from ICSDeliveryNotice a
  2759. 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
  2760. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2761. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2762. where isnull(a.EATTRIBUTE1,'')=''
  2763. group by b.TransCode,b.TransSequence
  2764. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2765. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2766. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  2767. 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
  2768. WHERE 1 =1
  2769. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2770. }
  2771. else
  2772. {
  2773. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2774. CAST( " + Num + @"+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2775. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2776. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2777. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2778. ,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,
  2779. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2780. from ICSDeliveryNotice a
  2781. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2782. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2783. 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
  2784. from ICSDeliveryNotice a
  2785. 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
  2786. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2787. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2788. where isnull(a.EATTRIBUTE1,'')=''
  2789. group by b.TransCode,b.TransSequence
  2790. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2791. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2792. 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
  2793. WHERE 1 =1
  2794. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2795. }
  2796. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2797. sql = string.Format(sql, Figure);
  2798. return Repository().FindTableBySql(sql.ToString());
  2799. }
  2800. /// <summary>
  2801. /// 点击归还生成条码(归还)
  2802. /// </summary>
  2803. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2804. {
  2805. DataTable dt = new DataTable();
  2806. object Figure = GetDecimalDigits();
  2807. List<DbParameter> parameter = new List<DbParameter>();
  2808. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn023', " + Quantity + ",1,4,'')";
  2809. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2810. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2811. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2812. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2813. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2814. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2815. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2816. ,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,
  2817. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2818. from ICSReturn a
  2819. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2820. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2821. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6'
  2822. where isnull(a.EATTRIBUTE1,'')=''
  2823. group by b.TransCode,b.TransSequence
  2824. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  2825. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2826. WHERE 1 =1
  2827. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  2828. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2829. sql = string.Format(sql, Figure);
  2830. return Repository().FindTableBySql(sql.ToString());
  2831. }
  2832. /// <summary>
  2833. /// 归还单生成条码
  2834. /// </summary>
  2835. /// <param name="POCode"></param>
  2836. /// <param name="PORow"></param>
  2837. /// <param name="keyValue"></param>
  2838. /// 已改
  2839. /// <returns></returns>
  2840. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  2841. {
  2842. var queryParam = keyValue.ToJObject();
  2843. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2844. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2845. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2846. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2847. decimal LOTQTY = minPackQty;
  2848. string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2849. string sql = string.Empty;
  2850. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2851. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2852. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2853. string sqls = string.Empty;
  2854. string Colspan = "";
  2855. string str1 = "";
  2856. List<string> ExtensionIDList = new List<string>();
  2857. #region 装箱的功能
  2858. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2859. string VenCode = queryParam["VenCode"].ToString();
  2860. int PackCount = 0;//每箱放的数量
  2861. int Pack_YuShu = 0;//需要平摊的数量
  2862. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2863. List<PackModel> List_Pack = new List<PackModel>();
  2864. int ZQty = 0;
  2865. if (createPackCount > 0)
  2866. {
  2867. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2868. if (Pack_YuShu == 0)
  2869. {
  2870. PackCount = (createPageCount / createPackCount);
  2871. }
  2872. else
  2873. {
  2874. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2875. }
  2876. for (int jj = 0; jj < createPackCount; jj++)
  2877. {
  2878. object CARID = Guid.NewGuid();
  2879. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2880. sql += @" INSERT INTO dbo.ICSContainer
  2881. ( ID,ContainerCode ,
  2882. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2883. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2884. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2885. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2886. PackModel PP = new PackModel();
  2887. PP.ID = CARID.ToString();
  2888. PP.PackCode = Carton;
  2889. if (jj < Pack_YuShu)
  2890. {
  2891. PP.FristBarIndex = ZQty;
  2892. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2893. }
  2894. else
  2895. {
  2896. PP.FristBarIndex = ZQty;
  2897. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2898. }
  2899. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2900. List_Pack.Add(PP);
  2901. }
  2902. }
  2903. #endregion
  2904. for (int i = 0; i < createPageCount; i++)
  2905. {
  2906. if (i + 1 == createPageCount)
  2907. {
  2908. if (minPackQty * createPageCount > thisCreateQty)
  2909. {
  2910. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2911. }
  2912. }
  2913. 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();
  2914. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2915. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2916. bool flag = true;
  2917. foreach (var item in ExtensionIDList)
  2918. {
  2919. if (item == Colspan + WorkPoint)
  2920. {
  2921. flag = false;
  2922. }
  2923. }
  2924. if (ExtensionID == null && flag == true)
  2925. {
  2926. str1 = Guid.NewGuid().ToString();
  2927. 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)
  2928. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2929. 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(),
  2930. MUSER, MUSERNAME, WorkPoints);
  2931. }
  2932. else if (ExtensionID != null)
  2933. {
  2934. str1 = ExtensionID.ToString();
  2935. }
  2936. ExtensionIDList.Add(Colspan + WorkPoint);
  2937. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2938. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2939. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  2940. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2941. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2942. //{
  2943. sql += string.Format(@"
  2944. insert into ICSInventoryLot
  2945. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2946. select
  2947. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2948. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2949. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2950. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2951. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2952. sql += "\r\n";
  2953. //装箱的功能
  2954. if (List_Pack.Count > 0)
  2955. {
  2956. PackModel mm = new PackModel();
  2957. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2958. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2959. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  2960. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2961. }
  2962. //}
  2963. }
  2964. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2965. return count;
  2966. }
  2967. /// <summary>
  2968. /// 审核到货单生成条码
  2969. /// </summary>
  2970. /// <param name="POCode"></param>
  2971. /// <param name="PORow"></param>
  2972. /// <param name="keyValue"></param>
  2973. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  2974. /// <returns></returns>
  2975. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2976. {
  2977. var queryParam = keyValue.ToJObject();
  2978. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2979. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2980. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2981. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2982. decimal LOTQTY = minPackQty;
  2983. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2984. string sql = string.Empty;
  2985. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2986. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2987. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2988. string InvCode = queryParam["ClassCode"].ToString();
  2989. string sqls = string.Empty;
  2990. string Colspan = "";
  2991. string str1 = "";
  2992. string LotNo = string.Empty;
  2993. List<string> ExtensionIDList = new List<string>();
  2994. #region 装箱的功能
  2995. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2996. string VenCode = queryParam["VenCode"].ToString();
  2997. int PackCount = 0;//每箱放的数量
  2998. int Pack_YuShu = 0;//需要平摊的数量
  2999. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3000. List<PackModel> List_Pack = new List<PackModel>();
  3001. int ZQty = 0;
  3002. if (createPackCount > 0)
  3003. {
  3004. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3005. if (Pack_YuShu == 0)
  3006. {
  3007. PackCount = (createPageCount / createPackCount);
  3008. }
  3009. else
  3010. {
  3011. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3012. }
  3013. for (int jj = 0; jj < createPackCount; jj++)
  3014. {
  3015. object CARID = Guid.NewGuid();
  3016. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3017. sql += @" INSERT INTO dbo.ICSContainer
  3018. ( ID,ContainerCode ,
  3019. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3020. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3021. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3022. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3023. PackModel PP = new PackModel();
  3024. PP.ID = CARID.ToString();
  3025. PP.PackCode = Carton;
  3026. if (jj < Pack_YuShu)
  3027. {
  3028. PP.FristBarIndex = ZQty;
  3029. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3030. }
  3031. else
  3032. {
  3033. PP.FristBarIndex = ZQty;
  3034. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3035. }
  3036. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3037. List_Pack.Add(PP);
  3038. }
  3039. }
  3040. #endregion
  3041. for (int i = 0; i < createPageCount; i++)
  3042. {
  3043. if (i + 1 == createPageCount)
  3044. {
  3045. if (minPackQty * createPageCount > thisCreateQty)
  3046. {
  3047. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3048. }
  3049. }
  3050. 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();
  3051. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3052. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3053. bool flag = true;
  3054. foreach (var item in ExtensionIDList)
  3055. {
  3056. if (item == Colspan + WorkPoint)
  3057. {
  3058. flag = false;
  3059. }
  3060. }
  3061. if (ExtensionID == null && flag == true)
  3062. {
  3063. str1 = Guid.NewGuid().ToString();
  3064. 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)
  3065. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3066. 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(),
  3067. MUSER, MUSERNAME, WorkPoints);
  3068. }
  3069. else if (ExtensionID != null)
  3070. {
  3071. str1 = ExtensionID.ToString();
  3072. }
  3073. ExtensionIDList.Add(Colspan + WorkPoint);
  3074. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  3075. if (AMEnable == "true")
  3076. {
  3077. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  3078. }
  3079. else
  3080. {
  3081. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3082. }
  3083. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3084. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  3085. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3086. sql += string.Format(@"
  3087. insert into ICSInventoryLot
  3088. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3089. select
  3090. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  3091. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3092. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3093. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3094. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3095. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3096. sql += "\r\n";
  3097. //装箱的功能
  3098. if (List_Pack.Count > 0)
  3099. {
  3100. PackModel mm = new PackModel();
  3101. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3102. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3103. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3104. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3105. }
  3106. }
  3107. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3108. return count;
  3109. }
  3110. /// <summary>
  3111. /// 普通到货单生成条码(非规则,支持一次生成多个数量不同的条码并对应不同的批号)
  3112. /// </summary>
  3113. /// <param name="TransferNO"></param>
  3114. /// <param name="Sequence"></param>
  3115. /// <param name="keyValue"></param>
  3116. /// <param name="WorkPoint"></param>
  3117. /// <returns></returns>
  3118. public int SubmitFormSHDHNew(string DNCode, string Sequence, string keyValue, string WorkPoint)
  3119. {
  3120. var queryParam = keyValue.ToJObject();
  3121. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3122. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3123. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3124. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  3125. List<decimal> lotQtys = new List<decimal>();
  3126. List<string> batchList = new List<string>();
  3127. foreach (var jLotno in jLotnos)
  3128. {
  3129. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  3130. string batchCode = jLotno["batchcode"].ToString();
  3131. lotQtys.Add(qty);
  3132. batchList.Add(batchCode);
  3133. }
  3134. int createPageCount = lotQtys.Count();
  3135. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3136. string sql = string.Empty;
  3137. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3138. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3139. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3140. string Identification = Guid.NewGuid().ToString();
  3141. string sqls = string.Empty;
  3142. string Colspan = "";
  3143. string str1 = "";
  3144. List<string> ExtensionIDList = new List<string>();
  3145. #region 装箱的功能
  3146. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3147. string VenCode = queryParam["VenCode"].ToString();
  3148. int PackCount = 0;//每箱放的数量
  3149. int Pack_YuShu = 0;//需要平摊的数量
  3150. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3151. List<PackModel> List_Pack = new List<PackModel>();
  3152. int ZQty = 0;
  3153. if (createPackCount > 0)
  3154. {
  3155. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3156. if (Pack_YuShu == 0)
  3157. {
  3158. PackCount = (createPageCount / createPackCount);
  3159. }
  3160. else
  3161. {
  3162. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3163. }
  3164. for (int jj = 0; jj < createPackCount; jj++)
  3165. {
  3166. object CARID = Guid.NewGuid();
  3167. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3168. sql += @" INSERT INTO dbo.ICSContainer
  3169. ( ID,ContainerCode ,
  3170. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3171. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3172. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3173. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3174. PackModel PP = new PackModel();
  3175. PP.ID = CARID.ToString();
  3176. PP.PackCode = Carton;
  3177. if (jj < Pack_YuShu)
  3178. {
  3179. PP.FristBarIndex = ZQty;
  3180. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3181. }
  3182. else
  3183. {
  3184. PP.FristBarIndex = ZQty;
  3185. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3186. }
  3187. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3188. List_Pack.Add(PP);
  3189. }
  3190. }
  3191. #endregion
  3192. for (int i = 0; i < createPageCount; i++)
  3193. {
  3194. var LOTQTY = lotQtys[i];
  3195. var BatchCode = batchList[i];
  3196. Colspan = queryParam["ProjectCode"].ToString() + "~" + BatchCode + "~" + 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();
  3197. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3198. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3199. bool flag = true;
  3200. foreach (var item in ExtensionIDList)
  3201. {
  3202. if (item == Colspan + WorkPoint)
  3203. {
  3204. flag = false;
  3205. }
  3206. }
  3207. if (ExtensionID == null && flag == true)
  3208. {
  3209. str1 = Guid.NewGuid().ToString();
  3210. 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)
  3211. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3212. str1, Colspan, queryParam["ProjectCode"].ToString(), BatchCode, 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(),
  3213. MUSER, MUSERNAME, WorkPoints);
  3214. }
  3215. else if (ExtensionID != null)
  3216. {
  3217. str1 = ExtensionID.ToString();
  3218. }
  3219. ExtensionIDList.Add(Colspan + WorkPoint);
  3220. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3221. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3222. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3223. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3224. sql += string.Format(@"
  3225. insert into ICSInventoryLot
  3226. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3227. select
  3228. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3229. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3230. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  3231. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3232. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3233. sql += "\r\n";
  3234. //装箱的功能
  3235. if (List_Pack.Count > 0)
  3236. {
  3237. PackModel mm = new PackModel();
  3238. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3239. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3240. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3241. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3242. }
  3243. }
  3244. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3245. return count;
  3246. }
  3247. /// <summary>
  3248. /// 审核委外到货单生成条码
  3249. /// </summary>
  3250. /// <param name="POCode"></param>
  3251. /// <param name="PORow"></param>
  3252. /// <param name="keyValue"></param>
  3253. /// 已改
  3254. /// <returns></returns>
  3255. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  3256. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  3257. {
  3258. var queryParam = keyValue.ToJObject();
  3259. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3260. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3261. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3262. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3263. decimal LOTQTY = minPackQty;
  3264. string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3265. string sql = string.Empty;
  3266. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3267. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3268. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3269. string InvCode = queryParam["ClassCode"].ToString();
  3270. string sqls = string.Empty;
  3271. string Colspan = "";
  3272. string str1 = "";
  3273. string LotNo = string.Empty;
  3274. List<string> ExtensionIDList = new List<string>();
  3275. #region 装箱的功能
  3276. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3277. string VenCode = queryParam["VenCode"].ToString();
  3278. int PackCount = 0;//每箱放的数量
  3279. int Pack_YuShu = 0;//需要平摊的数量
  3280. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3281. List<PackModel> List_Pack = new List<PackModel>();
  3282. int ZQty = 0;
  3283. if (createPackCount > 0)
  3284. {
  3285. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3286. if (Pack_YuShu == 0)
  3287. {
  3288. PackCount = (createPageCount / createPackCount);
  3289. }
  3290. else
  3291. {
  3292. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3293. }
  3294. for (int jj = 0; jj < createPackCount; jj++)
  3295. {
  3296. object CARID = Guid.NewGuid();
  3297. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3298. sql += @" INSERT INTO dbo.ICSContainer
  3299. ( ID,ContainerCode ,
  3300. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3301. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3302. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3303. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3304. PackModel PP = new PackModel();
  3305. PP.ID = CARID.ToString();
  3306. PP.PackCode = Carton;
  3307. if (jj < Pack_YuShu)
  3308. {
  3309. PP.FristBarIndex = ZQty;
  3310. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3311. }
  3312. else
  3313. {
  3314. PP.FristBarIndex = ZQty;
  3315. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3316. }
  3317. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3318. List_Pack.Add(PP);
  3319. }
  3320. }
  3321. #endregion
  3322. for (int i = 0; i < createPageCount; i++)
  3323. {
  3324. if (i + 1 == createPageCount)
  3325. {
  3326. if (minPackQty * createPageCount > thisCreateQty)
  3327. {
  3328. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3329. }
  3330. }
  3331. 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();
  3332. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3333. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3334. bool flag = true;
  3335. foreach (var item in ExtensionIDList)
  3336. {
  3337. if (item == Colspan + WorkPoint)
  3338. {
  3339. flag = false;
  3340. }
  3341. }
  3342. if (ExtensionID == null && flag == true)
  3343. {
  3344. str1 = Guid.NewGuid().ToString();
  3345. 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)
  3346. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3347. 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(),
  3348. MUSER, MUSERNAME, WorkPoints);
  3349. }
  3350. else if (ExtensionID != null)
  3351. {
  3352. str1 = ExtensionID.ToString();
  3353. }
  3354. ExtensionIDList.Add(Colspan + WorkPoint);
  3355. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  3356. if (AMEnable == "true")
  3357. {
  3358. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  3359. }
  3360. else
  3361. {
  3362. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3363. }
  3364. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3365. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3366. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3367. sql += string.Format(@"
  3368. insert into ICSInventoryLot
  3369. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3370. select
  3371. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  3372. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3373. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3374. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3375. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3376. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3377. sql += "\r\n";
  3378. //装箱的功能
  3379. if (List_Pack.Count > 0)
  3380. {
  3381. PackModel mm = new PackModel();
  3382. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3383. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3384. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3385. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3386. }
  3387. }
  3388. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3389. return count;
  3390. }
  3391. /// <summary>
  3392. /// 开立成品入库单
  3393. /// </summary>
  3394. /// <param name="POCode"></param>
  3395. /// <param name="PORow"></param>
  3396. /// <param name="keyValue"></param>
  3397. /// 已改
  3398. /// <returns></returns>
  3399. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  3400. {
  3401. var queryParam = keyValue.ToJObject();
  3402. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3403. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3404. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3405. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3406. decimal LOTQTY = minPackQty;
  3407. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3408. string sql = string.Empty;
  3409. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3410. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3411. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3412. string sqls = string.Empty;
  3413. string Colspan = "";
  3414. string str1 = "";
  3415. List<string> ExtensionIDList = new List<string>();
  3416. #region 装箱的功能
  3417. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3418. string VenCode = queryParam["VenCode"].ToString();
  3419. int PackCount = 0;//每箱放的数量
  3420. int Pack_YuShu = 0;//需要平摊的数量
  3421. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3422. List<PackModel> List_Pack = new List<PackModel>();
  3423. int ZQty = 0;
  3424. if (createPackCount > 0)
  3425. {
  3426. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3427. if (Pack_YuShu == 0)
  3428. {
  3429. PackCount = (createPageCount / createPackCount);
  3430. }
  3431. else
  3432. {
  3433. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3434. }
  3435. for (int jj = 0; jj < createPackCount; jj++)
  3436. {
  3437. object CARID = Guid.NewGuid();
  3438. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3439. sql += @" INSERT INTO dbo.ICSContainer
  3440. ( ID,ContainerCode ,
  3441. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3442. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3443. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3444. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3445. PackModel PP = new PackModel();
  3446. PP.ID = CARID.ToString();
  3447. PP.PackCode = Carton;
  3448. if (jj < Pack_YuShu)
  3449. {
  3450. PP.FristBarIndex = ZQty;
  3451. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3452. }
  3453. else
  3454. {
  3455. PP.FristBarIndex = ZQty;
  3456. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3457. }
  3458. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3459. List_Pack.Add(PP);
  3460. }
  3461. }
  3462. #endregion
  3463. for (int i = 0; i < createPageCount; i++)
  3464. {
  3465. if (i + 1 == createPageCount)
  3466. {
  3467. if (minPackQty * createPageCount > thisCreateQty)
  3468. {
  3469. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3470. }
  3471. }
  3472. 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();
  3473. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3474. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3475. bool flag = true;
  3476. foreach (var item in ExtensionIDList)
  3477. {
  3478. if (item == Colspan + WorkPoint)
  3479. {
  3480. flag = false;
  3481. }
  3482. }
  3483. if (ExtensionID == null && flag == true)
  3484. {
  3485. str1 = Guid.NewGuid().ToString();
  3486. 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)
  3487. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3488. 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(),
  3489. MUSER, MUSERNAME, WorkPoints);
  3490. }
  3491. else if (ExtensionID != null)
  3492. {
  3493. str1 = ExtensionID.ToString();
  3494. }
  3495. ExtensionIDList.Add(Colspan + WorkPoint);
  3496. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3497. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3498. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3499. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3500. sql += string.Format(@"
  3501. insert into ICSInventoryLot
  3502. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3503. select
  3504. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3505. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3506. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3507. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3508. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3509. sql += "\r\n";
  3510. //装箱的功能
  3511. if (List_Pack.Count > 0)
  3512. {
  3513. PackModel mm = new PackModel();
  3514. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3515. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3516. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3517. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3518. }
  3519. }
  3520. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3521. return count;
  3522. }
  3523. //委外拒收单
  3524. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  3525. {
  3526. DataTable dt = new DataTable();
  3527. var queryParam = queryJson.ToJObject();
  3528. List<DbParameter> parameter = new List<DbParameter>();
  3529. object Figure = GetDecimalDigits();
  3530. #region [SQL]
  3531. 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,
  3532. 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,
  3533. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3534. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3535. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  3536. a.EATTRIBUTE9,a.EATTRIBUTE10
  3537. from ICSODeliveryNotice a
  3538. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3539. left join (
  3540. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3541. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3542. where isnull(ee.EATTRIBUTE1,'')=''
  3543. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3544. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3545. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3546. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3547. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3548. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3549. ";
  3550. sql = string.Format(sql, Figure);
  3551. #endregion
  3552. if (!string.IsNullOrWhiteSpace(queryJson))
  3553. {
  3554. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3555. {
  3556. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3557. }
  3558. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3559. {
  3560. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3561. }
  3562. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3563. {
  3564. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3565. }
  3566. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3567. {
  3568. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3569. }
  3570. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3571. {
  3572. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3573. }
  3574. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3575. {
  3576. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3577. }
  3578. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3579. {
  3580. string POStatus = queryParam["POStatus"].ToString();
  3581. if (POStatus == "0")
  3582. {
  3583. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3584. }
  3585. else if (POStatus == "1")
  3586. {
  3587. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3588. }
  3589. else
  3590. {
  3591. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3592. }
  3593. }
  3594. }
  3595. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3596. {
  3597. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3598. }
  3599. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3600. {
  3601. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3602. }
  3603. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3604. }
  3605. //拒收单
  3606. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  3607. {
  3608. DataTable dt = new DataTable();
  3609. var queryParam = queryJson.ToJObject();
  3610. List<DbParameter> parameter = new List<DbParameter>();
  3611. object Figure = GetDecimalDigits();
  3612. #region [SQL]
  3613. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  3614. 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,
  3615. CAST( a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  3616. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3617. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3618. ,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,
  3619. a.EATTRIBUTE9,a.EATTRIBUTE10
  3620. from ICSDeliveryNotice a
  3621. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3622. left join (
  3623. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3624. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3625. where isnull(ee.EATTRIBUTE1,'')=''
  3626. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3627. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3628. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3629. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3630. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3631. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3632. ";
  3633. sql = string.Format(sql, Figure);
  3634. #endregion
  3635. if (!string.IsNullOrWhiteSpace(queryJson))
  3636. {
  3637. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3638. {
  3639. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3640. }
  3641. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3642. {
  3643. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3644. }
  3645. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3646. {
  3647. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3648. }
  3649. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3650. {
  3651. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3652. }
  3653. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3654. {
  3655. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3656. }
  3657. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3658. {
  3659. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3660. }
  3661. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3662. {
  3663. string POStatus = queryParam["POStatus"].ToString();
  3664. if (POStatus == "0")
  3665. {
  3666. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3667. }
  3668. else if (POStatus == "1")
  3669. {
  3670. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3671. }
  3672. else
  3673. {
  3674. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3675. }
  3676. }
  3677. }
  3678. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3679. {
  3680. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3681. }
  3682. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3683. {
  3684. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3685. }
  3686. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3687. }
  3688. //领料申请退料
  3689. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  3690. {
  3691. DataTable dt = new DataTable();
  3692. var queryParam = queryJson.ToJObject();
  3693. List<DbParameter> parameter = new List<DbParameter>();
  3694. object Figure = GetDecimalDigits();
  3695. #region [SQL]
  3696. 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,
  3697. 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,
  3698. CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3699. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3700. ,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,
  3701. a.EATTRIBUTE9,a.EATTRIBUTE10
  3702. from ICSMOApplyNegDetail a
  3703. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3704. left JOIN ICSMOApply bb ON a.SourceDetailID=bb.ApplyDetailID AND a.WorkPoint=bb.WorkPoint
  3705. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3706. left join (
  3707. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3708. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3709. where isnull(ee.EATTRIBUTE1,'')=''
  3710. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3711. )c
  3712. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3713. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3714. WHERE d.Type='2' and d.Status='2' ";
  3715. sql = string.Format(sql, Figure);
  3716. #endregion
  3717. if (!string.IsNullOrWhiteSpace(queryJson))
  3718. {
  3719. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3720. {
  3721. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3722. }
  3723. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3724. {
  3725. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3726. }
  3727. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3728. {
  3729. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3730. }
  3731. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3732. {
  3733. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3734. }
  3735. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  3736. {
  3737. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  3738. }
  3739. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  3740. {
  3741. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  3742. }
  3743. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3744. {
  3745. string POStatus = queryParam["POStatus"].ToString();
  3746. if (POStatus == "0")
  3747. {
  3748. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3749. }
  3750. else if (POStatus == "1")
  3751. {
  3752. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3753. }
  3754. else
  3755. {
  3756. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3757. }
  3758. }
  3759. }
  3760. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3761. {
  3762. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3763. }
  3764. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3765. {
  3766. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3767. }
  3768. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3769. }
  3770. /// <summary>
  3771. /// 拒收生成条码
  3772. /// </summary>
  3773. /// <param name="POCode"></param>
  3774. /// <param name="PORow"></param>
  3775. /// <param name="keyValue"></param>
  3776. /// <returns></returns>
  3777. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  3778. {
  3779. var queryParam = keyValue.ToJObject();
  3780. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3781. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3782. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3783. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3784. decimal LOTQTY = minPackQty;
  3785. string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3786. string sql = string.Empty;
  3787. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3788. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3789. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3790. string sqls = string.Empty;
  3791. string Colspan = "";
  3792. string str1 = "";
  3793. List<string> ExtensionIDList = new List<string>();
  3794. #region 装箱的功能
  3795. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3796. string VenCode = queryParam["VenCode"].ToString();
  3797. int PackCount = 0;//每箱放的数量
  3798. int Pack_YuShu = 0;//需要平摊的数量
  3799. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3800. List<PackModel> List_Pack = new List<PackModel>();
  3801. int ZQty = 0;
  3802. if (createPackCount > 0)
  3803. {
  3804. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3805. if (Pack_YuShu == 0)
  3806. {
  3807. PackCount = (createPageCount / createPackCount);
  3808. }
  3809. else
  3810. {
  3811. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3812. }
  3813. for (int jj = 0; jj < createPackCount; jj++)
  3814. {
  3815. object CARID = Guid.NewGuid();
  3816. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3817. sql += @" INSERT INTO dbo.ICSContainer
  3818. ( ID,ContainerCode ,
  3819. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3820. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3821. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3822. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3823. PackModel PP = new PackModel();
  3824. PP.ID = CARID.ToString();
  3825. PP.PackCode = Carton;
  3826. if (jj < Pack_YuShu)
  3827. {
  3828. PP.FristBarIndex = ZQty;
  3829. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3830. }
  3831. else
  3832. {
  3833. PP.FristBarIndex = ZQty;
  3834. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3835. }
  3836. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3837. List_Pack.Add(PP);
  3838. }
  3839. }
  3840. #endregion
  3841. for (int i = 0; i < createPageCount; i++)
  3842. {
  3843. if (i + 1 == createPageCount)
  3844. {
  3845. if (minPackQty * createPageCount > thisCreateQty)
  3846. {
  3847. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3848. }
  3849. }
  3850. 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();
  3851. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3852. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3853. bool flag = true;
  3854. foreach (var item in ExtensionIDList)
  3855. {
  3856. if (item == Colspan + WorkPoint)
  3857. {
  3858. flag = false;
  3859. }
  3860. }
  3861. if (ExtensionID == null && flag == true)
  3862. {
  3863. str1 = Guid.NewGuid().ToString();
  3864. 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)
  3865. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3866. 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(),
  3867. MUSER, MUSERNAME, WorkPoints);
  3868. }
  3869. else if (ExtensionID != null)
  3870. {
  3871. str1 = ExtensionID.ToString();
  3872. }
  3873. ExtensionIDList.Add(Colspan + WorkPoint);
  3874. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3875. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3876. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3877. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3878. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3879. //{
  3880. sql += string.Format(@"
  3881. insert into ICSInventoryLot
  3882. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3883. select
  3884. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3885. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3886. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3887. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3888. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3889. sql += "\r\n";
  3890. //装箱的功能
  3891. if (List_Pack.Count > 0)
  3892. {
  3893. PackModel mm = new PackModel();
  3894. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3895. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3896. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3897. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3898. }
  3899. //}
  3900. }
  3901. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3902. return count;
  3903. }
  3904. /// <summary>
  3905. /// 委外拒收生成条码
  3906. /// </summary>
  3907. /// <param name="POCode"></param>
  3908. /// <param name="PORow"></param>
  3909. /// <param name="keyValue"></param>
  3910. /// <returns></returns>
  3911. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  3912. {
  3913. var queryParam = keyValue.ToJObject();
  3914. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3915. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3916. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3917. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3918. decimal LOTQTY = minPackQty;
  3919. string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3920. string sql = string.Empty;
  3921. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3922. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3923. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3924. string sqls = string.Empty;
  3925. string Colspan = "";
  3926. string str1 = "";
  3927. List<string> ExtensionIDList = new List<string>();
  3928. #region 装箱的功能
  3929. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3930. string VenCode = queryParam["VenCode"].ToString();
  3931. int PackCount = 0;//每箱放的数量
  3932. int Pack_YuShu = 0;//需要平摊的数量
  3933. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3934. List<PackModel> List_Pack = new List<PackModel>();
  3935. int ZQty = 0;
  3936. if (createPackCount > 0)
  3937. {
  3938. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3939. if (Pack_YuShu == 0)
  3940. {
  3941. PackCount = (createPageCount / createPackCount);
  3942. }
  3943. else
  3944. {
  3945. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3946. }
  3947. for (int jj = 0; jj < createPackCount; jj++)
  3948. {
  3949. object CARID = Guid.NewGuid();
  3950. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3951. sql += @" INSERT INTO dbo.ICSContainer
  3952. ( ID,ContainerCode ,
  3953. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3954. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3955. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3956. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3957. PackModel PP = new PackModel();
  3958. PP.ID = CARID.ToString();
  3959. PP.PackCode = Carton;
  3960. if (jj < Pack_YuShu)
  3961. {
  3962. PP.FristBarIndex = ZQty;
  3963. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3964. }
  3965. else
  3966. {
  3967. PP.FristBarIndex = ZQty;
  3968. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3969. }
  3970. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3971. List_Pack.Add(PP);
  3972. }
  3973. }
  3974. #endregion
  3975. for (int i = 0; i < createPageCount; i++)
  3976. {
  3977. if (i + 1 == createPageCount)
  3978. {
  3979. if (minPackQty * createPageCount > thisCreateQty)
  3980. {
  3981. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3982. }
  3983. }
  3984. 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();
  3985. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3986. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3987. bool flag = true;
  3988. foreach (var item in ExtensionIDList)
  3989. {
  3990. if (item == Colspan + WorkPoint)
  3991. {
  3992. flag = false;
  3993. }
  3994. }
  3995. if (ExtensionID == null && flag == true)
  3996. {
  3997. str1 = Guid.NewGuid().ToString();
  3998. 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)
  3999. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4000. 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(),
  4001. MUSER, MUSERNAME, WorkPoints);
  4002. }
  4003. else if (ExtensionID != null)
  4004. {
  4005. str1 = ExtensionID.ToString();
  4006. }
  4007. ExtensionIDList.Add(Colspan + WorkPoint);
  4008. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4009. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4010. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  4011. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4012. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4013. //{
  4014. sql += string.Format(@"
  4015. insert into ICSInventoryLot
  4016. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4017. select
  4018. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4019. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4020. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4021. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4022. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4023. sql += "\r\n";
  4024. //装箱的功能
  4025. if (List_Pack.Count > 0)
  4026. {
  4027. PackModel mm = new PackModel();
  4028. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4029. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4030. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4031. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4032. }
  4033. //}
  4034. }
  4035. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4036. return count;
  4037. }
  4038. /// <summary>
  4039. /// 点击审核到货单生成条码(审核到货单)
  4040. /// </summary>
  4041. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4042. {
  4043. DataTable dt = new DataTable();
  4044. object Figure = GetDecimalDigits();
  4045. List<DbParameter> parameter = new List<DbParameter>();
  4046. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn003', " + Quantity + ",1,1,'')";
  4047. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4048. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4049. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4050. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4051. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4052. ,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,
  4053. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4054. from ICSDeliveryNotice a
  4055. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4056. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4057. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10'
  4058. where isnull(a.EATTRIBUTE1,'')=''
  4059. group by b.TransCode,b.TransSequence
  4060. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  4061. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  4062. WHERE a.DNType='3'
  4063. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  4064. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4065. sql = string.Format(sql, Figure);
  4066. return Repository().FindTableBySql(sql.ToString());
  4067. }
  4068. /// <summary>
  4069. /// 点击审核委外到货单生成条码(审核委外到货单)
  4070. /// </summary>
  4071. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4072. {
  4073. DataTable dt = new DataTable();
  4074. object Figure = GetDecimalDigits();
  4075. List<DbParameter> parameter = new List<DbParameter>();
  4076. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn006', " + Quantity + ",1,1,'')";
  4077. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4078. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  4079. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4080. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  4081. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4082. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4083. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4084. ,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,
  4085. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4086. from ICSODeliveryNotice a
  4087. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4088. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4089. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11'
  4090. where isnull(a.EATTRIBUTE1,'')=''
  4091. group by b.TransCode,b.TransSequence
  4092. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  4093. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  4094. WHERE a.ODNType='3'
  4095. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  4096. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4097. sql = string.Format(sql, Figure);
  4098. return Repository().FindTableBySql(sql.ToString());
  4099. }
  4100. //获取委外退料源头条码
  4101. public DataTable GetWeiWaiTLSrcLot(string OApplyNegCode, string Sequence, string WorkPoint)
  4102. {
  4103. DataTable dt = new DataTable();
  4104. List<DbParameter> parameter = new List<DbParameter>();
  4105. string sql = @"select C.LotNo from ICSOApplyNegDetail A
  4106. INNER JOIN ICSOIssue B ON B.PickID=A.SourceDetailID AND B.InvCode=A.InvCode
  4107. INNER JOIN ICSWareHouseLotInfoLog C
  4108. ON C.TransCode=B.SourceCode AND SUBSTRING(C.TransSequence,0,CharIndex('~',C.TransSequence))=B.SourceSequence
  4109. AND C.WorkPoint=B.WorkPoint
  4110. AND C.TransType=3 AND C.BusinessCode=5
  4111. where A.OApplyNegCode='" + OApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  4112. order by C.MTIME desc";
  4113. return Repository().FindTableBySql(sql.ToString());
  4114. }
  4115. //获取领料申请源头条码
  4116. public DataTable GetLLSQSrcLot(string ApplyNegCode, string Sequence, string WorkPoint)
  4117. {
  4118. DataTable dt = new DataTable();
  4119. List<DbParameter> parameter = new List<DbParameter>();
  4120. string sql = @"select C.LotNo from ICSMOApplyNegDetail A
  4121. INNER JOIN ICSMOApply B ON B.EATTRIBUTE30=A.SourceDetailID AND B.InvCode=A.InvCode
  4122. INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.ApplyCode AND C.TransSequence=B.Sequence
  4123. AND C.TransType=3 AND C.BusinessCode=14
  4124. where A.ApplyNegCode='" + ApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  4125. order by C.MTIME desc";
  4126. return Repository().FindTableBySql(sql.ToString());
  4127. }
  4128. //获取条码备用字段568(派纳特殊需求---销售退货直接取单据备用字段信息)
  4129. public DataTable GetSSDDocEATTRIBUTEInfo(string SSDCode, string Sequence, string WorkPoint)
  4130. {
  4131. string sql = @"select A.CreateDateTime AS ProductDate,B.BatchCode AS BatchCode,A.EATTRIBUTE3,A.EATTRIBUTE5,A.EATTRIBUTE6,A.EATTRIBUTE8,A.EATTRIBUTE13 from ICSSSD A
  4132. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  4133. where A.SSDCode='" + SSDCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + "'";
  4134. return Repository().FindTableBySql(sql.ToString());
  4135. }
  4136. //获取业务源头条码备用字段456(派纳特殊需求)
  4137. public DataTable GetSrcLotNoInfoPN(string LotNo, string WorkPoint)
  4138. {
  4139. try
  4140. {
  4141. string sql = "SELECT '' AS EATTRIBUTE3,'' AS EATTRIBUTE5,'' AS EATTRIBUTE6,'' AS EATTRIBUTE8,'' AS EATTRIBUTE13 ";
  4142. DataTable dt = new DataTable();
  4143. List<DbParameter> parameter = new List<DbParameter>();
  4144. string lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  4145. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  4146. WHERE A.LotNo='" + LotNo + "' AND A.WorkPoint='" + WorkPoint + "'";
  4147. dt = SqlHelper.GetDataTableBySql(lotsql);
  4148. if (dt.Rows.Count > 0)
  4149. {
  4150. if (dt.Rows[0]["Type"].ToString() == "101" || dt.Rows[0]["Type"].ToString() == "102")//分批合批或形态转换后条码 需要找到最初的原条码确认单据后再取备用字段
  4151. {
  4152. string OriginalLot = LotNo.Split('-')[0];
  4153. lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  4154. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  4155. WHERE A.LotNo='" + OriginalLot + "' AND A.WorkPoint='" + WorkPoint + "'";
  4156. dt = SqlHelper.GetDataTableBySql(lotsql);
  4157. if (dt.Rows.Count == 0)
  4158. {
  4159. return Repository().FindTableBySql(sql.ToString());
  4160. }
  4161. else
  4162. {
  4163. LotNo = OriginalLot;
  4164. }
  4165. }
  4166. if (dt.Rows[0]["Type"].ToString() == "0" || dt.Rows[0]["Type"].ToString() == "2"
  4167. || dt.Rows[0]["Type"].ToString() == "12" || dt.Rows[0]["Type"].ToString() == "24")//期初条码 成品条码 生产退料条码 销售退货条码 取条码备用字段
  4168. {
  4169. sql = @"SELECT B.BatchCode AS BatchCode,A.ProductDate AS ProductDate,A.EATTRIBUTE3 as EATTRIBUTE3,A.EATTRIBUTE5 AS EATTRIBUTE5
  4170. ,A.EATTRIBUTE6 AS EATTRIBUTE6,A.EATTRIBUTE8 AS EATTRIBUTE8,A.EATTRIBUTE13 AS EATTRIBUTE13
  4171. from ICSInventoryLot A
  4172. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  4173. where A.LotNo = '" + LotNo + "' and A.WorkPoint = '" + WorkPoint + "'";
  4174. }
  4175. else if (dt.Rows[0]["Type"].ToString() == "22")//采购入库(标准收货单)条码 取单据备用字段
  4176. {
  4177. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  4178. LEFT JOIN ICSPurchaseReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4179. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4180. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4181. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4182. }
  4183. else if (dt.Rows[0]["Type"].ToString() == "23")//委外入库(委外收货单)条码 取单据备用字段
  4184. {
  4185. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  4186. LEFT JOIN ICSOutsourcingReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4187. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4188. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4189. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4190. }
  4191. else if (dt.Rows[0]["Type"].ToString() == "3")//成品入库(完工申报单)条码 取单据备用字段
  4192. {
  4193. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  4194. LEFT JOIN ICSMO B ON B.MOCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4195. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4196. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4197. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4198. }
  4199. else if (dt.Rows[0]["Type"].ToString() == "5")//杂收条码 取单据备用字段
  4200. {
  4201. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  4202. LEFT JOIN ICSOtherIn B ON B.InCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4203. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4204. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4205. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4206. }
  4207. }
  4208. return Repository().FindTableBySql(sql.ToString());
  4209. }
  4210. catch (Exception ex)
  4211. {
  4212. throw new Exception(ex.Message);
  4213. }
  4214. }
  4215. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4216. {
  4217. DataTable dt = new DataTable();
  4218. object Figure = GetDecimalDigits();
  4219. List<DbParameter> parameter = new List<DbParameter>();
  4220. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn018', " + Quantity + ",1,2,'')";
  4221. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4222. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  4223. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4224. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  4225. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4226. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4227. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4228. ,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,
  4229. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE6 AS EATTRIBUTE6 ,'' EATTRIBUTE7 ,a.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4230. from ICSMOApplyNegDetail a
  4231. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4232. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4233. left join (
  4234. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4235. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12'
  4236. where isnull(a.EATTRIBUTE1,'')=''
  4237. group by b.TransCode,b.TransSequence
  4238. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4239. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4240. WHERE d.Type='2' and d.Status='2'
  4241. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4242. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4243. sql = string.Format(sql, Figure);
  4244. return Repository().FindTableBySql(sql.ToString());
  4245. }
  4246. //领料申请退料生成条码
  4247. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4248. {
  4249. var queryParam = keyValue.ToJObject();
  4250. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4251. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4252. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4253. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4254. decimal LOTQTY = minPackQty;
  4255. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4256. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  4257. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4258. string sql = string.Empty;
  4259. //string VendorLot = queryParam["VendorLot"].ToString();
  4260. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4261. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4262. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4263. string sqls = string.Empty;
  4264. string Colspan = "";
  4265. string str1 = "";
  4266. List<string> ExtensionIDList = new List<string>();
  4267. #region 装箱的功能
  4268. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4269. string VenCode = queryParam["VenCode"].ToString();
  4270. int PackCount = 0;//每箱放的数量
  4271. int Pack_YuShu = 0;//需要平摊的数量
  4272. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4273. List<PackModel> List_Pack = new List<PackModel>();
  4274. int ZQty = 0;
  4275. if (createPackCount > 0)
  4276. {
  4277. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4278. if (Pack_YuShu == 0)
  4279. {
  4280. PackCount = (createPageCount / createPackCount);
  4281. }
  4282. else
  4283. {
  4284. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4285. }
  4286. for (int jj = 0; jj < createPackCount; jj++)
  4287. {
  4288. object CARID = Guid.NewGuid();
  4289. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4290. sql += @" INSERT INTO dbo.ICSContainer
  4291. ( ID,ContainerCode ,
  4292. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4293. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4294. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4295. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4296. PackModel PP = new PackModel();
  4297. PP.ID = CARID.ToString();
  4298. PP.PackCode = Carton;
  4299. if (jj < Pack_YuShu)
  4300. {
  4301. PP.FristBarIndex = ZQty;
  4302. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4303. }
  4304. else
  4305. {
  4306. PP.FristBarIndex = ZQty;
  4307. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4308. }
  4309. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4310. List_Pack.Add(PP);
  4311. }
  4312. }
  4313. #endregion
  4314. for (int i = 0; i < createPageCount; i++)
  4315. {
  4316. if (i + 1 == createPageCount)
  4317. {
  4318. if (minPackQty * createPageCount > thisCreateQty)
  4319. {
  4320. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4321. }
  4322. }
  4323. 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();
  4324. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4325. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4326. bool flag = true;
  4327. foreach (var item in ExtensionIDList)
  4328. {
  4329. if (item == Colspan + WorkPoint)
  4330. {
  4331. flag = false;
  4332. }
  4333. }
  4334. if (ExtensionID == null && flag == true)
  4335. {
  4336. str1 = Guid.NewGuid().ToString();
  4337. 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)
  4338. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4339. 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(),
  4340. MUSER, MUSERNAME, WorkPoints);
  4341. }
  4342. else if (ExtensionID != null)
  4343. {
  4344. str1 = ExtensionID.ToString();
  4345. }
  4346. ExtensionIDList.Add(Colspan + WorkPoint);
  4347. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4348. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4349. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4350. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4351. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4352. //{
  4353. sql += string.Format(@"insert into ICSInventoryLot
  4354. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4355. select
  4356. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4357. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4358. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4359. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4360. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4361. sql += "\r\n";
  4362. //装箱的功能
  4363. if (List_Pack.Count > 0)
  4364. {
  4365. PackModel mm = new PackModel();
  4366. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4367. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4368. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4369. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4370. }
  4371. //}
  4372. }
  4373. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4374. return count;
  4375. }
  4376. public int SubmitFormLLSQTLNew(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4377. {
  4378. var queryParam = keyValue.ToJObject();
  4379. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4380. decimal minPackQty = 1;
  4381. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4382. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  4383. List<decimal> lotQtys = new List<decimal>();
  4384. foreach (var jLotno in jLotnos)
  4385. {
  4386. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  4387. lotQtys.Add(qty);
  4388. }
  4389. int createPageCount = lotQtys.Count();
  4390. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4391. string sql = string.Empty;
  4392. //string VendorLot = queryParam["VendorLot"].ToString();
  4393. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4394. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4395. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4396. string sqls = string.Empty;
  4397. string Colspan = "";
  4398. string str1 = "";
  4399. List<string> ExtensionIDList = new List<string>();
  4400. #region 装箱的功能
  4401. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4402. string VenCode = queryParam["VenCode"].ToString();
  4403. int PackCount = 0;//每箱放的数量
  4404. int Pack_YuShu = 0;//需要平摊的数量
  4405. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4406. List<PackModel> List_Pack = new List<PackModel>();
  4407. int ZQty = 0;
  4408. if (createPackCount > 0)
  4409. {
  4410. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4411. if (Pack_YuShu == 0)
  4412. {
  4413. PackCount = (createPageCount / createPackCount);
  4414. }
  4415. else
  4416. {
  4417. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4418. }
  4419. for (int jj = 0; jj < createPackCount; jj++)
  4420. {
  4421. object CARID = Guid.NewGuid();
  4422. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4423. sql += @" INSERT INTO dbo.ICSContainer
  4424. ( ID,ContainerCode ,
  4425. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4426. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4427. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4428. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4429. PackModel PP = new PackModel();
  4430. PP.ID = CARID.ToString();
  4431. PP.PackCode = Carton;
  4432. if (jj < Pack_YuShu)
  4433. {
  4434. PP.FristBarIndex = ZQty;
  4435. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4436. }
  4437. else
  4438. {
  4439. PP.FristBarIndex = ZQty;
  4440. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4441. }
  4442. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4443. List_Pack.Add(PP);
  4444. }
  4445. }
  4446. #endregion
  4447. for (int i = 0; i < lotQtys.Count(); i++)
  4448. {
  4449. decimal LOTQTY = lotQtys[i];
  4450. 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();
  4451. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4452. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4453. bool flag = true;
  4454. foreach (var item in ExtensionIDList)
  4455. {
  4456. if (item == Colspan + WorkPoint)
  4457. {
  4458. flag = false;
  4459. }
  4460. }
  4461. if (ExtensionID == null && flag == true)
  4462. {
  4463. str1 = Guid.NewGuid().ToString();
  4464. 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)
  4465. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4466. 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(),
  4467. MUSER, MUSERNAME, WorkPoints);
  4468. }
  4469. else if (ExtensionID != null)
  4470. {
  4471. str1 = ExtensionID.ToString();
  4472. }
  4473. ExtensionIDList.Add(Colspan + WorkPoint);
  4474. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4475. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4476. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4477. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4478. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4479. //{
  4480. sql += string.Format(@"insert into ICSInventoryLot
  4481. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE13)
  4482. select
  4483. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}'
  4484. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4485. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  4486. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4487. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString(), queryParam["EATTRIBUTE13"].ToString());
  4488. sql += "\r\n";
  4489. //装箱的功能
  4490. if (List_Pack.Count > 0)
  4491. {
  4492. PackModel mm = new PackModel();
  4493. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4494. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4495. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4496. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4497. }
  4498. //}
  4499. }
  4500. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4501. return count;
  4502. }
  4503. //材料出库退料
  4504. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  4505. {
  4506. DataTable dt = new DataTable();
  4507. var queryParam = queryJson.ToJObject();
  4508. List<DbParameter> parameter = new List<DbParameter>();
  4509. object Figure = GetDecimalDigits();
  4510. #region [SQL]
  4511. string sql = @"
  4512. select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4513. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  4514. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4515. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4516. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4517. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  4518. from ICSMOApplyNegDetail a
  4519. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4520. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4521. left join (
  4522. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4523. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  4524. where isnull(ee.EATTRIBUTE1,'')=''
  4525. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4526. )c
  4527. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4528. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4529. left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint
  4530. WHERE d.Type='3' and d.Status='2' ";
  4531. sql = string.Format(sql, Figure);
  4532. #endregion
  4533. if (!string.IsNullOrWhiteSpace(queryJson))
  4534. {
  4535. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4536. {
  4537. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4538. }
  4539. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4540. {
  4541. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4542. }
  4543. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4544. {
  4545. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4546. }
  4547. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4548. {
  4549. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4550. }
  4551. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  4552. {
  4553. sql += " and g.IssueCode like '%" + queryParam["SCode"].ToString() + "%' ";
  4554. }
  4555. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4556. {
  4557. string POStatus = queryParam["POStatus"].ToString();
  4558. if (POStatus == "0")
  4559. {
  4560. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4561. }
  4562. else if (POStatus == "1")
  4563. {
  4564. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4565. }
  4566. else
  4567. {
  4568. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4569. }
  4570. }
  4571. }
  4572. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4573. {
  4574. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4575. }
  4576. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4577. {
  4578. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4579. }
  4580. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4581. }
  4582. //材料出库退料
  4583. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4584. {
  4585. DataTable dt = new DataTable();
  4586. object Figure = GetDecimalDigits();
  4587. List<DbParameter> parameter = new List<DbParameter>();
  4588. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn019', " + Quantity + ",1,2,'')";
  4589. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4590. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4591. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4592. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4593. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4594. ,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,
  4595. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4596. from ICSMOApplyNegDetail a
  4597. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4598. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4599. left join (
  4600. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4601. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13'
  4602. where isnull(a.EATTRIBUTE1,'')=''
  4603. group by b.TransCode,b.TransSequence
  4604. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4605. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4606. WHERE d.Type='3' and d.Status='2'
  4607. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4608. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4609. sql = string.Format(sql, Figure);
  4610. return Repository().FindTableBySql(sql.ToString());
  4611. }
  4612. //材料出库退料生成条码
  4613. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4614. {
  4615. var queryParam = keyValue.ToJObject();
  4616. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4617. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4618. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4619. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4620. decimal LOTQTY = minPackQty;
  4621. string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4622. string sql = string.Empty;
  4623. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4624. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4625. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4626. string sqls = string.Empty;
  4627. string Colspan = "";
  4628. string str1 = "";
  4629. List<string> ExtensionIDList = new List<string>();
  4630. #region 装箱的功能
  4631. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4632. string VenCode = queryParam["VenCode"].ToString();
  4633. int PackCount = 0;//每箱放的数量
  4634. int Pack_YuShu = 0;//需要平摊的数量
  4635. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4636. List<PackModel> List_Pack = new List<PackModel>();
  4637. int ZQty = 0;
  4638. if (createPackCount > 0)
  4639. {
  4640. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4641. if (Pack_YuShu == 0)
  4642. {
  4643. PackCount = (createPageCount / createPackCount);
  4644. }
  4645. else
  4646. {
  4647. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4648. }
  4649. for (int jj = 0; jj < createPackCount; jj++)
  4650. {
  4651. object CARID = Guid.NewGuid();
  4652. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4653. sql += @" INSERT INTO dbo.ICSContainer
  4654. ( ID,ContainerCode ,
  4655. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4656. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4657. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4658. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4659. PackModel PP = new PackModel();
  4660. PP.ID = CARID.ToString();
  4661. PP.PackCode = Carton;
  4662. if (jj < Pack_YuShu)
  4663. {
  4664. PP.FristBarIndex = ZQty;
  4665. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4666. }
  4667. else
  4668. {
  4669. PP.FristBarIndex = ZQty;
  4670. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4671. }
  4672. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4673. List_Pack.Add(PP);
  4674. }
  4675. }
  4676. #endregion
  4677. for (int i = 0; i < createPageCount; i++)
  4678. {
  4679. if (i + 1 == createPageCount)
  4680. {
  4681. if (minPackQty * createPageCount > thisCreateQty)
  4682. {
  4683. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4684. }
  4685. }
  4686. 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();
  4687. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4688. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4689. bool flag = true;
  4690. foreach (var item in ExtensionIDList)
  4691. {
  4692. if (item == Colspan + WorkPoint)
  4693. {
  4694. flag = false;
  4695. }
  4696. }
  4697. if (ExtensionID == null && flag == true)
  4698. {
  4699. str1 = Guid.NewGuid().ToString();
  4700. 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)
  4701. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4702. 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(),
  4703. MUSER, MUSERNAME, WorkPoints);
  4704. }
  4705. else if (ExtensionID != null)
  4706. {
  4707. str1 = ExtensionID.ToString();
  4708. }
  4709. ExtensionIDList.Add(Colspan + WorkPoint);
  4710. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4711. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4712. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4713. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4714. sql += string.Format(@"insert into ICSInventoryLot
  4715. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4716. select
  4717. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4718. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4719. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4720. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4721. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4722. sql += "\r\n";
  4723. //装箱的功能
  4724. if (List_Pack.Count > 0)
  4725. {
  4726. PackModel mm = new PackModel();
  4727. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4728. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4729. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4730. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4731. }
  4732. }
  4733. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4734. return count;
  4735. }
  4736. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  4737. {
  4738. DataTable dt = new DataTable();
  4739. var queryParam = queryJson.ToJObject();
  4740. List<DbParameter> parameter = new List<DbParameter>();
  4741. object Figure = GetDecimalDigits();
  4742. #region [SQL]
  4743. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4744. 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 ,
  4745. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4746. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4747. ,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,
  4748. a.EATTRIBUTE9,a.EATTRIBUTE10
  4749. from ICSOApplyNegDetail a
  4750. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4751. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4752. left join (
  4753. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4754. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  4755. where isnull(ee.EATTRIBUTE1,'')=''
  4756. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4757. )c
  4758. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4759. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4760. WHERE d.Type='2'";
  4761. sql = string.Format(sql, Figure);
  4762. #endregion
  4763. if (!string.IsNullOrWhiteSpace(queryJson))
  4764. {
  4765. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4766. {
  4767. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4768. }
  4769. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4770. {
  4771. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4772. }
  4773. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4774. {
  4775. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4776. }
  4777. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4778. {
  4779. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4780. }
  4781. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4782. {
  4783. string POStatus = queryParam["POStatus"].ToString();
  4784. if (POStatus == "0")
  4785. {
  4786. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4787. }
  4788. else if (POStatus == "1")
  4789. {
  4790. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4791. }
  4792. else
  4793. {
  4794. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4795. }
  4796. }
  4797. }
  4798. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4799. {
  4800. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4801. }
  4802. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4803. {
  4804. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4805. }
  4806. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4807. }
  4808. /// <summary>
  4809. /// 点击委外领料退料生成条码
  4810. /// </summary>
  4811. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4812. {
  4813. DataTable dt = new DataTable();
  4814. object Figure = GetDecimalDigits();
  4815. List<DbParameter> parameter = new List<DbParameter>();
  4816. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn009', " + Quantity + ",1,1,'')";
  4817. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4818. string sql = @"
  4819. 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,
  4820. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4821. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4822. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4823. ,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,
  4824. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4825. from ICSOApplyNegDetail a
  4826. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4827. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4828. left join (
  4829. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4830. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14'
  4831. where isnull(a.EATTRIBUTE1,'')=''
  4832. group by b.TransCode,b.TransSequence
  4833. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4834. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4835. WHERE d.Type='2'
  4836. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4837. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4838. sql = string.Format(sql, Figure);
  4839. return Repository().FindTableBySql(sql.ToString());
  4840. }
  4841. //委外领料申请退料
  4842. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4843. {
  4844. var queryParam = keyValue.ToJObject();
  4845. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4846. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4847. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4848. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4849. decimal LOTQTY = minPackQty;
  4850. string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4851. string sql = string.Empty;
  4852. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4853. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4854. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4855. string sqls = string.Empty;
  4856. string Colspan = "";
  4857. string str1 = "";
  4858. List<string> ExtensionIDList = new List<string>();
  4859. #region 装箱的功能
  4860. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4861. string VenCode = queryParam["VenCode"].ToString();
  4862. int PackCount = 0;//每箱放的数量
  4863. int Pack_YuShu = 0;//需要平摊的数量
  4864. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4865. List<PackModel> List_Pack = new List<PackModel>();
  4866. int ZQty = 0;
  4867. if (createPackCount > 0)
  4868. {
  4869. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4870. if (Pack_YuShu == 0)
  4871. {
  4872. PackCount = (createPageCount / createPackCount);
  4873. }
  4874. else
  4875. {
  4876. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4877. }
  4878. for (int jj = 0; jj < createPackCount; jj++)
  4879. {
  4880. object CARID = Guid.NewGuid();
  4881. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4882. sql += @" INSERT INTO dbo.ICSContainer
  4883. ( ID,ContainerCode ,
  4884. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4885. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4886. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4887. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4888. PackModel PP = new PackModel();
  4889. PP.ID = CARID.ToString();
  4890. PP.PackCode = Carton;
  4891. if (jj < Pack_YuShu)
  4892. {
  4893. PP.FristBarIndex = ZQty;
  4894. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4895. }
  4896. else
  4897. {
  4898. PP.FristBarIndex = ZQty;
  4899. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4900. }
  4901. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4902. List_Pack.Add(PP);
  4903. }
  4904. }
  4905. #endregion
  4906. for (int i = 0; i < createPageCount; i++)
  4907. {
  4908. if (i + 1 == createPageCount)
  4909. {
  4910. if (minPackQty * createPageCount > thisCreateQty)
  4911. {
  4912. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4913. }
  4914. }
  4915. 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();
  4916. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4917. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4918. bool flag = true;
  4919. foreach (var item in ExtensionIDList)
  4920. {
  4921. if (item == Colspan + WorkPoint)
  4922. {
  4923. flag = false;
  4924. }
  4925. }
  4926. if (ExtensionID == null && flag == true)
  4927. {
  4928. str1 = Guid.NewGuid().ToString();
  4929. 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)
  4930. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4931. 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(),
  4932. MUSER, MUSERNAME, WorkPoints);
  4933. }
  4934. else if (ExtensionID != null)
  4935. {
  4936. str1 = ExtensionID.ToString();
  4937. }
  4938. ExtensionIDList.Add(Colspan + WorkPoint);
  4939. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4940. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4941. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4942. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4943. sql += string.Format(@"insert into ICSInventoryLot
  4944. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4945. select
  4946. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4947. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4948. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4949. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4950. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4951. sql += "\r\n";
  4952. //装箱的功能
  4953. if (List_Pack.Count > 0)
  4954. {
  4955. PackModel mm = new PackModel();
  4956. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4957. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4958. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4959. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4960. }
  4961. }
  4962. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4963. return count;
  4964. }
  4965. //委外材料出库
  4966. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  4967. {
  4968. DataTable dt = new DataTable();
  4969. var queryParam = queryJson.ToJObject();
  4970. List<DbParameter> parameter = new List<DbParameter>();
  4971. object Figure = GetDecimalDigits();
  4972. #region [SQL]
  4973. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4974. 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 ,
  4975. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4976. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4977. ,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,
  4978. a.EATTRIBUTE9,a.EATTRIBUTE10
  4979. from ICSOApplyNegDetail a
  4980. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4981. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4982. left join (
  4983. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4984. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  4985. where isnull(ee.EATTRIBUTE1,'')=''
  4986. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4987. )c
  4988. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4989. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4990. WHERE d.Type='3'";
  4991. sql = string.Format(sql, Figure);
  4992. #endregion
  4993. if (!string.IsNullOrWhiteSpace(queryJson))
  4994. {
  4995. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4996. {
  4997. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4998. }
  4999. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  5000. {
  5001. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  5002. }
  5003. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  5004. {
  5005. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  5006. }
  5007. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  5008. {
  5009. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  5010. }
  5011. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  5012. {
  5013. string POStatus = queryParam["POStatus"].ToString();
  5014. if (POStatus == "0")
  5015. {
  5016. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  5017. }
  5018. else if (POStatus == "1")
  5019. {
  5020. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  5021. }
  5022. else
  5023. {
  5024. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  5025. }
  5026. }
  5027. }
  5028. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  5029. {
  5030. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  5031. }
  5032. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  5033. {
  5034. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  5035. }
  5036. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5037. }
  5038. //委外材料出库
  5039. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5040. {
  5041. DataTable dt = new DataTable();
  5042. object Figure = GetDecimalDigits();
  5043. List<DbParameter> parameter = new List<DbParameter>();
  5044. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn010', " + Quantity + ",1,1,'')";
  5045. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5046. string sql = @"
  5047. 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,
  5048. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  5049. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  5050. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  5051. ,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,
  5052. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5053. from ICSOApplyNegDetail a
  5054. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5055. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5056. left join (
  5057. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5058. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15'
  5059. where isnull(a.EATTRIBUTE1,'')=''
  5060. group by b.TransCode,b.TransSequence
  5061. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  5062. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5063. WHERE d.Type='3'
  5064. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  5065. sql += " and a.WorkPoint='" + WorkPoint + "'";
  5066. sql = string.Format(sql, Figure);
  5067. return Repository().FindTableBySql(sql.ToString());
  5068. }
  5069. //委外材料出库
  5070. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  5071. {
  5072. var queryParam = keyValue.ToJObject();
  5073. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5074. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5075. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5076. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5077. decimal LOTQTY = minPackQty;
  5078. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  5079. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  5080. string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5081. string sql = string.Empty;
  5082. //string VendorLot = queryParam["VendorLot"].ToString();
  5083. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5084. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5085. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5086. string sqls = string.Empty;
  5087. string Colspan = "";
  5088. string str1 = "";
  5089. List<string> ExtensionIDList = new List<string>();
  5090. #region 装箱的功能
  5091. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5092. string VenCode = queryParam["VenCode"].ToString();
  5093. int PackCount = 0;//每箱放的数量
  5094. int Pack_YuShu = 0;//需要平摊的数量
  5095. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5096. List<PackModel> List_Pack = new List<PackModel>();
  5097. int ZQty = 0;
  5098. if (createPackCount > 0)
  5099. {
  5100. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5101. if (Pack_YuShu == 0)
  5102. {
  5103. PackCount = (createPageCount / createPackCount);
  5104. }
  5105. else
  5106. {
  5107. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5108. }
  5109. for (int jj = 0; jj < createPackCount; jj++)
  5110. {
  5111. object CARID = Guid.NewGuid();
  5112. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5113. sql += @" INSERT INTO dbo.ICSContainer
  5114. ( ID,ContainerCode ,
  5115. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5116. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5117. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5118. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5119. PackModel PP = new PackModel();
  5120. PP.ID = CARID.ToString();
  5121. PP.PackCode = Carton;
  5122. if (jj < Pack_YuShu)
  5123. {
  5124. PP.FristBarIndex = ZQty;
  5125. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5126. }
  5127. else
  5128. {
  5129. PP.FristBarIndex = ZQty;
  5130. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5131. }
  5132. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5133. List_Pack.Add(PP);
  5134. }
  5135. }
  5136. #endregion
  5137. for (int i = 0; i < createPageCount; i++)
  5138. {
  5139. if (i + 1 == createPageCount)
  5140. {
  5141. if (minPackQty * createPageCount > thisCreateQty)
  5142. {
  5143. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5144. }
  5145. }
  5146. 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();
  5147. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5148. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5149. bool flag = true;
  5150. foreach (var item in ExtensionIDList)
  5151. {
  5152. if (item == Colspan + WorkPoint)
  5153. {
  5154. flag = false;
  5155. }
  5156. }
  5157. if (ExtensionID == null && flag == true)
  5158. {
  5159. str1 = Guid.NewGuid().ToString();
  5160. 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)
  5161. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5162. 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(),
  5163. MUSER, MUSERNAME, WorkPoints);
  5164. }
  5165. else if (ExtensionID != null)
  5166. {
  5167. str1 = ExtensionID.ToString();
  5168. }
  5169. ExtensionIDList.Add(Colspan + WorkPoint);
  5170. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5171. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5172. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  5173. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5174. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  5175. //{
  5176. sql += string.Format(@"insert into ICSInventoryLot
  5177. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5178. select
  5179. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  5180. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5181. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  5182. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5183. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5184. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5185. sql += "\r\n";
  5186. //装箱的功能
  5187. if (List_Pack.Count > 0)
  5188. {
  5189. PackModel mm = new PackModel();
  5190. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5191. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5192. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5193. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5194. }
  5195. //}
  5196. }
  5197. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5198. return count;
  5199. }
  5200. public DataTable SelectICSExtensionEnable()
  5201. {
  5202. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5203. string sql = @"select ColCode from ICSExtensionEnable
  5204. where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
  5205. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5206. return dt;
  5207. }
  5208. public DataTable GetComplete()
  5209. {
  5210. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5211. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
  5212. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5213. return dt;
  5214. }
  5215. public DataTable GetWWComplete()
  5216. {
  5217. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5218. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004' and WorkPoint='" + WorkPoints + "'";
  5219. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5220. return dt;
  5221. }
  5222. //返工工单
  5223. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  5224. {
  5225. DataTable dt = new DataTable();
  5226. var queryParam = queryJson.ToJObject();
  5227. List<DbParameter> parameter = new List<DbParameter>();
  5228. object Figure = GetDecimalDigits();
  5229. #region [SQL]
  5230. 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,
  5231. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  5232. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  5233. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  5234. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5235. ,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,
  5236. a.EATTRIBUTE9,a.EATTRIBUTE10
  5237. from ICSMOPick a
  5238. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5239. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5240. left join (
  5241. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5242. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  5243. where isnull(ee.EATTRIBUTE1,'')=''
  5244. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5245. )c
  5246. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5247. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5248. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  5249. sql = string.Format(sql, Figure);
  5250. #endregion
  5251. if (!string.IsNullOrWhiteSpace(queryJson))
  5252. {
  5253. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  5254. {
  5255. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  5256. }
  5257. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  5258. {
  5259. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  5260. }
  5261. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  5262. {
  5263. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  5264. }
  5265. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  5266. {
  5267. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  5268. }
  5269. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  5270. {
  5271. string POStatus = queryParam["POStatus"].ToString();
  5272. if (POStatus == "0")
  5273. {
  5274. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  5275. }
  5276. else if (POStatus == "1")
  5277. {
  5278. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  5279. }
  5280. else
  5281. {
  5282. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  5283. }
  5284. }
  5285. }
  5286. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  5287. {
  5288. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  5289. }
  5290. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  5291. {
  5292. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  5293. }
  5294. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5295. }
  5296. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5297. {
  5298. DataTable dt = new DataTable();
  5299. object Figure = GetDecimalDigits();
  5300. List<DbParameter> parameter = new List<DbParameter>();
  5301. // string sql = @"
  5302. //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,
  5303. //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
  5304. //,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
  5305. // from ICSMOPick a
  5306. // left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5307. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5308. // left join (
  5309. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5310. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5311. //where isnull(a.EATTRIBUTE1,'')=''
  5312. // group by b.TransCode,b.TransSequence
  5313. // ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5314. // left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5315. // WHERE 1=1
  5316. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn015', " + Quantity + ",1,2,'')";
  5317. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5318. string sql = @"
  5319. 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,
  5320. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  5321. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  5322. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  5323. ,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,
  5324. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5325. from ICSMOPick a
  5326. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5327. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5328. left join (
  5329. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5330. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5331. where isnull(a.EATTRIBUTE1,'')=''
  5332. group by b.TransCode,b.TransSequence
  5333. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5334. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5335. WHERE 1=1
  5336. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  5337. sql += " and a.WorkPoint='" + WorkPoint + "'";
  5338. sql = string.Format(sql, Figure);
  5339. return Repository().FindTableBySql(sql.ToString());
  5340. }
  5341. //返工工单
  5342. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  5343. {
  5344. var queryParam = keyValue.ToJObject();
  5345. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5346. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5347. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5348. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5349. decimal LOTQTY = minPackQty;
  5350. Sequence = Sequence.Replace("~", "");
  5351. string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5352. string sql = string.Empty;
  5353. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5354. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5355. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5356. string sqls = string.Empty;
  5357. string Colspan = "";
  5358. string str1 = "";
  5359. List<string> ExtensionIDList = new List<string>();
  5360. #region 装箱的功能
  5361. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5362. string VenCode = queryParam["VenCode"].ToString();
  5363. int PackCount = 0;//每箱放的数量
  5364. int Pack_YuShu = 0;//需要平摊的数量
  5365. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5366. List<PackModel> List_Pack = new List<PackModel>();
  5367. int ZQty = 0;
  5368. if (createPackCount > 0)
  5369. {
  5370. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5371. if (Pack_YuShu == 0)
  5372. {
  5373. PackCount = (createPageCount / createPackCount);
  5374. }
  5375. else
  5376. {
  5377. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5378. }
  5379. for (int jj = 0; jj < createPackCount; jj++)
  5380. {
  5381. object CARID = Guid.NewGuid();
  5382. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5383. sql += @" INSERT INTO dbo.ICSContainer
  5384. ( ID,ContainerCode ,
  5385. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5386. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5387. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5388. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5389. PackModel PP = new PackModel();
  5390. PP.ID = CARID.ToString();
  5391. PP.PackCode = Carton;
  5392. if (jj < Pack_YuShu)
  5393. {
  5394. PP.FristBarIndex = ZQty;
  5395. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5396. }
  5397. else
  5398. {
  5399. PP.FristBarIndex = ZQty;
  5400. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5401. }
  5402. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5403. List_Pack.Add(PP);
  5404. }
  5405. }
  5406. #endregion
  5407. for (int i = 0; i < createPageCount; i++)
  5408. {
  5409. if (i + 1 == createPageCount)
  5410. {
  5411. if (minPackQty * createPageCount > thisCreateQty)
  5412. {
  5413. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5414. }
  5415. }
  5416. 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();
  5417. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5418. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5419. bool flag = true;
  5420. foreach (var item in ExtensionIDList)
  5421. {
  5422. if (item == Colspan + WorkPoint)
  5423. {
  5424. flag = false;
  5425. }
  5426. }
  5427. if (ExtensionID == null && flag == true)
  5428. {
  5429. str1 = Guid.NewGuid().ToString();
  5430. 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)
  5431. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5432. 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(),
  5433. MUSER, MUSERNAME, WorkPoints);
  5434. }
  5435. else if (ExtensionID != null)
  5436. {
  5437. str1 = ExtensionID.ToString();
  5438. }
  5439. ExtensionIDList.Add(Colspan + WorkPoint);
  5440. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5441. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5442. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5443. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5444. sql += string.Format(@"insert into ICSInventoryLot
  5445. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5446. select
  5447. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5448. 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}' ",
  5449. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5450. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5451. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5452. sql += "\r\n";
  5453. //装箱的功能
  5454. if (List_Pack.Count > 0)
  5455. {
  5456. PackModel mm = new PackModel();
  5457. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5458. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5459. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5460. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5461. }
  5462. }
  5463. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5464. return count;
  5465. }
  5466. /// <summary>
  5467. /// 锐腾获取单据信息
  5468. /// </summary>
  5469. /// <param name="FGGDMOCode"></param>
  5470. /// <param name="Sequence"></param>
  5471. /// <param name="WorkPoint"></param>
  5472. /// <returns></returns>
  5473. public DataTable GetSubGridJsonTransferByCreate(string TransferNO, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5474. {
  5475. DataTable dt = new DataTable();
  5476. object Figure = GetDecimalDigits();
  5477. List<DbParameter> parameter = new List<DbParameter>();
  5478. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn025', " + Quantity + ",1,2,'')";
  5479. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5480. 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,
  5481. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5482. FROM
  5483. ICSTransfer a
  5484. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  5485. LEFT JOIN (
  5486. SELECT
  5487. b.TransCode,
  5488. b.TransSequence,
  5489. SUM ( isnull( Quantity, 0 ) ) LOTQTY
  5490. FROM
  5491. ICSInventoryLot a
  5492. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo
  5493. AND a.Type= '19'
  5494. WHERE
  5495. isnull( a.EATTRIBUTE1, '' ) = ''
  5496. GROUP BY
  5497. b.TransCode,
  5498. b.TransSequence
  5499. ) c ON a.TransferNO= c.TransCode
  5500. AND a.Sequence= c.TransSequence
  5501. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID
  5502. AND a.WorkPoint= e.WorkPoint
  5503. WHERE
  5504. 1 = 1
  5505. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  5506. and a.WorkPoint='{WorkPoint}'";
  5507. sql = string.Format(sql, Figure);
  5508. return Repository().FindTableBySql(sql.ToString());
  5509. }
  5510. /// <summary>
  5511. /// 锐腾两步调入单生成条码
  5512. /// </summary>
  5513. /// <param name="TransferNO"></param>
  5514. /// <param name="Sequence"></param>
  5515. /// <param name="keyValue"></param>
  5516. /// <param name="WorkPoint"></param>
  5517. /// <returns></returns>
  5518. public int SubmitFormTransfer(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  5519. {
  5520. var queryParam = keyValue.ToJObject();
  5521. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5522. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5523. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5524. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5525. decimal LOTQTY = minPackQty;
  5526. Sequence = Sequence.Replace("~", "");
  5527. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  5528. string sql = string.Empty;
  5529. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5530. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5531. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5532. string sqls = string.Empty;
  5533. string Colspan = "";
  5534. string str1 = "";
  5535. List<string> ExtensionIDList = new List<string>();
  5536. #region 装箱的功能
  5537. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5538. string VenCode = queryParam["VenCode"].ToString();
  5539. int PackCount = 0;//每箱放的数量
  5540. int Pack_YuShu = 0;//需要平摊的数量
  5541. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5542. List<PackModel> List_Pack = new List<PackModel>();
  5543. int ZQty = 0;
  5544. if (createPackCount > 0)
  5545. {
  5546. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5547. if (Pack_YuShu == 0)
  5548. {
  5549. PackCount = (createPageCount / createPackCount);
  5550. }
  5551. else
  5552. {
  5553. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5554. }
  5555. for (int jj = 0; jj < createPackCount; jj++)
  5556. {
  5557. object CARID = Guid.NewGuid();
  5558. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5559. sql += @" INSERT INTO dbo.ICSContainer
  5560. ( ID,ContainerCode ,
  5561. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5562. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5563. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5564. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5565. PackModel PP = new PackModel();
  5566. PP.ID = CARID.ToString();
  5567. PP.PackCode = Carton;
  5568. if (jj < Pack_YuShu)
  5569. {
  5570. PP.FristBarIndex = ZQty;
  5571. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5572. }
  5573. else
  5574. {
  5575. PP.FristBarIndex = ZQty;
  5576. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5577. }
  5578. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5579. List_Pack.Add(PP);
  5580. }
  5581. }
  5582. #endregion
  5583. for (int i = 0; i < createPageCount; i++)
  5584. {
  5585. if (i + 1 == createPageCount)
  5586. {
  5587. if (minPackQty * createPageCount > thisCreateQty)
  5588. {
  5589. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5590. }
  5591. }
  5592. 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();
  5593. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5594. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5595. bool flag = true;
  5596. foreach (var item in ExtensionIDList)
  5597. {
  5598. if (item == Colspan + WorkPoint)
  5599. {
  5600. flag = false;
  5601. }
  5602. }
  5603. if (ExtensionID == null && flag == true)
  5604. {
  5605. str1 = Guid.NewGuid().ToString();
  5606. 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)
  5607. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5608. 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(),
  5609. MUSER, MUSERNAME, WorkPoints);
  5610. }
  5611. else if (ExtensionID != null)
  5612. {
  5613. str1 = ExtensionID.ToString();
  5614. }
  5615. ExtensionIDList.Add(Colspan + WorkPoint);
  5616. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5617. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5618. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5619. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5620. sql += string.Format(@"insert into ICSInventoryLot
  5621. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5622. select
  5623. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','20','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5624. from ICSTransfer a where a.TransferNO='{6}' and a.Sequence='{7}' and a.WorkPoint='{5}' ",
  5625. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5626. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5627. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5628. sql += "\r\n";
  5629. //装箱的功能
  5630. if (List_Pack.Count > 0)
  5631. {
  5632. PackModel mm = new PackModel();
  5633. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5634. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5635. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5636. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5637. }
  5638. }
  5639. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5640. return count;
  5641. }
  5642. public object GetDecimalDigits()
  5643. {
  5644. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5645. try
  5646. {
  5647. string sql = string.Empty;
  5648. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
  5649. object Figure = SqlHelper.ExecuteScalar(sql);
  5650. return Figure;
  5651. }
  5652. catch (Exception ex)
  5653. {
  5654. throw new Exception(ex.Message.ToString());
  5655. }
  5656. }
  5657. /// <summary>
  5658. /// 生成条码导出
  5659. /// </summary>
  5660. /// <param name="ProductBrand"></param>
  5661. /// <param name="cCusName"></param>
  5662. /// <param name="DesignAddRate"></param>
  5663. /// <returns></returns>
  5664. public DataTable StatementExportAll(string Type, string ID)
  5665. {
  5666. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5667. string sql = string.Empty;
  5668. object Figure = GetDecimalDigits();
  5669. string TableCode = string.Empty;
  5670. #region sql语句
  5671. if (Type == "1") //生产退料
  5672. {
  5673. 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 数量
  5674. ,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
  5675. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5676. ,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,
  5677. a.EATTRIBUTE9,a.EATTRIBUTE10
  5678. from ICSMOApplyNegDetail a
  5679. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5680. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5681. left join (
  5682. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5683. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  5684. where isnull(ee.EATTRIBUTE1,'')=''
  5685. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5686. )c
  5687. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5688. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5689. where d.Type='1' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5690. TableCode = "ICSMOApplyNegDetail";
  5691. }
  5692. if (Type == "2") //委外退料
  5693. {
  5694. 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 数量
  5695. ,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
  5696. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5697. ,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,
  5698. a.EATTRIBUTE9,a.EATTRIBUTE10
  5699. from ICSOApplyNegDetail a
  5700. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5701. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5702. left join (
  5703. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5704. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  5705. where isnull(ee.EATTRIBUTE1,'')=''
  5706. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5707. )c
  5708. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5709. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5710. WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5711. TableCode = "ICSOApplyNegDetail";
  5712. }
  5713. if (Type == "3")//工单成品生成条码
  5714. {
  5715. sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
  5716. ,CAST( a.Quantity AS DECIMAL(38,{0})) as ,CAST( a.Amount as DECIMAL(38,{0})) as
  5717. ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5718. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5719. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5720. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5721. a.EATTRIBUTE9,a.EATTRIBUTE10
  5722. from ICSMO a
  5723. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5724. left join (
  5725. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5726. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  5727. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5728. )c
  5729. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5730. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5731. WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
  5732. TableCode = "ICSMO";
  5733. }
  5734. if (Type == "4")//销售退货
  5735. {
  5736. 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 数量
  5737. ,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
  5738. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5739. ,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,
  5740. a.EATTRIBUTE9,a.EATTRIBUTE10
  5741. from ICSSDN a
  5742. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5743. left join (
  5744. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5745. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  5746. where isnull(ee.EATTRIBUTE1,'')=''
  5747. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5748. )c
  5749. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5750. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5751. where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
  5752. TableCode = "ICSSDN";
  5753. }
  5754. if (Type == "5")//其它入库生成条码
  5755. {
  5756. 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 料品单位,
  5757. 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
  5758. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5759. ,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,
  5760. a.EATTRIBUTE9,a.EATTRIBUTE10
  5761. from ICSOtherIn a
  5762. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5763. left join (
  5764. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5765. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  5766. where isnull(ee.EATTRIBUTE1,'')=''
  5767. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5768. )c
  5769. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5770. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5771. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5772. TableCode = "ICSOtherIn";
  5773. }
  5774. if (Type == "6")//归还单生成条码
  5775. {
  5776. 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 料品单位
  5777. ,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
  5778. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5779. ,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,
  5780. a.EATTRIBUTE9,a.EATTRIBUTE10
  5781. from ICSReturn a
  5782. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5783. left join (
  5784. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5785. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  5786. where isnull(ee.EATTRIBUTE1,'')=''
  5787. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5788. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5789. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5790. where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5791. TableCode = "ICSReturn";
  5792. }
  5793. if (Type == "7")//*审核到货单生成条码
  5794. {
  5795. 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 料品单位,
  5796. 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
  5797. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5798. ,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,
  5799. a.EATTRIBUTE9,a.EATTRIBUTE10
  5800. from ICSDeliveryNotice a
  5801. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5802. left join (
  5803. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5804. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  5805. where isnull(ee.EATTRIBUTE1,'')=''
  5806. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5807. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5808. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5809. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5810. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5811. where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5812. TableCode = "ICSDeliveryNotice";
  5813. }
  5814. if (Type == "8")//审核委外到货单生成条码
  5815. {
  5816. 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 创建时间,
  5817. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5818. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5819. ,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,
  5820. a.EATTRIBUTE9,a.EATTRIBUTE10
  5821. from ICSODeliveryNotice a
  5822. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5823. left join (
  5824. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5825. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  5826. where isnull(ee.EATTRIBUTE1,'')=''
  5827. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5828. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5829. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5830. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5831. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5832. where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5833. TableCode = "ICSODeliveryNotice";
  5834. }
  5835. if (Type == "9")//开立得成品入库单 生成条码
  5836. {
  5837. 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 数量 ,
  5838. 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
  5839. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5840. ,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,
  5841. a.EATTRIBUTE9,a.EATTRIBUTE10
  5842. from ICSManufactureReceive a
  5843. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5844. left join (
  5845. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5846. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  5847. where isnull(ee.EATTRIBUTE1,'')=''
  5848. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5849. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5850. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5851. where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5852. TableCode = "ICSManufactureReceive";
  5853. }
  5854. if (Type == "10")//采购拒收单
  5855. {
  5856. 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 料品单位,
  5857. 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 ,
  5858. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5859. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5860. ,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,
  5861. a.EATTRIBUTE9,a.EATTRIBUTE10
  5862. from ICSDeliveryNotice a
  5863. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5864. left join (
  5865. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5866. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  5867. where isnull(ee.EATTRIBUTE1,'')=''
  5868. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5869. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5870. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5871. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5872. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5873. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5874. TableCode = "ICSDeliveryNotice";
  5875. }
  5876. if (Type == "11") //委外拒收单生成条码
  5877. {
  5878. 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 料品单位,
  5879. 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
  5880. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5881. ,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,
  5882. a.EATTRIBUTE9,a.EATTRIBUTE10
  5883. from ICSODeliveryNotice a
  5884. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5885. left join (
  5886. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5887. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  5888. where isnull(ee.EATTRIBUTE1,'')=''
  5889. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5890. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5891. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5892. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5893. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5894. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5895. TableCode = "ICSODeliveryNotice";
  5896. }
  5897. if (Type == "12")//领料申请退料生成条码
  5898. {
  5899. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5900. 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
  5901. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5902. ,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,
  5903. a.EATTRIBUTE9,a.EATTRIBUTE10
  5904. from ICSMOApplyNegDetail a
  5905. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5906. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5907. left join (
  5908. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5909. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  5910. where isnull(ee.EATTRIBUTE1,'')=''
  5911. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5912. )c
  5913. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5914. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5915. WHERE d.Type='2' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5916. TableCode = "ICSMOApplyNegDetail";
  5917. }
  5918. if (Type == "13")//材料出库退料
  5919. {
  5920. sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5921. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5922. 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
  5923. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5924. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  5925. from ICSMOApplyNegDetail a
  5926. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5927. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5928. left join (
  5929. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5930. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  5931. where isnull(ee.EATTRIBUTE1,'')=''
  5932. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5933. )c
  5934. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5935. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5936. WHERE d.Type='3' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5937. TableCode = "ICSMOApplyNegDetail";
  5938. }
  5939. if (Type == "14")//委外领料申请退料
  5940. {
  5941. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5942. 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
  5943. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5944. ,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,
  5945. a.EATTRIBUTE9,a.EATTRIBUTE10
  5946. from ICSOApplyNegDetail a
  5947. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5948. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5949. left join (
  5950. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5951. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  5952. where isnull(ee.EATTRIBUTE1,'')=''
  5953. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5954. )c
  5955. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5956. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5957. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5958. TableCode = "ICSOApplyNegDetail";
  5959. }
  5960. if (Type == "15")//委外材料出库退料
  5961. {
  5962. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5963. 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
  5964. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5965. ,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,
  5966. a.EATTRIBUTE9,a.EATTRIBUTE10
  5967. from ICSOApplyNegDetail a
  5968. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5969. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5970. left join (
  5971. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5972. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  5973. where isnull(ee.EATTRIBUTE1,'')=''
  5974. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5975. )c
  5976. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5977. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5978. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  5979. TableCode = "ICSOApplyNegDetail";
  5980. }
  5981. if (Type == "16") //返工工单
  5982. {
  5983. 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 单位,
  5984. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5985. 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
  5986. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5987. ,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,
  5988. a.EATTRIBUTE9,a.EATTRIBUTE10
  5989. from ICSMOPick a
  5990. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5991. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5992. left join (
  5993. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5994. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  5995. where isnull(ee.EATTRIBUTE1,'')=''
  5996. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5997. )c
  5998. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5999. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6000. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  6001. TableCode = "ICSMOPick";
  6002. }
  6003. if (Type == "17")//检验不合格条码重新生成
  6004. {
  6005. sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  6006. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  6007. CAST(c.Amount AS DECIMAL(38,{0})) as ,a.MUSERName,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  6008. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6009. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  6010. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  6011. a.EATTRIBUTE9,a.EATTRIBUTE10
  6012. from ICSInspection a
  6013. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  6014. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6015. left join (
  6016. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6017. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  6018. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  6019. )c
  6020. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  6021. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6022. where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  6023. TableCode = "ICSInspection";
  6024. }
  6025. #endregion
  6026. sql = sql + " and a.WorkPoint='{1}'";
  6027. sql = string.Format(sql, Figure, WorkPoint);
  6028. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6029. string sqls = @"SELECT ColCode,ColName,Enable
  6030. from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
  6031. DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
  6032. foreach (DataRow drE in dtExtension.Rows)
  6033. {
  6034. if (dt.Columns.Contains(drE["ColCode"].ToString()))
  6035. {
  6036. if (!Convert.ToBoolean(drE["Enable"]))
  6037. {
  6038. dt.Columns.Remove(drE["ColCode"].ToString());
  6039. }
  6040. else if (Convert.ToBoolean(drE["Enable"]))
  6041. {
  6042. dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
  6043. }
  6044. }
  6045. }
  6046. DataTable dtColumn = ColumnEnable(TableCode);
  6047. foreach (DataRow drC in dtColumn.Rows)
  6048. {
  6049. if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
  6050. {
  6051. if (!Convert.ToBoolean(drC["Enable"]))
  6052. {
  6053. dt.Columns.Remove(drC["ColumnCode"].ToString());
  6054. }
  6055. else if (Convert.ToBoolean(drC["Enable"]))
  6056. {
  6057. dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
  6058. }
  6059. }
  6060. }
  6061. return dt;
  6062. }
  6063. public DataTable ColumnEnable(string TableCode)
  6064. {
  6065. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6066. string sql = string.Empty;
  6067. sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
  6068. sql = string.Format(sql, TableCode, WorkPoint);
  6069. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6070. return dt;
  6071. }
  6072. public object GetQiSetNum(string keyValue)
  6073. {
  6074. decimal Num = 0;
  6075. string msg = "";
  6076. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  6077. string result = HttpPost(APIURL, keyValue);
  6078. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  6079. string MessAge = Obj["Message"].ToString();
  6080. string Success = Obj["Success"].ToString();
  6081. if (Success.ToUpper() == "FALSE")
  6082. {
  6083. msg = MessAge;
  6084. }
  6085. else
  6086. {
  6087. if (MessAge == "U9")
  6088. {
  6089. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  6090. int date = Convert.ToInt32(Date);
  6091. Num = date;
  6092. }
  6093. else
  6094. {
  6095. if (msg == "")
  6096. {
  6097. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  6098. foreach (var item in res)
  6099. {
  6100. JObject jo = (JObject)item;
  6101. //var aa= jo["min_lotqty"].ToString();
  6102. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  6103. }
  6104. }
  6105. }
  6106. }
  6107. var Header = new
  6108. {
  6109. msg = msg,
  6110. Num = Num,
  6111. };
  6112. return Header;
  6113. }
  6114. //接口api解析
  6115. public static string HttpPost(string url, string body)
  6116. {
  6117. try
  6118. {
  6119. Encoding encoding = Encoding.UTF8;
  6120. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  6121. request.Method = "POST";
  6122. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  6123. request.ContentType = "application/json; charset=utf-8";
  6124. byte[] buffer = encoding.GetBytes(body);
  6125. request.ContentLength = buffer.Length;
  6126. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  6127. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  6128. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  6129. {
  6130. return reader.ReadToEnd();
  6131. }
  6132. }
  6133. catch (WebException ex)
  6134. {
  6135. throw new Exception(ex.Message);
  6136. }
  6137. }
  6138. public DataTable GetLoadShow()
  6139. {
  6140. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6141. string sql = @"
  6142. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  6143. return Repository().FindTableBySql(sql.ToString());
  6144. }
  6145. //不合格条码重新生成入库
  6146. public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
  6147. {
  6148. DataTable dt = new DataTable();
  6149. var queryParam = queryJson.ToJObject();
  6150. List<DbParameter> parameter = new List<DbParameter>();
  6151. object Figure = GetDecimalDigits();
  6152. #region [SQL]
  6153. string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  6154. CAST(a.UnqualifiedQuantity AS DECIMAL(38,{0})) as Quantity ,
  6155. CAST(c.Amount AS DECIMAL(38,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY,d.ExtensionID
  6156. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6157. ,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,
  6158. a.EATTRIBUTE9,a.EATTRIBUTE10
  6159. from ICSInspection a
  6160. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  6161. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6162. left join (
  6163. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6164. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  6165. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  6166. )c
  6167. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  6168. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6169. where a.UnqualifiedQuantity>0 and a.Enable='1'";
  6170. sql = string.Format(sql, Figure);
  6171. #endregion
  6172. if (!string.IsNullOrWhiteSpace(queryJson))
  6173. {
  6174. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6175. {
  6176. sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
  6177. }
  6178. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6179. {
  6180. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6181. }
  6182. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6183. {
  6184. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6185. }
  6186. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6187. {
  6188. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6189. }
  6190. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6191. {
  6192. string POStatus = queryParam["POStatus"].ToString();
  6193. if (POStatus == "0")
  6194. {
  6195. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6196. }
  6197. else if (POStatus == "1")
  6198. {
  6199. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
  6200. }
  6201. else
  6202. {
  6203. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
  6204. }
  6205. }
  6206. }
  6207. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6208. {
  6209. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6210. }
  6211. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6212. }
  6213. public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
  6214. {
  6215. DataTable dt = new DataTable();
  6216. object Figure = GetDecimalDigits();
  6217. List<DbParameter> parameter = new List<DbParameter>();
  6218. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6219. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  6220. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6221. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  6222. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  6223. case when isnull(e.ID,'')='' then '' else '' end as isInspection,
  6224. case when g.InvIQC='1' then '是' else '否' end as isExemption
  6225. from ICSInventoryLot a
  6226. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  6227. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  6228. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  6229. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6230. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  6231. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  6232. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  6233. WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
  6234. sql = string.Format(sql, Figure);
  6235. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6236. }
  6237. public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
  6238. {
  6239. var queryParam = keyValue.ToJObject();
  6240. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6241. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6242. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6243. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6244. decimal LOTQTY = minPackQty;
  6245. // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6246. string sql = string.Empty;
  6247. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6248. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6249. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6250. string sqls = string.Empty;
  6251. string Colspan = "";
  6252. string str1 = "";
  6253. List<string> ExtensionIDList = new List<string>();
  6254. for (int i = 0; i < createPageCount; i++)
  6255. {
  6256. if (i + 1 == createPageCount)
  6257. {
  6258. if (minPackQty * createPageCount > thisCreateQty)
  6259. {
  6260. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6261. }
  6262. }
  6263. string LotNo = GetNewLotNo(OldLotNo);
  6264. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6265. select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}',TransID from ICSInventoryLotDetail where LotNo='{4}'",
  6266. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  6267. sql += string.Format(@"
  6268. insert into ICSInventoryLot
  6269. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
  6270. select
  6271. newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
  6272. from ICSInventoryLot a
  6273. inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
  6274. where a.LotNo='{4}' and a.WorkPoint='{3}'",
  6275. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  6276. sql += "\r\n";
  6277. }
  6278. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6279. return count;
  6280. }
  6281. public string GetNewLotNo(string LotNO)
  6282. {
  6283. DataTable dt = new DataTable();
  6284. List<DbParameter> parameter = new List<DbParameter>();
  6285. //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
  6286. string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
  6287. ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
  6288. sql = string.Format(sql, LotNO);
  6289. dt = Repository().FindTableBySql(sql.ToString());
  6290. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
  6291. {
  6292. return LotNO + "-1";
  6293. }
  6294. else
  6295. {
  6296. string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
  6297. int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
  6298. return LotNO + "-" + COUNT.ToString();
  6299. }
  6300. }
  6301. public DataTable SelGDLX()
  6302. {
  6303. string sql = string.Empty;
  6304. DataTable dt = null;
  6305. sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
  6306. dt = SqlHelper.GetDataTableBySql(sql);
  6307. return dt;
  6308. }
  6309. public DataTable GetFreeEnble()
  6310. {
  6311. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6312. string sql = @"
  6313. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  6314. return Repository().FindTableBySql(sql.ToString());
  6315. }
  6316. public DataTable GetInvBatchEnable(string InvCode)
  6317. {
  6318. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6319. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'";
  6320. sql = string.Format(sql, InvCode, WorkPoints);
  6321. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6322. return dt;
  6323. }
  6324. //副产品
  6325. public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
  6326. {
  6327. DataTable dt = new DataTable();
  6328. var queryParam = queryJson.ToJObject();
  6329. List<DbParameter> parameter = new List<DbParameter>();
  6330. object Figure = GetDecimalDigits();
  6331. #region [SQL]
  6332. 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,
  6333. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  6334. 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
  6335. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6336. ,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,
  6337. a.EATTRIBUTE9,a.EATTRIBUTE10
  6338. from ICSMOPick a
  6339. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  6340. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6341. left join (
  6342. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6343. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  6344. where isnull(ee.EATTRIBUTE1,'')=''
  6345. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6346. )c
  6347. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6348. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6349. where a.EATTRIBUTE1='1' ";
  6350. sql = string.Format(sql, Figure);
  6351. #endregion
  6352. if (!string.IsNullOrWhiteSpace(queryJson))
  6353. {
  6354. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6355. {
  6356. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6357. }
  6358. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6359. {
  6360. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6361. }
  6362. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6363. {
  6364. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6365. }
  6366. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6367. {
  6368. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6369. }
  6370. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6371. {
  6372. string POStatus = queryParam["POStatus"].ToString();
  6373. if (POStatus == "0")
  6374. {
  6375. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6376. }
  6377. else if (POStatus == "1")
  6378. {
  6379. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6380. }
  6381. else
  6382. {
  6383. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6384. }
  6385. }
  6386. }
  6387. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6388. {
  6389. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6390. }
  6391. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6392. {
  6393. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6394. }
  6395. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6396. }
  6397. /// <summary>
  6398. /// 锐腾调入单生成条码
  6399. /// </summary>
  6400. /// <param name="queryJson"></param>
  6401. /// <param name="jqgridparam"></param>
  6402. /// <returns></returns>
  6403. public DataTable GetGridJsonTransfer(string queryJson, ref Pagination jqgridparam)
  6404. {
  6405. DataTable dt = new DataTable();
  6406. var queryParam = queryJson.ToJObject();
  6407. List<DbParameter> parameter = new List<DbParameter>();
  6408. object Figure = GetDecimalDigits();
  6409. #region [SQL]
  6410. 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
  6411. FROM ICSTransfer a
  6412. LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  6413. LEFT JOIN ICSInventoryLotDetail c ON a.TransferNO=c.TransCode AND c.WorkPoint=a.WorkPoint
  6414. LEFT JOIN ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint
  6415. left JOIN ICSExtension f ON f.Id=a.ExtensionID AND f.WorkPoint=a.WorkPoint
  6416. WHERE a.Type='2'
  6417. AND Isnull(a.Status,'')<>3
  6418. ";
  6419. sql = string.Format(sql, Figure);
  6420. #endregion
  6421. if (!string.IsNullOrWhiteSpace(queryJson))
  6422. {
  6423. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6424. {
  6425. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  6426. }
  6427. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6428. {
  6429. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6430. }
  6431. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6432. {
  6433. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6434. }
  6435. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6436. {
  6437. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6438. }
  6439. }
  6440. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6441. {
  6442. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6443. }
  6444. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6445. {
  6446. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6447. }
  6448. 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
  6449. where 1=1 ";
  6450. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6451. {
  6452. string POStatus = queryParam["POStatus"].ToString();
  6453. if (POStatus == "0")
  6454. {
  6455. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6456. }
  6457. else if (POStatus == "1")
  6458. {
  6459. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6460. }
  6461. else
  6462. {
  6463. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6464. }
  6465. }
  6466. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6467. }
  6468. /// <summary>
  6469. /// 采购入库生成条码
  6470. /// </summary>
  6471. /// <param name="queryJson"></param>
  6472. /// <param name="jqgridparam"></param>
  6473. /// <returns></returns>
  6474. ///
  6475. public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6476. {
  6477. DataTable dt = new DataTable();
  6478. var queryParam = queryJson.ToJObject();
  6479. List<DbParameter> parameter = new List<DbParameter>();
  6480. object Figure = GetDecimalDigits();
  6481. #region [SQL]
  6482. 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,
  6483. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6484. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6485. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6486. ,c.LOTQTY
  6487. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6488. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6489. ,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,
  6490. a.EATTRIBUTE9,a.EATTRIBUTE10,d.VenCode,g.VenName,b.EATTRIBUTE11 as ManufacturerInvCode,a.EATTRIBUTE14 AS SupplierBatch,
  6491. isnull(a.Quantity,'') as MPQ
  6492. from ICSPurchaseReceive a
  6493. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6494. left join (
  6495. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6496. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6497. where isnull(ee.EATTRIBUTE1,'')=''
  6498. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6499. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6500. left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6501. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6502. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6503. left join dbo.ICSVendor g on d.VenCode=g.VenCode and d.WorkPoint=g.WorkPoint
  6504. where a.Type='1' ";
  6505. sql = string.Format(sql, Figure);
  6506. #endregion
  6507. if (!string.IsNullOrWhiteSpace(queryJson))
  6508. {
  6509. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6510. {
  6511. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6512. }
  6513. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6514. {
  6515. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6516. }
  6517. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6518. {
  6519. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6520. }
  6521. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  6522. {
  6523. sql += " and d.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  6524. }
  6525. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  6526. {
  6527. sql += " and g.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  6528. }
  6529. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6530. {
  6531. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6532. }
  6533. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6534. {
  6535. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6536. }
  6537. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6538. {
  6539. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6540. }
  6541. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6542. {
  6543. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6544. }
  6545. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6546. {
  6547. string POStatus = queryParam["POStatus"].ToString();
  6548. if (POStatus == "0")
  6549. {
  6550. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6551. }
  6552. else if (POStatus == "1")
  6553. {
  6554. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6555. }
  6556. else
  6557. {
  6558. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6559. }
  6560. }
  6561. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  6562. {
  6563. string WHStatus = queryParam["WHStatus"].ToString();
  6564. if (WHStatus == "0")
  6565. {
  6566. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6567. }
  6568. else if (WHStatus == "1")
  6569. {
  6570. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  6571. }
  6572. else
  6573. {
  6574. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  6575. }
  6576. }
  6577. }
  6578. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6579. {
  6580. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6581. }
  6582. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6583. {
  6584. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6585. }
  6586. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6587. }
  6588. // public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6589. // {
  6590. // DataTable dt = new DataTable();
  6591. // var queryParam = queryJson.ToJObject();
  6592. // List<DbParameter> parameter = new List<DbParameter>();
  6593. // object Figure = GetDecimalDigits();
  6594. // #region [SQL]
  6595. // 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,
  6596. // CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6597. // ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6598. // ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6599. // ,c.LOTQTY
  6600. // ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6601. // ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6602. // ,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,
  6603. // a.EATTRIBUTE9,a.EATTRIBUTE10,
  6604. // isnull(b.EATTRIBUTE2,'') as MPQ
  6605. // from ICSPurchaseReceive a
  6606. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6607. // left join (
  6608. // select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6609. // left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6610. // where isnull(ee.EATTRIBUTE1,'')=''
  6611. // group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6612. // ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6613. // left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6614. // left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6615. // left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6616. // where a.Type='1' ";
  6617. // sql = string.Format(sql, Figure);
  6618. // #endregion
  6619. // if (!string.IsNullOrWhiteSpace(queryJson))
  6620. // {
  6621. // if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6622. // {
  6623. // sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6624. // }
  6625. // if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6626. // {
  6627. // sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6628. // }
  6629. // if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6630. // {
  6631. // sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6632. // }
  6633. // if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6634. // {
  6635. // sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6636. // }
  6637. // }
  6638. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6639. // {
  6640. // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6641. // }
  6642. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6643. // {
  6644. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6645. // }
  6646. // 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,
  6647. //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
  6648. // where 1=1 ";
  6649. // if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6650. // {
  6651. // string POStatus = queryParam["POStatus"].ToString();
  6652. // if (POStatus == "0")
  6653. // {
  6654. // //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6655. // }
  6656. // else if (POStatus == "1")
  6657. // {
  6658. // sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6659. // }
  6660. // else
  6661. // {
  6662. // sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6663. // }
  6664. // }
  6665. // return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6666. // }
  6667. /// <summary>
  6668. /// 采购入库获取单据信息
  6669. /// </summary>
  6670. /// <param name="FGGDMOCode"></param>
  6671. /// <param name="Sequence"></param>
  6672. /// <param name="WorkPoint"></param>
  6673. /// <returns></returns>
  6674. public DataTable GetSubGridJsonPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6675. {
  6676. DataTable dt = new DataTable();
  6677. object Figure = GetDecimalDigits();
  6678. List<DbParameter> parameter = new List<DbParameter>();
  6679. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6680. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6681. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6682. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6683. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6684. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6685. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6686. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays
  6687. ,isnull(b.EATTRIBUTE2,'') as MPQ
  6688. , 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 ,
  6689. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6690. FROM ICSPurchaseReceive a
  6691. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6692. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6693. FROM ICSInventoryLot a
  6694. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '22'
  6695. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6696. GROUP BY
  6697. b.TransCode,
  6698. b.TransSequence
  6699. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6700. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6701. WHERE 1 = 1
  6702. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6703. // sql = string.Format(sql, Figure);
  6704. return Repository().FindTableBySql(sql.ToString());
  6705. }
  6706. /// <summary>
  6707. /// 采购入库单生成条码 保存
  6708. /// </summary>
  6709. /// <param name="RCVCode"></param>
  6710. /// <param name="Sequence"></param>
  6711. /// <param name="keyValue"></param>
  6712. /// <param name="WorkPoint"></param>
  6713. /// <returns></returns>
  6714. public int SubmitFormCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6715. {
  6716. var queryParam = keyValue.ToJObject();
  6717. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6718. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6719. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6720. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6721. decimal LOTQTY = minPackQty;
  6722. decimal FreeQty = Convert.ToDecimal(queryParam["thisFreeQty"].ToString());
  6723. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6724. string sql = string.Empty;
  6725. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6726. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6727. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6728. string sqls = string.Empty;
  6729. string Colspan = "";
  6730. string str1 = "";
  6731. List<string> ExtensionIDList = new List<string>();
  6732. #region 装箱的功能
  6733. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6734. string VenCode = queryParam["VenCode"].ToString();
  6735. int PackCount = 0;//每箱放的数量
  6736. int Pack_YuShu = 0;//需要平摊的数量
  6737. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6738. List<PackModel> List_Pack = new List<PackModel>();
  6739. int ZQty = 0;
  6740. if (createPackCount > 0)
  6741. {
  6742. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6743. if (Pack_YuShu == 0)
  6744. {
  6745. PackCount = (createPageCount / createPackCount);
  6746. }
  6747. else
  6748. {
  6749. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6750. }
  6751. for (int jj = 0; jj < createPackCount; jj++)
  6752. {
  6753. object CARID = Guid.NewGuid();
  6754. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6755. sql += @" INSERT INTO dbo.ICSContainer
  6756. ( ID,ContainerCode ,
  6757. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6758. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6759. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6760. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6761. PackModel PP = new PackModel();
  6762. PP.ID = CARID.ToString();
  6763. PP.PackCode = Carton;
  6764. if (jj < Pack_YuShu)
  6765. {
  6766. PP.FristBarIndex = ZQty;
  6767. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6768. }
  6769. else
  6770. {
  6771. PP.FristBarIndex = ZQty;
  6772. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6773. }
  6774. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6775. List_Pack.Add(PP);
  6776. }
  6777. }
  6778. #endregion
  6779. string FreeLotNo = "";
  6780. for (int i = 0; i < createPageCount; i++)
  6781. {
  6782. if (i + 1 == createPageCount)
  6783. {
  6784. if (minPackQty * createPageCount > thisCreateQty)
  6785. {
  6786. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6787. }
  6788. }
  6789. 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();
  6790. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6791. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6792. bool flag = true;
  6793. foreach (var item in ExtensionIDList)
  6794. {
  6795. if (item == Colspan + WorkPoint)
  6796. {
  6797. flag = false;
  6798. }
  6799. }
  6800. if (ExtensionID == null && flag == true)
  6801. {
  6802. str1 = Guid.NewGuid().ToString();
  6803. 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)
  6804. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6805. 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(),
  6806. MUSER, MUSERNAME, WorkPoints);
  6807. }
  6808. else if (ExtensionID != null)
  6809. {
  6810. str1 = ExtensionID.ToString();
  6811. }
  6812. ExtensionIDList.Add(Colspan + WorkPoint);
  6813. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6814. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6815. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6816. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6817. #region 当赠品数量不等于0且【最后一次循环】时,生成赠品条码(核心修改处)
  6818. if (Convert.ToDecimal(queryParam["thisFreeQty"].ToString()) != 0 && i == createPageCount - 1)
  6819. {
  6820. FreeLotNo = "ZP" + LotNo;
  6821. #region 生成赠品条码
  6822. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6823. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6824. FreeLotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6825. sql += string.Format(@"
  6826. insert into ICSInventoryLot
  6827. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE29,EATTRIBUTE30)
  6828. select
  6829. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}'
  6830. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6831. FreeLotNo, PRODUCTDATE, FreeQty, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6832. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6833. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()
  6834. , LotNo, "赠品");
  6835. sql += "\r\n";
  6836. #endregion
  6837. sql += string.Format(@"
  6838. insert into ICSInventoryLot
  6839. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6840. select
  6841. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6842. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6843. LotNo, PRODUCTDATE, LOTQTY - FreeQty, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6844. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6845. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6846. sql += "\r\n";
  6847. }
  6848. #endregion
  6849. else
  6850. {
  6851. sql += string.Format(@"
  6852. insert into ICSInventoryLot
  6853. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6854. select
  6855. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6856. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6857. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6858. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6859. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6860. sql += "\r\n";
  6861. }
  6862. //装箱的功能
  6863. if (List_Pack.Count > 0)
  6864. {
  6865. PackModel mm = new PackModel();
  6866. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6867. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6868. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6869. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6870. }
  6871. }
  6872. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6873. return count;
  6874. }
  6875. /// <summary>
  6876. /// 采购入库单生成条码 保存(新)
  6877. /// </summary>
  6878. /// <param name="RCVCode"></param>
  6879. /// <param name="Sequence"></param>
  6880. /// <param name="keyValue"></param>
  6881. /// <param name="WorkPoint"></param>
  6882. /// <returns></returns>
  6883. public int SubmitFormCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6884. {
  6885. var queryParam = keyValue.ToJObject();
  6886. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6887. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6888. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6889. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  6890. List<decimal> lotQtys = new List<decimal>();
  6891. foreach (var jLotno in jLotnos)
  6892. {
  6893. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  6894. lotQtys.Add(qty);
  6895. }
  6896. int createPageCount = lotQtys.Count();
  6897. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6898. string sql = string.Empty;
  6899. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6900. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6901. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6902. string sqls = string.Empty;
  6903. string Colspan = "";
  6904. string str1 = "";
  6905. List<string> ExtensionIDList = new List<string>();
  6906. #region 装箱的功能
  6907. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6908. string VenCode = queryParam["VenCode"].ToString();
  6909. int PackCount = 0;//每箱放的数量
  6910. int Pack_YuShu = 0;//需要平摊的数量
  6911. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6912. List<PackModel> List_Pack = new List<PackModel>();
  6913. int ZQty = 0;
  6914. if (createPackCount > 0)
  6915. {
  6916. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6917. if (Pack_YuShu == 0)
  6918. {
  6919. PackCount = (createPageCount / createPackCount);
  6920. }
  6921. else
  6922. {
  6923. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6924. }
  6925. for (int jj = 0; jj < createPackCount; jj++)
  6926. {
  6927. object CARID = Guid.NewGuid();
  6928. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6929. sql += @" INSERT INTO dbo.ICSContainer
  6930. ( ID,ContainerCode ,
  6931. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6932. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6933. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6934. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6935. PackModel PP = new PackModel();
  6936. PP.ID = CARID.ToString();
  6937. PP.PackCode = Carton;
  6938. if (jj < Pack_YuShu)
  6939. {
  6940. PP.FristBarIndex = ZQty;
  6941. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6942. }
  6943. else
  6944. {
  6945. PP.FristBarIndex = ZQty;
  6946. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6947. }
  6948. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6949. List_Pack.Add(PP);
  6950. }
  6951. }
  6952. #endregion
  6953. for (int i = 0; i < createPageCount; i++)
  6954. {
  6955. //if (i + 1 == createPageCount)
  6956. //{
  6957. // if (minPackQty * createPageCount > thisCreateQty)
  6958. // {
  6959. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6960. // }
  6961. //}
  6962. decimal LOTQTY = lotQtys[i];
  6963. 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();
  6964. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6965. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6966. bool flag = true;
  6967. foreach (var item in ExtensionIDList)
  6968. {
  6969. if (item == Colspan + WorkPoint)
  6970. {
  6971. flag = false;
  6972. }
  6973. }
  6974. if (ExtensionID == null && flag == true)
  6975. {
  6976. str1 = Guid.NewGuid().ToString();
  6977. 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)
  6978. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6979. 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(),
  6980. MUSER, MUSERNAME, WorkPoints);
  6981. }
  6982. else if (ExtensionID != null)
  6983. {
  6984. str1 = ExtensionID.ToString();
  6985. }
  6986. ExtensionIDList.Add(Colspan + WorkPoint);
  6987. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6988. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6989. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6990. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6991. try
  6992. {
  6993. sql += string.Format(@"
  6994. insert into ICSInventoryLot
  6995. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6996. select
  6997. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6998. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6999. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  7000. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7001. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7002. sql += "\r\n";
  7003. }
  7004. catch (Exception EX)
  7005. {
  7006. throw EX;
  7007. }
  7008. //装箱的功能
  7009. if (List_Pack.Count > 0)
  7010. {
  7011. PackModel mm = new PackModel();
  7012. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7013. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7014. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7015. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7016. }
  7017. }
  7018. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7019. return count;
  7020. }
  7021. /// <summary>
  7022. /// 委外采购入库生成条码
  7023. /// </summary>
  7024. /// <param name="queryJson"></param>
  7025. /// <param name="jqgridparam"></param>
  7026. /// <returns></returns>
  7027. public DataTable GetGridJsonOutPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  7028. {
  7029. DataTable dt = new DataTable();
  7030. var queryParam = queryJson.ToJObject();
  7031. List<DbParameter> parameter = new List<DbParameter>();
  7032. object Figure = GetDecimalDigits();
  7033. #region [SQL]
  7034. 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,
  7035. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  7036. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  7037. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  7038. ,c.LOTQTY
  7039. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  7040. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  7041. ,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,
  7042. a.EATTRIBUTE9,a.EATTRIBUTE10,g.VenName,a.CreateDateTime
  7043. from ICSOutsourcingReceive a
  7044. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7045. left join (
  7046. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7047. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  7048. where isnull(ee.EATTRIBUTE1,'')=''
  7049. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7050. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7051. left join ICSOutsourcingOrder d on a.SourceCode = d.OOCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  7052. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  7053. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7054. left join dbo.ICSVendor g on d.VenCode=g.VenCode and d.WorkPoint=g.WorkPoint
  7055. where a.Type='1' ";
  7056. sql = string.Format(sql, Figure);
  7057. #endregion
  7058. if (!string.IsNullOrWhiteSpace(queryJson))
  7059. {
  7060. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  7061. {
  7062. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  7063. }
  7064. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  7065. {
  7066. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  7067. }
  7068. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  7069. {
  7070. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  7071. }
  7072. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  7073. {
  7074. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  7075. }
  7076. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  7077. {
  7078. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  7079. }
  7080. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  7081. {
  7082. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  7083. }
  7084. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  7085. {
  7086. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  7087. }
  7088. }
  7089. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  7090. {
  7091. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  7092. }
  7093. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  7094. {
  7095. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  7096. }
  7097. // 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,
  7098. //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
  7099. // where 1=1 ";
  7100. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  7101. {
  7102. string POStatus = queryParam["POStatus"].ToString();
  7103. if (POStatus == "0")
  7104. {
  7105. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  7106. }
  7107. else if (POStatus == "1")
  7108. {
  7109. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  7110. }
  7111. else
  7112. {
  7113. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  7114. }
  7115. }
  7116. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  7117. }
  7118. /// <summary>
  7119. /// 委外采购入库获取单据信息
  7120. /// </summary>
  7121. /// <param name="FGGDMOCode"></param>
  7122. /// <param name="Sequence"></param>
  7123. /// <param name="WorkPoint"></param>
  7124. /// <returns></returns>
  7125. public DataTable GetSubGridJsonOutPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  7126. {
  7127. DataTable dt = new DataTable();
  7128. object Figure = GetDecimalDigits();
  7129. List<DbParameter> parameter = new List<DbParameter>();
  7130. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  7131. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7132. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  7133. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  7134. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  7135. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  7136. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  7137. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7138. , 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 ,
  7139. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7140. FROM ICSOutsourcingReceive a
  7141. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  7142. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  7143. FROM ICSInventoryLot a
  7144. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '23'
  7145. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  7146. GROUP BY
  7147. b.TransCode,
  7148. b.TransSequence
  7149. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  7150. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  7151. WHERE 1 = 1
  7152. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  7153. sql = string.Format(sql, Figure);
  7154. return Repository().FindTableBySql(sql.ToString());
  7155. }
  7156. /// <summary>
  7157. /// 委外采购入库单生成条码 保存
  7158. /// </summary>
  7159. /// <param name="RCVCode"></param>
  7160. /// <param name="Sequence"></param>
  7161. /// <param name="keyValue"></param>
  7162. /// <param name="WorkPoint"></param>
  7163. /// <returns></returns>
  7164. public int SubmitFormWWCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  7165. {
  7166. try
  7167. {
  7168. var queryParam = keyValue.ToJObject();
  7169. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7170. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7171. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7172. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7173. decimal LOTQTY = minPackQty;
  7174. decimal FreeQty = Convert.ToDecimal(queryParam["thisFreeQty"].ToString());
  7175. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  7176. string sql = string.Empty;
  7177. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7178. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7179. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7180. string sqls = string.Empty;
  7181. string Colspan = "";
  7182. string str1 = "";
  7183. List<string> ExtensionIDList = new List<string>();
  7184. string FreeLotNo = "";
  7185. #region 装箱的功能
  7186. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7187. string VenCode = queryParam["VenCode"].ToString();
  7188. int PackCount = 0;//每箱放的数量
  7189. int Pack_YuShu = 0;//需要平摊的数量
  7190. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7191. List<PackModel> List_Pack = new List<PackModel>();
  7192. int ZQty = 0;
  7193. if (createPackCount > 0)
  7194. {
  7195. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7196. if (Pack_YuShu == 0)
  7197. {
  7198. PackCount = (createPageCount / createPackCount);
  7199. }
  7200. else
  7201. {
  7202. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7203. }
  7204. for (int jj = 0; jj < createPackCount; jj++)
  7205. {
  7206. object CARID = Guid.NewGuid();
  7207. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7208. sql += @" INSERT INTO dbo.ICSContainer
  7209. ( ID,ContainerCode ,
  7210. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7211. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7212. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7213. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7214. PackModel PP = new PackModel();
  7215. PP.ID = CARID.ToString();
  7216. PP.PackCode = Carton;
  7217. if (jj < Pack_YuShu)
  7218. {
  7219. PP.FristBarIndex = ZQty;
  7220. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7221. }
  7222. else
  7223. {
  7224. PP.FristBarIndex = ZQty;
  7225. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7226. }
  7227. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7228. List_Pack.Add(PP);
  7229. }
  7230. }
  7231. #endregion
  7232. for (int i = 0; i < createPageCount; i++)
  7233. {
  7234. if (i + 1 == createPageCount)
  7235. {
  7236. if (minPackQty * createPageCount > thisCreateQty)
  7237. {
  7238. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7239. }
  7240. }
  7241. 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();
  7242. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7243. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7244. bool flag = true;
  7245. foreach (var item in ExtensionIDList)
  7246. {
  7247. if (item == Colspan + WorkPoint)
  7248. {
  7249. flag = false;
  7250. }
  7251. }
  7252. if (ExtensionID == null && flag == true)
  7253. {
  7254. str1 = Guid.NewGuid().ToString();
  7255. 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)
  7256. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7257. 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(),
  7258. MUSER, MUSERNAME, WorkPoints);
  7259. }
  7260. else if (ExtensionID != null)
  7261. {
  7262. str1 = ExtensionID.ToString();
  7263. }
  7264. ExtensionIDList.Add(Colspan + WorkPoint);
  7265. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7266. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7267. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7268. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7269. #region 当赠品数量不等于0且【最后一次循环】时,生成赠品条码(核心修改处)
  7270. if (Convert.ToDecimal(queryParam["thisFreeQty"].ToString()) != 0 && i == createPageCount - 1)
  7271. {
  7272. FreeLotNo = "ZP" + LotNo;
  7273. #region 生成赠品条码
  7274. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7275. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7276. FreeLotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7277. sql += string.Format(@"
  7278. insert into ICSInventoryLot
  7279. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE29,EATTRIBUTE30)
  7280. select
  7281. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}'
  7282. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7283. FreeLotNo, PRODUCTDATE, FreeQty, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7284. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7285. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()
  7286. , LotNo, "赠品");
  7287. sql += "\r\n";
  7288. #endregion
  7289. sql += string.Format(@"
  7290. insert into ICSInventoryLot
  7291. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7292. select
  7293. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7294. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7295. LotNo, PRODUCTDATE, LOTQTY - FreeQty, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7296. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7297. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7298. sql += "\r\n";
  7299. }
  7300. #endregion
  7301. else
  7302. {
  7303. sql += string.Format(@"
  7304. insert into ICSInventoryLot
  7305. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7306. select
  7307. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7308. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7309. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7310. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7311. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7312. sql += "\r\n";
  7313. }
  7314. //装箱的功能
  7315. if (List_Pack.Count > 0)
  7316. {
  7317. PackModel mm = new PackModel();
  7318. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7319. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7320. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7321. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7322. }
  7323. }
  7324. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7325. return count;
  7326. }
  7327. catch (Exception ex)
  7328. {
  7329. throw new Exception(ex.Message);
  7330. }
  7331. }
  7332. /// <summary>
  7333. /// 委外采购入库单生成条码 保存(新)
  7334. /// </summary>
  7335. /// <param name="RCVCode"></param>
  7336. /// <param name="Sequence"></param>
  7337. /// <param name="keyValue"></param>
  7338. /// <param name="WorkPoint"></param>
  7339. /// <returns></returns>
  7340. public int SubmitFormWWCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  7341. {
  7342. var queryParam = keyValue.ToJObject();
  7343. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7344. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7345. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7346. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7347. List<decimal> lotQtys = new List<decimal>();
  7348. foreach (var jLotno in jLotnos)
  7349. {
  7350. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7351. lotQtys.Add(qty);
  7352. }
  7353. int createPageCount = lotQtys.Count();
  7354. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  7355. string sql = string.Empty;
  7356. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7357. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7358. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7359. string sqls = string.Empty;
  7360. string Colspan = "";
  7361. string str1 = "";
  7362. List<string> ExtensionIDList = new List<string>();
  7363. #region 装箱的功能
  7364. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7365. string VenCode = queryParam["VenCode"].ToString();
  7366. int PackCount = 0;//每箱放的数量
  7367. int Pack_YuShu = 0;//需要平摊的数量
  7368. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7369. List<PackModel> List_Pack = new List<PackModel>();
  7370. int ZQty = 0;
  7371. if (createPackCount > 0)
  7372. {
  7373. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7374. if (Pack_YuShu == 0)
  7375. {
  7376. PackCount = (createPageCount / createPackCount);
  7377. }
  7378. else
  7379. {
  7380. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7381. }
  7382. for (int jj = 0; jj < createPackCount; jj++)
  7383. {
  7384. object CARID = Guid.NewGuid();
  7385. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7386. sql += @" INSERT INTO dbo.ICSContainer
  7387. ( ID,ContainerCode ,
  7388. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7389. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7390. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7391. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7392. PackModel PP = new PackModel();
  7393. PP.ID = CARID.ToString();
  7394. PP.PackCode = Carton;
  7395. if (jj < Pack_YuShu)
  7396. {
  7397. PP.FristBarIndex = ZQty;
  7398. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7399. }
  7400. else
  7401. {
  7402. PP.FristBarIndex = ZQty;
  7403. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7404. }
  7405. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7406. List_Pack.Add(PP);
  7407. }
  7408. }
  7409. #endregion
  7410. for (int i = 0; i < createPageCount; i++)
  7411. {
  7412. //if (i + 1 == createPageCount)
  7413. //{
  7414. // if (minPackQty * createPageCount > thisCreateQty)
  7415. // {
  7416. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7417. // }
  7418. //}
  7419. decimal LOTQTY = lotQtys[i];
  7420. 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();
  7421. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7422. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7423. bool flag = true;
  7424. foreach (var item in ExtensionIDList)
  7425. {
  7426. if (item == Colspan + WorkPoint)
  7427. {
  7428. flag = false;
  7429. }
  7430. }
  7431. if (ExtensionID == null && flag == true)
  7432. {
  7433. str1 = Guid.NewGuid().ToString();
  7434. 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)
  7435. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7436. 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(),
  7437. MUSER, MUSERNAME, WorkPoints);
  7438. }
  7439. else if (ExtensionID != null)
  7440. {
  7441. str1 = ExtensionID.ToString();
  7442. }
  7443. ExtensionIDList.Add(Colspan + WorkPoint);
  7444. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7445. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7446. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7447. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7448. try
  7449. {
  7450. sql += string.Format(@"
  7451. insert into ICSInventoryLot
  7452. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7453. select
  7454. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7455. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7456. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / LOTQTY, queryParam["ExpirationDate"].ToString()
  7457. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7458. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7459. sql += "\r\n";
  7460. }
  7461. catch (Exception EX)
  7462. {
  7463. throw EX;
  7464. }
  7465. //装箱的功能
  7466. if (List_Pack.Count > 0)
  7467. {
  7468. PackModel mm = new PackModel();
  7469. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7470. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7471. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7472. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7473. }
  7474. }
  7475. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7476. return count;
  7477. }
  7478. /// <summary>
  7479. /// 铭锋 退货调拨申请单生成条码
  7480. /// </summary>
  7481. /// <param name="queryJson"></param>
  7482. /// <param name="jqgridparam"></param>
  7483. /// <returns></returns>
  7484. public DataTable GetGridJsonTransferApplication(string queryJson, ref Pagination jqgridparam)
  7485. {
  7486. DataTable dt = new DataTable();
  7487. var queryParam = queryJson.ToJObject();
  7488. List<DbParameter> parameter = new List<DbParameter>();
  7489. object Figure = GetDecimalDigits();
  7490. #region [SQL]
  7491. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  7492. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  7493. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  7494. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  7495. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  7496. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  7497. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  7498. ,c.LOTQTY
  7499. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  7500. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  7501. ,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,
  7502. a.EATTRIBUTE9,a.EATTRIBUTE10
  7503. from ICSTransferApplication a
  7504. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7505. left join (
  7506. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7507. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  7508. where isnull(ee.EATTRIBUTE1,'')=''
  7509. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7510. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7511. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  7512. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7513. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  7514. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  7515. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  7516. where 1 = 1";
  7517. sql = string.Format(sql, Figure);
  7518. #endregion
  7519. if (!string.IsNullOrWhiteSpace(queryJson))
  7520. {
  7521. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  7522. {
  7523. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  7524. }
  7525. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  7526. {
  7527. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  7528. }
  7529. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  7530. {
  7531. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  7532. }
  7533. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  7534. {
  7535. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  7536. }
  7537. }
  7538. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  7539. {
  7540. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  7541. }
  7542. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  7543. //{
  7544. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  7545. //}
  7546. 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,
  7547. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  7548. 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
  7549. where 1=1 ";
  7550. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  7551. {
  7552. string POStatus = queryParam["POStatus"].ToString();
  7553. if (POStatus == "0")
  7554. {
  7555. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  7556. }
  7557. else if (POStatus == "1")
  7558. {
  7559. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  7560. }
  7561. else
  7562. {
  7563. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  7564. }
  7565. }
  7566. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  7567. }
  7568. /// <summary>
  7569. /// 铭锋 退货调拨申请单获取单据信息
  7570. /// </summary>
  7571. /// <param name="TransferNO"></param>
  7572. /// <param name="Sequence"></param>
  7573. /// <param name="WorkPoint"></param>
  7574. /// <returns></returns>
  7575. public DataTable GetSubGridJsonTransferApplicationByCreate(string TransferNO, string Sequence, string WorkPoint)
  7576. {
  7577. DataTable dt = new DataTable();
  7578. object Figure = GetDecimalDigits();
  7579. List<DbParameter> parameter = new List<DbParameter>();
  7580. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  7581. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  7582. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  7583. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  7584. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  7585. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7586. , 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 ,
  7587. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7588. FROM ICSTransferApplication a
  7589. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  7590. 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
  7591. END AS Quantity
  7592. FROM ICSTransferApplication a
  7593. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  7594. AND a.WorkPoint= b.WorkPoint
  7595. ) xx ON xx.Id= a.Id
  7596. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  7597. FROM ICSInventoryLot a
  7598. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  7599. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  7600. GROUP BY
  7601. b.TransCode,
  7602. b.TransSequence
  7603. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  7604. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  7605. WHERE 1 = 1
  7606. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  7607. and a.WorkPoint='{WorkPoint}'";
  7608. sql = string.Format(sql, Figure);
  7609. return Repository().FindTableBySql(sql.ToString());
  7610. }
  7611. /// <summary>
  7612. /// 铭锋 退货调拨申请单生成条码 保存
  7613. /// </summary>
  7614. /// <param name="TransferNO"></param>
  7615. /// <param name="Sequence"></param>
  7616. /// <param name="keyValue"></param>
  7617. /// <param name="WorkPoint"></param>
  7618. /// <returns></returns>
  7619. public int SubmitFormTransferApplicatioSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7620. {
  7621. var queryParam = keyValue.ToJObject();
  7622. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7623. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7624. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7625. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7626. decimal LOTQTY = minPackQty;
  7627. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7628. string sql = string.Empty;
  7629. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7630. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7631. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7632. string sqls = string.Empty;
  7633. string Colspan = "";
  7634. string str1 = "";
  7635. List<string> ExtensionIDList = new List<string>();
  7636. #region 装箱的功能
  7637. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7638. string VenCode = queryParam["VenCode"].ToString();
  7639. int PackCount = 0;//每箱放的数量
  7640. int Pack_YuShu = 0;//需要平摊的数量
  7641. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7642. List<PackModel> List_Pack = new List<PackModel>();
  7643. int ZQty = 0;
  7644. if (createPackCount > 0)
  7645. {
  7646. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7647. if (Pack_YuShu == 0)
  7648. {
  7649. PackCount = (createPageCount / createPackCount);
  7650. }
  7651. else
  7652. {
  7653. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7654. }
  7655. for (int jj = 0; jj < createPackCount; jj++)
  7656. {
  7657. object CARID = Guid.NewGuid();
  7658. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7659. sql += @" INSERT INTO dbo.ICSContainer
  7660. ( ID,ContainerCode ,
  7661. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7662. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7663. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7664. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7665. PackModel PP = new PackModel();
  7666. PP.ID = CARID.ToString();
  7667. PP.PackCode = Carton;
  7668. if (jj < Pack_YuShu)
  7669. {
  7670. PP.FristBarIndex = ZQty;
  7671. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7672. }
  7673. else
  7674. {
  7675. PP.FristBarIndex = ZQty;
  7676. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7677. }
  7678. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7679. List_Pack.Add(PP);
  7680. }
  7681. }
  7682. #endregion
  7683. for (int i = 0; i < createPageCount; i++)
  7684. {
  7685. if (i + 1 == createPageCount)
  7686. {
  7687. if (minPackQty * createPageCount > thisCreateQty)
  7688. {
  7689. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7690. }
  7691. }
  7692. 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();
  7693. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7694. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7695. bool flag = true;
  7696. foreach (var item in ExtensionIDList)
  7697. {
  7698. if (item == Colspan + WorkPoint)
  7699. {
  7700. flag = false;
  7701. }
  7702. }
  7703. if (ExtensionID == null && flag == true)
  7704. {
  7705. str1 = Guid.NewGuid().ToString();
  7706. 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)
  7707. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7708. 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(),
  7709. MUSER, MUSERNAME, WorkPoints);
  7710. }
  7711. else if (ExtensionID != null)
  7712. {
  7713. str1 = ExtensionID.ToString();
  7714. }
  7715. ExtensionIDList.Add(Colspan + WorkPoint);
  7716. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7717. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7718. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7719. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7720. sql += string.Format(@"
  7721. insert into ICSInventoryLot
  7722. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7723. select
  7724. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7725. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7726. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7727. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7728. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7729. sql += "\r\n";
  7730. //装箱的功能
  7731. if (List_Pack.Count > 0)
  7732. {
  7733. PackModel mm = new PackModel();
  7734. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7735. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7736. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7737. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7738. }
  7739. }
  7740. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7741. return count;
  7742. }
  7743. public int SubmitFormTransferApplicatioSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7744. {
  7745. var queryParam = keyValue.ToJObject();
  7746. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7747. //decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7748. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7749. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7750. List<decimal> lotQtys = new List<decimal>();
  7751. foreach (var jLotno in jLotnos)
  7752. {
  7753. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7754. lotQtys.Add(qty);
  7755. }
  7756. int createPageCount = lotQtys.Count();
  7757. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7758. string sql = string.Empty;
  7759. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7760. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7761. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7762. string sqls = string.Empty;
  7763. string Colspan = "";
  7764. string str1 = "";
  7765. List<string> ExtensionIDList = new List<string>();
  7766. #region 装箱的功能
  7767. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7768. string VenCode = queryParam["VenCode"].ToString();
  7769. int PackCount = 0;//每箱放的数量
  7770. int Pack_YuShu = 0;//需要平摊的数量
  7771. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7772. List<PackModel> List_Pack = new List<PackModel>();
  7773. int ZQty = 0;
  7774. if (createPackCount > 0)
  7775. {
  7776. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7777. if (Pack_YuShu == 0)
  7778. {
  7779. PackCount = (createPageCount / createPackCount);
  7780. }
  7781. else
  7782. {
  7783. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7784. }
  7785. for (int jj = 0; jj < createPackCount; jj++)
  7786. {
  7787. object CARID = Guid.NewGuid();
  7788. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7789. sql += @" INSERT INTO dbo.ICSContainer
  7790. ( ID,ContainerCode ,
  7791. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7792. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7793. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7794. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7795. PackModel PP = new PackModel();
  7796. PP.ID = CARID.ToString();
  7797. PP.PackCode = Carton;
  7798. if (jj < Pack_YuShu)
  7799. {
  7800. PP.FristBarIndex = ZQty;
  7801. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7802. }
  7803. else
  7804. {
  7805. PP.FristBarIndex = ZQty;
  7806. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7807. }
  7808. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7809. List_Pack.Add(PP);
  7810. }
  7811. }
  7812. #endregion
  7813. for (int i = 0; i < createPageCount; i++)
  7814. {
  7815. var LOTQTY = lotQtys[i];
  7816. 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();
  7817. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7818. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7819. bool flag = true;
  7820. foreach (var item in ExtensionIDList)
  7821. {
  7822. if (item == Colspan + WorkPoint)
  7823. {
  7824. flag = false;
  7825. }
  7826. }
  7827. if (ExtensionID == null && flag == true)
  7828. {
  7829. str1 = Guid.NewGuid().ToString();
  7830. 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)
  7831. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7832. 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(),
  7833. MUSER, MUSERNAME, WorkPoints);
  7834. }
  7835. else if (ExtensionID != null)
  7836. {
  7837. str1 = ExtensionID.ToString();
  7838. }
  7839. ExtensionIDList.Add(Colspan + WorkPoint);
  7840. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7841. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7842. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7843. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7844. sql += string.Format(@"
  7845. insert into ICSInventoryLot
  7846. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7847. select
  7848. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7849. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7850. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  7851. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7852. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7853. sql += "\r\n";
  7854. //装箱的功能
  7855. if (List_Pack.Count > 0)
  7856. {
  7857. PackModel mm = new PackModel();
  7858. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7859. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7860. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7861. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7862. }
  7863. }
  7864. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7865. return count;
  7866. }
  7867. public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  7868. {
  7869. DataTable dt = new DataTable();
  7870. object Figure = GetDecimalDigits();
  7871. List<DbParameter> parameter = new List<DbParameter>();
  7872. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn014', " + Quantity + ",1,2,'')";
  7873. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7874. string sql = @"
  7875. 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,
  7876. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  7877. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7878. ,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,
  7879. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7880. from ICSMOPick a
  7881. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7882. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7883. left join (
  7884. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  7885. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18'
  7886. where isnull(a.EATTRIBUTE1,'')=''
  7887. group by b.TransCode,b.TransSequence
  7888. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  7889. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  7890. WHERE 1=1
  7891. and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  7892. sql += " and a.WorkPoint='" + WorkPoint + "'";
  7893. sql = string.Format(sql, Figure);
  7894. return Repository().FindTableBySql(sql.ToString());
  7895. }
  7896. //副产品
  7897. public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  7898. {
  7899. var queryParam = keyValue.ToJObject();
  7900. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7901. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7902. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7903. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7904. decimal LOTQTY = minPackQty;
  7905. string Sequences = Sequence.Replace("~", "");
  7906. string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  7907. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7908. string sql = string.Empty;
  7909. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7910. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7911. string sqls = string.Empty;
  7912. string Colspan = "";
  7913. string str1 = "";
  7914. List<string> ExtensionIDList = new List<string>();
  7915. #region 装箱的功能
  7916. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7917. string VenCode = queryParam["VenCode"].ToString();
  7918. int PackCount = 0;//每箱放的数量
  7919. int Pack_YuShu = 0;//需要平摊的数量
  7920. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7921. List<PackModel> List_Pack = new List<PackModel>();
  7922. int ZQty = 0;
  7923. if (createPackCount > 0)
  7924. {
  7925. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7926. if (Pack_YuShu == 0)
  7927. {
  7928. PackCount = (createPageCount / createPackCount);
  7929. }
  7930. else
  7931. {
  7932. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7933. }
  7934. for (int jj = 0; jj < createPackCount; jj++)
  7935. {
  7936. object CARID = Guid.NewGuid();
  7937. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7938. sql += @" INSERT INTO dbo.ICSContainer
  7939. ( ID,ContainerCode ,
  7940. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7941. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7942. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7943. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7944. PackModel PP = new PackModel();
  7945. PP.ID = CARID.ToString();
  7946. PP.PackCode = Carton;
  7947. if (jj < Pack_YuShu)
  7948. {
  7949. PP.FristBarIndex = ZQty;
  7950. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7951. }
  7952. else
  7953. {
  7954. PP.FristBarIndex = ZQty;
  7955. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7956. }
  7957. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7958. List_Pack.Add(PP);
  7959. }
  7960. }
  7961. #endregion
  7962. for (int i = 0; i < createPageCount; i++)
  7963. {
  7964. if (i + 1 == createPageCount)
  7965. {
  7966. if (minPackQty * createPageCount > thisCreateQty)
  7967. {
  7968. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7969. }
  7970. }
  7971. 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();
  7972. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7973. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7974. bool flag = true;
  7975. foreach (var item in ExtensionIDList)
  7976. {
  7977. if (item == Colspan + WorkPoint)
  7978. {
  7979. flag = false;
  7980. }
  7981. }
  7982. if (ExtensionID == null && flag == true)
  7983. {
  7984. str1 = Guid.NewGuid().ToString();
  7985. 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)
  7986. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7987. 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(),
  7988. MUSER, MUSERNAME, WorkPoints);
  7989. }
  7990. else if (ExtensionID != null)
  7991. {
  7992. str1 = ExtensionID.ToString();
  7993. }
  7994. ExtensionIDList.Add(Colspan + WorkPoint);
  7995. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7996. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7997. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  7998. LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7999. sql += string.Format(@"insert into ICSInventoryLot
  8000. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  8001. select
  8002. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  8003. 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}' ",
  8004. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  8005. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  8006. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  8007. sql += "\r\n";
  8008. //装箱的功能
  8009. if (List_Pack.Count > 0)
  8010. {
  8011. PackModel mm = new PackModel();
  8012. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  8013. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  8014. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  8015. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  8016. }
  8017. }
  8018. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8019. return count;
  8020. }
  8021. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty, string InvCode, string Quantitys)
  8022. {
  8023. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8024. DataTable dt = new DataTable();
  8025. List<DbParameter> parameter = new List<DbParameter>();
  8026. string sql = string.Empty;
  8027. bool flag = true;
  8028. if (Type == "1")
  8029. {
  8030. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn017', " + Quantitys + ",1,2,'')";
  8031. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8032. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8033. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8034. from ICSMOApplyNegDetail a
  8035. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  8036. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8037. left join (
  8038. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8039. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  8040. where isnull(ee.EATTRIBUTE1,'')=''
  8041. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8042. )c
  8043. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8044. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8045. where d.Type='1' and d.Status='2'
  8046. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8047. }
  8048. if (Type == "2")
  8049. {
  8050. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn008', " + Quantitys + ",1,2,'')";
  8051. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8052. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8053. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8054. from ICSOApplyNegDetail a
  8055. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  8056. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8057. left join (
  8058. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8059. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  8060. where isnull(ee.EATTRIBUTE1,'')=''
  8061. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8062. )c
  8063. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8064. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8065. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8066. }
  8067. if (Type == "3")
  8068. {
  8069. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn011', " + Quantitys + ",1,2,'')";
  8070. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8071. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8072. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8073. from ICSMO a
  8074. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8075. left join (
  8076. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8077. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  8078. where isnull(ee.EATTRIBUTE1,'')=''
  8079. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8080. )c
  8081. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8082. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8083. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8084. }
  8085. if (Type == "4")
  8086. {
  8087. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn020', " + Quantitys + ",1,3,'')";
  8088. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8089. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8090. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8091. from ICSSDN a
  8092. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8093. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8094. left join(select a.SDNCode,a.Sequence,a.WorkPoint,
  8095. 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
  8096. from ICSSDN a
  8097. 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
  8098. left join (
  8099. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8100. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  8101. where isnull(ee.EATTRIBUTE1,'')=''
  8102. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8103. )c
  8104. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8105. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8106. where a.Type='2'
  8107. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8108. }
  8109. if (Type == "5")
  8110. {
  8111. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn021', " + Quantitys + ",1,4,'')";
  8112. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8113. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8114. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8115. from ICSOtherIn a
  8116. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8117. left join(select a.InCode,a.Sequence,a.WorkPoint,
  8118. 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
  8119. from ICSOtherIn a
  8120. 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
  8121. left join (
  8122. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8123. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  8124. where isnull(ee.EATTRIBUTE1,'')=''
  8125. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8126. )c
  8127. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8128. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8129. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1'
  8130. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8131. }
  8132. if (Type == "6")
  8133. {
  8134. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn023', " + Quantitys + ",1,4,'')";
  8135. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8136. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8137. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8138. from ICSReturn a
  8139. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8140. left join(select a.ReturnCode,a.Sequence,a.WorkPoint,
  8141. 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
  8142. from ICSReturn a
  8143. 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
  8144. left join (
  8145. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8146. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  8147. where isnull(ee.EATTRIBUTE1,'')=''
  8148. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8149. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8150. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8151. where a.Status='2'
  8152. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8153. }
  8154. if (Type == "7")
  8155. {
  8156. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn002', " + Quantitys + ",1,1,'')";
  8157. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8158. //锐腾添加退补逻辑
  8159. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8160. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8161. from ICSDeliveryNotice a
  8162. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8163. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  8164. " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  8165. from ICSDeliveryNotice a
  8166. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8167. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  8168. 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
  8169. left join (
  8170. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8171. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  8172. where isnull(ee.EATTRIBUTE1,'')=''
  8173. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8174. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8175. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  8176. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8177. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8178. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  8179. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8180. }
  8181. if (Type == "8")
  8182. {
  8183. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn005', " + Quantitys + ",1,1,'')";
  8184. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8185. //锐腾添加退补逻辑
  8186. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8187. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8188. from ICSODeliveryNotice a
  8189. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8190. left join(select a.ODNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  8191. from ICSODeliveryNotice a
  8192. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8193. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  8194. 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
  8195. left join (
  8196. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8197. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  8198. where isnull(ee.EATTRIBUTE1,'')=''
  8199. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8200. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8201. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  8202. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8203. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8204. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  8205. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8206. }
  8207. if (Type == "9")
  8208. {
  8209. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn013', " + Quantitys + ",1,2,'')";
  8210. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8211. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8212. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8213. from ICSManufactureReceive a
  8214. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8215. left join (
  8216. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8217. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  8218. where isnull(ee.EATTRIBUTE1,'')=''
  8219. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8220. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8221. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8222. where a.Status='1' and a.Type='1'
  8223. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8224. }
  8225. if (Type == "10")
  8226. {
  8227. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn003', " + Quantitys + ",1,1,'')";
  8228. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8229. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8230. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8231. from ICSDeliveryNotice a
  8232. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8233. left join (
  8234. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8235. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  8236. where isnull(ee.EATTRIBUTE1,'')=''
  8237. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8238. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8239. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  8240. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8241. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8242. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  8243. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8244. }
  8245. if (Type == "11")
  8246. {
  8247. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn006', " + Quantitys + ",1,1,'')";
  8248. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8249. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8250. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8251. from ICSODeliveryNotice a
  8252. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8253. left join (
  8254. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8255. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  8256. where isnull(ee.EATTRIBUTE1,'')=''
  8257. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8258. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8259. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  8260. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8261. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8262. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  8263. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8264. }
  8265. if (Type == "12")
  8266. {
  8267. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn018', " + Quantitys + ",1,2,'')";
  8268. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8269. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8270. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8271. from ICSMOApplyNegDetail a
  8272. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  8273. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8274. left join (
  8275. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8276. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  8277. where isnull(ee.EATTRIBUTE1,'')=''
  8278. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8279. )c
  8280. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8281. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8282. WHERE d.Type='2' and d.Status='2'
  8283. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8284. }
  8285. if (Type == "13")
  8286. {
  8287. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn019', " + Quantitys + ",1,2,'')";
  8288. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8289. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8290. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8291. from ICSMOApplyNegDetail a
  8292. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  8293. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8294. left join (
  8295. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8296. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  8297. where isnull(ee.EATTRIBUTE1,'')=''
  8298. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8299. )c
  8300. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8301. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8302. WHERE d.Type='3' and d.Status='2'
  8303. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8304. }
  8305. if (Type == "14")
  8306. {
  8307. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn009', " + Quantitys + ",1,1,'')";
  8308. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8309. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8310. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8311. from ICSOApplyNegDetail a
  8312. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  8313. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8314. left join (
  8315. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8316. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  8317. where isnull(ee.EATTRIBUTE1,'')=''
  8318. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8319. )c
  8320. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8321. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8322. WHERE d.Type='2'
  8323. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8324. }
  8325. if (Type == "15")
  8326. {
  8327. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn010', " + Quantitys + ",1,1,'')";
  8328. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8329. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8330. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8331. from ICSOApplyNegDetail a
  8332. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  8333. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8334. left join (
  8335. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8336. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  8337. where isnull(ee.EATTRIBUTE1,'')=''
  8338. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8339. )c
  8340. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8341. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8342. WHERE d.Type='3'
  8343. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8344. }
  8345. if (Type == "16")
  8346. {
  8347. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn015', " + Quantitys + ",1,2,'')";
  8348. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8349. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8350. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8351. from ICSMOPick a
  8352. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  8353. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8354. left join (
  8355. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8356. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  8357. where isnull(ee.EATTRIBUTE1,'')=''
  8358. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8359. )c
  8360. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8361. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8362. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  8363. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8364. }
  8365. if (Type == "18")
  8366. {
  8367. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn014', " + Quantitys + ",1,2,'')";
  8368. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8369. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8370. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8371. from ICSMOPick a
  8372. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  8373. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8374. left join (
  8375. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8376. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  8377. where isnull(ee.EATTRIBUTE1,'')=''
  8378. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8379. )c
  8380. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8381. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8382. where a.EATTRIBUTE1='1'
  8383. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8384. }
  8385. if (Type == "22")
  8386. {
  8387. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8388. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8389. from ICSPurchaseReceive a
  8390. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8391. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8392. 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
  8393. from ICSPurchaseReceive a
  8394. 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
  8395. left join (
  8396. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8397. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  8398. where isnull(ee.EATTRIBUTE1,'')=''
  8399. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8400. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8401. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8402. where a.Status='1'
  8403. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8404. }
  8405. if (Type == "23")
  8406. {
  8407. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8408. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8409. from ICSOutsourcingReceive a
  8410. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8411. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8412. 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
  8413. from ICSOutsourcingReceive a
  8414. 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
  8415. left join (
  8416. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8417. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  8418. where isnull(ee.EATTRIBUTE1,'')=''
  8419. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8420. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8421. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8422. where a.Status='1'
  8423. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8424. }
  8425. if (Type == "24")
  8426. {
  8427. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn026', " + Quantitys + ",1,3,'')";
  8428. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8429. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8430. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8431. from ICSSSD a
  8432. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8433. left join(select a.SDNCode,a.SDNSequence Sequence,a.WorkPoint,
  8434. 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
  8435. from ICSSSD a
  8436. 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
  8437. left join (
  8438. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8439. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  8440. where isnull(ee.EATTRIBUTE1,'')=''
  8441. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8442. )c
  8443. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8444. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8445. where a.Status='1' and a.Type='2'
  8446. and a.SSDCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8447. }
  8448. dt = SqlHelper.GetDataTableBySql(sql);
  8449. decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  8450. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  8451. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  8452. if (LOTQTY + thisQty > Quantity)
  8453. {
  8454. flag = false;
  8455. }
  8456. return flag;
  8457. }
  8458. /// <summary>
  8459. /// 开立成品入库单(一键生成)
  8460. /// </summary>
  8461. public int SubmitFormKLCPRKALL(string keyValue)
  8462. {
  8463. string sql = string.Empty;
  8464. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8465. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8466. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8467. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8468. foreach (var item in res)
  8469. {
  8470. JObject jo = (JObject)item;
  8471. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8472. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8473. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8474. decimal LOTQTY = minPackQty;
  8475. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8476. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8477. string sqls = string.Empty;
  8478. string Colspan = "";
  8479. string str1 = "";
  8480. List<string> ExtensionIDList = new List<string>();
  8481. for (int i = 0; i < createPageCount; i++)
  8482. {
  8483. if (i + 1 == createPageCount)
  8484. {
  8485. if (minPackQty * createPageCount > thisCreateQty)
  8486. {
  8487. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8488. }
  8489. }
  8490. 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();
  8491. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8492. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8493. bool flag = true;
  8494. foreach (var items in ExtensionIDList)
  8495. {
  8496. if (items == Colspan + WorkPoint)
  8497. {
  8498. flag = false;
  8499. }
  8500. }
  8501. if (ExtensionID == null && flag == true)
  8502. {
  8503. str1 = Guid.NewGuid().ToString();
  8504. 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)
  8505. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8506. 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(),
  8507. MUSER, MUSERNAME, WorkPoint);
  8508. }
  8509. else if (ExtensionID != null)
  8510. {
  8511. str1 = ExtensionID.ToString();
  8512. }
  8513. ExtensionIDList.Add(Colspan + WorkPoint);
  8514. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8515. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8516. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8517. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8518. sql += string.Format(@"
  8519. insert into ICSInventoryLot
  8520. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8521. select
  8522. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  8523. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8524. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8525. sql += "\r\n";
  8526. }
  8527. }
  8528. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8529. return count;
  8530. }
  8531. /// <summary>
  8532. /// 审核到货单生成条码(一键生成)
  8533. /// </summary>
  8534. /// <param name="POCode"></param>
  8535. /// <param name="PORow"></param>
  8536. /// <param name="keyValue"></param>
  8537. /// 已改
  8538. /// <returns></returns>
  8539. public int SubmitFormSHDHALL(string keyValue)
  8540. {
  8541. string sql = string.Empty;
  8542. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8543. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8544. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8545. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8546. foreach (var resItem in res)
  8547. {
  8548. JObject jo = (JObject)resItem;
  8549. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8550. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8551. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8552. decimal LOTQTY = minPackQty;
  8553. string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8554. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8555. string sqls = string.Empty;
  8556. string Colspan = "";
  8557. string str1 = "";
  8558. List<string> ExtensionIDList = new List<string>();
  8559. for (int i = 0; i < createPageCount; i++)
  8560. {
  8561. if (i + 1 == createPageCount)
  8562. {
  8563. if (minPackQty * createPageCount > thisCreateQty)
  8564. {
  8565. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8566. }
  8567. }
  8568. 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();
  8569. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8570. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8571. bool flag = true;
  8572. foreach (var item in ExtensionIDList)
  8573. {
  8574. if (item == Colspan + WorkPoint)
  8575. {
  8576. flag = false;
  8577. }
  8578. }
  8579. if (ExtensionID == null && flag == true)
  8580. {
  8581. str1 = Guid.NewGuid().ToString();
  8582. 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)
  8583. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8584. 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(),
  8585. MUSER, MUSERNAME, WorkPoint);
  8586. }
  8587. else if (ExtensionID != null)
  8588. {
  8589. str1 = ExtensionID.ToString();
  8590. }
  8591. ExtensionIDList.Add(Colspan + WorkPoint);
  8592. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8593. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8594. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  8595. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8596. sql += string.Format(@"
  8597. insert into ICSInventoryLot
  8598. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8599. select
  8600. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  8601. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8602. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8603. sql += "\r\n";
  8604. }
  8605. }
  8606. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8607. return count;
  8608. }
  8609. /// <summary>
  8610. /// 审核委外到货单生成条码(一键生成)
  8611. /// </summary>
  8612. /// <param name="POCode"></param>
  8613. /// <param name="PORow"></param>
  8614. /// <param name="keyValue"></param>
  8615. /// 已改
  8616. /// <returns></returns>
  8617. public int SubmitFormWWSHDHALL(string keyValue)
  8618. {
  8619. string sql = string.Empty;
  8620. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8621. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8622. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8623. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8624. foreach (var resItem in res)
  8625. {
  8626. JObject jo = (JObject)resItem;
  8627. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8628. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8629. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8630. decimal LOTQTY = minPackQty;
  8631. string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8632. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8633. string sqls = string.Empty;
  8634. string Colspan = "";
  8635. string str1 = "";
  8636. List<string> ExtensionIDList = new List<string>();
  8637. for (int i = 0; i < createPageCount; i++)
  8638. {
  8639. if (i + 1 == createPageCount)
  8640. {
  8641. if (minPackQty * createPageCount > thisCreateQty)
  8642. {
  8643. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8644. }
  8645. }
  8646. 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();
  8647. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8648. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8649. bool flag = true;
  8650. foreach (var item in ExtensionIDList)
  8651. {
  8652. if (item == Colspan + WorkPoint)
  8653. {
  8654. flag = false;
  8655. }
  8656. }
  8657. if (ExtensionID == null && flag == true)
  8658. {
  8659. str1 = Guid.NewGuid().ToString();
  8660. 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)
  8661. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8662. 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(),
  8663. MUSER, MUSERNAME, WorkPoint);
  8664. }
  8665. else if (ExtensionID != null)
  8666. {
  8667. str1 = ExtensionID.ToString();
  8668. }
  8669. ExtensionIDList.Add(Colspan + WorkPoint);
  8670. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8671. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8672. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8673. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]);
  8674. sql += string.Format(@"
  8675. insert into ICSInventoryLot
  8676. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8677. select
  8678. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  8679. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8680. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8681. sql += "\r\n";
  8682. }
  8683. }
  8684. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8685. return count;
  8686. }
  8687. /// <summary>
  8688. /// 委外收货单生成条码(一键生成)
  8689. /// </summary>
  8690. /// <param name="POCode"></param>
  8691. /// <param name="PORow"></param>
  8692. /// <param name="keyValue"></param>
  8693. /// 已改
  8694. /// <returns></returns>
  8695. public int SubmitFormWWSHALL(string keyValue)
  8696. {
  8697. string sql = string.Empty;
  8698. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8699. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8700. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8701. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8702. foreach (var resItem in res)
  8703. {
  8704. JObject jo = (JObject)resItem;
  8705. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8706. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8707. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8708. decimal LOTQTY = minPackQty;
  8709. string Pre = "KCP" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8710. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8711. string sqls = string.Empty;
  8712. string Colspan = "";
  8713. string str1 = "";
  8714. List<string> ExtensionIDList = new List<string>();
  8715. for (int i = 0; i < createPageCount; i++)
  8716. {
  8717. if (i + 1 == createPageCount)
  8718. {
  8719. if (minPackQty * createPageCount > thisCreateQty)
  8720. {
  8721. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8722. }
  8723. }
  8724. 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();
  8725. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8726. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8727. bool flag = true;
  8728. foreach (var item in ExtensionIDList)
  8729. {
  8730. if (item == Colspan + WorkPoint)
  8731. {
  8732. flag = false;
  8733. }
  8734. }
  8735. if (ExtensionID == null && flag == true)
  8736. {
  8737. str1 = Guid.NewGuid().ToString();
  8738. 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)
  8739. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8740. 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(),
  8741. MUSER, MUSERNAME, WorkPoint);
  8742. }
  8743. else if (ExtensionID != null)
  8744. {
  8745. str1 = ExtensionID.ToString();
  8746. }
  8747. ExtensionIDList.Add(Colspan + WorkPoint);
  8748. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8749. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8750. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8751. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]);
  8752. sql += string.Format(@" insert into ICSInventoryLot
  8753. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8754. select
  8755. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}'
  8756. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8757. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8758. sql += "\r\n";
  8759. }
  8760. }
  8761. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8762. return count;
  8763. }
  8764. public DataTable SelectICSColumnEnableForLotEnable()
  8765. {
  8766. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8767. string sql = @" select ColumnCode from ICSColumnEnable
  8768. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
  8769. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8770. return dt;
  8771. }
  8772. public DataTable GetLoadShowForColumn()
  8773. {
  8774. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8775. string sql = @"
  8776. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
  8777. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8778. return dt;
  8779. }
  8780. public string GetAMEnable()
  8781. {
  8782. string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
  8783. return Code;
  8784. }
  8785. public DataTable SeachMeasure()
  8786. {
  8787. DataTable dt = new DataTable();
  8788. List<DbParameter> parameter = new List<DbParameter>();
  8789. string sql = @" SELECT Top 1 a.F_ItemCode as Code
  8790. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8791. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8792. WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
  8793. return Repository().FindTableBySql(sql.ToString());
  8794. }
  8795. public DataTable SeachLableofDisable()
  8796. {
  8797. DataTable dt = new DataTable();
  8798. List<DbParameter> parameter = new List<DbParameter>();
  8799. string sql = @"
  8800. SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
  8801. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8802. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8803. WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
  8804. return Repository().FindTableBySql(sql.ToString());
  8805. }
  8806. public DataTable SeachAmountEnablebyInvCode(string InvCode)
  8807. {
  8808. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8809. DataTable dt = new DataTable();
  8810. List<DbParameter> parameter = new List<DbParameter>();
  8811. string sql = @"
  8812. select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8813. return Repository().FindTableBySql(sql.ToString());
  8814. }
  8815. public DataTable SeachDatabyInvCode(string InvCode)
  8816. {
  8817. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8818. DataTable dt = new DataTable();
  8819. List<DbParameter> parameter = new List<DbParameter>();
  8820. string sql = @"
  8821. select isnull(AmountEnable,0) as AmountEnable,
  8822. isnull(ContainerEnable,0) ContainerEnable
  8823. from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8824. return Repository().FindTableBySql(sql.ToString());
  8825. }
  8826. public string LotBindCode(String savePath, string Code, string Sequence)
  8827. {
  8828. //数据获取
  8829. try
  8830. {
  8831. int index = 1;
  8832. string msg = "";
  8833. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8834. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8835. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8836. SqlConnection conn = SqlHelper.GetDataCenterConn();
  8837. string sql = "";
  8838. int count = 0;
  8839. DataTable data = FileToExcel.ExcelToTable(savePath);
  8840. int totalNum = data.AsEnumerable().Sum(row => int.Parse(row.Field<string>("条码数量")));
  8841. string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
  8842. case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
  8843. a.ExtensionID
  8844. from ICSMO a
  8845. left join (
  8846. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  8847. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  8848. where isnull(a.EATTRIBUTE1,'')=''
  8849. group by b.TransCode,b.TransSequence
  8850. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  8851. 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}'";
  8852. sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
  8853. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
  8854. string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
  8855. string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString();
  8856. string InvCode = dd.Rows[0]["InvCode"].ToString();
  8857. decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
  8858. decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
  8859. decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
  8860. decimal SQTY = CQuantity - CLOTQTY;
  8861. if (totalNum > SQTY)
  8862. {
  8863. throw new Exception("单号: " + Code + "行号" + Sequence + " 所导入条码数量超出该单据可生成数量,该单据剩余可生成数量为" + SQTY + "!");
  8864. }
  8865. // string CodeSequence = "";
  8866. foreach (DataRow dr in data.Rows)
  8867. {
  8868. index++;
  8869. //string GUID = Guid.NewGuid().ToString();
  8870. // string Code = dr["单据号"].ToString().Trim().ToUpper();
  8871. // string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
  8872. string LotNo = dr["条码"].ToString().Trim().ToUpper();
  8873. string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
  8874. //if (CodeSequence != "" && CodeSequence != Code + Sequence)
  8875. //{
  8876. // throw new Exception("一次只能导入同一单据数据!");
  8877. //}
  8878. //else
  8879. //{
  8880. // CodeSequence = Code + Sequence;
  8881. //}
  8882. if (Code == "" || Code == null)
  8883. {
  8884. throw new Exception("第 " + index + " 行单据号不能为空!");
  8885. }
  8886. if (Sequence == "" || Sequence == null)
  8887. {
  8888. throw new Exception("第 " + index + " 行单据行号不能为空!");
  8889. }
  8890. if (LotNo == "" || LotNo == null)
  8891. {
  8892. throw new Exception("第 " + index + " 行条码不能为空!");
  8893. }
  8894. if (Quantity == "" || Quantity == null)
  8895. {
  8896. throw new Exception("第 " + index + " 行条码数量不能为空!");
  8897. }
  8898. //if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY))
  8899. //{
  8900. // decimal SQTY = CQuantity - CLOTQTY;
  8901. // throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量,该单据剩余可生成数量为"+ SQTY + "!");
  8902. //}
  8903. var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
  8904. sql += @"Insert INto ICSInventoryLot
  8905. ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
  8906. Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
  8907. ";
  8908. sql += @" Insert INto ICSInventoryLotDetail
  8909. ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  8910. Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
  8911. sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
  8912. }
  8913. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8914. if (count > 0)
  8915. {
  8916. msg = "导入成功";
  8917. }
  8918. else
  8919. {
  8920. return "无有效的导入数据。";
  8921. }
  8922. return msg;
  8923. }
  8924. catch (Exception ex)
  8925. {
  8926. return ex.Message;
  8927. }
  8928. }
  8929. /// <summary>
  8930. /// 生产退料(一键生成)
  8931. /// </summary>
  8932. public int SubmitFormGDTLALL(string keyValue)
  8933. {
  8934. string sql = string.Empty;
  8935. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8936. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8937. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8938. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8939. foreach (var item in res)
  8940. {
  8941. JObject jo = (JObject)item;
  8942. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8943. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8944. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8945. decimal LOTQTY = minPackQty;
  8946. string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8947. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8948. string sqls = string.Empty;
  8949. string Colspan = "";
  8950. string str1 = "";
  8951. List<string> ExtensionIDList = new List<string>();
  8952. for (int i = 0; i < createPageCount; i++)
  8953. {
  8954. if (i + 1 == createPageCount)
  8955. {
  8956. if (minPackQty * createPageCount > thisCreateQty)
  8957. {
  8958. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8959. }
  8960. }
  8961. 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();
  8962. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8963. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8964. bool flag = true;
  8965. foreach (var items in ExtensionIDList)
  8966. {
  8967. if (items == Colspan + WorkPoint)
  8968. {
  8969. flag = false;
  8970. }
  8971. }
  8972. if (ExtensionID == null && flag == true)
  8973. {
  8974. str1 = Guid.NewGuid().ToString();
  8975. 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)
  8976. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8977. 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(),
  8978. MUSER, MUSERNAME, WorkPoint);
  8979. }
  8980. else if (ExtensionID != null)
  8981. {
  8982. str1 = ExtensionID.ToString();
  8983. }
  8984. ExtensionIDList.Add(Colspan + WorkPoint);
  8985. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8986. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8987. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8988. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8989. sql += string.Format(@"
  8990. insert into ICSInventoryLot
  8991. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8992. select
  8993. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  8994. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8995. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8996. sql += "\r\n";
  8997. }
  8998. }
  8999. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9000. return count;
  9001. }
  9002. /// <summary>
  9003. /// 自动生成批次信息
  9004. /// </summary>
  9005. /// <param name="InvCode"></param>
  9006. /// <param name="WorkPoint"></param>
  9007. /// <returns></returns>
  9008. public DataTable GetVendorBatch()
  9009. {
  9010. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9011. string pre = "C" + DateTime.Now.ToString("yyyyMMdd");
  9012. //var queryParam = queryJson.ToJObject();
  9013. //List<DbParameter> parameter = new List<DbParameter>();
  9014. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  9015. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  9016. return Repository().FindTableBySql(sql.ToString());
  9017. }
  9018. public DataTable GetVendorBatchBYInvCode(string InvCode, string WorkPoint)
  9019. {
  9020. DataTable dt = new DataTable();
  9021. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  9022. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  9023. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  9024. string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
  9025. //var queryParam = queryJson.ToJObject();
  9026. //List<DbParameter> parameter = new List<DbParameter>();
  9027. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  9028. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  9029. return Repository().FindTableBySql(sql.ToString());
  9030. }
  9031. public DataTable GetReworkMo(string invcode, string Code, string SourceCode, ref Pagination jqgridparam)
  9032. {
  9033. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9034. List<DbParameter> parameter = new List<DbParameter>();
  9035. DataTable table = new DataTable();
  9036. string wherestr = "";
  9037. if (!string.IsNullOrEmpty(invcode))
  9038. {
  9039. wherestr += " and a.InvCode like '%" + invcode + "%'";
  9040. }
  9041. if (!string.IsNullOrEmpty(Code))
  9042. {
  9043. wherestr += " and a.MOCode like '%" + Code + "%'";
  9044. }
  9045. string sql = @"SELECT
  9046. a.ID,
  9047. a.MOCode,
  9048. a.Sequence,
  9049. a.InvCode,
  9050. a.Quantity,
  9051. a.Amount,
  9052. a.RCVQuantity,
  9053. a.DepCode,
  9054. a.WHCode,
  9055. a.StartDate,
  9056. a.DueDate,
  9057. a.MOType,
  9058. a.MOStatus,
  9059. a.MOMemo,
  9060. a.CreatePerson,
  9061. a.CreateDateTime,
  9062. a.ERPStatus,
  9063. a.MOID,
  9064. a.MODetailID,
  9065. a.ExtensionID,
  9066. a.MUSER,
  9067. a.MUSERName,
  9068. a.MTIME,
  9069. a.WorkPoint,
  9070. a.EATTRIBUTE1,
  9071. a.EATTRIBUTE2,
  9072. a.EATTRIBUTE3,
  9073. a.EATTRIBUTE4,
  9074. a.EATTRIBUTE5,
  9075. a.EATTRIBUTE6,
  9076. a.EATTRIBUTE7,
  9077. a.EATTRIBUTE8,
  9078. a.EATTRIBUTE9,
  9079. a.EATTRIBUTE10,
  9080. b.InvName,
  9081. b.InvStd,
  9082. b.InvUnit
  9083. from
  9084. dbo.ICSMO a
  9085. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9086. where a.EATTRIBUTE1='1' and a.MOStatus<>'3' and a.WorkPoint = '" + WorkPoint + "'" + wherestr;
  9087. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9088. }
  9089. //修改形态转换
  9090. public string LotReworkBind(string LotNo, string Code, string Sequence, string ExtensionID)
  9091. {
  9092. string Colspan = "";
  9093. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9094. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9095. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9096. string msg = "";
  9097. string MTDOCCode = "";
  9098. DateTime TimeNow = DateTime.Now;
  9099. string sql = string.Empty;
  9100. //修改条码绑定关系
  9101. sql += @"update dbo.ICSInventoryLotDetail set TransCode='{0}' ,TransSequence='{1}' where LotNo in({2}) and WorkPoint='{3}'";
  9102. //修改条码批次
  9103. sql += @"update dbo.ICSInventoryLot set ExtensionID='{4}' where LotNo in({2}) and WorkPoint='{3}'";
  9104. //删除条码库存
  9105. sql += @"delete dbo.ICSWareHouseLotInfo where LotNo in({2}) and WorkPoint='{3}' ";
  9106. sql = string.Format(sql, Code, Sequence, LotNo, WorkPoint, ExtensionID);
  9107. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  9108. {
  9109. msg = "";
  9110. }
  9111. else
  9112. {
  9113. msg = "条码重新绑定失败!";
  9114. }
  9115. return msg;
  9116. }
  9117. /// <summary>
  9118. /// 一键退库(咖博士新增需求:根据生产退料单,B2、C类物料可以实现一键退库操作),调用PDA上架接口
  9119. /// </summary>
  9120. /// <param name="IDs"></param>
  9121. /// <returns></returns>
  9122. public string PostInWareHouse(string IDs)
  9123. {
  9124. string Colspan = "";
  9125. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9126. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9127. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9128. string msg = "";
  9129. DateTime TimeNow = DateTime.Now;
  9130. string sql = string.Empty;
  9131. try
  9132. {
  9133. IDs = IDs.Substring(1, IDs.Length - 2);
  9134. //1.获取退料单中的B2和C类物料,检验是否全部生成条码,没有生成条码的单据需要先生成条码后一键退库
  9135. 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' ;
  9136. 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' ";
  9137. string whereSql2 = @"
  9138. 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' ";
  9139. DataTable dataTable1 = SqlHelper.CmdExecuteDataTable(whereSql1);
  9140. DataTable dataTable2 = SqlHelper.CmdExecuteDataTable(whereSql2);
  9141. if (dataTable1.Rows.Count <= 0)
  9142. {
  9143. throw new Exception("请先再自定义档案配置需要一键退库的物料信息!");
  9144. }
  9145. if (dataTable2.Rows.Count <= 0)
  9146. {
  9147. throw new Exception("请先再自定义档案配置需要一键退库的仓库库位信息!");
  9148. }
  9149. //判断是否全部生成条码
  9150. string isCreate = $@" SELECT a.ApplyNegCode,a.Sequence,a.Quantity,sum(isnull(c.Quantity,0)) as LotQuantity
  9151. FROM ICSMOApplyNegDetail a
  9152. left JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  9153. left JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  9154. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  9155. WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]}
  9156. GROUP BY a.Quantity,a.Id,a.ApplyNegCode,a.Sequence ";
  9157. DataTable isCreatedt = SqlHelper.CmdExecuteDataTable(isCreate);
  9158. if (isCreatedt.Rows.Count <= 0)
  9159. {
  9160. throw new Exception("请先确认退料单物料类别信息,然后确认自定义档案配置可以自动出库的物料信息!");
  9161. }
  9162. else
  9163. {
  9164. for (int i = 0; i < isCreatedt.Rows.Count; i++)
  9165. {
  9166. if (isCreatedt.Rows[i]["Quantity"].ToDecimal() != isCreatedt.Rows[i]["LotQuantity"].ToDecimal())
  9167. {
  9168. throw new Exception($"请先将单据:{isCreatedt.Rows[i]["ApplyNegCode"]},行号:{isCreatedt.Rows[i]["Sequence"]} ,全部生成条码!");
  9169. }
  9170. }
  9171. }
  9172. //查询需要入库的条码信息
  9173. sql = $@" SELECT a.ApplyNegCode,a.Sequence,c.LotNo,c.Quantity,c.InvCode FROM ICSMOApplyNegDetail a
  9174. INNER JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  9175. INNER JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  9176. LEFT JOIN ICSWareHouseLotInfo d ON d.LotNo=c.LotNo AND d.WorkPoint=c.WorkPoint
  9177. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  9178. WHERE
  9179. a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} AND
  9180. d.ID is null ";
  9181. //2.查询退料的条码和退料的条码数量,拼接参数,调用PDA接口
  9182. var getSql = SqlHelper.CmdExecuteDataTable(sql);
  9183. if (getSql.Rows.Count > 0)
  9184. {
  9185. List<LOTStockUpCreateIModel> models = new List<LOTStockUpCreateIModel>();
  9186. LOTStockUpCreateIModel model = new LOTStockUpCreateIModel
  9187. {
  9188. User = MUSER,
  9189. MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"),
  9190. WorkPoint = WorkPoint,
  9191. TransType = "生产退料-生产退料单"
  9192. };
  9193. model.detail = new List<LOTStockUpCreateIModelList>();
  9194. for (int i = 0; i < getSql.Rows.Count; i++)
  9195. {
  9196. LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList
  9197. {
  9198. LotNo = getSql.Rows[i]["LotNo"].ToString(),
  9199. WarehouseCode = dataTable2.Rows[0]["F_Define1"].ToString(),
  9200. LocationCode = dataTable2.Rows[0]["F_Define2"].ToString(),
  9201. TransCode = getSql.Rows[i]["ApplyNegCode"].ToString(),
  9202. TransSequence = getSql.Rows[i]["Sequence"].ToString(),
  9203. Quantity = getSql.Rows[i]["Quantity"].ToString(),
  9204. InvCode = getSql.Rows[i]["InvCode"].ToString()
  9205. };
  9206. model.detail.Add(detail);
  9207. }
  9208. models.Add(model);
  9209. var input = models.ToJson();
  9210. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create";
  9211. string result = HttpPost(APIURL, input);
  9212. Result res = result.ToObject<Result>();
  9213. if (!res.Success)
  9214. {
  9215. throw new Exception(res.Message);
  9216. }
  9217. msg = "";
  9218. }
  9219. return msg;
  9220. }
  9221. catch (Exception ex)
  9222. {
  9223. throw new Exception(ex.Message);
  9224. }
  9225. }
  9226. /// <summary>
  9227. /// 红字销售出库单生成条码列表数据
  9228. /// </summary>
  9229. /// <param name="queryJson"></param>
  9230. /// <param name="jqgridparam"></param>
  9231. /// <returns></returns>
  9232. public DataTable GetGridJsonWMSSSD(string queryJson, ref Pagination jqgridparam)
  9233. {
  9234. DataTable dt = new DataTable();
  9235. var queryParam = queryJson.ToJObject();
  9236. List<DbParameter> parameter = new List<DbParameter>();
  9237. object Figure = GetDecimalDigits();
  9238. #region [SQL]
  9239. 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,
  9240. CAST(c.LOTQTY AS DECIMAL(38,6)) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  9241. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  9242. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9243. ,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,
  9244. a.EATTRIBUTE9,a.EATTRIBUTE10,isnull(a.Quantity,'') as MPQ
  9245. from ICSSSD a
  9246. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9247. left join (
  9248. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9249. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='24'
  9250. where isnull(ee.EATTRIBUTE1,'')=''
  9251. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9252. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9253. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9254. where a.Type='2' and a.Status='1' ";
  9255. sql = string.Format(sql, Figure);
  9256. #endregion
  9257. if (!string.IsNullOrWhiteSpace(queryJson))
  9258. {
  9259. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9260. {
  9261. sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' ";
  9262. }
  9263. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  9264. {
  9265. sql += " and a.CusCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  9266. }
  9267. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  9268. {
  9269. sql += " and a.CusName like '%" + queryParam["VenName"].ToString() + "%' ";
  9270. }
  9271. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9272. {
  9273. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9274. }
  9275. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9276. {
  9277. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9278. }
  9279. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9280. {
  9281. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9282. }
  9283. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  9284. {
  9285. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  9286. }
  9287. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  9288. {
  9289. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  9290. }
  9291. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  9292. {
  9293. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  9294. }
  9295. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9296. {
  9297. string POStatus = queryParam["POStatus"].ToString();
  9298. if (POStatus == "0")
  9299. {
  9300. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9301. }
  9302. else if (POStatus == "1")
  9303. {
  9304. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  9305. }
  9306. else
  9307. {
  9308. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  9309. }
  9310. }
  9311. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  9312. {
  9313. string WHStatus = queryParam["WHStatus"].ToString();
  9314. if (WHStatus == "0")
  9315. {
  9316. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9317. }
  9318. else if (WHStatus == "1")
  9319. {
  9320. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)>0";
  9321. }
  9322. else
  9323. {
  9324. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)=0";
  9325. }
  9326. }
  9327. }
  9328. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9329. {
  9330. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9331. }
  9332. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9333. {
  9334. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9335. }
  9336. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9337. }
  9338. /// <summary>
  9339. /// 红字销售出库单生成条码
  9340. /// </summary>
  9341. /// <param name="SDNCode"></param>
  9342. /// <param name="Sequence"></param>
  9343. /// <param name="keyValue"></param>
  9344. /// <param name="WorkPoint"></param>
  9345. /// <param name="AMEnable"></param>
  9346. /// <returns></returns>
  9347. public int SubmitFormSSD(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  9348. {
  9349. var queryParam = keyValue.ToJObject();
  9350. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9351. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9352. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9353. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9354. decimal LOTQTY = minPackQty;
  9355. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9356. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  9357. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  9358. string sql = string.Empty;
  9359. //string VendorLot = queryParam["VendorLot"].ToString();
  9360. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9361. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9362. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9363. string InvCode = queryParam["ClassCode"].ToString();
  9364. string sqls = string.Empty;
  9365. string Colspan = "";
  9366. string str1 = "";
  9367. string LotNo = string.Empty;
  9368. List<string> ExtensionIDList = new List<string>();
  9369. #region 装箱的功能
  9370. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9371. string VenCode = queryParam["VenCode"].ToString();
  9372. int PackCount = 0;//每箱放的数量
  9373. int Pack_YuShu = 0;//需要平摊的数量
  9374. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9375. List<PackModel> List_Pack = new List<PackModel>();
  9376. int ZQty = 0;
  9377. if (createPackCount > 0)
  9378. {
  9379. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9380. if (Pack_YuShu == 0)
  9381. {
  9382. PackCount = (createPageCount / createPackCount);
  9383. }
  9384. else
  9385. {
  9386. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9387. }
  9388. for (int jj = 0; jj < createPackCount; jj++)
  9389. {
  9390. object CARID = Guid.NewGuid();
  9391. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9392. sql += @" INSERT INTO dbo.ICSContainer
  9393. ( ID,ContainerCode ,
  9394. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9395. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9396. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9397. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9398. PackModel PP = new PackModel();
  9399. PP.ID = CARID.ToString();
  9400. PP.PackCode = Carton;
  9401. if (jj < Pack_YuShu)
  9402. {
  9403. PP.FristBarIndex = ZQty;
  9404. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9405. }
  9406. else
  9407. {
  9408. PP.FristBarIndex = ZQty;
  9409. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9410. }
  9411. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9412. List_Pack.Add(PP);
  9413. }
  9414. }
  9415. #endregion
  9416. for (int i = 0; i < createPageCount; i++)
  9417. {
  9418. if (i + 1 == createPageCount)
  9419. {
  9420. if (minPackQty * createPageCount > thisCreateQty)
  9421. {
  9422. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9423. }
  9424. }
  9425. 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();
  9426. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9427. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9428. bool flag = true;
  9429. foreach (var item in ExtensionIDList)
  9430. {
  9431. if (item == Colspan + WorkPoint)
  9432. {
  9433. flag = false;
  9434. }
  9435. }
  9436. if (ExtensionID == null && flag == true)
  9437. {
  9438. str1 = Guid.NewGuid().ToString();
  9439. 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)
  9440. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9441. 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(),
  9442. MUSER, MUSERNAME, WorkPoints);
  9443. }
  9444. else if (ExtensionID != null)
  9445. {
  9446. str1 = ExtensionID.ToString();
  9447. }
  9448. ExtensionIDList.Add(Colspan + WorkPoint);
  9449. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9450. if (AMEnable == "true")
  9451. {
  9452. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9453. }
  9454. else
  9455. {
  9456. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9457. }
  9458. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9459. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9460. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9461. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9462. //{
  9463. sql += string.Format(@"
  9464. insert into ICSInventoryLot
  9465. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9466. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9467. select
  9468. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9469. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9470. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9471. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9472. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9473. sql += "\r\n";
  9474. //装箱的功能
  9475. if (List_Pack.Count > 0)
  9476. {
  9477. PackModel mm = new PackModel();
  9478. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9479. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9480. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9481. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9482. }
  9483. //}
  9484. }
  9485. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9486. return count;
  9487. }
  9488. /// <summary>
  9489. /// 红字销售出库单生成条码
  9490. /// </summary>
  9491. /// <param name="SDNCode"></param>
  9492. /// <param name="Sequence"></param>
  9493. /// <param name="keyValue"></param>
  9494. /// <param name="WorkPoint"></param>
  9495. /// <param name="AMEnable"></param>
  9496. /// <returns></returns>
  9497. public int SubmitFormSSDNew(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  9498. {
  9499. var queryParam = keyValue.ToJObject();
  9500. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9501. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9502. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9503. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9504. List<decimal> lotQtys = new List<decimal>();
  9505. foreach (var jLotno in jLotnos)
  9506. {
  9507. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9508. lotQtys.Add(qty);
  9509. }
  9510. int createPageCount = lotQtys.Count();
  9511. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9512. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  9513. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  9514. string sql = string.Empty;
  9515. //string VendorLot = queryParam["VendorLot"].ToString();
  9516. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9517. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9518. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9519. string InvCode = queryParam["ClassCode"].ToString();
  9520. string sqls = string.Empty;
  9521. string Colspan = "";
  9522. string str1 = "";
  9523. string LotNo = string.Empty;
  9524. List<string> ExtensionIDList = new List<string>();
  9525. #region 装箱的功能
  9526. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9527. string VenCode = queryParam["VenCode"].ToString();
  9528. int PackCount = 0;//每箱放的数量
  9529. int Pack_YuShu = 0;//需要平摊的数量
  9530. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9531. List<PackModel> List_Pack = new List<PackModel>();
  9532. int ZQty = 0;
  9533. if (createPackCount > 0)
  9534. {
  9535. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9536. if (Pack_YuShu == 0)
  9537. {
  9538. PackCount = (createPageCount / createPackCount);
  9539. }
  9540. else
  9541. {
  9542. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9543. }
  9544. for (int jj = 0; jj < createPackCount; jj++)
  9545. {
  9546. object CARID = Guid.NewGuid();
  9547. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9548. sql += @" INSERT INTO dbo.ICSContainer
  9549. ( ID,ContainerCode ,
  9550. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9551. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9552. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9553. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9554. PackModel PP = new PackModel();
  9555. PP.ID = CARID.ToString();
  9556. PP.PackCode = Carton;
  9557. if (jj < Pack_YuShu)
  9558. {
  9559. PP.FristBarIndex = ZQty;
  9560. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9561. }
  9562. else
  9563. {
  9564. PP.FristBarIndex = ZQty;
  9565. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9566. }
  9567. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9568. List_Pack.Add(PP);
  9569. }
  9570. }
  9571. #endregion
  9572. for (int i = 0; i < createPageCount; i++)
  9573. {
  9574. var LOTQTY = lotQtys[i];
  9575. 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();
  9576. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9577. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9578. bool flag = true;
  9579. foreach (var item in ExtensionIDList)
  9580. {
  9581. if (item == Colspan + WorkPoint)
  9582. {
  9583. flag = false;
  9584. }
  9585. }
  9586. if (ExtensionID == null && flag == true)
  9587. {
  9588. str1 = Guid.NewGuid().ToString();
  9589. 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)
  9590. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9591. 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(),
  9592. MUSER, MUSERNAME, WorkPoints);
  9593. }
  9594. else if (ExtensionID != null)
  9595. {
  9596. str1 = ExtensionID.ToString();
  9597. }
  9598. ExtensionIDList.Add(Colspan + WorkPoint);
  9599. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9600. if (AMEnable == "true")
  9601. {
  9602. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9603. }
  9604. else
  9605. {
  9606. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9607. }
  9608. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9609. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9610. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9611. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9612. //{
  9613. sql += string.Format(@"
  9614. insert into ICSInventoryLot
  9615. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9616. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9617. select
  9618. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9619. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9620. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9621. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9622. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9623. sql += "\r\n";
  9624. //装箱的功能
  9625. if (List_Pack.Count > 0)
  9626. {
  9627. PackModel mm = new PackModel();
  9628. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9629. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9630. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9631. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9632. }
  9633. //}
  9634. }
  9635. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9636. return count;
  9637. }
  9638. /// <summary>
  9639. /// 红字销售出库单查询
  9640. /// </summary>
  9641. /// <param name="SSDCode"></param>
  9642. /// <param name="Sequence"></param>
  9643. /// <param name="WorkPoint"></param>
  9644. /// <returns></returns>
  9645. public DataTable GetSubGridJsonSSDByCreate(string SSDCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  9646. {
  9647. DataTable dt = new DataTable();
  9648. object Figure = GetDecimalDigits();
  9649. List<DbParameter> parameter = new List<DbParameter>();
  9650. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn026', " + Quantity + ",1,3,'')";
  9651. object Num = SqlHelper.ExecuteScalar(SeachNum);
  9652. 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,
  9653. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) as thisCreateQty,
  9654. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  9655. ,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,
  9656. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  9657. from ICSSSD a
  9658. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9659. left join (
  9660. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  9661. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='24'
  9662. where isnull(a.EATTRIBUTE1,'')=''
  9663. group by b.TransCode,b.TransSequence
  9664. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence
  9665. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  9666. WHERE a.Status='1'
  9667. and a.Type='2' and a.SSDCode='" + SSDCode + "' and a.Sequence='" + Sequence + "'";
  9668. sql += " and a.WorkPoint='" + WorkPoint + "'";
  9669. sql = string.Format(sql, Figure);
  9670. return Repository().FindTableBySql(sql.ToString());
  9671. }
  9672. /// <summary>
  9673. /// 派纳 线边仓调拨申请单生成条码
  9674. /// </summary>
  9675. /// <param name="queryJson"></param>
  9676. /// <param name="jqgridparam"></param>
  9677. /// <returns></returns>
  9678. public DataTable GetGridJsonTransferApplicationPN(string queryJson, ref Pagination jqgridparam)
  9679. {
  9680. DataTable dt = new DataTable();
  9681. var queryParam = queryJson.ToJObject();
  9682. List<DbParameter> parameter = new List<DbParameter>();
  9683. object Figure = GetDecimalDigits();
  9684. #region [SQL]
  9685. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9686. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9687. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9688. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9689. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9690. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9691. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9692. ,c.LOTQTY
  9693. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9694. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9695. ,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,
  9696. a.EATTRIBUTE9,a.EATTRIBUTE10
  9697. from ICSTransferApplication a
  9698. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9699. left join (
  9700. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9701. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='201'
  9702. where isnull(ee.EATTRIBUTE1,'')=''
  9703. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9704. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9705. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9706. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9707. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9708. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9709. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9710. where 1 = 1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9711. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9712. where A.F_EnCode='WorkLineWHConfig')";
  9713. sql = string.Format(sql, Figure);
  9714. #endregion
  9715. if (!string.IsNullOrWhiteSpace(queryJson))
  9716. {
  9717. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9718. {
  9719. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9720. }
  9721. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9722. {
  9723. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9724. }
  9725. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9726. {
  9727. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9728. }
  9729. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9730. {
  9731. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9732. }
  9733. }
  9734. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9735. {
  9736. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9737. }
  9738. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9739. //{
  9740. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9741. //}
  9742. 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,
  9743. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9744. 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
  9745. where 1=1 ";
  9746. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9747. {
  9748. string POStatus = queryParam["POStatus"].ToString();
  9749. if (POStatus == "0")
  9750. {
  9751. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9752. }
  9753. else if (POStatus == "1")
  9754. {
  9755. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9756. }
  9757. else
  9758. {
  9759. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9760. }
  9761. }
  9762. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9763. }
  9764. /// <summary>
  9765. /// 派纳 线边仓一步调入单生成条码
  9766. /// </summary>
  9767. /// <param name="queryJson"></param>
  9768. /// <param name="jqgridparam"></param>
  9769. /// <returns></returns>
  9770. public DataTable GetGridJsonOneSetpTransPN(string queryJson, ref Pagination jqgridparam)
  9771. {
  9772. DataTable dt = new DataTable();
  9773. var queryParam = queryJson.ToJObject();
  9774. List<DbParameter> parameter = new List<DbParameter>();
  9775. object Figure = GetDecimalDigits();
  9776. #region [SQL]
  9777. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9778. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9779. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9780. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9781. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9782. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9783. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9784. ,c.LOTQTY
  9785. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9786. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9787. ,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,
  9788. a.EATTRIBUTE9,a.EATTRIBUTE10,isnull(a.Quantity,'') as MPQ
  9789. from ICSTransfer a
  9790. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9791. left join (
  9792. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9793. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='203'
  9794. where isnull(ee.EATTRIBUTE1,'')=''
  9795. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9796. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9797. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9798. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9799. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9800. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9801. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9802. where 1 = 1 and a.Type=1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9803. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9804. where A.F_EnCode='WorkLineWHConfig')";
  9805. sql = string.Format(sql, Figure);
  9806. #endregion
  9807. if (!string.IsNullOrWhiteSpace(queryJson))
  9808. {
  9809. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9810. {
  9811. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9812. }
  9813. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9814. {
  9815. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9816. }
  9817. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9818. {
  9819. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9820. }
  9821. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9822. {
  9823. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9824. }
  9825. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  9826. {
  9827. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  9828. }
  9829. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  9830. {
  9831. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  9832. }
  9833. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  9834. {
  9835. sql += " and a.FromWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  9836. }
  9837. }
  9838. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9839. {
  9840. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9841. }
  9842. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9843. //{
  9844. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9845. //}
  9846. 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,
  9847. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9848. 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
  9849. where 1=1 ";
  9850. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9851. {
  9852. string POStatus = queryParam["POStatus"].ToString();
  9853. if (POStatus == "0")
  9854. {
  9855. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9856. }
  9857. else if (POStatus == "1")
  9858. {
  9859. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9860. }
  9861. else
  9862. {
  9863. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9864. }
  9865. }
  9866. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9867. }
  9868. /// <summary>
  9869. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9870. /// </summary>
  9871. /// <param name="TransferNO"></param>
  9872. /// <param name="Sequence"></param>
  9873. /// <param name="keyValue"></param>
  9874. /// <param name="WorkPoint"></param>
  9875. /// <returns></returns>
  9876. public int SubmitFormTransferApplicatioPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9877. {
  9878. var queryParam = keyValue.ToJObject();
  9879. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9880. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9881. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9882. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9883. decimal LOTQTY = minPackQty;
  9884. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9885. string sql = string.Empty;
  9886. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9887. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9888. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9889. string Identification = Guid.NewGuid().ToString();
  9890. string sqls = string.Empty;
  9891. string Colspan = "";
  9892. string str1 = "";
  9893. List<string> ExtensionIDList = new List<string>();
  9894. #region 装箱的功能
  9895. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9896. string VenCode = queryParam["VenCode"].ToString();
  9897. int PackCount = 0;//每箱放的数量
  9898. int Pack_YuShu = 0;//需要平摊的数量
  9899. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9900. List<PackModel> List_Pack = new List<PackModel>();
  9901. int ZQty = 0;
  9902. if (createPackCount > 0)
  9903. {
  9904. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9905. if (Pack_YuShu == 0)
  9906. {
  9907. PackCount = (createPageCount / createPackCount);
  9908. }
  9909. else
  9910. {
  9911. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9912. }
  9913. for (int jj = 0; jj < createPackCount; jj++)
  9914. {
  9915. object CARID = Guid.NewGuid();
  9916. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9917. sql += @" INSERT INTO dbo.ICSContainer
  9918. ( ID,ContainerCode ,
  9919. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9920. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9921. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9922. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9923. PackModel PP = new PackModel();
  9924. PP.ID = CARID.ToString();
  9925. PP.PackCode = Carton;
  9926. if (jj < Pack_YuShu)
  9927. {
  9928. PP.FristBarIndex = ZQty;
  9929. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9930. }
  9931. else
  9932. {
  9933. PP.FristBarIndex = ZQty;
  9934. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9935. }
  9936. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9937. List_Pack.Add(PP);
  9938. }
  9939. }
  9940. #endregion
  9941. for (int i = 0; i < createPageCount; i++)
  9942. {
  9943. if (i + 1 == createPageCount)
  9944. {
  9945. if (minPackQty * createPageCount > thisCreateQty)
  9946. {
  9947. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9948. }
  9949. }
  9950. 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();
  9951. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9952. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9953. bool flag = true;
  9954. foreach (var item in ExtensionIDList)
  9955. {
  9956. if (item == Colspan + WorkPoint)
  9957. {
  9958. flag = false;
  9959. }
  9960. }
  9961. if (ExtensionID == null && flag == true)
  9962. {
  9963. str1 = Guid.NewGuid().ToString();
  9964. 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)
  9965. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9966. 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(),
  9967. MUSER, MUSERNAME, WorkPoints);
  9968. }
  9969. else if (ExtensionID != null)
  9970. {
  9971. str1 = ExtensionID.ToString();
  9972. }
  9973. ExtensionIDList.Add(Colspan + WorkPoint);
  9974. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9975. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9976. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9977. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9978. sql += string.Format(@"
  9979. insert into ICSInventoryLot
  9980. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9981. select
  9982. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9983. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9984. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9985. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9986. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9987. //派纳调拨申请单生成的条码需要自动入库
  9988. sql += string.Format(@"
  9989. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9990. SELECT NEWID(),a.LotNo
  9991. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9992. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9993. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9994. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9995. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9996. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9997. FROM ICSInventoryLot a
  9998. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9999. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10000. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10001. sql += string.Format(@"
  10002. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10003. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10004. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10005. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10006. MTIME,WorkPoint)
  10007. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10008. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10009. '','0','6','75','1',D.TransferID,
  10010. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10011. SYSDATETIME() ,a.WorkPoint
  10012. FROM ICSInventoryLot a
  10013. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10014. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10015. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10016. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10017. LotNo, WorkPoint, Identification);
  10018. sql += "\r\n";
  10019. //装箱的功能
  10020. if (List_Pack.Count > 0)
  10021. {
  10022. PackModel mm = new PackModel();
  10023. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10024. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10025. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10026. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10027. }
  10028. }
  10029. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10030. return count;
  10031. }
  10032. /// <summary>
  10033. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库)
  10034. /// </summary>
  10035. /// <param name="TransferNO"></param>
  10036. /// <param name="Sequence"></param>
  10037. /// <param name="keyValue"></param>
  10038. /// <param name="WorkPoint"></param>
  10039. /// <returns></returns>
  10040. public int SubmitFormOneStepTransPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  10041. {
  10042. var queryParam = keyValue.ToJObject();
  10043. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10044. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  10045. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  10046. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  10047. decimal LOTQTY = minPackQty;
  10048. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  10049. string sql = string.Empty;
  10050. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10051. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10052. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  10053. string Identification = Guid.NewGuid().ToString();
  10054. string sqls = string.Empty;
  10055. string Colspan = "";
  10056. string str1 = "";
  10057. List<string> ExtensionIDList = new List<string>();
  10058. #region 装箱的功能
  10059. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  10060. string VenCode = queryParam["VenCode"].ToString();
  10061. int PackCount = 0;//每箱放的数量
  10062. int Pack_YuShu = 0;//需要平摊的数量
  10063. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  10064. List<PackModel> List_Pack = new List<PackModel>();
  10065. int ZQty = 0;
  10066. if (createPackCount > 0)
  10067. {
  10068. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  10069. if (Pack_YuShu == 0)
  10070. {
  10071. PackCount = (createPageCount / createPackCount);
  10072. }
  10073. else
  10074. {
  10075. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  10076. }
  10077. for (int jj = 0; jj < createPackCount; jj++)
  10078. {
  10079. object CARID = Guid.NewGuid();
  10080. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  10081. sql += @" INSERT INTO dbo.ICSContainer
  10082. ( ID,ContainerCode ,
  10083. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10084. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10085. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10086. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  10087. PackModel PP = new PackModel();
  10088. PP.ID = CARID.ToString();
  10089. PP.PackCode = Carton;
  10090. if (jj < Pack_YuShu)
  10091. {
  10092. PP.FristBarIndex = ZQty;
  10093. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  10094. }
  10095. else
  10096. {
  10097. PP.FristBarIndex = ZQty;
  10098. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10099. }
  10100. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10101. List_Pack.Add(PP);
  10102. }
  10103. }
  10104. #endregion
  10105. for (int i = 0; i < createPageCount; i++)
  10106. {
  10107. if (i + 1 == createPageCount)
  10108. {
  10109. if (minPackQty * createPageCount > thisCreateQty)
  10110. {
  10111. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10112. }
  10113. }
  10114. 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();
  10115. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10116. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10117. bool flag = true;
  10118. foreach (var item in ExtensionIDList)
  10119. {
  10120. if (item == Colspan + WorkPoint)
  10121. {
  10122. flag = false;
  10123. }
  10124. }
  10125. if (ExtensionID == null && flag == true)
  10126. {
  10127. str1 = Guid.NewGuid().ToString();
  10128. 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)
  10129. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10130. 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(),
  10131. MUSER, MUSERNAME, WorkPoints);
  10132. }
  10133. else if (ExtensionID != null)
  10134. {
  10135. str1 = ExtensionID.ToString();
  10136. }
  10137. ExtensionIDList.Add(Colspan + WorkPoint);
  10138. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10139. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10140. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10141. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10142. sql += string.Format(@"
  10143. insert into ICSInventoryLot
  10144. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10145. select
  10146. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10147. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10148. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  10149. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10150. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10151. //派纳调拨申请单生成的条码需要自动入库
  10152. sql += string.Format(@"
  10153. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10154. SELECT NEWID(),a.LotNo
  10155. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10156. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10157. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10158. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10159. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10160. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10161. FROM ICSInventoryLot a
  10162. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10163. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10164. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10165. sql += string.Format(@"
  10166. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10167. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10168. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10169. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10170. MTIME,WorkPoint)
  10171. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10172. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10173. '','0','6','75','1',D.TransferID,
  10174. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10175. SYSDATETIME() ,a.WorkPoint
  10176. FROM ICSInventoryLot a
  10177. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10178. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10179. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10180. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10181. LotNo, WorkPoint, Identification);
  10182. sql += "\r\n";
  10183. //装箱的功能
  10184. if (List_Pack.Count > 0)
  10185. {
  10186. PackModel mm = new PackModel();
  10187. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10188. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10189. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10190. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10191. }
  10192. }
  10193. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10194. return count;
  10195. }
  10196. /// <summary>
  10197. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  10198. /// </summary>
  10199. /// <param name="TransferNO"></param>
  10200. /// <param name="Sequence"></param>
  10201. /// <param name="keyValue"></param>
  10202. /// <param name="WorkPoint"></param>
  10203. /// <returns></returns>
  10204. public int SubmitFormTransferApplicatioPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  10205. {
  10206. var queryParam = keyValue.ToJObject();
  10207. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10208. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  10209. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  10210. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  10211. List<decimal> lotQtys = new List<decimal>();
  10212. foreach (var jLotno in jLotnos)
  10213. {
  10214. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  10215. lotQtys.Add(qty);
  10216. }
  10217. int createPageCount = lotQtys.Count();
  10218. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  10219. string sql = string.Empty;
  10220. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10221. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10222. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  10223. string Identification = Guid.NewGuid().ToString();
  10224. string sqls = string.Empty;
  10225. string Colspan = "";
  10226. string str1 = "";
  10227. List<string> ExtensionIDList = new List<string>();
  10228. #region 装箱的功能
  10229. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  10230. string VenCode = queryParam["VenCode"].ToString();
  10231. int PackCount = 0;//每箱放的数量
  10232. int Pack_YuShu = 0;//需要平摊的数量
  10233. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  10234. List<PackModel> List_Pack = new List<PackModel>();
  10235. int ZQty = 0;
  10236. if (createPackCount > 0)
  10237. {
  10238. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  10239. if (Pack_YuShu == 0)
  10240. {
  10241. PackCount = (createPageCount / createPackCount);
  10242. }
  10243. else
  10244. {
  10245. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  10246. }
  10247. for (int jj = 0; jj < createPackCount; jj++)
  10248. {
  10249. object CARID = Guid.NewGuid();
  10250. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  10251. sql += @" INSERT INTO dbo.ICSContainer
  10252. ( ID,ContainerCode ,
  10253. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10254. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10255. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10256. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  10257. PackModel PP = new PackModel();
  10258. PP.ID = CARID.ToString();
  10259. PP.PackCode = Carton;
  10260. if (jj < Pack_YuShu)
  10261. {
  10262. PP.FristBarIndex = ZQty;
  10263. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  10264. }
  10265. else
  10266. {
  10267. PP.FristBarIndex = ZQty;
  10268. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10269. }
  10270. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10271. List_Pack.Add(PP);
  10272. }
  10273. }
  10274. #endregion
  10275. for (int i = 0; i < createPageCount; i++)
  10276. {
  10277. var LOTQTY = lotQtys[i];
  10278. 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();
  10279. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10280. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10281. bool flag = true;
  10282. foreach (var item in ExtensionIDList)
  10283. {
  10284. if (item == Colspan + WorkPoint)
  10285. {
  10286. flag = false;
  10287. }
  10288. }
  10289. if (ExtensionID == null && flag == true)
  10290. {
  10291. str1 = Guid.NewGuid().ToString();
  10292. 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)
  10293. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10294. 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(),
  10295. MUSER, MUSERNAME, WorkPoints);
  10296. }
  10297. else if (ExtensionID != null)
  10298. {
  10299. str1 = ExtensionID.ToString();
  10300. }
  10301. ExtensionIDList.Add(Colspan + WorkPoint);
  10302. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10303. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10304. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10305. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10306. sql += string.Format(@"
  10307. insert into ICSInventoryLot
  10308. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10309. select
  10310. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10311. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10312. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  10313. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10314. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10315. //派纳调拨申请单生成的条码需要自动入库
  10316. sql += string.Format(@"
  10317. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10318. SELECT NEWID(),a.LotNo
  10319. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10320. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10321. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10322. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10323. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10324. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10325. FROM ICSInventoryLot a
  10326. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10327. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10328. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10329. sql += string.Format(@"
  10330. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10331. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10332. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10333. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10334. MTIME,WorkPoint)
  10335. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10336. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10337. '','0','6','75','1',D.TransferID,
  10338. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10339. SYSDATETIME() ,a.WorkPoint
  10340. FROM ICSInventoryLot a
  10341. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10342. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10343. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10344. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10345. LotNo, WorkPoint, Identification);
  10346. sql += "\r\n";
  10347. //装箱的功能
  10348. if (List_Pack.Count > 0)
  10349. {
  10350. PackModel mm = new PackModel();
  10351. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10352. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10353. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10354. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10355. }
  10356. }
  10357. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10358. return count;
  10359. }
  10360. /// <summary>
  10361. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库---非规则生成条码)
  10362. /// </summary>
  10363. /// <param name="TransferNO"></param>
  10364. /// <param name="Sequence"></param>
  10365. /// <param name="keyValue"></param>
  10366. /// <param name="WorkPoint"></param>
  10367. /// <returns></returns>
  10368. public int SubmitFormOneStepTransferPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  10369. {
  10370. var queryParam = keyValue.ToJObject();
  10371. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10372. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  10373. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  10374. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  10375. List<decimal> lotQtys = new List<decimal>();
  10376. foreach (var jLotno in jLotnos)
  10377. {
  10378. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  10379. lotQtys.Add(qty);
  10380. }
  10381. int createPageCount = lotQtys.Count();
  10382. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  10383. string sql = string.Empty;
  10384. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10385. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10386. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  10387. string Identification = Guid.NewGuid().ToString();
  10388. string sqls = string.Empty;
  10389. string Colspan = "";
  10390. string str1 = "";
  10391. List<string> ExtensionIDList = new List<string>();
  10392. #region 装箱的功能
  10393. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  10394. string VenCode = queryParam["VenCode"].ToString();
  10395. int PackCount = 0;//每箱放的数量
  10396. int Pack_YuShu = 0;//需要平摊的数量
  10397. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  10398. List<PackModel> List_Pack = new List<PackModel>();
  10399. int ZQty = 0;
  10400. if (createPackCount > 0)
  10401. {
  10402. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  10403. if (Pack_YuShu == 0)
  10404. {
  10405. PackCount = (createPageCount / createPackCount);
  10406. }
  10407. else
  10408. {
  10409. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  10410. }
  10411. for (int jj = 0; jj < createPackCount; jj++)
  10412. {
  10413. object CARID = Guid.NewGuid();
  10414. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  10415. sql += @" INSERT INTO dbo.ICSContainer
  10416. ( ID,ContainerCode ,
  10417. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10418. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10419. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10420. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  10421. PackModel PP = new PackModel();
  10422. PP.ID = CARID.ToString();
  10423. PP.PackCode = Carton;
  10424. if (jj < Pack_YuShu)
  10425. {
  10426. PP.FristBarIndex = ZQty;
  10427. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  10428. }
  10429. else
  10430. {
  10431. PP.FristBarIndex = ZQty;
  10432. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10433. }
  10434. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10435. List_Pack.Add(PP);
  10436. }
  10437. }
  10438. #endregion
  10439. for (int i = 0; i < createPageCount; i++)
  10440. {
  10441. var LOTQTY = lotQtys[i];
  10442. 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();
  10443. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10444. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10445. bool flag = true;
  10446. foreach (var item in ExtensionIDList)
  10447. {
  10448. if (item == Colspan + WorkPoint)
  10449. {
  10450. flag = false;
  10451. }
  10452. }
  10453. if (ExtensionID == null && flag == true)
  10454. {
  10455. str1 = Guid.NewGuid().ToString();
  10456. 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)
  10457. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10458. 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(),
  10459. MUSER, MUSERNAME, WorkPoints);
  10460. }
  10461. else if (ExtensionID != null)
  10462. {
  10463. str1 = ExtensionID.ToString();
  10464. }
  10465. ExtensionIDList.Add(Colspan + WorkPoint);
  10466. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10467. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10468. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10469. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10470. sql += string.Format(@"
  10471. insert into ICSInventoryLot
  10472. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10473. select
  10474. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10475. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10476. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  10477. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10478. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10479. //派纳调拨申请单生成的条码需要自动入库
  10480. sql += string.Format(@"
  10481. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10482. SELECT NEWID(),a.LotNo
  10483. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10484. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10485. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10486. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10487. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10488. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10489. FROM ICSInventoryLot a
  10490. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10491. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10492. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10493. sql += string.Format(@"
  10494. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10495. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10496. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10497. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10498. MTIME,WorkPoint)
  10499. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10500. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10501. '','0','6','75','1',D.TransferID,
  10502. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10503. SYSDATETIME() ,a.WorkPoint
  10504. FROM ICSInventoryLot a
  10505. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10506. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10507. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10508. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10509. LotNo, WorkPoint, Identification);
  10510. sql += "\r\n";
  10511. //装箱的功能
  10512. if (List_Pack.Count > 0)
  10513. {
  10514. PackModel mm = new PackModel();
  10515. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10516. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10517. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10518. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10519. }
  10520. }
  10521. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10522. return count;
  10523. }
  10524. /// <summary>
  10525. /// 派纳 线边仓调拨申请单获取单据信息
  10526. /// </summary>
  10527. /// <param name="TransferNO"></param>
  10528. /// <param name="Sequence"></param>
  10529. /// <param name="WorkPoint"></param>
  10530. /// <returns></returns>
  10531. public DataTable GetSubGridJsonTransferApplicationByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10532. {
  10533. DataTable dt = new DataTable();
  10534. object Figure = GetDecimalDigits();
  10535. List<DbParameter> parameter = new List<DbParameter>();
  10536. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10537. , CAST ( a.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10538. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10539. , CAST ( ( a.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10540. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10541. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10542. , 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 ,
  10543. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE10 AS EATTRIBUTE6 ,'' EATTRIBUTE7 ,a.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10544. FROM ICSTransferApplication a
  10545. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10546. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10547. FROM ICSInventoryLot a
  10548. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '201'
  10549. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  10550. GROUP BY
  10551. b.TransCode,
  10552. b.TransSequence
  10553. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10554. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10555. WHERE 1 = 1
  10556. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10557. and a.WorkPoint='{WorkPoint}'";
  10558. sql = string.Format(sql, Figure);
  10559. return Repository().FindTableBySql(sql.ToString());
  10560. }
  10561. /// <summary>
  10562. /// 派纳 线边仓一步调入单获取单据信息
  10563. /// </summary>
  10564. /// <param name="TransferNO"></param>
  10565. /// <param name="Sequence"></param>
  10566. /// <param name="WorkPoint"></param>
  10567. /// <returns></returns>
  10568. public DataTable GetSubGridJsonOneSetpTransByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10569. {
  10570. DataTable dt = new DataTable();
  10571. object Figure = GetDecimalDigits();
  10572. List<DbParameter> parameter = new List<DbParameter>();
  10573. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10574. , CAST ( a.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10575. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10576. , CAST ( ( a.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10577. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10578. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10579. , 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 ,
  10580. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE6 AS EATTRIBUTE6 ,'' EATTRIBUTE7 ,a.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10581. FROM ICSTransfer a
  10582. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10583. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10584. FROM ICSInventoryLot a
  10585. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '203'
  10586. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  10587. GROUP BY
  10588. b.TransCode,
  10589. b.TransSequence
  10590. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10591. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10592. WHERE 1 = 1
  10593. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10594. and a.WorkPoint='{WorkPoint}'";
  10595. sql = string.Format(sql, Figure);
  10596. return Repository().FindTableBySql(sql.ToString());
  10597. }
  10598. public int SubmitFormCGRKALL(string keyValue)
  10599. {
  10600. string sql = string.Empty;
  10601. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10602. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10603. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10604. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10605. foreach (var item in res)
  10606. {
  10607. JObject jo = (JObject)item;
  10608. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10609. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10610. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10611. decimal LOTQTY = minPackQty;
  10612. //aa
  10613. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10614. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10615. string sqls = string.Empty;
  10616. string Colspan = "";
  10617. string str1 = "";
  10618. List<string> ExtensionIDList = new List<string>();
  10619. for (int i = 0; i < createPageCount; i++)
  10620. {
  10621. if (i + 1 == createPageCount)
  10622. {
  10623. if (minPackQty * createPageCount > thisCreateQty)
  10624. {
  10625. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10626. }
  10627. }
  10628. 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();
  10629. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10630. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10631. bool flag = true;
  10632. foreach (var items in ExtensionIDList)
  10633. {
  10634. if (items == Colspan + WorkPoint)
  10635. {
  10636. flag = false;
  10637. }
  10638. }
  10639. if (ExtensionID == null && flag == true)
  10640. {
  10641. str1 = Guid.NewGuid().ToString();
  10642. 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)
  10643. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10644. 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(),
  10645. MUSER, MUSERNAME, WorkPoint);
  10646. }
  10647. else if (ExtensionID != null)
  10648. {
  10649. str1 = ExtensionID.ToString();
  10650. }
  10651. ExtensionIDList.Add(Colspan + WorkPoint);
  10652. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10653. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10654. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10655. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10656. //aa
  10657. sql += string.Format(@"
  10658. insert into ICSInventoryLot
  10659. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10660. select
  10661. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}'
  10662. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10663. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10664. sql += "\r\n";
  10665. }
  10666. }
  10667. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10668. return count;
  10669. }
  10670. public int SubmitFormXSTHALL(string keyValue)
  10671. {
  10672. try
  10673. {
  10674. string sql = string.Empty;
  10675. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10676. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10677. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10678. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10679. foreach (var item in res)
  10680. {
  10681. JObject jo = (JObject)item;
  10682. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10683. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10684. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10685. decimal LOTQTY = minPackQty;
  10686. //aa
  10687. string Pre = "SSD" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10688. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10689. string sqls = string.Empty;
  10690. string Colspan = "";
  10691. string str1 = "";
  10692. List<string> ExtensionIDList = new List<string>();
  10693. for (int i = 0; i < createPageCount; i++)
  10694. {
  10695. if (i + 1 == createPageCount)
  10696. {
  10697. if (minPackQty * createPageCount > thisCreateQty)
  10698. {
  10699. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10700. }
  10701. }
  10702. 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();
  10703. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10704. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10705. bool flag = true;
  10706. foreach (var items in ExtensionIDList)
  10707. {
  10708. if (items == Colspan + WorkPoint)
  10709. {
  10710. flag = false;
  10711. }
  10712. }
  10713. if (ExtensionID == null && flag == true)
  10714. {
  10715. str1 = Guid.NewGuid().ToString();
  10716. 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)
  10717. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10718. 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(),
  10719. MUSER, MUSERNAME, WorkPoint);
  10720. }
  10721. else if (ExtensionID != null)
  10722. {
  10723. str1 = ExtensionID.ToString();
  10724. }
  10725. ExtensionIDList.Add(Colspan + WorkPoint);
  10726. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10727. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10728. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10729. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10730. //aa
  10731. sql += string.Format(@"
  10732. insert into ICSInventoryLot
  10733. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10734. select
  10735. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}'
  10736. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10737. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10738. sql += "\r\n";
  10739. }
  10740. }
  10741. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10742. return count;
  10743. }
  10744. catch (Exception ex)
  10745. {
  10746. throw new Exception(ex.Message);
  10747. }
  10748. }
  10749. public int SubmitFormGDCPALL(string keyValue)
  10750. {
  10751. try
  10752. {
  10753. string sql = string.Empty;
  10754. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10755. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10756. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10757. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10758. foreach (var item in res)
  10759. {
  10760. JObject jo = (JObject)item;
  10761. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10762. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10763. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10764. decimal LOTQTY = minPackQty;
  10765. string Pre = WorkPoint + jo["Code"].ToString().Remove(0, 5);
  10766. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10767. string sqls = string.Empty;
  10768. string Colspan = "";
  10769. string str1 = "";
  10770. List<string> ExtensionIDList = new List<string>();
  10771. for (int i = 0; i < createPageCount; i++)
  10772. {
  10773. if (i + 1 == createPageCount)
  10774. {
  10775. if (minPackQty * createPageCount > thisCreateQty)
  10776. {
  10777. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10778. }
  10779. }
  10780. 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();
  10781. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10782. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10783. bool flag = true;
  10784. foreach (var items in ExtensionIDList)
  10785. {
  10786. if (items == Colspan + WorkPoint)
  10787. {
  10788. flag = false;
  10789. }
  10790. }
  10791. if (ExtensionID == null && flag == true)
  10792. {
  10793. str1 = Guid.NewGuid().ToString();
  10794. 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)
  10795. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10796. 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(),
  10797. MUSER, MUSERNAME, WorkPoint);
  10798. }
  10799. else if (ExtensionID != null)
  10800. {
  10801. str1 = ExtensionID.ToString();
  10802. }
  10803. ExtensionIDList.Add(Colspan + WorkPoint);
  10804. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  10805. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10806. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10807. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10808. sql += string.Format(@"
  10809. insert into ICSInventoryLot
  10810. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10811. select
  10812. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}'
  10813. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10814. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10815. sql += "\r\n";
  10816. }
  10817. }
  10818. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10819. return count;
  10820. }
  10821. catch (Exception ex)
  10822. {
  10823. throw new Exception(ex.Message);
  10824. }
  10825. }
  10826. public int SubmitFormLLTLALL(string keyValue)
  10827. {
  10828. try
  10829. {
  10830. string sql = string.Empty;
  10831. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10832. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10833. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10834. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10835. foreach (var item in res)
  10836. {
  10837. JObject jo = (JObject)item;
  10838. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10839. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10840. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10841. decimal LOTQTY = minPackQty;
  10842. string Pre = "MA" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  10843. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10844. string sqls = string.Empty;
  10845. string Colspan = "";
  10846. string str1 = "";
  10847. List<string> ExtensionIDList = new List<string>();
  10848. for (int i = 0; i < createPageCount; i++)
  10849. {
  10850. if (i + 1 == createPageCount)
  10851. {
  10852. if (minPackQty * createPageCount > thisCreateQty)
  10853. {
  10854. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10855. }
  10856. }
  10857. 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();
  10858. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10859. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10860. bool flag = true;
  10861. foreach (var items in ExtensionIDList)
  10862. {
  10863. if (items == Colspan + WorkPoint)
  10864. {
  10865. flag = false;
  10866. }
  10867. }
  10868. if (ExtensionID == null && flag == true)
  10869. {
  10870. str1 = Guid.NewGuid().ToString();
  10871. 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)
  10872. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10873. 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(),
  10874. MUSER, MUSERNAME, WorkPoint);
  10875. }
  10876. else if (ExtensionID != null)
  10877. {
  10878. str1 = ExtensionID.ToString();
  10879. }
  10880. ExtensionIDList.Add(Colspan + WorkPoint);
  10881. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  10882. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10883. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10884. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10885. sql += string.Format(@"
  10886. insert into ICSInventoryLot
  10887. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10888. select
  10889. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}'
  10890. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10891. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10892. sql += "\r\n";
  10893. }
  10894. }
  10895. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10896. return count;
  10897. }
  10898. catch (Exception ex)
  10899. {
  10900. throw new Exception(ex.Message);
  10901. }
  10902. }
  10903. public int SubmitFormYBDBALL(string keyValue)
  10904. {
  10905. string sql = string.Empty;
  10906. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10907. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10908. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10909. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10910. string Identification = Guid.NewGuid().ToString();
  10911. foreach (var item in res)
  10912. {
  10913. JObject jo = (JObject)item;
  10914. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10915. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10916. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10917. decimal LOTQTY = minPackQty;
  10918. string Pre = "Tra" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10919. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10920. string sqls = string.Empty;
  10921. string Colspan = "";
  10922. string str1 = "";
  10923. List<string> ExtensionIDList = new List<string>();
  10924. for (int i = 0; i < createPageCount; i++)
  10925. {
  10926. if (i + 1 == createPageCount)
  10927. {
  10928. if (minPackQty * createPageCount > thisCreateQty)
  10929. {
  10930. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10931. }
  10932. }
  10933. 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();
  10934. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10935. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10936. bool flag = true;
  10937. foreach (var items in ExtensionIDList)
  10938. {
  10939. if (items == Colspan + WorkPoint)
  10940. {
  10941. flag = false;
  10942. }
  10943. }
  10944. if (ExtensionID == null && flag == true)
  10945. {
  10946. str1 = Guid.NewGuid().ToString();
  10947. 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)
  10948. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10949. 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(),
  10950. MUSER, MUSERNAME, WorkPoint);
  10951. }
  10952. else if (ExtensionID != null)
  10953. {
  10954. str1 = ExtensionID.ToString();
  10955. }
  10956. ExtensionIDList.Add(Colspan + WorkPoint);
  10957. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10958. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10959. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10960. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10961. sql += string.Format(@"
  10962. insert into ICSInventoryLot
  10963. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10964. select
  10965. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}'
  10966. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10967. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10968. //派纳调拨申请单生成的条码需要自动入库
  10969. sql += string.Format(@"
  10970. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10971. SELECT NEWID(),a.LotNo
  10972. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10973. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10974. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10975. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10976. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10977. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10978. FROM ICSInventoryLot a
  10979. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10980. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10981. LotNo, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME);
  10982. sql += string.Format(@"
  10983. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10984. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10985. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10986. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10987. MTIME,WorkPoint)
  10988. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10989. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10990. '','0','6','75','1',D.TransferID,
  10991. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10992. SYSDATETIME() ,a.WorkPoint
  10993. FROM ICSInventoryLot a
  10994. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10995. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10996. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10997. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10998. LotNo, WorkPoint, Identification);
  10999. sql += "\r\n";
  11000. }
  11001. }
  11002. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  11003. return count;
  11004. }
  11005. /// <summary>
  11006. /// 鑫隽渊委外收货单一键入库
  11007. /// </summary>
  11008. /// <param name="ID"></param>
  11009. /// <returns></returns>
  11010. public string LotStockINWW(string ID)
  11011. {
  11012. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  11013. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  11014. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  11015. string msg = "";
  11016. DateTime TimeNow = DateTime.Now;
  11017. string sql = string.Empty;
  11018. try
  11019. {
  11020. //根据传入委外入库单行ID查询需要入库的条码信息
  11021. sql = @" select A.RCVCode,A.Sequence,C.LotNo,C.Quantity,D.LotNo AS WHLot,C.InvCode from ICSOutsourcingReceive A
  11022. INNER JOIN ICSInventoryLotDetail B ON B.TransCode=A.RCVCode AND B.TransSequence=A.Sequence AND B.WorkPoint=A.WorkPoint
  11023. INNER JOIN ICSInventoryLot C ON C.LotNo=B.LotNo AND C.WorkPoint=B.WorkPoint
  11024. LEFT JOIN ICSWareHouseLotInfo D ON D.LotNo=C.LotNo AND D.WorkPoint=C.WorkPoint
  11025. where A.ID='{0}' AND D.LotNo IS NULL";
  11026. sql = string.Format(sql, ID);
  11027. var getSql = SqlHelper.CmdExecuteDataTable(sql);
  11028. if (getSql.Rows.Count > 0)
  11029. {
  11030. List<LOTStockUpCreateIModel> models = new List<LOTStockUpCreateIModel>();
  11031. LOTStockUpCreateIModel model = new LOTStockUpCreateIModel
  11032. {
  11033. User = MUSER,
  11034. MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"),
  11035. WorkPoint = WorkPoint,
  11036. TransType = "委外入库-入库单"
  11037. };
  11038. model.detail = new List<LOTStockUpCreateIModelList>();
  11039. for (int i = 0; i < getSql.Rows.Count; i++)
  11040. {
  11041. LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList
  11042. {
  11043. LotNo = getSql.Rows[i]["LotNo"].ToString(),
  11044. WarehouseCode = "03",
  11045. LocationCode = "03-999",
  11046. TransCode = getSql.Rows[i]["RCVCode"].ToString(),
  11047. TransSequence = getSql.Rows[i]["Sequence"].ToString(),
  11048. Quantity = getSql.Rows[i]["Quantity"].ToString(),
  11049. InvCode = getSql.Rows[i]["InvCode"].ToString()
  11050. };
  11051. model.detail.Add(detail);
  11052. }
  11053. models.Add(model);
  11054. var input = models.ToJson();
  11055. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create";
  11056. string result = HttpPost(APIURL, input);
  11057. Result res = result.ToObject<Result>();
  11058. if (!res.Success)
  11059. {
  11060. throw new Exception(res.Message);
  11061. }
  11062. msg = "";
  11063. }
  11064. return msg;
  11065. }
  11066. catch (Exception ex)
  11067. {
  11068. throw new Exception(ex.Message);
  11069. }
  11070. }
  11071. }
  11072. public class PackModel
  11073. {
  11074. public string ID { get; set; }
  11075. public string PackCode { get; set; }
  11076. public int FristBarIndex { get; set; }
  11077. public int LastBarIndex { get; set; }
  11078. }
  11079. }