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.

11854 lines
699 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.JHWMS
  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 ,i.ContainerCode,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. left join dbo.ICSContainerLot h on a.LotNo=h.LotNo and a.WorkPoint=h.WorkPoint
  152. left join dbo.ICSContainer i on h.ContainerID=i.ID and a.WorkPoint=i.WorkPoint
  153. WHERE isnull(a.EATTRIBUTE1,'')='' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  154. if (!string.IsNullOrWhiteSpace(isPrint))
  155. {
  156. if (isPrint == "0")
  157. {
  158. }
  159. else if (isPrint == "1")
  160. {
  161. sql += " and isnull(LastPrintUser,'')<>''";
  162. }
  163. else
  164. {
  165. sql += " and isnull(LastPrintUser,'')=''";
  166. }
  167. }
  168. sql = string.Format(sql, Figure);
  169. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  170. }
  171. /// <summary>
  172. /// 点击生成条码
  173. /// </summary>
  174. public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  175. {
  176. DataTable dt = new DataTable();
  177. object Figure = GetDecimalDigits();
  178. List<DbParameter> parameter = new List<DbParameter>();
  179. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn017', " + Quantity + ",1,2,'')";
  180. object Num = SqlHelper.ExecuteScalar(SeachNum);
  181. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  182. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty ,
  183. CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  184. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ,
  185. 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,
  186. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  187. from ICSMOApplyNegDetail a
  188. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  189. left join (
  190. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  191. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='1'
  192. where isnull(a.EATTRIBUTE1,'')=''
  193. group by b.TransCode,b.TransSequence
  194. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  195. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  196. WHERE 1 =1
  197. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  198. sql += " and a.WorkPoint='" + WorkPoint + "'";
  199. sql = string.Format(sql, Figure);
  200. return Repository().FindTableBySql(sql.ToString());
  201. }
  202. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  203. {
  204. DataTable dt = new DataTable();
  205. //var queryParam = queryJson.ToJObject();
  206. List<DbParameter> parameter = new List<DbParameter>();
  207. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  208. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  209. return Repository().FindTableBySql(sql.ToString());
  210. }
  211. /// <summary>
  212. /// 生产退料生成条码
  213. /// </summary>
  214. /// <param name="POCode"></param>
  215. /// <param name="PORow"></param>
  216. /// <param name="keyValue"></param>
  217. /// 已改
  218. /// <returns></returns>
  219. public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  220. {
  221. var queryParam = keyValue.ToJObject();
  222. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  223. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  224. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  225. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  226. decimal LOTQTY = minPackQty;
  227. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  228. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  229. string Pre = "MDN" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  230. string sql = string.Empty;
  231. //string VendorLot = queryParam["VendorLot"].ToString();
  232. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  233. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  234. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  235. string InvCode = queryParam["ClassCode"].ToString();
  236. string Colspan = "";
  237. string sqls = string.Empty;
  238. string LotNo = string.Empty;
  239. string str1 = "";
  240. List<string> ExtensionIDList = new List<string>();
  241. #region 装箱的功能
  242. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  243. string VenCode = queryParam["VenCode"].ToString();
  244. int PackCount = 0;//每箱放的数量
  245. int Pack_YuShu = 0;//需要平摊的数量
  246. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  247. List<PackModel> List_Pack = new List<PackModel>();
  248. int ZQty = 0;
  249. if (createPackCount > 0)
  250. {
  251. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  252. if (Pack_YuShu == 0)
  253. {
  254. PackCount = (createPageCount / createPackCount);
  255. }
  256. else
  257. {
  258. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  259. }
  260. for (int jj = 0; jj < createPackCount; jj++)
  261. {
  262. object CARID = Guid.NewGuid();
  263. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  264. sql += @" INSERT INTO dbo.ICSContainer
  265. ( ID,ContainerCode ,
  266. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  267. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  268. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  269. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  270. PackModel PP = new PackModel();
  271. PP.ID = CARID.ToString();
  272. PP.PackCode = Carton;
  273. if (jj < Pack_YuShu)
  274. {
  275. PP.FristBarIndex = ZQty;
  276. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  277. }
  278. else
  279. {
  280. PP.FristBarIndex = ZQty;
  281. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  282. }
  283. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  284. List_Pack.Add(PP);
  285. }
  286. }
  287. #endregion
  288. for (int i = 0; i < createPageCount; i++)
  289. {
  290. if (i + 1 == createPageCount)
  291. {
  292. if (minPackQty * createPageCount > thisCreateQty)
  293. {
  294. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  295. }
  296. }
  297. 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();
  298. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  299. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  300. bool flag = true;
  301. foreach (var item in ExtensionIDList)
  302. {
  303. if (item == Colspan + WorkPoint)
  304. {
  305. flag = false;
  306. }
  307. }
  308. if (ExtensionID == null && flag == true)
  309. {
  310. str1 = Guid.NewGuid().ToString();
  311. 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)
  312. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  313. 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(),
  314. MUSER, MUSERNAME, WorkPoints);
  315. }
  316. else if (ExtensionID != null)
  317. {
  318. str1 = ExtensionID.ToString();
  319. }
  320. ExtensionIDList.Add(Colspan + WorkPoint);
  321. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  322. if (AMEnable == "true")
  323. {
  324. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  325. }
  326. else
  327. {
  328. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  329. }
  330. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  331. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  332. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  333. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  334. //{
  335. sql += string.Format(@"insert into ICSInventoryLot
  336. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  337. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  338. select
  339. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  340. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  341. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  342. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  343. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  344. sql += "\r\n";
  345. //装箱的功能
  346. if (List_Pack.Count > 0)
  347. {
  348. PackModel mm = new PackModel();
  349. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  350. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  351. ( ID ,ContainerID ,LotNo ,
  352. MUSER ,MUSERName ,MTIME ,WorkPoint )
  353. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  354. }
  355. //}
  356. }
  357. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  358. return count;
  359. }
  360. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  361. {
  362. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  363. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  364. //return Repository().FindTableBySql(sql.ToString());
  365. return SqlHelper.ExecuteScalar(sql).ToString();
  366. //return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  367. }
  368. /// <summary>
  369. /// 删除条码
  370. /// </summary>
  371. /// <param name="keyValue"></param>
  372. /// <returns></returns>
  373. public string DeleteItemLot(string keyValue)
  374. {
  375. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  376. string msg = string.Empty;
  377. string sql = string.Format(@"select Type from ICSInventoryLot
  378. where ID in ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  379. DataTable lotdt = SqlHelper.GetDataTableBySql(sql);
  380. if (lotdt.Rows[0]["Type"].ToString() == "203")
  381. {
  382. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  383. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')
  384. and WarehouseCode not in (select B.F_ItemCode from Sys_SRM_Items A
  385. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId = A.F_Id
  386. where A.F_EnCode = 'WorkLineWHConfig')", keyValue.TrimEnd(','), WorkPoint);
  387. lotdt = SqlHelper.GetDataTableBySql(sql);
  388. if (lotdt.Rows.Count > 0)
  389. {
  390. msg = "所选条码中已有条码调拨到其他仓库,无法删除!";
  391. }
  392. else
  393. {
  394. if (string.IsNullOrEmpty(msg))
  395. {
  396. 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);
  397. sqls += string.Format("DELETE FROM ICSInventoryLotDetail WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  398. 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);//删除箱子 条码对应关系
  399. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  400. SqlHelper.CmdExecuteNonQueryLi(sqls);
  401. }
  402. }
  403. }
  404. else
  405. {
  406. sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  407. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  408. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  409. if (dtASN != null && dtASN.Rows.Count > 0)
  410. {
  411. msg = "所选条码已生成检验单,无法删除!";
  412. }
  413. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  414. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  415. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  416. if (dtCarton != null && dtCarton.Rows.Count > 0)
  417. {
  418. msg += "所选条码已入库,无法删除!";
  419. }
  420. if (string.IsNullOrEmpty(msg))
  421. {
  422. 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);
  423. 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);//删除箱子 条码对应关系
  424. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  425. SqlHelper.CmdExecuteNonQueryLi(sqls);
  426. }
  427. }
  428. return msg;
  429. }
  430. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  431. {
  432. DataTable dt = new DataTable();
  433. var queryParam = queryJson.ToJObject();
  434. List<DbParameter> parameter = new List<DbParameter>();
  435. object Figure = GetDecimalDigits();
  436. #region [SQL]
  437. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  438. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  439. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
  440. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  441. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  442. ,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,
  443. a.EATTRIBUTE9,a.EATTRIBUTE10,b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  444. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10
  445. from ICSOApplyNegDetail a
  446. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  447. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  448. left join (
  449. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  450. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  451. where isnull(ee.EATTRIBUTE1,'')=''
  452. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  453. )c
  454. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  455. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  456. WHERE d.Type='1' ";
  457. sql = string.Format(sql, Figure);
  458. #endregion
  459. if (!string.IsNullOrWhiteSpace(queryJson))
  460. {
  461. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  462. {
  463. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  464. }
  465. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  466. {
  467. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  468. }
  469. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  470. {
  471. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  472. }
  473. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  474. {
  475. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  476. }
  477. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  478. {
  479. sql += " and d.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  480. }
  481. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  482. {
  483. sql += " and d.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  484. }
  485. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  486. {
  487. sql += " and d.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  488. }
  489. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  490. {
  491. string POStatus = queryParam["POStatus"].ToString();
  492. if (POStatus == "0")
  493. {
  494. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  495. }
  496. else if (POStatus == "1")
  497. {
  498. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  499. }
  500. else
  501. {
  502. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  503. }
  504. }
  505. }
  506. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  507. {
  508. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  509. }
  510. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  511. {
  512. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  513. }
  514. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  515. }
  516. public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
  517. {
  518. DataTable dt = new DataTable();
  519. object Figure = GetDecimalDigits();
  520. //var queryParam = queryJson.ToJObject();
  521. List<DbParameter> parameter = new List<DbParameter>();
  522. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  523. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity from ICSInventoryLot a
  524. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  525. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  526. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  527. WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
  528. sql = string.Format(sql, Figure);
  529. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  530. }
  531. /// <summary>
  532. /// 点击委外退料生成条码
  533. /// </summary>
  534. public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  535. {
  536. DataTable dt = new DataTable();
  537. object Figure = GetDecimalDigits();
  538. List<DbParameter> parameter = new List<DbParameter>();
  539. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn008', " + Quantity + ",1,2,'')";
  540. object Num = SqlHelper.ExecuteScalar(SeachNum);
  541. string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  542. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  543. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  544. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  545. ,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,
  546. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  547. from ICSOApplyNegDetail a
  548. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  549. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  550. left join (
  551. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  552. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='2'
  553. where isnull(a.EATTRIBUTE1,'')=''
  554. group by b.TransCode,b.TransSequence
  555. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  556. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  557. WHERE d.Type='1'
  558. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  559. sql += " and a.WorkPoint='" + WorkPoint + "'";
  560. sql = string.Format(sql, Figure);
  561. return Repository().FindTableBySql(sql.ToString());
  562. }
  563. /// <summary>
  564. /// 委外退料生成条码
  565. /// </summary>
  566. /// <param name="POCode"></param>
  567. /// <param name="PORow"></param>
  568. /// <param name="keyValue"></param>
  569. /// 已改
  570. /// <returns></returns>
  571. public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  572. {
  573. var queryParam = keyValue.ToJObject();
  574. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  575. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  576. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  577. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  578. decimal LOTQTY = minPackQty;
  579. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  580. string sql = string.Empty;
  581. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  582. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  583. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  584. string sqls = string.Empty;
  585. string Colspan = "";
  586. List<string> ExtensionIDList = new List<string>();
  587. string str1 = "";
  588. #region 装箱的功能
  589. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  590. string VenCode = queryParam["VenCode"].ToString();
  591. int PackCount = 0;//每箱放的数量
  592. int Pack_YuShu = 0;//需要平摊的数量
  593. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  594. List<PackModel> List_Pack = new List<PackModel>();
  595. int ZQty = 0;
  596. if (createPackCount > 0)
  597. {
  598. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  599. if (Pack_YuShu == 0)
  600. {
  601. PackCount = (createPageCount / createPackCount);
  602. }
  603. else
  604. {
  605. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  606. }
  607. for (int jj = 0; jj < createPackCount; jj++)
  608. {
  609. object CARID = Guid.NewGuid();
  610. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  611. sql += @" INSERT INTO dbo.ICSContainer
  612. ( ID,ContainerCode ,
  613. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  614. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  615. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  616. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  617. PackModel PP = new PackModel();
  618. PP.ID = CARID.ToString();
  619. PP.PackCode = Carton;
  620. if (jj < Pack_YuShu)
  621. {
  622. PP.FristBarIndex = ZQty;
  623. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  624. }
  625. else
  626. {
  627. PP.FristBarIndex = ZQty;
  628. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  629. }
  630. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  631. List_Pack.Add(PP);
  632. }
  633. }
  634. #endregion
  635. for (int i = 0; i < createPageCount; i++)
  636. {
  637. if (i + 1 == createPageCount)
  638. {
  639. if (minPackQty * createPageCount > thisCreateQty)
  640. {
  641. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  642. }
  643. }
  644. 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();
  645. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  646. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  647. bool flag = true;
  648. foreach (var item in ExtensionIDList)
  649. {
  650. if (item == Colspan + WorkPoint)
  651. {
  652. flag = false;
  653. }
  654. }
  655. if (ExtensionID == null && flag == true)
  656. {
  657. str1 = Guid.NewGuid().ToString();
  658. 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)
  659. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  660. 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(),
  661. MUSER, MUSERNAME, WorkPoints);
  662. }
  663. else if (ExtensionID != null)
  664. {
  665. str1 = ExtensionID.ToString();
  666. }
  667. ExtensionIDList.Add(Colspan + WorkPoint);
  668. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  669. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  670. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  671. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  672. sql += string.Format(@"insert into ICSInventoryLot
  673. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  674. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  675. select
  676. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  677. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  678. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  679. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  680. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  681. sql += "\r\n";
  682. //装箱的功能
  683. if (List_Pack.Count > 0)
  684. {
  685. PackModel mm = new PackModel();
  686. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  687. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  688. ( ID ,ContainerID ,LotNo ,
  689. MUSER ,MUSERName ,MTIME ,WorkPoint )
  690. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  691. }
  692. }
  693. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  694. return count;
  695. }
  696. /// <summary>
  697. /// 委外退料生成条码
  698. /// </summary>
  699. /// <param name="POCode"></param>
  700. /// <param name="PORow"></param>
  701. /// <param name="keyValue"></param>
  702. /// 已改
  703. /// <returns></returns>
  704. public int SubmitFormWeiWaiNew(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  705. {
  706. var queryParam = keyValue.ToJObject();
  707. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  708. // decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  709. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  710. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  711. List<decimal> lotQtys = new List<decimal>();
  712. foreach (var jLotno in jLotnos)
  713. {
  714. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  715. lotQtys.Add(qty);
  716. }
  717. int createPageCount = lotQtys.Count();
  718. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  719. string sql = string.Empty;
  720. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  721. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  722. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  723. string sqls = string.Empty;
  724. string Colspan = "";
  725. List<string> ExtensionIDList = new List<string>();
  726. string str1 = "";
  727. #region 装箱的功能
  728. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  729. string VenCode = queryParam["VenCode"].ToString();
  730. int PackCount = 0;//每箱放的数量
  731. int Pack_YuShu = 0;//需要平摊的数量
  732. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  733. List<PackModel> List_Pack = new List<PackModel>();
  734. int ZQty = 0;
  735. if (createPackCount > 0)
  736. {
  737. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  738. if (Pack_YuShu == 0)
  739. {
  740. PackCount = (createPageCount / createPackCount);
  741. }
  742. else
  743. {
  744. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  745. }
  746. for (int jj = 0; jj < createPackCount; jj++)
  747. {
  748. object CARID = Guid.NewGuid();
  749. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  750. sql += @" INSERT INTO dbo.ICSContainer
  751. ( ID,ContainerCode ,
  752. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  753. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  754. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  755. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  756. PackModel PP = new PackModel();
  757. PP.ID = CARID.ToString();
  758. PP.PackCode = Carton;
  759. if (jj < Pack_YuShu)
  760. {
  761. PP.FristBarIndex = ZQty;
  762. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  763. }
  764. else
  765. {
  766. PP.FristBarIndex = ZQty;
  767. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  768. }
  769. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  770. List_Pack.Add(PP);
  771. }
  772. }
  773. #endregion
  774. for (int i = 0; i < createPageCount; i++)
  775. {
  776. decimal LOTQTY = lotQtys[i];
  777. 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();
  778. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  779. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  780. bool flag = true;
  781. foreach (var item in ExtensionIDList)
  782. {
  783. if (item == Colspan + WorkPoint)
  784. {
  785. flag = false;
  786. }
  787. }
  788. if (ExtensionID == null && flag == true)
  789. {
  790. str1 = Guid.NewGuid().ToString();
  791. 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)
  792. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  793. 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(),
  794. MUSER, MUSERNAME, WorkPoints);
  795. }
  796. else if (ExtensionID != null)
  797. {
  798. str1 = ExtensionID.ToString();
  799. }
  800. ExtensionIDList.Add(Colspan + WorkPoint);
  801. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  802. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  803. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  804. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  805. sql += string.Format(@"insert into ICSInventoryLot
  806. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  807. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE13)
  808. select
  809. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}'
  810. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  811. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  812. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  813. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString(), queryParam["EATTRIBUTE13"].ToString());
  814. sql += "\r\n";
  815. //装箱的功能
  816. if (List_Pack.Count > 0)
  817. {
  818. PackModel mm = new PackModel();
  819. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  820. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  821. ( ID ,ContainerID ,LotNo ,
  822. MUSER ,MUSERName ,MTIME ,WorkPoint )
  823. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  824. }
  825. }
  826. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  827. return count;
  828. }
  829. public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
  830. {
  831. DataTable dt = new DataTable();
  832. var queryParam = queryJson.ToJObject();
  833. List<DbParameter> parameter = new List<DbParameter>();
  834. object Figure = GetDecimalDigits();
  835. #region [SQL]
  836. string sql = @" select distinct a.ID, a.MODetailID,a.MOCode,a.Sequence,
  837. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  838. 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
  839. ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays ,
  840. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  841. 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
  842. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  843. ,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,
  844. a.EATTRIBUTE9,a.EATTRIBUTE10,a.EATTRIBUTE11,a.EATTRIBUTE12,b.MTIME as TMTime,dep.DepName,a.CreateDateTime,b.EATTRIBUTE9 as CustInvCode,
  845. b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  846. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10,
  847. isnull(a.Quantity,'') as MPQ
  848. from ICSMO a
  849. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  850. left join (
  851. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  852. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  853. where isnull(ee.EATTRIBUTE1,'')=''
  854. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  855. )c
  856. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  857. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  858. left join ICSDepartment dep ON dep.DepCode=a.DepCode and a.WorkPoint=dep.WorkPoint
  859. left join ICSWarehouse warehouse on a.WHCode=warehouse.WarehouseCode and a.WorkPoint=warehouse.WorkPoint ";
  860. sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  861. sql = string.Format(sql, Figure);
  862. #endregion
  863. if (!string.IsNullOrWhiteSpace(queryJson))
  864. {
  865. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  866. {
  867. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  868. }
  869. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  870. {
  871. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  872. }
  873. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  874. {
  875. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  876. }
  877. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  878. {
  879. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  880. }
  881. if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString()))
  882. {
  883. sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' ";
  884. }
  885. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  886. {
  887. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  888. }
  889. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  890. {
  891. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  892. }
  893. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  894. {
  895. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  896. }
  897. if (!string.IsNullOrWhiteSpace(queryParam["VenInvCode"].ToString()))
  898. {
  899. sql += " and a.EATTRIBUTE5 like '%" + queryParam["VenInvCode"].ToString() + "%' ";
  900. }
  901. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  902. {
  903. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  904. }
  905. if (!string.IsNullOrWhiteSpace(queryParam["ClassGroup"].ToString()))
  906. {
  907. sql += " and a.EATTRIBUTE12 = '" + queryParam["ClassGroup"].ToString() + "' ";
  908. }
  909. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  910. {
  911. string POStatus = queryParam["POStatus"].ToString();
  912. if (POStatus == "0")
  913. {
  914. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  915. }
  916. else if (POStatus == "1")
  917. {
  918. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  919. }
  920. else
  921. {
  922. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0";
  923. }
  924. }
  925. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  926. {
  927. string WHStatus = queryParam["WHStatus"].ToString();
  928. if (WHStatus == "0")
  929. {
  930. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  931. }
  932. else if (WHStatus == "1")
  933. {
  934. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  935. }
  936. else
  937. {
  938. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  939. }
  940. }
  941. }
  942. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  943. {
  944. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  945. }
  946. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  947. {
  948. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  949. }
  950. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  951. }
  952. /// <summary>
  953. /// 点击成品生成条码(成品)
  954. /// </summary>
  955. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  956. {
  957. DataTable dt = new DataTable();
  958. object Figure = GetDecimalDigits();
  959. List<DbParameter> parameter = new List<DbParameter>();
  960. // 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,
  961. //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
  962. // ,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
  963. // from ICSMO a
  964. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  965. // left join (
  966. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  967. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  968. // where isnull(a.EATTRIBUTE1,'')=''
  969. // group by b.TransCode,b.TransSequence
  970. // ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  971. // left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  972. // left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  973. // WHERE 1 =1 and a.MOStatus<>'3'
  974. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn011', " + Quantity + ",1,2,'')";
  975. object Num = SqlHelper.ExecuteScalar(SeachNum);
  976. string sql = @" select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit,
  977. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  978. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  979. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  980. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  981. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  982. ,e.ProjectCode,E.BatchCode AS BatchCode
  983. ,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  984. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,a.EATTRIBUTE3 AS EATTRIBUTE6 ,b.EATTRIBUTE7 AS EATTRIBUTE7 ,b.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  985. from ICSMO a
  986. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  987. left join (
  988. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  989. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  990. where isnull(a.EATTRIBUTE1,'')=''
  991. group by b.TransCode,b.TransSequence
  992. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  993. left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  994. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  995. WHERE 1 =1 and a.MOStatus<>'3'
  996. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  997. sql += " and a.WorkPoint='" + WorkPoint + "'";
  998. sql = string.Format(sql, Figure);
  999. return Repository().FindTableBySql(sql.ToString());
  1000. }
  1001. /// <summary>
  1002. /// 成品生成条码
  1003. /// </summary>
  1004. /// <param name="POCode"></param>
  1005. /// <param name="PORow"></param>
  1006. /// <param name="keyValue"></param>
  1007. /// 已改
  1008. /// <returns></returns>
  1009. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1010. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1011. {
  1012. var queryParam = keyValue.ToJObject();
  1013. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1014. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1015. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1016. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1017. decimal LOTQTY = minPackQty;
  1018. string InvCode = queryParam["ClassCode"].ToString();
  1019. string InvCodeLP = queryParam["InvCode"].ToString();
  1020. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1021. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1022. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1023. string Pre = WorkPoints + MOCode.Remove(0, 5);
  1024. string sql = string.Empty;
  1025. //string VendorLot = queryParam["VendorLot"].ToString();
  1026. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1027. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1028. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1029. string sqls = string.Empty;
  1030. string Colspan = "";
  1031. string str1 = "";
  1032. string LotNo = string.Empty;
  1033. List<string> ExtensionIDList = new List<string>();
  1034. #region 装箱的功能
  1035. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1036. string VenCode = queryParam["VenCode"].ToString();
  1037. int PackCount = 0;//每箱放的数量
  1038. int Pack_YuShu = 0;//需要平摊的数量
  1039. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1040. List<PackModel> List_Pack = new List<PackModel>();
  1041. int ZQty = 0;
  1042. if (createPackCount > 0)
  1043. {
  1044. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1045. if (Pack_YuShu == 0)
  1046. {
  1047. PackCount = (createPageCount / createPackCount);
  1048. }
  1049. else
  1050. {
  1051. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1052. }
  1053. for (int jj = 0; jj < createPackCount; jj++)
  1054. {
  1055. object CARID = Guid.NewGuid();
  1056. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1057. sql += @" INSERT INTO dbo.ICSContainer
  1058. ( ID,ContainerCode ,
  1059. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1060. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1061. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1062. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1063. PackModel PP = new PackModel();
  1064. PP.ID = CARID.ToString();
  1065. PP.PackCode = Carton;
  1066. if (jj < Pack_YuShu)
  1067. {
  1068. PP.FristBarIndex = ZQty;
  1069. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1070. }
  1071. else
  1072. {
  1073. PP.FristBarIndex = ZQty;
  1074. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1075. }
  1076. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1077. List_Pack.Add(PP);
  1078. }
  1079. }
  1080. #endregion
  1081. for (int i = 0; i < createPageCount; i++)
  1082. {
  1083. if (i + 1 == createPageCount)
  1084. {
  1085. if (minPackQty * createPageCount > thisCreateQty)
  1086. {
  1087. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1088. }
  1089. }
  1090. 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();
  1091. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1092. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1093. bool flag = true;
  1094. foreach (var item in ExtensionIDList)
  1095. {
  1096. if (item == Colspan + WorkPoint)
  1097. {
  1098. flag = false;
  1099. }
  1100. }
  1101. if (ExtensionID == null && flag == true)
  1102. {
  1103. str1 = Guid.NewGuid().ToString();
  1104. 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)
  1105. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1106. 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(),
  1107. MUSER, MUSERNAME, WorkPoints);
  1108. }
  1109. else if (ExtensionID != null)
  1110. {
  1111. str1 = ExtensionID.ToString();
  1112. }
  1113. ExtensionIDList.Add(Colspan + WorkPoint);
  1114. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1115. //if (AMEnable == "true")
  1116. //{
  1117. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1118. //}vvv
  1119. //else
  1120. //{
  1121. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  1122. //}
  1123. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1124. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1125. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1126. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1127. //{
  1128. sql += string.Format(@"insert into ICSInventoryLot
  1129. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1130. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1131. select
  1132. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1133. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1134. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1135. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1136. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1137. sql += "\r\n";
  1138. //装箱的功能
  1139. if (List_Pack.Count > 0)
  1140. {
  1141. PackModel mm = new PackModel();
  1142. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1143. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1144. ( ID ,ContainerID ,LotNo ,
  1145. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1146. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1147. }
  1148. //}
  1149. }
  1150. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1151. return count;
  1152. }
  1153. /// <summary>
  1154. /// 成品生成条码
  1155. /// </summary>
  1156. /// <param name="POCode"></param>
  1157. /// <param name="PORow"></param>
  1158. /// <param name="keyValue"></param>
  1159. /// 已改
  1160. /// <returns></returns>
  1161. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1162. public int SubmitFormChengPingNew(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1163. {
  1164. var queryParam = keyValue.ToJObject();
  1165. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1166. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1167. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1168. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1169. List<decimal> lotQtys = new List<decimal>();
  1170. foreach (var jLotno in jLotnos)
  1171. {
  1172. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1173. lotQtys.Add(qty);
  1174. }
  1175. int createPageCount = lotQtys.Count();
  1176. string InvCode = queryParam["ClassCode"].ToString();
  1177. string InvCodeLP = queryParam["InvCode"].ToString();
  1178. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1179. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1180. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1181. string Pre = WorkPoints + MOCode.Remove(0, 5);
  1182. string sql = string.Empty;
  1183. //string VendorLot = queryParam["VendorLot"].ToString();
  1184. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1185. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1186. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1187. string sqls = string.Empty;
  1188. string Colspan = "";
  1189. string str1 = "";
  1190. string LotNo = string.Empty;
  1191. List<string> ExtensionIDList = new List<string>();
  1192. #region 装箱的功能
  1193. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1194. string VenCode = queryParam["VenCode"].ToString();
  1195. int PackCount = 0;//每箱放的数量
  1196. int Pack_YuShu = 0;//需要平摊的数量
  1197. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1198. List<PackModel> List_Pack = new List<PackModel>();
  1199. int ZQty = 0;
  1200. if (createPackCount > 0)
  1201. {
  1202. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1203. if (Pack_YuShu == 0)
  1204. {
  1205. PackCount = (createPageCount / createPackCount);
  1206. }
  1207. else
  1208. {
  1209. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1210. }
  1211. for (int jj = 0; jj < createPackCount; jj++)
  1212. {
  1213. object CARID = Guid.NewGuid();
  1214. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1215. sql += @" INSERT INTO dbo.ICSContainer
  1216. ( ID,ContainerCode ,
  1217. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1218. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1219. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1220. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1221. PackModel PP = new PackModel();
  1222. PP.ID = CARID.ToString();
  1223. PP.PackCode = Carton;
  1224. if (jj < Pack_YuShu)
  1225. {
  1226. PP.FristBarIndex = ZQty;
  1227. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1228. }
  1229. else
  1230. {
  1231. PP.FristBarIndex = ZQty;
  1232. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1233. }
  1234. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1235. List_Pack.Add(PP);
  1236. }
  1237. }
  1238. #endregion
  1239. for (int i = 0; i < createPageCount; i++)
  1240. {
  1241. var LOTQTY = lotQtys[i];
  1242. 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();
  1243. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1244. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1245. bool flag = true;
  1246. foreach (var item in ExtensionIDList)
  1247. {
  1248. if (item == Colspan + WorkPoint)
  1249. {
  1250. flag = false;
  1251. }
  1252. }
  1253. if (ExtensionID == null && flag == true)
  1254. {
  1255. str1 = Guid.NewGuid().ToString();
  1256. 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)
  1257. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1258. 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(),
  1259. MUSER, MUSERNAME, WorkPoints);
  1260. }
  1261. else if (ExtensionID != null)
  1262. {
  1263. str1 = ExtensionID.ToString();
  1264. }
  1265. ExtensionIDList.Add(Colspan + WorkPoint);
  1266. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1267. //if (AMEnable == "true")
  1268. //{
  1269. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1270. //}vvv
  1271. //else
  1272. //{
  1273. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  1274. //}
  1275. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1276. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1277. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1278. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1279. //{
  1280. sql += string.Format(@"insert into ICSInventoryLot
  1281. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1282. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1283. select
  1284. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1285. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1286. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1287. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1288. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1289. sql += "\r\n";
  1290. //装箱的功能
  1291. if (List_Pack.Count > 0)
  1292. {
  1293. PackModel mm = new PackModel();
  1294. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1295. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1296. ( ID ,ContainerID ,LotNo ,
  1297. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1298. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1299. }
  1300. //}
  1301. }
  1302. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1303. return count;
  1304. }
  1305. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  1306. {
  1307. DataTable dt = new DataTable();
  1308. var queryParam = queryJson.ToJObject();
  1309. List<DbParameter> parameter = new List<DbParameter>();
  1310. object Figure = GetDecimalDigits();
  1311. #region [SQL]
  1312. 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
  1313. ,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
  1314. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1315. ,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,
  1316. a.EATTRIBUTE9,a.EATTRIBUTE10,b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  1317. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10
  1318. from ICSSDN a
  1319. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1320. left join (
  1321. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1322. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  1323. where isnull(ee.EATTRIBUTE1,'')=''
  1324. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1325. )c
  1326. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1327. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1328. --left join ICSDepartment dep ON dep.DepCode=a.[Detp]
  1329. where a.Type='2'";
  1330. sql = string.Format(sql, Figure);
  1331. #endregion
  1332. if (!string.IsNullOrWhiteSpace(queryJson))
  1333. {
  1334. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1335. {
  1336. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1337. }
  1338. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1339. {
  1340. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1341. }
  1342. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1343. {
  1344. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1345. }
  1346. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1347. {
  1348. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1349. }
  1350. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1351. {
  1352. string POStatus = queryParam["POStatus"].ToString();
  1353. if (POStatus == "0")
  1354. {
  1355. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1356. }
  1357. else if (POStatus == "1")
  1358. {
  1359. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1360. }
  1361. else
  1362. {
  1363. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1364. }
  1365. }
  1366. }
  1367. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1368. {
  1369. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1370. }
  1371. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1372. {
  1373. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1374. }
  1375. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1376. }
  1377. /// <summary>
  1378. /// 点击销售退货生成条码(销售退货)
  1379. /// </summary>
  1380. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1381. {
  1382. DataTable dt = new DataTable();
  1383. object Figure = GetDecimalDigits();
  1384. List<DbParameter> parameter = new List<DbParameter>();
  1385. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn020', " + Quantity + ",1,3,'')";
  1386. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1387. 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,
  1388. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1389. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  1390. ,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,
  1391. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1392. from ICSSDN a
  1393. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1394. left join (
  1395. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1396. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='4'
  1397. where isnull(a.EATTRIBUTE1,'')=''
  1398. group by b.TransCode,b.TransSequence
  1399. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  1400. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1401. WHERE 1 =1
  1402. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  1403. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1404. sql = string.Format(sql, Figure);
  1405. return Repository().FindTableBySql(sql.ToString());
  1406. }
  1407. /// <summary>
  1408. /// 销售退货生成条码
  1409. /// </summary>
  1410. /// <param name="POCode"></param>
  1411. /// <param name="PORow"></param>
  1412. /// <param name="keyValue"></param>
  1413. /// 已改
  1414. /// <returns></returns>
  1415. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1416. {
  1417. var queryParam = keyValue.ToJObject();
  1418. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1419. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1420. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1421. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1422. decimal LOTQTY = minPackQty;
  1423. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1424. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1425. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1426. string sql = string.Empty;
  1427. //string VendorLot = queryParam["VendorLot"].ToString();
  1428. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1429. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1430. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1431. string InvCode = queryParam["ClassCode"].ToString();
  1432. string sqls = string.Empty;
  1433. string Colspan = "";
  1434. string str1 = "";
  1435. string LotNo = string.Empty;
  1436. List<string> ExtensionIDList = new List<string>();
  1437. #region 装箱的功能
  1438. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1439. string VenCode = queryParam["VenCode"].ToString();
  1440. int PackCount = 0;//每箱放的数量
  1441. int Pack_YuShu = 0;//需要平摊的数量
  1442. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1443. List<PackModel> List_Pack = new List<PackModel>();
  1444. int ZQty = 0;
  1445. if (createPackCount > 0)
  1446. {
  1447. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1448. if (Pack_YuShu == 0)
  1449. {
  1450. PackCount = (createPageCount / createPackCount);
  1451. }
  1452. else
  1453. {
  1454. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1455. }
  1456. for (int jj = 0; jj < createPackCount; jj++)
  1457. {
  1458. object CARID = Guid.NewGuid();
  1459. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1460. sql += @" INSERT INTO dbo.ICSContainer
  1461. ( ID,ContainerCode ,
  1462. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1463. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1464. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1465. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1466. PackModel PP = new PackModel();
  1467. PP.ID = CARID.ToString();
  1468. PP.PackCode = Carton;
  1469. if (jj < Pack_YuShu)
  1470. {
  1471. PP.FristBarIndex = ZQty;
  1472. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1473. }
  1474. else
  1475. {
  1476. PP.FristBarIndex = ZQty;
  1477. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1478. }
  1479. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1480. List_Pack.Add(PP);
  1481. }
  1482. }
  1483. #endregion
  1484. for (int i = 0; i < createPageCount; i++)
  1485. {
  1486. if (i + 1 == createPageCount)
  1487. {
  1488. if (minPackQty * createPageCount > thisCreateQty)
  1489. {
  1490. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1491. }
  1492. }
  1493. 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();
  1494. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1495. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1496. bool flag = true;
  1497. foreach (var item in ExtensionIDList)
  1498. {
  1499. if (item == Colspan + WorkPoint)
  1500. {
  1501. flag = false;
  1502. }
  1503. }
  1504. if (ExtensionID == null && flag == true)
  1505. {
  1506. str1 = Guid.NewGuid().ToString();
  1507. 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)
  1508. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1509. 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(),
  1510. MUSER, MUSERNAME, WorkPoints);
  1511. }
  1512. else if (ExtensionID != null)
  1513. {
  1514. str1 = ExtensionID.ToString();
  1515. }
  1516. ExtensionIDList.Add(Colspan + WorkPoint);
  1517. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1518. if (AMEnable == "true")
  1519. {
  1520. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1521. }
  1522. else
  1523. {
  1524. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1525. }
  1526. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1527. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1528. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1529. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1530. //{
  1531. sql += string.Format(@"
  1532. insert into ICSInventoryLot
  1533. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1534. select
  1535. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1536. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1537. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1538. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1539. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1540. sql += "\r\n";
  1541. //}
  1542. //装箱的功能
  1543. if (List_Pack.Count > 0)
  1544. {
  1545. PackModel mm = new PackModel();
  1546. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1547. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1548. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1549. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1550. }
  1551. }
  1552. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1553. return count;
  1554. }
  1555. /// <summary>
  1556. /// 销售退货生成条码
  1557. /// </summary>
  1558. /// <param name="POCode"></param>
  1559. /// <param name="PORow"></param>
  1560. /// <param name="keyValue"></param>
  1561. /// 已改
  1562. /// <returns></returns>
  1563. public int SubmitFormXiaoShouNew(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1564. {
  1565. var queryParam = keyValue.ToJObject();
  1566. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1567. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1568. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1569. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1570. List<decimal> lotQtys = new List<decimal>();
  1571. foreach (var jLotno in jLotnos)
  1572. {
  1573. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1574. lotQtys.Add(qty);
  1575. }
  1576. int createPageCount = lotQtys.Count();
  1577. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1578. string sql = string.Empty;
  1579. //string VendorLot = queryParam["VendorLot"].ToString();
  1580. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1581. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1582. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1583. string InvCode = queryParam["ClassCode"].ToString();
  1584. string sqls = string.Empty;
  1585. string Colspan = "";
  1586. string str1 = "";
  1587. string LotNo = string.Empty;
  1588. List<string> ExtensionIDList = new List<string>();
  1589. #region 装箱的功能
  1590. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1591. string VenCode = queryParam["VenCode"].ToString();
  1592. int PackCount = 0;//每箱放的数量
  1593. int Pack_YuShu = 0;//需要平摊的数量
  1594. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1595. List<PackModel> List_Pack = new List<PackModel>();
  1596. int ZQty = 0;
  1597. if (createPackCount > 0)
  1598. {
  1599. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1600. if (Pack_YuShu == 0)
  1601. {
  1602. PackCount = (createPageCount / createPackCount);
  1603. }
  1604. else
  1605. {
  1606. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1607. }
  1608. for (int jj = 0; jj < createPackCount; jj++)
  1609. {
  1610. object CARID = Guid.NewGuid();
  1611. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1612. sql += @" INSERT INTO dbo.ICSContainer
  1613. ( ID,ContainerCode ,
  1614. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1615. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1616. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1617. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1618. PackModel PP = new PackModel();
  1619. PP.ID = CARID.ToString();
  1620. PP.PackCode = Carton;
  1621. if (jj < Pack_YuShu)
  1622. {
  1623. PP.FristBarIndex = ZQty;
  1624. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1625. }
  1626. else
  1627. {
  1628. PP.FristBarIndex = ZQty;
  1629. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1630. }
  1631. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1632. List_Pack.Add(PP);
  1633. }
  1634. }
  1635. #endregion
  1636. for (int i = 0; i < createPageCount; i++)
  1637. {
  1638. var LOTQTY = lotQtys[i];
  1639. 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();
  1640. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1641. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1642. bool flag = true;
  1643. foreach (var item in ExtensionIDList)
  1644. {
  1645. if (item == Colspan + WorkPoint)
  1646. {
  1647. flag = false;
  1648. }
  1649. }
  1650. if (ExtensionID == null && flag == true)
  1651. {
  1652. str1 = Guid.NewGuid().ToString();
  1653. 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)
  1654. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1655. 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(),
  1656. MUSER, MUSERNAME, WorkPoints);
  1657. }
  1658. else if (ExtensionID != null)
  1659. {
  1660. str1 = ExtensionID.ToString();
  1661. }
  1662. ExtensionIDList.Add(Colspan + WorkPoint);
  1663. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1664. if (AMEnable == "true")
  1665. {
  1666. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1667. }
  1668. else
  1669. {
  1670. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1671. }
  1672. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1673. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1674. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1675. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1676. //{
  1677. sql += string.Format(@"
  1678. insert into ICSInventoryLot
  1679. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1680. select
  1681. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1682. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1683. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1684. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1685. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1686. sql += "\r\n";
  1687. //}
  1688. //装箱的功能
  1689. if (List_Pack.Count > 0)
  1690. {
  1691. PackModel mm = new PackModel();
  1692. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1693. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1694. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1695. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1696. }
  1697. }
  1698. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1699. return count;
  1700. }
  1701. public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
  1702. {
  1703. try
  1704. {
  1705. DataTable dt = new DataTable();
  1706. var queryParam = queryJson.ToJObject();
  1707. List<DbParameter> parameter = new List<DbParameter>();
  1708. object Figure = GetDecimalDigits();
  1709. #region [SQL]
  1710. string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  1711. 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
  1712. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1713. ,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,
  1714. a.EATTRIBUTE9,a.EATTRIBUTE10,b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  1715. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10,isnull(a.Quantity,'') as MPQ
  1716. from ICSOtherIn a
  1717. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1718. left join (
  1719. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1720. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  1721. where isnull(ee.EATTRIBUTE1,'')=''
  1722. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1723. )c
  1724. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1725. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1726. where a.Status='1' and ISNULL(a.Type,'1')='1' ";
  1727. sql = string.Format(sql, Figure);
  1728. #endregion
  1729. if (!string.IsNullOrWhiteSpace(queryJson))
  1730. {
  1731. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1732. {
  1733. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1734. }
  1735. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1736. {
  1737. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1738. }
  1739. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1740. {
  1741. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1742. }
  1743. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1744. {
  1745. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1746. }
  1747. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  1748. {
  1749. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  1750. }
  1751. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  1752. {
  1753. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  1754. }
  1755. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  1756. {
  1757. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  1758. }
  1759. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  1760. {
  1761. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  1762. }
  1763. if (!string.IsNullOrWhiteSpace(queryParam["VenInvCode"].ToString()))
  1764. {
  1765. sql += " and b.EATTRIBUTE10 like '%" + queryParam["VenInvCode"].ToString() + "%' ";
  1766. }
  1767. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1768. {
  1769. string POStatus = queryParam["POStatus"].ToString();
  1770. if (POStatus == "0")
  1771. {
  1772. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1773. }
  1774. else if (POStatus == "1")
  1775. {
  1776. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1777. }
  1778. else
  1779. {
  1780. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1781. }
  1782. }
  1783. }
  1784. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1785. {
  1786. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1787. }
  1788. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1789. {
  1790. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1791. }
  1792. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1793. }
  1794. catch (Exception ex)
  1795. {
  1796. throw new Exception(ex.Message);
  1797. }
  1798. }
  1799. /// <summary>
  1800. /// 点击销售退货生成条码(其他入库)
  1801. /// </summary>
  1802. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1803. {
  1804. DataTable dt = new DataTable();
  1805. object Figure = GetDecimalDigits();
  1806. List<DbParameter> parameter = new List<DbParameter>();
  1807. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn021', " + Quantity + ",1,4,'')";
  1808. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1809. 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,
  1810. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1811. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  1812. ,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,
  1813. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,b.EATTRIBUTE7 AS EATTRIBUTE7 ,b.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1814. from ICSOtherIn a
  1815. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1816. left join (
  1817. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1818. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='5'
  1819. where isnull(a.EATTRIBUTE1,'')=''
  1820. group by b.TransCode,b.TransSequence
  1821. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  1822. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1823. WHERE 1 =1
  1824. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "' and ISNULL(a.EATTRIBUTE2,'1')='1'";
  1825. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1826. sql = string.Format(sql, Figure);
  1827. return Repository().FindTableBySql(sql.ToString());
  1828. }
  1829. /// <summary>
  1830. /// 其他入库生成条码
  1831. /// </summary>
  1832. /// <param name="POCode"></param>
  1833. /// <param name="PORow"></param>
  1834. /// <param name="keyValue"></param>
  1835. /// 已改
  1836. /// <returns></returns>
  1837. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1838. {
  1839. var queryParam = keyValue.ToJObject();
  1840. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1841. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1842. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1843. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1844. decimal LOTQTY = minPackQty;
  1845. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1846. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1847. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1848. string sql = string.Empty;
  1849. //string VendorLot = queryParam["VendorLot"].ToString();
  1850. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1851. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1852. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1853. string InvCode = queryParam["ClassCode"].ToString();
  1854. string sqls = string.Empty;
  1855. string Colspan = "";
  1856. string str1 = "";
  1857. string LotNo = string.Empty;
  1858. List<string> ExtensionIDList = new List<string>();
  1859. #region 装箱的功能
  1860. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1861. string VenCode = queryParam["VenCode"].ToString();
  1862. int PackCount = 0;//每箱放的数量
  1863. int Pack_YuShu = 0;//需要平摊的数量
  1864. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1865. List<PackModel> List_Pack = new List<PackModel>();
  1866. int ZQty = 0;
  1867. if (createPackCount > 0)
  1868. {
  1869. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1870. if (Pack_YuShu == 0)
  1871. {
  1872. PackCount = (createPageCount / createPackCount);
  1873. }
  1874. else
  1875. {
  1876. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1877. }
  1878. for (int jj = 0; jj < createPackCount; jj++)
  1879. {
  1880. object CARID = Guid.NewGuid();
  1881. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1882. sql += @" INSERT INTO dbo.ICSContainer
  1883. ( ID,ContainerCode ,
  1884. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1885. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1886. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1887. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1888. PackModel PP = new PackModel();
  1889. PP.ID = CARID.ToString();
  1890. PP.PackCode = Carton;
  1891. if (jj < Pack_YuShu)
  1892. {
  1893. PP.FristBarIndex = ZQty;
  1894. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1895. }
  1896. else
  1897. {
  1898. PP.FristBarIndex = ZQty;
  1899. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1900. }
  1901. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1902. List_Pack.Add(PP);
  1903. }
  1904. }
  1905. #endregion
  1906. for (int i = 0; i < createPageCount; i++)
  1907. {
  1908. if (i + 1 == createPageCount)
  1909. {
  1910. if (minPackQty * createPageCount > thisCreateQty)
  1911. {
  1912. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1913. }
  1914. }
  1915. 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();
  1916. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1917. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1918. bool flag = true;
  1919. foreach (var item in ExtensionIDList)
  1920. {
  1921. if (item == Colspan + WorkPoint)
  1922. {
  1923. flag = false;
  1924. }
  1925. }
  1926. if (ExtensionID == null && flag == true)
  1927. {
  1928. str1 = Guid.NewGuid().ToString();
  1929. 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)
  1930. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1931. 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(),
  1932. MUSER, MUSERNAME, WorkPoints);
  1933. }
  1934. else if (ExtensionID != null)
  1935. {
  1936. str1 = ExtensionID.ToString();
  1937. }
  1938. ExtensionIDList.Add(Colspan + WorkPoint);
  1939. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1940. if (AMEnable == "true")
  1941. {
  1942. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1943. }
  1944. else
  1945. {
  1946. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1947. }
  1948. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1949. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1950. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1951. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1952. //{
  1953. sql += string.Format(@"
  1954. insert into ICSInventoryLot
  1955. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1956. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1957. select
  1958. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1959. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  1960. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1961. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1962. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1963. sql += "\r\n";
  1964. //装箱的功能
  1965. if (List_Pack.Count > 0)
  1966. {
  1967. PackModel mm = new PackModel();
  1968. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1969. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1970. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1971. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1972. }
  1973. //}
  1974. }
  1975. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1976. return count;
  1977. }
  1978. public int SubmitFormQiTaNew(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1979. {
  1980. var queryParam = keyValue.ToJObject();
  1981. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1982. //int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1983. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1984. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1985. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1986. List<decimal> lotQtys = new List<decimal>();
  1987. foreach (var jLotno in jLotnos)
  1988. {
  1989. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1990. lotQtys.Add(qty);
  1991. }
  1992. int createPageCount = lotQtys.Count();
  1993. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1994. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1995. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1996. string sql = string.Empty;
  1997. //string VendorLot = queryParam["VendorLot"].ToString();
  1998. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1999. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2000. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2001. string InvCode = queryParam["ClassCode"].ToString();
  2002. string sqls = string.Empty;
  2003. string Colspan = "";
  2004. string str1 = "";
  2005. string LotNo = string.Empty;
  2006. List<string> ExtensionIDList = new List<string>();
  2007. #region 装箱的功能
  2008. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2009. string VenCode = queryParam["VenCode"].ToString();
  2010. int PackCount = 0;//每箱放的数量
  2011. int Pack_YuShu = 0;//需要平摊的数量
  2012. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2013. List<PackModel> List_Pack = new List<PackModel>();
  2014. int ZQty = 0;
  2015. if (createPackCount > 0)
  2016. {
  2017. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2018. if (Pack_YuShu == 0)
  2019. {
  2020. PackCount = (createPageCount / createPackCount);
  2021. }
  2022. else
  2023. {
  2024. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2025. }
  2026. for (int jj = 0; jj < createPackCount; jj++)
  2027. {
  2028. object CARID = Guid.NewGuid();
  2029. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2030. sql += @" INSERT INTO dbo.ICSContainer
  2031. ( ID,ContainerCode ,
  2032. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2033. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2034. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2035. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2036. PackModel PP = new PackModel();
  2037. PP.ID = CARID.ToString();
  2038. PP.PackCode = Carton;
  2039. if (jj < Pack_YuShu)
  2040. {
  2041. PP.FristBarIndex = ZQty;
  2042. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2043. }
  2044. else
  2045. {
  2046. PP.FristBarIndex = ZQty;
  2047. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2048. }
  2049. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2050. List_Pack.Add(PP);
  2051. }
  2052. }
  2053. #endregion
  2054. for (int i = 0; i < createPageCount; i++)
  2055. {
  2056. var LOTQTY = lotQtys[i];
  2057. 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();
  2058. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2059. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2060. bool flag = true;
  2061. foreach (var item in ExtensionIDList)
  2062. {
  2063. if (item == Colspan + WorkPoint)
  2064. {
  2065. flag = false;
  2066. }
  2067. }
  2068. if (ExtensionID == null && flag == true)
  2069. {
  2070. str1 = Guid.NewGuid().ToString();
  2071. 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)
  2072. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2073. 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(),
  2074. MUSER, MUSERNAME, WorkPoints);
  2075. }
  2076. else if (ExtensionID != null)
  2077. {
  2078. str1 = ExtensionID.ToString();
  2079. }
  2080. ExtensionIDList.Add(Colspan + WorkPoint);
  2081. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2082. if (AMEnable == "true")
  2083. {
  2084. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2085. }
  2086. else
  2087. {
  2088. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2089. }
  2090. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2091. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2092. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2093. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2094. //{
  2095. sql += string.Format(@"
  2096. insert into ICSInventoryLot
  2097. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  2098. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2099. select
  2100. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2101. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  2102. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  2103. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2104. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2105. sql += "\r\n";
  2106. //装箱的功能
  2107. if (List_Pack.Count > 0)
  2108. {
  2109. PackModel mm = new PackModel();
  2110. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2111. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2112. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2113. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2114. }
  2115. //}
  2116. }
  2117. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2118. return count;
  2119. }
  2120. //归还
  2121. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  2122. {
  2123. DataTable dt = new DataTable();
  2124. var queryParam = queryJson.ToJObject();
  2125. List<DbParameter> parameter = new List<DbParameter>();
  2126. object Figure = GetDecimalDigits();
  2127. #region [SQL]
  2128. string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2129. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2130. CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime,
  2131. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2132. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2133. ,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,
  2134. a.EATTRIBUTE9,a.EATTRIBUTE10
  2135. from ICSReturn a
  2136. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2137. left join (
  2138. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2139. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  2140. where isnull(ee.EATTRIBUTE1,'')=''
  2141. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2142. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2143. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2144. where a.Status='2'";
  2145. sql = string.Format(sql, Figure);
  2146. #endregion
  2147. if (!string.IsNullOrWhiteSpace(queryJson))
  2148. {
  2149. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2150. {
  2151. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2152. }
  2153. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2154. {
  2155. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2156. }
  2157. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2158. {
  2159. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2160. }
  2161. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2162. {
  2163. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2164. }
  2165. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2166. {
  2167. string POStatus = queryParam["POStatus"].ToString();
  2168. if (POStatus == "0")
  2169. {
  2170. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2171. }
  2172. else if (POStatus == "1")
  2173. {
  2174. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2175. }
  2176. else
  2177. {
  2178. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2179. }
  2180. }
  2181. }
  2182. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2183. {
  2184. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2185. }
  2186. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2187. {
  2188. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2189. }
  2190. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2191. }
  2192. //审核到货单(采购订单需与审核到货单一起同步)
  2193. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  2194. {
  2195. DataTable dt = new DataTable();
  2196. var queryParam = queryJson.ToJObject();
  2197. List<DbParameter> parameter = new List<DbParameter>();
  2198. object Figure = GetDecimalDigits();
  2199. #region [SQL]
  2200. 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,
  2201. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2202. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2203. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  2204. Case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2205. --,isnull(b.EffectiveEnable,0) as EffectiveEnable
  2206. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2207. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2208. ,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,
  2209. a.EATTRIBUTE9,a.EATTRIBUTE10
  2210. from ICSDeliveryNotice a
  2211. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2212. left join (
  2213. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2214. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  2215. where isnull(ee.EATTRIBUTE1,'')=''
  2216. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2217. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2218. left join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  2219. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2220. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2221. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  2222. ";
  2223. sql = string.Format(sql, Figure);
  2224. #endregion
  2225. if (!string.IsNullOrWhiteSpace(queryJson))
  2226. {
  2227. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2228. {
  2229. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2230. }
  2231. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2232. {
  2233. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2234. }
  2235. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2236. {
  2237. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2238. }
  2239. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2240. {
  2241. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2242. }
  2243. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2244. {
  2245. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2246. }
  2247. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2248. {
  2249. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2250. }
  2251. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2252. {
  2253. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2254. }
  2255. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2256. {
  2257. string POStatus = queryParam["POStatus"].ToString();
  2258. if (POStatus == "0")
  2259. {
  2260. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2261. }
  2262. else if (POStatus == "1")
  2263. {
  2264. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2265. }
  2266. else
  2267. {
  2268. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2269. }
  2270. }
  2271. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2272. {
  2273. string WHStatus = queryParam["WHStatus"].ToString();
  2274. if (WHStatus == "0")
  2275. {
  2276. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2277. }
  2278. else if (WHStatus == "1")
  2279. {
  2280. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2281. }
  2282. else
  2283. {
  2284. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2285. }
  2286. }
  2287. }
  2288. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2289. {
  2290. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2291. }
  2292. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2293. {
  2294. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2295. }
  2296. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2297. }
  2298. //审核委外到货单
  2299. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  2300. {
  2301. DataTable dt = new DataTable();
  2302. var queryParam = queryJson.ToJObject();
  2303. List<DbParameter> parameter = new List<DbParameter>();
  2304. object Figure = GetDecimalDigits();
  2305. #region [SQL]
  2306. 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,
  2307. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2308. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2309. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
  2310. CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2311. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  2312. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,d.OODetailID ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2313. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2314. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2315. ,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,
  2316. a.EATTRIBUTE9,a.EATTRIBUTE10,b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  2317. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10
  2318. from ICSODeliveryNotice a
  2319. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2320. left join (
  2321. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2322. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  2323. where isnull(ee.EATTRIBUTE1,'')=''
  2324. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2325. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2326. left join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  2327. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2328. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2329. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  2330. sql = string.Format(sql, Figure);
  2331. #endregion
  2332. if (!string.IsNullOrWhiteSpace(queryJson))
  2333. {
  2334. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2335. {
  2336. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2337. }
  2338. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2339. {
  2340. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2341. }
  2342. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2343. {
  2344. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2345. }
  2346. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2347. {
  2348. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2349. }
  2350. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2351. {
  2352. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2353. }
  2354. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2355. {
  2356. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2357. }
  2358. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2359. {
  2360. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2361. }
  2362. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2363. {
  2364. string POStatus = queryParam["POStatus"].ToString();
  2365. if (POStatus == "0")
  2366. {
  2367. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2368. }
  2369. else if (POStatus == "1")
  2370. {
  2371. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2372. }
  2373. else
  2374. {
  2375. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2376. }
  2377. }
  2378. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2379. {
  2380. string WHStatus = queryParam["WHStatus"].ToString();
  2381. if (WHStatus == "0")
  2382. {
  2383. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2384. }
  2385. else if (WHStatus == "1")
  2386. {
  2387. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2388. }
  2389. else
  2390. {
  2391. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2392. }
  2393. }
  2394. }
  2395. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2396. {
  2397. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2398. }
  2399. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2400. {
  2401. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2402. }
  2403. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2404. }
  2405. //开立得成品入库单
  2406. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  2407. {
  2408. DataTable dt = new DataTable();
  2409. var queryParam = queryJson.ToJObject();
  2410. List<DbParameter> parameter = new List<DbParameter>();
  2411. object Figure = GetDecimalDigits();
  2412. #region [SQL]
  2413. string sql = @"
  2414. select a.ID,a.RCVCode,a.Sequence,a.SourceCode as MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2415. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2416. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2417. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.CreatePerson,a.CreateDateTime,
  2418. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2419. ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable,b.EffectiveDays
  2420. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2421. ,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,
  2422. a.EATTRIBUTE9,a.EATTRIBUTE10
  2423. from ICSManufactureReceive a
  2424. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2425. left join (
  2426. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2427. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  2428. where isnull(ee.EATTRIBUTE1,'')=''
  2429. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2430. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2431. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2432. --left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint
  2433. where a.Status='1' and a.Type='1'";
  2434. sql = string.Format(sql, Figure);
  2435. #endregion
  2436. if (!string.IsNullOrWhiteSpace(queryJson))
  2437. {
  2438. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2439. {
  2440. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2441. }
  2442. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2443. {
  2444. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2445. }
  2446. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2447. {
  2448. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2449. }
  2450. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2451. {
  2452. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2453. }
  2454. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  2455. {
  2456. sql += " and a.SourceCode like '%" + queryParam["SCode"].ToString() + "%' ";
  2457. }
  2458. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2459. {
  2460. string POStatus = queryParam["POStatus"].ToString();
  2461. if (POStatus == "0")
  2462. {
  2463. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2464. }
  2465. else if (POStatus == "1")
  2466. {
  2467. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2468. }
  2469. else
  2470. {
  2471. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2472. }
  2473. }
  2474. }
  2475. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2476. {
  2477. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2478. }
  2479. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2480. {
  2481. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2482. }
  2483. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2484. }
  2485. /// <summary>
  2486. /// 点击审核委外到货单生成条码(审核委外到货单)
  2487. /// </summary>
  2488. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2489. {
  2490. DataTable dt = new DataTable();
  2491. object Figure = GetDecimalDigits();
  2492. List<DbParameter> parameter = new List<DbParameter>();
  2493. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn005', " + Quantity + ",1,1,'')";
  2494. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2495. //锐腾添加退补逻辑
  2496. string sql = @"select e.Enable, a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2497. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2498. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2499. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2500. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2501. ,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,
  2502. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2503. from ICSODeliveryNotice a
  2504. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2505. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2506. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8'
  2507. where isnull(a.EATTRIBUTE1,'')=''
  2508. group by b.TransCode,b.TransSequence
  2509. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2510. left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
  2511. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2512. left join (select a.ODNCode,a.Sequence,a.WorkPoint, ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  2513. from ICSODeliveryNotice a
  2514. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2515. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  2516. 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
  2517. WHERE 1 =1
  2518. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2519. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2520. sql = string.Format(sql, Figure);
  2521. return Repository().FindTableBySql(sql.ToString());
  2522. }
  2523. /// <summary>
  2524. /// 点击开立成品入库生成条码(开立成品入库单)
  2525. /// </summary>
  2526. /// //--
  2527. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2528. {
  2529. DataTable dt = new DataTable();
  2530. object Figure = GetDecimalDigits();
  2531. List<DbParameter> parameter = new List<DbParameter>();
  2532. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn013', " + Quantity + ",1,2,'')";
  2533. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2534. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2535. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2536. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2537. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2538. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2539. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2540. ,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,
  2541. '' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10
  2542. from ICSManufactureReceive a
  2543. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2544. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2545. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9'
  2546. where isnull(a.EATTRIBUTE1,'')=''
  2547. group by b.TransCode,b.TransSequence
  2548. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  2549. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2550. WHERE 1 =1
  2551. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  2552. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2553. sql = string.Format(sql, Figure);
  2554. return Repository().FindTableBySql(sql.ToString());
  2555. }
  2556. /// <summary>
  2557. /// 点击审核到货单生成条码(审核到货单)
  2558. /// </summary>
  2559. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2560. {
  2561. DataTable dt = new DataTable();
  2562. object Figure = GetDecimalDigits();
  2563. List<DbParameter> parameter = new List<DbParameter>();
  2564. /***
  2565. * 退退退退
  2566. * 退退
  2567. ***/
  2568. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn002', " + Quantity + ",1,1,'')";
  2569. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2570. string checksql = $@"select a.ID from ICSDeliveryNotice a
  2571. inner join ICSDeliveryNotice b ON a.DNDetailID=Isnull(b.EATTRIBUTE8,'') and a.WorkPoint=b.WorkPoint and b.DNType='2' and b.EATTRIBUTE7='退'
  2572. where a.DNType='1' and a.DNCode='{DNCode}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}' ";
  2573. var checkdt = SqlHelper.CmdExecuteDataTable(checksql);
  2574. string sql = string.Empty;
  2575. if (checkdt.Rows.Count > 0)
  2576. {
  2577. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2578. CAST( " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2579. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2580. 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,
  2581. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2582. ,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,
  2583. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2584. from ICSDeliveryNotice a
  2585. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2586. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2587. 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
  2588. from ICSDeliveryNotice a
  2589. 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
  2590. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2591. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2592. where isnull(a.EATTRIBUTE1,'')=''
  2593. group by b.TransCode,b.TransSequence
  2594. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2595. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2596. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  2597. 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
  2598. WHERE 1 =1
  2599. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2600. }
  2601. else
  2602. {
  2603. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2604. CAST( " + Num + @"+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2605. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2606. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2607. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2608. ,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,
  2609. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2610. from ICSDeliveryNotice a
  2611. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2612. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2613. 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
  2614. from ICSDeliveryNotice a
  2615. 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
  2616. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2617. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2618. where isnull(a.EATTRIBUTE1,'')=''
  2619. group by b.TransCode,b.TransSequence
  2620. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2621. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2622. 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
  2623. WHERE 1 =1
  2624. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2625. }
  2626. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2627. sql = string.Format(sql, Figure);
  2628. return Repository().FindTableBySql(sql.ToString());
  2629. }
  2630. /// <summary>
  2631. /// 点击归还生成条码(归还)
  2632. /// </summary>
  2633. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2634. {
  2635. DataTable dt = new DataTable();
  2636. object Figure = GetDecimalDigits();
  2637. List<DbParameter> parameter = new List<DbParameter>();
  2638. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn023', " + Quantity + ",1,4,'')";
  2639. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2640. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2641. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2642. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2643. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2644. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2645. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  2646. ,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,
  2647. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2648. from ICSReturn a
  2649. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2650. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2651. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6'
  2652. where isnull(a.EATTRIBUTE1,'')=''
  2653. group by b.TransCode,b.TransSequence
  2654. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  2655. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2656. WHERE 1 =1
  2657. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  2658. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2659. sql = string.Format(sql, Figure);
  2660. return Repository().FindTableBySql(sql.ToString());
  2661. }
  2662. /// <summary>
  2663. /// 归还单生成条码
  2664. /// </summary>
  2665. /// <param name="POCode"></param>
  2666. /// <param name="PORow"></param>
  2667. /// <param name="keyValue"></param>
  2668. /// 已改
  2669. /// <returns></returns>
  2670. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  2671. {
  2672. var queryParam = keyValue.ToJObject();
  2673. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2674. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2675. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2676. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2677. decimal LOTQTY = minPackQty;
  2678. string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2679. string sql = string.Empty;
  2680. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2681. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2682. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2683. string sqls = string.Empty;
  2684. string Colspan = "";
  2685. string str1 = "";
  2686. List<string> ExtensionIDList = new List<string>();
  2687. #region 装箱的功能
  2688. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2689. string VenCode = queryParam["VenCode"].ToString();
  2690. int PackCount = 0;//每箱放的数量
  2691. int Pack_YuShu = 0;//需要平摊的数量
  2692. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2693. List<PackModel> List_Pack = new List<PackModel>();
  2694. int ZQty = 0;
  2695. if (createPackCount > 0)
  2696. {
  2697. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2698. if (Pack_YuShu == 0)
  2699. {
  2700. PackCount = (createPageCount / createPackCount);
  2701. }
  2702. else
  2703. {
  2704. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2705. }
  2706. for (int jj = 0; jj < createPackCount; jj++)
  2707. {
  2708. object CARID = Guid.NewGuid();
  2709. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2710. sql += @" INSERT INTO dbo.ICSContainer
  2711. ( ID,ContainerCode ,
  2712. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2713. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2714. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2715. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2716. PackModel PP = new PackModel();
  2717. PP.ID = CARID.ToString();
  2718. PP.PackCode = Carton;
  2719. if (jj < Pack_YuShu)
  2720. {
  2721. PP.FristBarIndex = ZQty;
  2722. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2723. }
  2724. else
  2725. {
  2726. PP.FristBarIndex = ZQty;
  2727. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2728. }
  2729. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2730. List_Pack.Add(PP);
  2731. }
  2732. }
  2733. #endregion
  2734. for (int i = 0; i < createPageCount; i++)
  2735. {
  2736. if (i + 1 == createPageCount)
  2737. {
  2738. if (minPackQty * createPageCount > thisCreateQty)
  2739. {
  2740. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2741. }
  2742. }
  2743. 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();
  2744. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2745. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2746. bool flag = true;
  2747. foreach (var item in ExtensionIDList)
  2748. {
  2749. if (item == Colspan + WorkPoint)
  2750. {
  2751. flag = false;
  2752. }
  2753. }
  2754. if (ExtensionID == null && flag == true)
  2755. {
  2756. str1 = Guid.NewGuid().ToString();
  2757. 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)
  2758. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2759. 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(),
  2760. MUSER, MUSERNAME, WorkPoints);
  2761. }
  2762. else if (ExtensionID != null)
  2763. {
  2764. str1 = ExtensionID.ToString();
  2765. }
  2766. ExtensionIDList.Add(Colspan + WorkPoint);
  2767. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2768. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2769. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  2770. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2771. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2772. //{
  2773. sql += string.Format(@"
  2774. insert into ICSInventoryLot
  2775. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2776. select
  2777. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2778. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2779. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2780. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2781. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2782. sql += "\r\n";
  2783. //装箱的功能
  2784. if (List_Pack.Count > 0)
  2785. {
  2786. PackModel mm = new PackModel();
  2787. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2788. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2789. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  2790. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2791. }
  2792. //}
  2793. }
  2794. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2795. return count;
  2796. }
  2797. /// <summary>
  2798. /// 审核到货单生成条码
  2799. /// </summary>
  2800. /// <param name="POCode"></param>
  2801. /// <param name="PORow"></param>
  2802. /// <param name="keyValue"></param>
  2803. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  2804. /// <returns></returns>
  2805. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2806. {
  2807. var queryParam = keyValue.ToJObject();
  2808. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2809. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2810. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2811. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2812. decimal LOTQTY = minPackQty;
  2813. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2814. string sql = string.Empty;
  2815. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2816. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2817. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2818. string InvCode = queryParam["ClassCode"].ToString();
  2819. string sqls = string.Empty;
  2820. string Colspan = "";
  2821. string str1 = "";
  2822. string LotNo = string.Empty;
  2823. List<string> ExtensionIDList = new List<string>();
  2824. #region 装箱的功能
  2825. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2826. string VenCode = queryParam["VenCode"].ToString();
  2827. int PackCount = 0;//每箱放的数量
  2828. int Pack_YuShu = 0;//需要平摊的数量
  2829. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2830. List<PackModel> List_Pack = new List<PackModel>();
  2831. int ZQty = 0;
  2832. if (createPackCount > 0)
  2833. {
  2834. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2835. if (Pack_YuShu == 0)
  2836. {
  2837. PackCount = (createPageCount / createPackCount);
  2838. }
  2839. else
  2840. {
  2841. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2842. }
  2843. for (int jj = 0; jj < createPackCount; jj++)
  2844. {
  2845. object CARID = Guid.NewGuid();
  2846. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2847. sql += @" INSERT INTO dbo.ICSContainer
  2848. ( ID,ContainerCode ,
  2849. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2850. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2851. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2852. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2853. PackModel PP = new PackModel();
  2854. PP.ID = CARID.ToString();
  2855. PP.PackCode = Carton;
  2856. if (jj < Pack_YuShu)
  2857. {
  2858. PP.FristBarIndex = ZQty;
  2859. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2860. }
  2861. else
  2862. {
  2863. PP.FristBarIndex = ZQty;
  2864. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2865. }
  2866. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2867. List_Pack.Add(PP);
  2868. }
  2869. }
  2870. #endregion
  2871. for (int i = 0; i < createPageCount; i++)
  2872. {
  2873. if (i + 1 == createPageCount)
  2874. {
  2875. if (minPackQty * createPageCount > thisCreateQty)
  2876. {
  2877. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2878. }
  2879. }
  2880. 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();
  2881. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2882. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2883. bool flag = true;
  2884. foreach (var item in ExtensionIDList)
  2885. {
  2886. if (item == Colspan + WorkPoint)
  2887. {
  2888. flag = false;
  2889. }
  2890. }
  2891. if (ExtensionID == null && flag == true)
  2892. {
  2893. str1 = Guid.NewGuid().ToString();
  2894. 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)
  2895. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2896. 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(),
  2897. MUSER, MUSERNAME, WorkPoints);
  2898. }
  2899. else if (ExtensionID != null)
  2900. {
  2901. str1 = ExtensionID.ToString();
  2902. }
  2903. ExtensionIDList.Add(Colspan + WorkPoint);
  2904. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2905. if (AMEnable == "true")
  2906. {
  2907. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2908. }
  2909. else
  2910. {
  2911. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2912. }
  2913. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2914. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  2915. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2916. sql += string.Format(@"
  2917. insert into ICSInventoryLot
  2918. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2919. select
  2920. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  2921. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2922. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2923. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2924. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2925. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2926. sql += "\r\n";
  2927. //装箱的功能
  2928. if (List_Pack.Count > 0)
  2929. {
  2930. PackModel mm = new PackModel();
  2931. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2932. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2933. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  2934. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2935. }
  2936. }
  2937. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2938. return count;
  2939. }
  2940. /// <summary>
  2941. /// 审核委外到货单生成条码
  2942. /// </summary>
  2943. /// <param name="POCode"></param>
  2944. /// <param name="PORow"></param>
  2945. /// <param name="keyValue"></param>
  2946. /// 已改
  2947. /// <returns></returns>
  2948. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  2949. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2950. {
  2951. var queryParam = keyValue.ToJObject();
  2952. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2953. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2954. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2955. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2956. decimal LOTQTY = minPackQty;
  2957. string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2958. string sql = string.Empty;
  2959. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2960. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2961. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2962. string InvCode = queryParam["ClassCode"].ToString();
  2963. string sqls = string.Empty;
  2964. string Colspan = "";
  2965. string str1 = "";
  2966. string LotNo = string.Empty;
  2967. List<string> ExtensionIDList = new List<string>();
  2968. #region 装箱的功能
  2969. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2970. string VenCode = queryParam["VenCode"].ToString();
  2971. int PackCount = 0;//每箱放的数量
  2972. int Pack_YuShu = 0;//需要平摊的数量
  2973. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2974. List<PackModel> List_Pack = new List<PackModel>();
  2975. int ZQty = 0;
  2976. if (createPackCount > 0)
  2977. {
  2978. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2979. if (Pack_YuShu == 0)
  2980. {
  2981. PackCount = (createPageCount / createPackCount);
  2982. }
  2983. else
  2984. {
  2985. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2986. }
  2987. for (int jj = 0; jj < createPackCount; jj++)
  2988. {
  2989. object CARID = Guid.NewGuid();
  2990. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2991. sql += @" INSERT INTO dbo.ICSContainer
  2992. ( ID,ContainerCode ,
  2993. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2994. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2995. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2996. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2997. PackModel PP = new PackModel();
  2998. PP.ID = CARID.ToString();
  2999. PP.PackCode = Carton;
  3000. if (jj < Pack_YuShu)
  3001. {
  3002. PP.FristBarIndex = ZQty;
  3003. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3004. }
  3005. else
  3006. {
  3007. PP.FristBarIndex = ZQty;
  3008. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3009. }
  3010. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3011. List_Pack.Add(PP);
  3012. }
  3013. }
  3014. #endregion
  3015. for (int i = 0; i < createPageCount; i++)
  3016. {
  3017. if (i + 1 == createPageCount)
  3018. {
  3019. if (minPackQty * createPageCount > thisCreateQty)
  3020. {
  3021. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3022. }
  3023. }
  3024. 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();
  3025. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3026. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3027. bool flag = true;
  3028. foreach (var item in ExtensionIDList)
  3029. {
  3030. if (item == Colspan + WorkPoint)
  3031. {
  3032. flag = false;
  3033. }
  3034. }
  3035. if (ExtensionID == null && flag == true)
  3036. {
  3037. str1 = Guid.NewGuid().ToString();
  3038. 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)
  3039. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3040. 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(),
  3041. MUSER, MUSERNAME, WorkPoints);
  3042. }
  3043. else if (ExtensionID != null)
  3044. {
  3045. str1 = ExtensionID.ToString();
  3046. }
  3047. ExtensionIDList.Add(Colspan + WorkPoint);
  3048. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  3049. if (AMEnable == "true")
  3050. {
  3051. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  3052. }
  3053. else
  3054. {
  3055. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3056. }
  3057. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3058. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3059. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3060. sql += string.Format(@"
  3061. insert into ICSInventoryLot
  3062. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3063. select
  3064. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  3065. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3066. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3067. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3068. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3069. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3070. sql += "\r\n";
  3071. //装箱的功能
  3072. if (List_Pack.Count > 0)
  3073. {
  3074. PackModel mm = new PackModel();
  3075. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3076. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3077. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3078. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3079. }
  3080. }
  3081. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3082. return count;
  3083. }
  3084. /// <summary>
  3085. /// 开立成品入库单
  3086. /// </summary>
  3087. /// <param name="POCode"></param>
  3088. /// <param name="PORow"></param>
  3089. /// <param name="keyValue"></param>
  3090. /// 已改
  3091. /// <returns></returns>
  3092. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  3093. {
  3094. var queryParam = keyValue.ToJObject();
  3095. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3096. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3097. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3098. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3099. decimal LOTQTY = minPackQty;
  3100. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3101. string sql = string.Empty;
  3102. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3103. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3104. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3105. string sqls = string.Empty;
  3106. string Colspan = "";
  3107. string str1 = "";
  3108. List<string> ExtensionIDList = new List<string>();
  3109. #region 装箱的功能
  3110. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3111. string VenCode = queryParam["VenCode"].ToString();
  3112. int PackCount = 0;//每箱放的数量
  3113. int Pack_YuShu = 0;//需要平摊的数量
  3114. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3115. List<PackModel> List_Pack = new List<PackModel>();
  3116. int ZQty = 0;
  3117. if (createPackCount > 0)
  3118. {
  3119. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3120. if (Pack_YuShu == 0)
  3121. {
  3122. PackCount = (createPageCount / createPackCount);
  3123. }
  3124. else
  3125. {
  3126. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3127. }
  3128. for (int jj = 0; jj < createPackCount; jj++)
  3129. {
  3130. object CARID = Guid.NewGuid();
  3131. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3132. sql += @" INSERT INTO dbo.ICSContainer
  3133. ( ID,ContainerCode ,
  3134. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3135. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3136. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3137. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3138. PackModel PP = new PackModel();
  3139. PP.ID = CARID.ToString();
  3140. PP.PackCode = Carton;
  3141. if (jj < Pack_YuShu)
  3142. {
  3143. PP.FristBarIndex = ZQty;
  3144. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3145. }
  3146. else
  3147. {
  3148. PP.FristBarIndex = ZQty;
  3149. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3150. }
  3151. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3152. List_Pack.Add(PP);
  3153. }
  3154. }
  3155. #endregion
  3156. for (int i = 0; i < createPageCount; i++)
  3157. {
  3158. if (i + 1 == createPageCount)
  3159. {
  3160. if (minPackQty * createPageCount > thisCreateQty)
  3161. {
  3162. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3163. }
  3164. }
  3165. 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();
  3166. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3167. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3168. bool flag = true;
  3169. foreach (var item in ExtensionIDList)
  3170. {
  3171. if (item == Colspan + WorkPoint)
  3172. {
  3173. flag = false;
  3174. }
  3175. }
  3176. if (ExtensionID == null && flag == true)
  3177. {
  3178. str1 = Guid.NewGuid().ToString();
  3179. 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)
  3180. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3181. 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(),
  3182. MUSER, MUSERNAME, WorkPoints);
  3183. }
  3184. else if (ExtensionID != null)
  3185. {
  3186. str1 = ExtensionID.ToString();
  3187. }
  3188. ExtensionIDList.Add(Colspan + WorkPoint);
  3189. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3190. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3191. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3192. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3193. sql += string.Format(@"
  3194. insert into ICSInventoryLot
  3195. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3196. select
  3197. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3198. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3199. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3200. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3201. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3202. sql += "\r\n";
  3203. //装箱的功能
  3204. if (List_Pack.Count > 0)
  3205. {
  3206. PackModel mm = new PackModel();
  3207. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3208. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3209. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3210. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3211. }
  3212. }
  3213. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3214. return count;
  3215. }
  3216. //委外拒收单
  3217. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  3218. {
  3219. DataTable dt = new DataTable();
  3220. var queryParam = queryJson.ToJObject();
  3221. List<DbParameter> parameter = new List<DbParameter>();
  3222. object Figure = GetDecimalDigits();
  3223. #region [SQL]
  3224. 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,
  3225. 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,
  3226. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3227. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3228. ,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,
  3229. a.EATTRIBUTE9,a.EATTRIBUTE10
  3230. from ICSODeliveryNotice a
  3231. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3232. left join (
  3233. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3234. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3235. where isnull(ee.EATTRIBUTE1,'')=''
  3236. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3237. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3238. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3239. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3240. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3241. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3242. ";
  3243. sql = string.Format(sql, Figure);
  3244. #endregion
  3245. if (!string.IsNullOrWhiteSpace(queryJson))
  3246. {
  3247. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3248. {
  3249. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3250. }
  3251. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3252. {
  3253. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3254. }
  3255. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3256. {
  3257. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3258. }
  3259. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3260. {
  3261. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3262. }
  3263. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3264. {
  3265. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3266. }
  3267. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3268. {
  3269. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3270. }
  3271. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3272. {
  3273. string POStatus = queryParam["POStatus"].ToString();
  3274. if (POStatus == "0")
  3275. {
  3276. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3277. }
  3278. else if (POStatus == "1")
  3279. {
  3280. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3281. }
  3282. else
  3283. {
  3284. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3285. }
  3286. }
  3287. }
  3288. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3289. {
  3290. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3291. }
  3292. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3293. {
  3294. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3295. }
  3296. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3297. }
  3298. //拒收单
  3299. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  3300. {
  3301. DataTable dt = new DataTable();
  3302. var queryParam = queryJson.ToJObject();
  3303. List<DbParameter> parameter = new List<DbParameter>();
  3304. object Figure = GetDecimalDigits();
  3305. #region [SQL]
  3306. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  3307. 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,
  3308. CAST( a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  3309. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3310. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3311. ,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,
  3312. a.EATTRIBUTE9,a.EATTRIBUTE10
  3313. from ICSDeliveryNotice a
  3314. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3315. left join (
  3316. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3317. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3318. where isnull(ee.EATTRIBUTE1,'')=''
  3319. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3320. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3321. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3322. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3323. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3324. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3325. ";
  3326. sql = string.Format(sql, Figure);
  3327. #endregion
  3328. if (!string.IsNullOrWhiteSpace(queryJson))
  3329. {
  3330. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3331. {
  3332. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3333. }
  3334. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3335. {
  3336. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3337. }
  3338. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3339. {
  3340. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3341. }
  3342. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3343. {
  3344. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3345. }
  3346. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3347. {
  3348. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3349. }
  3350. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3351. {
  3352. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3353. }
  3354. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3355. {
  3356. string POStatus = queryParam["POStatus"].ToString();
  3357. if (POStatus == "0")
  3358. {
  3359. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3360. }
  3361. else if (POStatus == "1")
  3362. {
  3363. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3364. }
  3365. else
  3366. {
  3367. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3368. }
  3369. }
  3370. }
  3371. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3372. {
  3373. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3374. }
  3375. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3376. {
  3377. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3378. }
  3379. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3380. }
  3381. //领料申请退料
  3382. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  3383. {
  3384. DataTable dt = new DataTable();
  3385. var queryParam = queryJson.ToJObject();
  3386. List<DbParameter> parameter = new List<DbParameter>();
  3387. object Figure = GetDecimalDigits();
  3388. #region [SQL]
  3389. 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,
  3390. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  3391. CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3392. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3393. ,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,
  3394. a.EATTRIBUTE9,a.EATTRIBUTE10
  3395. from ICSMOApplyNegDetail a
  3396. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3397. left JOIN ICSMOApply bb ON a.SourceDetailID=bb.ApplyDetailID AND a.WorkPoint=bb.WorkPoint
  3398. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3399. left join (
  3400. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3401. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3402. where isnull(ee.EATTRIBUTE1,'')=''
  3403. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3404. )c
  3405. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3406. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3407. WHERE d.Type='2' and d.Status='2' ";
  3408. sql = string.Format(sql, Figure);
  3409. #endregion
  3410. if (!string.IsNullOrWhiteSpace(queryJson))
  3411. {
  3412. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3413. {
  3414. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3415. }
  3416. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3417. {
  3418. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3419. }
  3420. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3421. {
  3422. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3423. }
  3424. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3425. {
  3426. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3427. }
  3428. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  3429. {
  3430. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  3431. }
  3432. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  3433. {
  3434. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  3435. }
  3436. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3437. {
  3438. string POStatus = queryParam["POStatus"].ToString();
  3439. if (POStatus == "0")
  3440. {
  3441. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3442. }
  3443. else if (POStatus == "1")
  3444. {
  3445. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3446. }
  3447. else
  3448. {
  3449. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3450. }
  3451. }
  3452. }
  3453. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3454. {
  3455. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3456. }
  3457. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3458. {
  3459. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3460. }
  3461. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3462. }
  3463. /// <summary>
  3464. /// 拒收生成条码
  3465. /// </summary>
  3466. /// <param name="POCode"></param>
  3467. /// <param name="PORow"></param>
  3468. /// <param name="keyValue"></param>
  3469. /// <returns></returns>
  3470. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  3471. {
  3472. var queryParam = keyValue.ToJObject();
  3473. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3474. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3475. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3476. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3477. decimal LOTQTY = minPackQty;
  3478. string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3479. string sql = string.Empty;
  3480. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3481. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3482. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3483. string sqls = string.Empty;
  3484. string Colspan = "";
  3485. string str1 = "";
  3486. List<string> ExtensionIDList = new List<string>();
  3487. #region 装箱的功能
  3488. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3489. string VenCode = queryParam["VenCode"].ToString();
  3490. int PackCount = 0;//每箱放的数量
  3491. int Pack_YuShu = 0;//需要平摊的数量
  3492. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3493. List<PackModel> List_Pack = new List<PackModel>();
  3494. int ZQty = 0;
  3495. if (createPackCount > 0)
  3496. {
  3497. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3498. if (Pack_YuShu == 0)
  3499. {
  3500. PackCount = (createPageCount / createPackCount);
  3501. }
  3502. else
  3503. {
  3504. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3505. }
  3506. for (int jj = 0; jj < createPackCount; jj++)
  3507. {
  3508. object CARID = Guid.NewGuid();
  3509. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3510. sql += @" INSERT INTO dbo.ICSContainer
  3511. ( ID,ContainerCode ,
  3512. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3513. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3514. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3515. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3516. PackModel PP = new PackModel();
  3517. PP.ID = CARID.ToString();
  3518. PP.PackCode = Carton;
  3519. if (jj < Pack_YuShu)
  3520. {
  3521. PP.FristBarIndex = ZQty;
  3522. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3523. }
  3524. else
  3525. {
  3526. PP.FristBarIndex = ZQty;
  3527. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3528. }
  3529. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3530. List_Pack.Add(PP);
  3531. }
  3532. }
  3533. #endregion
  3534. for (int i = 0; i < createPageCount; i++)
  3535. {
  3536. if (i + 1 == createPageCount)
  3537. {
  3538. if (minPackQty * createPageCount > thisCreateQty)
  3539. {
  3540. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3541. }
  3542. }
  3543. 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();
  3544. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3545. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3546. bool flag = true;
  3547. foreach (var item in ExtensionIDList)
  3548. {
  3549. if (item == Colspan + WorkPoint)
  3550. {
  3551. flag = false;
  3552. }
  3553. }
  3554. if (ExtensionID == null && flag == true)
  3555. {
  3556. str1 = Guid.NewGuid().ToString();
  3557. 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)
  3558. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3559. 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(),
  3560. MUSER, MUSERNAME, WorkPoints);
  3561. }
  3562. else if (ExtensionID != null)
  3563. {
  3564. str1 = ExtensionID.ToString();
  3565. }
  3566. ExtensionIDList.Add(Colspan + WorkPoint);
  3567. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3568. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3569. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3570. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3571. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3572. //{
  3573. sql += string.Format(@"
  3574. insert into ICSInventoryLot
  3575. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3576. select
  3577. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3578. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3579. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3580. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3581. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3582. sql += "\r\n";
  3583. //装箱的功能
  3584. if (List_Pack.Count > 0)
  3585. {
  3586. PackModel mm = new PackModel();
  3587. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3588. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3589. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3590. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3591. }
  3592. //}
  3593. }
  3594. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3595. return count;
  3596. }
  3597. /// <summary>
  3598. /// 委外拒收生成条码
  3599. /// </summary>
  3600. /// <param name="POCode"></param>
  3601. /// <param name="PORow"></param>
  3602. /// <param name="keyValue"></param>
  3603. /// <returns></returns>
  3604. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  3605. {
  3606. var queryParam = keyValue.ToJObject();
  3607. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3608. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3609. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3610. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3611. decimal LOTQTY = minPackQty;
  3612. string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3613. string sql = string.Empty;
  3614. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3615. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3616. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3617. string sqls = string.Empty;
  3618. string Colspan = "";
  3619. string str1 = "";
  3620. List<string> ExtensionIDList = new List<string>();
  3621. #region 装箱的功能
  3622. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3623. string VenCode = queryParam["VenCode"].ToString();
  3624. int PackCount = 0;//每箱放的数量
  3625. int Pack_YuShu = 0;//需要平摊的数量
  3626. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3627. List<PackModel> List_Pack = new List<PackModel>();
  3628. int ZQty = 0;
  3629. if (createPackCount > 0)
  3630. {
  3631. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3632. if (Pack_YuShu == 0)
  3633. {
  3634. PackCount = (createPageCount / createPackCount);
  3635. }
  3636. else
  3637. {
  3638. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3639. }
  3640. for (int jj = 0; jj < createPackCount; jj++)
  3641. {
  3642. object CARID = Guid.NewGuid();
  3643. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3644. sql += @" INSERT INTO dbo.ICSContainer
  3645. ( ID,ContainerCode ,
  3646. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3647. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3648. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3649. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3650. PackModel PP = new PackModel();
  3651. PP.ID = CARID.ToString();
  3652. PP.PackCode = Carton;
  3653. if (jj < Pack_YuShu)
  3654. {
  3655. PP.FristBarIndex = ZQty;
  3656. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3657. }
  3658. else
  3659. {
  3660. PP.FristBarIndex = ZQty;
  3661. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3662. }
  3663. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3664. List_Pack.Add(PP);
  3665. }
  3666. }
  3667. #endregion
  3668. for (int i = 0; i < createPageCount; i++)
  3669. {
  3670. if (i + 1 == createPageCount)
  3671. {
  3672. if (minPackQty * createPageCount > thisCreateQty)
  3673. {
  3674. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3675. }
  3676. }
  3677. 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();
  3678. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3679. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3680. bool flag = true;
  3681. foreach (var item in ExtensionIDList)
  3682. {
  3683. if (item == Colspan + WorkPoint)
  3684. {
  3685. flag = false;
  3686. }
  3687. }
  3688. if (ExtensionID == null && flag == true)
  3689. {
  3690. str1 = Guid.NewGuid().ToString();
  3691. 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)
  3692. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3693. 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(),
  3694. MUSER, MUSERNAME, WorkPoints);
  3695. }
  3696. else if (ExtensionID != null)
  3697. {
  3698. str1 = ExtensionID.ToString();
  3699. }
  3700. ExtensionIDList.Add(Colspan + WorkPoint);
  3701. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3702. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3703. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3704. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3705. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3706. //{
  3707. sql += string.Format(@"
  3708. insert into ICSInventoryLot
  3709. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3710. select
  3711. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3712. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3713. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3714. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3715. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3716. sql += "\r\n";
  3717. //装箱的功能
  3718. if (List_Pack.Count > 0)
  3719. {
  3720. PackModel mm = new PackModel();
  3721. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3722. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3723. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3724. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3725. }
  3726. //}
  3727. }
  3728. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3729. return count;
  3730. }
  3731. /// <summary>
  3732. /// 点击审核到货单生成条码(审核到货单)
  3733. /// </summary>
  3734. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3735. {
  3736. DataTable dt = new DataTable();
  3737. object Figure = GetDecimalDigits();
  3738. List<DbParameter> parameter = new List<DbParameter>();
  3739. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn003', " + Quantity + ",1,1,'')";
  3740. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3741. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3742. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3743. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3744. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  3745. ,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,
  3746. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3747. from ICSDeliveryNotice a
  3748. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3749. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3750. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10'
  3751. where isnull(a.EATTRIBUTE1,'')=''
  3752. group by b.TransCode,b.TransSequence
  3753. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  3754. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3755. WHERE a.DNType='3'
  3756. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  3757. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3758. sql = string.Format(sql, Figure);
  3759. return Repository().FindTableBySql(sql.ToString());
  3760. }
  3761. /// <summary>
  3762. /// 点击审核委外到货单生成条码(审核委外到货单)
  3763. /// </summary>
  3764. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3765. {
  3766. DataTable dt = new DataTable();
  3767. object Figure = GetDecimalDigits();
  3768. List<DbParameter> parameter = new List<DbParameter>();
  3769. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn006', " + Quantity + ",1,1,'')";
  3770. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3771. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3772. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3773. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  3774. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3775. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3776. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  3777. ,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,
  3778. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3779. from ICSODeliveryNotice a
  3780. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3781. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3782. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11'
  3783. where isnull(a.EATTRIBUTE1,'')=''
  3784. group by b.TransCode,b.TransSequence
  3785. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  3786. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3787. WHERE a.ODNType='3'
  3788. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  3789. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3790. sql = string.Format(sql, Figure);
  3791. return Repository().FindTableBySql(sql.ToString());
  3792. }
  3793. //获取委外退料源头条码
  3794. public DataTable GetWeiWaiTLSrcLot(string OApplyNegCode, string Sequence, string WorkPoint)
  3795. {
  3796. DataTable dt = new DataTable();
  3797. List<DbParameter> parameter = new List<DbParameter>();
  3798. string sql = @"select C.LotNo from ICSOApplyNegDetail A
  3799. INNER JOIN ICSOIssue B ON B.PickID=A.SourceDetailID AND B.InvCode=A.InvCode
  3800. INNER JOIN ICSWareHouseLotInfoLog C
  3801. ON C.TransCode=B.SourceCode AND SUBSTRING(C.TransSequence,0,CharIndex('~',C.TransSequence))=B.SourceSequence
  3802. AND C.WorkPoint=B.WorkPoint
  3803. AND C.TransType=3 AND C.BusinessCode=5
  3804. where A.OApplyNegCode='" + OApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  3805. order by C.MTIME desc";
  3806. return Repository().FindTableBySql(sql.ToString());
  3807. }
  3808. //获取领料申请源头条码
  3809. public DataTable GetLLSQSrcLot(string ApplyNegCode, string Sequence, string WorkPoint)
  3810. {
  3811. DataTable dt = new DataTable();
  3812. List<DbParameter> parameter = new List<DbParameter>();
  3813. string sql = @"select C.LotNo from ICSMOApplyNegDetail A
  3814. INNER JOIN ICSMOApply B ON B.EATTRIBUTE30=A.SourceDetailID AND B.InvCode=A.InvCode
  3815. INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.ApplyCode AND C.TransSequence=B.Sequence
  3816. AND C.TransType=3 AND C.BusinessCode=14
  3817. where A.ApplyNegCode='" + ApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  3818. order by C.MTIME desc";
  3819. return Repository().FindTableBySql(sql.ToString());
  3820. }
  3821. //获取条码备用字段568(派纳特殊需求---销售退货直接取单据备用字段信息)
  3822. public DataTable GetSSDDocEATTRIBUTEInfo(string SSDCode, string Sequence, string WorkPoint)
  3823. {
  3824. string sql = @"select A.CreateDateTime AS ProductDate,B.BatchCode AS BatchCode,A.EATTRIBUTE3,A.EATTRIBUTE5,A.EATTRIBUTE6,A.EATTRIBUTE8,A.EATTRIBUTE13 from ICSSSD A
  3825. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  3826. where A.SSDCode='" + SSDCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + "'";
  3827. return Repository().FindTableBySql(sql.ToString());
  3828. }
  3829. //获取业务源头条码备用字段456(派纳特殊需求)
  3830. public DataTable GetSrcLotNoInfoPN(string LotNo, string WorkPoint)
  3831. {
  3832. try
  3833. {
  3834. string sql = "SELECT '' AS EATTRIBUTE3,'' AS EATTRIBUTE5,'' AS EATTRIBUTE6,'' AS EATTRIBUTE8,'' AS EATTRIBUTE13 ";
  3835. DataTable dt = new DataTable();
  3836. List<DbParameter> parameter = new List<DbParameter>();
  3837. string lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  3838. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  3839. WHERE A.LotNo='" + LotNo + "' AND A.WorkPoint='" + WorkPoint + "'";
  3840. dt = SqlHelper.GetDataTableBySql(lotsql);
  3841. if (dt.Rows.Count > 0)
  3842. {
  3843. if (dt.Rows[0]["Type"].ToString() == "101" || dt.Rows[0]["Type"].ToString() == "102")//分批合批或形态转换后条码 需要找到最初的原条码确认单据后再取备用字段
  3844. {
  3845. string OriginalLot = LotNo.Split('-')[0];
  3846. lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  3847. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  3848. WHERE A.LotNo='" + OriginalLot + "' AND A.WorkPoint='" + WorkPoint + "'";
  3849. dt = SqlHelper.GetDataTableBySql(lotsql);
  3850. if (dt.Rows.Count == 0)
  3851. {
  3852. return Repository().FindTableBySql(sql.ToString());
  3853. }
  3854. else
  3855. {
  3856. LotNo = OriginalLot;
  3857. }
  3858. }
  3859. if (dt.Rows[0]["Type"].ToString() == "0" || dt.Rows[0]["Type"].ToString() == "2"
  3860. || dt.Rows[0]["Type"].ToString() == "12" || dt.Rows[0]["Type"].ToString() == "24")//期初条码 成品条码 生产退料条码 销售退货条码 取条码备用字段
  3861. {
  3862. sql = @"SELECT B.BatchCode AS BatchCode,A.ProductDate AS ProductDate,A.EATTRIBUTE3 as EATTRIBUTE3,A.EATTRIBUTE5 AS EATTRIBUTE5
  3863. ,A.EATTRIBUTE6 AS EATTRIBUTE6,A.EATTRIBUTE8 AS EATTRIBUTE8,A.EATTRIBUTE13 AS EATTRIBUTE13
  3864. from ICSInventoryLot A
  3865. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  3866. where A.LotNo = '" + LotNo + "' and A.WorkPoint = '" + WorkPoint + "'";
  3867. }
  3868. else if (dt.Rows[0]["Type"].ToString() == "22")//采购入库(标准收货单)条码 取单据备用字段
  3869. {
  3870. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3871. LEFT JOIN ICSPurchaseReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3872. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3873. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3874. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3875. }
  3876. else if (dt.Rows[0]["Type"].ToString() == "23")//委外入库(委外收货单)条码 取单据备用字段
  3877. {
  3878. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3879. LEFT JOIN ICSOutsourcingReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3880. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3881. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3882. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3883. }
  3884. else if (dt.Rows[0]["Type"].ToString() == "3")//成品入库(完工申报单)条码 取单据备用字段
  3885. {
  3886. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3887. LEFT JOIN ICSMO B ON B.MOCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3888. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3889. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3890. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3891. }
  3892. else if (dt.Rows[0]["Type"].ToString() == "5")//杂收条码 取单据备用字段
  3893. {
  3894. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8,B.EATTRIBUTE13 from ICSInventoryLotDetail A
  3895. LEFT JOIN ICSOtherIn B ON B.InCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3896. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3897. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3898. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3899. }
  3900. }
  3901. return Repository().FindTableBySql(sql.ToString());
  3902. }
  3903. catch (Exception ex)
  3904. {
  3905. throw new Exception(ex.Message);
  3906. }
  3907. }
  3908. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3909. {
  3910. DataTable dt = new DataTable();
  3911. object Figure = GetDecimalDigits();
  3912. List<DbParameter> parameter = new List<DbParameter>();
  3913. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn018', " + Quantity + ",1,2,'')";
  3914. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3915. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3916. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3917. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  3918. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3919. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3920. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  3921. ,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,
  3922. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3923. from ICSMOApplyNegDetail a
  3924. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3925. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3926. left join (
  3927. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3928. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12'
  3929. where isnull(a.EATTRIBUTE1,'')=''
  3930. group by b.TransCode,b.TransSequence
  3931. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  3932. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  3933. WHERE d.Type='2' and d.Status='2'
  3934. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  3935. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3936. sql = string.Format(sql, Figure);
  3937. return Repository().FindTableBySql(sql.ToString());
  3938. }
  3939. //领料申请退料生成条码
  3940. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  3941. {
  3942. var queryParam = keyValue.ToJObject();
  3943. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3944. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3945. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3946. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3947. decimal LOTQTY = minPackQty;
  3948. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3949. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  3950. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3951. string sql = string.Empty;
  3952. //string VendorLot = queryParam["VendorLot"].ToString();
  3953. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3954. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3955. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3956. string sqls = string.Empty;
  3957. string Colspan = "";
  3958. string str1 = "";
  3959. List<string> ExtensionIDList = new List<string>();
  3960. #region 装箱的功能
  3961. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3962. string VenCode = queryParam["VenCode"].ToString();
  3963. int PackCount = 0;//每箱放的数量
  3964. int Pack_YuShu = 0;//需要平摊的数量
  3965. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3966. List<PackModel> List_Pack = new List<PackModel>();
  3967. int ZQty = 0;
  3968. if (createPackCount > 0)
  3969. {
  3970. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3971. if (Pack_YuShu == 0)
  3972. {
  3973. PackCount = (createPageCount / createPackCount);
  3974. }
  3975. else
  3976. {
  3977. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3978. }
  3979. for (int jj = 0; jj < createPackCount; jj++)
  3980. {
  3981. object CARID = Guid.NewGuid();
  3982. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3983. sql += @" INSERT INTO dbo.ICSContainer
  3984. ( ID,ContainerCode ,
  3985. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3986. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3987. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3988. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3989. PackModel PP = new PackModel();
  3990. PP.ID = CARID.ToString();
  3991. PP.PackCode = Carton;
  3992. if (jj < Pack_YuShu)
  3993. {
  3994. PP.FristBarIndex = ZQty;
  3995. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3996. }
  3997. else
  3998. {
  3999. PP.FristBarIndex = ZQty;
  4000. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4001. }
  4002. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4003. List_Pack.Add(PP);
  4004. }
  4005. }
  4006. #endregion
  4007. for (int i = 0; i < createPageCount; i++)
  4008. {
  4009. if (i + 1 == createPageCount)
  4010. {
  4011. if (minPackQty * createPageCount > thisCreateQty)
  4012. {
  4013. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4014. }
  4015. }
  4016. 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();
  4017. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4018. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4019. bool flag = true;
  4020. foreach (var item in ExtensionIDList)
  4021. {
  4022. if (item == Colspan + WorkPoint)
  4023. {
  4024. flag = false;
  4025. }
  4026. }
  4027. if (ExtensionID == null && flag == true)
  4028. {
  4029. str1 = Guid.NewGuid().ToString();
  4030. 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)
  4031. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4032. 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(),
  4033. MUSER, MUSERNAME, WorkPoints);
  4034. }
  4035. else if (ExtensionID != null)
  4036. {
  4037. str1 = ExtensionID.ToString();
  4038. }
  4039. ExtensionIDList.Add(Colspan + WorkPoint);
  4040. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4041. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4042. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4043. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4044. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4045. //{
  4046. sql += string.Format(@"insert into ICSInventoryLot
  4047. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4048. select
  4049. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4050. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4051. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4052. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4053. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4054. sql += "\r\n";
  4055. //装箱的功能
  4056. if (List_Pack.Count > 0)
  4057. {
  4058. PackModel mm = new PackModel();
  4059. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4060. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4061. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4062. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4063. }
  4064. //}
  4065. }
  4066. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4067. return count;
  4068. }
  4069. public int SubmitFormLLSQTLNew(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4070. {
  4071. var queryParam = keyValue.ToJObject();
  4072. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4073. decimal minPackQty = 1;
  4074. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4075. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  4076. List<decimal> lotQtys = new List<decimal>();
  4077. foreach (var jLotno in jLotnos)
  4078. {
  4079. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  4080. lotQtys.Add(qty);
  4081. }
  4082. int createPageCount = lotQtys.Count();
  4083. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4084. string sql = string.Empty;
  4085. //string VendorLot = queryParam["VendorLot"].ToString();
  4086. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4087. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4088. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4089. string sqls = string.Empty;
  4090. string Colspan = "";
  4091. string str1 = "";
  4092. List<string> ExtensionIDList = new List<string>();
  4093. #region 装箱的功能
  4094. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4095. string VenCode = queryParam["VenCode"].ToString();
  4096. int PackCount = 0;//每箱放的数量
  4097. int Pack_YuShu = 0;//需要平摊的数量
  4098. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4099. List<PackModel> List_Pack = new List<PackModel>();
  4100. int ZQty = 0;
  4101. if (createPackCount > 0)
  4102. {
  4103. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4104. if (Pack_YuShu == 0)
  4105. {
  4106. PackCount = (createPageCount / createPackCount);
  4107. }
  4108. else
  4109. {
  4110. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4111. }
  4112. for (int jj = 0; jj < createPackCount; jj++)
  4113. {
  4114. object CARID = Guid.NewGuid();
  4115. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4116. sql += @" INSERT INTO dbo.ICSContainer
  4117. ( ID,ContainerCode ,
  4118. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4119. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4120. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4121. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4122. PackModel PP = new PackModel();
  4123. PP.ID = CARID.ToString();
  4124. PP.PackCode = Carton;
  4125. if (jj < Pack_YuShu)
  4126. {
  4127. PP.FristBarIndex = ZQty;
  4128. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4129. }
  4130. else
  4131. {
  4132. PP.FristBarIndex = ZQty;
  4133. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4134. }
  4135. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4136. List_Pack.Add(PP);
  4137. }
  4138. }
  4139. #endregion
  4140. for (int i = 0; i < lotQtys.Count(); i++)
  4141. {
  4142. decimal LOTQTY = lotQtys[i];
  4143. 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();
  4144. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4145. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4146. bool flag = true;
  4147. foreach (var item in ExtensionIDList)
  4148. {
  4149. if (item == Colspan + WorkPoint)
  4150. {
  4151. flag = false;
  4152. }
  4153. }
  4154. if (ExtensionID == null && flag == true)
  4155. {
  4156. str1 = Guid.NewGuid().ToString();
  4157. 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)
  4158. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4159. 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(),
  4160. MUSER, MUSERNAME, WorkPoints);
  4161. }
  4162. else if (ExtensionID != null)
  4163. {
  4164. str1 = ExtensionID.ToString();
  4165. }
  4166. ExtensionIDList.Add(Colspan + WorkPoint);
  4167. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4168. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4169. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4170. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4171. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4172. //{
  4173. sql += string.Format(@"insert into ICSInventoryLot
  4174. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE13)
  4175. select
  4176. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}'
  4177. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4178. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  4179. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4180. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString(), queryParam["EATTRIBUTE13"].ToString());
  4181. sql += "\r\n";
  4182. //装箱的功能
  4183. if (List_Pack.Count > 0)
  4184. {
  4185. PackModel mm = new PackModel();
  4186. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4187. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4188. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4189. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4190. }
  4191. //}
  4192. }
  4193. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4194. return count;
  4195. }
  4196. //材料出库退料
  4197. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  4198. {
  4199. DataTable dt = new DataTable();
  4200. var queryParam = queryJson.ToJObject();
  4201. List<DbParameter> parameter = new List<DbParameter>();
  4202. object Figure = GetDecimalDigits();
  4203. #region [SQL]
  4204. string sql = @"
  4205. select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4206. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  4207. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4208. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4209. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4210. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  4211. from ICSMOApplyNegDetail a
  4212. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4213. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4214. left join (
  4215. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4216. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  4217. where isnull(ee.EATTRIBUTE1,'')=''
  4218. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4219. )c
  4220. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4221. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4222. left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint
  4223. WHERE d.Type='3' and d.Status='2' ";
  4224. sql = string.Format(sql, Figure);
  4225. #endregion
  4226. if (!string.IsNullOrWhiteSpace(queryJson))
  4227. {
  4228. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4229. {
  4230. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4231. }
  4232. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4233. {
  4234. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4235. }
  4236. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4237. {
  4238. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4239. }
  4240. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4241. {
  4242. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4243. }
  4244. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  4245. {
  4246. sql += " and g.IssueCode like '%" + queryParam["SCode"].ToString() + "%' ";
  4247. }
  4248. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4249. {
  4250. string POStatus = queryParam["POStatus"].ToString();
  4251. if (POStatus == "0")
  4252. {
  4253. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4254. }
  4255. else if (POStatus == "1")
  4256. {
  4257. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4258. }
  4259. else
  4260. {
  4261. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4262. }
  4263. }
  4264. }
  4265. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4266. {
  4267. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4268. }
  4269. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4270. {
  4271. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4272. }
  4273. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4274. }
  4275. //材料出库退料
  4276. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4277. {
  4278. DataTable dt = new DataTable();
  4279. object Figure = GetDecimalDigits();
  4280. List<DbParameter> parameter = new List<DbParameter>();
  4281. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn019', " + Quantity + ",1,2,'')";
  4282. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4283. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4284. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4285. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4286. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4287. ,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,
  4288. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4289. from ICSMOApplyNegDetail a
  4290. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4291. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4292. left join (
  4293. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4294. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13'
  4295. where isnull(a.EATTRIBUTE1,'')=''
  4296. group by b.TransCode,b.TransSequence
  4297. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4298. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4299. WHERE d.Type='3' and d.Status='2'
  4300. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4301. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4302. sql = string.Format(sql, Figure);
  4303. return Repository().FindTableBySql(sql.ToString());
  4304. }
  4305. //材料出库退料生成条码
  4306. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4307. {
  4308. var queryParam = keyValue.ToJObject();
  4309. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4310. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4311. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4312. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4313. decimal LOTQTY = minPackQty;
  4314. string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4315. string sql = string.Empty;
  4316. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4317. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4318. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4319. string sqls = string.Empty;
  4320. string Colspan = "";
  4321. string str1 = "";
  4322. List<string> ExtensionIDList = new List<string>();
  4323. #region 装箱的功能
  4324. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4325. string VenCode = queryParam["VenCode"].ToString();
  4326. int PackCount = 0;//每箱放的数量
  4327. int Pack_YuShu = 0;//需要平摊的数量
  4328. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4329. List<PackModel> List_Pack = new List<PackModel>();
  4330. int ZQty = 0;
  4331. if (createPackCount > 0)
  4332. {
  4333. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4334. if (Pack_YuShu == 0)
  4335. {
  4336. PackCount = (createPageCount / createPackCount);
  4337. }
  4338. else
  4339. {
  4340. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4341. }
  4342. for (int jj = 0; jj < createPackCount; jj++)
  4343. {
  4344. object CARID = Guid.NewGuid();
  4345. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4346. sql += @" INSERT INTO dbo.ICSContainer
  4347. ( ID,ContainerCode ,
  4348. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4349. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4350. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4351. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4352. PackModel PP = new PackModel();
  4353. PP.ID = CARID.ToString();
  4354. PP.PackCode = Carton;
  4355. if (jj < Pack_YuShu)
  4356. {
  4357. PP.FristBarIndex = ZQty;
  4358. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4359. }
  4360. else
  4361. {
  4362. PP.FristBarIndex = ZQty;
  4363. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4364. }
  4365. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4366. List_Pack.Add(PP);
  4367. }
  4368. }
  4369. #endregion
  4370. for (int i = 0; i < createPageCount; i++)
  4371. {
  4372. if (i + 1 == createPageCount)
  4373. {
  4374. if (minPackQty * createPageCount > thisCreateQty)
  4375. {
  4376. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4377. }
  4378. }
  4379. 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();
  4380. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4381. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4382. bool flag = true;
  4383. foreach (var item in ExtensionIDList)
  4384. {
  4385. if (item == Colspan + WorkPoint)
  4386. {
  4387. flag = false;
  4388. }
  4389. }
  4390. if (ExtensionID == null && flag == true)
  4391. {
  4392. str1 = Guid.NewGuid().ToString();
  4393. 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)
  4394. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4395. 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(),
  4396. MUSER, MUSERNAME, WorkPoints);
  4397. }
  4398. else if (ExtensionID != null)
  4399. {
  4400. str1 = ExtensionID.ToString();
  4401. }
  4402. ExtensionIDList.Add(Colspan + WorkPoint);
  4403. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4404. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4405. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4406. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4407. sql += string.Format(@"insert into ICSInventoryLot
  4408. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4409. select
  4410. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4411. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4412. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4413. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4414. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4415. sql += "\r\n";
  4416. //装箱的功能
  4417. if (List_Pack.Count > 0)
  4418. {
  4419. PackModel mm = new PackModel();
  4420. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4421. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4422. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4423. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4424. }
  4425. }
  4426. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4427. return count;
  4428. }
  4429. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  4430. {
  4431. DataTable dt = new DataTable();
  4432. var queryParam = queryJson.ToJObject();
  4433. List<DbParameter> parameter = new List<DbParameter>();
  4434. object Figure = GetDecimalDigits();
  4435. #region [SQL]
  4436. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4437. 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 ,
  4438. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4439. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4440. ,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,
  4441. a.EATTRIBUTE9,a.EATTRIBUTE10
  4442. from ICSOApplyNegDetail a
  4443. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4444. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4445. left join (
  4446. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4447. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  4448. where isnull(ee.EATTRIBUTE1,'')=''
  4449. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4450. )c
  4451. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4452. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4453. WHERE d.Type='2'";
  4454. sql = string.Format(sql, Figure);
  4455. #endregion
  4456. if (!string.IsNullOrWhiteSpace(queryJson))
  4457. {
  4458. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4459. {
  4460. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4461. }
  4462. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4463. {
  4464. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4465. }
  4466. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4467. {
  4468. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4469. }
  4470. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4471. {
  4472. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4473. }
  4474. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4475. {
  4476. string POStatus = queryParam["POStatus"].ToString();
  4477. if (POStatus == "0")
  4478. {
  4479. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4480. }
  4481. else if (POStatus == "1")
  4482. {
  4483. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4484. }
  4485. else
  4486. {
  4487. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4488. }
  4489. }
  4490. }
  4491. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4492. {
  4493. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4494. }
  4495. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4496. {
  4497. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4498. }
  4499. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4500. }
  4501. /// <summary>
  4502. /// 点击委外领料退料生成条码
  4503. /// </summary>
  4504. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4505. {
  4506. DataTable dt = new DataTable();
  4507. object Figure = GetDecimalDigits();
  4508. List<DbParameter> parameter = new List<DbParameter>();
  4509. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn009', " + Quantity + ",1,1,'')";
  4510. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4511. string sql = @"
  4512. 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,
  4513. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4514. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4515. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4516. ,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,
  4517. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4518. from ICSOApplyNegDetail a
  4519. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode 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 b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4523. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14'
  4524. where isnull(a.EATTRIBUTE1,'')=''
  4525. group by b.TransCode,b.TransSequence
  4526. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4527. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4528. WHERE d.Type='2'
  4529. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4530. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4531. sql = string.Format(sql, Figure);
  4532. return Repository().FindTableBySql(sql.ToString());
  4533. }
  4534. //委外领料申请退料
  4535. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4536. {
  4537. var queryParam = keyValue.ToJObject();
  4538. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4539. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4540. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4541. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4542. decimal LOTQTY = minPackQty;
  4543. string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4544. string sql = string.Empty;
  4545. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4546. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4547. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4548. string sqls = string.Empty;
  4549. string Colspan = "";
  4550. string str1 = "";
  4551. List<string> ExtensionIDList = new List<string>();
  4552. #region 装箱的功能
  4553. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4554. string VenCode = queryParam["VenCode"].ToString();
  4555. int PackCount = 0;//每箱放的数量
  4556. int Pack_YuShu = 0;//需要平摊的数量
  4557. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4558. List<PackModel> List_Pack = new List<PackModel>();
  4559. int ZQty = 0;
  4560. if (createPackCount > 0)
  4561. {
  4562. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4563. if (Pack_YuShu == 0)
  4564. {
  4565. PackCount = (createPageCount / createPackCount);
  4566. }
  4567. else
  4568. {
  4569. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4570. }
  4571. for (int jj = 0; jj < createPackCount; jj++)
  4572. {
  4573. object CARID = Guid.NewGuid();
  4574. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4575. sql += @" INSERT INTO dbo.ICSContainer
  4576. ( ID,ContainerCode ,
  4577. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4578. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4579. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4580. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4581. PackModel PP = new PackModel();
  4582. PP.ID = CARID.ToString();
  4583. PP.PackCode = Carton;
  4584. if (jj < Pack_YuShu)
  4585. {
  4586. PP.FristBarIndex = ZQty;
  4587. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4588. }
  4589. else
  4590. {
  4591. PP.FristBarIndex = ZQty;
  4592. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4593. }
  4594. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4595. List_Pack.Add(PP);
  4596. }
  4597. }
  4598. #endregion
  4599. for (int i = 0; i < createPageCount; i++)
  4600. {
  4601. if (i + 1 == createPageCount)
  4602. {
  4603. if (minPackQty * createPageCount > thisCreateQty)
  4604. {
  4605. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4606. }
  4607. }
  4608. 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();
  4609. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4610. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4611. bool flag = true;
  4612. foreach (var item in ExtensionIDList)
  4613. {
  4614. if (item == Colspan + WorkPoint)
  4615. {
  4616. flag = false;
  4617. }
  4618. }
  4619. if (ExtensionID == null && flag == true)
  4620. {
  4621. str1 = Guid.NewGuid().ToString();
  4622. 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)
  4623. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4624. 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(),
  4625. MUSER, MUSERNAME, WorkPoints);
  4626. }
  4627. else if (ExtensionID != null)
  4628. {
  4629. str1 = ExtensionID.ToString();
  4630. }
  4631. ExtensionIDList.Add(Colspan + WorkPoint);
  4632. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4633. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4634. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4635. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4636. sql += string.Format(@"insert into ICSInventoryLot
  4637. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4638. select
  4639. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4640. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4641. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4642. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4643. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4644. sql += "\r\n";
  4645. //装箱的功能
  4646. if (List_Pack.Count > 0)
  4647. {
  4648. PackModel mm = new PackModel();
  4649. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4650. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4651. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4652. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4653. }
  4654. }
  4655. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4656. return count;
  4657. }
  4658. //委外材料出库
  4659. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  4660. {
  4661. DataTable dt = new DataTable();
  4662. var queryParam = queryJson.ToJObject();
  4663. List<DbParameter> parameter = new List<DbParameter>();
  4664. object Figure = GetDecimalDigits();
  4665. #region [SQL]
  4666. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4667. 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 ,
  4668. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4669. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4670. ,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,
  4671. a.EATTRIBUTE9,a.EATTRIBUTE10
  4672. from ICSOApplyNegDetail a
  4673. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4674. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4675. left join (
  4676. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4677. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  4678. where isnull(ee.EATTRIBUTE1,'')=''
  4679. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4680. )c
  4681. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4682. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4683. WHERE d.Type='3'";
  4684. sql = string.Format(sql, Figure);
  4685. #endregion
  4686. if (!string.IsNullOrWhiteSpace(queryJson))
  4687. {
  4688. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4689. {
  4690. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4691. }
  4692. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4693. {
  4694. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4695. }
  4696. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4697. {
  4698. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4699. }
  4700. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4701. {
  4702. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4703. }
  4704. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4705. {
  4706. string POStatus = queryParam["POStatus"].ToString();
  4707. if (POStatus == "0")
  4708. {
  4709. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4710. }
  4711. else if (POStatus == "1")
  4712. {
  4713. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4714. }
  4715. else
  4716. {
  4717. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4718. }
  4719. }
  4720. }
  4721. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4722. {
  4723. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4724. }
  4725. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4726. {
  4727. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4728. }
  4729. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4730. }
  4731. //委外材料出库
  4732. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4733. {
  4734. DataTable dt = new DataTable();
  4735. object Figure = GetDecimalDigits();
  4736. List<DbParameter> parameter = new List<DbParameter>();
  4737. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn010', " + Quantity + ",1,1,'')";
  4738. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4739. string sql = @"
  4740. 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,
  4741. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4742. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4743. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  4744. ,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,
  4745. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4746. from ICSOApplyNegDetail a
  4747. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4748. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4749. left join (
  4750. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4751. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15'
  4752. where isnull(a.EATTRIBUTE1,'')=''
  4753. group by b.TransCode,b.TransSequence
  4754. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4755. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4756. WHERE d.Type='3'
  4757. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4758. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4759. sql = string.Format(sql, Figure);
  4760. return Repository().FindTableBySql(sql.ToString());
  4761. }
  4762. //委外材料出库
  4763. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4764. {
  4765. var queryParam = keyValue.ToJObject();
  4766. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4767. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4768. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4769. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4770. decimal LOTQTY = minPackQty;
  4771. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4772. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  4773. string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4774. string sql = string.Empty;
  4775. //string VendorLot = queryParam["VendorLot"].ToString();
  4776. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4777. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4778. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4779. string sqls = string.Empty;
  4780. string Colspan = "";
  4781. string str1 = "";
  4782. List<string> ExtensionIDList = new List<string>();
  4783. #region 装箱的功能
  4784. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4785. string VenCode = queryParam["VenCode"].ToString();
  4786. int PackCount = 0;//每箱放的数量
  4787. int Pack_YuShu = 0;//需要平摊的数量
  4788. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4789. List<PackModel> List_Pack = new List<PackModel>();
  4790. int ZQty = 0;
  4791. if (createPackCount > 0)
  4792. {
  4793. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4794. if (Pack_YuShu == 0)
  4795. {
  4796. PackCount = (createPageCount / createPackCount);
  4797. }
  4798. else
  4799. {
  4800. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4801. }
  4802. for (int jj = 0; jj < createPackCount; jj++)
  4803. {
  4804. object CARID = Guid.NewGuid();
  4805. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4806. sql += @" INSERT INTO dbo.ICSContainer
  4807. ( ID,ContainerCode ,
  4808. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4809. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4810. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4811. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4812. PackModel PP = new PackModel();
  4813. PP.ID = CARID.ToString();
  4814. PP.PackCode = Carton;
  4815. if (jj < Pack_YuShu)
  4816. {
  4817. PP.FristBarIndex = ZQty;
  4818. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4819. }
  4820. else
  4821. {
  4822. PP.FristBarIndex = ZQty;
  4823. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4824. }
  4825. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4826. List_Pack.Add(PP);
  4827. }
  4828. }
  4829. #endregion
  4830. for (int i = 0; i < createPageCount; i++)
  4831. {
  4832. if (i + 1 == createPageCount)
  4833. {
  4834. if (minPackQty * createPageCount > thisCreateQty)
  4835. {
  4836. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4837. }
  4838. }
  4839. 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();
  4840. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4841. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4842. bool flag = true;
  4843. foreach (var item in ExtensionIDList)
  4844. {
  4845. if (item == Colspan + WorkPoint)
  4846. {
  4847. flag = false;
  4848. }
  4849. }
  4850. if (ExtensionID == null && flag == true)
  4851. {
  4852. str1 = Guid.NewGuid().ToString();
  4853. 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)
  4854. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4855. 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(),
  4856. MUSER, MUSERNAME, WorkPoints);
  4857. }
  4858. else if (ExtensionID != null)
  4859. {
  4860. str1 = ExtensionID.ToString();
  4861. }
  4862. ExtensionIDList.Add(Colspan + WorkPoint);
  4863. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4864. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4865. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4866. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4867. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4868. //{
  4869. sql += string.Format(@"insert into ICSInventoryLot
  4870. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4871. select
  4872. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  4873. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4874. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4875. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4876. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4877. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4878. sql += "\r\n";
  4879. //装箱的功能
  4880. if (List_Pack.Count > 0)
  4881. {
  4882. PackModel mm = new PackModel();
  4883. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4884. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4885. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4886. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4887. }
  4888. //}
  4889. }
  4890. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4891. return count;
  4892. }
  4893. public DataTable SelectICSExtensionEnable()
  4894. {
  4895. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4896. string sql = @"select ColCode from ICSExtensionEnable
  4897. where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
  4898. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4899. return dt;
  4900. }
  4901. public DataTable GetComplete()
  4902. {
  4903. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4904. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
  4905. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4906. return dt;
  4907. }
  4908. public DataTable GetWWComplete()
  4909. {
  4910. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4911. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004' and WorkPoint='" + WorkPoints + "'";
  4912. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4913. return dt;
  4914. }
  4915. //返工工单
  4916. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  4917. {
  4918. DataTable dt = new DataTable();
  4919. var queryParam = queryJson.ToJObject();
  4920. List<DbParameter> parameter = new List<DbParameter>();
  4921. object Figure = GetDecimalDigits();
  4922. #region [SQL]
  4923. 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,
  4924. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  4925. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4926. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4927. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4928. ,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,
  4929. a.EATTRIBUTE9,a.EATTRIBUTE10
  4930. from ICSMOPick a
  4931. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4932. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4933. left join (
  4934. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4935. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  4936. where isnull(ee.EATTRIBUTE1,'')=''
  4937. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4938. )c
  4939. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4940. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4941. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  4942. sql = string.Format(sql, Figure);
  4943. #endregion
  4944. if (!string.IsNullOrWhiteSpace(queryJson))
  4945. {
  4946. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4947. {
  4948. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4949. }
  4950. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4951. {
  4952. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4953. }
  4954. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4955. {
  4956. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4957. }
  4958. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4959. {
  4960. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4961. }
  4962. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4963. {
  4964. string POStatus = queryParam["POStatus"].ToString();
  4965. if (POStatus == "0")
  4966. {
  4967. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4968. }
  4969. else if (POStatus == "1")
  4970. {
  4971. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4972. }
  4973. else
  4974. {
  4975. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4976. }
  4977. }
  4978. }
  4979. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4980. {
  4981. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4982. }
  4983. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4984. {
  4985. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4986. }
  4987. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4988. }
  4989. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4990. {
  4991. DataTable dt = new DataTable();
  4992. object Figure = GetDecimalDigits();
  4993. List<DbParameter> parameter = new List<DbParameter>();
  4994. // string sql = @"
  4995. //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,
  4996. //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
  4997. //,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
  4998. // from ICSMOPick a
  4999. // left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5000. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5001. // left join (
  5002. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5003. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5004. //where isnull(a.EATTRIBUTE1,'')=''
  5005. // group by b.TransCode,b.TransSequence
  5006. // ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5007. // left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5008. // WHERE 1=1
  5009. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn015', " + Quantity + ",1,2,'')";
  5010. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5011. string sql = @"
  5012. 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,
  5013. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  5014. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  5015. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,isnull(b.EATTRIBUTE2,'') as MPQ
  5016. ,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,
  5017. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5018. from ICSMOPick a
  5019. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5020. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5021. left join (
  5022. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5023. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5024. where isnull(a.EATTRIBUTE1,'')=''
  5025. group by b.TransCode,b.TransSequence
  5026. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5027. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5028. WHERE 1=1
  5029. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  5030. sql += " and a.WorkPoint='" + WorkPoint + "'";
  5031. sql = string.Format(sql, Figure);
  5032. return Repository().FindTableBySql(sql.ToString());
  5033. }
  5034. //返工工单
  5035. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  5036. {
  5037. var queryParam = keyValue.ToJObject();
  5038. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5039. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5040. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5041. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5042. decimal LOTQTY = minPackQty;
  5043. Sequence = Sequence.Replace("~", "");
  5044. string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5045. string sql = string.Empty;
  5046. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5047. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5048. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5049. string sqls = string.Empty;
  5050. string Colspan = "";
  5051. string str1 = "";
  5052. List<string> ExtensionIDList = new List<string>();
  5053. #region 装箱的功能
  5054. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5055. string VenCode = queryParam["VenCode"].ToString();
  5056. int PackCount = 0;//每箱放的数量
  5057. int Pack_YuShu = 0;//需要平摊的数量
  5058. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5059. List<PackModel> List_Pack = new List<PackModel>();
  5060. int ZQty = 0;
  5061. if (createPackCount > 0)
  5062. {
  5063. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5064. if (Pack_YuShu == 0)
  5065. {
  5066. PackCount = (createPageCount / createPackCount);
  5067. }
  5068. else
  5069. {
  5070. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5071. }
  5072. for (int jj = 0; jj < createPackCount; jj++)
  5073. {
  5074. object CARID = Guid.NewGuid();
  5075. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5076. sql += @" INSERT INTO dbo.ICSContainer
  5077. ( ID,ContainerCode ,
  5078. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5079. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5080. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5081. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5082. PackModel PP = new PackModel();
  5083. PP.ID = CARID.ToString();
  5084. PP.PackCode = Carton;
  5085. if (jj < Pack_YuShu)
  5086. {
  5087. PP.FristBarIndex = ZQty;
  5088. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5089. }
  5090. else
  5091. {
  5092. PP.FristBarIndex = ZQty;
  5093. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5094. }
  5095. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5096. List_Pack.Add(PP);
  5097. }
  5098. }
  5099. #endregion
  5100. for (int i = 0; i < createPageCount; i++)
  5101. {
  5102. if (i + 1 == createPageCount)
  5103. {
  5104. if (minPackQty * createPageCount > thisCreateQty)
  5105. {
  5106. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5107. }
  5108. }
  5109. 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();
  5110. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5111. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5112. bool flag = true;
  5113. foreach (var item in ExtensionIDList)
  5114. {
  5115. if (item == Colspan + WorkPoint)
  5116. {
  5117. flag = false;
  5118. }
  5119. }
  5120. if (ExtensionID == null && flag == true)
  5121. {
  5122. str1 = Guid.NewGuid().ToString();
  5123. 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)
  5124. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5125. 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(),
  5126. MUSER, MUSERNAME, WorkPoints);
  5127. }
  5128. else if (ExtensionID != null)
  5129. {
  5130. str1 = ExtensionID.ToString();
  5131. }
  5132. ExtensionIDList.Add(Colspan + WorkPoint);
  5133. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5134. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5135. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5136. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5137. sql += string.Format(@"insert into ICSInventoryLot
  5138. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5139. select
  5140. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5141. 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}' ",
  5142. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5143. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5144. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5145. sql += "\r\n";
  5146. //装箱的功能
  5147. if (List_Pack.Count > 0)
  5148. {
  5149. PackModel mm = new PackModel();
  5150. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5151. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5152. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5153. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5154. }
  5155. }
  5156. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5157. return count;
  5158. }
  5159. /// <summary>
  5160. /// 锐腾获取单据信息
  5161. /// </summary>
  5162. /// <param name="FGGDMOCode"></param>
  5163. /// <param name="Sequence"></param>
  5164. /// <param name="WorkPoint"></param>
  5165. /// <returns></returns>
  5166. public DataTable GetSubGridJsonTransferByCreate(string TransferNO, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5167. {
  5168. DataTable dt = new DataTable();
  5169. object Figure = GetDecimalDigits();
  5170. List<DbParameter> parameter = new List<DbParameter>();
  5171. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn025', " + Quantity + ",1,2,'')";
  5172. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5173. 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,
  5174. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5175. FROM
  5176. ICSTransfer a
  5177. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  5178. LEFT JOIN (
  5179. SELECT
  5180. b.TransCode,
  5181. b.TransSequence,
  5182. SUM ( isnull( Quantity, 0 ) ) LOTQTY
  5183. FROM
  5184. ICSInventoryLot a
  5185. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo
  5186. AND a.Type= '19'
  5187. WHERE
  5188. isnull( a.EATTRIBUTE1, '' ) = ''
  5189. GROUP BY
  5190. b.TransCode,
  5191. b.TransSequence
  5192. ) c ON a.TransferNO= c.TransCode
  5193. AND a.Sequence= c.TransSequence
  5194. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID
  5195. AND a.WorkPoint= e.WorkPoint
  5196. WHERE
  5197. 1 = 1
  5198. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  5199. and a.WorkPoint='{WorkPoint}'";
  5200. sql = string.Format(sql, Figure);
  5201. return Repository().FindTableBySql(sql.ToString());
  5202. }
  5203. /// <summary>
  5204. /// 锐腾两步调入单生成条码
  5205. /// </summary>
  5206. /// <param name="TransferNO"></param>
  5207. /// <param name="Sequence"></param>
  5208. /// <param name="keyValue"></param>
  5209. /// <param name="WorkPoint"></param>
  5210. /// <returns></returns>
  5211. public int SubmitFormTransfer(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  5212. {
  5213. var queryParam = keyValue.ToJObject();
  5214. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5215. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5216. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5217. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5218. decimal LOTQTY = minPackQty;
  5219. Sequence = Sequence.Replace("~", "");
  5220. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  5221. string sql = string.Empty;
  5222. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5223. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5224. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5225. string sqls = string.Empty;
  5226. string Colspan = "";
  5227. string str1 = "";
  5228. List<string> ExtensionIDList = new List<string>();
  5229. #region 装箱的功能
  5230. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5231. string VenCode = queryParam["VenCode"].ToString();
  5232. int PackCount = 0;//每箱放的数量
  5233. int Pack_YuShu = 0;//需要平摊的数量
  5234. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5235. List<PackModel> List_Pack = new List<PackModel>();
  5236. int ZQty = 0;
  5237. if (createPackCount > 0)
  5238. {
  5239. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5240. if (Pack_YuShu == 0)
  5241. {
  5242. PackCount = (createPageCount / createPackCount);
  5243. }
  5244. else
  5245. {
  5246. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5247. }
  5248. for (int jj = 0; jj < createPackCount; jj++)
  5249. {
  5250. object CARID = Guid.NewGuid();
  5251. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5252. sql += @" INSERT INTO dbo.ICSContainer
  5253. ( ID,ContainerCode ,
  5254. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5255. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5256. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5257. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5258. PackModel PP = new PackModel();
  5259. PP.ID = CARID.ToString();
  5260. PP.PackCode = Carton;
  5261. if (jj < Pack_YuShu)
  5262. {
  5263. PP.FristBarIndex = ZQty;
  5264. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5265. }
  5266. else
  5267. {
  5268. PP.FristBarIndex = ZQty;
  5269. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5270. }
  5271. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5272. List_Pack.Add(PP);
  5273. }
  5274. }
  5275. #endregion
  5276. for (int i = 0; i < createPageCount; i++)
  5277. {
  5278. if (i + 1 == createPageCount)
  5279. {
  5280. if (minPackQty * createPageCount > thisCreateQty)
  5281. {
  5282. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5283. }
  5284. }
  5285. 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();
  5286. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5287. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5288. bool flag = true;
  5289. foreach (var item in ExtensionIDList)
  5290. {
  5291. if (item == Colspan + WorkPoint)
  5292. {
  5293. flag = false;
  5294. }
  5295. }
  5296. if (ExtensionID == null && flag == true)
  5297. {
  5298. str1 = Guid.NewGuid().ToString();
  5299. 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)
  5300. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5301. 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(),
  5302. MUSER, MUSERNAME, WorkPoints);
  5303. }
  5304. else if (ExtensionID != null)
  5305. {
  5306. str1 = ExtensionID.ToString();
  5307. }
  5308. ExtensionIDList.Add(Colspan + WorkPoint);
  5309. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5310. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5311. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5312. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5313. sql += string.Format(@"insert into ICSInventoryLot
  5314. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5315. select
  5316. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','20','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5317. from ICSTransfer a where a.TransferNO='{6}' and a.Sequence='{7}' and a.WorkPoint='{5}' ",
  5318. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5319. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5320. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5321. sql += "\r\n";
  5322. //装箱的功能
  5323. if (List_Pack.Count > 0)
  5324. {
  5325. PackModel mm = new PackModel();
  5326. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5327. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5328. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5329. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5330. }
  5331. }
  5332. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5333. return count;
  5334. }
  5335. public object GetDecimalDigits()
  5336. {
  5337. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5338. try
  5339. {
  5340. string sql = string.Empty;
  5341. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
  5342. object Figure = SqlHelper.ExecuteScalar(sql);
  5343. return Figure;
  5344. }
  5345. catch (Exception ex)
  5346. {
  5347. throw new Exception(ex.Message.ToString());
  5348. }
  5349. }
  5350. /// <summary>
  5351. /// 生成条码导出
  5352. /// </summary>
  5353. /// <param name="ProductBrand"></param>
  5354. /// <param name="cCusName"></param>
  5355. /// <param name="DesignAddRate"></param>
  5356. /// <returns></returns>
  5357. public DataTable StatementExportAll(string Type, string ID)
  5358. {
  5359. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5360. string sql = string.Empty;
  5361. object Figure = GetDecimalDigits();
  5362. string TableCode = string.Empty;
  5363. #region sql语句
  5364. if (Type == "1") //生产退料
  5365. {
  5366. 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 数量
  5367. ,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
  5368. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5369. ,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,
  5370. a.EATTRIBUTE9,a.EATTRIBUTE10
  5371. from ICSMOApplyNegDetail a
  5372. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5373. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5374. left join (
  5375. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5376. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  5377. where isnull(ee.EATTRIBUTE1,'')=''
  5378. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5379. )c
  5380. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5381. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5382. where d.Type='1' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5383. TableCode = "ICSMOApplyNegDetail";
  5384. }
  5385. if (Type == "2") //委外退料
  5386. {
  5387. 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 数量
  5388. ,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
  5389. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5390. ,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,
  5391. a.EATTRIBUTE9,a.EATTRIBUTE10
  5392. from ICSOApplyNegDetail a
  5393. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5394. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5395. left join (
  5396. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5397. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  5398. where isnull(ee.EATTRIBUTE1,'')=''
  5399. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5400. )c
  5401. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5402. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5403. WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5404. TableCode = "ICSOApplyNegDetail";
  5405. }
  5406. if (Type == "3")//工单成品生成条码
  5407. {
  5408. sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
  5409. ,CAST( a.Quantity AS DECIMAL(38,{0})) as ,CAST( a.Amount as DECIMAL(38,{0})) as
  5410. ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5411. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5412. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5413. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5414. a.EATTRIBUTE9,a.EATTRIBUTE10
  5415. from ICSMO a
  5416. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5417. left join (
  5418. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5419. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  5420. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5421. )c
  5422. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5423. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5424. WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
  5425. TableCode = "ICSMO";
  5426. }
  5427. if (Type == "4")//销售退货
  5428. {
  5429. 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 数量
  5430. ,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
  5431. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5432. ,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,
  5433. a.EATTRIBUTE9,a.EATTRIBUTE10
  5434. from ICSSDN a
  5435. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5436. left join (
  5437. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5438. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  5439. where isnull(ee.EATTRIBUTE1,'')=''
  5440. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5441. )c
  5442. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5443. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5444. where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
  5445. TableCode = "ICSSDN";
  5446. }
  5447. if (Type == "5")//其它入库生成条码
  5448. {
  5449. 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 料品单位,
  5450. 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
  5451. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5452. ,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,
  5453. a.EATTRIBUTE9,a.EATTRIBUTE10
  5454. from ICSOtherIn a
  5455. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5456. left join (
  5457. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5458. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  5459. where isnull(ee.EATTRIBUTE1,'')=''
  5460. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5461. )c
  5462. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5463. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5464. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5465. TableCode = "ICSOtherIn";
  5466. }
  5467. if (Type == "6")//归还单生成条码
  5468. {
  5469. 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 料品单位
  5470. ,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
  5471. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5472. ,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,
  5473. a.EATTRIBUTE9,a.EATTRIBUTE10
  5474. from ICSReturn a
  5475. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5476. left join (
  5477. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5478. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  5479. where isnull(ee.EATTRIBUTE1,'')=''
  5480. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5481. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5482. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5483. where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5484. TableCode = "ICSReturn";
  5485. }
  5486. if (Type == "7")//*审核到货单生成条码
  5487. {
  5488. 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 料品单位,
  5489. 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
  5490. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5491. ,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,
  5492. a.EATTRIBUTE9,a.EATTRIBUTE10
  5493. from ICSDeliveryNotice a
  5494. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5495. left join (
  5496. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5497. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  5498. where isnull(ee.EATTRIBUTE1,'')=''
  5499. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5500. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5501. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5502. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5503. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5504. where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5505. TableCode = "ICSDeliveryNotice";
  5506. }
  5507. if (Type == "8")//审核委外到货单生成条码
  5508. {
  5509. 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 创建时间,
  5510. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5511. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5512. ,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,
  5513. a.EATTRIBUTE9,a.EATTRIBUTE10
  5514. from ICSODeliveryNotice a
  5515. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5516. left join (
  5517. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5518. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  5519. where isnull(ee.EATTRIBUTE1,'')=''
  5520. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5521. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5522. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5523. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5524. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5525. where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5526. TableCode = "ICSODeliveryNotice";
  5527. }
  5528. if (Type == "9")//开立得成品入库单 生成条码
  5529. {
  5530. 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 数量 ,
  5531. 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
  5532. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5533. ,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,
  5534. a.EATTRIBUTE9,a.EATTRIBUTE10
  5535. from ICSManufactureReceive a
  5536. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5537. left join (
  5538. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5539. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  5540. where isnull(ee.EATTRIBUTE1,'')=''
  5541. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5542. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5543. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5544. where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5545. TableCode = "ICSManufactureReceive";
  5546. }
  5547. if (Type == "10")//采购拒收单
  5548. {
  5549. 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 料品单位,
  5550. 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 ,
  5551. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5552. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5553. ,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,
  5554. a.EATTRIBUTE9,a.EATTRIBUTE10
  5555. from ICSDeliveryNotice a
  5556. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5557. left join (
  5558. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5559. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  5560. where isnull(ee.EATTRIBUTE1,'')=''
  5561. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5562. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5563. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5564. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5565. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5566. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5567. TableCode = "ICSDeliveryNotice";
  5568. }
  5569. if (Type == "11") //委外拒收单生成条码
  5570. {
  5571. 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 料品单位,
  5572. 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
  5573. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5574. ,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,
  5575. a.EATTRIBUTE9,a.EATTRIBUTE10
  5576. from ICSODeliveryNotice a
  5577. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5578. left join (
  5579. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5580. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  5581. where isnull(ee.EATTRIBUTE1,'')=''
  5582. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5583. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5584. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5585. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5586. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5587. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5588. TableCode = "ICSODeliveryNotice";
  5589. }
  5590. if (Type == "12")//领料申请退料生成条码
  5591. {
  5592. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5593. 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
  5594. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5595. ,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,
  5596. a.EATTRIBUTE9,a.EATTRIBUTE10
  5597. from ICSMOApplyNegDetail a
  5598. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5599. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5600. left join (
  5601. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5602. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  5603. where isnull(ee.EATTRIBUTE1,'')=''
  5604. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5605. )c
  5606. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5607. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5608. WHERE d.Type='2' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5609. TableCode = "ICSMOApplyNegDetail";
  5610. }
  5611. if (Type == "13")//材料出库退料
  5612. {
  5613. sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5614. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5615. 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
  5616. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5617. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  5618. from ICSMOApplyNegDetail a
  5619. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5620. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5621. left join (
  5622. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5623. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  5624. where isnull(ee.EATTRIBUTE1,'')=''
  5625. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5626. )c
  5627. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5628. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5629. WHERE d.Type='3' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5630. TableCode = "ICSMOApplyNegDetail";
  5631. }
  5632. if (Type == "14")//委外领料申请退料
  5633. {
  5634. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5635. 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
  5636. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5637. ,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,
  5638. a.EATTRIBUTE9,a.EATTRIBUTE10
  5639. from ICSOApplyNegDetail a
  5640. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5641. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5642. left join (
  5643. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5644. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  5645. where isnull(ee.EATTRIBUTE1,'')=''
  5646. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5647. )c
  5648. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5649. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5650. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5651. TableCode = "ICSOApplyNegDetail";
  5652. }
  5653. if (Type == "15")//委外材料出库退料
  5654. {
  5655. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5656. 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
  5657. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5658. ,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,
  5659. a.EATTRIBUTE9,a.EATTRIBUTE10
  5660. from ICSOApplyNegDetail a
  5661. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5662. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5663. left join (
  5664. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5665. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  5666. where isnull(ee.EATTRIBUTE1,'')=''
  5667. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5668. )c
  5669. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5670. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5671. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  5672. TableCode = "ICSOApplyNegDetail";
  5673. }
  5674. if (Type == "16") //返工工单
  5675. {
  5676. 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 单位,
  5677. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5678. 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
  5679. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5680. ,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,
  5681. a.EATTRIBUTE9,a.EATTRIBUTE10
  5682. from ICSMOPick a
  5683. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5684. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5685. left join (
  5686. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5687. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  5688. where isnull(ee.EATTRIBUTE1,'')=''
  5689. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5690. )c
  5691. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5692. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5693. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5694. TableCode = "ICSMOPick";
  5695. }
  5696. if (Type == "17")//检验不合格条码重新生成
  5697. {
  5698. sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5699. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5700. CAST(c.Amount AS DECIMAL(38,{0})) as ,a.MUSERName,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5701. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5702. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5703. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5704. a.EATTRIBUTE9,a.EATTRIBUTE10
  5705. from ICSInspection a
  5706. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5707. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5708. left join (
  5709. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5710. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  5711. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  5712. )c
  5713. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  5714. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5715. where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5716. TableCode = "ICSInspection";
  5717. }
  5718. #endregion
  5719. sql = sql + " and a.WorkPoint='{1}'";
  5720. sql = string.Format(sql, Figure, WorkPoint);
  5721. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5722. string sqls = @"SELECT ColCode,ColName,Enable
  5723. from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
  5724. DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
  5725. foreach (DataRow drE in dtExtension.Rows)
  5726. {
  5727. if (dt.Columns.Contains(drE["ColCode"].ToString()))
  5728. {
  5729. if (!Convert.ToBoolean(drE["Enable"]))
  5730. {
  5731. dt.Columns.Remove(drE["ColCode"].ToString());
  5732. }
  5733. else if (Convert.ToBoolean(drE["Enable"]))
  5734. {
  5735. dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
  5736. }
  5737. }
  5738. }
  5739. DataTable dtColumn = ColumnEnable(TableCode);
  5740. foreach (DataRow drC in dtColumn.Rows)
  5741. {
  5742. if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
  5743. {
  5744. if (!Convert.ToBoolean(drC["Enable"]))
  5745. {
  5746. dt.Columns.Remove(drC["ColumnCode"].ToString());
  5747. }
  5748. else if (Convert.ToBoolean(drC["Enable"]))
  5749. {
  5750. dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
  5751. }
  5752. }
  5753. }
  5754. return dt;
  5755. }
  5756. public DataTable ColumnEnable(string TableCode)
  5757. {
  5758. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5759. string sql = string.Empty;
  5760. sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
  5761. sql = string.Format(sql, TableCode, WorkPoint);
  5762. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5763. return dt;
  5764. }
  5765. public object GetQiSetNum(string keyValue)
  5766. {
  5767. decimal Num = 0;
  5768. string msg = "";
  5769. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  5770. string result = HttpPost(APIURL, keyValue);
  5771. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  5772. string MessAge = Obj["Message"].ToString();
  5773. string Success = Obj["Success"].ToString();
  5774. if (Success.ToUpper() == "FALSE")
  5775. {
  5776. msg = MessAge;
  5777. }
  5778. else
  5779. {
  5780. if (MessAge == "U9")
  5781. {
  5782. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  5783. int date = Convert.ToInt32(Date);
  5784. Num = date;
  5785. }
  5786. else
  5787. {
  5788. if (msg == "")
  5789. {
  5790. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  5791. foreach (var item in res)
  5792. {
  5793. JObject jo = (JObject)item;
  5794. //var aa= jo["min_lotqty"].ToString();
  5795. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  5796. }
  5797. }
  5798. }
  5799. }
  5800. var Header = new
  5801. {
  5802. msg = msg,
  5803. Num = Num,
  5804. };
  5805. return Header;
  5806. }
  5807. //接口api解析
  5808. public static string HttpPost(string url, string body)
  5809. {
  5810. try
  5811. {
  5812. Encoding encoding = Encoding.UTF8;
  5813. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  5814. request.Method = "POST";
  5815. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  5816. request.ContentType = "application/json; charset=utf-8";
  5817. byte[] buffer = encoding.GetBytes(body);
  5818. request.ContentLength = buffer.Length;
  5819. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  5820. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  5821. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  5822. {
  5823. return reader.ReadToEnd();
  5824. }
  5825. }
  5826. catch (WebException ex)
  5827. {
  5828. throw new Exception(ex.Message);
  5829. }
  5830. }
  5831. public DataTable GetLoadShow()
  5832. {
  5833. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5834. string sql = @"
  5835. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  5836. return Repository().FindTableBySql(sql.ToString());
  5837. }
  5838. //不合格条码重新生成入库
  5839. public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
  5840. {
  5841. DataTable dt = new DataTable();
  5842. var queryParam = queryJson.ToJObject();
  5843. List<DbParameter> parameter = new List<DbParameter>();
  5844. object Figure = GetDecimalDigits();
  5845. #region [SQL]
  5846. string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  5847. CAST(a.UnqualifiedQuantity AS DECIMAL(38,{0})) as Quantity ,
  5848. CAST(c.Amount AS DECIMAL(38,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY,d.ExtensionID
  5849. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5850. ,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,
  5851. a.EATTRIBUTE9,a.EATTRIBUTE10
  5852. from ICSInspection a
  5853. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5854. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5855. left join (
  5856. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5857. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  5858. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  5859. )c
  5860. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  5861. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5862. where a.UnqualifiedQuantity>0 and a.Enable='1'";
  5863. sql = string.Format(sql, Figure);
  5864. #endregion
  5865. if (!string.IsNullOrWhiteSpace(queryJson))
  5866. {
  5867. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  5868. {
  5869. sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
  5870. }
  5871. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  5872. {
  5873. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  5874. }
  5875. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  5876. {
  5877. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  5878. }
  5879. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  5880. {
  5881. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  5882. }
  5883. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  5884. {
  5885. string POStatus = queryParam["POStatus"].ToString();
  5886. if (POStatus == "0")
  5887. {
  5888. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  5889. }
  5890. else if (POStatus == "1")
  5891. {
  5892. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
  5893. }
  5894. else
  5895. {
  5896. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
  5897. }
  5898. }
  5899. }
  5900. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  5901. {
  5902. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  5903. }
  5904. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5905. }
  5906. public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
  5907. {
  5908. DataTable dt = new DataTable();
  5909. object Figure = GetDecimalDigits();
  5910. List<DbParameter> parameter = new List<DbParameter>();
  5911. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5912. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  5913. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5914. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5915. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  5916. case when isnull(e.ID,'')='' then '' else '' end as isInspection,
  5917. case when g.InvIQC='1' then '是' else '否' end as isExemption
  5918. from ICSInventoryLot a
  5919. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  5920. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  5921. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  5922. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5923. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5924. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  5925. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  5926. WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
  5927. sql = string.Format(sql, Figure);
  5928. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5929. }
  5930. public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
  5931. {
  5932. var queryParam = keyValue.ToJObject();
  5933. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5934. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5935. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5936. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5937. decimal LOTQTY = minPackQty;
  5938. // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5939. string sql = string.Empty;
  5940. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5941. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5942. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5943. string sqls = string.Empty;
  5944. string Colspan = "";
  5945. string str1 = "";
  5946. List<string> ExtensionIDList = new List<string>();
  5947. for (int i = 0; i < createPageCount; i++)
  5948. {
  5949. if (i + 1 == createPageCount)
  5950. {
  5951. if (minPackQty * createPageCount > thisCreateQty)
  5952. {
  5953. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5954. }
  5955. }
  5956. string LotNo = GetNewLotNo(OldLotNo);
  5957. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5958. select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}',TransID from ICSInventoryLotDetail where LotNo='{4}'",
  5959. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  5960. sql += string.Format(@"
  5961. insert into ICSInventoryLot
  5962. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
  5963. select
  5964. newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
  5965. from ICSInventoryLot a
  5966. inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
  5967. where a.LotNo='{4}' and a.WorkPoint='{3}'",
  5968. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  5969. sql += "\r\n";
  5970. }
  5971. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5972. return count;
  5973. }
  5974. public string GetNewLotNo(string LotNO)
  5975. {
  5976. DataTable dt = new DataTable();
  5977. List<DbParameter> parameter = new List<DbParameter>();
  5978. //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
  5979. string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
  5980. ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
  5981. sql = string.Format(sql, LotNO);
  5982. dt = Repository().FindTableBySql(sql.ToString());
  5983. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
  5984. {
  5985. return LotNO + "-1";
  5986. }
  5987. else
  5988. {
  5989. string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
  5990. int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
  5991. return LotNO + "-" + COUNT.ToString();
  5992. }
  5993. }
  5994. public DataTable SelGDLX()
  5995. {
  5996. string sql = string.Empty;
  5997. DataTable dt = null;
  5998. sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
  5999. dt = SqlHelper.GetDataTableBySql(sql);
  6000. return dt;
  6001. }
  6002. public DataTable GetFreeEnble()
  6003. {
  6004. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6005. string sql = @"
  6006. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  6007. return Repository().FindTableBySql(sql.ToString());
  6008. }
  6009. public DataTable GetInvBatchEnable(string InvCode)
  6010. {
  6011. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6012. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'";
  6013. sql = string.Format(sql, InvCode, WorkPoints);
  6014. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6015. return dt;
  6016. }
  6017. //副产品
  6018. public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
  6019. {
  6020. DataTable dt = new DataTable();
  6021. var queryParam = queryJson.ToJObject();
  6022. List<DbParameter> parameter = new List<DbParameter>();
  6023. object Figure = GetDecimalDigits();
  6024. #region [SQL]
  6025. 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,
  6026. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  6027. 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
  6028. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6029. ,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,
  6030. a.EATTRIBUTE9,a.EATTRIBUTE10,b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  6031. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10
  6032. from ICSMOPick a
  6033. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  6034. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6035. left join (
  6036. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6037. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  6038. where isnull(ee.EATTRIBUTE1,'')=''
  6039. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6040. )c
  6041. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6042. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6043. where a.EATTRIBUTE1='1' ";
  6044. sql = string.Format(sql, Figure);
  6045. #endregion
  6046. if (!string.IsNullOrWhiteSpace(queryJson))
  6047. {
  6048. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6049. {
  6050. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6051. }
  6052. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6053. {
  6054. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6055. }
  6056. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6057. {
  6058. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6059. }
  6060. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6061. {
  6062. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6063. }
  6064. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6065. {
  6066. string POStatus = queryParam["POStatus"].ToString();
  6067. if (POStatus == "0")
  6068. {
  6069. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6070. }
  6071. else if (POStatus == "1")
  6072. {
  6073. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6074. }
  6075. else
  6076. {
  6077. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6078. }
  6079. }
  6080. }
  6081. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6082. {
  6083. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6084. }
  6085. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6086. {
  6087. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6088. }
  6089. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6090. }
  6091. /// <summary>
  6092. /// 锐腾调入单生成条码
  6093. /// </summary>
  6094. /// <param name="queryJson"></param>
  6095. /// <param name="jqgridparam"></param>
  6096. /// <returns></returns>
  6097. public DataTable GetGridJsonTransfer(string queryJson, ref Pagination jqgridparam)
  6098. {
  6099. DataTable dt = new DataTable();
  6100. var queryParam = queryJson.ToJObject();
  6101. List<DbParameter> parameter = new List<DbParameter>();
  6102. object Figure = GetDecimalDigits();
  6103. #region [SQL]
  6104. 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
  6105. FROM ICSTransfer a
  6106. LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  6107. LEFT JOIN ICSInventoryLotDetail c ON a.TransferNO=c.TransCode AND c.WorkPoint=a.WorkPoint
  6108. LEFT JOIN ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint
  6109. left JOIN ICSExtension f ON f.Id=a.ExtensionID AND f.WorkPoint=a.WorkPoint
  6110. WHERE a.Type='2'
  6111. AND Isnull(a.Status,'')<>3
  6112. ";
  6113. sql = string.Format(sql, Figure);
  6114. #endregion
  6115. if (!string.IsNullOrWhiteSpace(queryJson))
  6116. {
  6117. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6118. {
  6119. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  6120. }
  6121. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6122. {
  6123. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6124. }
  6125. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6126. {
  6127. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6128. }
  6129. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6130. {
  6131. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6132. }
  6133. }
  6134. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6135. {
  6136. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6137. }
  6138. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6139. {
  6140. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6141. }
  6142. 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
  6143. where 1=1 ";
  6144. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6145. {
  6146. string POStatus = queryParam["POStatus"].ToString();
  6147. if (POStatus == "0")
  6148. {
  6149. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6150. }
  6151. else if (POStatus == "1")
  6152. {
  6153. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6154. }
  6155. else
  6156. {
  6157. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6158. }
  6159. }
  6160. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6161. }
  6162. /// <summary>
  6163. /// 采购入库生成条码
  6164. /// </summary>
  6165. /// <param name="queryJson"></param>
  6166. /// <param name="jqgridparam"></param>
  6167. /// <returns></returns>
  6168. ///
  6169. public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6170. {
  6171. DataTable dt = new DataTable();
  6172. var queryParam = queryJson.ToJObject();
  6173. List<DbParameter> parameter = new List<DbParameter>();
  6174. object Figure = GetDecimalDigits();
  6175. #region [SQL]
  6176. 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,
  6177. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6178. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6179. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6180. ,c.LOTQTY
  6181. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6182. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6183. ,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,
  6184. a.EATTRIBUTE9,a.EATTRIBUTE10,d.VenCode,g.VenName,b.EATTRIBUTE11 as ManufacturerInvCode,a.EATTRIBUTE14 AS SupplierBatch,
  6185. b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  6186. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10,
  6187. isnull(a.Quantity,'') as MPQ
  6188. from ICSPurchaseReceive a
  6189. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6190. left join (
  6191. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6192. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6193. where isnull(ee.EATTRIBUTE1,'')=''
  6194. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6195. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6196. left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6197. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6198. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6199. left join dbo.ICSVendor g on d.VenCode=g.VenCode and d.WorkPoint=g.WorkPoint
  6200. where a.Type='1' ";
  6201. sql = string.Format(sql, Figure);
  6202. #endregion
  6203. if (!string.IsNullOrWhiteSpace(queryJson))
  6204. {
  6205. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6206. {
  6207. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6208. }
  6209. if (!string.IsNullOrWhiteSpace(queryParam["SourceCode"].ToString()))
  6210. {
  6211. sql += " and d.POCode like '%" + queryParam["SourceCode"].ToString() + "%' ";
  6212. }
  6213. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6214. {
  6215. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6216. }
  6217. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6218. {
  6219. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6220. }
  6221. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  6222. {
  6223. sql += " and d.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  6224. }
  6225. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  6226. {
  6227. sql += " and g.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  6228. }
  6229. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6230. {
  6231. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6232. }
  6233. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6234. {
  6235. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6236. }
  6237. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6238. {
  6239. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6240. }
  6241. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6242. {
  6243. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6244. }
  6245. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6246. {
  6247. string POStatus = queryParam["POStatus"].ToString();
  6248. if (POStatus == "0")
  6249. {
  6250. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6251. }
  6252. else if (POStatus == "1")
  6253. {
  6254. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6255. }
  6256. else
  6257. {
  6258. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6259. }
  6260. }
  6261. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  6262. {
  6263. string WHStatus = queryParam["WHStatus"].ToString();
  6264. if (WHStatus == "0")
  6265. {
  6266. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6267. }
  6268. else if (WHStatus == "1")
  6269. {
  6270. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  6271. }
  6272. else
  6273. {
  6274. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  6275. }
  6276. }
  6277. }
  6278. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6279. {
  6280. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6281. }
  6282. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6283. {
  6284. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6285. }
  6286. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6287. }
  6288. // public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6289. // {
  6290. // DataTable dt = new DataTable();
  6291. // var queryParam = queryJson.ToJObject();
  6292. // List<DbParameter> parameter = new List<DbParameter>();
  6293. // object Figure = GetDecimalDigits();
  6294. // #region [SQL]
  6295. // 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,
  6296. // CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6297. // ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6298. // ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6299. // ,c.LOTQTY
  6300. // ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6301. // ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6302. // ,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,
  6303. // a.EATTRIBUTE9,a.EATTRIBUTE10,
  6304. // isnull(b.EATTRIBUTE2,'') as MPQ
  6305. // from ICSPurchaseReceive a
  6306. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6307. // left join (
  6308. // select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6309. // left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6310. // where isnull(ee.EATTRIBUTE1,'')=''
  6311. // group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6312. // ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6313. // left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6314. // left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6315. // left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6316. // where a.Type='1' ";
  6317. // sql = string.Format(sql, Figure);
  6318. // #endregion
  6319. // if (!string.IsNullOrWhiteSpace(queryJson))
  6320. // {
  6321. // if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6322. // {
  6323. // sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6324. // }
  6325. // if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6326. // {
  6327. // sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6328. // }
  6329. // if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6330. // {
  6331. // sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6332. // }
  6333. // if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6334. // {
  6335. // sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6336. // }
  6337. // }
  6338. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6339. // {
  6340. // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6341. // }
  6342. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6343. // {
  6344. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6345. // }
  6346. // 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,
  6347. //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
  6348. // where 1=1 ";
  6349. // if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6350. // {
  6351. // string POStatus = queryParam["POStatus"].ToString();
  6352. // if (POStatus == "0")
  6353. // {
  6354. // //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6355. // }
  6356. // else if (POStatus == "1")
  6357. // {
  6358. // sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6359. // }
  6360. // else
  6361. // {
  6362. // sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6363. // }
  6364. // }
  6365. // return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6366. // }
  6367. /// <summary>
  6368. /// 采购入库获取单据信息
  6369. /// </summary>
  6370. /// <param name="FGGDMOCode"></param>
  6371. /// <param name="Sequence"></param>
  6372. /// <param name="WorkPoint"></param>
  6373. /// <returns></returns>
  6374. public DataTable GetSubGridJsonPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6375. {
  6376. DataTable dt = new DataTable();
  6377. object Figure = GetDecimalDigits();
  6378. List<DbParameter> parameter = new List<DbParameter>();
  6379. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6380. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6381. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6382. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6383. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6384. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6385. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6386. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays
  6387. ,isnull(b.EATTRIBUTE2,'') as MPQ
  6388. , 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 ,
  6389. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,b.EATTRIBUTE7 AS EATTRIBUTE7 ,b.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6390. FROM ICSPurchaseReceive a
  6391. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6392. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6393. FROM ICSInventoryLot a
  6394. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '22'
  6395. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6396. GROUP BY
  6397. b.TransCode,
  6398. b.TransSequence
  6399. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6400. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6401. WHERE 1 = 1
  6402. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6403. //sql = string.Format(sql, Figure);
  6404. return Repository().FindTableBySql(sql.ToString());
  6405. }
  6406. /// <summary>
  6407. /// 采购入库单生成条码 保存
  6408. /// </summary>
  6409. /// <param name="RCVCode"></param>
  6410. /// <param name="Sequence"></param>
  6411. /// <param name="keyValue"></param>
  6412. /// <param name="WorkPoint"></param>
  6413. /// <returns></returns>
  6414. public int SubmitFormCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6415. {
  6416. var queryParam = keyValue.ToJObject();
  6417. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6418. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6419. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6420. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6421. decimal LOTQTY = minPackQty;
  6422. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6423. string sql = string.Empty;
  6424. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6425. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6426. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6427. string sqls = string.Empty;
  6428. string Colspan = "";
  6429. string str1 = "";
  6430. List<string> ExtensionIDList = new List<string>();
  6431. #region 装箱的功能
  6432. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6433. string VenCode = queryParam["VenCode"].ToString();
  6434. int PackCount = 0;//每箱放的数量
  6435. int Pack_YuShu = 0;//需要平摊的数量
  6436. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6437. List<PackModel> List_Pack = new List<PackModel>();
  6438. int ZQty = 0;
  6439. if (createPackCount > 0)
  6440. {
  6441. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6442. if (Pack_YuShu == 0)
  6443. {
  6444. PackCount = (createPageCount / createPackCount);
  6445. }
  6446. else
  6447. {
  6448. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6449. }
  6450. for (int jj = 0; jj < createPackCount; jj++)
  6451. {
  6452. object CARID = Guid.NewGuid();
  6453. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6454. sql += @" INSERT INTO dbo.ICSContainer
  6455. ( ID,ContainerCode ,
  6456. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6457. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6458. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6459. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6460. PackModel PP = new PackModel();
  6461. PP.ID = CARID.ToString();
  6462. PP.PackCode = Carton;
  6463. if (jj < Pack_YuShu)
  6464. {
  6465. PP.FristBarIndex = ZQty;
  6466. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6467. }
  6468. else
  6469. {
  6470. PP.FristBarIndex = ZQty;
  6471. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6472. }
  6473. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6474. List_Pack.Add(PP);
  6475. }
  6476. }
  6477. #endregion
  6478. for (int i = 0; i < createPageCount; i++)
  6479. {
  6480. if (i + 1 == createPageCount)
  6481. {
  6482. if (minPackQty * createPageCount > thisCreateQty)
  6483. {
  6484. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6485. }
  6486. }
  6487. 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();
  6488. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6489. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6490. bool flag = true;
  6491. foreach (var item in ExtensionIDList)
  6492. {
  6493. if (item == Colspan + WorkPoint)
  6494. {
  6495. flag = false;
  6496. }
  6497. }
  6498. if (ExtensionID == null && flag == true)
  6499. {
  6500. str1 = Guid.NewGuid().ToString();
  6501. 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)
  6502. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6503. 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(),
  6504. MUSER, MUSERNAME, WorkPoints);
  6505. }
  6506. else if (ExtensionID != null)
  6507. {
  6508. str1 = ExtensionID.ToString();
  6509. }
  6510. ExtensionIDList.Add(Colspan + WorkPoint);
  6511. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6512. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6513. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6514. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6515. sql += string.Format(@"
  6516. insert into ICSInventoryLot
  6517. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6518. select
  6519. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6520. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6521. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6522. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6523. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6524. sql += "\r\n";
  6525. //装箱的功能
  6526. if (List_Pack.Count > 0)
  6527. {
  6528. PackModel mm = new PackModel();
  6529. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6530. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6531. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6532. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6533. }
  6534. }
  6535. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6536. return count;
  6537. }
  6538. /// <summary>
  6539. /// 采购入库单生成条码 保存(新)
  6540. /// </summary>
  6541. /// <param name="RCVCode"></param>
  6542. /// <param name="Sequence"></param>
  6543. /// <param name="keyValue"></param>
  6544. /// <param name="WorkPoint"></param>
  6545. /// <returns></returns>
  6546. public int SubmitFormCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6547. {
  6548. var queryParam = keyValue.ToJObject();
  6549. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6550. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6551. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6552. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  6553. List<decimal> lotQtys = new List<decimal>();
  6554. foreach (var jLotno in jLotnos)
  6555. {
  6556. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  6557. lotQtys.Add(qty);
  6558. }
  6559. int createPageCount = lotQtys.Count();
  6560. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6561. string sql = string.Empty;
  6562. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6563. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6564. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6565. string sqls = string.Empty;
  6566. string Colspan = "";
  6567. string str1 = "";
  6568. List<string> ExtensionIDList = new List<string>();
  6569. #region 装箱的功能
  6570. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6571. string VenCode = queryParam["VenCode"].ToString();
  6572. int PackCount = 0;//每箱放的数量
  6573. int Pack_YuShu = 0;//需要平摊的数量
  6574. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6575. List<PackModel> List_Pack = new List<PackModel>();
  6576. int ZQty = 0;
  6577. if (createPackCount > 0)
  6578. {
  6579. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6580. if (Pack_YuShu == 0)
  6581. {
  6582. PackCount = (createPageCount / createPackCount);
  6583. }
  6584. else
  6585. {
  6586. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6587. }
  6588. for (int jj = 0; jj < createPackCount; jj++)
  6589. {
  6590. object CARID = Guid.NewGuid();
  6591. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6592. sql += @" INSERT INTO dbo.ICSContainer
  6593. ( ID,ContainerCode ,
  6594. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6595. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6596. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6597. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6598. PackModel PP = new PackModel();
  6599. PP.ID = CARID.ToString();
  6600. PP.PackCode = Carton;
  6601. if (jj < Pack_YuShu)
  6602. {
  6603. PP.FristBarIndex = ZQty;
  6604. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6605. }
  6606. else
  6607. {
  6608. PP.FristBarIndex = ZQty;
  6609. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6610. }
  6611. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6612. List_Pack.Add(PP);
  6613. }
  6614. }
  6615. #endregion
  6616. for (int i = 0; i < createPageCount; i++)
  6617. {
  6618. //if (i + 1 == createPageCount)
  6619. //{
  6620. // if (minPackQty * createPageCount > thisCreateQty)
  6621. // {
  6622. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6623. // }
  6624. //}
  6625. decimal LOTQTY = lotQtys[i];
  6626. 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();
  6627. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6628. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6629. bool flag = true;
  6630. foreach (var item in ExtensionIDList)
  6631. {
  6632. if (item == Colspan + WorkPoint)
  6633. {
  6634. flag = false;
  6635. }
  6636. }
  6637. if (ExtensionID == null && flag == true)
  6638. {
  6639. str1 = Guid.NewGuid().ToString();
  6640. 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)
  6641. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6642. 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(),
  6643. MUSER, MUSERNAME, WorkPoints);
  6644. }
  6645. else if (ExtensionID != null)
  6646. {
  6647. str1 = ExtensionID.ToString();
  6648. }
  6649. ExtensionIDList.Add(Colspan + WorkPoint);
  6650. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6651. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6652. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6653. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6654. try
  6655. {
  6656. sql += string.Format(@"
  6657. insert into ICSInventoryLot
  6658. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6659. select
  6660. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6661. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6662. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  6663. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6664. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6665. sql += "\r\n";
  6666. }
  6667. catch (Exception EX)
  6668. {
  6669. throw EX;
  6670. }
  6671. //装箱的功能
  6672. if (List_Pack.Count > 0)
  6673. {
  6674. PackModel mm = new PackModel();
  6675. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6676. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6677. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6678. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6679. }
  6680. }
  6681. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6682. return count;
  6683. }
  6684. /// <summary>
  6685. /// 委外采购入库生成条码
  6686. /// </summary>
  6687. /// <param name="queryJson"></param>
  6688. /// <param name="jqgridparam"></param>
  6689. /// <returns></returns>
  6690. public DataTable GetGridJsonOutPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6691. {
  6692. DataTable dt = new DataTable();
  6693. var queryParam = queryJson.ToJObject();
  6694. List<DbParameter> parameter = new List<DbParameter>();
  6695. object Figure = GetDecimalDigits();
  6696. #region [SQL]
  6697. 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,
  6698. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6699. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6700. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6701. ,c.LOTQTY
  6702. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6703. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6704. ,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,
  6705. a.EATTRIBUTE9,a.EATTRIBUTE10,g.VenName,b.EATTRIBUTE1 as ICSInventoryEATTRIBUTE1 ,b.EATTRIBUTE2 as ICSInventoryEATTRIBUTE2,b.EATTRIBUTE3 as ICSInventoryEATTRIBUTE3,b.EATTRIBUTE4 as ICSInventoryEATTRIBUTE4,b.EATTRIBUTE5 as ICSInventoryEATTRIBUTE5,b.EATTRIBUTE6 as ICSInventoryEATTRIBUTE6,b.EATTRIBUTE7 as ICSInventoryEATTRIBUTE7,b.EATTRIBUTE8 as ICSInventoryEATTRIBUTE8,
  6706. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10
  6707. from ICSOutsourcingReceive a
  6708. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6709. left join (
  6710. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6711. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  6712. where isnull(ee.EATTRIBUTE1,'')=''
  6713. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6714. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6715. left join ICSOutsourcingOrder d on a.SourceCode = d.OOCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6716. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6717. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6718. left join dbo.ICSVendor g on d.VenCode=g.VenCode and d.WorkPoint=g.WorkPoint
  6719. where a.Type='1' ";
  6720. sql = string.Format(sql, Figure);
  6721. #endregion
  6722. if (!string.IsNullOrWhiteSpace(queryJson))
  6723. {
  6724. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6725. {
  6726. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6727. }
  6728. //if (!string.IsNullOrWhiteSpace(queryParam["SourceCode"].ToString()))
  6729. //{
  6730. // sql += " and d.OOCode like '%" + queryParam["SourceCode"].ToString() + "%' ";
  6731. //}
  6732. //if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  6733. //{
  6734. // sql += " and d.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  6735. //}
  6736. //if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  6737. //{
  6738. // sql += " and g.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  6739. //}
  6740. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6741. {
  6742. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6743. }
  6744. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6745. {
  6746. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6747. }
  6748. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6749. {
  6750. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6751. }
  6752. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6753. {
  6754. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6755. }
  6756. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6757. {
  6758. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6759. }
  6760. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6761. {
  6762. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6763. }
  6764. }
  6765. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6766. {
  6767. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6768. }
  6769. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6770. {
  6771. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6772. }
  6773. // 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,
  6774. //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
  6775. // where 1=1 ";
  6776. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6777. {
  6778. string POStatus = queryParam["POStatus"].ToString();
  6779. if (POStatus == "0")
  6780. {
  6781. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6782. }
  6783. else if (POStatus == "1")
  6784. {
  6785. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6786. }
  6787. else
  6788. {
  6789. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6790. }
  6791. }
  6792. //if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  6793. //{
  6794. // string WHStatus = queryParam["WHStatus"].ToString();
  6795. // if (WHStatus == "0")
  6796. // {
  6797. // //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6798. // }
  6799. // else if (WHStatus == "1")
  6800. // {
  6801. // sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  6802. // }
  6803. // else
  6804. // {
  6805. // sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  6806. // }
  6807. //}
  6808. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6809. }
  6810. /// <summary>
  6811. /// 委外采购入库获取单据信息
  6812. /// </summary>
  6813. /// <param name="FGGDMOCode"></param>
  6814. /// <param name="Sequence"></param>
  6815. /// <param name="WorkPoint"></param>
  6816. /// <returns></returns>
  6817. public DataTable GetSubGridJsonOutPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6818. {
  6819. DataTable dt = new DataTable();
  6820. object Figure = GetDecimalDigits();
  6821. List<DbParameter> parameter = new List<DbParameter>();
  6822. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6823. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6824. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6825. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6826. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6827. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6828. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6829. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  6830. , 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 ,
  6831. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,b.EATTRIBUTE7 AS EATTRIBUTE7 ,b.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6832. FROM ICSOutsourcingReceive a
  6833. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6834. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6835. FROM ICSInventoryLot a
  6836. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '23'
  6837. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6838. GROUP BY
  6839. b.TransCode,
  6840. b.TransSequence
  6841. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6842. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6843. WHERE 1 = 1
  6844. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6845. sql = string.Format(sql, Figure);
  6846. return Repository().FindTableBySql(sql.ToString());
  6847. }
  6848. /// <summary>
  6849. /// 委外采购入库单生成条码 保存
  6850. /// </summary>
  6851. /// <param name="RCVCode"></param>
  6852. /// <param name="Sequence"></param>
  6853. /// <param name="keyValue"></param>
  6854. /// <param name="WorkPoint"></param>
  6855. /// <returns></returns>
  6856. public int SubmitFormWWCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6857. {
  6858. var queryParam = keyValue.ToJObject();
  6859. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6860. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6861. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6862. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6863. decimal LOTQTY = minPackQty;
  6864. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6865. string sql = string.Empty;
  6866. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6867. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6868. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6869. string sqls = string.Empty;
  6870. string Colspan = "";
  6871. string str1 = "";
  6872. List<string> ExtensionIDList = new List<string>();
  6873. #region 装箱的功能
  6874. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6875. string VenCode = queryParam["VenCode"].ToString();
  6876. int PackCount = 0;//每箱放的数量
  6877. int Pack_YuShu = 0;//需要平摊的数量
  6878. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6879. List<PackModel> List_Pack = new List<PackModel>();
  6880. int ZQty = 0;
  6881. if (createPackCount > 0)
  6882. {
  6883. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6884. if (Pack_YuShu == 0)
  6885. {
  6886. PackCount = (createPageCount / createPackCount);
  6887. }
  6888. else
  6889. {
  6890. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6891. }
  6892. for (int jj = 0; jj < createPackCount; jj++)
  6893. {
  6894. object CARID = Guid.NewGuid();
  6895. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6896. sql += @" INSERT INTO dbo.ICSContainer
  6897. ( ID,ContainerCode ,
  6898. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6899. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6900. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6901. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6902. PackModel PP = new PackModel();
  6903. PP.ID = CARID.ToString();
  6904. PP.PackCode = Carton;
  6905. if (jj < Pack_YuShu)
  6906. {
  6907. PP.FristBarIndex = ZQty;
  6908. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6909. }
  6910. else
  6911. {
  6912. PP.FristBarIndex = ZQty;
  6913. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6914. }
  6915. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6916. List_Pack.Add(PP);
  6917. }
  6918. }
  6919. #endregion
  6920. for (int i = 0; i < createPageCount; i++)
  6921. {
  6922. if (i + 1 == createPageCount)
  6923. {
  6924. if (minPackQty * createPageCount > thisCreateQty)
  6925. {
  6926. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6927. }
  6928. }
  6929. 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();
  6930. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6931. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6932. bool flag = true;
  6933. foreach (var item in ExtensionIDList)
  6934. {
  6935. if (item == Colspan + WorkPoint)
  6936. {
  6937. flag = false;
  6938. }
  6939. }
  6940. if (ExtensionID == null && flag == true)
  6941. {
  6942. str1 = Guid.NewGuid().ToString();
  6943. 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)
  6944. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6945. 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(),
  6946. MUSER, MUSERNAME, WorkPoints);
  6947. }
  6948. else if (ExtensionID != null)
  6949. {
  6950. str1 = ExtensionID.ToString();
  6951. }
  6952. ExtensionIDList.Add(Colspan + WorkPoint);
  6953. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6954. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6955. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6956. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6957. sql += string.Format(@"
  6958. insert into ICSInventoryLot
  6959. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6960. select
  6961. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6962. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6963. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6964. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6965. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6966. sql += "\r\n";
  6967. //装箱的功能
  6968. if (List_Pack.Count > 0)
  6969. {
  6970. PackModel mm = new PackModel();
  6971. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6972. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6973. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6974. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6975. }
  6976. }
  6977. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6978. return count;
  6979. }
  6980. /// <summary>
  6981. /// 委外采购入库单生成条码 保存(新)
  6982. /// </summary>
  6983. /// <param name="RCVCode"></param>
  6984. /// <param name="Sequence"></param>
  6985. /// <param name="keyValue"></param>
  6986. /// <param name="WorkPoint"></param>
  6987. /// <returns></returns>
  6988. public int SubmitFormWWCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6989. {
  6990. var queryParam = keyValue.ToJObject();
  6991. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6992. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6993. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6994. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  6995. List<decimal> lotQtys = new List<decimal>();
  6996. foreach (var jLotno in jLotnos)
  6997. {
  6998. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  6999. lotQtys.Add(qty);
  7000. }
  7001. int createPageCount = lotQtys.Count();
  7002. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  7003. string sql = string.Empty;
  7004. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7005. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7006. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7007. string sqls = string.Empty;
  7008. string Colspan = "";
  7009. string str1 = "";
  7010. List<string> ExtensionIDList = new List<string>();
  7011. #region 装箱的功能
  7012. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7013. string VenCode = queryParam["VenCode"].ToString();
  7014. int PackCount = 0;//每箱放的数量
  7015. int Pack_YuShu = 0;//需要平摊的数量
  7016. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7017. List<PackModel> List_Pack = new List<PackModel>();
  7018. int ZQty = 0;
  7019. if (createPackCount > 0)
  7020. {
  7021. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7022. if (Pack_YuShu == 0)
  7023. {
  7024. PackCount = (createPageCount / createPackCount);
  7025. }
  7026. else
  7027. {
  7028. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7029. }
  7030. for (int jj = 0; jj < createPackCount; jj++)
  7031. {
  7032. object CARID = Guid.NewGuid();
  7033. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7034. sql += @" INSERT INTO dbo.ICSContainer
  7035. ( ID,ContainerCode ,
  7036. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7037. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7038. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7039. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7040. PackModel PP = new PackModel();
  7041. PP.ID = CARID.ToString();
  7042. PP.PackCode = Carton;
  7043. if (jj < Pack_YuShu)
  7044. {
  7045. PP.FristBarIndex = ZQty;
  7046. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7047. }
  7048. else
  7049. {
  7050. PP.FristBarIndex = ZQty;
  7051. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7052. }
  7053. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7054. List_Pack.Add(PP);
  7055. }
  7056. }
  7057. #endregion
  7058. for (int i = 0; i < createPageCount; i++)
  7059. {
  7060. //if (i + 1 == createPageCount)
  7061. //{
  7062. // if (minPackQty * createPageCount > thisCreateQty)
  7063. // {
  7064. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7065. // }
  7066. //}
  7067. decimal LOTQTY = lotQtys[i];
  7068. 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();
  7069. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7070. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7071. bool flag = true;
  7072. foreach (var item in ExtensionIDList)
  7073. {
  7074. if (item == Colspan + WorkPoint)
  7075. {
  7076. flag = false;
  7077. }
  7078. }
  7079. if (ExtensionID == null && flag == true)
  7080. {
  7081. str1 = Guid.NewGuid().ToString();
  7082. 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)
  7083. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7084. 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(),
  7085. MUSER, MUSERNAME, WorkPoints);
  7086. }
  7087. else if (ExtensionID != null)
  7088. {
  7089. str1 = ExtensionID.ToString();
  7090. }
  7091. ExtensionIDList.Add(Colspan + WorkPoint);
  7092. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7093. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7094. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7095. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7096. try
  7097. {
  7098. sql += string.Format(@"
  7099. insert into ICSInventoryLot
  7100. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7101. select
  7102. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7103. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7104. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / LOTQTY, queryParam["ExpirationDate"].ToString()
  7105. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7106. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7107. sql += "\r\n";
  7108. }
  7109. catch (Exception EX)
  7110. {
  7111. throw EX;
  7112. }
  7113. //装箱的功能
  7114. if (List_Pack.Count > 0)
  7115. {
  7116. PackModel mm = new PackModel();
  7117. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7118. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7119. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7120. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7121. }
  7122. }
  7123. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7124. return count;
  7125. }
  7126. /// <summary>
  7127. /// 铭锋 退货调拨申请单生成条码
  7128. /// </summary>
  7129. /// <param name="queryJson"></param>
  7130. /// <param name="jqgridparam"></param>
  7131. /// <returns></returns>
  7132. public DataTable GetGridJsonTransferApplication(string queryJson, ref Pagination jqgridparam)
  7133. {
  7134. DataTable dt = new DataTable();
  7135. var queryParam = queryJson.ToJObject();
  7136. List<DbParameter> parameter = new List<DbParameter>();
  7137. object Figure = GetDecimalDigits();
  7138. #region [SQL]
  7139. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  7140. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  7141. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  7142. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  7143. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  7144. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  7145. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  7146. ,c.LOTQTY
  7147. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  7148. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  7149. ,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,
  7150. a.EATTRIBUTE9,a.EATTRIBUTE10
  7151. from ICSTransferApplication a
  7152. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7153. left join (
  7154. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7155. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  7156. where isnull(ee.EATTRIBUTE1,'')=''
  7157. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7158. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7159. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  7160. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7161. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  7162. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  7163. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  7164. where 1 = 1";
  7165. sql = string.Format(sql, Figure);
  7166. #endregion
  7167. if (!string.IsNullOrWhiteSpace(queryJson))
  7168. {
  7169. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  7170. {
  7171. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  7172. }
  7173. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  7174. {
  7175. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  7176. }
  7177. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  7178. {
  7179. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  7180. }
  7181. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  7182. {
  7183. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  7184. }
  7185. }
  7186. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  7187. {
  7188. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  7189. }
  7190. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  7191. //{
  7192. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  7193. //}
  7194. 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,
  7195. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  7196. 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
  7197. where 1=1 ";
  7198. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  7199. {
  7200. string POStatus = queryParam["POStatus"].ToString();
  7201. if (POStatus == "0")
  7202. {
  7203. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  7204. }
  7205. else if (POStatus == "1")
  7206. {
  7207. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  7208. }
  7209. else
  7210. {
  7211. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  7212. }
  7213. }
  7214. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  7215. }
  7216. /// <summary>
  7217. /// 铭锋 退货调拨申请单获取单据信息
  7218. /// </summary>
  7219. /// <param name="TransferNO"></param>
  7220. /// <param name="Sequence"></param>
  7221. /// <param name="WorkPoint"></param>
  7222. /// <returns></returns>
  7223. public DataTable GetSubGridJsonTransferApplicationByCreate(string TransferNO, string Sequence, string WorkPoint)
  7224. {
  7225. DataTable dt = new DataTable();
  7226. object Figure = GetDecimalDigits();
  7227. List<DbParameter> parameter = new List<DbParameter>();
  7228. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  7229. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  7230. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  7231. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  7232. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  7233. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7234. , 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 ,
  7235. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7236. FROM ICSTransferApplication a
  7237. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  7238. 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
  7239. END AS Quantity
  7240. FROM ICSTransferApplication a
  7241. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  7242. AND a.WorkPoint= b.WorkPoint
  7243. ) xx ON xx.Id= a.Id
  7244. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  7245. FROM ICSInventoryLot a
  7246. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  7247. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  7248. GROUP BY
  7249. b.TransCode,
  7250. b.TransSequence
  7251. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  7252. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  7253. WHERE 1 = 1
  7254. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  7255. and a.WorkPoint='{WorkPoint}'";
  7256. sql = string.Format(sql, Figure);
  7257. return Repository().FindTableBySql(sql.ToString());
  7258. }
  7259. /// <summary>
  7260. /// 铭锋 退货调拨申请单生成条码 保存
  7261. /// </summary>
  7262. /// <param name="TransferNO"></param>
  7263. /// <param name="Sequence"></param>
  7264. /// <param name="keyValue"></param>
  7265. /// <param name="WorkPoint"></param>
  7266. /// <returns></returns>
  7267. public int SubmitFormTransferApplicatioSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7268. {
  7269. var queryParam = keyValue.ToJObject();
  7270. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7271. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7272. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7273. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7274. decimal LOTQTY = minPackQty;
  7275. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7276. string sql = string.Empty;
  7277. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7278. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7279. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7280. string sqls = string.Empty;
  7281. string Colspan = "";
  7282. string str1 = "";
  7283. List<string> ExtensionIDList = new List<string>();
  7284. #region 装箱的功能
  7285. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7286. string VenCode = queryParam["VenCode"].ToString();
  7287. int PackCount = 0;//每箱放的数量
  7288. int Pack_YuShu = 0;//需要平摊的数量
  7289. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7290. List<PackModel> List_Pack = new List<PackModel>();
  7291. int ZQty = 0;
  7292. if (createPackCount > 0)
  7293. {
  7294. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7295. if (Pack_YuShu == 0)
  7296. {
  7297. PackCount = (createPageCount / createPackCount);
  7298. }
  7299. else
  7300. {
  7301. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7302. }
  7303. for (int jj = 0; jj < createPackCount; jj++)
  7304. {
  7305. object CARID = Guid.NewGuid();
  7306. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7307. sql += @" INSERT INTO dbo.ICSContainer
  7308. ( ID,ContainerCode ,
  7309. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7310. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7311. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7312. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7313. PackModel PP = new PackModel();
  7314. PP.ID = CARID.ToString();
  7315. PP.PackCode = Carton;
  7316. if (jj < Pack_YuShu)
  7317. {
  7318. PP.FristBarIndex = ZQty;
  7319. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7320. }
  7321. else
  7322. {
  7323. PP.FristBarIndex = ZQty;
  7324. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7325. }
  7326. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7327. List_Pack.Add(PP);
  7328. }
  7329. }
  7330. #endregion
  7331. for (int i = 0; i < createPageCount; i++)
  7332. {
  7333. if (i + 1 == createPageCount)
  7334. {
  7335. if (minPackQty * createPageCount > thisCreateQty)
  7336. {
  7337. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7338. }
  7339. }
  7340. 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();
  7341. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7342. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7343. bool flag = true;
  7344. foreach (var item in ExtensionIDList)
  7345. {
  7346. if (item == Colspan + WorkPoint)
  7347. {
  7348. flag = false;
  7349. }
  7350. }
  7351. if (ExtensionID == null && flag == true)
  7352. {
  7353. str1 = Guid.NewGuid().ToString();
  7354. 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)
  7355. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7356. 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(),
  7357. MUSER, MUSERNAME, WorkPoints);
  7358. }
  7359. else if (ExtensionID != null)
  7360. {
  7361. str1 = ExtensionID.ToString();
  7362. }
  7363. ExtensionIDList.Add(Colspan + WorkPoint);
  7364. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7365. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7366. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7367. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7368. sql += string.Format(@"
  7369. insert into ICSInventoryLot
  7370. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7371. select
  7372. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7373. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7374. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7375. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7376. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7377. sql += "\r\n";
  7378. //装箱的功能
  7379. if (List_Pack.Count > 0)
  7380. {
  7381. PackModel mm = new PackModel();
  7382. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7383. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7384. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7385. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7386. }
  7387. }
  7388. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7389. return count;
  7390. }
  7391. public int SubmitFormTransferApplicatioSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7392. {
  7393. var queryParam = keyValue.ToJObject();
  7394. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7395. //decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7396. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7397. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7398. List<decimal> lotQtys = new List<decimal>();
  7399. foreach (var jLotno in jLotnos)
  7400. {
  7401. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7402. lotQtys.Add(qty);
  7403. }
  7404. int createPageCount = lotQtys.Count();
  7405. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7406. string sql = string.Empty;
  7407. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7408. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7409. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7410. string sqls = string.Empty;
  7411. string Colspan = "";
  7412. string str1 = "";
  7413. List<string> ExtensionIDList = new List<string>();
  7414. #region 装箱的功能
  7415. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7416. string VenCode = queryParam["VenCode"].ToString();
  7417. int PackCount = 0;//每箱放的数量
  7418. int Pack_YuShu = 0;//需要平摊的数量
  7419. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7420. List<PackModel> List_Pack = new List<PackModel>();
  7421. int ZQty = 0;
  7422. if (createPackCount > 0)
  7423. {
  7424. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7425. if (Pack_YuShu == 0)
  7426. {
  7427. PackCount = (createPageCount / createPackCount);
  7428. }
  7429. else
  7430. {
  7431. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7432. }
  7433. for (int jj = 0; jj < createPackCount; jj++)
  7434. {
  7435. object CARID = Guid.NewGuid();
  7436. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7437. sql += @" INSERT INTO dbo.ICSContainer
  7438. ( ID,ContainerCode ,
  7439. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7440. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7441. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7442. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7443. PackModel PP = new PackModel();
  7444. PP.ID = CARID.ToString();
  7445. PP.PackCode = Carton;
  7446. if (jj < Pack_YuShu)
  7447. {
  7448. PP.FristBarIndex = ZQty;
  7449. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7450. }
  7451. else
  7452. {
  7453. PP.FristBarIndex = ZQty;
  7454. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7455. }
  7456. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7457. List_Pack.Add(PP);
  7458. }
  7459. }
  7460. #endregion
  7461. for (int i = 0; i < createPageCount; i++)
  7462. {
  7463. var LOTQTY = lotQtys[i];
  7464. 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();
  7465. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7466. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7467. bool flag = true;
  7468. foreach (var item in ExtensionIDList)
  7469. {
  7470. if (item == Colspan + WorkPoint)
  7471. {
  7472. flag = false;
  7473. }
  7474. }
  7475. if (ExtensionID == null && flag == true)
  7476. {
  7477. str1 = Guid.NewGuid().ToString();
  7478. 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)
  7479. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7480. 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(),
  7481. MUSER, MUSERNAME, WorkPoints);
  7482. }
  7483. else if (ExtensionID != null)
  7484. {
  7485. str1 = ExtensionID.ToString();
  7486. }
  7487. ExtensionIDList.Add(Colspan + WorkPoint);
  7488. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7489. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7490. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7491. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7492. sql += string.Format(@"
  7493. insert into ICSInventoryLot
  7494. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7495. select
  7496. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7497. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7498. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  7499. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7500. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7501. sql += "\r\n";
  7502. //装箱的功能
  7503. if (List_Pack.Count > 0)
  7504. {
  7505. PackModel mm = new PackModel();
  7506. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7507. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7508. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7509. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7510. }
  7511. }
  7512. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7513. return count;
  7514. }
  7515. public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  7516. {
  7517. DataTable dt = new DataTable();
  7518. object Figure = GetDecimalDigits();
  7519. List<DbParameter> parameter = new List<DbParameter>();
  7520. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn014', " + Quantity + ",1,2,'')";
  7521. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7522. string sql = @"
  7523. 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,
  7524. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  7525. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7526. ,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,
  7527. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,d.EATTRIBUTE3 AS EATTRIBUTE6 ,b.EATTRIBUTE7 AS EATTRIBUTE7 ,b.EATTRIBUTE8 AS EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7528. from ICSMOPick a
  7529. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7530. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7531. left join (
  7532. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  7533. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18'
  7534. where isnull(a.EATTRIBUTE1,'')=''
  7535. group by b.TransCode,b.TransSequence
  7536. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  7537. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  7538. WHERE 1=1
  7539. and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  7540. sql += " and a.WorkPoint='" + WorkPoint + "'";
  7541. sql = string.Format(sql, Figure);
  7542. return Repository().FindTableBySql(sql.ToString());
  7543. }
  7544. //副产品
  7545. public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  7546. {
  7547. var queryParam = keyValue.ToJObject();
  7548. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7549. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7550. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7551. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7552. decimal LOTQTY = minPackQty;
  7553. string Sequences = Sequence.Replace("~", "");
  7554. string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  7555. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7556. string sql = string.Empty;
  7557. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7558. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7559. string sqls = string.Empty;
  7560. string Colspan = "";
  7561. string str1 = "";
  7562. List<string> ExtensionIDList = new List<string>();
  7563. #region 装箱的功能
  7564. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7565. string VenCode = queryParam["VenCode"].ToString();
  7566. int PackCount = 0;//每箱放的数量
  7567. int Pack_YuShu = 0;//需要平摊的数量
  7568. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7569. List<PackModel> List_Pack = new List<PackModel>();
  7570. int ZQty = 0;
  7571. if (createPackCount > 0)
  7572. {
  7573. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7574. if (Pack_YuShu == 0)
  7575. {
  7576. PackCount = (createPageCount / createPackCount);
  7577. }
  7578. else
  7579. {
  7580. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7581. }
  7582. for (int jj = 0; jj < createPackCount; jj++)
  7583. {
  7584. object CARID = Guid.NewGuid();
  7585. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7586. sql += @" INSERT INTO dbo.ICSContainer
  7587. ( ID,ContainerCode ,
  7588. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7589. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7590. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7591. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7592. PackModel PP = new PackModel();
  7593. PP.ID = CARID.ToString();
  7594. PP.PackCode = Carton;
  7595. if (jj < Pack_YuShu)
  7596. {
  7597. PP.FristBarIndex = ZQty;
  7598. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7599. }
  7600. else
  7601. {
  7602. PP.FristBarIndex = ZQty;
  7603. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7604. }
  7605. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7606. List_Pack.Add(PP);
  7607. }
  7608. }
  7609. #endregion
  7610. for (int i = 0; i < createPageCount; i++)
  7611. {
  7612. if (i + 1 == createPageCount)
  7613. {
  7614. if (minPackQty * createPageCount > thisCreateQty)
  7615. {
  7616. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7617. }
  7618. }
  7619. 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();
  7620. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7621. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7622. bool flag = true;
  7623. foreach (var item in ExtensionIDList)
  7624. {
  7625. if (item == Colspan + WorkPoint)
  7626. {
  7627. flag = false;
  7628. }
  7629. }
  7630. if (ExtensionID == null && flag == true)
  7631. {
  7632. str1 = Guid.NewGuid().ToString();
  7633. 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)
  7634. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7635. 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(),
  7636. MUSER, MUSERNAME, WorkPoints);
  7637. }
  7638. else if (ExtensionID != null)
  7639. {
  7640. str1 = ExtensionID.ToString();
  7641. }
  7642. ExtensionIDList.Add(Colspan + WorkPoint);
  7643. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7644. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7645. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  7646. LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7647. sql += string.Format(@"insert into ICSInventoryLot
  7648. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7649. select
  7650. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7651. 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}' ",
  7652. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7653. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7654. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7655. sql += "\r\n";
  7656. //装箱的功能
  7657. if (List_Pack.Count > 0)
  7658. {
  7659. PackModel mm = new PackModel();
  7660. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7661. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7662. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7663. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7664. }
  7665. }
  7666. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7667. return count;
  7668. }
  7669. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty, string InvCode, string Quantitys)
  7670. {
  7671. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7672. DataTable dt = new DataTable();
  7673. List<DbParameter> parameter = new List<DbParameter>();
  7674. string sql = string.Empty;
  7675. bool flag = true;
  7676. if (Type == "1")
  7677. {
  7678. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn017', " + Quantitys + ",1,2,'')";
  7679. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7680. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7681. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7682. from ICSMOApplyNegDetail a
  7683. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7684. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7685. left join (
  7686. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7687. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  7688. where isnull(ee.EATTRIBUTE1,'')=''
  7689. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7690. )c
  7691. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7692. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7693. where d.Type='1' and d.Status='2'
  7694. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7695. }
  7696. if (Type == "2")
  7697. {
  7698. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn008', " + Quantitys + ",1,2,'')";
  7699. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7700. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7701. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7702. from ICSOApplyNegDetail a
  7703. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7704. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7705. left join (
  7706. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7707. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  7708. where isnull(ee.EATTRIBUTE1,'')=''
  7709. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7710. )c
  7711. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7712. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7713. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7714. }
  7715. if (Type == "3")
  7716. {
  7717. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn011', " + Quantitys + ",1,2,'')";
  7718. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7719. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7720. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7721. from ICSMO a
  7722. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7723. left join (
  7724. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7725. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  7726. where isnull(ee.EATTRIBUTE1,'')=''
  7727. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7728. )c
  7729. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7730. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7731. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7732. }
  7733. if (Type == "4")
  7734. {
  7735. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn020', " + Quantitys + ",1,3,'')";
  7736. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7737. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7738. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7739. from ICSSDN a
  7740. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7741. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7742. left join(select a.SDNCode,a.Sequence,a.WorkPoint,
  7743. 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
  7744. from ICSSDN a
  7745. 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
  7746. left join (
  7747. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7748. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  7749. where isnull(ee.EATTRIBUTE1,'')=''
  7750. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7751. )c
  7752. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7753. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7754. where a.Type='2'
  7755. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7756. }
  7757. if (Type == "5")
  7758. {
  7759. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn021', " + Quantitys + ",1,4,'')";
  7760. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7761. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7762. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7763. from ICSOtherIn a
  7764. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7765. left join(select a.InCode,a.Sequence,a.WorkPoint,
  7766. 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
  7767. from ICSOtherIn a
  7768. 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
  7769. left join (
  7770. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7771. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  7772. where isnull(ee.EATTRIBUTE1,'')=''
  7773. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7774. )c
  7775. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7776. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7777. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1'
  7778. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7779. }
  7780. if (Type == "6")
  7781. {
  7782. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn023', " + Quantitys + ",1,4,'')";
  7783. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7784. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7785. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7786. from ICSReturn a
  7787. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7788. left join(select a.ReturnCode,a.Sequence,a.WorkPoint,
  7789. 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
  7790. from ICSReturn a
  7791. 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
  7792. left join (
  7793. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7794. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  7795. where isnull(ee.EATTRIBUTE1,'')=''
  7796. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7797. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7798. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7799. where a.Status='2'
  7800. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7801. }
  7802. if (Type == "7")
  7803. {
  7804. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn002', " + Quantitys + ",1,1,'')";
  7805. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7806. //锐腾添加退补逻辑
  7807. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  7808. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7809. from ICSDeliveryNotice a
  7810. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7811. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  7812. " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  7813. from ICSDeliveryNotice a
  7814. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7815. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  7816. 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
  7817. left join (
  7818. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7819. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  7820. where isnull(ee.EATTRIBUTE1,'')=''
  7821. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7822. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7823. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  7824. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7825. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7826. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  7827. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7828. }
  7829. if (Type == "8")
  7830. {
  7831. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn005', " + Quantitys + ",1,1,'')";
  7832. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7833. //锐腾添加退补逻辑
  7834. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  7835. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7836. from ICSODeliveryNotice a
  7837. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7838. left join(select a.ODNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  7839. from ICSODeliveryNotice a
  7840. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7841. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  7842. 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
  7843. left join (
  7844. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7845. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  7846. where isnull(ee.EATTRIBUTE1,'')=''
  7847. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7848. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7849. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  7850. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7851. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7852. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  7853. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7854. }
  7855. if (Type == "9")
  7856. {
  7857. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn013', " + Quantitys + ",1,2,'')";
  7858. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7859. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7860. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7861. from ICSManufactureReceive a
  7862. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7863. left join (
  7864. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7865. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  7866. where isnull(ee.EATTRIBUTE1,'')=''
  7867. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7868. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7869. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7870. where a.Status='1' and a.Type='1'
  7871. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7872. }
  7873. if (Type == "10")
  7874. {
  7875. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn003', " + Quantitys + ",1,1,'')";
  7876. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7877. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7878. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7879. from ICSDeliveryNotice a
  7880. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7881. left join (
  7882. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7883. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  7884. where isnull(ee.EATTRIBUTE1,'')=''
  7885. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7886. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7887. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  7888. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7889. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7890. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  7891. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7892. }
  7893. if (Type == "11")
  7894. {
  7895. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn006', " + Quantitys + ",1,1,'')";
  7896. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7897. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7898. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7899. from ICSODeliveryNotice a
  7900. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7901. left join (
  7902. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7903. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  7904. where isnull(ee.EATTRIBUTE1,'')=''
  7905. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7906. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7907. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  7908. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7909. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7910. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  7911. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7912. }
  7913. if (Type == "12")
  7914. {
  7915. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn018', " + Quantitys + ",1,2,'')";
  7916. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7917. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7918. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7919. from ICSMOApplyNegDetail a
  7920. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7921. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7922. left join (
  7923. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7924. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  7925. where isnull(ee.EATTRIBUTE1,'')=''
  7926. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7927. )c
  7928. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7929. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7930. WHERE d.Type='2' and d.Status='2'
  7931. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7932. }
  7933. if (Type == "13")
  7934. {
  7935. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn019', " + Quantitys + ",1,2,'')";
  7936. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7937. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7938. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7939. from ICSMOApplyNegDetail a
  7940. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7941. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7942. left join (
  7943. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7944. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  7945. where isnull(ee.EATTRIBUTE1,'')=''
  7946. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7947. )c
  7948. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7949. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7950. WHERE d.Type='3' and d.Status='2'
  7951. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7952. }
  7953. if (Type == "14")
  7954. {
  7955. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn009', " + Quantitys + ",1,1,'')";
  7956. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7957. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7958. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7959. from ICSOApplyNegDetail a
  7960. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7961. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7962. left join (
  7963. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7964. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  7965. where isnull(ee.EATTRIBUTE1,'')=''
  7966. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7967. )c
  7968. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7969. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7970. WHERE d.Type='2'
  7971. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7972. }
  7973. if (Type == "15")
  7974. {
  7975. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn010', " + Quantitys + ",1,1,'')";
  7976. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7977. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7978. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7979. from ICSOApplyNegDetail a
  7980. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7981. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7982. left join (
  7983. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7984. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  7985. where isnull(ee.EATTRIBUTE1,'')=''
  7986. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7987. )c
  7988. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7989. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7990. WHERE d.Type='3'
  7991. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7992. }
  7993. if (Type == "16")
  7994. {
  7995. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn015', " + Quantitys + ",1,2,'')";
  7996. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7997. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  7998. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  7999. from ICSMOPick a
  8000. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  8001. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8002. left join (
  8003. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8004. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  8005. where isnull(ee.EATTRIBUTE1,'')=''
  8006. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8007. )c
  8008. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8009. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8010. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  8011. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8012. }
  8013. if (Type == "18")
  8014. {
  8015. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn014', " + Quantitys + ",1,2,'')";
  8016. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8017. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8018. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8019. from ICSMOPick a
  8020. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  8021. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8022. left join (
  8023. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8024. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  8025. where isnull(ee.EATTRIBUTE1,'')=''
  8026. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8027. )c
  8028. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8029. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8030. where a.EATTRIBUTE1='1'
  8031. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8032. }
  8033. if (Type == "22")
  8034. {
  8035. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8036. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8037. from ICSPurchaseReceive a
  8038. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8039. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8040. 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
  8041. from ICSPurchaseReceive a
  8042. 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
  8043. left join (
  8044. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8045. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  8046. where isnull(ee.EATTRIBUTE1,'')=''
  8047. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8048. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8049. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8050. where a.Status='1'
  8051. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8052. }
  8053. if (Type == "23")
  8054. {
  8055. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,4)) as Quantity ,
  8056. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8057. from ICSOutsourcingReceive a
  8058. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8059. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8060. 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
  8061. from ICSOutsourcingReceive a
  8062. 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
  8063. left join (
  8064. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8065. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  8066. where isnull(ee.EATTRIBUTE1,'')=''
  8067. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8068. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8069. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8070. where a.Status='1'
  8071. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8072. }
  8073. if (Type == "24")
  8074. {
  8075. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn026', " + Quantitys + ",1,3,'')";
  8076. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8077. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,4)) as Quantity ,
  8078. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,4)) as LOTQTY
  8079. from ICSSSD a
  8080. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8081. left join(select a.SDNCode,a.SDNSequence Sequence,a.WorkPoint,
  8082. 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
  8083. from ICSSSD a
  8084. 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
  8085. left join (
  8086. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8087. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  8088. where isnull(ee.EATTRIBUTE1,'')=''
  8089. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8090. )c
  8091. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8092. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8093. where a.Status='1' and a.Type='2'
  8094. and a.SSDCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8095. }
  8096. dt = SqlHelper.GetDataTableBySql(sql);
  8097. decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  8098. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  8099. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  8100. if (LOTQTY + thisQty > Quantity)
  8101. {
  8102. flag = false;
  8103. }
  8104. return flag;
  8105. }
  8106. /// <summary>
  8107. /// 开立成品入库单(一键生成)
  8108. /// </summary>
  8109. public int SubmitFormKLCPRKALL(string keyValue)
  8110. {
  8111. string sql = string.Empty;
  8112. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8113. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8114. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8115. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8116. foreach (var item in res)
  8117. {
  8118. JObject jo = (JObject)item;
  8119. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8120. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8121. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8122. decimal LOTQTY = minPackQty;
  8123. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8124. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8125. string sqls = string.Empty;
  8126. string Colspan = "";
  8127. string str1 = "";
  8128. List<string> ExtensionIDList = new List<string>();
  8129. for (int i = 0; i < createPageCount; i++)
  8130. {
  8131. if (i + 1 == createPageCount)
  8132. {
  8133. if (minPackQty * createPageCount > thisCreateQty)
  8134. {
  8135. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8136. }
  8137. }
  8138. 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();
  8139. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8140. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8141. bool flag = true;
  8142. foreach (var items in ExtensionIDList)
  8143. {
  8144. if (items == Colspan + WorkPoint)
  8145. {
  8146. flag = false;
  8147. }
  8148. }
  8149. if (ExtensionID == null && flag == true)
  8150. {
  8151. str1 = Guid.NewGuid().ToString();
  8152. 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)
  8153. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8154. 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(),
  8155. MUSER, MUSERNAME, WorkPoint);
  8156. }
  8157. else if (ExtensionID != null)
  8158. {
  8159. str1 = ExtensionID.ToString();
  8160. }
  8161. ExtensionIDList.Add(Colspan + WorkPoint);
  8162. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8163. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8164. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8165. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8166. sql += string.Format(@"
  8167. insert into ICSInventoryLot
  8168. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8169. select
  8170. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  8171. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8172. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8173. sql += "\r\n";
  8174. }
  8175. }
  8176. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8177. return count;
  8178. }
  8179. /// <summary>
  8180. /// 审核到货单生成条码(一键生成)
  8181. /// </summary>
  8182. /// <param name="POCode"></param>
  8183. /// <param name="PORow"></param>
  8184. /// <param name="keyValue"></param>
  8185. /// 已改
  8186. /// <returns></returns>
  8187. public int SubmitFormSHDHALL(string keyValue)
  8188. {
  8189. string sql = string.Empty;
  8190. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8191. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8192. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8193. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8194. foreach (var resItem in res)
  8195. {
  8196. JObject jo = (JObject)resItem;
  8197. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8198. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8199. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8200. decimal LOTQTY = minPackQty;
  8201. string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8202. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8203. string sqls = string.Empty;
  8204. string Colspan = "";
  8205. string str1 = "";
  8206. List<string> ExtensionIDList = new List<string>();
  8207. for (int i = 0; i < createPageCount; i++)
  8208. {
  8209. if (i + 1 == createPageCount)
  8210. {
  8211. if (minPackQty * createPageCount > thisCreateQty)
  8212. {
  8213. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8214. }
  8215. }
  8216. 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();
  8217. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8218. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8219. bool flag = true;
  8220. foreach (var item in ExtensionIDList)
  8221. {
  8222. if (item == Colspan + WorkPoint)
  8223. {
  8224. flag = false;
  8225. }
  8226. }
  8227. if (ExtensionID == null && flag == true)
  8228. {
  8229. str1 = Guid.NewGuid().ToString();
  8230. 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)
  8231. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8232. 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(),
  8233. MUSER, MUSERNAME, WorkPoint);
  8234. }
  8235. else if (ExtensionID != null)
  8236. {
  8237. str1 = ExtensionID.ToString();
  8238. }
  8239. ExtensionIDList.Add(Colspan + WorkPoint);
  8240. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8241. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8242. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  8243. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8244. sql += string.Format(@"
  8245. insert into ICSInventoryLot
  8246. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8247. select
  8248. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  8249. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8250. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8251. sql += "\r\n";
  8252. }
  8253. }
  8254. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8255. return count;
  8256. }
  8257. /// <summary>
  8258. /// 审核委外到货单生成条码(一键生成)
  8259. /// </summary>
  8260. /// <param name="POCode"></param>
  8261. /// <param name="PORow"></param>
  8262. /// <param name="keyValue"></param>
  8263. /// 已改
  8264. /// <returns></returns>
  8265. public int SubmitFormWWSHDHALL(string keyValue)
  8266. {
  8267. string sql = string.Empty;
  8268. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8269. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8270. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8271. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8272. foreach (var resItem in res)
  8273. {
  8274. JObject jo = (JObject)resItem;
  8275. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8276. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8277. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8278. decimal LOTQTY = minPackQty;
  8279. string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8280. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8281. string sqls = string.Empty;
  8282. string Colspan = "";
  8283. string str1 = "";
  8284. List<string> ExtensionIDList = new List<string>();
  8285. for (int i = 0; i < createPageCount; i++)
  8286. {
  8287. if (i + 1 == createPageCount)
  8288. {
  8289. if (minPackQty * createPageCount > thisCreateQty)
  8290. {
  8291. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8292. }
  8293. }
  8294. 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();
  8295. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8296. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8297. bool flag = true;
  8298. foreach (var item in ExtensionIDList)
  8299. {
  8300. if (item == Colspan + WorkPoint)
  8301. {
  8302. flag = false;
  8303. }
  8304. }
  8305. if (ExtensionID == null && flag == true)
  8306. {
  8307. str1 = Guid.NewGuid().ToString();
  8308. 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)
  8309. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8310. 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(),
  8311. MUSER, MUSERNAME, WorkPoint);
  8312. }
  8313. else if (ExtensionID != null)
  8314. {
  8315. str1 = ExtensionID.ToString();
  8316. }
  8317. ExtensionIDList.Add(Colspan + WorkPoint);
  8318. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8319. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8320. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8321. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]);
  8322. sql += string.Format(@"
  8323. insert into ICSInventoryLot
  8324. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8325. select
  8326. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  8327. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8328. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8329. sql += "\r\n";
  8330. }
  8331. }
  8332. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8333. return count;
  8334. }
  8335. public DataTable SelectICSColumnEnableForLotEnable()
  8336. {
  8337. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8338. string sql = @" select ColumnCode from ICSColumnEnable
  8339. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
  8340. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8341. return dt;
  8342. }
  8343. public DataTable GetLoadShowForColumn()
  8344. {
  8345. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8346. string sql = @"
  8347. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
  8348. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8349. return dt;
  8350. }
  8351. public string GetAMEnable()
  8352. {
  8353. string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
  8354. return Code;
  8355. }
  8356. public DataTable SeachMeasure()
  8357. {
  8358. DataTable dt = new DataTable();
  8359. List<DbParameter> parameter = new List<DbParameter>();
  8360. string sql = @" SELECT Top 1 a.F_ItemCode as Code
  8361. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8362. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8363. WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
  8364. return Repository().FindTableBySql(sql.ToString());
  8365. }
  8366. public DataTable SeachLableofDisable()
  8367. {
  8368. DataTable dt = new DataTable();
  8369. List<DbParameter> parameter = new List<DbParameter>();
  8370. string sql = @"
  8371. SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
  8372. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8373. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8374. WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
  8375. return Repository().FindTableBySql(sql.ToString());
  8376. }
  8377. public DataTable SeachAmountEnablebyInvCode(string InvCode)
  8378. {
  8379. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8380. DataTable dt = new DataTable();
  8381. List<DbParameter> parameter = new List<DbParameter>();
  8382. string sql = @"
  8383. select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8384. return Repository().FindTableBySql(sql.ToString());
  8385. }
  8386. public DataTable SeachDatabyInvCode(string InvCode)
  8387. {
  8388. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8389. DataTable dt = new DataTable();
  8390. List<DbParameter> parameter = new List<DbParameter>();
  8391. string sql = @"
  8392. select isnull(AmountEnable,0) as AmountEnable,
  8393. isnull(ContainerEnable,0) ContainerEnable
  8394. from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8395. return Repository().FindTableBySql(sql.ToString());
  8396. }
  8397. public string LotBindCode(String savePath, string Code, string Sequence)
  8398. {
  8399. //数据获取
  8400. try
  8401. {
  8402. int index = 1;
  8403. string msg = "";
  8404. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8405. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8406. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8407. SqlConnection conn = SqlHelper.GetDataCenterConn();
  8408. string sql = "";
  8409. int count = 0;
  8410. DataTable data = FileToExcel.ExcelToTable(savePath);
  8411. int totalNum = data.AsEnumerable().Sum(row => int.Parse(row.Field<string>("条码数量")));
  8412. string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
  8413. case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
  8414. a.ExtensionID
  8415. from ICSMO a
  8416. left join (
  8417. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  8418. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  8419. where isnull(a.EATTRIBUTE1,'')=''
  8420. group by b.TransCode,b.TransSequence
  8421. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  8422. 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}'";
  8423. sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
  8424. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
  8425. string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
  8426. string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString();
  8427. string InvCode = dd.Rows[0]["InvCode"].ToString();
  8428. decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
  8429. decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
  8430. decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
  8431. decimal SQTY = CQuantity - CLOTQTY;
  8432. if (totalNum > SQTY)
  8433. {
  8434. throw new Exception("单号: " + Code + "行号" + Sequence + " 所导入条码数量超出该单据可生成数量,该单据剩余可生成数量为" + SQTY + "!");
  8435. }
  8436. // string CodeSequence = "";
  8437. foreach (DataRow dr in data.Rows)
  8438. {
  8439. index++;
  8440. //string GUID = Guid.NewGuid().ToString();
  8441. // string Code = dr["单据号"].ToString().Trim().ToUpper();
  8442. // string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
  8443. string LotNo = dr["条码"].ToString().Trim().ToUpper();
  8444. string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
  8445. //if (CodeSequence != "" && CodeSequence != Code + Sequence)
  8446. //{
  8447. // throw new Exception("一次只能导入同一单据数据!");
  8448. //}
  8449. //else
  8450. //{
  8451. // CodeSequence = Code + Sequence;
  8452. //}
  8453. if (Code == "" || Code == null)
  8454. {
  8455. throw new Exception("第 " + index + " 行单据号不能为空!");
  8456. }
  8457. if (Sequence == "" || Sequence == null)
  8458. {
  8459. throw new Exception("第 " + index + " 行单据行号不能为空!");
  8460. }
  8461. if (LotNo == "" || LotNo == null)
  8462. {
  8463. throw new Exception("第 " + index + " 行条码不能为空!");
  8464. }
  8465. if (Quantity == "" || Quantity == null)
  8466. {
  8467. throw new Exception("第 " + index + " 行条码数量不能为空!");
  8468. }
  8469. //if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY))
  8470. //{
  8471. // decimal SQTY = CQuantity - CLOTQTY;
  8472. // throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量,该单据剩余可生成数量为"+ SQTY + "!");
  8473. //}
  8474. var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
  8475. sql += @"Insert INto ICSInventoryLot
  8476. ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
  8477. Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
  8478. ";
  8479. sql += @" Insert INto ICSInventoryLotDetail
  8480. ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  8481. Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
  8482. sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
  8483. }
  8484. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8485. if (count > 0)
  8486. {
  8487. msg = "导入成功";
  8488. }
  8489. else
  8490. {
  8491. return "无有效的导入数据。";
  8492. }
  8493. return msg;
  8494. }
  8495. catch (Exception ex)
  8496. {
  8497. return ex.Message;
  8498. }
  8499. }
  8500. /// <summary>
  8501. /// 生产退料(一键生成)
  8502. /// </summary>
  8503. public int SubmitFormGDTLALL(string keyValue)
  8504. {
  8505. string sql = string.Empty;
  8506. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8507. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8508. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8509. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8510. foreach (var item in res)
  8511. {
  8512. JObject jo = (JObject)item;
  8513. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8514. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8515. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8516. decimal LOTQTY = minPackQty;
  8517. string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8518. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8519. string sqls = string.Empty;
  8520. string Colspan = "";
  8521. string str1 = "";
  8522. List<string> ExtensionIDList = new List<string>();
  8523. for (int i = 0; i < createPageCount; i++)
  8524. {
  8525. if (i + 1 == createPageCount)
  8526. {
  8527. if (minPackQty * createPageCount > thisCreateQty)
  8528. {
  8529. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8530. }
  8531. }
  8532. 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();
  8533. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8534. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8535. bool flag = true;
  8536. foreach (var items in ExtensionIDList)
  8537. {
  8538. if (items == Colspan + WorkPoint)
  8539. {
  8540. flag = false;
  8541. }
  8542. }
  8543. if (ExtensionID == null && flag == true)
  8544. {
  8545. str1 = Guid.NewGuid().ToString();
  8546. 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)
  8547. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8548. 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(),
  8549. MUSER, MUSERNAME, WorkPoint);
  8550. }
  8551. else if (ExtensionID != null)
  8552. {
  8553. str1 = ExtensionID.ToString();
  8554. }
  8555. ExtensionIDList.Add(Colspan + WorkPoint);
  8556. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8557. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8558. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8559. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8560. sql += string.Format(@"
  8561. insert into ICSInventoryLot
  8562. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8563. select
  8564. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  8565. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8566. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8567. sql += "\r\n";
  8568. }
  8569. }
  8570. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8571. return count;
  8572. }
  8573. /// <summary>
  8574. /// 自动生成批次信息
  8575. /// </summary>
  8576. /// <param name="InvCode"></param>
  8577. /// <param name="WorkPoint"></param>
  8578. /// <returns></returns>
  8579. public DataTable GetVendorBatch()
  8580. {
  8581. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8582. string pre = "C" + DateTime.Now.ToString("yyyyMMdd");
  8583. //var queryParam = queryJson.ToJObject();
  8584. //List<DbParameter> parameter = new List<DbParameter>();
  8585. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  8586. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  8587. return Repository().FindTableBySql(sql.ToString());
  8588. }
  8589. public DataTable GetVendorBatchBYInvCode(string InvCode, string WorkPoint)
  8590. {
  8591. DataTable dt = new DataTable();
  8592. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  8593. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  8594. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  8595. string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
  8596. //var queryParam = queryJson.ToJObject();
  8597. //List<DbParameter> parameter = new List<DbParameter>();
  8598. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  8599. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  8600. return Repository().FindTableBySql(sql.ToString());
  8601. }
  8602. public DataTable GetReworkMo(string invcode, string Code, string SourceCode, ref Pagination jqgridparam)
  8603. {
  8604. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8605. List<DbParameter> parameter = new List<DbParameter>();
  8606. DataTable table = new DataTable();
  8607. string wherestr = "";
  8608. if (!string.IsNullOrEmpty(invcode))
  8609. {
  8610. wherestr += " and a.InvCode like '%" + invcode + "%'";
  8611. }
  8612. if (!string.IsNullOrEmpty(Code))
  8613. {
  8614. wherestr += " and a.MOCode like '%" + Code + "%'";
  8615. }
  8616. string sql = @"SELECT
  8617. a.ID,
  8618. a.MOCode,
  8619. a.Sequence,
  8620. a.InvCode,
  8621. a.Quantity,
  8622. a.Amount,
  8623. a.RCVQuantity,
  8624. a.DepCode,
  8625. a.WHCode,
  8626. a.StartDate,
  8627. a.DueDate,
  8628. a.MOType,
  8629. a.MOStatus,
  8630. a.MOMemo,
  8631. a.CreatePerson,
  8632. a.CreateDateTime,
  8633. a.ERPStatus,
  8634. a.MOID,
  8635. a.MODetailID,
  8636. a.ExtensionID,
  8637. a.MUSER,
  8638. a.MUSERName,
  8639. a.MTIME,
  8640. a.WorkPoint,
  8641. a.EATTRIBUTE1,
  8642. a.EATTRIBUTE2,
  8643. a.EATTRIBUTE3,
  8644. a.EATTRIBUTE4,
  8645. a.EATTRIBUTE5,
  8646. a.EATTRIBUTE6,
  8647. a.EATTRIBUTE7,
  8648. a.EATTRIBUTE8,
  8649. a.EATTRIBUTE9,
  8650. a.EATTRIBUTE10,
  8651. b.InvName,
  8652. b.InvStd,
  8653. b.InvUnit
  8654. from
  8655. dbo.ICSMO a
  8656. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8657. where a.EATTRIBUTE1='1' and a.MOStatus<>'3' and a.WorkPoint = '" + WorkPoint + "'" + wherestr;
  8658. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  8659. }
  8660. //修改形态转换
  8661. public string LotReworkBind(string LotNo, string Code, string Sequence, string ExtensionID)
  8662. {
  8663. string Colspan = "";
  8664. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8665. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8666. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8667. string msg = "";
  8668. string MTDOCCode = "";
  8669. DateTime TimeNow = DateTime.Now;
  8670. string sql = string.Empty;
  8671. //修改条码绑定关系
  8672. sql += @"update dbo.ICSInventoryLotDetail set TransCode='{0}' ,TransSequence='{1}' where LotNo in({2}) and WorkPoint='{3}'";
  8673. //修改条码批次
  8674. sql += @"update dbo.ICSInventoryLot set ExtensionID='{4}' where LotNo in({2}) and WorkPoint='{3}'";
  8675. //删除条码库存
  8676. sql += @"delete dbo.ICSWareHouseLotInfo where LotNo in({2}) and WorkPoint='{3}' ";
  8677. sql = string.Format(sql, Code, Sequence, LotNo, WorkPoint, ExtensionID);
  8678. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  8679. {
  8680. msg = "";
  8681. }
  8682. else
  8683. {
  8684. msg = "条码重新绑定失败!";
  8685. }
  8686. return msg;
  8687. }
  8688. /// <summary>
  8689. /// 一键退库(咖博士新增需求:根据生产退料单,B2、C类物料可以实现一键退库操作),调用PDA上架接口
  8690. /// </summary>
  8691. /// <param name="IDs"></param>
  8692. /// <returns></returns>
  8693. public string PostInWareHouse(string IDs)
  8694. {
  8695. string Colspan = "";
  8696. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8697. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8698. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8699. string msg = "";
  8700. DateTime TimeNow = DateTime.Now;
  8701. string sql = string.Empty;
  8702. try
  8703. {
  8704. IDs = IDs.Substring(1, IDs.Length - 2);
  8705. //1.获取退料单中的B2和C类物料,检验是否全部生成条码,没有生成条码的单据需要先生成条码后一键退库
  8706. 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' ;
  8707. 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' ";
  8708. string whereSql2 = @"
  8709. 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' ";
  8710. DataTable dataTable1 = SqlHelper.CmdExecuteDataTable(whereSql1);
  8711. DataTable dataTable2 = SqlHelper.CmdExecuteDataTable(whereSql2);
  8712. if (dataTable1.Rows.Count <= 0)
  8713. {
  8714. throw new Exception("请先再自定义档案配置需要一键退库的物料信息!");
  8715. }
  8716. if (dataTable2.Rows.Count <= 0)
  8717. {
  8718. throw new Exception("请先再自定义档案配置需要一键退库的仓库库位信息!");
  8719. }
  8720. //判断是否全部生成条码
  8721. string isCreate = $@" SELECT a.ApplyNegCode,a.Sequence,a.Quantity,sum(isnull(c.Quantity,0)) as LotQuantity
  8722. FROM ICSMOApplyNegDetail a
  8723. left JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  8724. left JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  8725. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  8726. WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]}
  8727. GROUP BY a.Quantity,a.Id,a.ApplyNegCode,a.Sequence ";
  8728. DataTable isCreatedt = SqlHelper.CmdExecuteDataTable(isCreate);
  8729. if (isCreatedt.Rows.Count <= 0)
  8730. {
  8731. throw new Exception("请先确认退料单物料类别信息,然后确认自定义档案配置可以自动出库的物料信息!");
  8732. }
  8733. else
  8734. {
  8735. for (int i = 0; i < isCreatedt.Rows.Count; i++)
  8736. {
  8737. if (isCreatedt.Rows[i]["Quantity"].ToDecimal() != isCreatedt.Rows[i]["LotQuantity"].ToDecimal())
  8738. {
  8739. throw new Exception($"请先将单据:{isCreatedt.Rows[i]["ApplyNegCode"]},行号:{isCreatedt.Rows[i]["Sequence"]} ,全部生成条码!");
  8740. }
  8741. }
  8742. }
  8743. //查询需要入库的条码信息
  8744. sql = $@" SELECT a.ApplyNegCode,a.Sequence,c.LotNo,c.Quantity,c.InvCode FROM ICSMOApplyNegDetail a
  8745. INNER JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  8746. INNER JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  8747. LEFT JOIN ICSWareHouseLotInfo d ON d.LotNo=c.LotNo AND d.WorkPoint=c.WorkPoint
  8748. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  8749. WHERE
  8750. a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} AND
  8751. d.ID is null ";
  8752. //2.查询退料的条码和退料的条码数量,拼接参数,调用PDA接口
  8753. var getSql = SqlHelper.CmdExecuteDataTable(sql);
  8754. if (getSql.Rows.Count > 0)
  8755. {
  8756. List<LOTStockUpCreateIModel> models = new List<LOTStockUpCreateIModel>();
  8757. LOTStockUpCreateIModel model = new LOTStockUpCreateIModel
  8758. {
  8759. User = MUSER,
  8760. MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"),
  8761. WorkPoint = WorkPoint,
  8762. TransType = "生产退料-生产退料单"
  8763. };
  8764. model.detail = new List<LOTStockUpCreateIModelList>();
  8765. for (int i = 0; i < getSql.Rows.Count; i++)
  8766. {
  8767. LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList
  8768. {
  8769. LotNo = getSql.Rows[i]["LotNo"].ToString(),
  8770. WarehouseCode = dataTable2.Rows[0]["F_Define1"].ToString(),
  8771. LocationCode = dataTable2.Rows[0]["F_Define2"].ToString(),
  8772. TransCode = getSql.Rows[i]["ApplyNegCode"].ToString(),
  8773. TransSequence = getSql.Rows[i]["Sequence"].ToString(),
  8774. Quantity = getSql.Rows[i]["Quantity"].ToString(),
  8775. InvCode = getSql.Rows[i]["InvCode"].ToString()
  8776. };
  8777. model.detail.Add(detail);
  8778. }
  8779. models.Add(model);
  8780. var input = models.ToJson();
  8781. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create";
  8782. string result = HttpPost(APIURL, input);
  8783. Result res = result.ToObject<Result>();
  8784. if (!res.Success)
  8785. {
  8786. throw new Exception(res.Message);
  8787. }
  8788. msg = "";
  8789. }
  8790. return msg;
  8791. }
  8792. catch (Exception ex)
  8793. {
  8794. throw new Exception(ex.Message);
  8795. }
  8796. }
  8797. /// <summary>
  8798. /// 红字销售出库单生成条码列表数据
  8799. /// </summary>
  8800. /// <param name="queryJson"></param>
  8801. /// <param name="jqgridparam"></param>
  8802. /// <returns></returns>
  8803. public DataTable GetGridJsonWMSSSD(string queryJson, ref Pagination jqgridparam)
  8804. {
  8805. DataTable dt = new DataTable();
  8806. var queryParam = queryJson.ToJObject();
  8807. List<DbParameter> parameter = new List<DbParameter>();
  8808. object Figure = GetDecimalDigits();
  8809. #region [SQL]
  8810. 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,
  8811. CAST(c.LOTQTY AS DECIMAL(38,6)) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  8812. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  8813. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  8814. ,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,
  8815. a.EATTRIBUTE9,a.EATTRIBUTE10,isnull(a.Quantity,'') as MPQ
  8816. from ICSSSD a
  8817. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8818. left join (
  8819. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8820. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='24'
  8821. where isnull(ee.EATTRIBUTE1,'')=''
  8822. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8823. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8824. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8825. where a.Type='2' and a.Status='1' ";
  8826. sql = string.Format(sql, Figure);
  8827. #endregion
  8828. if (!string.IsNullOrWhiteSpace(queryJson))
  8829. {
  8830. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  8831. {
  8832. sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' ";
  8833. }
  8834. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  8835. {
  8836. sql += " and a.CusCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  8837. }
  8838. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  8839. {
  8840. sql += " and a.CusName like '%" + queryParam["VenName"].ToString() + "%' ";
  8841. }
  8842. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  8843. {
  8844. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  8845. }
  8846. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  8847. {
  8848. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  8849. }
  8850. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  8851. {
  8852. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  8853. }
  8854. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  8855. {
  8856. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  8857. }
  8858. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  8859. {
  8860. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  8861. }
  8862. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  8863. {
  8864. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  8865. }
  8866. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  8867. {
  8868. string POStatus = queryParam["POStatus"].ToString();
  8869. if (POStatus == "0")
  8870. {
  8871. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  8872. }
  8873. else if (POStatus == "1")
  8874. {
  8875. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  8876. }
  8877. else
  8878. {
  8879. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  8880. }
  8881. }
  8882. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  8883. {
  8884. string WHStatus = queryParam["WHStatus"].ToString();
  8885. if (WHStatus == "0")
  8886. {
  8887. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  8888. }
  8889. else if (WHStatus == "1")
  8890. {
  8891. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)>0";
  8892. }
  8893. else
  8894. {
  8895. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)=0";
  8896. }
  8897. }
  8898. }
  8899. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  8900. {
  8901. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  8902. }
  8903. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  8904. {
  8905. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  8906. }
  8907. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  8908. }
  8909. /// <summary>
  8910. /// 红字销售出库单生成条码
  8911. /// </summary>
  8912. /// <param name="SDNCode"></param>
  8913. /// <param name="Sequence"></param>
  8914. /// <param name="keyValue"></param>
  8915. /// <param name="WorkPoint"></param>
  8916. /// <param name="AMEnable"></param>
  8917. /// <returns></returns>
  8918. public int SubmitFormSSD(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  8919. {
  8920. var queryParam = keyValue.ToJObject();
  8921. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8922. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  8923. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  8924. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  8925. decimal LOTQTY = minPackQty;
  8926. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8927. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  8928. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  8929. string sql = string.Empty;
  8930. //string VendorLot = queryParam["VendorLot"].ToString();
  8931. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8932. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8933. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  8934. string InvCode = queryParam["ClassCode"].ToString();
  8935. string sqls = string.Empty;
  8936. string Colspan = "";
  8937. string str1 = "";
  8938. string LotNo = string.Empty;
  8939. List<string> ExtensionIDList = new List<string>();
  8940. #region 装箱的功能
  8941. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  8942. string VenCode = queryParam["VenCode"].ToString();
  8943. int PackCount = 0;//每箱放的数量
  8944. int Pack_YuShu = 0;//需要平摊的数量
  8945. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  8946. List<PackModel> List_Pack = new List<PackModel>();
  8947. int ZQty = 0;
  8948. if (createPackCount > 0)
  8949. {
  8950. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  8951. if (Pack_YuShu == 0)
  8952. {
  8953. PackCount = (createPageCount / createPackCount);
  8954. }
  8955. else
  8956. {
  8957. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  8958. }
  8959. for (int jj = 0; jj < createPackCount; jj++)
  8960. {
  8961. object CARID = Guid.NewGuid();
  8962. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  8963. sql += @" INSERT INTO dbo.ICSContainer
  8964. ( ID,ContainerCode ,
  8965. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  8966. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  8967. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  8968. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  8969. PackModel PP = new PackModel();
  8970. PP.ID = CARID.ToString();
  8971. PP.PackCode = Carton;
  8972. if (jj < Pack_YuShu)
  8973. {
  8974. PP.FristBarIndex = ZQty;
  8975. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  8976. }
  8977. else
  8978. {
  8979. PP.FristBarIndex = ZQty;
  8980. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  8981. }
  8982. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  8983. List_Pack.Add(PP);
  8984. }
  8985. }
  8986. #endregion
  8987. for (int i = 0; i < createPageCount; i++)
  8988. {
  8989. if (i + 1 == createPageCount)
  8990. {
  8991. if (minPackQty * createPageCount > thisCreateQty)
  8992. {
  8993. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8994. }
  8995. }
  8996. 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();
  8997. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8998. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8999. bool flag = true;
  9000. foreach (var item in ExtensionIDList)
  9001. {
  9002. if (item == Colspan + WorkPoint)
  9003. {
  9004. flag = false;
  9005. }
  9006. }
  9007. if (ExtensionID == null && flag == true)
  9008. {
  9009. str1 = Guid.NewGuid().ToString();
  9010. 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)
  9011. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9012. 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(),
  9013. MUSER, MUSERNAME, WorkPoints);
  9014. }
  9015. else if (ExtensionID != null)
  9016. {
  9017. str1 = ExtensionID.ToString();
  9018. }
  9019. ExtensionIDList.Add(Colspan + WorkPoint);
  9020. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9021. if (AMEnable == "true")
  9022. {
  9023. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9024. }
  9025. else
  9026. {
  9027. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9028. }
  9029. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9030. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9031. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9032. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9033. //{
  9034. sql += string.Format(@"
  9035. insert into ICSInventoryLot
  9036. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9037. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9038. select
  9039. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9040. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9041. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9042. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9043. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9044. sql += "\r\n";
  9045. //装箱的功能
  9046. if (List_Pack.Count > 0)
  9047. {
  9048. PackModel mm = new PackModel();
  9049. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9050. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9051. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9052. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9053. }
  9054. //}
  9055. }
  9056. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9057. return count;
  9058. }
  9059. /// <summary>
  9060. /// 红字销售出库单生成条码
  9061. /// </summary>
  9062. /// <param name="SDNCode"></param>
  9063. /// <param name="Sequence"></param>
  9064. /// <param name="keyValue"></param>
  9065. /// <param name="WorkPoint"></param>
  9066. /// <param name="AMEnable"></param>
  9067. /// <returns></returns>
  9068. public int SubmitFormSSDNew(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  9069. {
  9070. var queryParam = keyValue.ToJObject();
  9071. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9072. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9073. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9074. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9075. List<decimal> lotQtys = new List<decimal>();
  9076. foreach (var jLotno in jLotnos)
  9077. {
  9078. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9079. lotQtys.Add(qty);
  9080. }
  9081. int createPageCount = lotQtys.Count();
  9082. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9083. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  9084. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  9085. string sql = string.Empty;
  9086. //string VendorLot = queryParam["VendorLot"].ToString();
  9087. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9088. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9089. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9090. string InvCode = queryParam["ClassCode"].ToString();
  9091. string sqls = string.Empty;
  9092. string Colspan = "";
  9093. string str1 = "";
  9094. string LotNo = string.Empty;
  9095. List<string> ExtensionIDList = new List<string>();
  9096. #region 装箱的功能
  9097. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9098. string VenCode = queryParam["VenCode"].ToString();
  9099. int PackCount = 0;//每箱放的数量
  9100. int Pack_YuShu = 0;//需要平摊的数量
  9101. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9102. List<PackModel> List_Pack = new List<PackModel>();
  9103. int ZQty = 0;
  9104. if (createPackCount > 0)
  9105. {
  9106. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9107. if (Pack_YuShu == 0)
  9108. {
  9109. PackCount = (createPageCount / createPackCount);
  9110. }
  9111. else
  9112. {
  9113. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9114. }
  9115. for (int jj = 0; jj < createPackCount; jj++)
  9116. {
  9117. object CARID = Guid.NewGuid();
  9118. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9119. sql += @" INSERT INTO dbo.ICSContainer
  9120. ( ID,ContainerCode ,
  9121. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9122. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9123. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9124. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9125. PackModel PP = new PackModel();
  9126. PP.ID = CARID.ToString();
  9127. PP.PackCode = Carton;
  9128. if (jj < Pack_YuShu)
  9129. {
  9130. PP.FristBarIndex = ZQty;
  9131. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9132. }
  9133. else
  9134. {
  9135. PP.FristBarIndex = ZQty;
  9136. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9137. }
  9138. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9139. List_Pack.Add(PP);
  9140. }
  9141. }
  9142. #endregion
  9143. for (int i = 0; i < createPageCount; i++)
  9144. {
  9145. var LOTQTY = lotQtys[i];
  9146. 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();
  9147. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9148. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9149. bool flag = true;
  9150. foreach (var item in ExtensionIDList)
  9151. {
  9152. if (item == Colspan + WorkPoint)
  9153. {
  9154. flag = false;
  9155. }
  9156. }
  9157. if (ExtensionID == null && flag == true)
  9158. {
  9159. str1 = Guid.NewGuid().ToString();
  9160. 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)
  9161. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9162. 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(),
  9163. MUSER, MUSERNAME, WorkPoints);
  9164. }
  9165. else if (ExtensionID != null)
  9166. {
  9167. str1 = ExtensionID.ToString();
  9168. }
  9169. ExtensionIDList.Add(Colspan + WorkPoint);
  9170. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9171. if (AMEnable == "true")
  9172. {
  9173. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9174. }
  9175. else
  9176. {
  9177. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9178. }
  9179. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9180. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9181. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9182. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9183. //{
  9184. sql += string.Format(@"
  9185. insert into ICSInventoryLot
  9186. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9187. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9188. select
  9189. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9190. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9191. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9192. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9193. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9194. sql += "\r\n";
  9195. //装箱的功能
  9196. if (List_Pack.Count > 0)
  9197. {
  9198. PackModel mm = new PackModel();
  9199. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9200. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9201. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9202. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9203. }
  9204. //}
  9205. }
  9206. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9207. return count;
  9208. }
  9209. /// <summary>
  9210. /// 红字销售出库单查询
  9211. /// </summary>
  9212. /// <param name="SSDCode"></param>
  9213. /// <param name="Sequence"></param>
  9214. /// <param name="WorkPoint"></param>
  9215. /// <returns></returns>
  9216. public DataTable GetSubGridJsonSSDByCreate(string SSDCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  9217. {
  9218. DataTable dt = new DataTable();
  9219. object Figure = GetDecimalDigits();
  9220. List<DbParameter> parameter = new List<DbParameter>();
  9221. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn026', " + Quantity + ",1,3,'')";
  9222. object Num = SqlHelper.ExecuteScalar(SeachNum);
  9223. 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,
  9224. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) as thisCreateQty,
  9225. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  9226. ,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,
  9227. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  9228. from ICSSSD a
  9229. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9230. left join (
  9231. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  9232. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='24'
  9233. where isnull(a.EATTRIBUTE1,'')=''
  9234. group by b.TransCode,b.TransSequence
  9235. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence
  9236. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  9237. WHERE a.Status='1'
  9238. and a.Type='2' and a.SSDCode='" + SSDCode + "' and a.Sequence='" + Sequence + "'";
  9239. sql += " and a.WorkPoint='" + WorkPoint + "'";
  9240. sql = string.Format(sql, Figure);
  9241. return Repository().FindTableBySql(sql.ToString());
  9242. }
  9243. /// <summary>
  9244. /// 派纳 线边仓调拨申请单生成条码
  9245. /// </summary>
  9246. /// <param name="queryJson"></param>
  9247. /// <param name="jqgridparam"></param>
  9248. /// <returns></returns>
  9249. public DataTable GetGridJsonTransferApplicationPN(string queryJson, ref Pagination jqgridparam)
  9250. {
  9251. DataTable dt = new DataTable();
  9252. var queryParam = queryJson.ToJObject();
  9253. List<DbParameter> parameter = new List<DbParameter>();
  9254. object Figure = GetDecimalDigits();
  9255. #region [SQL]
  9256. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9257. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9258. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9259. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9260. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9261. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9262. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9263. ,c.LOTQTY
  9264. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9265. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9266. ,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,
  9267. a.EATTRIBUTE9,a.EATTRIBUTE10
  9268. from ICSTransferApplication a
  9269. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9270. left join (
  9271. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9272. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  9273. where isnull(ee.EATTRIBUTE1,'')=''
  9274. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9275. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9276. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9277. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9278. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9279. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9280. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9281. where 1 = 1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9282. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9283. where A.F_EnCode='WorkLineWHConfig')";
  9284. sql = string.Format(sql, Figure);
  9285. #endregion
  9286. if (!string.IsNullOrWhiteSpace(queryJson))
  9287. {
  9288. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9289. {
  9290. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9291. }
  9292. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9293. {
  9294. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9295. }
  9296. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9297. {
  9298. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9299. }
  9300. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9301. {
  9302. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9303. }
  9304. }
  9305. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9306. {
  9307. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9308. }
  9309. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9310. //{
  9311. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9312. //}
  9313. 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,
  9314. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9315. 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
  9316. where 1=1 ";
  9317. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9318. {
  9319. string POStatus = queryParam["POStatus"].ToString();
  9320. if (POStatus == "0")
  9321. {
  9322. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9323. }
  9324. else if (POStatus == "1")
  9325. {
  9326. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9327. }
  9328. else
  9329. {
  9330. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9331. }
  9332. }
  9333. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9334. }
  9335. /// <summary>
  9336. /// 派纳 线边仓一步调入单生成条码
  9337. /// </summary>
  9338. /// <param name="queryJson"></param>
  9339. /// <param name="jqgridparam"></param>
  9340. /// <returns></returns>
  9341. public DataTable GetGridJsonOneSetpTransPN(string queryJson, ref Pagination jqgridparam)
  9342. {
  9343. DataTable dt = new DataTable();
  9344. var queryParam = queryJson.ToJObject();
  9345. List<DbParameter> parameter = new List<DbParameter>();
  9346. object Figure = GetDecimalDigits();
  9347. #region [SQL]
  9348. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9349. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9350. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9351. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9352. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9353. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9354. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9355. ,c.LOTQTY
  9356. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9357. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9358. ,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,
  9359. a.EATTRIBUTE9,a.EATTRIBUTE10,isnull(a.Quantity,'') as MPQ
  9360. from ICSTransfer a
  9361. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9362. left join (
  9363. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9364. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='203'
  9365. where isnull(ee.EATTRIBUTE1,'')=''
  9366. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9367. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9368. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9369. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9370. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9371. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9372. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9373. where 1 = 1 and a.Type=1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9374. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9375. where A.F_EnCode='WorkLineWHConfig')";
  9376. sql = string.Format(sql, Figure);
  9377. #endregion
  9378. if (!string.IsNullOrWhiteSpace(queryJson))
  9379. {
  9380. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9381. {
  9382. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9383. }
  9384. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9385. {
  9386. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9387. }
  9388. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9389. {
  9390. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9391. }
  9392. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9393. {
  9394. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9395. }
  9396. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  9397. {
  9398. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  9399. }
  9400. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  9401. {
  9402. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  9403. }
  9404. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  9405. {
  9406. sql += " and a.FromWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  9407. }
  9408. }
  9409. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9410. {
  9411. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9412. }
  9413. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9414. //{
  9415. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9416. //}
  9417. 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,
  9418. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9419. 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
  9420. where 1=1 ";
  9421. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9422. {
  9423. string POStatus = queryParam["POStatus"].ToString();
  9424. if (POStatus == "0")
  9425. {
  9426. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9427. }
  9428. else if (POStatus == "1")
  9429. {
  9430. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9431. }
  9432. else
  9433. {
  9434. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9435. }
  9436. }
  9437. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9438. }
  9439. /// <summary>
  9440. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9441. /// </summary>
  9442. /// <param name="TransferNO"></param>
  9443. /// <param name="Sequence"></param>
  9444. /// <param name="keyValue"></param>
  9445. /// <param name="WorkPoint"></param>
  9446. /// <returns></returns>
  9447. public int SubmitFormTransferApplicatioPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9448. {
  9449. var queryParam = keyValue.ToJObject();
  9450. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9451. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9452. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9453. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9454. decimal LOTQTY = minPackQty;
  9455. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9456. string sql = string.Empty;
  9457. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9458. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9459. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9460. string Identification = Guid.NewGuid().ToString();
  9461. string sqls = string.Empty;
  9462. string Colspan = "";
  9463. string str1 = "";
  9464. List<string> ExtensionIDList = new List<string>();
  9465. #region 装箱的功能
  9466. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9467. string VenCode = queryParam["VenCode"].ToString();
  9468. int PackCount = 0;//每箱放的数量
  9469. int Pack_YuShu = 0;//需要平摊的数量
  9470. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9471. List<PackModel> List_Pack = new List<PackModel>();
  9472. int ZQty = 0;
  9473. if (createPackCount > 0)
  9474. {
  9475. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9476. if (Pack_YuShu == 0)
  9477. {
  9478. PackCount = (createPageCount / createPackCount);
  9479. }
  9480. else
  9481. {
  9482. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9483. }
  9484. for (int jj = 0; jj < createPackCount; jj++)
  9485. {
  9486. object CARID = Guid.NewGuid();
  9487. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9488. sql += @" INSERT INTO dbo.ICSContainer
  9489. ( ID,ContainerCode ,
  9490. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9491. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9492. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9493. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9494. PackModel PP = new PackModel();
  9495. PP.ID = CARID.ToString();
  9496. PP.PackCode = Carton;
  9497. if (jj < Pack_YuShu)
  9498. {
  9499. PP.FristBarIndex = ZQty;
  9500. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9501. }
  9502. else
  9503. {
  9504. PP.FristBarIndex = ZQty;
  9505. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9506. }
  9507. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9508. List_Pack.Add(PP);
  9509. }
  9510. }
  9511. #endregion
  9512. for (int i = 0; i < createPageCount; i++)
  9513. {
  9514. if (i + 1 == createPageCount)
  9515. {
  9516. if (minPackQty * createPageCount > thisCreateQty)
  9517. {
  9518. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9519. }
  9520. }
  9521. 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();
  9522. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9523. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9524. bool flag = true;
  9525. foreach (var item in ExtensionIDList)
  9526. {
  9527. if (item == Colspan + WorkPoint)
  9528. {
  9529. flag = false;
  9530. }
  9531. }
  9532. if (ExtensionID == null && flag == true)
  9533. {
  9534. str1 = Guid.NewGuid().ToString();
  9535. 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)
  9536. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9537. 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(),
  9538. MUSER, MUSERNAME, WorkPoints);
  9539. }
  9540. else if (ExtensionID != null)
  9541. {
  9542. str1 = ExtensionID.ToString();
  9543. }
  9544. ExtensionIDList.Add(Colspan + WorkPoint);
  9545. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9546. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9547. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9548. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9549. sql += string.Format(@"
  9550. insert into ICSInventoryLot
  9551. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9552. select
  9553. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9554. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9555. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9556. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9557. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9558. //派纳调拨申请单生成的条码需要自动入库
  9559. sql += string.Format(@"
  9560. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9561. SELECT NEWID(),a.LotNo
  9562. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9563. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9564. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9565. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9566. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9567. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9568. FROM ICSInventoryLot a
  9569. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9570. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9571. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9572. sql += string.Format(@"
  9573. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9574. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9575. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9576. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9577. MTIME,WorkPoint)
  9578. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9579. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9580. '','0','6','75','1',D.TransferID,
  9581. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9582. SYSDATETIME() ,a.WorkPoint
  9583. FROM ICSInventoryLot a
  9584. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9585. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9586. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9587. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9588. LotNo, WorkPoint, Identification);
  9589. sql += "\r\n";
  9590. //装箱的功能
  9591. if (List_Pack.Count > 0)
  9592. {
  9593. PackModel mm = new PackModel();
  9594. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9595. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9596. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9597. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9598. }
  9599. }
  9600. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9601. return count;
  9602. }
  9603. /// <summary>
  9604. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库)
  9605. /// </summary>
  9606. /// <param name="TransferNO"></param>
  9607. /// <param name="Sequence"></param>
  9608. /// <param name="keyValue"></param>
  9609. /// <param name="WorkPoint"></param>
  9610. /// <returns></returns>
  9611. public int SubmitFormOneStepTransPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9612. {
  9613. var queryParam = keyValue.ToJObject();
  9614. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9615. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9616. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9617. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9618. decimal LOTQTY = minPackQty;
  9619. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9620. string sql = string.Empty;
  9621. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9622. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9623. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9624. string Identification = Guid.NewGuid().ToString();
  9625. string sqls = string.Empty;
  9626. string Colspan = "";
  9627. string str1 = "";
  9628. List<string> ExtensionIDList = new List<string>();
  9629. #region 装箱的功能
  9630. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9631. string VenCode = queryParam["VenCode"].ToString();
  9632. int PackCount = 0;//每箱放的数量
  9633. int Pack_YuShu = 0;//需要平摊的数量
  9634. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9635. List<PackModel> List_Pack = new List<PackModel>();
  9636. int ZQty = 0;
  9637. if (createPackCount > 0)
  9638. {
  9639. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9640. if (Pack_YuShu == 0)
  9641. {
  9642. PackCount = (createPageCount / createPackCount);
  9643. }
  9644. else
  9645. {
  9646. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9647. }
  9648. for (int jj = 0; jj < createPackCount; jj++)
  9649. {
  9650. object CARID = Guid.NewGuid();
  9651. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9652. sql += @" INSERT INTO dbo.ICSContainer
  9653. ( ID,ContainerCode ,
  9654. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9655. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9656. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9657. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9658. PackModel PP = new PackModel();
  9659. PP.ID = CARID.ToString();
  9660. PP.PackCode = Carton;
  9661. if (jj < Pack_YuShu)
  9662. {
  9663. PP.FristBarIndex = ZQty;
  9664. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9665. }
  9666. else
  9667. {
  9668. PP.FristBarIndex = ZQty;
  9669. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9670. }
  9671. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9672. List_Pack.Add(PP);
  9673. }
  9674. }
  9675. #endregion
  9676. for (int i = 0; i < createPageCount; i++)
  9677. {
  9678. if (i + 1 == createPageCount)
  9679. {
  9680. if (minPackQty * createPageCount > thisCreateQty)
  9681. {
  9682. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9683. }
  9684. }
  9685. 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();
  9686. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9687. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9688. bool flag = true;
  9689. foreach (var item in ExtensionIDList)
  9690. {
  9691. if (item == Colspan + WorkPoint)
  9692. {
  9693. flag = false;
  9694. }
  9695. }
  9696. if (ExtensionID == null && flag == true)
  9697. {
  9698. str1 = Guid.NewGuid().ToString();
  9699. 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)
  9700. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9701. 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(),
  9702. MUSER, MUSERNAME, WorkPoints);
  9703. }
  9704. else if (ExtensionID != null)
  9705. {
  9706. str1 = ExtensionID.ToString();
  9707. }
  9708. ExtensionIDList.Add(Colspan + WorkPoint);
  9709. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9710. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9711. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9712. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9713. sql += string.Format(@"
  9714. insert into ICSInventoryLot
  9715. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9716. select
  9717. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9718. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9719. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9720. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9721. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9722. //派纳调拨申请单生成的条码需要自动入库
  9723. sql += string.Format(@"
  9724. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9725. SELECT NEWID(),a.LotNo
  9726. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9727. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9728. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9729. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9730. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9731. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9732. FROM ICSInventoryLot a
  9733. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9734. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9735. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9736. sql += string.Format(@"
  9737. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9738. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9739. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9740. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9741. MTIME,WorkPoint)
  9742. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9743. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9744. '','0','6','75','1',D.TransferID,
  9745. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9746. SYSDATETIME() ,a.WorkPoint
  9747. FROM ICSInventoryLot a
  9748. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9749. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9750. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9751. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9752. LotNo, WorkPoint, Identification);
  9753. sql += "\r\n";
  9754. //装箱的功能
  9755. if (List_Pack.Count > 0)
  9756. {
  9757. PackModel mm = new PackModel();
  9758. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9759. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9760. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9761. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9762. }
  9763. }
  9764. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9765. return count;
  9766. }
  9767. /// <summary>
  9768. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9769. /// </summary>
  9770. /// <param name="TransferNO"></param>
  9771. /// <param name="Sequence"></param>
  9772. /// <param name="keyValue"></param>
  9773. /// <param name="WorkPoint"></param>
  9774. /// <returns></returns>
  9775. public int SubmitFormTransferApplicatioPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9776. {
  9777. var queryParam = keyValue.ToJObject();
  9778. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9779. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9780. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9781. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9782. List<decimal> lotQtys = new List<decimal>();
  9783. foreach (var jLotno in jLotnos)
  9784. {
  9785. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9786. lotQtys.Add(qty);
  9787. }
  9788. int createPageCount = lotQtys.Count();
  9789. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9790. string sql = string.Empty;
  9791. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9792. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9793. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9794. string Identification = Guid.NewGuid().ToString();
  9795. string sqls = string.Empty;
  9796. string Colspan = "";
  9797. string str1 = "";
  9798. List<string> ExtensionIDList = new List<string>();
  9799. #region 装箱的功能
  9800. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9801. string VenCode = queryParam["VenCode"].ToString();
  9802. int PackCount = 0;//每箱放的数量
  9803. int Pack_YuShu = 0;//需要平摊的数量
  9804. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9805. List<PackModel> List_Pack = new List<PackModel>();
  9806. int ZQty = 0;
  9807. if (createPackCount > 0)
  9808. {
  9809. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9810. if (Pack_YuShu == 0)
  9811. {
  9812. PackCount = (createPageCount / createPackCount);
  9813. }
  9814. else
  9815. {
  9816. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9817. }
  9818. for (int jj = 0; jj < createPackCount; jj++)
  9819. {
  9820. object CARID = Guid.NewGuid();
  9821. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9822. sql += @" INSERT INTO dbo.ICSContainer
  9823. ( ID,ContainerCode ,
  9824. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9825. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9826. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9827. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9828. PackModel PP = new PackModel();
  9829. PP.ID = CARID.ToString();
  9830. PP.PackCode = Carton;
  9831. if (jj < Pack_YuShu)
  9832. {
  9833. PP.FristBarIndex = ZQty;
  9834. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9835. }
  9836. else
  9837. {
  9838. PP.FristBarIndex = ZQty;
  9839. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9840. }
  9841. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9842. List_Pack.Add(PP);
  9843. }
  9844. }
  9845. #endregion
  9846. for (int i = 0; i < createPageCount; i++)
  9847. {
  9848. var LOTQTY = lotQtys[i];
  9849. 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();
  9850. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9851. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9852. bool flag = true;
  9853. foreach (var item in ExtensionIDList)
  9854. {
  9855. if (item == Colspan + WorkPoint)
  9856. {
  9857. flag = false;
  9858. }
  9859. }
  9860. if (ExtensionID == null && flag == true)
  9861. {
  9862. str1 = Guid.NewGuid().ToString();
  9863. 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)
  9864. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9865. 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(),
  9866. MUSER, MUSERNAME, WorkPoints);
  9867. }
  9868. else if (ExtensionID != null)
  9869. {
  9870. str1 = ExtensionID.ToString();
  9871. }
  9872. ExtensionIDList.Add(Colspan + WorkPoint);
  9873. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9874. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9875. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9876. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9877. sql += string.Format(@"
  9878. insert into ICSInventoryLot
  9879. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9880. select
  9881. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9882. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9883. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9884. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9885. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9886. //派纳调拨申请单生成的条码需要自动入库
  9887. sql += string.Format(@"
  9888. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9889. SELECT NEWID(),a.LotNo
  9890. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9891. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9892. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9893. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9894. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9895. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9896. FROM ICSInventoryLot a
  9897. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9898. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9899. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9900. sql += string.Format(@"
  9901. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9902. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9903. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9904. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9905. MTIME,WorkPoint)
  9906. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9907. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9908. '','0','6','75','1',D.TransferID,
  9909. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9910. SYSDATETIME() ,a.WorkPoint
  9911. FROM ICSInventoryLot a
  9912. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9913. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9914. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9915. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9916. LotNo, WorkPoint, Identification);
  9917. sql += "\r\n";
  9918. //装箱的功能
  9919. if (List_Pack.Count > 0)
  9920. {
  9921. PackModel mm = new PackModel();
  9922. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9923. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9924. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9925. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9926. }
  9927. }
  9928. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9929. return count;
  9930. }
  9931. /// <summary>
  9932. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库---非规则生成条码)
  9933. /// </summary>
  9934. /// <param name="TransferNO"></param>
  9935. /// <param name="Sequence"></param>
  9936. /// <param name="keyValue"></param>
  9937. /// <param name="WorkPoint"></param>
  9938. /// <returns></returns>
  9939. public int SubmitFormOneStepTransferPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9940. {
  9941. var queryParam = keyValue.ToJObject();
  9942. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9943. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9944. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9945. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9946. List<decimal> lotQtys = new List<decimal>();
  9947. foreach (var jLotno in jLotnos)
  9948. {
  9949. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9950. lotQtys.Add(qty);
  9951. }
  9952. int createPageCount = lotQtys.Count();
  9953. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9954. string sql = string.Empty;
  9955. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9956. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9957. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9958. string Identification = Guid.NewGuid().ToString();
  9959. string sqls = string.Empty;
  9960. string Colspan = "";
  9961. string str1 = "";
  9962. List<string> ExtensionIDList = new List<string>();
  9963. #region 装箱的功能
  9964. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9965. string VenCode = queryParam["VenCode"].ToString();
  9966. int PackCount = 0;//每箱放的数量
  9967. int Pack_YuShu = 0;//需要平摊的数量
  9968. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9969. List<PackModel> List_Pack = new List<PackModel>();
  9970. int ZQty = 0;
  9971. if (createPackCount > 0)
  9972. {
  9973. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9974. if (Pack_YuShu == 0)
  9975. {
  9976. PackCount = (createPageCount / createPackCount);
  9977. }
  9978. else
  9979. {
  9980. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9981. }
  9982. for (int jj = 0; jj < createPackCount; jj++)
  9983. {
  9984. object CARID = Guid.NewGuid();
  9985. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9986. sql += @" INSERT INTO dbo.ICSContainer
  9987. ( ID,ContainerCode ,
  9988. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9989. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9990. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9991. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9992. PackModel PP = new PackModel();
  9993. PP.ID = CARID.ToString();
  9994. PP.PackCode = Carton;
  9995. if (jj < Pack_YuShu)
  9996. {
  9997. PP.FristBarIndex = ZQty;
  9998. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9999. }
  10000. else
  10001. {
  10002. PP.FristBarIndex = ZQty;
  10003. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10004. }
  10005. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10006. List_Pack.Add(PP);
  10007. }
  10008. }
  10009. #endregion
  10010. for (int i = 0; i < createPageCount; i++)
  10011. {
  10012. var LOTQTY = lotQtys[i];
  10013. 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();
  10014. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10015. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10016. bool flag = true;
  10017. foreach (var item in ExtensionIDList)
  10018. {
  10019. if (item == Colspan + WorkPoint)
  10020. {
  10021. flag = false;
  10022. }
  10023. }
  10024. if (ExtensionID == null && flag == true)
  10025. {
  10026. str1 = Guid.NewGuid().ToString();
  10027. 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)
  10028. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10029. 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(),
  10030. MUSER, MUSERNAME, WorkPoints);
  10031. }
  10032. else if (ExtensionID != null)
  10033. {
  10034. str1 = ExtensionID.ToString();
  10035. }
  10036. ExtensionIDList.Add(Colspan + WorkPoint);
  10037. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10038. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10039. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10040. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10041. sql += string.Format(@"
  10042. insert into ICSInventoryLot
  10043. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10044. select
  10045. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10046. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10047. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  10048. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10049. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10050. //派纳调拨申请单生成的条码需要自动入库
  10051. sql += string.Format(@"
  10052. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10053. SELECT NEWID(),a.LotNo
  10054. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10055. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10056. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10057. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10058. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10059. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10060. FROM ICSInventoryLot a
  10061. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10062. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10063. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10064. sql += string.Format(@"
  10065. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10066. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10067. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10068. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10069. MTIME,WorkPoint)
  10070. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10071. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10072. '','0','6','75','1',D.TransferID,
  10073. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10074. SYSDATETIME() ,a.WorkPoint
  10075. FROM ICSInventoryLot a
  10076. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10077. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10078. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10079. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10080. LotNo, WorkPoint, Identification);
  10081. sql += "\r\n";
  10082. //装箱的功能
  10083. if (List_Pack.Count > 0)
  10084. {
  10085. PackModel mm = new PackModel();
  10086. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10087. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10088. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10089. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10090. }
  10091. }
  10092. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10093. return count;
  10094. }
  10095. /// <summary>
  10096. /// 派纳 线边仓调拨申请单获取单据信息
  10097. /// </summary>
  10098. /// <param name="TransferNO"></param>
  10099. /// <param name="Sequence"></param>
  10100. /// <param name="WorkPoint"></param>
  10101. /// <returns></returns>
  10102. public DataTable GetSubGridJsonTransferApplicationByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10103. {
  10104. DataTable dt = new DataTable();
  10105. object Figure = GetDecimalDigits();
  10106. List<DbParameter> parameter = new List<DbParameter>();
  10107. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10108. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10109. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10110. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10111. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10112. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10113. , 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 ,
  10114. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10115. FROM ICSTransferApplication a
  10116. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10117. 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
  10118. END AS Quantity
  10119. FROM ICSTransferApplication a
  10120. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  10121. AND a.WorkPoint= b.WorkPoint
  10122. ) xx ON xx.Id= a.Id
  10123. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10124. FROM ICSInventoryLot a
  10125. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  10126. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  10127. GROUP BY
  10128. b.TransCode,
  10129. b.TransSequence
  10130. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10131. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10132. WHERE 1 = 1
  10133. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10134. and a.WorkPoint='{WorkPoint}'";
  10135. sql = string.Format(sql, Figure);
  10136. return Repository().FindTableBySql(sql.ToString());
  10137. }
  10138. /// <summary>
  10139. /// 派纳 线边仓一步调入单获取单据信息
  10140. /// </summary>
  10141. /// <param name="TransferNO"></param>
  10142. /// <param name="Sequence"></param>
  10143. /// <param name="WorkPoint"></param>
  10144. /// <returns></returns>
  10145. public DataTable GetSubGridJsonOneSetpTransByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10146. {
  10147. DataTable dt = new DataTable();
  10148. object Figure = GetDecimalDigits();
  10149. List<DbParameter> parameter = new List<DbParameter>();
  10150. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10151. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10152. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10153. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10154. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10155. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10156. , 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 ,
  10157. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10158. FROM ICSTransfer a
  10159. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10160. 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
  10161. END AS Quantity
  10162. FROM ICSTransfer a
  10163. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  10164. AND a.WorkPoint= b.WorkPoint
  10165. ) xx ON xx.Id= a.Id
  10166. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10167. FROM ICSInventoryLot a
  10168. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '203'
  10169. WHERE isnull( a.EATTRIBUTE1, '' ) = '' AND a.Type=1
  10170. GROUP BY
  10171. b.TransCode,
  10172. b.TransSequence
  10173. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10174. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10175. WHERE 1 = 1
  10176. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10177. and a.WorkPoint='{WorkPoint}'";
  10178. sql = string.Format(sql, Figure);
  10179. return Repository().FindTableBySql(sql.ToString());
  10180. }
  10181. public int SubmitFormCGRKALL(string keyValue)
  10182. {
  10183. string sql = string.Empty;
  10184. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10185. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10186. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10187. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10188. foreach (var item in res)
  10189. {
  10190. JObject jo = (JObject)item;
  10191. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10192. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10193. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10194. decimal LOTQTY = minPackQty;
  10195. //aa
  10196. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10197. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10198. string sqls = string.Empty;
  10199. string Colspan = "";
  10200. string str1 = "";
  10201. List<string> ExtensionIDList = new List<string>();
  10202. for (int i = 0; i < createPageCount; i++)
  10203. {
  10204. if (i + 1 == createPageCount)
  10205. {
  10206. if (minPackQty * createPageCount > thisCreateQty)
  10207. {
  10208. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10209. }
  10210. }
  10211. 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();
  10212. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10213. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10214. bool flag = true;
  10215. foreach (var items in ExtensionIDList)
  10216. {
  10217. if (items == Colspan + WorkPoint)
  10218. {
  10219. flag = false;
  10220. }
  10221. }
  10222. if (ExtensionID == null && flag == true)
  10223. {
  10224. str1 = Guid.NewGuid().ToString();
  10225. 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)
  10226. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10227. 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(),
  10228. MUSER, MUSERNAME, WorkPoint);
  10229. }
  10230. else if (ExtensionID != null)
  10231. {
  10232. str1 = ExtensionID.ToString();
  10233. }
  10234. ExtensionIDList.Add(Colspan + WorkPoint);
  10235. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10236. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10237. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10238. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10239. //aa
  10240. sql += string.Format(@"
  10241. insert into ICSInventoryLot
  10242. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10243. select
  10244. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}'
  10245. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10246. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10247. sql += "\r\n";
  10248. }
  10249. }
  10250. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10251. return count;
  10252. }
  10253. public int SubmitFormXSTHALL(string keyValue)
  10254. {
  10255. try
  10256. {
  10257. string sql = string.Empty;
  10258. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10259. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10260. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10261. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10262. foreach (var item in res)
  10263. {
  10264. JObject jo = (JObject)item;
  10265. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10266. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10267. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10268. decimal LOTQTY = minPackQty;
  10269. //aa
  10270. string Pre = "SSD" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10271. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10272. string sqls = string.Empty;
  10273. string Colspan = "";
  10274. string str1 = "";
  10275. List<string> ExtensionIDList = new List<string>();
  10276. for (int i = 0; i < createPageCount; i++)
  10277. {
  10278. if (i + 1 == createPageCount)
  10279. {
  10280. if (minPackQty * createPageCount > thisCreateQty)
  10281. {
  10282. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10283. }
  10284. }
  10285. 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();
  10286. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10287. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10288. bool flag = true;
  10289. foreach (var items in ExtensionIDList)
  10290. {
  10291. if (items == Colspan + WorkPoint)
  10292. {
  10293. flag = false;
  10294. }
  10295. }
  10296. if (ExtensionID == null && flag == true)
  10297. {
  10298. str1 = Guid.NewGuid().ToString();
  10299. 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)
  10300. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10301. 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(),
  10302. MUSER, MUSERNAME, WorkPoint);
  10303. }
  10304. else if (ExtensionID != null)
  10305. {
  10306. str1 = ExtensionID.ToString();
  10307. }
  10308. ExtensionIDList.Add(Colspan + WorkPoint);
  10309. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10310. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10311. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10312. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10313. //aa
  10314. sql += string.Format(@"
  10315. insert into ICSInventoryLot
  10316. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10317. select
  10318. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}'
  10319. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10320. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10321. sql += "\r\n";
  10322. }
  10323. }
  10324. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10325. return count;
  10326. }
  10327. catch (Exception ex)
  10328. {
  10329. throw new Exception(ex.Message);
  10330. }
  10331. }
  10332. public int SubmitFormGDCPALL(string keyValue)
  10333. {
  10334. try
  10335. {
  10336. string sql = string.Empty;
  10337. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10338. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10339. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10340. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10341. foreach (var item in res)
  10342. {
  10343. JObject jo = (JObject)item;
  10344. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10345. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10346. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10347. decimal LOTQTY = minPackQty;
  10348. string Pre = WorkPoint + jo["Code"].ToString().Remove(0, 5);
  10349. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10350. string sqls = string.Empty;
  10351. string Colspan = "";
  10352. string str1 = "";
  10353. List<string> ExtensionIDList = new List<string>();
  10354. for (int i = 0; i < createPageCount; i++)
  10355. {
  10356. if (i + 1 == createPageCount)
  10357. {
  10358. if (minPackQty * createPageCount > thisCreateQty)
  10359. {
  10360. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10361. }
  10362. }
  10363. 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();
  10364. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10365. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10366. bool flag = true;
  10367. foreach (var items in ExtensionIDList)
  10368. {
  10369. if (items == Colspan + WorkPoint)
  10370. {
  10371. flag = false;
  10372. }
  10373. }
  10374. if (ExtensionID == null && flag == true)
  10375. {
  10376. str1 = Guid.NewGuid().ToString();
  10377. 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)
  10378. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10379. 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(),
  10380. MUSER, MUSERNAME, WorkPoint);
  10381. }
  10382. else if (ExtensionID != null)
  10383. {
  10384. str1 = ExtensionID.ToString();
  10385. }
  10386. ExtensionIDList.Add(Colspan + WorkPoint);
  10387. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 3);
  10388. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10389. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10390. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10391. sql += string.Format(@"
  10392. insert into ICSInventoryLot
  10393. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10394. select
  10395. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}'
  10396. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10397. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10398. sql += "\r\n";
  10399. }
  10400. }
  10401. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10402. return count;
  10403. }
  10404. catch (Exception ex)
  10405. {
  10406. throw new Exception(ex.Message);
  10407. }
  10408. }
  10409. public int SubmitFormYBDBALL(string keyValue)
  10410. {
  10411. string sql = string.Empty;
  10412. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10413. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10414. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10415. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10416. string Identification = Guid.NewGuid().ToString();
  10417. foreach (var item in res)
  10418. {
  10419. JObject jo = (JObject)item;
  10420. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10421. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10422. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10423. decimal LOTQTY = minPackQty;
  10424. string Pre = "Tra" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10425. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10426. string sqls = string.Empty;
  10427. string Colspan = "";
  10428. string str1 = "";
  10429. List<string> ExtensionIDList = new List<string>();
  10430. for (int i = 0; i < createPageCount; i++)
  10431. {
  10432. if (i + 1 == createPageCount)
  10433. {
  10434. if (minPackQty * createPageCount > thisCreateQty)
  10435. {
  10436. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10437. }
  10438. }
  10439. 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();
  10440. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10441. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10442. bool flag = true;
  10443. foreach (var items in ExtensionIDList)
  10444. {
  10445. if (items == Colspan + WorkPoint)
  10446. {
  10447. flag = false;
  10448. }
  10449. }
  10450. if (ExtensionID == null && flag == true)
  10451. {
  10452. str1 = Guid.NewGuid().ToString();
  10453. 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)
  10454. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10455. 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(),
  10456. MUSER, MUSERNAME, WorkPoint);
  10457. }
  10458. else if (ExtensionID != null)
  10459. {
  10460. str1 = ExtensionID.ToString();
  10461. }
  10462. ExtensionIDList.Add(Colspan + WorkPoint);
  10463. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10464. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10465. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10466. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10467. sql += string.Format(@"
  10468. insert into ICSInventoryLot
  10469. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10470. select
  10471. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}'
  10472. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10473. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10474. //派纳调拨申请单生成的条码需要自动入库
  10475. sql += string.Format(@"
  10476. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10477. SELECT NEWID(),a.LotNo
  10478. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10479. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10480. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10481. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10482. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10483. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10484. FROM ICSInventoryLot a
  10485. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10486. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10487. LotNo, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME);
  10488. sql += string.Format(@"
  10489. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10490. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10491. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10492. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10493. MTIME,WorkPoint)
  10494. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10495. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10496. '','0','6','75','1',D.TransferID,
  10497. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10498. SYSDATETIME() ,a.WorkPoint
  10499. FROM ICSInventoryLot a
  10500. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10501. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10502. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10503. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10504. LotNo, WorkPoint, Identification);
  10505. sql += "\r\n";
  10506. }
  10507. }
  10508. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10509. return count;
  10510. }
  10511. /// <summary>
  10512. /// 成品(一键生成带装箱)
  10513. /// </summary>
  10514. public int SubmitFormGDCPZXALL(string keyValue)
  10515. {
  10516. try
  10517. {
  10518. string sql = string.Empty;
  10519. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10520. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10521. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10522. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10523. #region 生成箱号
  10524. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  10525. object CARID = Guid.NewGuid();
  10526. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  10527. sql += @" INSERT INTO dbo.ICSContainer
  10528. ( ID,ContainerCode ,
  10529. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10530. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10531. VALUES ( '" + CARID + "','" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10532. "','','WMS','','" + Carton + "',1,1,1,1)";
  10533. #endregion
  10534. foreach (var item in res)
  10535. {
  10536. JObject jo = (JObject)item;
  10537. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10538. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10539. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10540. decimal LOTQTY = minPackQty;
  10541. string Pre = WorkPoint + jo["Code"].ToString().Remove(0, 5);
  10542. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10543. string sqls = string.Empty;
  10544. string Colspan = "";
  10545. string str1 = "";
  10546. List<string> ExtensionIDList = new List<string>();
  10547. for (int i = 0; i < createPageCount; i++)
  10548. {
  10549. if (i + 1 == createPageCount)
  10550. {
  10551. if (minPackQty * createPageCount > thisCreateQty)
  10552. {
  10553. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10554. }
  10555. }
  10556. 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();
  10557. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10558. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10559. bool flag = true;
  10560. foreach (var items in ExtensionIDList)
  10561. {
  10562. if (items == Colspan + WorkPoint)
  10563. {
  10564. flag = false;
  10565. }
  10566. }
  10567. if (ExtensionID == null && flag == true)
  10568. {
  10569. str1 = Guid.NewGuid().ToString();
  10570. 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)
  10571. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10572. 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(),
  10573. MUSER, MUSERNAME, WorkPoint);
  10574. }
  10575. else if (ExtensionID != null)
  10576. {
  10577. str1 = ExtensionID.ToString();
  10578. }
  10579. ExtensionIDList.Add(Colspan + WorkPoint);
  10580. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10581. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10582. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10583. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10584. sql += string.Format(@"
  10585. insert into ICSInventoryLot
  10586. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10587. select
  10588. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}'
  10589. from ICSMO where Mocode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10590. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10591. sql += "\r\n";
  10592. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10593. ( ID ,ContainerID ,LotNo ,
  10594. MUSER ,MUSERName ,MTIME ,WorkPoint )
  10595. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", CARID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10596. sql += "\r\n";
  10597. }
  10598. }
  10599. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10600. return count;
  10601. }
  10602. catch (Exception ex)
  10603. {
  10604. throw new Exception(ex.Message);
  10605. }
  10606. }
  10607. public string SeachBoxNum()
  10608. {
  10609. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10610. string ContainerCode = "";
  10611. DateTime TimeNow = DateTime.Now;
  10612. string Time = DateTime.Now.ToString("yyyyMMdd");
  10613. string sqlss = @"select max(ContainerCode) as NewContainerCode from ICSContainer where substring(ContainerCode,1,8)='{0}'";
  10614. sqlss = string.Format(sqlss, Time);
  10615. DataTable dts = Repository().FindTableBySql(sqlss.ToString());
  10616. if (dts == null || dts.Rows.Count == 0 || dts.Rows[0]["NewContainerCode"].ToString() == "")
  10617. {
  10618. ContainerCode = Time + "000001";
  10619. }
  10620. else
  10621. {
  10622. string NewContainerCode = dts.Rows[0]["NewContainerCode"].ToString();
  10623. int COUNT = Convert.ToInt32(NewContainerCode.Substring(8)) + 1;
  10624. ContainerCode = Time + COUNT.ToString().PadLeft(6, '0');
  10625. }
  10626. return ContainerCode;
  10627. }
  10628. public string SubmitBoxPacking(string keyValue,string BoxNum)
  10629. {
  10630. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10631. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10632. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  10633. string msg = "";
  10634. string sql = string.Empty;
  10635. object CARID = Guid.NewGuid();
  10636. string sqlseach = string.Format(@"select LotNo from ICSContainerLot where LotNo in({0})", keyValue);
  10637. DataTable dt = SqlHelper.GetDataTableBySql(sqlseach);
  10638. if (dt.Rows.Count > 0)
  10639. {
  10640. msg = "所选条码中有条码已进行过装箱,无法重复此操作!";
  10641. return msg;
  10642. }
  10643. sql += @" INSERT INTO dbo.ICSContainer
  10644. ( ID,ContainerCode ,
  10645. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10646. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10647. VALUES ( '" + CARID + "','" + BoxNum + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10648. "','','WMS','','" + BoxNum + "',1,1,1,1)";
  10649. sql += "\r\n";
  10650. sql += string.Format(@"INSERT INTO dbo.ICSContainerLot
  10651. ( ID ,ContainerID ,LotNo ,
  10652. MUSER ,MUSERName ,MTIME ,WorkPoint )
  10653. select
  10654. newid(),'{0}',LotNo,'{1}','{2}', getdate(),'{3}'
  10655. from dbo.ICSInventoryLot where LotNo in ({4}) and WorkPoint='{3}' ", CARID, MUSER, MUSERNAME, WorkPoint, keyValue);
  10656. sql += "\r\n";
  10657. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  10658. {
  10659. msg = "";
  10660. }
  10661. else
  10662. {
  10663. msg = "条码装箱失败!";
  10664. }
  10665. return msg;
  10666. }
  10667. public int SubmitFormQTRKALL(string keyValue)
  10668. {
  10669. string sql = string.Empty;
  10670. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10671. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10672. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10673. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10674. foreach (var item in res)
  10675. {
  10676. JObject jo = (JObject)item;
  10677. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10678. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10679. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10680. decimal LOTQTY = minPackQty;
  10681. //aa
  10682. string Pre = "QT" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10683. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10684. string sqls = string.Empty;
  10685. string Colspan = "";
  10686. string str1 = "";
  10687. List<string> ExtensionIDList = new List<string>();
  10688. for (int i = 0; i < createPageCount; i++)
  10689. {
  10690. if (i + 1 == createPageCount)
  10691. {
  10692. if (minPackQty * createPageCount > thisCreateQty)
  10693. {
  10694. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10695. }
  10696. }
  10697. 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();
  10698. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10699. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10700. bool flag = true;
  10701. foreach (var items in ExtensionIDList)
  10702. {
  10703. if (items == Colspan + WorkPoint)
  10704. {
  10705. flag = false;
  10706. }
  10707. }
  10708. if (ExtensionID == null && flag == true)
  10709. {
  10710. str1 = Guid.NewGuid().ToString();
  10711. 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)
  10712. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10713. 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(),
  10714. MUSER, MUSERNAME, WorkPoint);
  10715. }
  10716. else if (ExtensionID != null)
  10717. {
  10718. str1 = ExtensionID.ToString();
  10719. }
  10720. ExtensionIDList.Add(Colspan + WorkPoint);
  10721. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10722. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10723. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10724. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10725. //aa
  10726. sql += string.Format(@"
  10727. insert into ICSInventoryLot
  10728. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10729. select
  10730. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}'
  10731. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10732. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10733. sql += "\r\n";
  10734. }
  10735. }
  10736. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10737. return count;
  10738. }
  10739. }
  10740. public class PackModel
  10741. {
  10742. public string ID { get; set; }
  10743. public string PackCode { get; set; }
  10744. public int FristBarIndex { get; set; }
  10745. public int LastBarIndex { get; set; }
  10746. }
  10747. }