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.

12133 lines
716 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. using System.Text.RegularExpressions;
  19. namespace NFine.Application.WMS
  20. {
  21. public class WMSCreateItemLotApp : RepositoryFactory<ICSVendor>
  22. {
  23. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  24. {
  25. DataTable dt = new DataTable();
  26. var queryParam = queryJson.ToJObject();
  27. List<DbParameter> parameter = new List<DbParameter>();
  28. object Figure = GetDecimalDigits();
  29. #region [SQL]
  30. string sql = @"select a.ID,y.MOCode,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  31. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  32. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  33. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  34. ,b.EffectiveEnable,b.EffectiveDays
  35. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  36. ,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,
  37. a.EATTRIBUTE9,a.EATTRIBUTE10
  38. from ICSMOApplyNegDetail a
  39. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  40. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  41. left join (
  42. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  43. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  44. where isnull(ee.EATTRIBUTE1,'')=''
  45. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  46. )c
  47. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  48. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  49. inner JOIN ICSMOPick x ON a.SourceDetailID=x.PickID AND a.WorkPoint=x.WorkPoint
  50. left JOIN ICSMO y ON x.MODetailID=y.MODetailID AND x.WorkPoint=y.WorkPoint
  51. where d.Type='1' and d.Status='2' ";
  52. sql = string.Format(sql, Figure);
  53. #endregion
  54. if (!string.IsNullOrWhiteSpace(queryJson))
  55. {
  56. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  57. {
  58. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  59. }
  60. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  61. {
  62. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  63. }
  64. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  65. {
  66. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  67. }
  68. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  69. {
  70. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  71. }
  72. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  73. {
  74. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  75. }
  76. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  77. {
  78. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  79. }
  80. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  81. {
  82. string POStatus = queryParam["POStatus"].ToString();
  83. if (POStatus == "0")
  84. {
  85. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  86. }
  87. else if (POStatus == "1")
  88. {
  89. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  90. }
  91. else
  92. {
  93. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  94. }
  95. }
  96. }
  97. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  98. {
  99. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  100. }
  101. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  102. {
  103. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  104. }
  105. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  106. }
  107. /// <summary>
  108. /// 领料子件信息
  109. /// </summary>
  110. /// <param name="MODetailID"></param>
  111. /// <param name="workpoint"></param>
  112. /// <param name="jqgridparam"></param>
  113. /// <returns></returns>
  114. public DataTable GetICSMOPick(string MODetailID, string workpoint, ref Pagination jqgridparam)
  115. {
  116. DataTable dt = new DataTable();
  117. List<DbParameter> parameter = new List<DbParameter>();
  118. object Figure = GetDecimalDigits();
  119. #region [SQL]
  120. string sql = @" SELECT b.InvCode,c.InvName,c.InvStd,InvUnit,b.ID,b.Quantity,b.IssueQuantity,d.WarehouseCode,d.WarehouseName FROM dbo.ICSMO a
  121. LEFT JOIN dbo.ICSMOPick b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint
  122. LEFT JOIN dbo.ICSInventory c ON b.InvCode=c.InvCode AND b.WorkPoint=c.WorkPoint
  123. left join dbo.ICSWarehouse d on b.WHCode=d.WarehouseCode and b.WorkPoint=d.WorkPoint
  124. WHERE a.MODetailID='{0}'
  125. ";
  126. sql = string.Format(sql, MODetailID);
  127. #endregion
  128. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  129. }
  130. public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, string isPrint, ref Pagination jqgridparam)
  131. {
  132. string sql = "";
  133. DataTable dt = new DataTable();
  134. object Figure = GetDecimalDigits();
  135. List<DbParameter> parameter = new List<DbParameter>();
  136. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  137. if (Type != "18")
  138. {
  139. sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  140. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  141. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  142. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  143. case when g.InvIQC='1'and isnull(e.ID,'')='' then '' else '' end as isInspection,
  144. case when isnull(a.LastPrintUser,'')='' then '' else '' end as isPrint,
  145. case when Isnull(g.InvFQC,'0')='1' then '否' else '是' end as isExemption,a.Amount,
  146. convert(varchar(20),a.ProductDate,23) as ProductDate,convert(varchar(20),a.ExpirationDate,23) as ExpirationDate ,g.EffectiveDays,a.EATTRIBUTE4,a.EATTRIBUTE5
  147. from ICSInventoryLot a
  148. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  149. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  150. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  151. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  152. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  153. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  154. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  155. WHERE isnull(a.EATTRIBUTE1,'')='' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  156. }
  157. else
  158. {
  159. sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  160. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  161. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  162. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  163. case when g.InvIQC='1'and isnull(e.ID,'')='' then '' else '' end as isInspection,
  164. case when isnull(a.LastPrintUser,'')='' then '' else '' end as isPrint,
  165. case when Isnull(g.InvFQC,'0')='1' then '否' else '是' end as isExemption,a.Amount,
  166. convert(varchar(20),a.ProductDate,23) as ProductDate,convert(varchar(20),a.ExpirationDate,23) as ExpirationDate ,g.EffectiveDays,a.EATTRIBUTE2,a.EATTRIBUTE4,a.EATTRIBUTE5
  167. from ICSInventoryLot a
  168. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  169. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  170. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  171. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  172. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  173. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  174. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  175. WHERE a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  176. }
  177. if (!string.IsNullOrWhiteSpace(isPrint))
  178. {
  179. if (isPrint == "0")
  180. {
  181. }
  182. else if (isPrint == "1")
  183. {
  184. sql += " and isnull(LastPrintUser,'')<>''";
  185. }
  186. else
  187. {
  188. sql += " and isnull(LastPrintUser,'')=''";
  189. }
  190. }
  191. sql = string.Format(sql, Figure);
  192. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  193. }
  194. /// <summary>
  195. /// 点击生成条码
  196. /// </summary>
  197. public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  198. {
  199. DataTable dt = new DataTable();
  200. object Figure = GetDecimalDigits();
  201. List<DbParameter> parameter = new List<DbParameter>();
  202. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn017', " + Quantity + ",1,2,'')";
  203. object Num = SqlHelper.ExecuteScalar(SeachNum);
  204. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  205. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty ,
  206. CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  207. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ,
  208. 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,
  209. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  210. from ICSMOApplyNegDetail a
  211. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  212. left join (
  213. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  214. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='1'
  215. where isnull(a.EATTRIBUTE1,'')=''
  216. group by b.TransCode,b.TransSequence
  217. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  218. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  219. WHERE 1 =1
  220. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  221. sql += " and a.WorkPoint='" + WorkPoint + "'";
  222. sql = string.Format(sql, Figure);
  223. return Repository().FindTableBySql(sql.ToString());
  224. }
  225. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  226. {
  227. DataTable dt = new DataTable();
  228. //var queryParam = queryJson.ToJObject();
  229. List<DbParameter> parameter = new List<DbParameter>();
  230. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  231. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  232. return Repository().FindTableBySql(sql.ToString());
  233. }
  234. /// <summary>
  235. /// 生产退料生成条码
  236. /// </summary>
  237. /// <param name="POCode"></param>
  238. /// <param name="PORow"></param>
  239. /// <param name="keyValue"></param>
  240. /// 已改
  241. /// <returns></returns>
  242. public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  243. {
  244. var queryParam = keyValue.ToJObject();
  245. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  246. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  247. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  248. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  249. decimal LOTQTY = minPackQty;
  250. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  251. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  252. string Pre = "MDN" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  253. string sql = string.Empty;
  254. //string VendorLot = queryParam["VendorLot"].ToString();
  255. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  256. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  257. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  258. string InvCode = queryParam["ClassCode"].ToString();
  259. string Colspan = "";
  260. string sqls = string.Empty;
  261. string LotNo = string.Empty;
  262. string str1 = "";
  263. List<string> ExtensionIDList = new List<string>();
  264. #region 装箱的功能
  265. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  266. string VenCode = queryParam["VenCode"].ToString();
  267. int PackCount = 0;//每箱放的数量
  268. int Pack_YuShu = 0;//需要平摊的数量
  269. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  270. List<PackModel> List_Pack = new List<PackModel>();
  271. int ZQty = 0;
  272. if (createPackCount > 0)
  273. {
  274. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  275. if (Pack_YuShu == 0)
  276. {
  277. PackCount = (createPageCount / createPackCount);
  278. }
  279. else
  280. {
  281. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  282. }
  283. for (int jj = 0; jj < createPackCount; jj++)
  284. {
  285. object CARID = Guid.NewGuid();
  286. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  287. sql += @" INSERT INTO dbo.ICSContainer
  288. ( ID,ContainerCode ,
  289. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  290. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  291. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  292. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  293. PackModel PP = new PackModel();
  294. PP.ID = CARID.ToString();
  295. PP.PackCode = Carton;
  296. if (jj < Pack_YuShu)
  297. {
  298. PP.FristBarIndex = ZQty;
  299. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  300. }
  301. else
  302. {
  303. PP.FristBarIndex = ZQty;
  304. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  305. }
  306. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  307. List_Pack.Add(PP);
  308. }
  309. }
  310. #endregion
  311. for (int i = 0; i < createPageCount; i++)
  312. {
  313. if (i + 1 == createPageCount)
  314. {
  315. if (minPackQty * createPageCount > thisCreateQty)
  316. {
  317. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  318. }
  319. }
  320. 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();
  321. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  322. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  323. bool flag = true;
  324. foreach (var item in ExtensionIDList)
  325. {
  326. if (item == Colspan + WorkPoint)
  327. {
  328. flag = false;
  329. }
  330. }
  331. if (ExtensionID == null && flag == true)
  332. {
  333. str1 = Guid.NewGuid().ToString();
  334. 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)
  335. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  336. 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(),
  337. MUSER, MUSERNAME, WorkPoints);
  338. }
  339. else if (ExtensionID != null)
  340. {
  341. str1 = ExtensionID.ToString();
  342. }
  343. ExtensionIDList.Add(Colspan + WorkPoint);
  344. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  345. if (AMEnable == "true")
  346. {
  347. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  348. }
  349. else
  350. {
  351. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  352. }
  353. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  354. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  355. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  356. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  357. //{
  358. sql += string.Format(@"insert into ICSInventoryLot
  359. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  360. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  361. select
  362. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  363. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  364. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  365. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  366. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  367. sql += "\r\n";
  368. //装箱的功能
  369. if (List_Pack.Count > 0)
  370. {
  371. PackModel mm = new PackModel();
  372. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  373. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  374. ( ID ,ContainerID ,LotNo ,
  375. MUSER ,MUSERName ,MTIME ,WorkPoint )
  376. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  377. }
  378. //}
  379. }
  380. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  381. return count;
  382. }
  383. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  384. {
  385. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  386. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  387. //return Repository().FindTableBySql(sql.ToString());
  388. return SqlHelper.ExecuteScalar(sql).ToString();
  389. //return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  390. }
  391. /// <summary>
  392. /// 删除条码
  393. /// </summary>
  394. /// <param name="keyValue"></param>
  395. /// <returns></returns>
  396. public string DeleteItemLot(string keyValue)
  397. {
  398. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  399. string msg = string.Empty;
  400. string sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  401. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  402. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  403. if (dtASN != null && dtASN.Rows.Count > 0)
  404. {
  405. msg = "所选条码已生成检验单,无法删除!";
  406. }
  407. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  408. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  409. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  410. if (dtCarton != null && dtCarton.Rows.Count > 0)
  411. {
  412. msg += "所选条码已入库,无法删除!";
  413. }
  414. if (string.IsNullOrEmpty(msg))
  415. {
  416. 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);
  417. 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);//删除箱子 条码对应关系
  418. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  419. SqlHelper.CmdExecuteNonQueryLi(sqls);
  420. }
  421. return msg;
  422. }
  423. /// <summary>
  424. /// 成品工单批量删除条码
  425. /// </summary>
  426. /// <param name="keyValue"></param>
  427. /// <returns></returns>
  428. public string BatchDeleteItemLot(string MOCodes)
  429. {
  430. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  431. string msg = string.Empty;
  432. string sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  433. WHERE LotNo IN (select LotNo from ICSInventoryLotDetail where TransCode IN ({0})) and WorkPoint in ('{1}')", MOCodes.TrimEnd(','), WorkPoint);
  434. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  435. if (dtASN != null && dtASN.Rows.Count > 0)
  436. {
  437. msg = "所选条码已生成检验单,无法删除!";
  438. }
  439. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  440. (select LotNo from ICSInventoryLotDetail where TransCode IN ({0})) and WorkPoint in ('{1}')", MOCodes.TrimEnd(','), WorkPoint);
  441. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  442. if (dtCarton != null && dtCarton.Rows.Count > 0)
  443. {
  444. msg += "所选条码已入库,无法删除!";
  445. }
  446. if (string.IsNullOrEmpty(msg))
  447. {
  448. string sqls = string.Format("DELETE FROM dbo.ICSContainerLot WHERE LotNO IN (select LotNO from ICSInventoryLotDetail where TransCode in ({0}) ) and WorkPoint in ('{1}')", MOCodes.TrimEnd(','), WorkPoint);//删除箱子 条码对应关系
  449. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE LotNO IN (select LotNO from ICSInventoryLotDetail where TransCode in ({0})) and WorkPoint in ('{1}')", MOCodes.TrimEnd(','), WorkPoint);
  450. sqls += string.Format("DELETE FROM ICSInventoryLotDetail WHERE TransCode IN ({0}) and WorkPoint in ('{1}')", MOCodes.TrimEnd(','), WorkPoint);
  451. SqlHelper.CmdExecuteNonQueryLi(sqls);
  452. }
  453. return msg;
  454. }
  455. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  456. {
  457. DataTable dt = new DataTable();
  458. var queryParam = queryJson.ToJObject();
  459. List<DbParameter> parameter = new List<DbParameter>();
  460. object Figure = GetDecimalDigits();
  461. #region [SQL]
  462. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  463. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  464. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
  465. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  466. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  467. ,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,
  468. a.EATTRIBUTE9,a.EATTRIBUTE10
  469. from ICSOApplyNegDetail a
  470. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  471. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  472. left join (
  473. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  474. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  475. where isnull(ee.EATTRIBUTE1,'')=''
  476. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  477. )c
  478. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  479. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  480. WHERE d.Type='1' ";
  481. sql = string.Format(sql, Figure);
  482. #endregion
  483. if (!string.IsNullOrWhiteSpace(queryJson))
  484. {
  485. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  486. {
  487. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  488. }
  489. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  490. {
  491. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  492. }
  493. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  494. {
  495. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  496. }
  497. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  498. {
  499. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  500. }
  501. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  502. {
  503. sql += " and d.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  504. }
  505. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  506. {
  507. sql += " and d.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  508. }
  509. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  510. {
  511. sql += " and d.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  512. }
  513. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  514. {
  515. string POStatus = queryParam["POStatus"].ToString();
  516. if (POStatus == "0")
  517. {
  518. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  519. }
  520. else if (POStatus == "1")
  521. {
  522. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  523. }
  524. else
  525. {
  526. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  527. }
  528. }
  529. }
  530. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  531. {
  532. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  533. }
  534. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  535. {
  536. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  537. }
  538. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  539. }
  540. public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
  541. {
  542. DataTable dt = new DataTable();
  543. object Figure = GetDecimalDigits();
  544. //var queryParam = queryJson.ToJObject();
  545. List<DbParameter> parameter = new List<DbParameter>();
  546. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  547. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity from ICSInventoryLot a
  548. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  549. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  550. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  551. WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
  552. sql = string.Format(sql, Figure);
  553. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  554. }
  555. /// <summary>
  556. /// 点击委外退料生成条码
  557. /// </summary>
  558. public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  559. {
  560. DataTable dt = new DataTable();
  561. object Figure = GetDecimalDigits();
  562. List<DbParameter> parameter = new List<DbParameter>();
  563. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn008', " + Quantity + ",1,2,'')";
  564. object Num = SqlHelper.ExecuteScalar(SeachNum);
  565. string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  566. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  567. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  568. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  569. ,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,
  570. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  571. from ICSOApplyNegDetail a
  572. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  573. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  574. left join (
  575. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  576. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='2'
  577. where isnull(a.EATTRIBUTE1,'')=''
  578. group by b.TransCode,b.TransSequence
  579. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  580. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  581. WHERE d.Type='1'
  582. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  583. sql += " and a.WorkPoint='" + WorkPoint + "'";
  584. sql = string.Format(sql, Figure);
  585. return Repository().FindTableBySql(sql.ToString());
  586. }
  587. /// <summary>
  588. /// 委外退料生成条码
  589. /// </summary>
  590. /// <param name="POCode"></param>
  591. /// <param name="PORow"></param>
  592. /// <param name="keyValue"></param>
  593. /// 已改
  594. /// <returns></returns>
  595. public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  596. {
  597. var queryParam = keyValue.ToJObject();
  598. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  599. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  600. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  601. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  602. decimal LOTQTY = minPackQty;
  603. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  604. string sql = string.Empty;
  605. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  606. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  607. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  608. string sqls = string.Empty;
  609. string Colspan = "";
  610. List<string> ExtensionIDList = new List<string>();
  611. string str1 = "";
  612. #region 装箱的功能
  613. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  614. string VenCode = queryParam["VenCode"].ToString();
  615. int PackCount = 0;//每箱放的数量
  616. int Pack_YuShu = 0;//需要平摊的数量
  617. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  618. List<PackModel> List_Pack = new List<PackModel>();
  619. int ZQty = 0;
  620. if (createPackCount > 0)
  621. {
  622. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  623. if (Pack_YuShu == 0)
  624. {
  625. PackCount = (createPageCount / createPackCount);
  626. }
  627. else
  628. {
  629. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  630. }
  631. for (int jj = 0; jj < createPackCount; jj++)
  632. {
  633. object CARID = Guid.NewGuid();
  634. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  635. sql += @" INSERT INTO dbo.ICSContainer
  636. ( ID,ContainerCode ,
  637. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  638. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  639. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  640. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  641. PackModel PP = new PackModel();
  642. PP.ID = CARID.ToString();
  643. PP.PackCode = Carton;
  644. if (jj < Pack_YuShu)
  645. {
  646. PP.FristBarIndex = ZQty;
  647. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  648. }
  649. else
  650. {
  651. PP.FristBarIndex = ZQty;
  652. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  653. }
  654. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  655. List_Pack.Add(PP);
  656. }
  657. }
  658. #endregion
  659. for (int i = 0; i < createPageCount; i++)
  660. {
  661. if (i + 1 == createPageCount)
  662. {
  663. if (minPackQty * createPageCount > thisCreateQty)
  664. {
  665. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  666. }
  667. }
  668. 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();
  669. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  670. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  671. bool flag = true;
  672. foreach (var item in ExtensionIDList)
  673. {
  674. if (item == Colspan + WorkPoint)
  675. {
  676. flag = false;
  677. }
  678. }
  679. if (ExtensionID == null && flag == true)
  680. {
  681. str1 = Guid.NewGuid().ToString();
  682. 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)
  683. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  684. 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(),
  685. MUSER, MUSERNAME, WorkPoints);
  686. }
  687. else if (ExtensionID != null)
  688. {
  689. str1 = ExtensionID.ToString();
  690. }
  691. ExtensionIDList.Add(Colspan + WorkPoint);
  692. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  693. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  694. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  695. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  696. sql += string.Format(@"insert into ICSInventoryLot
  697. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  698. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  699. select
  700. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  701. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  702. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  703. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  704. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  705. sql += "\r\n";
  706. //装箱的功能
  707. if (List_Pack.Count > 0)
  708. {
  709. PackModel mm = new PackModel();
  710. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  711. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  712. ( ID ,ContainerID ,LotNo ,
  713. MUSER ,MUSERName ,MTIME ,WorkPoint )
  714. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  715. }
  716. }
  717. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  718. return count;
  719. }
  720. /// <summary>
  721. /// 委外退料生成条码
  722. /// </summary>
  723. /// <param name="POCode"></param>
  724. /// <param name="PORow"></param>
  725. /// <param name="keyValue"></param>
  726. /// 已改
  727. /// <returns></returns>
  728. public int SubmitFormWeiWaiNew(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  729. {
  730. var queryParam = keyValue.ToJObject();
  731. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  732. // decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  733. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  734. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  735. List<decimal> lotQtys = new List<decimal>();
  736. foreach (var jLotno in jLotnos)
  737. {
  738. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  739. lotQtys.Add(qty);
  740. }
  741. int createPageCount = lotQtys.Count();
  742. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  743. string sql = string.Empty;
  744. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  745. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  746. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  747. string sqls = string.Empty;
  748. string Colspan = "";
  749. List<string> ExtensionIDList = new List<string>();
  750. string str1 = "";
  751. #region 装箱的功能
  752. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  753. string VenCode = queryParam["VenCode"].ToString();
  754. int PackCount = 0;//每箱放的数量
  755. int Pack_YuShu = 0;//需要平摊的数量
  756. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  757. List<PackModel> List_Pack = new List<PackModel>();
  758. int ZQty = 0;
  759. if (createPackCount > 0)
  760. {
  761. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  762. if (Pack_YuShu == 0)
  763. {
  764. PackCount = (createPageCount / createPackCount);
  765. }
  766. else
  767. {
  768. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  769. }
  770. for (int jj = 0; jj < createPackCount; jj++)
  771. {
  772. object CARID = Guid.NewGuid();
  773. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  774. sql += @" INSERT INTO dbo.ICSContainer
  775. ( ID,ContainerCode ,
  776. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  777. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  778. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  779. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  780. PackModel PP = new PackModel();
  781. PP.ID = CARID.ToString();
  782. PP.PackCode = Carton;
  783. if (jj < Pack_YuShu)
  784. {
  785. PP.FristBarIndex = ZQty;
  786. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  787. }
  788. else
  789. {
  790. PP.FristBarIndex = ZQty;
  791. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  792. }
  793. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  794. List_Pack.Add(PP);
  795. }
  796. }
  797. #endregion
  798. for (int i = 0; i < createPageCount; i++)
  799. {
  800. decimal LOTQTY = lotQtys[i];
  801. 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();
  802. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  803. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  804. bool flag = true;
  805. foreach (var item in ExtensionIDList)
  806. {
  807. if (item == Colspan + WorkPoint)
  808. {
  809. flag = false;
  810. }
  811. }
  812. if (ExtensionID == null && flag == true)
  813. {
  814. str1 = Guid.NewGuid().ToString();
  815. 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)
  816. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  817. 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(),
  818. MUSER, MUSERNAME, WorkPoints);
  819. }
  820. else if (ExtensionID != null)
  821. {
  822. str1 = ExtensionID.ToString();
  823. }
  824. ExtensionIDList.Add(Colspan + WorkPoint);
  825. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  826. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  827. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  828. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  829. sql += string.Format(@"insert into ICSInventoryLot
  830. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  831. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  832. select
  833. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  834. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  835. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  836. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  837. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  838. sql += "\r\n";
  839. //装箱的功能
  840. if (List_Pack.Count > 0)
  841. {
  842. PackModel mm = new PackModel();
  843. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  844. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  845. ( ID ,ContainerID ,LotNo ,
  846. MUSER ,MUSERName ,MTIME ,WorkPoint )
  847. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  848. }
  849. }
  850. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  851. return count;
  852. }
  853. public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
  854. {
  855. #region 海格自定义档案配置(MOSpecialInvClass),自定义档案中不配置这个编码可忽略
  856. List<string> ClassCodeList = new List<string>();
  857. string configsql = @"select B.F_ItemCode from Sys_SRM_Items A
  858. INNER JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  859. where F_EnCode='MOSpecialInvClass'";
  860. DataTable configdt = SqlHelper.CmdExecuteDataTable(configsql);
  861. foreach (DataRow dr in configdt.Rows)
  862. {
  863. ClassCodeList.Add(dr["F_ItemCode"].ToString());
  864. }
  865. #endregion
  866. DataTable dt = new DataTable();
  867. var queryParam = queryJson.ToJObject();
  868. List<DbParameter> parameter = new List<DbParameter>();
  869. object Figure = GetDecimalDigits();
  870. #region [SQL]
  871. string sql = @" select distinct a.ID, a.MODetailID,a.MOCode,a.Sequence,
  872. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  873. 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
  874. ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,
  875. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  876. 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
  877. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  878. ,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,
  879. a.EATTRIBUTE9,a.EATTRIBUTE10,a.EATTRIBUTE11,a.EATTRIBUTE12,b.MTIME as TMTime,dep.DepName,a.CreateDateTime,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,
  880. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10
  881. from ICSMO a
  882. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  883. left join (
  884. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  885. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  886. where isnull(ee.EATTRIBUTE1,'')=''
  887. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  888. )c
  889. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  890. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  891. left join ICSDepartment dep ON dep.DepCode=a.DepCode and a.WorkPoint=dep.WorkPoint
  892. left join ICSWarehouse warehouse on a.WHCode=warehouse.WarehouseCode and a.WorkPoint=warehouse.WorkPoint ";
  893. sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  894. foreach (string ClassCode in ClassCodeList)
  895. {
  896. sql += " AND (b.ClassCode Not like '" + ClassCode + "%' OR b.ClassCode='P01005')";
  897. }
  898. sql = string.Format(sql, Figure);
  899. #endregion
  900. if (!string.IsNullOrWhiteSpace(queryJson))
  901. {
  902. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  903. {
  904. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  905. }
  906. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  907. {
  908. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  909. }
  910. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  911. {
  912. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  913. }
  914. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  915. {
  916. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  917. }
  918. //if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString()))
  919. //{
  920. // sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' ";
  921. //}
  922. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  923. {
  924. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  925. }
  926. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  927. {
  928. sql += " and a.StartDate >= '" + queryParam["FromTime"].ToString() + "' ";
  929. }
  930. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  931. {
  932. sql += " and a.StartDate <= '" + queryParam["ToTime"].ToString() + "' ";
  933. }
  934. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  935. {
  936. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  937. }
  938. JToken chkParentMO = false;
  939. if (queryParam.TryGetValue("ParentMo", out chkParentMO) && chkParentMO != null)
  940. {
  941. if (!string.IsNullOrWhiteSpace(queryParam["ParentMo"].ToString()))
  942. {
  943. sql += " and a.EATTRIBUTE5 like '%" + queryParam["ParentMo"].ToString() + "%' ";
  944. }
  945. }
  946. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  947. {
  948. string POStatus = queryParam["POStatus"].ToString();
  949. if (POStatus == "0")
  950. {
  951. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  952. }
  953. else if (POStatus == "1")
  954. {
  955. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  956. }
  957. else
  958. {
  959. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0";
  960. }
  961. }
  962. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  963. {
  964. string WHStatus = queryParam["WHStatus"].ToString();
  965. if (WHStatus == "0")
  966. {
  967. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  968. }
  969. else if (WHStatus == "1")
  970. {
  971. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  972. }
  973. else
  974. {
  975. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  976. }
  977. }
  978. }
  979. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  980. {
  981. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  982. }
  983. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  984. {
  985. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  986. }
  987. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  988. }
  989. /// <summary>
  990. /// 点击成品生成条码(成品)
  991. /// </summary>
  992. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  993. {
  994. DataTable dt = new DataTable();
  995. object Figure = GetDecimalDigits();
  996. List<DbParameter> parameter = new List<DbParameter>();
  997. // 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,
  998. //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
  999. // ,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
  1000. // from ICSMO a
  1001. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1002. // left join (
  1003. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1004. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  1005. // where isnull(a.EATTRIBUTE1,'')=''
  1006. // group by b.TransCode,b.TransSequence
  1007. // ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  1008. // left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  1009. // left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  1010. // WHERE 1 =1 and a.MOStatus<>'3'
  1011. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn011', " + Quantity + ",1,2,'')";
  1012. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1013. string sql = @" select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit,
  1014. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  1015. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  1016. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  1017. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  1018. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  1019. ,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,
  1020. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1021. from ICSMO a
  1022. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1023. left join (
  1024. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1025. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  1026. where isnull(a.EATTRIBUTE1,'')=''
  1027. group by b.TransCode,b.TransSequence
  1028. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  1029. left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  1030. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  1031. WHERE 1 =1 and a.MOStatus<>'3'
  1032. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  1033. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1034. sql = string.Format(sql, Figure);
  1035. return Repository().FindTableBySql(sql.ToString());
  1036. }
  1037. /// <summary>
  1038. /// 成品生成条码
  1039. /// </summary>
  1040. /// <param name="POCode"></param>
  1041. /// <param name="PORow"></param>
  1042. /// <param name="keyValue"></param>
  1043. /// 已改
  1044. /// <returns></returns>
  1045. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1046. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1047. {
  1048. var queryParam = keyValue.ToJObject();
  1049. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1050. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1051. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1052. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1053. decimal LOTQTY = minPackQty;
  1054. string InvCode = queryParam["ClassCode"].ToString();
  1055. string InvCodeLP = queryParam["InvCode"].ToString();
  1056. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1057. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1058. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1059. string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1060. string sql = string.Empty;
  1061. //string VendorLot = queryParam["VendorLot"].ToString();
  1062. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1063. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1064. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1065. string sqls = string.Empty;
  1066. string Colspan = "";
  1067. string str1 = "";
  1068. string LotNo = string.Empty;
  1069. List<string> ExtensionIDList = new List<string>();
  1070. #region 装箱的功能
  1071. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1072. string VenCode = queryParam["VenCode"].ToString();
  1073. int PackCount = 0;//每箱放的数量
  1074. int Pack_YuShu = 0;//需要平摊的数量
  1075. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1076. List<PackModel> List_Pack = new List<PackModel>();
  1077. int ZQty = 0;
  1078. if (createPackCount > 0)
  1079. {
  1080. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1081. if (Pack_YuShu == 0)
  1082. {
  1083. PackCount = (createPageCount / createPackCount);
  1084. }
  1085. else
  1086. {
  1087. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1088. }
  1089. for (int jj = 0; jj < createPackCount; jj++)
  1090. {
  1091. object CARID = Guid.NewGuid();
  1092. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1093. sql += @" INSERT INTO dbo.ICSContainer
  1094. ( ID,ContainerCode ,
  1095. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1096. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1097. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1098. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1099. PackModel PP = new PackModel();
  1100. PP.ID = CARID.ToString();
  1101. PP.PackCode = Carton;
  1102. if (jj < Pack_YuShu)
  1103. {
  1104. PP.FristBarIndex = ZQty;
  1105. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1106. }
  1107. else
  1108. {
  1109. PP.FristBarIndex = ZQty;
  1110. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1111. }
  1112. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1113. List_Pack.Add(PP);
  1114. }
  1115. }
  1116. #endregion
  1117. for (int i = 0; i < createPageCount; i++)
  1118. {
  1119. if (i + 1 == createPageCount)
  1120. {
  1121. if (minPackQty * createPageCount > thisCreateQty)
  1122. {
  1123. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1124. }
  1125. }
  1126. 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();
  1127. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1128. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1129. bool flag = true;
  1130. foreach (var item in ExtensionIDList)
  1131. {
  1132. if (item == Colspan + WorkPoint)
  1133. {
  1134. flag = false;
  1135. }
  1136. }
  1137. if (ExtensionID == null && flag == true)
  1138. {
  1139. str1 = Guid.NewGuid().ToString();
  1140. 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)
  1141. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1142. 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(),
  1143. MUSER, MUSERNAME, WorkPoints);
  1144. }
  1145. else if (ExtensionID != null)
  1146. {
  1147. str1 = ExtensionID.ToString();
  1148. }
  1149. ExtensionIDList.Add(Colspan + WorkPoint);
  1150. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1151. //if (AMEnable == "true")
  1152. //{
  1153. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1154. //}vvv
  1155. //else
  1156. //{
  1157. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  1158. //}
  1159. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1160. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1161. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1162. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1163. //{
  1164. sql += string.Format(@"insert into ICSInventoryLot
  1165. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1166. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1167. select
  1168. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1169. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1170. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1171. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1172. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1173. sql += "\r\n";
  1174. //装箱的功能
  1175. if (List_Pack.Count > 0)
  1176. {
  1177. PackModel mm = new PackModel();
  1178. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1179. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1180. ( ID ,ContainerID ,LotNo ,
  1181. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1182. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1183. }
  1184. //}
  1185. }
  1186. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1187. return count;
  1188. }
  1189. /// <summary>
  1190. /// 成品生成条码
  1191. /// </summary>
  1192. /// <param name="POCode"></param>
  1193. /// <param name="PORow"></param>
  1194. /// <param name="keyValue"></param>
  1195. /// 已改
  1196. /// <returns></returns>
  1197. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1198. public int SubmitFormChengPingNew(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1199. {
  1200. var queryParam = keyValue.ToJObject();
  1201. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1202. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1203. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1204. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1205. List<decimal> lotQtys = new List<decimal>();
  1206. foreach (var jLotno in jLotnos)
  1207. {
  1208. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1209. lotQtys.Add(qty);
  1210. }
  1211. int createPageCount = lotQtys.Count();
  1212. string InvCode = queryParam["ClassCode"].ToString();
  1213. string InvCodeLP = queryParam["InvCode"].ToString();
  1214. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1215. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1216. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1217. string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1218. string sql = string.Empty;
  1219. //string VendorLot = queryParam["VendorLot"].ToString();
  1220. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1221. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1222. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1223. string sqls = string.Empty;
  1224. string Colspan = "";
  1225. string str1 = "";
  1226. string LotNo = string.Empty;
  1227. List<string> ExtensionIDList = new List<string>();
  1228. #region 装箱的功能
  1229. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1230. string VenCode = queryParam["VenCode"].ToString();
  1231. int PackCount = 0;//每箱放的数量
  1232. int Pack_YuShu = 0;//需要平摊的数量
  1233. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1234. List<PackModel> List_Pack = new List<PackModel>();
  1235. int ZQty = 0;
  1236. if (createPackCount > 0)
  1237. {
  1238. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1239. if (Pack_YuShu == 0)
  1240. {
  1241. PackCount = (createPageCount / createPackCount);
  1242. }
  1243. else
  1244. {
  1245. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1246. }
  1247. for (int jj = 0; jj < createPackCount; jj++)
  1248. {
  1249. object CARID = Guid.NewGuid();
  1250. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1251. sql += @" INSERT INTO dbo.ICSContainer
  1252. ( ID,ContainerCode ,
  1253. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1254. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1255. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1256. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1257. PackModel PP = new PackModel();
  1258. PP.ID = CARID.ToString();
  1259. PP.PackCode = Carton;
  1260. if (jj < Pack_YuShu)
  1261. {
  1262. PP.FristBarIndex = ZQty;
  1263. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1264. }
  1265. else
  1266. {
  1267. PP.FristBarIndex = ZQty;
  1268. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1269. }
  1270. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1271. List_Pack.Add(PP);
  1272. }
  1273. }
  1274. #endregion
  1275. for (int i = 0; i < createPageCount; i++)
  1276. {
  1277. var LOTQTY = lotQtys[i];
  1278. 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();
  1279. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1280. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1281. bool flag = true;
  1282. foreach (var item in ExtensionIDList)
  1283. {
  1284. if (item == Colspan + WorkPoint)
  1285. {
  1286. flag = false;
  1287. }
  1288. }
  1289. if (ExtensionID == null && flag == true)
  1290. {
  1291. str1 = Guid.NewGuid().ToString();
  1292. 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)
  1293. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1294. 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(),
  1295. MUSER, MUSERNAME, WorkPoints);
  1296. }
  1297. else if (ExtensionID != null)
  1298. {
  1299. str1 = ExtensionID.ToString();
  1300. }
  1301. ExtensionIDList.Add(Colspan + WorkPoint);
  1302. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1303. //if (AMEnable == "true")
  1304. //{
  1305. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1306. //}vvv
  1307. //else
  1308. //{
  1309. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  1310. //}
  1311. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1312. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1313. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1314. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1315. //{
  1316. sql += string.Format(@"insert into ICSInventoryLot
  1317. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1318. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1319. select
  1320. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1321. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1322. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1323. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1324. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1325. sql += "\r\n";
  1326. //装箱的功能
  1327. if (List_Pack.Count > 0)
  1328. {
  1329. PackModel mm = new PackModel();
  1330. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1331. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1332. ( ID ,ContainerID ,LotNo ,
  1333. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1334. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1335. }
  1336. //}
  1337. }
  1338. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1339. return count;
  1340. }
  1341. /// <summary>
  1342. /// 成品生成条码
  1343. /// </summary>
  1344. /// <param name="POCode"></param>
  1345. /// <param name="PORow"></param>
  1346. /// <param name="keyValue"></param>
  1347. /// 已改
  1348. /// <returns></returns>
  1349. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1350. public int SubmitFormChengPingHG(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1351. {
  1352. var queryParam = keyValue.ToJObject();
  1353. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1354. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1355. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1356. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1357. decimal LOTQTY = minPackQty;
  1358. string InvCode = queryParam["ClassCode"].ToString();
  1359. string InvCodeLP = queryParam["InvCode"].ToString();
  1360. //查询 物料编码~成品版本(料品表自定义20字段)~序列号~订单号~车号段(ICSExtension表batchcode字段)~供应商
  1361. string invsql = $"SELECT EATTRIBUTE20,ClassCode,InvStd FROM ICSInventory WITH(nolock) WHERE InvCode='{queryParam["InvCode"]}' AND WorkPoint='{WorkPoints}'";
  1362. var invdt = SqlHelper.CmdExecuteDataTable(invsql);
  1363. string date = DateTime.Now.ToString("yyMMdd");
  1364. //获取当前时段
  1365. string currentPeriod = GetPeriod(DateTime.Now);
  1366. string pattern = @"^P00[1-9].*";
  1367. string Pre = "";
  1368. int hour = DateTime.Now.Hour;
  1369. string DorN = (hour >= 8 && hour < 20) ? "D" : "N";
  1370. if (invdt.Rows[0]["InvStd"].ToString().StartsWith("DCDC-OBC-PDU-01"))
  1371. {
  1372. Pre = $"EEH20000618012101145{date}{DorN}";
  1373. }
  1374. else
  1375. {
  1376. if (InvCode.StartsWith("Y004"))
  1377. {
  1378. Pre = $"{InvCodeLP}~{invdt.Rows[0]["EATTRIBUTE20"]}~{MOCode}{Sequence}";
  1379. }
  1380. else if (Regex.IsMatch(InvCode.Substring(0, 4), pattern)|| InvCode== "P09901" || InvCode == "P09902" || InvCode == "P09999")
  1381. {
  1382. if (invdt.Rows[0]["InvStd"].ToString().StartsWith("DCDC-OBC-PDU"))
  1383. {
  1384. Pre = $"{invdt.Rows[0]["InvStd"]}2101145{date}2000061501700120000436017014{currentPeriod}";
  1385. }
  1386. else
  1387. {
  1388. Pre = $"{InvCodeLP}~{invdt.Rows[0]["EATTRIBUTE20"]}~";
  1389. }
  1390. }
  1391. else if (InvCode == "P01201" || InvCode == "P01301" || InvCode == "P01302")
  1392. {
  1393. Pre = $"{InvCodeLP}~{invdt.Rows[0]["EATTRIBUTE20"]}~";
  1394. }
  1395. else
  1396. {
  1397. Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1398. }
  1399. }
  1400. string sql = string.Empty;
  1401. //string VendorLot = queryParam["VendorLot"].ToString();
  1402. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1403. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1404. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1405. string sqls = string.Empty;
  1406. string Colspan = "";
  1407. string str1 = "";
  1408. string LotNo = string.Empty;
  1409. List<string> ExtensionIDList = new List<string>();
  1410. #region 装箱的功能
  1411. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1412. string VenCode = queryParam["VenCode"].ToString();
  1413. int PackCount = 0;//每箱放的数量
  1414. int Pack_YuShu = 0;//需要平摊的数量
  1415. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1416. List<PackModel> List_Pack = new List<PackModel>();
  1417. int ZQty = 0;
  1418. if (createPackCount > 0)
  1419. {
  1420. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1421. if (Pack_YuShu == 0)
  1422. {
  1423. PackCount = (createPageCount / createPackCount);
  1424. }
  1425. else
  1426. {
  1427. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1428. }
  1429. for (int jj = 0; jj < createPackCount; jj++)
  1430. {
  1431. object CARID = Guid.NewGuid();
  1432. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1433. sql += @" INSERT INTO dbo.ICSContainer
  1434. ( ID,ContainerCode ,
  1435. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1436. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1437. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1438. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1439. PackModel PP = new PackModel();
  1440. PP.ID = CARID.ToString();
  1441. PP.PackCode = Carton;
  1442. if (jj < Pack_YuShu)
  1443. {
  1444. PP.FristBarIndex = ZQty;
  1445. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1446. }
  1447. else
  1448. {
  1449. PP.FristBarIndex = ZQty;
  1450. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1451. }
  1452. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1453. List_Pack.Add(PP);
  1454. }
  1455. }
  1456. #endregion
  1457. for (int i = 0; i < createPageCount; i++)
  1458. {
  1459. if (i + 1 == createPageCount)
  1460. {
  1461. if (minPackQty * createPageCount > thisCreateQty)
  1462. {
  1463. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1464. }
  1465. }
  1466. 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();
  1467. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1468. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1469. bool flag = true;
  1470. foreach (var item in ExtensionIDList)
  1471. {
  1472. if (item == Colspan + WorkPoint)
  1473. {
  1474. flag = false;
  1475. }
  1476. }
  1477. if (ExtensionID == null && flag == true)
  1478. {
  1479. str1 = Guid.NewGuid().ToString();
  1480. 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)
  1481. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1482. 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(),
  1483. MUSER, MUSERNAME, WorkPoints);
  1484. }
  1485. else if (ExtensionID != null)
  1486. {
  1487. str1 = ExtensionID.ToString();
  1488. }
  1489. ExtensionIDList.Add(Colspan + WorkPoint);
  1490. if (invdt.Rows[0]["InvStd"].ToString().StartsWith("DCDC-OBC-PDU-01"))
  1491. {
  1492. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1493. }
  1494. else
  1495. {
  1496. if (InvCode.StartsWith("Y004"))
  1497. {
  1498. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  1499. LotNo = LotNo + $"~{MOCode}~{queryParam["BatchCode"]}~";
  1500. }
  1501. else if (Regex.IsMatch(InvCode.Substring(0, 4), pattern) || InvCode == "P09901" || InvCode == "P09902" || InvCode == "P09999")
  1502. {
  1503. if (invdt.Rows[0]["InvStd"].ToString().StartsWith("DCDC-OBC-PDU"))
  1504. {
  1505. Pre = $"{invdt.Rows[0]["InvStd"]}2101145{date}2000061501700120000436017014{currentPeriod}";
  1506. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", date, 5);
  1507. LotNo = Pre + LotNo.Substring(5, 5);
  1508. }
  1509. else
  1510. {
  1511. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", "NTM", 7);
  1512. LotNo = Pre + LotNo.Substring(3, 7) + $"~{MOCode}~{queryParam["BatchCode"]}~";
  1513. }
  1514. }
  1515. else if (InvCode == "P01201" || InvCode == "P01301" || InvCode == "P01302")
  1516. {
  1517. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", "NTM", 7);
  1518. LotNo = Pre + LotNo.Substring(3, 7) + $"~{MOCode}~{queryParam["BatchCode"]}~";
  1519. }
  1520. else
  1521. {
  1522. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  1523. }
  1524. }
  1525. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1526. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1527. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1528. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1529. //{
  1530. sql += string.Format(@"insert into ICSInventoryLot
  1531. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1532. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1533. select
  1534. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1535. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1536. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1537. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1538. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1539. sql += "\r\n";
  1540. //装箱的功能
  1541. if (List_Pack.Count > 0)
  1542. {
  1543. PackModel mm = new PackModel();
  1544. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1545. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1546. ( ID ,ContainerID ,LotNo ,
  1547. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1548. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1549. }
  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. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1564. public int SubmitFormChengPingHG1(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1565. {
  1566. var queryParam = keyValue.ToJObject();
  1567. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1568. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1569. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1570. //获取当前时段
  1571. string currentPeriod = GetPeriod(DateTime.Now);
  1572. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1573. List<decimal> lotQtys = new List<decimal>();
  1574. foreach (var jLotno in jLotnos)
  1575. {
  1576. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1577. lotQtys.Add(qty);
  1578. }
  1579. //查询 物料编码~成品版本(料品表自定义20字段)~序列号~订单号~车号段(ICSExtension表batchcode字段)~供应商
  1580. string invsql = $"SELECT EATTRIBUTE20,ClassCode,InvStd FROM ICSInventory WITH(nolock) WHERE InvCode='{queryParam["InvCode"]}' AND WorkPoint='{WorkPoints}'";
  1581. var invdt = SqlHelper.CmdExecuteDataTable(invsql);
  1582. int createPageCount = lotQtys.Count();
  1583. string InvCode = queryParam["ClassCode"].ToString();
  1584. string InvCodeLP = queryParam["InvCode"].ToString();
  1585. string date = DateTime.Now.ToString("yyMMdd");
  1586. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1587. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1588. string Pre = "";
  1589. if (InvCode == "Y004")
  1590. {
  1591. Pre = $"{InvCodeLP}~{invdt.Rows[0]["EATTRIBUTE20"]}~{MOCode}{Sequence}";
  1592. }
  1593. else if (InvCode.Length == 4 && InvCode.Contains("P00"))
  1594. {
  1595. if (invdt.Rows[0]["InvStd"].ToString().StartsWith("DCDC-OBC-PDU"))
  1596. {
  1597. Pre = $"{invdt.Rows[0]["InvStd"]}2101145{date}2000061501700120000436017014{currentPeriod}";
  1598. }
  1599. else
  1600. {
  1601. Pre = $"{InvCodeLP}~{invdt.Rows[0]["EATTRIBUTE20"]}";
  1602. }
  1603. }
  1604. else
  1605. {
  1606. Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1607. }
  1608. string sql = string.Empty;
  1609. //string VendorLot = queryParam["VendorLot"].ToString();
  1610. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1611. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1612. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1613. string sqls = string.Empty;
  1614. string Colspan = "";
  1615. string str1 = "";
  1616. string LotNo = string.Empty;
  1617. List<string> ExtensionIDList = new List<string>();
  1618. #region 装箱的功能
  1619. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1620. string VenCode = queryParam["VenCode"].ToString();
  1621. int PackCount = 0;//每箱放的数量
  1622. int Pack_YuShu = 0;//需要平摊的数量
  1623. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1624. List<PackModel> List_Pack = new List<PackModel>();
  1625. int ZQty = 0;
  1626. if (createPackCount > 0)
  1627. {
  1628. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1629. if (Pack_YuShu == 0)
  1630. {
  1631. PackCount = (createPageCount / createPackCount);
  1632. }
  1633. else
  1634. {
  1635. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1636. }
  1637. for (int jj = 0; jj < createPackCount; jj++)
  1638. {
  1639. object CARID = Guid.NewGuid();
  1640. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1641. sql += @" INSERT INTO dbo.ICSContainer
  1642. ( ID,ContainerCode ,
  1643. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1644. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1645. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1646. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1647. PackModel PP = new PackModel();
  1648. PP.ID = CARID.ToString();
  1649. PP.PackCode = Carton;
  1650. if (jj < Pack_YuShu)
  1651. {
  1652. PP.FristBarIndex = ZQty;
  1653. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1654. }
  1655. else
  1656. {
  1657. PP.FristBarIndex = ZQty;
  1658. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1659. }
  1660. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1661. List_Pack.Add(PP);
  1662. }
  1663. }
  1664. #endregion
  1665. for (int i = 0; i < createPageCount; i++)
  1666. {
  1667. var LOTQTY = lotQtys[i];
  1668. 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();
  1669. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1670. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1671. bool flag = true;
  1672. foreach (var item in ExtensionIDList)
  1673. {
  1674. if (item == Colspan + WorkPoint)
  1675. {
  1676. flag = false;
  1677. }
  1678. }
  1679. if (ExtensionID == null && flag == true)
  1680. {
  1681. str1 = Guid.NewGuid().ToString();
  1682. 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)
  1683. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1684. 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(),
  1685. MUSER, MUSERNAME, WorkPoints);
  1686. }
  1687. else if (ExtensionID != null)
  1688. {
  1689. str1 = ExtensionID.ToString();
  1690. }
  1691. ExtensionIDList.Add(Colspan + WorkPoint);
  1692. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1693. //if (AMEnable == "true")
  1694. //{
  1695. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1696. //}vvv
  1697. //else
  1698. //{
  1699. if (InvCode == "Y004")
  1700. {
  1701. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 2);
  1702. LotNo = LotNo + $"~{MOCode}~{queryParam["BatchCode"]}~";
  1703. }
  1704. else if (InvCode.Length == 4 && InvCode.Contains("P00"))
  1705. {
  1706. if (invdt.Rows[0]["InvStd"].ToString().StartsWith("DCDC-OBC-PDU"))
  1707. {
  1708. Pre = $"{invdt.Rows[0]["InvStd"]}2101145{DateTime.Now.ToString("yy-MM-dd")}2000061501700120000436017014{currentPeriod}";
  1709. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", date, 5);
  1710. LotNo = Pre + LotNo.Substring(5, 5);
  1711. }
  1712. else
  1713. {
  1714. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", "", 7);
  1715. LotNo = LotNo + $"~{MOCode}~{queryParam["BatchCode"]}~";
  1716. }
  1717. }
  1718. else
  1719. {
  1720. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  1721. }
  1722. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  1723. //}
  1724. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1725. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1726. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1727. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1728. //{
  1729. sql += string.Format(@"insert into ICSInventoryLot
  1730. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1731. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1732. select
  1733. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1734. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1735. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1736. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1737. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1738. sql += "\r\n";
  1739. //装箱的功能
  1740. if (List_Pack.Count > 0)
  1741. {
  1742. PackModel mm = new PackModel();
  1743. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1744. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1745. ( ID ,ContainerID ,LotNo ,
  1746. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1747. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1748. }
  1749. //}
  1750. }
  1751. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1752. return count;
  1753. }
  1754. private static string GetPeriod(DateTime time)
  1755. {
  1756. int hour = time.Hour;
  1757. return hour >= 8 && hour < 20 ? "D" : "N";
  1758. }
  1759. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  1760. {
  1761. DataTable dt = new DataTable();
  1762. var queryParam = queryJson.ToJObject();
  1763. List<DbParameter> parameter = new List<DbParameter>();
  1764. object Figure = GetDecimalDigits();
  1765. #region [SQL]
  1766. 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
  1767. ,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
  1768. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1769. ,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,
  1770. a.EATTRIBUTE9,a.EATTRIBUTE10
  1771. from ICSSDN a
  1772. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1773. left join (
  1774. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1775. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  1776. where isnull(ee.EATTRIBUTE1,'')=''
  1777. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1778. )c
  1779. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1780. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1781. --left join ICSDepartment dep ON dep.DepCode=a.[Detp]
  1782. where a.Type='2' and
  1783. a.Status<>'3' ";
  1784. sql = string.Format(sql, Figure);
  1785. #endregion
  1786. if (!string.IsNullOrWhiteSpace(queryJson))
  1787. {
  1788. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1789. {
  1790. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1791. }
  1792. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1793. {
  1794. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1795. }
  1796. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1797. {
  1798. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1799. }
  1800. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1801. {
  1802. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1803. }
  1804. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1805. {
  1806. string POStatus = queryParam["POStatus"].ToString();
  1807. if (POStatus == "0")
  1808. {
  1809. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1810. }
  1811. else if (POStatus == "1")
  1812. {
  1813. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1814. }
  1815. else
  1816. {
  1817. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1818. }
  1819. }
  1820. }
  1821. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1822. {
  1823. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1824. }
  1825. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1826. {
  1827. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1828. }
  1829. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1830. }
  1831. /// <summary>
  1832. /// 点击销售退货生成条码(销售退货)
  1833. /// </summary>
  1834. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1835. {
  1836. DataTable dt = new DataTable();
  1837. object Figure = GetDecimalDigits();
  1838. List<DbParameter> parameter = new List<DbParameter>();
  1839. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn020', " + Quantity + ",1,3,'')";
  1840. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1841. 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,
  1842. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1843. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  1844. ,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,
  1845. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1846. from ICSSDN a
  1847. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1848. left join (
  1849. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1850. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='4'
  1851. where isnull(a.EATTRIBUTE1,'')=''
  1852. group by b.TransCode,b.TransSequence
  1853. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  1854. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1855. WHERE 1 =1
  1856. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  1857. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1858. sql = string.Format(sql, Figure);
  1859. return Repository().FindTableBySql(sql.ToString());
  1860. }
  1861. /// <summary>
  1862. /// 销售退货生成条码
  1863. /// </summary>
  1864. /// <param name="POCode"></param>
  1865. /// <param name="PORow"></param>
  1866. /// <param name="keyValue"></param>
  1867. /// 已改
  1868. /// <returns></returns>
  1869. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1870. {
  1871. var queryParam = keyValue.ToJObject();
  1872. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1873. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1874. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1875. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1876. decimal LOTQTY = minPackQty;
  1877. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1878. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1879. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1880. string sql = string.Empty;
  1881. //string VendorLot = queryParam["VendorLot"].ToString();
  1882. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1883. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1884. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1885. string InvCode = queryParam["ClassCode"].ToString();
  1886. string sqls = string.Empty;
  1887. string Colspan = "";
  1888. string str1 = "";
  1889. string LotNo = string.Empty;
  1890. List<string> ExtensionIDList = new List<string>();
  1891. #region 装箱的功能
  1892. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1893. string VenCode = queryParam["VenCode"].ToString();
  1894. int PackCount = 0;//每箱放的数量
  1895. int Pack_YuShu = 0;//需要平摊的数量
  1896. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1897. List<PackModel> List_Pack = new List<PackModel>();
  1898. int ZQty = 0;
  1899. if (createPackCount > 0)
  1900. {
  1901. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1902. if (Pack_YuShu == 0)
  1903. {
  1904. PackCount = (createPageCount / createPackCount);
  1905. }
  1906. else
  1907. {
  1908. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1909. }
  1910. for (int jj = 0; jj < createPackCount; jj++)
  1911. {
  1912. object CARID = Guid.NewGuid();
  1913. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1914. sql += @" INSERT INTO dbo.ICSContainer
  1915. ( ID,ContainerCode ,
  1916. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1917. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1918. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1919. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1920. PackModel PP = new PackModel();
  1921. PP.ID = CARID.ToString();
  1922. PP.PackCode = Carton;
  1923. if (jj < Pack_YuShu)
  1924. {
  1925. PP.FristBarIndex = ZQty;
  1926. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1927. }
  1928. else
  1929. {
  1930. PP.FristBarIndex = ZQty;
  1931. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1932. }
  1933. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1934. List_Pack.Add(PP);
  1935. }
  1936. }
  1937. #endregion
  1938. for (int i = 0; i < createPageCount; i++)
  1939. {
  1940. if (i + 1 == createPageCount)
  1941. {
  1942. if (minPackQty * createPageCount > thisCreateQty)
  1943. {
  1944. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1945. }
  1946. }
  1947. 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();
  1948. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1949. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1950. bool flag = true;
  1951. foreach (var item in ExtensionIDList)
  1952. {
  1953. if (item == Colspan + WorkPoint)
  1954. {
  1955. flag = false;
  1956. }
  1957. }
  1958. if (ExtensionID == null && flag == true)
  1959. {
  1960. str1 = Guid.NewGuid().ToString();
  1961. 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)
  1962. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1963. 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(),
  1964. MUSER, MUSERNAME, WorkPoints);
  1965. }
  1966. else if (ExtensionID != null)
  1967. {
  1968. str1 = ExtensionID.ToString();
  1969. }
  1970. ExtensionIDList.Add(Colspan + WorkPoint);
  1971. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1972. if (AMEnable == "true")
  1973. {
  1974. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1975. }
  1976. else
  1977. {
  1978. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1979. }
  1980. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1981. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1982. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1983. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1984. //{
  1985. sql += string.Format(@"
  1986. insert into ICSInventoryLot
  1987. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1988. select
  1989. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1990. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1991. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1992. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1993. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1994. sql += "\r\n";
  1995. //}
  1996. //装箱的功能
  1997. if (List_Pack.Count > 0)
  1998. {
  1999. PackModel mm = new PackModel();
  2000. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2001. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2002. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2003. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2004. }
  2005. }
  2006. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2007. return count;
  2008. }
  2009. /// <summary>
  2010. /// 销售退货生成条码
  2011. /// </summary>
  2012. /// <param name="POCode"></param>
  2013. /// <param name="PORow"></param>
  2014. /// <param name="keyValue"></param>
  2015. /// 已改
  2016. /// <returns></returns>
  2017. public int SubmitFormXiaoShouNew(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2018. {
  2019. var queryParam = keyValue.ToJObject();
  2020. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2021. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2022. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2023. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  2024. List<decimal> lotQtys = new List<decimal>();
  2025. foreach (var jLotno in jLotnos)
  2026. {
  2027. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  2028. lotQtys.Add(qty);
  2029. }
  2030. int createPageCount = lotQtys.Count();
  2031. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2032. string sql = string.Empty;
  2033. //string VendorLot = queryParam["VendorLot"].ToString();
  2034. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2035. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2036. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2037. string InvCode = queryParam["ClassCode"].ToString();
  2038. string sqls = string.Empty;
  2039. string Colspan = "";
  2040. string str1 = "";
  2041. string LotNo = string.Empty;
  2042. List<string> ExtensionIDList = new List<string>();
  2043. #region 装箱的功能
  2044. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2045. string VenCode = queryParam["VenCode"].ToString();
  2046. int PackCount = 0;//每箱放的数量
  2047. int Pack_YuShu = 0;//需要平摊的数量
  2048. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2049. List<PackModel> List_Pack = new List<PackModel>();
  2050. int ZQty = 0;
  2051. if (createPackCount > 0)
  2052. {
  2053. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2054. if (Pack_YuShu == 0)
  2055. {
  2056. PackCount = (createPageCount / createPackCount);
  2057. }
  2058. else
  2059. {
  2060. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2061. }
  2062. for (int jj = 0; jj < createPackCount; jj++)
  2063. {
  2064. object CARID = Guid.NewGuid();
  2065. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2066. sql += @" INSERT INTO dbo.ICSContainer
  2067. ( ID,ContainerCode ,
  2068. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2069. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2070. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2071. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2072. PackModel PP = new PackModel();
  2073. PP.ID = CARID.ToString();
  2074. PP.PackCode = Carton;
  2075. if (jj < Pack_YuShu)
  2076. {
  2077. PP.FristBarIndex = ZQty;
  2078. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2079. }
  2080. else
  2081. {
  2082. PP.FristBarIndex = ZQty;
  2083. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2084. }
  2085. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2086. List_Pack.Add(PP);
  2087. }
  2088. }
  2089. #endregion
  2090. for (int i = 0; i < createPageCount; i++)
  2091. {
  2092. var LOTQTY = lotQtys[i];
  2093. 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();
  2094. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2095. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2096. bool flag = true;
  2097. foreach (var item in ExtensionIDList)
  2098. {
  2099. if (item == Colspan + WorkPoint)
  2100. {
  2101. flag = false;
  2102. }
  2103. }
  2104. if (ExtensionID == null && flag == true)
  2105. {
  2106. str1 = Guid.NewGuid().ToString();
  2107. 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)
  2108. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2109. 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(),
  2110. MUSER, MUSERNAME, WorkPoints);
  2111. }
  2112. else if (ExtensionID != null)
  2113. {
  2114. str1 = ExtensionID.ToString();
  2115. }
  2116. ExtensionIDList.Add(Colspan + WorkPoint);
  2117. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2118. if (AMEnable == "true")
  2119. {
  2120. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2121. }
  2122. else
  2123. {
  2124. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2125. }
  2126. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2127. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  2128. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2129. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2130. //{
  2131. sql += string.Format(@"
  2132. insert into ICSInventoryLot
  2133. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2134. select
  2135. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2136. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2137. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  2138. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2139. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2140. sql += "\r\n";
  2141. //}
  2142. //装箱的功能
  2143. if (List_Pack.Count > 0)
  2144. {
  2145. PackModel mm = new PackModel();
  2146. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2147. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2148. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2149. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2150. }
  2151. }
  2152. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2153. return count;
  2154. }
  2155. public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
  2156. {
  2157. DataTable dt = new DataTable();
  2158. var queryParam = queryJson.ToJObject();
  2159. List<DbParameter> parameter = new List<DbParameter>();
  2160. object Figure = GetDecimalDigits();
  2161. #region [SQL]
  2162. string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2163. 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
  2164. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  2165. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2166. ,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,
  2167. a.EATTRIBUTE9,a.EATTRIBUTE10
  2168. from ICSOtherIn a
  2169. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2170. left join (
  2171. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2172. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  2173. where isnull(ee.EATTRIBUTE1,'')=''
  2174. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2175. )c
  2176. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2177. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2178. where a.Status='1' and ISNULL(a.Type,'1')='1' ";
  2179. sql = string.Format(sql, Figure);
  2180. #endregion
  2181. if (!string.IsNullOrWhiteSpace(queryJson))
  2182. {
  2183. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2184. {
  2185. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2186. }
  2187. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2188. {
  2189. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2190. }
  2191. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2192. {
  2193. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2194. }
  2195. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2196. {
  2197. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2198. }
  2199. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2200. {
  2201. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2202. }
  2203. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  2204. {
  2205. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  2206. }
  2207. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  2208. {
  2209. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  2210. }
  2211. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  2212. {
  2213. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  2214. }
  2215. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2216. {
  2217. string POStatus = queryParam["POStatus"].ToString();
  2218. if (POStatus == "0")
  2219. {
  2220. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2221. }
  2222. else if (POStatus == "1")
  2223. {
  2224. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2225. }
  2226. else
  2227. {
  2228. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2229. }
  2230. }
  2231. }
  2232. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2233. {
  2234. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2235. }
  2236. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2237. {
  2238. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2239. }
  2240. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2241. }
  2242. /// <summary>
  2243. /// 点击销售退货生成条码(其他入库)
  2244. /// </summary>
  2245. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2246. {
  2247. DataTable dt = new DataTable();
  2248. object Figure = GetDecimalDigits();
  2249. List<DbParameter> parameter = new List<DbParameter>();
  2250. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn021', " + Quantity + ",1,4,'')";
  2251. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2252. 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,
  2253. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  2254. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  2255. ,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,
  2256. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2257. from ICSOtherIn a
  2258. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2259. left join (
  2260. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2261. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='5'
  2262. where isnull(a.EATTRIBUTE1,'')=''
  2263. group by b.TransCode,b.TransSequence
  2264. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  2265. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2266. WHERE 1 =1
  2267. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "' and ISNULL(a.EATTRIBUTE2,'1')='1'";
  2268. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2269. sql = string.Format(sql, Figure);
  2270. return Repository().FindTableBySql(sql.ToString());
  2271. }
  2272. /// <summary>
  2273. /// 其他入库生成条码
  2274. /// </summary>
  2275. /// <param name="POCode"></param>
  2276. /// <param name="PORow"></param>
  2277. /// <param name="keyValue"></param>
  2278. /// 已改
  2279. /// <returns></returns>
  2280. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2281. {
  2282. var queryParam = keyValue.ToJObject();
  2283. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2284. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2285. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2286. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2287. decimal LOTQTY = minPackQty;
  2288. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2289. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2290. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2291. string sql = string.Empty;
  2292. //string VendorLot = queryParam["VendorLot"].ToString();
  2293. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2294. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2295. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2296. string InvCode = queryParam["ClassCode"].ToString();
  2297. string sqls = string.Empty;
  2298. string Colspan = "";
  2299. string str1 = "";
  2300. string LotNo = string.Empty;
  2301. List<string> ExtensionIDList = new List<string>();
  2302. #region 装箱的功能
  2303. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2304. string VenCode = queryParam["VenCode"].ToString();
  2305. int PackCount = 0;//每箱放的数量
  2306. int Pack_YuShu = 0;//需要平摊的数量
  2307. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2308. List<PackModel> List_Pack = new List<PackModel>();
  2309. int ZQty = 0;
  2310. if (createPackCount > 0)
  2311. {
  2312. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2313. if (Pack_YuShu == 0)
  2314. {
  2315. PackCount = (createPageCount / createPackCount);
  2316. }
  2317. else
  2318. {
  2319. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2320. }
  2321. for (int jj = 0; jj < createPackCount; jj++)
  2322. {
  2323. object CARID = Guid.NewGuid();
  2324. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2325. sql += @" INSERT INTO dbo.ICSContainer
  2326. ( ID,ContainerCode ,
  2327. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2328. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2329. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2330. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2331. PackModel PP = new PackModel();
  2332. PP.ID = CARID.ToString();
  2333. PP.PackCode = Carton;
  2334. if (jj < Pack_YuShu)
  2335. {
  2336. PP.FristBarIndex = ZQty;
  2337. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2338. }
  2339. else
  2340. {
  2341. PP.FristBarIndex = ZQty;
  2342. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2343. }
  2344. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2345. List_Pack.Add(PP);
  2346. }
  2347. }
  2348. #endregion
  2349. for (int i = 0; i < createPageCount; i++)
  2350. {
  2351. if (i + 1 == createPageCount)
  2352. {
  2353. if (minPackQty * createPageCount > thisCreateQty)
  2354. {
  2355. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2356. }
  2357. }
  2358. 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();
  2359. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2360. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2361. bool flag = true;
  2362. foreach (var item in ExtensionIDList)
  2363. {
  2364. if (item == Colspan + WorkPoint)
  2365. {
  2366. flag = false;
  2367. }
  2368. }
  2369. if (ExtensionID == null && flag == true)
  2370. {
  2371. str1 = Guid.NewGuid().ToString();
  2372. 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)
  2373. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2374. 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(),
  2375. MUSER, MUSERNAME, WorkPoints);
  2376. }
  2377. else if (ExtensionID != null)
  2378. {
  2379. str1 = ExtensionID.ToString();
  2380. }
  2381. ExtensionIDList.Add(Colspan + WorkPoint);
  2382. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2383. if (AMEnable == "true")
  2384. {
  2385. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2386. }
  2387. else
  2388. {
  2389. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2390. }
  2391. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2392. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2393. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2394. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2395. //{
  2396. sql += string.Format(@"
  2397. insert into ICSInventoryLot
  2398. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  2399. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2400. select
  2401. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2402. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  2403. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2404. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2405. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2406. sql += "\r\n";
  2407. //装箱的功能
  2408. if (List_Pack.Count > 0)
  2409. {
  2410. PackModel mm = new PackModel();
  2411. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2412. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2413. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2414. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2415. }
  2416. //}
  2417. }
  2418. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2419. return count;
  2420. }
  2421. public int SubmitFormQiTaNew(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2422. {
  2423. var queryParam = keyValue.ToJObject();
  2424. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2425. //int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2426. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2427. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2428. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  2429. List<decimal> lotQtys = new List<decimal>();
  2430. foreach (var jLotno in jLotnos)
  2431. {
  2432. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  2433. lotQtys.Add(qty);
  2434. }
  2435. int createPageCount = lotQtys.Count();
  2436. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2437. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2438. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2439. string sql = string.Empty;
  2440. //string VendorLot = queryParam["VendorLot"].ToString();
  2441. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2442. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2443. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2444. string InvCode = queryParam["ClassCode"].ToString();
  2445. string sqls = string.Empty;
  2446. string Colspan = "";
  2447. string str1 = "";
  2448. string LotNo = string.Empty;
  2449. List<string> ExtensionIDList = new List<string>();
  2450. #region 装箱的功能
  2451. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2452. string VenCode = queryParam["VenCode"].ToString();
  2453. int PackCount = 0;//每箱放的数量
  2454. int Pack_YuShu = 0;//需要平摊的数量
  2455. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2456. List<PackModel> List_Pack = new List<PackModel>();
  2457. int ZQty = 0;
  2458. if (createPackCount > 0)
  2459. {
  2460. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2461. if (Pack_YuShu == 0)
  2462. {
  2463. PackCount = (createPageCount / createPackCount);
  2464. }
  2465. else
  2466. {
  2467. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2468. }
  2469. for (int jj = 0; jj < createPackCount; jj++)
  2470. {
  2471. object CARID = Guid.NewGuid();
  2472. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2473. sql += @" INSERT INTO dbo.ICSContainer
  2474. ( ID,ContainerCode ,
  2475. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2476. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2477. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2478. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2479. PackModel PP = new PackModel();
  2480. PP.ID = CARID.ToString();
  2481. PP.PackCode = Carton;
  2482. if (jj < Pack_YuShu)
  2483. {
  2484. PP.FristBarIndex = ZQty;
  2485. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2486. }
  2487. else
  2488. {
  2489. PP.FristBarIndex = ZQty;
  2490. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2491. }
  2492. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2493. List_Pack.Add(PP);
  2494. }
  2495. }
  2496. #endregion
  2497. for (int i = 0; i < createPageCount; i++)
  2498. {
  2499. var LOTQTY = lotQtys[i];
  2500. 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();
  2501. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2502. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2503. bool flag = true;
  2504. foreach (var item in ExtensionIDList)
  2505. {
  2506. if (item == Colspan + WorkPoint)
  2507. {
  2508. flag = false;
  2509. }
  2510. }
  2511. if (ExtensionID == null && flag == true)
  2512. {
  2513. str1 = Guid.NewGuid().ToString();
  2514. 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)
  2515. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2516. 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(),
  2517. MUSER, MUSERNAME, WorkPoints);
  2518. }
  2519. else if (ExtensionID != null)
  2520. {
  2521. str1 = ExtensionID.ToString();
  2522. }
  2523. ExtensionIDList.Add(Colspan + WorkPoint);
  2524. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2525. if (AMEnable == "true")
  2526. {
  2527. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2528. }
  2529. else
  2530. {
  2531. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2532. }
  2533. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2534. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2535. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2536. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2537. //{
  2538. sql += string.Format(@"
  2539. insert into ICSInventoryLot
  2540. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  2541. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2542. select
  2543. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2544. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  2545. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  2546. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2547. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2548. sql += "\r\n";
  2549. //装箱的功能
  2550. if (List_Pack.Count > 0)
  2551. {
  2552. PackModel mm = new PackModel();
  2553. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2554. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2555. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2556. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2557. }
  2558. //}
  2559. }
  2560. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2561. return count;
  2562. }
  2563. //归还
  2564. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  2565. {
  2566. DataTable dt = new DataTable();
  2567. var queryParam = queryJson.ToJObject();
  2568. List<DbParameter> parameter = new List<DbParameter>();
  2569. object Figure = GetDecimalDigits();
  2570. #region [SQL]
  2571. string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2572. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2573. CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime,
  2574. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2575. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2576. ,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,
  2577. a.EATTRIBUTE9,a.EATTRIBUTE10
  2578. from ICSReturn a
  2579. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2580. left join (
  2581. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2582. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  2583. where isnull(ee.EATTRIBUTE1,'')=''
  2584. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2585. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2586. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2587. where a.Status='2'";
  2588. sql = string.Format(sql, Figure);
  2589. #endregion
  2590. if (!string.IsNullOrWhiteSpace(queryJson))
  2591. {
  2592. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2593. {
  2594. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2595. }
  2596. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2597. {
  2598. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2599. }
  2600. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2601. {
  2602. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2603. }
  2604. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2605. {
  2606. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2607. }
  2608. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2609. {
  2610. string POStatus = queryParam["POStatus"].ToString();
  2611. if (POStatus == "0")
  2612. {
  2613. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2614. }
  2615. else if (POStatus == "1")
  2616. {
  2617. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2618. }
  2619. else
  2620. {
  2621. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2622. }
  2623. }
  2624. }
  2625. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2626. {
  2627. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2628. }
  2629. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2630. {
  2631. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2632. }
  2633. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2634. }
  2635. //审核到货单(采购订单需与审核到货单一起同步)
  2636. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  2637. {
  2638. DataTable dt = new DataTable();
  2639. var queryParam = queryJson.ToJObject();
  2640. List<DbParameter> parameter = new List<DbParameter>();
  2641. object Figure = GetDecimalDigits();
  2642. #region [SQL]
  2643. 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,
  2644. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2645. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2646. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  2647. Case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2648. --,isnull(b.EffectiveEnable,0) as EffectiveEnable
  2649. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2650. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2651. ,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,
  2652. a.EATTRIBUTE9,a.EATTRIBUTE10
  2653. from ICSDeliveryNotice a
  2654. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2655. left join (
  2656. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2657. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  2658. where isnull(ee.EATTRIBUTE1,'')=''
  2659. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2660. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2661. left join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  2662. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2663. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2664. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  2665. ";
  2666. sql = string.Format(sql, Figure);
  2667. #endregion
  2668. if (!string.IsNullOrWhiteSpace(queryJson))
  2669. {
  2670. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2671. {
  2672. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2673. }
  2674. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2675. {
  2676. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2677. }
  2678. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2679. {
  2680. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2681. }
  2682. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2683. {
  2684. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2685. }
  2686. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2687. {
  2688. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2689. }
  2690. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2691. {
  2692. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2693. }
  2694. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2695. {
  2696. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2697. }
  2698. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2699. {
  2700. string POStatus = queryParam["POStatus"].ToString();
  2701. if (POStatus == "0")
  2702. {
  2703. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2704. }
  2705. else if (POStatus == "1")
  2706. {
  2707. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2708. }
  2709. else
  2710. {
  2711. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2712. }
  2713. }
  2714. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2715. {
  2716. string WHStatus = queryParam["WHStatus"].ToString();
  2717. if (WHStatus == "0")
  2718. {
  2719. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2720. }
  2721. else if (WHStatus == "1")
  2722. {
  2723. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2724. }
  2725. else
  2726. {
  2727. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2728. }
  2729. }
  2730. }
  2731. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2732. {
  2733. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2734. }
  2735. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2736. {
  2737. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2738. }
  2739. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2740. }
  2741. //审核委外到货单
  2742. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  2743. {
  2744. DataTable dt = new DataTable();
  2745. var queryParam = queryJson.ToJObject();
  2746. List<DbParameter> parameter = new List<DbParameter>();
  2747. object Figure = GetDecimalDigits();
  2748. #region [SQL]
  2749. 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,
  2750. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2751. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2752. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
  2753. CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2754. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  2755. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,d.OODetailID ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2756. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2757. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2758. ,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,
  2759. a.EATTRIBUTE9,a.EATTRIBUTE10
  2760. from ICSODeliveryNotice a
  2761. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2762. left join (
  2763. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2764. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  2765. where isnull(ee.EATTRIBUTE1,'')=''
  2766. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2767. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2768. left join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  2769. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2770. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2771. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  2772. sql = string.Format(sql, Figure);
  2773. #endregion
  2774. if (!string.IsNullOrWhiteSpace(queryJson))
  2775. {
  2776. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2777. {
  2778. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2779. }
  2780. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2781. {
  2782. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2783. }
  2784. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2785. {
  2786. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2787. }
  2788. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2789. {
  2790. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2791. }
  2792. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2793. {
  2794. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2795. }
  2796. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2797. {
  2798. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2799. }
  2800. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2801. {
  2802. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2803. }
  2804. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2805. {
  2806. string POStatus = queryParam["POStatus"].ToString();
  2807. if (POStatus == "0")
  2808. {
  2809. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2810. }
  2811. else if (POStatus == "1")
  2812. {
  2813. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2814. }
  2815. else
  2816. {
  2817. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2818. }
  2819. }
  2820. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2821. {
  2822. string WHStatus = queryParam["WHStatus"].ToString();
  2823. if (WHStatus == "0")
  2824. {
  2825. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2826. }
  2827. else if (WHStatus == "1")
  2828. {
  2829. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2830. }
  2831. else
  2832. {
  2833. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2834. }
  2835. }
  2836. }
  2837. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2838. {
  2839. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2840. }
  2841. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2842. {
  2843. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2844. }
  2845. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2846. }
  2847. //开立得成品入库单
  2848. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  2849. {
  2850. DataTable dt = new DataTable();
  2851. var queryParam = queryJson.ToJObject();
  2852. List<DbParameter> parameter = new List<DbParameter>();
  2853. object Figure = GetDecimalDigits();
  2854. #region [SQL]
  2855. string sql = @"
  2856. select a.ID,a.RCVCode,a.Sequence,a.SourceCode as MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2857. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2858. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2859. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.CreatePerson,a.CreateDateTime,
  2860. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2861. ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable,b.EffectiveDays
  2862. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2863. ,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,
  2864. a.EATTRIBUTE9,a.EATTRIBUTE10
  2865. from ICSManufactureReceive a
  2866. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2867. left join (
  2868. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2869. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  2870. where isnull(ee.EATTRIBUTE1,'')=''
  2871. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2872. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2873. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2874. --left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint
  2875. where a.Status='1' and a.Type='1'";
  2876. sql = string.Format(sql, Figure);
  2877. #endregion
  2878. if (!string.IsNullOrWhiteSpace(queryJson))
  2879. {
  2880. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2881. {
  2882. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2883. }
  2884. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2885. {
  2886. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2887. }
  2888. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2889. {
  2890. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2891. }
  2892. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2893. {
  2894. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2895. }
  2896. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  2897. {
  2898. sql += " and a.SourceCode like '%" + queryParam["SCode"].ToString() + "%' ";
  2899. }
  2900. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2901. {
  2902. string POStatus = queryParam["POStatus"].ToString();
  2903. if (POStatus == "0")
  2904. {
  2905. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2906. }
  2907. else if (POStatus == "1")
  2908. {
  2909. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2910. }
  2911. else
  2912. {
  2913. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2914. }
  2915. }
  2916. }
  2917. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2918. {
  2919. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2920. }
  2921. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2922. {
  2923. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2924. }
  2925. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2926. }
  2927. /// <summary>
  2928. /// 点击审核委外到货单生成条码(审核委外到货单)
  2929. /// </summary>
  2930. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2931. {
  2932. DataTable dt = new DataTable();
  2933. object Figure = GetDecimalDigits();
  2934. List<DbParameter> parameter = new List<DbParameter>();
  2935. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn005', " + Quantity + ",1,1,'')";
  2936. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2937. //锐腾添加退补逻辑
  2938. string sql = @"select e.Enable, a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2939. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2940. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2941. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2942. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  2943. ,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,
  2944. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2945. from ICSODeliveryNotice a
  2946. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2947. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2948. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8'
  2949. where isnull(a.EATTRIBUTE1,'')=''
  2950. group by b.TransCode,b.TransSequence
  2951. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2952. left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
  2953. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2954. left join (select a.ODNCode,a.Sequence,a.WorkPoint, ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  2955. from ICSODeliveryNotice a
  2956. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2957. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  2958. 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
  2959. WHERE 1 =1
  2960. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2961. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2962. sql = string.Format(sql, Figure);
  2963. return Repository().FindTableBySql(sql.ToString());
  2964. }
  2965. /// <summary>
  2966. /// 点击开立成品入库生成条码(开立成品入库单)
  2967. /// </summary>
  2968. /// //--
  2969. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2970. {
  2971. DataTable dt = new DataTable();
  2972. object Figure = GetDecimalDigits();
  2973. List<DbParameter> parameter = new List<DbParameter>();
  2974. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn013', " + Quantity + ",1,2,'')";
  2975. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2976. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2977. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2978. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2979. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2980. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2981. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  2982. ,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,
  2983. '' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10
  2984. from ICSManufactureReceive a
  2985. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2986. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2987. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9'
  2988. where isnull(a.EATTRIBUTE1,'')=''
  2989. group by b.TransCode,b.TransSequence
  2990. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  2991. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2992. WHERE 1 =1
  2993. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  2994. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2995. sql = string.Format(sql, Figure);
  2996. return Repository().FindTableBySql(sql.ToString());
  2997. }
  2998. /// <summary>
  2999. /// 点击审核到货单生成条码(审核到货单)
  3000. /// </summary>
  3001. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3002. {
  3003. DataTable dt = new DataTable();
  3004. object Figure = GetDecimalDigits();
  3005. List<DbParameter> parameter = new List<DbParameter>();
  3006. /***
  3007. * 退退退退
  3008. * 退退
  3009. ***/
  3010. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn002', " + Quantity + ",1,1,'')";
  3011. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3012. string checksql = $@"select a.ID from ICSDeliveryNotice a
  3013. inner join ICSDeliveryNotice b ON a.DNDetailID=Isnull(b.EATTRIBUTE8,'') and a.WorkPoint=b.WorkPoint and b.DNType='2' and b.EATTRIBUTE7='退'
  3014. where a.DNType='1' and a.DNCode='{DNCode}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}' ";
  3015. var checkdt = SqlHelper.CmdExecuteDataTable(checksql);
  3016. string sql = string.Empty;
  3017. if (checkdt.Rows.Count > 0)
  3018. {
  3019. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3020. CAST( " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  3021. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3022. 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,
  3023. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0)-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0)-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  3024. ,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,
  3025. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3026. from ICSDeliveryNotice a
  3027. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3028. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  3029. 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
  3030. from ICSDeliveryNotice a
  3031. 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
  3032. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3033. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  3034. where isnull(a.EATTRIBUTE1,'')=''
  3035. group by b.TransCode,b.TransSequence
  3036. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  3037. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3038. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  3039. 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
  3040. WHERE 1 =1
  3041. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  3042. }
  3043. else
  3044. {
  3045. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3046. CAST( " + Num + @"+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  3047. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3048. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3049. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  3050. ,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,
  3051. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3052. from ICSDeliveryNotice a
  3053. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3054. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  3055. 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
  3056. from ICSDeliveryNotice a
  3057. 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
  3058. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3059. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  3060. where isnull(a.EATTRIBUTE1,'')=''
  3061. group by b.TransCode,b.TransSequence
  3062. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  3063. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3064. 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
  3065. WHERE 1 =1
  3066. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  3067. }
  3068. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3069. sql = string.Format(sql, Figure);
  3070. return Repository().FindTableBySql(sql.ToString());
  3071. }
  3072. /// <summary>
  3073. /// 点击归还生成条码(归还)
  3074. /// </summary>
  3075. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3076. {
  3077. DataTable dt = new DataTable();
  3078. object Figure = GetDecimalDigits();
  3079. List<DbParameter> parameter = new List<DbParameter>();
  3080. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn023', " + Quantity + ",1,4,'')";
  3081. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3082. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3083. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3084. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  3085. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3086. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3087. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  3088. ,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,
  3089. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3090. from ICSReturn a
  3091. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3092. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3093. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6'
  3094. where isnull(a.EATTRIBUTE1,'')=''
  3095. group by b.TransCode,b.TransSequence
  3096. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  3097. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3098. WHERE 1 =1
  3099. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  3100. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3101. sql = string.Format(sql, Figure);
  3102. return Repository().FindTableBySql(sql.ToString());
  3103. }
  3104. /// <summary>
  3105. /// 归还单生成条码
  3106. /// </summary>
  3107. /// <param name="POCode"></param>
  3108. /// <param name="PORow"></param>
  3109. /// <param name="keyValue"></param>
  3110. /// 已改
  3111. /// <returns></returns>
  3112. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  3113. {
  3114. var queryParam = keyValue.ToJObject();
  3115. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3116. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3117. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3118. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3119. decimal LOTQTY = minPackQty;
  3120. string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3121. string sql = string.Empty;
  3122. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3123. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3124. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3125. string sqls = string.Empty;
  3126. string Colspan = "";
  3127. string str1 = "";
  3128. List<string> ExtensionIDList = new List<string>();
  3129. #region 装箱的功能
  3130. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3131. string VenCode = queryParam["VenCode"].ToString();
  3132. int PackCount = 0;//每箱放的数量
  3133. int Pack_YuShu = 0;//需要平摊的数量
  3134. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3135. List<PackModel> List_Pack = new List<PackModel>();
  3136. int ZQty = 0;
  3137. if (createPackCount > 0)
  3138. {
  3139. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3140. if (Pack_YuShu == 0)
  3141. {
  3142. PackCount = (createPageCount / createPackCount);
  3143. }
  3144. else
  3145. {
  3146. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3147. }
  3148. for (int jj = 0; jj < createPackCount; jj++)
  3149. {
  3150. object CARID = Guid.NewGuid();
  3151. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3152. sql += @" INSERT INTO dbo.ICSContainer
  3153. ( ID,ContainerCode ,
  3154. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3155. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3156. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3157. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3158. PackModel PP = new PackModel();
  3159. PP.ID = CARID.ToString();
  3160. PP.PackCode = Carton;
  3161. if (jj < Pack_YuShu)
  3162. {
  3163. PP.FristBarIndex = ZQty;
  3164. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3165. }
  3166. else
  3167. {
  3168. PP.FristBarIndex = ZQty;
  3169. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3170. }
  3171. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3172. List_Pack.Add(PP);
  3173. }
  3174. }
  3175. #endregion
  3176. for (int i = 0; i < createPageCount; i++)
  3177. {
  3178. if (i + 1 == createPageCount)
  3179. {
  3180. if (minPackQty * createPageCount > thisCreateQty)
  3181. {
  3182. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3183. }
  3184. }
  3185. 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();
  3186. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3187. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3188. bool flag = true;
  3189. foreach (var item in ExtensionIDList)
  3190. {
  3191. if (item == Colspan + WorkPoint)
  3192. {
  3193. flag = false;
  3194. }
  3195. }
  3196. if (ExtensionID == null && flag == true)
  3197. {
  3198. str1 = Guid.NewGuid().ToString();
  3199. 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)
  3200. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3201. 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(),
  3202. MUSER, MUSERNAME, WorkPoints);
  3203. }
  3204. else if (ExtensionID != null)
  3205. {
  3206. str1 = ExtensionID.ToString();
  3207. }
  3208. ExtensionIDList.Add(Colspan + WorkPoint);
  3209. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3210. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3211. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  3212. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3213. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3214. //{
  3215. sql += string.Format(@"
  3216. insert into ICSInventoryLot
  3217. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3218. select
  3219. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3220. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  3221. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3222. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3223. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3224. sql += "\r\n";
  3225. //装箱的功能
  3226. if (List_Pack.Count > 0)
  3227. {
  3228. PackModel mm = new PackModel();
  3229. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3230. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3231. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3232. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3233. }
  3234. //}
  3235. }
  3236. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3237. return count;
  3238. }
  3239. /// <summary>
  3240. /// 审核到货单生成条码
  3241. /// </summary>
  3242. /// <param name="POCode"></param>
  3243. /// <param name="PORow"></param>
  3244. /// <param name="keyValue"></param>
  3245. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  3246. /// <returns></returns>
  3247. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  3248. {
  3249. var queryParam = keyValue.ToJObject();
  3250. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3251. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3252. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3253. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3254. decimal LOTQTY = minPackQty;
  3255. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3256. string sql = string.Empty;
  3257. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3258. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3259. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3260. string InvCode = queryParam["ClassCode"].ToString();
  3261. string sqls = string.Empty;
  3262. string Colspan = "";
  3263. string str1 = "";
  3264. string LotNo = string.Empty;
  3265. List<string> ExtensionIDList = new List<string>();
  3266. #region 装箱的功能
  3267. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3268. string VenCode = queryParam["VenCode"].ToString();
  3269. int PackCount = 0;//每箱放的数量
  3270. int Pack_YuShu = 0;//需要平摊的数量
  3271. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3272. List<PackModel> List_Pack = new List<PackModel>();
  3273. int ZQty = 0;
  3274. if (createPackCount > 0)
  3275. {
  3276. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3277. if (Pack_YuShu == 0)
  3278. {
  3279. PackCount = (createPageCount / createPackCount);
  3280. }
  3281. else
  3282. {
  3283. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3284. }
  3285. for (int jj = 0; jj < createPackCount; jj++)
  3286. {
  3287. object CARID = Guid.NewGuid();
  3288. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3289. sql += @" INSERT INTO dbo.ICSContainer
  3290. ( ID,ContainerCode ,
  3291. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3292. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3293. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3294. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3295. PackModel PP = new PackModel();
  3296. PP.ID = CARID.ToString();
  3297. PP.PackCode = Carton;
  3298. if (jj < Pack_YuShu)
  3299. {
  3300. PP.FristBarIndex = ZQty;
  3301. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3302. }
  3303. else
  3304. {
  3305. PP.FristBarIndex = ZQty;
  3306. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3307. }
  3308. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3309. List_Pack.Add(PP);
  3310. }
  3311. }
  3312. #endregion
  3313. for (int i = 0; i < createPageCount; i++)
  3314. {
  3315. if (i + 1 == createPageCount)
  3316. {
  3317. if (minPackQty * createPageCount > thisCreateQty)
  3318. {
  3319. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3320. }
  3321. }
  3322. 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();
  3323. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3324. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3325. bool flag = true;
  3326. foreach (var item in ExtensionIDList)
  3327. {
  3328. if (item == Colspan + WorkPoint)
  3329. {
  3330. flag = false;
  3331. }
  3332. }
  3333. if (ExtensionID == null && flag == true)
  3334. {
  3335. str1 = Guid.NewGuid().ToString();
  3336. 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)
  3337. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3338. 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(),
  3339. MUSER, MUSERNAME, WorkPoints);
  3340. }
  3341. else if (ExtensionID != null)
  3342. {
  3343. str1 = ExtensionID.ToString();
  3344. }
  3345. ExtensionIDList.Add(Colspan + WorkPoint);
  3346. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  3347. if (AMEnable == "true")
  3348. {
  3349. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  3350. }
  3351. else
  3352. {
  3353. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3354. }
  3355. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3356. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  3357. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3358. sql += string.Format(@"
  3359. insert into ICSInventoryLot
  3360. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3361. select
  3362. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  3363. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3364. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3365. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3366. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3367. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3368. sql += "\r\n";
  3369. //装箱的功能
  3370. if (List_Pack.Count > 0)
  3371. {
  3372. PackModel mm = new PackModel();
  3373. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3374. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3375. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3376. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3377. }
  3378. }
  3379. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3380. return count;
  3381. }
  3382. /// <summary>
  3383. /// 审核委外到货单生成条码
  3384. /// </summary>
  3385. /// <param name="POCode"></param>
  3386. /// <param name="PORow"></param>
  3387. /// <param name="keyValue"></param>
  3388. /// 已改
  3389. /// <returns></returns>
  3390. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  3391. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  3392. {
  3393. var queryParam = keyValue.ToJObject();
  3394. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3395. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3396. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3397. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3398. decimal LOTQTY = minPackQty;
  3399. string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3400. string sql = string.Empty;
  3401. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3402. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3403. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3404. string InvCode = queryParam["ClassCode"].ToString();
  3405. string sqls = string.Empty;
  3406. string Colspan = "";
  3407. string str1 = "";
  3408. string LotNo = string.Empty;
  3409. List<string> ExtensionIDList = new List<string>();
  3410. #region 装箱的功能
  3411. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3412. string VenCode = queryParam["VenCode"].ToString();
  3413. int PackCount = 0;//每箱放的数量
  3414. int Pack_YuShu = 0;//需要平摊的数量
  3415. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3416. List<PackModel> List_Pack = new List<PackModel>();
  3417. int ZQty = 0;
  3418. if (createPackCount > 0)
  3419. {
  3420. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3421. if (Pack_YuShu == 0)
  3422. {
  3423. PackCount = (createPageCount / createPackCount);
  3424. }
  3425. else
  3426. {
  3427. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3428. }
  3429. for (int jj = 0; jj < createPackCount; jj++)
  3430. {
  3431. object CARID = Guid.NewGuid();
  3432. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3433. sql += @" INSERT INTO dbo.ICSContainer
  3434. ( ID,ContainerCode ,
  3435. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3436. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3437. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3438. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3439. PackModel PP = new PackModel();
  3440. PP.ID = CARID.ToString();
  3441. PP.PackCode = Carton;
  3442. if (jj < Pack_YuShu)
  3443. {
  3444. PP.FristBarIndex = ZQty;
  3445. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3446. }
  3447. else
  3448. {
  3449. PP.FristBarIndex = ZQty;
  3450. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3451. }
  3452. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3453. List_Pack.Add(PP);
  3454. }
  3455. }
  3456. #endregion
  3457. for (int i = 0; i < createPageCount; i++)
  3458. {
  3459. if (i + 1 == createPageCount)
  3460. {
  3461. if (minPackQty * createPageCount > thisCreateQty)
  3462. {
  3463. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3464. }
  3465. }
  3466. 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();
  3467. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3468. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3469. bool flag = true;
  3470. foreach (var item in ExtensionIDList)
  3471. {
  3472. if (item == Colspan + WorkPoint)
  3473. {
  3474. flag = false;
  3475. }
  3476. }
  3477. if (ExtensionID == null && flag == true)
  3478. {
  3479. str1 = Guid.NewGuid().ToString();
  3480. 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)
  3481. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3482. 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(),
  3483. MUSER, MUSERNAME, WorkPoints);
  3484. }
  3485. else if (ExtensionID != null)
  3486. {
  3487. str1 = ExtensionID.ToString();
  3488. }
  3489. ExtensionIDList.Add(Colspan + WorkPoint);
  3490. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  3491. if (AMEnable == "true")
  3492. {
  3493. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  3494. }
  3495. else
  3496. {
  3497. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3498. }
  3499. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3500. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3501. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3502. sql += string.Format(@"
  3503. insert into ICSInventoryLot
  3504. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3505. select
  3506. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  3507. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3508. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3509. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3510. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3511. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3512. sql += "\r\n";
  3513. //装箱的功能
  3514. if (List_Pack.Count > 0)
  3515. {
  3516. PackModel mm = new PackModel();
  3517. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3518. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3519. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3520. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3521. }
  3522. }
  3523. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3524. return count;
  3525. }
  3526. /// <summary>
  3527. /// 开立成品入库单
  3528. /// </summary>
  3529. /// <param name="POCode"></param>
  3530. /// <param name="PORow"></param>
  3531. /// <param name="keyValue"></param>
  3532. /// 已改
  3533. /// <returns></returns>
  3534. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  3535. {
  3536. var queryParam = keyValue.ToJObject();
  3537. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3538. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3539. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3540. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3541. decimal LOTQTY = minPackQty;
  3542. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3543. string sql = string.Empty;
  3544. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3545. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3546. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3547. string sqls = string.Empty;
  3548. string Colspan = "";
  3549. string str1 = "";
  3550. List<string> ExtensionIDList = new List<string>();
  3551. #region 装箱的功能
  3552. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3553. string VenCode = queryParam["VenCode"].ToString();
  3554. int PackCount = 0;//每箱放的数量
  3555. int Pack_YuShu = 0;//需要平摊的数量
  3556. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3557. List<PackModel> List_Pack = new List<PackModel>();
  3558. int ZQty = 0;
  3559. if (createPackCount > 0)
  3560. {
  3561. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3562. if (Pack_YuShu == 0)
  3563. {
  3564. PackCount = (createPageCount / createPackCount);
  3565. }
  3566. else
  3567. {
  3568. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3569. }
  3570. for (int jj = 0; jj < createPackCount; jj++)
  3571. {
  3572. object CARID = Guid.NewGuid();
  3573. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3574. sql += @" INSERT INTO dbo.ICSContainer
  3575. ( ID,ContainerCode ,
  3576. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3577. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3578. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3579. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3580. PackModel PP = new PackModel();
  3581. PP.ID = CARID.ToString();
  3582. PP.PackCode = Carton;
  3583. if (jj < Pack_YuShu)
  3584. {
  3585. PP.FristBarIndex = ZQty;
  3586. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3587. }
  3588. else
  3589. {
  3590. PP.FristBarIndex = ZQty;
  3591. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3592. }
  3593. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3594. List_Pack.Add(PP);
  3595. }
  3596. }
  3597. #endregion
  3598. for (int i = 0; i < createPageCount; i++)
  3599. {
  3600. if (i + 1 == createPageCount)
  3601. {
  3602. if (minPackQty * createPageCount > thisCreateQty)
  3603. {
  3604. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3605. }
  3606. }
  3607. 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();
  3608. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3609. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3610. bool flag = true;
  3611. foreach (var item in ExtensionIDList)
  3612. {
  3613. if (item == Colspan + WorkPoint)
  3614. {
  3615. flag = false;
  3616. }
  3617. }
  3618. if (ExtensionID == null && flag == true)
  3619. {
  3620. str1 = Guid.NewGuid().ToString();
  3621. 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)
  3622. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3623. 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(),
  3624. MUSER, MUSERNAME, WorkPoints);
  3625. }
  3626. else if (ExtensionID != null)
  3627. {
  3628. str1 = ExtensionID.ToString();
  3629. }
  3630. ExtensionIDList.Add(Colspan + WorkPoint);
  3631. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3632. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3633. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3634. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3635. sql += string.Format(@"
  3636. insert into ICSInventoryLot
  3637. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3638. select
  3639. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3640. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3641. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3642. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3643. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3644. sql += "\r\n";
  3645. //装箱的功能
  3646. if (List_Pack.Count > 0)
  3647. {
  3648. PackModel mm = new PackModel();
  3649. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3650. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3651. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3652. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3653. }
  3654. }
  3655. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3656. return count;
  3657. }
  3658. //委外拒收单
  3659. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  3660. {
  3661. DataTable dt = new DataTable();
  3662. var queryParam = queryJson.ToJObject();
  3663. List<DbParameter> parameter = new List<DbParameter>();
  3664. object Figure = GetDecimalDigits();
  3665. #region [SQL]
  3666. 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,
  3667. 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,
  3668. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3669. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3670. ,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,
  3671. a.EATTRIBUTE9,a.EATTRIBUTE10
  3672. from ICSODeliveryNotice a
  3673. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3674. left join (
  3675. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3676. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3677. where isnull(ee.EATTRIBUTE1,'')=''
  3678. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3679. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3680. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3681. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3682. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3683. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3684. ";
  3685. sql = string.Format(sql, Figure);
  3686. #endregion
  3687. if (!string.IsNullOrWhiteSpace(queryJson))
  3688. {
  3689. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3690. {
  3691. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3692. }
  3693. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3694. {
  3695. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3696. }
  3697. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3698. {
  3699. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3700. }
  3701. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3702. {
  3703. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3704. }
  3705. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3706. {
  3707. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3708. }
  3709. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3710. {
  3711. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3712. }
  3713. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3714. {
  3715. string POStatus = queryParam["POStatus"].ToString();
  3716. if (POStatus == "0")
  3717. {
  3718. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3719. }
  3720. else if (POStatus == "1")
  3721. {
  3722. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3723. }
  3724. else
  3725. {
  3726. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3727. }
  3728. }
  3729. }
  3730. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3731. {
  3732. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3733. }
  3734. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3735. {
  3736. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3737. }
  3738. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3739. }
  3740. //拒收单
  3741. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  3742. {
  3743. DataTable dt = new DataTable();
  3744. var queryParam = queryJson.ToJObject();
  3745. List<DbParameter> parameter = new List<DbParameter>();
  3746. object Figure = GetDecimalDigits();
  3747. #region [SQL]
  3748. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  3749. 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,
  3750. CAST( a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  3751. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3752. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3753. ,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,
  3754. a.EATTRIBUTE9,a.EATTRIBUTE10
  3755. from ICSDeliveryNotice a
  3756. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3757. left join (
  3758. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3759. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3760. where isnull(ee.EATTRIBUTE1,'')=''
  3761. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3762. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3763. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3764. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3765. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3766. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3767. ";
  3768. sql = string.Format(sql, Figure);
  3769. #endregion
  3770. if (!string.IsNullOrWhiteSpace(queryJson))
  3771. {
  3772. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3773. {
  3774. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3775. }
  3776. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3777. {
  3778. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3779. }
  3780. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3781. {
  3782. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3783. }
  3784. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3785. {
  3786. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3787. }
  3788. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3789. {
  3790. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3791. }
  3792. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3793. {
  3794. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3795. }
  3796. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3797. {
  3798. string POStatus = queryParam["POStatus"].ToString();
  3799. if (POStatus == "0")
  3800. {
  3801. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3802. }
  3803. else if (POStatus == "1")
  3804. {
  3805. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3806. }
  3807. else
  3808. {
  3809. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3810. }
  3811. }
  3812. }
  3813. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3814. {
  3815. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3816. }
  3817. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3818. {
  3819. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3820. }
  3821. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3822. }
  3823. //领料申请退料
  3824. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  3825. {
  3826. DataTable dt = new DataTable();
  3827. var queryParam = queryJson.ToJObject();
  3828. List<DbParameter> parameter = new List<DbParameter>();
  3829. object Figure = GetDecimalDigits();
  3830. #region [SQL]
  3831. 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,
  3832. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  3833. CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3834. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3835. ,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,
  3836. a.EATTRIBUTE9,a.EATTRIBUTE10
  3837. from ICSMOApplyNegDetail a
  3838. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3839. left JOIN ICSMOApply bb ON a.SourceDetailID=bb.ApplyDetailID AND a.WorkPoint=bb.WorkPoint
  3840. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3841. left join (
  3842. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3843. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3844. where isnull(ee.EATTRIBUTE1,'')=''
  3845. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3846. )c
  3847. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3848. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3849. WHERE d.Type='2' and d.Status='2' ";
  3850. sql = string.Format(sql, Figure);
  3851. #endregion
  3852. if (!string.IsNullOrWhiteSpace(queryJson))
  3853. {
  3854. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3855. {
  3856. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3857. }
  3858. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3859. {
  3860. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3861. }
  3862. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3863. {
  3864. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3865. }
  3866. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3867. {
  3868. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3869. }
  3870. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  3871. {
  3872. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  3873. }
  3874. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  3875. {
  3876. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  3877. }
  3878. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3879. {
  3880. string POStatus = queryParam["POStatus"].ToString();
  3881. if (POStatus == "0")
  3882. {
  3883. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3884. }
  3885. else if (POStatus == "1")
  3886. {
  3887. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3888. }
  3889. else
  3890. {
  3891. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3892. }
  3893. }
  3894. }
  3895. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3896. {
  3897. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3898. }
  3899. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3900. {
  3901. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3902. }
  3903. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3904. }
  3905. /// <summary>
  3906. /// 拒收生成条码
  3907. /// </summary>
  3908. /// <param name="POCode"></param>
  3909. /// <param name="PORow"></param>
  3910. /// <param name="keyValue"></param>
  3911. /// <returns></returns>
  3912. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  3913. {
  3914. var queryParam = keyValue.ToJObject();
  3915. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3916. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3917. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3918. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3919. decimal LOTQTY = minPackQty;
  3920. string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3921. string sql = string.Empty;
  3922. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3923. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3924. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3925. string sqls = string.Empty;
  3926. string Colspan = "";
  3927. string str1 = "";
  3928. List<string> ExtensionIDList = new List<string>();
  3929. #region 装箱的功能
  3930. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3931. string VenCode = queryParam["VenCode"].ToString();
  3932. int PackCount = 0;//每箱放的数量
  3933. int Pack_YuShu = 0;//需要平摊的数量
  3934. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3935. List<PackModel> List_Pack = new List<PackModel>();
  3936. int ZQty = 0;
  3937. if (createPackCount > 0)
  3938. {
  3939. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3940. if (Pack_YuShu == 0)
  3941. {
  3942. PackCount = (createPageCount / createPackCount);
  3943. }
  3944. else
  3945. {
  3946. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3947. }
  3948. for (int jj = 0; jj < createPackCount; jj++)
  3949. {
  3950. object CARID = Guid.NewGuid();
  3951. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3952. sql += @" INSERT INTO dbo.ICSContainer
  3953. ( ID,ContainerCode ,
  3954. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3955. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3956. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3957. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3958. PackModel PP = new PackModel();
  3959. PP.ID = CARID.ToString();
  3960. PP.PackCode = Carton;
  3961. if (jj < Pack_YuShu)
  3962. {
  3963. PP.FristBarIndex = ZQty;
  3964. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3965. }
  3966. else
  3967. {
  3968. PP.FristBarIndex = ZQty;
  3969. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3970. }
  3971. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3972. List_Pack.Add(PP);
  3973. }
  3974. }
  3975. #endregion
  3976. for (int i = 0; i < createPageCount; i++)
  3977. {
  3978. if (i + 1 == createPageCount)
  3979. {
  3980. if (minPackQty * createPageCount > thisCreateQty)
  3981. {
  3982. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3983. }
  3984. }
  3985. 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();
  3986. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3987. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3988. bool flag = true;
  3989. foreach (var item in ExtensionIDList)
  3990. {
  3991. if (item == Colspan + WorkPoint)
  3992. {
  3993. flag = false;
  3994. }
  3995. }
  3996. if (ExtensionID == null && flag == true)
  3997. {
  3998. str1 = Guid.NewGuid().ToString();
  3999. 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)
  4000. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4001. 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(),
  4002. MUSER, MUSERNAME, WorkPoints);
  4003. }
  4004. else if (ExtensionID != null)
  4005. {
  4006. str1 = ExtensionID.ToString();
  4007. }
  4008. ExtensionIDList.Add(Colspan + WorkPoint);
  4009. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4010. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4011. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  4012. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4013. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4014. //{
  4015. sql += string.Format(@"
  4016. insert into ICSInventoryLot
  4017. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4018. select
  4019. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4020. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4021. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4022. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4023. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4024. sql += "\r\n";
  4025. //装箱的功能
  4026. if (List_Pack.Count > 0)
  4027. {
  4028. PackModel mm = new PackModel();
  4029. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4030. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4031. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4032. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4033. }
  4034. //}
  4035. }
  4036. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4037. return count;
  4038. }
  4039. /// <summary>
  4040. /// 委外拒收生成条码
  4041. /// </summary>
  4042. /// <param name="POCode"></param>
  4043. /// <param name="PORow"></param>
  4044. /// <param name="keyValue"></param>
  4045. /// <returns></returns>
  4046. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  4047. {
  4048. var queryParam = keyValue.ToJObject();
  4049. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4050. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4051. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4052. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4053. decimal LOTQTY = minPackQty;
  4054. string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4055. string sql = string.Empty;
  4056. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4057. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4058. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4059. string sqls = string.Empty;
  4060. string Colspan = "";
  4061. string str1 = "";
  4062. List<string> ExtensionIDList = new List<string>();
  4063. #region 装箱的功能
  4064. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4065. string VenCode = queryParam["VenCode"].ToString();
  4066. int PackCount = 0;//每箱放的数量
  4067. int Pack_YuShu = 0;//需要平摊的数量
  4068. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4069. List<PackModel> List_Pack = new List<PackModel>();
  4070. int ZQty = 0;
  4071. if (createPackCount > 0)
  4072. {
  4073. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4074. if (Pack_YuShu == 0)
  4075. {
  4076. PackCount = (createPageCount / createPackCount);
  4077. }
  4078. else
  4079. {
  4080. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4081. }
  4082. for (int jj = 0; jj < createPackCount; jj++)
  4083. {
  4084. object CARID = Guid.NewGuid();
  4085. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4086. sql += @" INSERT INTO dbo.ICSContainer
  4087. ( ID,ContainerCode ,
  4088. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4089. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4090. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4091. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4092. PackModel PP = new PackModel();
  4093. PP.ID = CARID.ToString();
  4094. PP.PackCode = Carton;
  4095. if (jj < Pack_YuShu)
  4096. {
  4097. PP.FristBarIndex = ZQty;
  4098. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4099. }
  4100. else
  4101. {
  4102. PP.FristBarIndex = ZQty;
  4103. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4104. }
  4105. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4106. List_Pack.Add(PP);
  4107. }
  4108. }
  4109. #endregion
  4110. for (int i = 0; i < createPageCount; i++)
  4111. {
  4112. if (i + 1 == createPageCount)
  4113. {
  4114. if (minPackQty * createPageCount > thisCreateQty)
  4115. {
  4116. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4117. }
  4118. }
  4119. 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();
  4120. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4121. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4122. bool flag = true;
  4123. foreach (var item in ExtensionIDList)
  4124. {
  4125. if (item == Colspan + WorkPoint)
  4126. {
  4127. flag = false;
  4128. }
  4129. }
  4130. if (ExtensionID == null && flag == true)
  4131. {
  4132. str1 = Guid.NewGuid().ToString();
  4133. 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)
  4134. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4135. 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(),
  4136. MUSER, MUSERNAME, WorkPoints);
  4137. }
  4138. else if (ExtensionID != null)
  4139. {
  4140. str1 = ExtensionID.ToString();
  4141. }
  4142. ExtensionIDList.Add(Colspan + WorkPoint);
  4143. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4144. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4145. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  4146. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4147. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4148. //{
  4149. sql += string.Format(@"
  4150. insert into ICSInventoryLot
  4151. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4152. select
  4153. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4154. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  4155. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4156. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4157. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4158. sql += "\r\n";
  4159. //装箱的功能
  4160. if (List_Pack.Count > 0)
  4161. {
  4162. PackModel mm = new PackModel();
  4163. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4164. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4165. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4166. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4167. }
  4168. //}
  4169. }
  4170. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4171. return count;
  4172. }
  4173. /// <summary>
  4174. /// 点击审核到货单生成条码(审核到货单)
  4175. /// </summary>
  4176. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4177. {
  4178. DataTable dt = new DataTable();
  4179. object Figure = GetDecimalDigits();
  4180. List<DbParameter> parameter = new List<DbParameter>();
  4181. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn003', " + Quantity + ",1,1,'')";
  4182. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4183. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4184. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4185. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4186. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  4187. ,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,
  4188. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4189. from ICSDeliveryNotice a
  4190. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4191. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4192. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10'
  4193. where isnull(a.EATTRIBUTE1,'')=''
  4194. group by b.TransCode,b.TransSequence
  4195. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  4196. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  4197. WHERE a.DNType='3'
  4198. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  4199. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4200. sql = string.Format(sql, Figure);
  4201. return Repository().FindTableBySql(sql.ToString());
  4202. }
  4203. /// <summary>
  4204. /// 点击审核委外到货单生成条码(审核委外到货单)
  4205. /// </summary>
  4206. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4207. {
  4208. DataTable dt = new DataTable();
  4209. object Figure = GetDecimalDigits();
  4210. List<DbParameter> parameter = new List<DbParameter>();
  4211. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn006', " + Quantity + ",1,1,'')";
  4212. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4213. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  4214. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4215. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  4216. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4217. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4218. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  4219. ,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,
  4220. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4221. from ICSODeliveryNotice a
  4222. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4223. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4224. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11'
  4225. where isnull(a.EATTRIBUTE1,'')=''
  4226. group by b.TransCode,b.TransSequence
  4227. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  4228. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  4229. WHERE a.ODNType='3'
  4230. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  4231. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4232. sql = string.Format(sql, Figure);
  4233. return Repository().FindTableBySql(sql.ToString());
  4234. }
  4235. //获取委外退料源头条码
  4236. public DataTable GetWeiWaiTLSrcLot(string OApplyNegCode, string Sequence, string WorkPoint)
  4237. {
  4238. DataTable dt = new DataTable();
  4239. List<DbParameter> parameter = new List<DbParameter>();
  4240. string sql = @"select C.LotNo from ICSOApplyNegDetail A
  4241. INNER JOIN ICSOIssue B ON B.PickID=A.SourceDetailID AND B.InvCode=A.InvCode
  4242. INNER JOIN ICSWareHouseLotInfoLog C
  4243. ON C.TransCode=B.SourceCode AND SUBSTRING(C.TransSequence,0,CharIndex('~',C.TransSequence))=B.SourceSequence
  4244. AND C.WorkPoint=B.WorkPoint
  4245. AND C.TransType=3 AND C.BusinessCode=5
  4246. where A.OApplyNegCode='" + OApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  4247. order by C.MTIME desc";
  4248. return Repository().FindTableBySql(sql.ToString());
  4249. }
  4250. //获取领料申请源头条码
  4251. public DataTable GetLLSQSrcLot(string ApplyNegCode, string Sequence, string WorkPoint)
  4252. {
  4253. DataTable dt = new DataTable();
  4254. List<DbParameter> parameter = new List<DbParameter>();
  4255. string sql = @"select C.LotNo from ICSMOApplyNegDetail A
  4256. INNER JOIN ICSMOApply B ON B.EATTRIBUTE30=A.SourceDetailID AND B.InvCode=A.InvCode
  4257. INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.ApplyCode AND C.TransSequence=B.Sequence
  4258. AND C.TransType=3 AND C.BusinessCode=14
  4259. where A.ApplyNegCode='" + ApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  4260. order by C.MTIME desc";
  4261. return Repository().FindTableBySql(sql.ToString());
  4262. }
  4263. //获取条码备用字段568(派纳特殊需求---销售退货直接取单据备用字段信息)
  4264. public DataTable GetSSDDocEATTRIBUTEInfo(string SSDCode, string Sequence, string WorkPoint)
  4265. {
  4266. string sql = @"select A.CreateDateTime AS ProductDate,B.BatchCode AS BatchCode,A.EATTRIBUTE3,A.EATTRIBUTE5,A.EATTRIBUTE6,A.EATTRIBUTE8 from ICSSSD A
  4267. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  4268. where A.SSDCode='" + SSDCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + "'";
  4269. return Repository().FindTableBySql(sql.ToString());
  4270. }
  4271. //获取业务源头条码备用字段456(派纳特殊需求)
  4272. public DataTable GetSrcLotNoInfoPN(string LotNo, string WorkPoint)
  4273. {
  4274. try
  4275. {
  4276. string sql = "SELECT '' AS EATTRIBUTE3,'' AS EATTRIBUTE5,'' AS EATTRIBUTE6,'' AS EATTRIBUTE8 ";
  4277. DataTable dt = new DataTable();
  4278. List<DbParameter> parameter = new List<DbParameter>();
  4279. string lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  4280. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  4281. WHERE A.LotNo='" + LotNo + "' AND A.WorkPoint='" + WorkPoint + "'";
  4282. dt = SqlHelper.GetDataTableBySql(lotsql);
  4283. if (dt.Rows.Count > 0)
  4284. {
  4285. if (dt.Rows[0]["Type"].ToString() == "101" || dt.Rows[0]["Type"].ToString() == "102")//分批合批或形态转换后条码 需要找到最初的原条码确认单据后再取备用字段
  4286. {
  4287. string OriginalLot = LotNo.Split('-')[0];
  4288. lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  4289. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  4290. WHERE A.LotNo='" + OriginalLot + "' AND A.WorkPoint='" + WorkPoint + "'";
  4291. dt = SqlHelper.GetDataTableBySql(lotsql);
  4292. if (dt.Rows.Count == 0)
  4293. {
  4294. return Repository().FindTableBySql(sql.ToString());
  4295. }
  4296. else
  4297. {
  4298. LotNo = OriginalLot;
  4299. }
  4300. }
  4301. if (dt.Rows[0]["Type"].ToString() == "0" || dt.Rows[0]["Type"].ToString() == "2"
  4302. || dt.Rows[0]["Type"].ToString() == "12" || dt.Rows[0]["Type"].ToString() == "24")//期初条码 成品条码 生产退料条码 销售退货条码 取条码备用字段
  4303. {
  4304. sql = @"SELECT B.BatchCode AS BatchCode,A.ProductDate AS ProductDate,A.EATTRIBUTE3 as EATTRIBUTE3,A.EATTRIBUTE5 AS EATTRIBUTE5
  4305. ,A.EATTRIBUTE6 AS EATTRIBUTE6,A.EATTRIBUTE8 AS EATTRIBUTE8
  4306. from ICSInventoryLot A
  4307. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  4308. where A.LotNo = '" + LotNo + "' and A.WorkPoint = '" + WorkPoint + "'";
  4309. }
  4310. else if (dt.Rows[0]["Type"].ToString() == "22")//采购入库(标准收货单)条码 取单据备用字段
  4311. {
  4312. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  4313. LEFT JOIN ICSPurchaseReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4314. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4315. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4316. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4317. }
  4318. else if (dt.Rows[0]["Type"].ToString() == "23")//委外入库(委外收货单)条码 取单据备用字段
  4319. {
  4320. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  4321. LEFT JOIN ICSOutsourcingReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4322. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4323. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4324. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4325. }
  4326. else if (dt.Rows[0]["Type"].ToString() == "3")//成品入库(完工申报单)条码 取单据备用字段
  4327. {
  4328. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  4329. LEFT JOIN ICSMO B ON B.MOCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4330. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4331. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4332. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4333. }
  4334. else if (dt.Rows[0]["Type"].ToString() == "5")//杂收条码 取单据备用字段
  4335. {
  4336. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  4337. LEFT JOIN ICSOtherIn B ON B.InCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  4338. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  4339. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  4340. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  4341. }
  4342. }
  4343. return Repository().FindTableBySql(sql.ToString());
  4344. }
  4345. catch (Exception ex)
  4346. {
  4347. throw new Exception(ex.Message);
  4348. }
  4349. }
  4350. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4351. {
  4352. DataTable dt = new DataTable();
  4353. object Figure = GetDecimalDigits();
  4354. List<DbParameter> parameter = new List<DbParameter>();
  4355. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn018', " + Quantity + ",1,2,'')";
  4356. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4357. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  4358. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4359. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  4360. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4361. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4362. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  4363. ,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,
  4364. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4365. from ICSMOApplyNegDetail a
  4366. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4367. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4368. left join (
  4369. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4370. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12'
  4371. where isnull(a.EATTRIBUTE1,'')=''
  4372. group by b.TransCode,b.TransSequence
  4373. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4374. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4375. WHERE d.Type='2' and d.Status='2'
  4376. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4377. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4378. sql = string.Format(sql, Figure);
  4379. return Repository().FindTableBySql(sql.ToString());
  4380. }
  4381. //领料申请退料生成条码
  4382. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4383. {
  4384. var queryParam = keyValue.ToJObject();
  4385. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4386. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4387. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4388. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4389. decimal LOTQTY = minPackQty;
  4390. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4391. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  4392. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4393. string sql = string.Empty;
  4394. //string VendorLot = queryParam["VendorLot"].ToString();
  4395. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4396. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4397. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4398. string sqls = string.Empty;
  4399. string Colspan = "";
  4400. string str1 = "";
  4401. List<string> ExtensionIDList = new List<string>();
  4402. #region 装箱的功能
  4403. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4404. string VenCode = queryParam["VenCode"].ToString();
  4405. int PackCount = 0;//每箱放的数量
  4406. int Pack_YuShu = 0;//需要平摊的数量
  4407. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4408. List<PackModel> List_Pack = new List<PackModel>();
  4409. int ZQty = 0;
  4410. if (createPackCount > 0)
  4411. {
  4412. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4413. if (Pack_YuShu == 0)
  4414. {
  4415. PackCount = (createPageCount / createPackCount);
  4416. }
  4417. else
  4418. {
  4419. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4420. }
  4421. for (int jj = 0; jj < createPackCount; jj++)
  4422. {
  4423. object CARID = Guid.NewGuid();
  4424. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4425. sql += @" INSERT INTO dbo.ICSContainer
  4426. ( ID,ContainerCode ,
  4427. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4428. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4429. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4430. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4431. PackModel PP = new PackModel();
  4432. PP.ID = CARID.ToString();
  4433. PP.PackCode = Carton;
  4434. if (jj < Pack_YuShu)
  4435. {
  4436. PP.FristBarIndex = ZQty;
  4437. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4438. }
  4439. else
  4440. {
  4441. PP.FristBarIndex = ZQty;
  4442. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4443. }
  4444. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4445. List_Pack.Add(PP);
  4446. }
  4447. }
  4448. #endregion
  4449. for (int i = 0; i < createPageCount; i++)
  4450. {
  4451. if (i + 1 == createPageCount)
  4452. {
  4453. if (minPackQty * createPageCount > thisCreateQty)
  4454. {
  4455. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4456. }
  4457. }
  4458. 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();
  4459. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4460. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4461. bool flag = true;
  4462. foreach (var item in ExtensionIDList)
  4463. {
  4464. if (item == Colspan + WorkPoint)
  4465. {
  4466. flag = false;
  4467. }
  4468. }
  4469. if (ExtensionID == null && flag == true)
  4470. {
  4471. str1 = Guid.NewGuid().ToString();
  4472. 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)
  4473. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4474. 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(),
  4475. MUSER, MUSERNAME, WorkPoints);
  4476. }
  4477. else if (ExtensionID != null)
  4478. {
  4479. str1 = ExtensionID.ToString();
  4480. }
  4481. ExtensionIDList.Add(Colspan + WorkPoint);
  4482. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4483. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4484. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4485. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4486. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4487. //{
  4488. sql += string.Format(@"insert into ICSInventoryLot
  4489. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4490. select
  4491. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4492. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4493. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4494. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4495. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4496. sql += "\r\n";
  4497. //装箱的功能
  4498. if (List_Pack.Count > 0)
  4499. {
  4500. PackModel mm = new PackModel();
  4501. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4502. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4503. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4504. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4505. }
  4506. //}
  4507. }
  4508. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4509. return count;
  4510. }
  4511. public int SubmitFormLLSQTLNew(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4512. {
  4513. var queryParam = keyValue.ToJObject();
  4514. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4515. decimal minPackQty = 1;
  4516. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4517. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  4518. List<decimal> lotQtys = new List<decimal>();
  4519. foreach (var jLotno in jLotnos)
  4520. {
  4521. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  4522. lotQtys.Add(qty);
  4523. }
  4524. int createPageCount = lotQtys.Count();
  4525. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4526. string sql = string.Empty;
  4527. //string VendorLot = queryParam["VendorLot"].ToString();
  4528. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4529. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4530. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4531. string sqls = string.Empty;
  4532. string Colspan = "";
  4533. string str1 = "";
  4534. List<string> ExtensionIDList = new List<string>();
  4535. #region 装箱的功能
  4536. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4537. string VenCode = queryParam["VenCode"].ToString();
  4538. int PackCount = 0;//每箱放的数量
  4539. int Pack_YuShu = 0;//需要平摊的数量
  4540. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4541. List<PackModel> List_Pack = new List<PackModel>();
  4542. int ZQty = 0;
  4543. if (createPackCount > 0)
  4544. {
  4545. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4546. if (Pack_YuShu == 0)
  4547. {
  4548. PackCount = (createPageCount / createPackCount);
  4549. }
  4550. else
  4551. {
  4552. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4553. }
  4554. for (int jj = 0; jj < createPackCount; jj++)
  4555. {
  4556. object CARID = Guid.NewGuid();
  4557. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4558. sql += @" INSERT INTO dbo.ICSContainer
  4559. ( ID,ContainerCode ,
  4560. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4561. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4562. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4563. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4564. PackModel PP = new PackModel();
  4565. PP.ID = CARID.ToString();
  4566. PP.PackCode = Carton;
  4567. if (jj < Pack_YuShu)
  4568. {
  4569. PP.FristBarIndex = ZQty;
  4570. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4571. }
  4572. else
  4573. {
  4574. PP.FristBarIndex = ZQty;
  4575. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4576. }
  4577. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4578. List_Pack.Add(PP);
  4579. }
  4580. }
  4581. #endregion
  4582. for (int i = 0; i < lotQtys.Count(); i++)
  4583. {
  4584. decimal LOTQTY = lotQtys[i];
  4585. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  4586. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4587. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4588. bool flag = true;
  4589. foreach (var item in ExtensionIDList)
  4590. {
  4591. if (item == Colspan + WorkPoint)
  4592. {
  4593. flag = false;
  4594. }
  4595. }
  4596. if (ExtensionID == null && flag == true)
  4597. {
  4598. str1 = Guid.NewGuid().ToString();
  4599. sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
  4600. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4601. str1, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
  4602. MUSER, MUSERNAME, WorkPoints);
  4603. }
  4604. else if (ExtensionID != null)
  4605. {
  4606. str1 = ExtensionID.ToString();
  4607. }
  4608. ExtensionIDList.Add(Colspan + WorkPoint);
  4609. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4610. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4611. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4612. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4613. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4614. //{
  4615. sql += string.Format(@"insert into ICSInventoryLot
  4616. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4617. select
  4618. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4619. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4620. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  4621. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4622. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4623. sql += "\r\n";
  4624. //装箱的功能
  4625. if (List_Pack.Count > 0)
  4626. {
  4627. PackModel mm = new PackModel();
  4628. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4629. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4630. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4631. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4632. }
  4633. //}
  4634. }
  4635. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4636. return count;
  4637. }
  4638. //材料出库退料
  4639. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  4640. {
  4641. DataTable dt = new DataTable();
  4642. var queryParam = queryJson.ToJObject();
  4643. List<DbParameter> parameter = new List<DbParameter>();
  4644. object Figure = GetDecimalDigits();
  4645. #region [SQL]
  4646. string sql = @"
  4647. select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4648. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity , case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  4649. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,
  4650. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4651. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4652. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4653. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  4654. from ICSMOApplyNegDetail a
  4655. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4656. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4657. left join (
  4658. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4659. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  4660. where isnull(ee.EATTRIBUTE1,'')=''
  4661. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4662. )c
  4663. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4664. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4665. left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint
  4666. WHERE d.Type='3' and d.Status='2' ";
  4667. sql = string.Format(sql, Figure);
  4668. #endregion
  4669. if (!string.IsNullOrWhiteSpace(queryJson))
  4670. {
  4671. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4672. {
  4673. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4674. }
  4675. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4676. {
  4677. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4678. }
  4679. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4680. {
  4681. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4682. }
  4683. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4684. {
  4685. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4686. }
  4687. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  4688. {
  4689. sql += " and g.IssueCode like '%" + queryParam["SCode"].ToString() + "%' ";
  4690. }
  4691. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4692. {
  4693. string POStatus = queryParam["POStatus"].ToString();
  4694. if (POStatus == "0")
  4695. {
  4696. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4697. }
  4698. else if (POStatus == "1")
  4699. {
  4700. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4701. }
  4702. else
  4703. {
  4704. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4705. }
  4706. }
  4707. }
  4708. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4709. {
  4710. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4711. }
  4712. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4713. {
  4714. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4715. }
  4716. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4717. }
  4718. //材料出库退料
  4719. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4720. {
  4721. DataTable dt = new DataTable();
  4722. object Figure = GetDecimalDigits();
  4723. List<DbParameter> parameter = new List<DbParameter>();
  4724. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn019', " + Quantity + ",1,2,'')";
  4725. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4726. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4727. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4728. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4729. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  4730. ,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,
  4731. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4732. from ICSMOApplyNegDetail a
  4733. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4734. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4735. left join (
  4736. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4737. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13'
  4738. where isnull(a.EATTRIBUTE1,'')=''
  4739. group by b.TransCode,b.TransSequence
  4740. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4741. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4742. WHERE d.Type='3' and d.Status='2'
  4743. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4744. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4745. sql = string.Format(sql, Figure);
  4746. return Repository().FindTableBySql(sql.ToString());
  4747. }
  4748. //材料出库退料生成条码
  4749. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4750. {
  4751. var queryParam = keyValue.ToJObject();
  4752. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4753. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4754. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4755. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4756. decimal LOTQTY = minPackQty;
  4757. string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4758. string sql = string.Empty;
  4759. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4760. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4761. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4762. string sqls = string.Empty;
  4763. string Colspan = "";
  4764. string str1 = "";
  4765. List<string> ExtensionIDList = new List<string>();
  4766. //增加判断逻辑 未审核的单据不允许生成条码 25.3.26
  4767. string checkSql = $"SELECT * from ICSMOApplyNeg WHERE Type=3 and ApplyNegCode='{ApplyNegCode}' AND Status='2'";
  4768. var checkdt = SqlHelper.CmdExecuteDataTable(checkSql);
  4769. if (checkdt.Rows.Count <= 0)
  4770. {
  4771. return 0;
  4772. }
  4773. #region 装箱的功能
  4774. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4775. string VenCode = queryParam["VenCode"].ToString();
  4776. int PackCount = 0;//每箱放的数量
  4777. int Pack_YuShu = 0;//需要平摊的数量
  4778. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4779. List<PackModel> List_Pack = new List<PackModel>();
  4780. int ZQty = 0;
  4781. if (createPackCount > 0)
  4782. {
  4783. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4784. if (Pack_YuShu == 0)
  4785. {
  4786. PackCount = (createPageCount / createPackCount);
  4787. }
  4788. else
  4789. {
  4790. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4791. }
  4792. for (int jj = 0; jj < createPackCount; jj++)
  4793. {
  4794. object CARID = Guid.NewGuid();
  4795. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4796. sql += @" INSERT INTO dbo.ICSContainer
  4797. ( ID,ContainerCode ,
  4798. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4799. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4800. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4801. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4802. PackModel PP = new PackModel();
  4803. PP.ID = CARID.ToString();
  4804. PP.PackCode = Carton;
  4805. if (jj < Pack_YuShu)
  4806. {
  4807. PP.FristBarIndex = ZQty;
  4808. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4809. }
  4810. else
  4811. {
  4812. PP.FristBarIndex = ZQty;
  4813. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4814. }
  4815. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4816. List_Pack.Add(PP);
  4817. }
  4818. }
  4819. #endregion
  4820. for (int i = 0; i < createPageCount; i++)
  4821. {
  4822. if (i + 1 == createPageCount)
  4823. {
  4824. if (minPackQty * createPageCount > thisCreateQty)
  4825. {
  4826. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4827. }
  4828. }
  4829. 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();
  4830. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4831. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4832. bool flag = true;
  4833. foreach (var item in ExtensionIDList)
  4834. {
  4835. if (item == Colspan + WorkPoint)
  4836. {
  4837. flag = false;
  4838. }
  4839. }
  4840. if (ExtensionID == null && flag == true)
  4841. {
  4842. str1 = Guid.NewGuid().ToString();
  4843. 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)
  4844. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4845. 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(),
  4846. MUSER, MUSERNAME, WorkPoints);
  4847. }
  4848. else if (ExtensionID != null)
  4849. {
  4850. str1 = ExtensionID.ToString();
  4851. }
  4852. ExtensionIDList.Add(Colspan + WorkPoint);
  4853. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4854. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4855. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4856. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4857. sql += string.Format(@"insert into ICSInventoryLot
  4858. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4859. select
  4860. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4861. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4862. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4863. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4864. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4865. sql += "\r\n";
  4866. //装箱的功能
  4867. if (List_Pack.Count > 0)
  4868. {
  4869. PackModel mm = new PackModel();
  4870. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4871. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4872. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4873. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4874. }
  4875. }
  4876. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4877. return count;
  4878. }
  4879. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  4880. {
  4881. DataTable dt = new DataTable();
  4882. var queryParam = queryJson.ToJObject();
  4883. List<DbParameter> parameter = new List<DbParameter>();
  4884. object Figure = GetDecimalDigits();
  4885. #region [SQL]
  4886. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4887. 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 ,
  4888. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4889. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4890. ,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,
  4891. a.EATTRIBUTE9,a.EATTRIBUTE10
  4892. from ICSOApplyNegDetail a
  4893. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4894. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4895. left join (
  4896. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4897. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  4898. where isnull(ee.EATTRIBUTE1,'')=''
  4899. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4900. )c
  4901. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4902. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4903. WHERE d.Type='2'";
  4904. sql = string.Format(sql, Figure);
  4905. #endregion
  4906. if (!string.IsNullOrWhiteSpace(queryJson))
  4907. {
  4908. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4909. {
  4910. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4911. }
  4912. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4913. {
  4914. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4915. }
  4916. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4917. {
  4918. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4919. }
  4920. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4921. {
  4922. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4923. }
  4924. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4925. {
  4926. string POStatus = queryParam["POStatus"].ToString();
  4927. if (POStatus == "0")
  4928. {
  4929. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4930. }
  4931. else if (POStatus == "1")
  4932. {
  4933. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4934. }
  4935. else
  4936. {
  4937. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4938. }
  4939. }
  4940. }
  4941. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4942. {
  4943. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4944. }
  4945. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4946. {
  4947. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4948. }
  4949. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4950. }
  4951. /// <summary>
  4952. /// 点击委外领料退料生成条码
  4953. /// </summary>
  4954. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4955. {
  4956. DataTable dt = new DataTable();
  4957. object Figure = GetDecimalDigits();
  4958. List<DbParameter> parameter = new List<DbParameter>();
  4959. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn009', " + Quantity + ",1,1,'')";
  4960. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4961. string sql = @"
  4962. 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,
  4963. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4964. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4965. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  4966. ,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,
  4967. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4968. from ICSOApplyNegDetail a
  4969. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4970. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4971. left join (
  4972. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4973. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14'
  4974. where isnull(a.EATTRIBUTE1,'')=''
  4975. group by b.TransCode,b.TransSequence
  4976. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4977. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4978. WHERE d.Type='2'
  4979. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4980. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4981. sql = string.Format(sql, Figure);
  4982. return Repository().FindTableBySql(sql.ToString());
  4983. }
  4984. //委外领料申请退料
  4985. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4986. {
  4987. var queryParam = keyValue.ToJObject();
  4988. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4989. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4990. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4991. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4992. decimal LOTQTY = minPackQty;
  4993. string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4994. string sql = string.Empty;
  4995. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4996. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4997. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4998. string sqls = string.Empty;
  4999. string Colspan = "";
  5000. string str1 = "";
  5001. List<string> ExtensionIDList = new List<string>();
  5002. #region 装箱的功能
  5003. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5004. string VenCode = queryParam["VenCode"].ToString();
  5005. int PackCount = 0;//每箱放的数量
  5006. int Pack_YuShu = 0;//需要平摊的数量
  5007. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5008. List<PackModel> List_Pack = new List<PackModel>();
  5009. int ZQty = 0;
  5010. if (createPackCount > 0)
  5011. {
  5012. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5013. if (Pack_YuShu == 0)
  5014. {
  5015. PackCount = (createPageCount / createPackCount);
  5016. }
  5017. else
  5018. {
  5019. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5020. }
  5021. for (int jj = 0; jj < createPackCount; jj++)
  5022. {
  5023. object CARID = Guid.NewGuid();
  5024. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5025. sql += @" INSERT INTO dbo.ICSContainer
  5026. ( ID,ContainerCode ,
  5027. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5028. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5029. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5030. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5031. PackModel PP = new PackModel();
  5032. PP.ID = CARID.ToString();
  5033. PP.PackCode = Carton;
  5034. if (jj < Pack_YuShu)
  5035. {
  5036. PP.FristBarIndex = ZQty;
  5037. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5038. }
  5039. else
  5040. {
  5041. PP.FristBarIndex = ZQty;
  5042. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5043. }
  5044. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5045. List_Pack.Add(PP);
  5046. }
  5047. }
  5048. #endregion
  5049. for (int i = 0; i < createPageCount; i++)
  5050. {
  5051. if (i + 1 == createPageCount)
  5052. {
  5053. if (minPackQty * createPageCount > thisCreateQty)
  5054. {
  5055. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5056. }
  5057. }
  5058. 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();
  5059. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5060. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5061. bool flag = true;
  5062. foreach (var item in ExtensionIDList)
  5063. {
  5064. if (item == Colspan + WorkPoint)
  5065. {
  5066. flag = false;
  5067. }
  5068. }
  5069. if (ExtensionID == null && flag == true)
  5070. {
  5071. str1 = Guid.NewGuid().ToString();
  5072. 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)
  5073. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5074. 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(),
  5075. MUSER, MUSERNAME, WorkPoints);
  5076. }
  5077. else if (ExtensionID != null)
  5078. {
  5079. str1 = ExtensionID.ToString();
  5080. }
  5081. ExtensionIDList.Add(Colspan + WorkPoint);
  5082. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5083. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5084. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  5085. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5086. sql += string.Format(@"insert into ICSInventoryLot
  5087. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5088. select
  5089. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5090. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  5091. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5092. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5093. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5094. sql += "\r\n";
  5095. //装箱的功能
  5096. if (List_Pack.Count > 0)
  5097. {
  5098. PackModel mm = new PackModel();
  5099. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5100. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5101. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5102. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5103. }
  5104. }
  5105. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5106. return count;
  5107. }
  5108. //委外材料出库
  5109. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  5110. {
  5111. DataTable dt = new DataTable();
  5112. var queryParam = queryJson.ToJObject();
  5113. List<DbParameter> parameter = new List<DbParameter>();
  5114. object Figure = GetDecimalDigits();
  5115. #region [SQL]
  5116. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  5117. 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 ,
  5118. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  5119. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5120. ,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,
  5121. a.EATTRIBUTE9,a.EATTRIBUTE10
  5122. from ICSOApplyNegDetail a
  5123. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5124. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5125. left join (
  5126. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5127. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  5128. where isnull(ee.EATTRIBUTE1,'')=''
  5129. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5130. )c
  5131. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5132. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5133. WHERE d.Type='3'";
  5134. sql = string.Format(sql, Figure);
  5135. #endregion
  5136. if (!string.IsNullOrWhiteSpace(queryJson))
  5137. {
  5138. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  5139. {
  5140. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  5141. }
  5142. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  5143. {
  5144. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  5145. }
  5146. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  5147. {
  5148. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  5149. }
  5150. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  5151. {
  5152. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  5153. }
  5154. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  5155. {
  5156. string POStatus = queryParam["POStatus"].ToString();
  5157. if (POStatus == "0")
  5158. {
  5159. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  5160. }
  5161. else if (POStatus == "1")
  5162. {
  5163. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  5164. }
  5165. else
  5166. {
  5167. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  5168. }
  5169. }
  5170. }
  5171. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  5172. {
  5173. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  5174. }
  5175. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  5176. {
  5177. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  5178. }
  5179. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5180. }
  5181. //委外材料出库
  5182. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5183. {
  5184. DataTable dt = new DataTable();
  5185. object Figure = GetDecimalDigits();
  5186. List<DbParameter> parameter = new List<DbParameter>();
  5187. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn010', " + Quantity + ",1,1,'')";
  5188. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5189. string sql = @"
  5190. 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,
  5191. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  5192. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  5193. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  5194. ,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,
  5195. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5196. from ICSOApplyNegDetail a
  5197. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5198. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5199. left join (
  5200. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5201. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15'
  5202. where isnull(a.EATTRIBUTE1,'')=''
  5203. group by b.TransCode,b.TransSequence
  5204. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  5205. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5206. WHERE d.Type='3'
  5207. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  5208. sql += " and a.WorkPoint='" + WorkPoint + "'";
  5209. sql = string.Format(sql, Figure);
  5210. return Repository().FindTableBySql(sql.ToString());
  5211. }
  5212. //委外材料出库
  5213. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  5214. {
  5215. var queryParam = keyValue.ToJObject();
  5216. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5217. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5218. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5219. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5220. decimal LOTQTY = minPackQty;
  5221. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  5222. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  5223. string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5224. string sql = string.Empty;
  5225. //string VendorLot = queryParam["VendorLot"].ToString();
  5226. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5227. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5228. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5229. string sqls = string.Empty;
  5230. string Colspan = "";
  5231. string str1 = "";
  5232. List<string> ExtensionIDList = new List<string>();
  5233. #region 装箱的功能
  5234. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5235. string VenCode = queryParam["VenCode"].ToString();
  5236. int PackCount = 0;//每箱放的数量
  5237. int Pack_YuShu = 0;//需要平摊的数量
  5238. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5239. List<PackModel> List_Pack = new List<PackModel>();
  5240. int ZQty = 0;
  5241. if (createPackCount > 0)
  5242. {
  5243. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5244. if (Pack_YuShu == 0)
  5245. {
  5246. PackCount = (createPageCount / createPackCount);
  5247. }
  5248. else
  5249. {
  5250. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5251. }
  5252. for (int jj = 0; jj < createPackCount; jj++)
  5253. {
  5254. object CARID = Guid.NewGuid();
  5255. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5256. sql += @" INSERT INTO dbo.ICSContainer
  5257. ( ID,ContainerCode ,
  5258. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5259. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5260. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5261. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5262. PackModel PP = new PackModel();
  5263. PP.ID = CARID.ToString();
  5264. PP.PackCode = Carton;
  5265. if (jj < Pack_YuShu)
  5266. {
  5267. PP.FristBarIndex = ZQty;
  5268. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5269. }
  5270. else
  5271. {
  5272. PP.FristBarIndex = ZQty;
  5273. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5274. }
  5275. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5276. List_Pack.Add(PP);
  5277. }
  5278. }
  5279. #endregion
  5280. for (int i = 0; i < createPageCount; i++)
  5281. {
  5282. if (i + 1 == createPageCount)
  5283. {
  5284. if (minPackQty * createPageCount > thisCreateQty)
  5285. {
  5286. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5287. }
  5288. }
  5289. 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();
  5290. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5291. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5292. bool flag = true;
  5293. foreach (var item in ExtensionIDList)
  5294. {
  5295. if (item == Colspan + WorkPoint)
  5296. {
  5297. flag = false;
  5298. }
  5299. }
  5300. if (ExtensionID == null && flag == true)
  5301. {
  5302. str1 = Guid.NewGuid().ToString();
  5303. 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)
  5304. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5305. 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(),
  5306. MUSER, MUSERNAME, WorkPoints);
  5307. }
  5308. else if (ExtensionID != null)
  5309. {
  5310. str1 = ExtensionID.ToString();
  5311. }
  5312. ExtensionIDList.Add(Colspan + WorkPoint);
  5313. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5314. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5315. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  5316. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5317. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  5318. //{
  5319. sql += string.Format(@"insert into ICSInventoryLot
  5320. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5321. select
  5322. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  5323. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5324. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  5325. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5326. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5327. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5328. sql += "\r\n";
  5329. //装箱的功能
  5330. if (List_Pack.Count > 0)
  5331. {
  5332. PackModel mm = new PackModel();
  5333. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5334. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5335. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5336. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5337. }
  5338. //}
  5339. }
  5340. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5341. return count;
  5342. }
  5343. public DataTable SelectICSExtensionEnable()
  5344. {
  5345. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5346. string sql = @"select ColCode from ICSExtensionEnable
  5347. where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
  5348. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5349. return dt;
  5350. }
  5351. public DataTable GetComplete()
  5352. {
  5353. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5354. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
  5355. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5356. return dt;
  5357. }
  5358. public DataTable GetWWComplete()
  5359. {
  5360. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5361. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004' and WorkPoint='" + WorkPoints + "'";
  5362. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5363. return dt;
  5364. }
  5365. //返工工单
  5366. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  5367. {
  5368. DataTable dt = new DataTable();
  5369. var queryParam = queryJson.ToJObject();
  5370. List<DbParameter> parameter = new List<DbParameter>();
  5371. object Figure = GetDecimalDigits();
  5372. #region [SQL]
  5373. 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,
  5374. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  5375. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  5376. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  5377. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5378. ,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,
  5379. a.EATTRIBUTE9,a.EATTRIBUTE10
  5380. from ICSMOPick a
  5381. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5382. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5383. left join (
  5384. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5385. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  5386. where isnull(ee.EATTRIBUTE1,'')=''
  5387. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5388. )c
  5389. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5390. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5391. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  5392. sql = string.Format(sql, Figure);
  5393. #endregion
  5394. if (!string.IsNullOrWhiteSpace(queryJson))
  5395. {
  5396. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  5397. {
  5398. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  5399. }
  5400. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  5401. {
  5402. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  5403. }
  5404. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  5405. {
  5406. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  5407. }
  5408. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  5409. {
  5410. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  5411. }
  5412. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  5413. {
  5414. string POStatus = queryParam["POStatus"].ToString();
  5415. if (POStatus == "0")
  5416. {
  5417. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  5418. }
  5419. else if (POStatus == "1")
  5420. {
  5421. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  5422. }
  5423. else
  5424. {
  5425. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  5426. }
  5427. }
  5428. }
  5429. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  5430. {
  5431. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  5432. }
  5433. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  5434. {
  5435. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  5436. }
  5437. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5438. }
  5439. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5440. {
  5441. DataTable dt = new DataTable();
  5442. object Figure = GetDecimalDigits();
  5443. List<DbParameter> parameter = new List<DbParameter>();
  5444. // string sql = @"
  5445. //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,
  5446. //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
  5447. //,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
  5448. // from ICSMOPick a
  5449. // left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5450. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5451. // left join (
  5452. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5453. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5454. //where isnull(a.EATTRIBUTE1,'')=''
  5455. // group by b.TransCode,b.TransSequence
  5456. // ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5457. // left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5458. // WHERE 1=1
  5459. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn015', " + Quantity + ",1,2,'')";
  5460. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5461. string sql = @"
  5462. 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,
  5463. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  5464. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  5465. CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  5466. ,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,
  5467. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5468. from ICSMOPick a
  5469. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5470. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5471. left join (
  5472. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5473. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5474. where isnull(a.EATTRIBUTE1,'')=''
  5475. group by b.TransCode,b.TransSequence
  5476. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5477. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5478. WHERE 1=1
  5479. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  5480. sql += " and a.WorkPoint='" + WorkPoint + "'";
  5481. sql = string.Format(sql, Figure);
  5482. return Repository().FindTableBySql(sql.ToString());
  5483. }
  5484. //返工工单
  5485. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  5486. {
  5487. var queryParam = keyValue.ToJObject();
  5488. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5489. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5490. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5491. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5492. decimal LOTQTY = minPackQty;
  5493. Sequence = Sequence.Replace("~", "");
  5494. string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5495. string sql = string.Empty;
  5496. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5497. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5498. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5499. string sqls = string.Empty;
  5500. string Colspan = "";
  5501. string str1 = "";
  5502. List<string> ExtensionIDList = new List<string>();
  5503. #region 装箱的功能
  5504. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5505. string VenCode = queryParam["VenCode"].ToString();
  5506. int PackCount = 0;//每箱放的数量
  5507. int Pack_YuShu = 0;//需要平摊的数量
  5508. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5509. List<PackModel> List_Pack = new List<PackModel>();
  5510. int ZQty = 0;
  5511. if (createPackCount > 0)
  5512. {
  5513. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5514. if (Pack_YuShu == 0)
  5515. {
  5516. PackCount = (createPageCount / createPackCount);
  5517. }
  5518. else
  5519. {
  5520. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5521. }
  5522. for (int jj = 0; jj < createPackCount; jj++)
  5523. {
  5524. object CARID = Guid.NewGuid();
  5525. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5526. sql += @" INSERT INTO dbo.ICSContainer
  5527. ( ID,ContainerCode ,
  5528. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5529. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5530. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5531. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5532. PackModel PP = new PackModel();
  5533. PP.ID = CARID.ToString();
  5534. PP.PackCode = Carton;
  5535. if (jj < Pack_YuShu)
  5536. {
  5537. PP.FristBarIndex = ZQty;
  5538. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5539. }
  5540. else
  5541. {
  5542. PP.FristBarIndex = ZQty;
  5543. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5544. }
  5545. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5546. List_Pack.Add(PP);
  5547. }
  5548. }
  5549. #endregion
  5550. for (int i = 0; i < createPageCount; i++)
  5551. {
  5552. if (i + 1 == createPageCount)
  5553. {
  5554. if (minPackQty * createPageCount > thisCreateQty)
  5555. {
  5556. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5557. }
  5558. }
  5559. 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();
  5560. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5561. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5562. bool flag = true;
  5563. foreach (var item in ExtensionIDList)
  5564. {
  5565. if (item == Colspan + WorkPoint)
  5566. {
  5567. flag = false;
  5568. }
  5569. }
  5570. if (ExtensionID == null && flag == true)
  5571. {
  5572. str1 = Guid.NewGuid().ToString();
  5573. 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)
  5574. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5575. 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(),
  5576. MUSER, MUSERNAME, WorkPoints);
  5577. }
  5578. else if (ExtensionID != null)
  5579. {
  5580. str1 = ExtensionID.ToString();
  5581. }
  5582. ExtensionIDList.Add(Colspan + WorkPoint);
  5583. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5584. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5585. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5586. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5587. sql += string.Format(@"insert into ICSInventoryLot
  5588. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5589. select
  5590. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5591. 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}' ",
  5592. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5593. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5594. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5595. sql += "\r\n";
  5596. //装箱的功能
  5597. if (List_Pack.Count > 0)
  5598. {
  5599. PackModel mm = new PackModel();
  5600. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5601. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5602. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5603. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5604. }
  5605. }
  5606. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5607. return count;
  5608. }
  5609. /// <summary>
  5610. /// 锐腾获取单据信息
  5611. /// </summary>
  5612. /// <param name="FGGDMOCode"></param>
  5613. /// <param name="Sequence"></param>
  5614. /// <param name="WorkPoint"></param>
  5615. /// <returns></returns>
  5616. public DataTable GetSubGridJsonTransferByCreate(string TransferNO, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5617. {
  5618. try
  5619. {
  5620. DataTable dt = new DataTable();
  5621. object Figure = GetDecimalDigits();
  5622. List<DbParameter> parameter = new List<DbParameter>();
  5623. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn025', " + Quantity + ",1,2,'')";
  5624. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5625. string sql = $@"SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit, CAST ( " + Num + @" AS DECIMAL ( 38,{0} )) AS Amount, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,{0} ) ) AS CreatedQty, CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,{0} ) ) AS thisCreateQty, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,{0} ) ) 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 ,
  5626. case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  5627. ,
  5628. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5629. FROM
  5630. ICSTransfer a
  5631. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  5632. LEFT JOIN (
  5633. SELECT
  5634. b.TransCode,
  5635. b.TransSequence,
  5636. SUM ( isnull( Quantity, 0 ) ) LOTQTY
  5637. FROM
  5638. ICSInventoryLot a
  5639. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo
  5640. AND a.Type= '19'
  5641. WHERE
  5642. isnull( a.EATTRIBUTE1, '' ) = ''
  5643. GROUP BY
  5644. b.TransCode,
  5645. b.TransSequence
  5646. ) c ON a.TransferNO= c.TransCode
  5647. AND a.Sequence= c.TransSequence
  5648. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID
  5649. AND a.WorkPoint= e.WorkPoint
  5650. WHERE
  5651. 1 = 1
  5652. and a.TransferNO='{1}' and a.Sequence='{2}'
  5653. and a.WorkPoint='{3}'";
  5654. sql = string.Format(sql, Figure, TransferNO, Sequence, WorkPoint);
  5655. return Repository().FindTableBySql(sql.ToString());
  5656. }
  5657. catch (Exception ex)
  5658. {
  5659. throw new Exception(ex.Message.ToString());
  5660. }
  5661. }
  5662. /// <summary>
  5663. /// 锐腾两步调入单生成条码
  5664. /// </summary>
  5665. /// <param name="TransferNO"></param>
  5666. /// <param name="Sequence"></param>
  5667. /// <param name="keyValue"></param>
  5668. /// <param name="WorkPoint"></param>
  5669. /// <returns></returns>
  5670. public int SubmitFormTransfer(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  5671. {
  5672. var queryParam = keyValue.ToJObject();
  5673. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5674. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5675. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5676. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5677. decimal LOTQTY = minPackQty;
  5678. Sequence = Sequence.Replace("~", "");
  5679. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  5680. string sql = string.Empty;
  5681. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5682. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5683. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5684. string sqls = string.Empty;
  5685. string Colspan = "";
  5686. string str1 = "";
  5687. List<string> ExtensionIDList = new List<string>();
  5688. #region 装箱的功能
  5689. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5690. string VenCode = queryParam["VenCode"].ToString();
  5691. int PackCount = 0;//每箱放的数量
  5692. int Pack_YuShu = 0;//需要平摊的数量
  5693. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5694. List<PackModel> List_Pack = new List<PackModel>();
  5695. int ZQty = 0;
  5696. if (createPackCount > 0)
  5697. {
  5698. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5699. if (Pack_YuShu == 0)
  5700. {
  5701. PackCount = (createPageCount / createPackCount);
  5702. }
  5703. else
  5704. {
  5705. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5706. }
  5707. for (int jj = 0; jj < createPackCount; jj++)
  5708. {
  5709. object CARID = Guid.NewGuid();
  5710. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5711. sql += @" INSERT INTO dbo.ICSContainer
  5712. ( ID,ContainerCode ,
  5713. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5714. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5715. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5716. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5717. PackModel PP = new PackModel();
  5718. PP.ID = CARID.ToString();
  5719. PP.PackCode = Carton;
  5720. if (jj < Pack_YuShu)
  5721. {
  5722. PP.FristBarIndex = ZQty;
  5723. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5724. }
  5725. else
  5726. {
  5727. PP.FristBarIndex = ZQty;
  5728. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5729. }
  5730. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5731. List_Pack.Add(PP);
  5732. }
  5733. }
  5734. #endregion
  5735. for (int i = 0; i < createPageCount; i++)
  5736. {
  5737. if (i + 1 == createPageCount)
  5738. {
  5739. if (minPackQty * createPageCount > thisCreateQty)
  5740. {
  5741. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5742. }
  5743. }
  5744. 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();
  5745. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5746. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5747. bool flag = true;
  5748. foreach (var item in ExtensionIDList)
  5749. {
  5750. if (item == Colspan + WorkPoint)
  5751. {
  5752. flag = false;
  5753. }
  5754. }
  5755. if (ExtensionID == null && flag == true)
  5756. {
  5757. str1 = Guid.NewGuid().ToString();
  5758. 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)
  5759. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5760. 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(),
  5761. MUSER, MUSERNAME, WorkPoints);
  5762. }
  5763. else if (ExtensionID != null)
  5764. {
  5765. str1 = ExtensionID.ToString();
  5766. }
  5767. ExtensionIDList.Add(Colspan + WorkPoint);
  5768. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5769. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5770. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5771. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5772. sql += string.Format(@"insert into ICSInventoryLot
  5773. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5774. select
  5775. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','20','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5776. from ICSTransfer a where a.TransferNO='{6}' and a.Sequence='{7}' and a.WorkPoint='{5}' ",
  5777. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5778. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5779. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5780. sql += "\r\n";
  5781. //装箱的功能
  5782. if (List_Pack.Count > 0)
  5783. {
  5784. PackModel mm = new PackModel();
  5785. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5786. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5787. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5788. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5789. }
  5790. }
  5791. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5792. return count;
  5793. }
  5794. public object GetDecimalDigits()
  5795. {
  5796. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5797. try
  5798. {
  5799. string sql = string.Empty;
  5800. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
  5801. object Figure = SqlHelper.ExecuteScalar(sql);
  5802. return Figure;
  5803. }
  5804. catch (Exception ex)
  5805. {
  5806. throw new Exception(ex.Message.ToString());
  5807. }
  5808. }
  5809. /// <summary>
  5810. /// 生成条码导出
  5811. /// </summary>
  5812. /// <param name="ProductBrand"></param>
  5813. /// <param name="cCusName"></param>
  5814. /// <param name="DesignAddRate"></param>
  5815. /// <returns></returns>
  5816. public DataTable StatementExportAll(string Type, string ID)
  5817. {
  5818. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5819. string sql = string.Empty;
  5820. object Figure = GetDecimalDigits();
  5821. string TableCode = string.Empty;
  5822. #region sql语句
  5823. if (Type == "1") //生产退料
  5824. {
  5825. 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 数量
  5826. ,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
  5827. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5828. ,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,
  5829. a.EATTRIBUTE9,a.EATTRIBUTE10
  5830. from ICSMOApplyNegDetail a
  5831. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5832. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5833. left join (
  5834. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5835. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  5836. where isnull(ee.EATTRIBUTE1,'')=''
  5837. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5838. )c
  5839. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5840. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5841. where d.Type='1' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5842. TableCode = "ICSMOApplyNegDetail";
  5843. }
  5844. if (Type == "2") //委外退料
  5845. {
  5846. 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 数量
  5847. ,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
  5848. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5849. ,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,
  5850. a.EATTRIBUTE9,a.EATTRIBUTE10
  5851. from ICSOApplyNegDetail a
  5852. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5853. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5854. left join (
  5855. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5856. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  5857. where isnull(ee.EATTRIBUTE1,'')=''
  5858. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5859. )c
  5860. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5861. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5862. WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5863. TableCode = "ICSOApplyNegDetail";
  5864. }
  5865. if (Type == "3")//工单成品生成条码
  5866. {
  5867. sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
  5868. ,CAST( a.Quantity AS DECIMAL(38,{0})) as ,CAST( a.Amount as DECIMAL(38,{0})) as
  5869. ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5870. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5871. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5872. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5873. a.EATTRIBUTE9,a.EATTRIBUTE10
  5874. from ICSMO a
  5875. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5876. left join (
  5877. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5878. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  5879. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5880. )c
  5881. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5882. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5883. WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
  5884. TableCode = "ICSMO";
  5885. }
  5886. if (Type == "4")//销售退货
  5887. {
  5888. 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 数量
  5889. ,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
  5890. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5891. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5892. a.EATTRIBUTE9,a.EATTRIBUTE10
  5893. from ICSSDN a
  5894. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5895. left join (
  5896. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5897. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  5898. where isnull(ee.EATTRIBUTE1,'')=''
  5899. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5900. )c
  5901. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5902. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5903. where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
  5904. TableCode = "ICSSDN";
  5905. }
  5906. if (Type == "5")//其它入库生成条码
  5907. {
  5908. 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 料品单位,
  5909. 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
  5910. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5911. ,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,
  5912. a.EATTRIBUTE9,a.EATTRIBUTE10
  5913. from ICSOtherIn a
  5914. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5915. left join (
  5916. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5917. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  5918. where isnull(ee.EATTRIBUTE1,'')=''
  5919. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5920. )c
  5921. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5922. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5923. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5924. TableCode = "ICSOtherIn";
  5925. }
  5926. if (Type == "6")//归还单生成条码
  5927. {
  5928. 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 料品单位
  5929. ,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
  5930. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5931. ,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,
  5932. a.EATTRIBUTE9,a.EATTRIBUTE10
  5933. from ICSReturn a
  5934. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5935. left join (
  5936. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5937. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  5938. where isnull(ee.EATTRIBUTE1,'')=''
  5939. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5940. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5941. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5942. where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5943. TableCode = "ICSReturn";
  5944. }
  5945. if (Type == "7")//*审核到货单生成条码
  5946. {
  5947. 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 料品单位,
  5948. 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
  5949. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5950. ,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,
  5951. a.EATTRIBUTE9,a.EATTRIBUTE10
  5952. from ICSDeliveryNotice a
  5953. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5954. left join (
  5955. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5956. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  5957. where isnull(ee.EATTRIBUTE1,'')=''
  5958. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5959. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5960. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5961. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5962. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5963. where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5964. TableCode = "ICSDeliveryNotice";
  5965. }
  5966. if (Type == "8")//审核委外到货单生成条码
  5967. {
  5968. 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 创建时间,
  5969. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5970. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5971. ,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,
  5972. a.EATTRIBUTE9,a.EATTRIBUTE10
  5973. from ICSODeliveryNotice a
  5974. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5975. left join (
  5976. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5977. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  5978. where isnull(ee.EATTRIBUTE1,'')=''
  5979. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5980. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5981. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5982. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5983. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5984. where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5985. TableCode = "ICSODeliveryNotice";
  5986. }
  5987. if (Type == "9")//开立得成品入库单 生成条码
  5988. {
  5989. 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 数量 ,
  5990. 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
  5991. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5992. ,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,
  5993. a.EATTRIBUTE9,a.EATTRIBUTE10
  5994. from ICSManufactureReceive a
  5995. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5996. left join (
  5997. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5998. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  5999. where isnull(ee.EATTRIBUTE1,'')=''
  6000. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6001. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6002. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6003. where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  6004. TableCode = "ICSManufactureReceive";
  6005. }
  6006. if (Type == "10")//采购拒收单
  6007. {
  6008. 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 料品单位,
  6009. 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 ,
  6010. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  6011. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6012. ,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,
  6013. a.EATTRIBUTE9,a.EATTRIBUTE10
  6014. from ICSDeliveryNotice a
  6015. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6016. left join (
  6017. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6018. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  6019. where isnull(ee.EATTRIBUTE1,'')=''
  6020. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6021. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6022. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  6023. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  6024. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6025. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  6026. TableCode = "ICSDeliveryNotice";
  6027. }
  6028. if (Type == "11") //委外拒收单生成条码
  6029. {
  6030. 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 料品单位,
  6031. 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
  6032. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6033. ,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,
  6034. a.EATTRIBUTE9,a.EATTRIBUTE10
  6035. from ICSODeliveryNotice a
  6036. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6037. left join (
  6038. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6039. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  6040. where isnull(ee.EATTRIBUTE1,'')=''
  6041. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6042. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6043. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  6044. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  6045. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6046. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  6047. TableCode = "ICSODeliveryNotice";
  6048. }
  6049. if (Type == "12")//领料申请退料生成条码
  6050. {
  6051. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  6052. 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
  6053. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6054. ,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,
  6055. a.EATTRIBUTE9,a.EATTRIBUTE10
  6056. from ICSMOApplyNegDetail a
  6057. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  6058. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6059. left join (
  6060. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6061. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  6062. where isnull(ee.EATTRIBUTE1,'')=''
  6063. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6064. )c
  6065. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6066. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6067. WHERE d.Type='2' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  6068. TableCode = "ICSMOApplyNegDetail";
  6069. }
  6070. if (Type == "13")//材料出库退料
  6071. {
  6072. sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  6073. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  6074. 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
  6075. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6076. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  6077. from ICSMOApplyNegDetail a
  6078. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  6079. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6080. left join (
  6081. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6082. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  6083. where isnull(ee.EATTRIBUTE1,'')=''
  6084. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6085. )c
  6086. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6087. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6088. WHERE d.Type='3' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  6089. TableCode = "ICSMOApplyNegDetail";
  6090. }
  6091. if (Type == "14")//委外领料申请退料
  6092. {
  6093. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  6094. 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
  6095. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6096. ,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,
  6097. a.EATTRIBUTE9,a.EATTRIBUTE10
  6098. from ICSOApplyNegDetail a
  6099. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  6100. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6101. left join (
  6102. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6103. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  6104. where isnull(ee.EATTRIBUTE1,'')=''
  6105. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6106. )c
  6107. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6108. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6109. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  6110. TableCode = "ICSOApplyNegDetail";
  6111. }
  6112. if (Type == "15")//委外材料出库退料
  6113. {
  6114. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  6115. 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
  6116. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6117. ,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,
  6118. a.EATTRIBUTE9,a.EATTRIBUTE10
  6119. from ICSOApplyNegDetail a
  6120. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  6121. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6122. left join (
  6123. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6124. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  6125. where isnull(ee.EATTRIBUTE1,'')=''
  6126. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6127. )c
  6128. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6129. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6130. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  6131. TableCode = "ICSOApplyNegDetail";
  6132. }
  6133. if (Type == "16") //返工工单
  6134. {
  6135. 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 单位,
  6136. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  6137. 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
  6138. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6139. ,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,
  6140. a.EATTRIBUTE9,a.EATTRIBUTE10
  6141. from ICSMOPick a
  6142. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  6143. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6144. left join (
  6145. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6146. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  6147. where isnull(ee.EATTRIBUTE1,'')=''
  6148. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6149. )c
  6150. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6151. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6152. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  6153. TableCode = "ICSMOPick";
  6154. }
  6155. if (Type == "17")//检验不合格条码重新生成
  6156. {
  6157. sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  6158. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  6159. CAST(c.Amount AS DECIMAL(38,{0})) as ,a.MUSERName,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  6160. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6161. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  6162. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  6163. a.EATTRIBUTE9,a.EATTRIBUTE10
  6164. from ICSInspection a
  6165. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  6166. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6167. left join (
  6168. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6169. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  6170. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  6171. )c
  6172. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  6173. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6174. where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  6175. TableCode = "ICSInspection";
  6176. }
  6177. #endregion
  6178. sql = sql + " and a.WorkPoint='{1}'";
  6179. sql = string.Format(sql, Figure, WorkPoint);
  6180. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6181. string sqls = @"SELECT ColCode,ColName,Enable
  6182. from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
  6183. DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
  6184. foreach (DataRow drE in dtExtension.Rows)
  6185. {
  6186. if (dt.Columns.Contains(drE["ColCode"].ToString()))
  6187. {
  6188. if (!Convert.ToBoolean(drE["Enable"]))
  6189. {
  6190. dt.Columns.Remove(drE["ColCode"].ToString());
  6191. }
  6192. else if (Convert.ToBoolean(drE["Enable"]))
  6193. {
  6194. dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
  6195. }
  6196. }
  6197. }
  6198. DataTable dtColumn = ColumnEnable(TableCode);
  6199. foreach (DataRow drC in dtColumn.Rows)
  6200. {
  6201. if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
  6202. {
  6203. if (!Convert.ToBoolean(drC["Enable"]))
  6204. {
  6205. dt.Columns.Remove(drC["ColumnCode"].ToString());
  6206. }
  6207. else if (Convert.ToBoolean(drC["Enable"]))
  6208. {
  6209. dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
  6210. }
  6211. }
  6212. }
  6213. return dt;
  6214. }
  6215. public DataTable ColumnEnable(string TableCode)
  6216. {
  6217. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6218. string sql = string.Empty;
  6219. sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
  6220. sql = string.Format(sql, TableCode, WorkPoint);
  6221. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6222. return dt;
  6223. }
  6224. public object GetQiSetNum(string keyValue)
  6225. {
  6226. decimal Num = 0;
  6227. string msg = "";
  6228. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  6229. string result = HttpPost(APIURL, keyValue);
  6230. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  6231. string MessAge = Obj["Message"].ToString();
  6232. string Success = Obj["Success"].ToString();
  6233. if (Success.ToUpper() == "FALSE")
  6234. {
  6235. msg = MessAge;
  6236. }
  6237. else
  6238. {
  6239. if (MessAge == "U9")
  6240. {
  6241. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  6242. int date = Convert.ToInt32(Date);
  6243. Num = date;
  6244. }
  6245. else
  6246. {
  6247. if (msg == "")
  6248. {
  6249. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  6250. foreach (var item in res)
  6251. {
  6252. JObject jo = (JObject)item;
  6253. //var aa= jo["min_lotqty"].ToString();
  6254. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  6255. }
  6256. }
  6257. }
  6258. }
  6259. var Header = new
  6260. {
  6261. msg = msg,
  6262. Num = Num,
  6263. };
  6264. return Header;
  6265. }
  6266. //接口api解析
  6267. public static string HttpPost(string url, string body)
  6268. {
  6269. try
  6270. {
  6271. Encoding encoding = Encoding.UTF8;
  6272. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  6273. request.Method = "POST";
  6274. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  6275. request.ContentType = "application/json; charset=utf-8";
  6276. byte[] buffer = encoding.GetBytes(body);
  6277. request.ContentLength = buffer.Length;
  6278. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  6279. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  6280. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  6281. {
  6282. return reader.ReadToEnd();
  6283. }
  6284. }
  6285. catch (WebException ex)
  6286. {
  6287. throw new Exception(ex.Message);
  6288. }
  6289. }
  6290. public DataTable GetLoadShow()
  6291. {
  6292. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6293. string sql = @"
  6294. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  6295. return Repository().FindTableBySql(sql.ToString());
  6296. }
  6297. //不合格条码重新生成入库
  6298. public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
  6299. {
  6300. DataTable dt = new DataTable();
  6301. var queryParam = queryJson.ToJObject();
  6302. List<DbParameter> parameter = new List<DbParameter>();
  6303. object Figure = GetDecimalDigits();
  6304. #region [SQL]
  6305. string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  6306. CAST(a.UnqualifiedQuantity AS DECIMAL(38,{0})) as Quantity ,
  6307. CAST(c.Amount AS DECIMAL(38,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY,d.ExtensionID
  6308. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6309. ,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,
  6310. a.EATTRIBUTE9,a.EATTRIBUTE10
  6311. from ICSInspection a
  6312. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  6313. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6314. left join (
  6315. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6316. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  6317. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  6318. )c
  6319. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  6320. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6321. where a.UnqualifiedQuantity>0 and a.Enable='1'";
  6322. sql = string.Format(sql, Figure);
  6323. #endregion
  6324. if (!string.IsNullOrWhiteSpace(queryJson))
  6325. {
  6326. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6327. {
  6328. sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
  6329. }
  6330. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6331. {
  6332. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6333. }
  6334. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6335. {
  6336. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6337. }
  6338. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6339. {
  6340. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6341. }
  6342. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6343. {
  6344. string POStatus = queryParam["POStatus"].ToString();
  6345. if (POStatus == "0")
  6346. {
  6347. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6348. }
  6349. else if (POStatus == "1")
  6350. {
  6351. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
  6352. }
  6353. else
  6354. {
  6355. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
  6356. }
  6357. }
  6358. }
  6359. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6360. {
  6361. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6362. }
  6363. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6364. }
  6365. public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
  6366. {
  6367. DataTable dt = new DataTable();
  6368. object Figure = GetDecimalDigits();
  6369. List<DbParameter> parameter = new List<DbParameter>();
  6370. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6371. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  6372. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6373. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  6374. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  6375. case when isnull(e.ID,'')='' then '' else '' end as isInspection,
  6376. case when g.InvIQC='1' then '是' else '否' end as isExemption
  6377. from ICSInventoryLot a
  6378. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  6379. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  6380. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  6381. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6382. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  6383. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  6384. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  6385. WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
  6386. sql = string.Format(sql, Figure);
  6387. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6388. }
  6389. public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
  6390. {
  6391. var queryParam = keyValue.ToJObject();
  6392. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6393. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6394. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6395. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6396. decimal LOTQTY = minPackQty;
  6397. // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6398. string sql = string.Empty;
  6399. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6400. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6401. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6402. string sqls = string.Empty;
  6403. string Colspan = "";
  6404. string str1 = "";
  6405. List<string> ExtensionIDList = new List<string>();
  6406. for (int i = 0; i < createPageCount; i++)
  6407. {
  6408. if (i + 1 == createPageCount)
  6409. {
  6410. if (minPackQty * createPageCount > thisCreateQty)
  6411. {
  6412. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6413. }
  6414. }
  6415. string LotNo = GetNewLotNo(OldLotNo);
  6416. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6417. select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}',TransID from ICSInventoryLotDetail where LotNo='{4}'",
  6418. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  6419. sql += string.Format(@"
  6420. insert into ICSInventoryLot
  6421. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
  6422. select
  6423. newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
  6424. from ICSInventoryLot a
  6425. inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
  6426. where a.LotNo='{4}' and a.WorkPoint='{3}'",
  6427. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  6428. sql += "\r\n";
  6429. }
  6430. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6431. return count;
  6432. }
  6433. public string GetNewLotNo(string LotNO)
  6434. {
  6435. DataTable dt = new DataTable();
  6436. List<DbParameter> parameter = new List<DbParameter>();
  6437. //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
  6438. string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
  6439. ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
  6440. sql = string.Format(sql, LotNO);
  6441. dt = Repository().FindTableBySql(sql.ToString());
  6442. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
  6443. {
  6444. return LotNO + "-1";
  6445. }
  6446. else
  6447. {
  6448. string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
  6449. int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
  6450. return LotNO + "-" + COUNT.ToString();
  6451. }
  6452. }
  6453. public DataTable SelGDLX()
  6454. {
  6455. string sql = string.Empty;
  6456. DataTable dt = null;
  6457. sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
  6458. dt = SqlHelper.GetDataTableBySql(sql);
  6459. return dt;
  6460. }
  6461. public DataTable CheckParentMO()
  6462. {
  6463. try
  6464. {
  6465. string sql = string.Empty;
  6466. DataTable dt = null;
  6467. sql = string.Format(@" select B.F_EnabledMark from Sys_SRM_Items A
  6468. INNER JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  6469. where F_EnCode='NeedParentMO'");
  6470. dt = SqlHelper.GetDataTableBySql(sql);
  6471. return dt;
  6472. }
  6473. catch (Exception ex)
  6474. {
  6475. throw new Exception(ex.Message);
  6476. }
  6477. }
  6478. public DataTable GetFreeEnble()
  6479. {
  6480. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6481. string sql = @"
  6482. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  6483. return Repository().FindTableBySql(sql.ToString());
  6484. }
  6485. public DataTable GetInvBatchEnable(string InvCode)
  6486. {
  6487. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6488. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'";
  6489. sql = string.Format(sql, InvCode, WorkPoints);
  6490. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6491. return dt;
  6492. }
  6493. //副产品
  6494. public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
  6495. {
  6496. DataTable dt = new DataTable();
  6497. var queryParam = queryJson.ToJObject();
  6498. List<DbParameter> parameter = new List<DbParameter>();
  6499. object Figure = GetDecimalDigits();
  6500. #region [SQL]
  6501. 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,
  6502. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  6503. 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
  6504. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6505. ,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,
  6506. a.EATTRIBUTE9,a.EATTRIBUTE10
  6507. from ICSMOPick a
  6508. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  6509. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6510. left join (
  6511. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6512. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  6513. where isnull(ee.EATTRIBUTE1,'')=''
  6514. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6515. )c
  6516. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6517. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6518. where a.EATTRIBUTE1='1' ";
  6519. sql = string.Format(sql, Figure);
  6520. #endregion
  6521. if (!string.IsNullOrWhiteSpace(queryJson))
  6522. {
  6523. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6524. {
  6525. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6526. }
  6527. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6528. {
  6529. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6530. }
  6531. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6532. {
  6533. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6534. }
  6535. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6536. {
  6537. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6538. }
  6539. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6540. {
  6541. string POStatus = queryParam["POStatus"].ToString();
  6542. if (POStatus == "0")
  6543. {
  6544. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6545. }
  6546. else if (POStatus == "1")
  6547. {
  6548. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6549. }
  6550. else
  6551. {
  6552. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6553. }
  6554. }
  6555. }
  6556. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6557. {
  6558. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6559. }
  6560. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6561. {
  6562. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6563. }
  6564. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6565. }
  6566. /// <summary>
  6567. /// 锐腾调入单生成条码
  6568. /// </summary>
  6569. /// <param name="queryJson"></param>
  6570. /// <param name="jqgridparam"></param>
  6571. /// <returns></returns>
  6572. public DataTable GetGridJsonTransfer(string queryJson, ref Pagination jqgridparam)
  6573. {
  6574. DataTable dt = new DataTable();
  6575. var queryParam = queryJson.ToJObject();
  6576. List<DbParameter> parameter = new List<DbParameter>();
  6577. object Figure = GetDecimalDigits();
  6578. #region [SQL]
  6579. 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(c.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
  6580. FROM ICSTransfer a
  6581. LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  6582. LEFT JOIN (SELECT c.TransCode,c.WorkPoint,c.TransSequence,sum(d.Quantity) Quantity FROM ICSInventoryLotDetail c
  6583. LEFT JOIN ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint
  6584. WHERE ISNULL(d.EATTRIBUTE1, '')=''
  6585. GROUP BY c.TransCode,c.WorkPoint,c.TransSequence ) c ON a.TransferNO=c.TransCode AND c.WorkPoint=a.WorkPoint AND a.Sequence=c.TransSequence
  6586. left JOIN ICSExtension f ON f.Id=a.ExtensionID AND f.WorkPoint=a.WorkPoint
  6587. WHERE a.Type='2'
  6588. AND Isnull(a.Status,'')<>3
  6589. ";
  6590. sql = string.Format(sql, Figure);
  6591. #endregion
  6592. if (!string.IsNullOrWhiteSpace(queryJson))
  6593. {
  6594. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6595. {
  6596. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  6597. }
  6598. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6599. {
  6600. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6601. }
  6602. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6603. {
  6604. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6605. }
  6606. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6607. {
  6608. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6609. }
  6610. }
  6611. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6612. {
  6613. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6614. }
  6615. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6616. {
  6617. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6618. }
  6619. 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
  6620. where 1=1 ";
  6621. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6622. {
  6623. string POStatus = queryParam["POStatus"].ToString();
  6624. if (POStatus == "0")
  6625. {
  6626. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6627. }
  6628. else if (POStatus == "1")
  6629. {
  6630. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6631. }
  6632. else
  6633. {
  6634. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6635. }
  6636. }
  6637. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6638. }
  6639. /// <summary>
  6640. /// 采购入库生成条码
  6641. /// </summary>
  6642. /// <param name="queryJson"></param>
  6643. /// <param name="jqgridparam"></param>
  6644. /// <returns></returns>
  6645. ///
  6646. public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6647. {
  6648. DataTable dt = new DataTable();
  6649. var queryParam = queryJson.ToJObject();
  6650. List<DbParameter> parameter = new List<DbParameter>();
  6651. object Figure = GetDecimalDigits();
  6652. #region [SQL]
  6653. 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,
  6654. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6655. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6656. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6657. ,c.LOTQTY
  6658. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6659. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6660. ,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,
  6661. 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,
  6662. b.EATTRIBUTE9 as ICSInventoryEATTRIBUTE9,b.EATTRIBUTE10 as ICSInventoryEATTRIBUTE10,
  6663. isnull(b.EATTRIBUTE2,'') as MPQ
  6664. from ICSPurchaseReceive a
  6665. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6666. left join (
  6667. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6668. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6669. where isnull(ee.EATTRIBUTE1,'')=''
  6670. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6671. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6672. left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6673. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6674. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6675. where a.Type='1' ";
  6676. sql = string.Format(sql, Figure);
  6677. #endregion
  6678. if (!string.IsNullOrWhiteSpace(queryJson))
  6679. {
  6680. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6681. {
  6682. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6683. }
  6684. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6685. {
  6686. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6687. }
  6688. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6689. {
  6690. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6691. }
  6692. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6693. {
  6694. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6695. }
  6696. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6697. {
  6698. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6699. }
  6700. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6701. {
  6702. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6703. }
  6704. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6705. {
  6706. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6707. }
  6708. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6709. {
  6710. string POStatus = queryParam["POStatus"].ToString();
  6711. if (POStatus == "0")
  6712. {
  6713. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6714. }
  6715. else if (POStatus == "1")
  6716. {
  6717. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6718. }
  6719. else
  6720. {
  6721. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6722. }
  6723. }
  6724. }
  6725. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6726. {
  6727. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6728. }
  6729. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6730. {
  6731. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6732. }
  6733. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6734. }
  6735. // public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6736. // {
  6737. // DataTable dt = new DataTable();
  6738. // var queryParam = queryJson.ToJObject();
  6739. // List<DbParameter> parameter = new List<DbParameter>();
  6740. // object Figure = GetDecimalDigits();
  6741. // #region [SQL]
  6742. // 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,
  6743. // CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6744. // ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6745. // ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6746. // ,c.LOTQTY
  6747. // ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6748. // ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6749. // ,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,
  6750. // a.EATTRIBUTE9,a.EATTRIBUTE10,
  6751. // isnull(b.EATTRIBUTE2,'') as MPQ
  6752. // from ICSPurchaseReceive a
  6753. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6754. // left join (
  6755. // select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6756. // left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6757. // where isnull(ee.EATTRIBUTE1,'')=''
  6758. // group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6759. // ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6760. // left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6761. // left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6762. // left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6763. // where a.Type='1' ";
  6764. // sql = string.Format(sql, Figure);
  6765. // #endregion
  6766. // if (!string.IsNullOrWhiteSpace(queryJson))
  6767. // {
  6768. // if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6769. // {
  6770. // sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6771. // }
  6772. // if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6773. // {
  6774. // sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6775. // }
  6776. // if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6777. // {
  6778. // sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6779. // }
  6780. // if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6781. // {
  6782. // sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6783. // }
  6784. // }
  6785. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6786. // {
  6787. // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6788. // }
  6789. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6790. // {
  6791. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6792. // }
  6793. // 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,
  6794. //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
  6795. // where 1=1 ";
  6796. // if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6797. // {
  6798. // string POStatus = queryParam["POStatus"].ToString();
  6799. // if (POStatus == "0")
  6800. // {
  6801. // //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6802. // }
  6803. // else if (POStatus == "1")
  6804. // {
  6805. // sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6806. // }
  6807. // else
  6808. // {
  6809. // sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6810. // }
  6811. // }
  6812. // return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6813. // }
  6814. /// <summary>
  6815. /// 采购入库获取单据信息
  6816. /// </summary>
  6817. /// <param name="FGGDMOCode"></param>
  6818. /// <param name="Sequence"></param>
  6819. /// <param name="WorkPoint"></param>
  6820. /// <returns></returns>
  6821. public DataTable GetSubGridJsonPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6822. {
  6823. DataTable dt = new DataTable();
  6824. object Figure = GetDecimalDigits();
  6825. List<DbParameter> parameter = new List<DbParameter>();
  6826. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6827. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6828. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6829. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6830. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6831. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6832. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6833. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays
  6834. , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) end as MPQ
  6835. , 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 ,
  6836. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6837. FROM ICSPurchaseReceive a
  6838. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6839. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6840. FROM ICSInventoryLot a
  6841. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '22'
  6842. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6843. GROUP BY
  6844. b.TransCode,
  6845. b.TransSequence
  6846. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6847. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6848. WHERE 1 = 1
  6849. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6850. //sql = string.Format(sql, Figure);
  6851. return Repository().FindTableBySql(sql.ToString());
  6852. }
  6853. /// <summary>
  6854. /// 采购入库单生成条码 保存
  6855. /// </summary>
  6856. /// <param name="RCVCode"></param>
  6857. /// <param name="Sequence"></param>
  6858. /// <param name="keyValue"></param>
  6859. /// <param name="WorkPoint"></param>
  6860. /// <returns></returns>
  6861. public int SubmitFormCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6862. {
  6863. var queryParam = keyValue.ToJObject();
  6864. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6865. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6866. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6867. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6868. decimal LOTQTY = minPackQty;
  6869. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6870. string sql = string.Empty;
  6871. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6872. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6873. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6874. string sqls = string.Empty;
  6875. string Colspan = "";
  6876. string str1 = "";
  6877. List<string> ExtensionIDList = new List<string>();
  6878. #region 装箱的功能
  6879. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6880. string VenCode = queryParam["VenCode"].ToString();
  6881. int PackCount = 0;//每箱放的数量
  6882. int Pack_YuShu = 0;//需要平摊的数量
  6883. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6884. List<PackModel> List_Pack = new List<PackModel>();
  6885. int ZQty = 0;
  6886. if (createPackCount > 0)
  6887. {
  6888. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6889. if (Pack_YuShu == 0)
  6890. {
  6891. PackCount = (createPageCount / createPackCount);
  6892. }
  6893. else
  6894. {
  6895. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6896. }
  6897. for (int jj = 0; jj < createPackCount; jj++)
  6898. {
  6899. object CARID = Guid.NewGuid();
  6900. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6901. sql += @" INSERT INTO dbo.ICSContainer
  6902. ( ID,ContainerCode ,
  6903. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6904. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6905. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6906. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6907. PackModel PP = new PackModel();
  6908. PP.ID = CARID.ToString();
  6909. PP.PackCode = Carton;
  6910. if (jj < Pack_YuShu)
  6911. {
  6912. PP.FristBarIndex = ZQty;
  6913. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6914. }
  6915. else
  6916. {
  6917. PP.FristBarIndex = ZQty;
  6918. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6919. }
  6920. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6921. List_Pack.Add(PP);
  6922. }
  6923. }
  6924. #endregion
  6925. for (int i = 0; i < createPageCount; i++)
  6926. {
  6927. if (i + 1 == createPageCount)
  6928. {
  6929. if (minPackQty * createPageCount > thisCreateQty)
  6930. {
  6931. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6932. }
  6933. }
  6934. 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();
  6935. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6936. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6937. bool flag = true;
  6938. foreach (var item in ExtensionIDList)
  6939. {
  6940. if (item == Colspan + WorkPoint)
  6941. {
  6942. flag = false;
  6943. }
  6944. }
  6945. if (ExtensionID == null && flag == true)
  6946. {
  6947. str1 = Guid.NewGuid().ToString();
  6948. 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)
  6949. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6950. 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(),
  6951. MUSER, MUSERNAME, WorkPoints);
  6952. }
  6953. else if (ExtensionID != null)
  6954. {
  6955. str1 = ExtensionID.ToString();
  6956. }
  6957. ExtensionIDList.Add(Colspan + WorkPoint);
  6958. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6959. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6960. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6961. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6962. sql += string.Format(@"
  6963. insert into ICSInventoryLot
  6964. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6965. select
  6966. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6967. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6968. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6969. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6970. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6971. sql += "\r\n";
  6972. //装箱的功能
  6973. if (List_Pack.Count > 0)
  6974. {
  6975. PackModel mm = new PackModel();
  6976. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6977. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6978. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6979. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6980. }
  6981. }
  6982. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6983. return count;
  6984. }
  6985. /// <summary>
  6986. /// 采购入库单生成条码 保存(新)
  6987. /// </summary>
  6988. /// <param name="RCVCode"></param>
  6989. /// <param name="Sequence"></param>
  6990. /// <param name="keyValue"></param>
  6991. /// <param name="WorkPoint"></param>
  6992. /// <returns></returns>
  6993. public int SubmitFormCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6994. {
  6995. var queryParam = keyValue.ToJObject();
  6996. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6997. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6998. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6999. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7000. List<decimal> lotQtys = new List<decimal>();
  7001. foreach (var jLotno in jLotnos)
  7002. {
  7003. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7004. lotQtys.Add(qty);
  7005. }
  7006. int createPageCount = lotQtys.Count();
  7007. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  7008. string sql = string.Empty;
  7009. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7010. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7011. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7012. string sqls = string.Empty;
  7013. string Colspan = "";
  7014. string str1 = "";
  7015. List<string> ExtensionIDList = new List<string>();
  7016. #region 装箱的功能
  7017. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7018. string VenCode = queryParam["VenCode"].ToString();
  7019. int PackCount = 0;//每箱放的数量
  7020. int Pack_YuShu = 0;//需要平摊的数量
  7021. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7022. List<PackModel> List_Pack = new List<PackModel>();
  7023. int ZQty = 0;
  7024. if (createPackCount > 0)
  7025. {
  7026. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7027. if (Pack_YuShu == 0)
  7028. {
  7029. PackCount = (createPageCount / createPackCount);
  7030. }
  7031. else
  7032. {
  7033. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7034. }
  7035. for (int jj = 0; jj < createPackCount; jj++)
  7036. {
  7037. object CARID = Guid.NewGuid();
  7038. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7039. sql += @" INSERT INTO dbo.ICSContainer
  7040. ( ID,ContainerCode ,
  7041. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7042. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7043. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7044. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7045. PackModel PP = new PackModel();
  7046. PP.ID = CARID.ToString();
  7047. PP.PackCode = Carton;
  7048. if (jj < Pack_YuShu)
  7049. {
  7050. PP.FristBarIndex = ZQty;
  7051. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7052. }
  7053. else
  7054. {
  7055. PP.FristBarIndex = ZQty;
  7056. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7057. }
  7058. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7059. List_Pack.Add(PP);
  7060. }
  7061. }
  7062. #endregion
  7063. for (int i = 0; i < createPageCount; i++)
  7064. {
  7065. //if (i + 1 == createPageCount)
  7066. //{
  7067. // if (minPackQty * createPageCount > thisCreateQty)
  7068. // {
  7069. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7070. // }
  7071. //}
  7072. decimal LOTQTY = lotQtys[i];
  7073. 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();
  7074. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7075. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7076. bool flag = true;
  7077. foreach (var item in ExtensionIDList)
  7078. {
  7079. if (item == Colspan + WorkPoint)
  7080. {
  7081. flag = false;
  7082. }
  7083. }
  7084. if (ExtensionID == null && flag == true)
  7085. {
  7086. str1 = Guid.NewGuid().ToString();
  7087. 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)
  7088. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7089. 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(),
  7090. MUSER, MUSERNAME, WorkPoints);
  7091. }
  7092. else if (ExtensionID != null)
  7093. {
  7094. str1 = ExtensionID.ToString();
  7095. }
  7096. ExtensionIDList.Add(Colspan + WorkPoint);
  7097. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7098. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7099. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7100. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7101. try
  7102. {
  7103. sql += string.Format(@"
  7104. insert into ICSInventoryLot
  7105. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7106. select
  7107. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7108. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7109. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  7110. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7111. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7112. sql += "\r\n";
  7113. }
  7114. catch (Exception EX)
  7115. {
  7116. throw EX;
  7117. }
  7118. //装箱的功能
  7119. if (List_Pack.Count > 0)
  7120. {
  7121. PackModel mm = new PackModel();
  7122. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7123. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7124. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7125. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7126. }
  7127. }
  7128. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7129. return count;
  7130. }
  7131. /// <summary>
  7132. /// 委外采购入库生成条码
  7133. /// </summary>
  7134. /// <param name="queryJson"></param>
  7135. /// <param name="jqgridparam"></param>
  7136. /// <returns></returns>
  7137. public DataTable GetGridJsonOutPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  7138. {
  7139. DataTable dt = new DataTable();
  7140. var queryParam = queryJson.ToJObject();
  7141. List<DbParameter> parameter = new List<DbParameter>();
  7142. object Figure = GetDecimalDigits();
  7143. #region [SQL]
  7144. 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,
  7145. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  7146. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  7147. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  7148. ,c.LOTQTY
  7149. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  7150. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  7151. ,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,
  7152. a.EATTRIBUTE9,a.EATTRIBUTE10
  7153. from ICSOutsourcingReceive a
  7154. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7155. left join (
  7156. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7157. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  7158. where isnull(ee.EATTRIBUTE1,'')=''
  7159. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7160. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7161. left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  7162. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  7163. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7164. where a.Type='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.RCVCode 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. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  7186. {
  7187. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  7188. }
  7189. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  7190. {
  7191. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  7192. }
  7193. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  7194. {
  7195. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  7196. }
  7197. }
  7198. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  7199. {
  7200. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  7201. }
  7202. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  7203. {
  7204. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  7205. }
  7206. 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,
  7207. 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
  7208. where 1=1 ";
  7209. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  7210. {
  7211. string POStatus = queryParam["POStatus"].ToString();
  7212. if (POStatus == "0")
  7213. {
  7214. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  7215. }
  7216. else if (POStatus == "1")
  7217. {
  7218. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  7219. }
  7220. else
  7221. {
  7222. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  7223. }
  7224. }
  7225. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  7226. }
  7227. /// <summary>
  7228. /// 委外采购入库获取单据信息
  7229. /// </summary>
  7230. /// <param name="FGGDMOCode"></param>
  7231. /// <param name="Sequence"></param>
  7232. /// <param name="WorkPoint"></param>
  7233. /// <returns></returns>
  7234. public DataTable GetSubGridJsonOutPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  7235. {
  7236. DataTable dt = new DataTable();
  7237. object Figure = GetDecimalDigits();
  7238. List<DbParameter> parameter = new List<DbParameter>();
  7239. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  7240. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7241. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  7242. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  7243. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  7244. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  7245. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  7246. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  7247. , 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 ,
  7248. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7249. FROM ICSOutsourcingReceive a
  7250. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  7251. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  7252. FROM ICSInventoryLot a
  7253. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '23'
  7254. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  7255. GROUP BY
  7256. b.TransCode,
  7257. b.TransSequence
  7258. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  7259. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  7260. WHERE 1 = 1
  7261. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  7262. sql = string.Format(sql, Figure);
  7263. return Repository().FindTableBySql(sql.ToString());
  7264. }
  7265. /// <summary>
  7266. /// 委外采购入库单生成条码 保存
  7267. /// </summary>
  7268. /// <param name="RCVCode"></param>
  7269. /// <param name="Sequence"></param>
  7270. /// <param name="keyValue"></param>
  7271. /// <param name="WorkPoint"></param>
  7272. /// <returns></returns>
  7273. public int SubmitFormWWCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  7274. {
  7275. var queryParam = keyValue.ToJObject();
  7276. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7277. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7278. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7279. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7280. decimal LOTQTY = minPackQty;
  7281. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  7282. string sql = string.Empty;
  7283. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7284. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7285. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7286. string sqls = string.Empty;
  7287. string Colspan = "";
  7288. string str1 = "";
  7289. List<string> ExtensionIDList = new List<string>();
  7290. #region 装箱的功能
  7291. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7292. string VenCode = queryParam["VenCode"].ToString();
  7293. int PackCount = 0;//每箱放的数量
  7294. int Pack_YuShu = 0;//需要平摊的数量
  7295. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7296. List<PackModel> List_Pack = new List<PackModel>();
  7297. int ZQty = 0;
  7298. if (createPackCount > 0)
  7299. {
  7300. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7301. if (Pack_YuShu == 0)
  7302. {
  7303. PackCount = (createPageCount / createPackCount);
  7304. }
  7305. else
  7306. {
  7307. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7308. }
  7309. for (int jj = 0; jj < createPackCount; jj++)
  7310. {
  7311. object CARID = Guid.NewGuid();
  7312. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7313. sql += @" INSERT INTO dbo.ICSContainer
  7314. ( ID,ContainerCode ,
  7315. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7316. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7317. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7318. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7319. PackModel PP = new PackModel();
  7320. PP.ID = CARID.ToString();
  7321. PP.PackCode = Carton;
  7322. if (jj < Pack_YuShu)
  7323. {
  7324. PP.FristBarIndex = ZQty;
  7325. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7326. }
  7327. else
  7328. {
  7329. PP.FristBarIndex = ZQty;
  7330. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7331. }
  7332. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7333. List_Pack.Add(PP);
  7334. }
  7335. }
  7336. #endregion
  7337. for (int i = 0; i < createPageCount; i++)
  7338. {
  7339. if (i + 1 == createPageCount)
  7340. {
  7341. if (minPackQty * createPageCount > thisCreateQty)
  7342. {
  7343. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7344. }
  7345. }
  7346. 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();
  7347. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7348. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7349. bool flag = true;
  7350. foreach (var item in ExtensionIDList)
  7351. {
  7352. if (item == Colspan + WorkPoint)
  7353. {
  7354. flag = false;
  7355. }
  7356. }
  7357. if (ExtensionID == null && flag == true)
  7358. {
  7359. str1 = Guid.NewGuid().ToString();
  7360. 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)
  7361. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7362. 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(),
  7363. MUSER, MUSERNAME, WorkPoints);
  7364. }
  7365. else if (ExtensionID != null)
  7366. {
  7367. str1 = ExtensionID.ToString();
  7368. }
  7369. ExtensionIDList.Add(Colspan + WorkPoint);
  7370. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7371. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7372. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7373. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7374. sql += string.Format(@"
  7375. insert into ICSInventoryLot
  7376. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7377. select
  7378. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7379. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7380. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7381. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7382. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7383. sql += "\r\n";
  7384. //装箱的功能
  7385. if (List_Pack.Count > 0)
  7386. {
  7387. PackModel mm = new PackModel();
  7388. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7389. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7390. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7391. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7392. }
  7393. }
  7394. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7395. return count;
  7396. }
  7397. /// <summary>
  7398. /// 委外采购入库单生成条码 保存(新)
  7399. /// </summary>
  7400. /// <param name="RCVCode"></param>
  7401. /// <param name="Sequence"></param>
  7402. /// <param name="keyValue"></param>
  7403. /// <param name="WorkPoint"></param>
  7404. /// <returns></returns>
  7405. public int SubmitFormWWCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  7406. {
  7407. var queryParam = keyValue.ToJObject();
  7408. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7409. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7410. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7411. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7412. List<decimal> lotQtys = new List<decimal>();
  7413. foreach (var jLotno in jLotnos)
  7414. {
  7415. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7416. lotQtys.Add(qty);
  7417. }
  7418. int createPageCount = lotQtys.Count();
  7419. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  7420. string sql = string.Empty;
  7421. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7422. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7423. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7424. string sqls = string.Empty;
  7425. string Colspan = "";
  7426. string str1 = "";
  7427. List<string> ExtensionIDList = new List<string>();
  7428. #region 装箱的功能
  7429. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7430. string VenCode = queryParam["VenCode"].ToString();
  7431. int PackCount = 0;//每箱放的数量
  7432. int Pack_YuShu = 0;//需要平摊的数量
  7433. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7434. List<PackModel> List_Pack = new List<PackModel>();
  7435. int ZQty = 0;
  7436. if (createPackCount > 0)
  7437. {
  7438. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7439. if (Pack_YuShu == 0)
  7440. {
  7441. PackCount = (createPageCount / createPackCount);
  7442. }
  7443. else
  7444. {
  7445. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7446. }
  7447. for (int jj = 0; jj < createPackCount; jj++)
  7448. {
  7449. object CARID = Guid.NewGuid();
  7450. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7451. sql += @" INSERT INTO dbo.ICSContainer
  7452. ( ID,ContainerCode ,
  7453. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7454. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7455. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7456. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7457. PackModel PP = new PackModel();
  7458. PP.ID = CARID.ToString();
  7459. PP.PackCode = Carton;
  7460. if (jj < Pack_YuShu)
  7461. {
  7462. PP.FristBarIndex = ZQty;
  7463. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7464. }
  7465. else
  7466. {
  7467. PP.FristBarIndex = ZQty;
  7468. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7469. }
  7470. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7471. List_Pack.Add(PP);
  7472. }
  7473. }
  7474. #endregion
  7475. for (int i = 0; i < createPageCount; i++)
  7476. {
  7477. //if (i + 1 == createPageCount)
  7478. //{
  7479. // if (minPackQty * createPageCount > thisCreateQty)
  7480. // {
  7481. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7482. // }
  7483. //}
  7484. decimal LOTQTY = lotQtys[i];
  7485. 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();
  7486. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7487. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7488. bool flag = true;
  7489. foreach (var item in ExtensionIDList)
  7490. {
  7491. if (item == Colspan + WorkPoint)
  7492. {
  7493. flag = false;
  7494. }
  7495. }
  7496. if (ExtensionID == null && flag == true)
  7497. {
  7498. str1 = Guid.NewGuid().ToString();
  7499. 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)
  7500. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7501. 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(),
  7502. MUSER, MUSERNAME, WorkPoints);
  7503. }
  7504. else if (ExtensionID != null)
  7505. {
  7506. str1 = ExtensionID.ToString();
  7507. }
  7508. ExtensionIDList.Add(Colspan + WorkPoint);
  7509. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7510. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7511. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7512. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7513. try
  7514. {
  7515. sql += string.Format(@"
  7516. insert into ICSInventoryLot
  7517. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7518. select
  7519. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7520. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7521. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / LOTQTY, queryParam["ExpirationDate"].ToString()
  7522. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7523. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7524. sql += "\r\n";
  7525. }
  7526. catch (Exception EX)
  7527. {
  7528. throw EX;
  7529. }
  7530. //装箱的功能
  7531. if (List_Pack.Count > 0)
  7532. {
  7533. PackModel mm = new PackModel();
  7534. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7535. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7536. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7537. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7538. }
  7539. }
  7540. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7541. return count;
  7542. }
  7543. /// <summary>
  7544. /// 铭锋 退货调拨申请单生成条码
  7545. /// </summary>
  7546. /// <param name="queryJson"></param>
  7547. /// <param name="jqgridparam"></param>
  7548. /// <returns></returns>
  7549. public DataTable GetGridJsonTransferApplication(string queryJson, ref Pagination jqgridparam)
  7550. {
  7551. DataTable dt = new DataTable();
  7552. var queryParam = queryJson.ToJObject();
  7553. List<DbParameter> parameter = new List<DbParameter>();
  7554. object Figure = GetDecimalDigits();
  7555. #region [SQL]
  7556. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  7557. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  7558. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  7559. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  7560. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  7561. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  7562. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  7563. ,c.LOTQTY
  7564. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  7565. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  7566. ,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,
  7567. a.EATTRIBUTE9,a.EATTRIBUTE10
  7568. from ICSTransferApplication a
  7569. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7570. left join (
  7571. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7572. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  7573. where isnull(ee.EATTRIBUTE1,'')=''
  7574. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7575. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7576. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  7577. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7578. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  7579. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  7580. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  7581. where 1 = 1";
  7582. sql = string.Format(sql, Figure);
  7583. #endregion
  7584. if (!string.IsNullOrWhiteSpace(queryJson))
  7585. {
  7586. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  7587. {
  7588. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  7589. }
  7590. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  7591. {
  7592. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  7593. }
  7594. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  7595. {
  7596. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  7597. }
  7598. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  7599. {
  7600. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  7601. }
  7602. }
  7603. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  7604. {
  7605. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  7606. }
  7607. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  7608. //{
  7609. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  7610. //}
  7611. 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,
  7612. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  7613. 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
  7614. where 1=1 ";
  7615. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  7616. {
  7617. string POStatus = queryParam["POStatus"].ToString();
  7618. if (POStatus == "0")
  7619. {
  7620. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  7621. }
  7622. else if (POStatus == "1")
  7623. {
  7624. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  7625. }
  7626. else
  7627. {
  7628. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  7629. }
  7630. }
  7631. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  7632. }
  7633. /// <summary>
  7634. /// 铭锋 退货调拨申请单获取单据信息
  7635. /// </summary>
  7636. /// <param name="TransferNO"></param>
  7637. /// <param name="Sequence"></param>
  7638. /// <param name="WorkPoint"></param>
  7639. /// <returns></returns>
  7640. public DataTable GetSubGridJsonTransferApplicationByCreate(string TransferNO, string Sequence, string WorkPoint)
  7641. {
  7642. DataTable dt = new DataTable();
  7643. object Figure = GetDecimalDigits();
  7644. List<DbParameter> parameter = new List<DbParameter>();
  7645. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  7646. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  7647. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  7648. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  7649. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  7650. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7651. , 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 ,
  7652. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7653. FROM ICSTransferApplication a
  7654. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  7655. 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
  7656. END AS Quantity
  7657. FROM ICSTransferApplication a
  7658. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  7659. AND a.WorkPoint= b.WorkPoint
  7660. ) xx ON xx.Id= a.Id
  7661. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  7662. FROM ICSInventoryLot a
  7663. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  7664. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  7665. GROUP BY
  7666. b.TransCode,
  7667. b.TransSequence
  7668. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  7669. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  7670. WHERE 1 = 1
  7671. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  7672. and a.WorkPoint='{WorkPoint}'";
  7673. sql = string.Format(sql, Figure);
  7674. return Repository().FindTableBySql(sql.ToString());
  7675. }
  7676. /// <summary>
  7677. /// 铭锋 退货调拨申请单生成条码 保存
  7678. /// </summary>
  7679. /// <param name="TransferNO"></param>
  7680. /// <param name="Sequence"></param>
  7681. /// <param name="keyValue"></param>
  7682. /// <param name="WorkPoint"></param>
  7683. /// <returns></returns>
  7684. public int SubmitFormTransferApplicatioSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7685. {
  7686. var queryParam = keyValue.ToJObject();
  7687. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7688. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7689. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7690. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7691. decimal LOTQTY = minPackQty;
  7692. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7693. string sql = string.Empty;
  7694. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7695. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7696. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7697. string sqls = string.Empty;
  7698. string Colspan = "";
  7699. string str1 = "";
  7700. List<string> ExtensionIDList = new List<string>();
  7701. #region 装箱的功能
  7702. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7703. string VenCode = queryParam["VenCode"].ToString();
  7704. int PackCount = 0;//每箱放的数量
  7705. int Pack_YuShu = 0;//需要平摊的数量
  7706. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7707. List<PackModel> List_Pack = new List<PackModel>();
  7708. int ZQty = 0;
  7709. if (createPackCount > 0)
  7710. {
  7711. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7712. if (Pack_YuShu == 0)
  7713. {
  7714. PackCount = (createPageCount / createPackCount);
  7715. }
  7716. else
  7717. {
  7718. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7719. }
  7720. for (int jj = 0; jj < createPackCount; jj++)
  7721. {
  7722. object CARID = Guid.NewGuid();
  7723. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7724. sql += @" INSERT INTO dbo.ICSContainer
  7725. ( ID,ContainerCode ,
  7726. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7727. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7728. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7729. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7730. PackModel PP = new PackModel();
  7731. PP.ID = CARID.ToString();
  7732. PP.PackCode = Carton;
  7733. if (jj < Pack_YuShu)
  7734. {
  7735. PP.FristBarIndex = ZQty;
  7736. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7737. }
  7738. else
  7739. {
  7740. PP.FristBarIndex = ZQty;
  7741. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7742. }
  7743. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7744. List_Pack.Add(PP);
  7745. }
  7746. }
  7747. #endregion
  7748. for (int i = 0; i < createPageCount; i++)
  7749. {
  7750. if (i + 1 == createPageCount)
  7751. {
  7752. if (minPackQty * createPageCount > thisCreateQty)
  7753. {
  7754. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7755. }
  7756. }
  7757. 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();
  7758. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7759. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7760. bool flag = true;
  7761. foreach (var item in ExtensionIDList)
  7762. {
  7763. if (item == Colspan + WorkPoint)
  7764. {
  7765. flag = false;
  7766. }
  7767. }
  7768. if (ExtensionID == null && flag == true)
  7769. {
  7770. str1 = Guid.NewGuid().ToString();
  7771. 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)
  7772. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7773. 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(),
  7774. MUSER, MUSERNAME, WorkPoints);
  7775. }
  7776. else if (ExtensionID != null)
  7777. {
  7778. str1 = ExtensionID.ToString();
  7779. }
  7780. ExtensionIDList.Add(Colspan + WorkPoint);
  7781. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7782. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7783. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7784. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7785. sql += string.Format(@"
  7786. insert into ICSInventoryLot
  7787. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7788. select
  7789. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7790. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7791. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7792. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7793. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7794. sql += "\r\n";
  7795. //装箱的功能
  7796. if (List_Pack.Count > 0)
  7797. {
  7798. PackModel mm = new PackModel();
  7799. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7800. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7801. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7802. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7803. }
  7804. }
  7805. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7806. return count;
  7807. }
  7808. public int SubmitFormTransferApplicatioSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7809. {
  7810. var queryParam = keyValue.ToJObject();
  7811. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7812. //decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7813. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7814. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7815. List<decimal> lotQtys = new List<decimal>();
  7816. foreach (var jLotno in jLotnos)
  7817. {
  7818. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7819. lotQtys.Add(qty);
  7820. }
  7821. int createPageCount = lotQtys.Count();
  7822. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7823. string sql = string.Empty;
  7824. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7825. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7826. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7827. string sqls = string.Empty;
  7828. string Colspan = "";
  7829. string str1 = "";
  7830. List<string> ExtensionIDList = new List<string>();
  7831. #region 装箱的功能
  7832. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7833. string VenCode = queryParam["VenCode"].ToString();
  7834. int PackCount = 0;//每箱放的数量
  7835. int Pack_YuShu = 0;//需要平摊的数量
  7836. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7837. List<PackModel> List_Pack = new List<PackModel>();
  7838. int ZQty = 0;
  7839. if (createPackCount > 0)
  7840. {
  7841. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7842. if (Pack_YuShu == 0)
  7843. {
  7844. PackCount = (createPageCount / createPackCount);
  7845. }
  7846. else
  7847. {
  7848. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7849. }
  7850. for (int jj = 0; jj < createPackCount; jj++)
  7851. {
  7852. object CARID = Guid.NewGuid();
  7853. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7854. sql += @" INSERT INTO dbo.ICSContainer
  7855. ( ID,ContainerCode ,
  7856. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7857. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7858. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7859. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7860. PackModel PP = new PackModel();
  7861. PP.ID = CARID.ToString();
  7862. PP.PackCode = Carton;
  7863. if (jj < Pack_YuShu)
  7864. {
  7865. PP.FristBarIndex = ZQty;
  7866. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7867. }
  7868. else
  7869. {
  7870. PP.FristBarIndex = ZQty;
  7871. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7872. }
  7873. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7874. List_Pack.Add(PP);
  7875. }
  7876. }
  7877. #endregion
  7878. for (int i = 0; i < createPageCount; i++)
  7879. {
  7880. var LOTQTY = lotQtys[i];
  7881. 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();
  7882. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7883. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7884. bool flag = true;
  7885. foreach (var item in ExtensionIDList)
  7886. {
  7887. if (item == Colspan + WorkPoint)
  7888. {
  7889. flag = false;
  7890. }
  7891. }
  7892. if (ExtensionID == null && flag == true)
  7893. {
  7894. str1 = Guid.NewGuid().ToString();
  7895. 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)
  7896. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7897. 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(),
  7898. MUSER, MUSERNAME, WorkPoints);
  7899. }
  7900. else if (ExtensionID != null)
  7901. {
  7902. str1 = ExtensionID.ToString();
  7903. }
  7904. ExtensionIDList.Add(Colspan + WorkPoint);
  7905. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7906. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7907. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7908. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7909. sql += string.Format(@"
  7910. insert into ICSInventoryLot
  7911. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7912. select
  7913. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7914. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7915. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  7916. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7917. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7918. sql += "\r\n";
  7919. //装箱的功能
  7920. if (List_Pack.Count > 0)
  7921. {
  7922. PackModel mm = new PackModel();
  7923. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7924. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7925. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7926. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7927. }
  7928. }
  7929. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7930. return count;
  7931. }
  7932. public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  7933. {
  7934. DataTable dt = new DataTable();
  7935. object Figure = GetDecimalDigits();
  7936. List<DbParameter> parameter = new List<DbParameter>();
  7937. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn014', " + Quantity + ",1,2,'')";
  7938. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7939. string sql = @"
  7940. 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,
  7941. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  7942. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  7943. ,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,
  7944. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7945. from ICSMOPick a
  7946. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7947. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7948. left join (
  7949. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  7950. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18'
  7951. where isnull(a.EATTRIBUTE1,'')=''
  7952. group by b.TransCode,b.TransSequence
  7953. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  7954. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  7955. WHERE 1=1
  7956. and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  7957. sql += " and a.WorkPoint='" + WorkPoint + "'";
  7958. sql = string.Format(sql, Figure);
  7959. return Repository().FindTableBySql(sql.ToString());
  7960. }
  7961. //副产品
  7962. public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  7963. {
  7964. var queryParam = keyValue.ToJObject();
  7965. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7966. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7967. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7968. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7969. decimal LOTQTY = minPackQty;
  7970. string Sequences = Sequence.Replace("~", "");
  7971. string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  7972. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7973. string sql = string.Empty;
  7974. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7975. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7976. string sqls = string.Empty;
  7977. string Colspan = "";
  7978. string str1 = "";
  7979. List<string> ExtensionIDList = new List<string>();
  7980. #region 装箱的功能
  7981. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7982. string VenCode = queryParam["VenCode"].ToString();
  7983. int PackCount = 0;//每箱放的数量
  7984. int Pack_YuShu = 0;//需要平摊的数量
  7985. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7986. List<PackModel> List_Pack = new List<PackModel>();
  7987. int ZQty = 0;
  7988. if (createPackCount > 0)
  7989. {
  7990. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7991. if (Pack_YuShu == 0)
  7992. {
  7993. PackCount = (createPageCount / createPackCount);
  7994. }
  7995. else
  7996. {
  7997. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7998. }
  7999. for (int jj = 0; jj < createPackCount; jj++)
  8000. {
  8001. object CARID = Guid.NewGuid();
  8002. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  8003. sql += @" INSERT INTO dbo.ICSContainer
  8004. ( ID,ContainerCode ,
  8005. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  8006. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  8007. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  8008. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  8009. PackModel PP = new PackModel();
  8010. PP.ID = CARID.ToString();
  8011. PP.PackCode = Carton;
  8012. if (jj < Pack_YuShu)
  8013. {
  8014. PP.FristBarIndex = ZQty;
  8015. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  8016. }
  8017. else
  8018. {
  8019. PP.FristBarIndex = ZQty;
  8020. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  8021. }
  8022. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  8023. List_Pack.Add(PP);
  8024. }
  8025. }
  8026. #endregion
  8027. for (int i = 0; i < createPageCount; i++)
  8028. {
  8029. if (i + 1 == createPageCount)
  8030. {
  8031. if (minPackQty * createPageCount > thisCreateQty)
  8032. {
  8033. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8034. }
  8035. }
  8036. 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();
  8037. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8038. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8039. bool flag = true;
  8040. foreach (var item in ExtensionIDList)
  8041. {
  8042. if (item == Colspan + WorkPoint)
  8043. {
  8044. flag = false;
  8045. }
  8046. }
  8047. if (ExtensionID == null && flag == true)
  8048. {
  8049. str1 = Guid.NewGuid().ToString();
  8050. 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)
  8051. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8052. 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(),
  8053. MUSER, MUSERNAME, WorkPoints);
  8054. }
  8055. else if (ExtensionID != null)
  8056. {
  8057. str1 = ExtensionID.ToString();
  8058. }
  8059. ExtensionIDList.Add(Colspan + WorkPoint);
  8060. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8061. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8062. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  8063. LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  8064. sql += string.Format(@"insert into ICSInventoryLot
  8065. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  8066. select
  8067. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  8068. 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}' ",
  8069. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  8070. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  8071. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  8072. sql += "\r\n";
  8073. //装箱的功能
  8074. if (List_Pack.Count > 0)
  8075. {
  8076. PackModel mm = new PackModel();
  8077. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  8078. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  8079. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  8080. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  8081. }
  8082. }
  8083. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8084. return count;
  8085. }
  8086. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty, string InvCode, string Quantitys)
  8087. {
  8088. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8089. DataTable dt = new DataTable();
  8090. List<DbParameter> parameter = new List<DbParameter>();
  8091. string sql = string.Empty;
  8092. bool flag = true;
  8093. if (Type == "1")
  8094. {
  8095. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn017', " + Quantitys + ",1,2,'')";
  8096. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8097. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8098. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8099. from ICSMOApplyNegDetail a
  8100. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  8101. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8102. left join (
  8103. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8104. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  8105. where isnull(ee.EATTRIBUTE1,'')=''
  8106. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8107. )c
  8108. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8109. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8110. where d.Type='1' and d.Status='2'
  8111. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8112. }
  8113. if (Type == "2")
  8114. {
  8115. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn008', " + Quantitys + ",1,2,'')";
  8116. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8117. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8118. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8119. from ICSOApplyNegDetail a
  8120. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  8121. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8122. left join (
  8123. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8124. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  8125. where isnull(ee.EATTRIBUTE1,'')=''
  8126. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8127. )c
  8128. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8129. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8130. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8131. }
  8132. if (Type == "3")
  8133. {
  8134. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn011', " + Quantitys + ",1,2,'')";
  8135. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8136. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8137. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8138. from ICSMO a
  8139. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8140. left join (
  8141. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8142. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  8143. where isnull(ee.EATTRIBUTE1,'')=''
  8144. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8145. )c
  8146. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8147. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8148. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8149. }
  8150. if (Type == "4")
  8151. {
  8152. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn020', " + Quantitys + ",1,3,'')";
  8153. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8154. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8155. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8156. from ICSSDN a
  8157. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8158. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8159. left join(select a.SDNCode,a.Sequence,a.WorkPoint,
  8160. 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
  8161. from ICSSDN a
  8162. 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
  8163. left join (
  8164. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8165. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  8166. where isnull(ee.EATTRIBUTE1,'')=''
  8167. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8168. )c
  8169. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8170. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8171. where a.Type='2'
  8172. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8173. }
  8174. if (Type == "5")
  8175. {
  8176. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn021', " + Quantitys + ",1,4,'')";
  8177. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8178. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8179. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8180. from ICSOtherIn a
  8181. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8182. left join(select a.InCode,a.Sequence,a.WorkPoint,
  8183. 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
  8184. from ICSOtherIn a
  8185. 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
  8186. left join (
  8187. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8188. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  8189. where isnull(ee.EATTRIBUTE1,'')=''
  8190. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8191. )c
  8192. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8193. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8194. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1'
  8195. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8196. }
  8197. if (Type == "6")
  8198. {
  8199. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn023', " + Quantitys + ",1,4,'')";
  8200. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8201. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8202. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8203. from ICSReturn a
  8204. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8205. left join(select a.ReturnCode,a.Sequence,a.WorkPoint,
  8206. 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
  8207. from ICSReturn a
  8208. 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
  8209. left join (
  8210. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8211. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  8212. where isnull(ee.EATTRIBUTE1,'')=''
  8213. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8214. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8215. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8216. where a.Status='2'
  8217. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8218. }
  8219. if (Type == "7")
  8220. {
  8221. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn002', " + Quantitys + ",1,1,'')";
  8222. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8223. //锐腾添加退补逻辑
  8224. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  8225. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8226. from ICSDeliveryNotice a
  8227. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8228. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  8229. " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  8230. from ICSDeliveryNotice a
  8231. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8232. left join (SELECT ISNULL(SUM(ISNULL(Quantity,0)),0) AS Quantity,EATTRIBUTE8,WorkPoint,DNType,EATTRIBUTE7
  8233. FROM ICSDeliveryNotice WHERE DNType='2' and EATTRIBUTE7='退'
  8234. GROUP BY EATTRIBUTE7,EATTRIBUTE8,DNType,WorkPoint) f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint
  8235. 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
  8236. left join (
  8237. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8238. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  8239. where isnull(ee.EATTRIBUTE1,'')=''
  8240. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8241. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8242. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  8243. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8244. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8245. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  8246. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8247. }
  8248. if (Type == "8")
  8249. {
  8250. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn005', " + Quantitys + ",1,1,'')";
  8251. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8252. //锐腾添加退补逻辑
  8253. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  8254. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8255. from ICSODeliveryNotice a
  8256. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8257. left join(select a.ODNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  8258. from ICSODeliveryNotice a
  8259. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8260. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  8261. 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
  8262. left join (
  8263. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8264. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  8265. where isnull(ee.EATTRIBUTE1,'')=''
  8266. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8267. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8268. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  8269. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8270. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8271. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  8272. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8273. }
  8274. if (Type == "9")
  8275. {
  8276. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn013', " + Quantitys + ",1,2,'')";
  8277. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8278. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8279. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8280. from ICSManufactureReceive a
  8281. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8282. left join (
  8283. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8284. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  8285. where isnull(ee.EATTRIBUTE1,'')=''
  8286. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8287. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8288. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8289. where a.Status='1' and a.Type='1'
  8290. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8291. }
  8292. if (Type == "10")
  8293. {
  8294. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn003', " + Quantitys + ",1,1,'')";
  8295. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8296. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8297. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8298. from ICSDeliveryNotice a
  8299. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8300. left join (
  8301. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8302. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  8303. where isnull(ee.EATTRIBUTE1,'')=''
  8304. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8305. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8306. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  8307. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8308. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8309. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  8310. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8311. }
  8312. if (Type == "11")
  8313. {
  8314. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn006', " + Quantitys + ",1,1,'')";
  8315. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8316. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8317. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8318. from ICSODeliveryNotice a
  8319. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8320. left join (
  8321. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8322. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  8323. where isnull(ee.EATTRIBUTE1,'')=''
  8324. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8325. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8326. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  8327. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  8328. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8329. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  8330. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8331. }
  8332. if (Type == "12")
  8333. {
  8334. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn018', " + Quantitys + ",1,2,'')";
  8335. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8336. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8337. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8338. from ICSMOApplyNegDetail a
  8339. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  8340. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8341. left join (
  8342. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8343. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  8344. where isnull(ee.EATTRIBUTE1,'')=''
  8345. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8346. )c
  8347. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8348. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8349. WHERE d.Type='2' and d.Status='2'
  8350. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8351. }
  8352. if (Type == "13")
  8353. {
  8354. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn019', " + Quantitys + ",1,2,'')";
  8355. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8356. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8357. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8358. from ICSMOApplyNegDetail a
  8359. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  8360. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8361. left join (
  8362. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8363. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  8364. where isnull(ee.EATTRIBUTE1,'')=''
  8365. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8366. )c
  8367. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8368. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8369. WHERE d.Type='3' and d.Status='2'
  8370. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8371. }
  8372. if (Type == "14")
  8373. {
  8374. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn009', " + Quantitys + ",1,1,'')";
  8375. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8376. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8377. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8378. from ICSOApplyNegDetail a
  8379. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  8380. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8381. left join (
  8382. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8383. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  8384. where isnull(ee.EATTRIBUTE1,'')=''
  8385. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8386. )c
  8387. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8388. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8389. WHERE d.Type='2'
  8390. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8391. }
  8392. if (Type == "15")
  8393. {
  8394. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn010', " + Quantitys + ",1,1,'')";
  8395. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8396. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8397. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8398. from ICSOApplyNegDetail a
  8399. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  8400. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8401. left join (
  8402. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8403. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  8404. where isnull(ee.EATTRIBUTE1,'')=''
  8405. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8406. )c
  8407. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8408. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8409. WHERE d.Type='3'
  8410. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8411. }
  8412. if (Type == "16")
  8413. {
  8414. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn015', " + Quantitys + ",1,2,'')";
  8415. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8416. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8417. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8418. from ICSMOPick a
  8419. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  8420. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8421. left join (
  8422. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8423. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  8424. where isnull(ee.EATTRIBUTE1,'')=''
  8425. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8426. )c
  8427. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8428. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8429. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  8430. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8431. }
  8432. if (Type == "18")
  8433. {
  8434. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn014', " + Quantitys + ",1,2,'')";
  8435. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8436. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8437. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8438. from ICSMOPick a
  8439. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  8440. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8441. left join (
  8442. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8443. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  8444. where isnull(ee.EATTRIBUTE1,'')=''
  8445. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8446. )c
  8447. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8448. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8449. where a.EATTRIBUTE1='1'
  8450. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8451. }
  8452. if (Type == "22")
  8453. {
  8454. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  8455. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8456. from ICSPurchaseReceive a
  8457. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8458. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8459. 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
  8460. from ICSPurchaseReceive a
  8461. 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
  8462. left join (
  8463. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8464. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  8465. where isnull(ee.EATTRIBUTE1,'')=''
  8466. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8467. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8468. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8469. where a.Status='1'
  8470. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8471. }
  8472. if (Type == "23")
  8473. {
  8474. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  8475. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8476. from ICSOutsourcingReceive a
  8477. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8478. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8479. 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
  8480. from ICSOutsourcingReceive a
  8481. 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
  8482. left join (
  8483. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8484. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  8485. where isnull(ee.EATTRIBUTE1,'')=''
  8486. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8487. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8488. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8489. where a.Status='1'
  8490. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8491. }
  8492. if (Type == "24")
  8493. {
  8494. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn026', " + Quantitys + ",1,3,'')";
  8495. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8496. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8497. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8498. from ICSSSD a
  8499. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8500. left join(select a.SDNCode,a.SDNSequence Sequence,a.WorkPoint,
  8501. 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
  8502. from ICSSSD a
  8503. 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
  8504. left join (
  8505. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8506. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  8507. where isnull(ee.EATTRIBUTE1,'')=''
  8508. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8509. )c
  8510. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8511. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8512. where a.Status='1' and a.Type='2'
  8513. and a.SSDCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8514. }
  8515. dt = SqlHelper.GetDataTableBySql(sql);
  8516. decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  8517. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  8518. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  8519. if (LOTQTY + thisQty > Quantity)
  8520. {
  8521. flag = false;
  8522. }
  8523. return flag;
  8524. }
  8525. /// <summary>
  8526. /// 开立成品入库单(一键生成)
  8527. /// </summary>
  8528. public int SubmitFormKLCPRKALL(string keyValue)
  8529. {
  8530. string sql = string.Empty;
  8531. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8532. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8533. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8534. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8535. foreach (var item in res)
  8536. {
  8537. JObject jo = (JObject)item;
  8538. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8539. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8540. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8541. decimal LOTQTY = minPackQty;
  8542. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8543. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8544. string sqls = string.Empty;
  8545. string Colspan = "";
  8546. string str1 = "";
  8547. List<string> ExtensionIDList = new List<string>();
  8548. for (int i = 0; i < createPageCount; i++)
  8549. {
  8550. if (i + 1 == createPageCount)
  8551. {
  8552. if (minPackQty * createPageCount > thisCreateQty)
  8553. {
  8554. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8555. }
  8556. }
  8557. 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();
  8558. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8559. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8560. bool flag = true;
  8561. foreach (var items in ExtensionIDList)
  8562. {
  8563. if (items == Colspan + WorkPoint)
  8564. {
  8565. flag = false;
  8566. }
  8567. }
  8568. if (ExtensionID == null && flag == true)
  8569. {
  8570. str1 = Guid.NewGuid().ToString();
  8571. 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)
  8572. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8573. 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(),
  8574. MUSER, MUSERNAME, WorkPoint);
  8575. }
  8576. else if (ExtensionID != null)
  8577. {
  8578. str1 = ExtensionID.ToString();
  8579. }
  8580. ExtensionIDList.Add(Colspan + WorkPoint);
  8581. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8582. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8583. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8584. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8585. sql += string.Format(@"
  8586. insert into ICSInventoryLot
  8587. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8588. select
  8589. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  8590. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8591. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8592. sql += "\r\n";
  8593. }
  8594. }
  8595. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8596. return count;
  8597. }
  8598. /// <summary>
  8599. /// 审核到货单生成条码(一键生成)
  8600. /// </summary>
  8601. /// <param name="POCode"></param>
  8602. /// <param name="PORow"></param>
  8603. /// <param name="keyValue"></param>
  8604. /// 已改
  8605. /// <returns></returns>
  8606. public int SubmitFormSHDHALL(string keyValue)
  8607. {
  8608. string sql = string.Empty;
  8609. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8610. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8611. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8612. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8613. foreach (var resItem in res)
  8614. {
  8615. JObject jo = (JObject)resItem;
  8616. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8617. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8618. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8619. decimal LOTQTY = minPackQty;
  8620. string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8621. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8622. string sqls = string.Empty;
  8623. string Colspan = "";
  8624. string str1 = "";
  8625. List<string> ExtensionIDList = new List<string>();
  8626. for (int i = 0; i < createPageCount; i++)
  8627. {
  8628. if (i + 1 == createPageCount)
  8629. {
  8630. if (minPackQty * createPageCount > thisCreateQty)
  8631. {
  8632. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8633. }
  8634. }
  8635. 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();
  8636. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8637. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8638. bool flag = true;
  8639. foreach (var item in ExtensionIDList)
  8640. {
  8641. if (item == Colspan + WorkPoint)
  8642. {
  8643. flag = false;
  8644. }
  8645. }
  8646. if (ExtensionID == null && flag == true)
  8647. {
  8648. str1 = Guid.NewGuid().ToString();
  8649. 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)
  8650. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8651. 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(),
  8652. MUSER, MUSERNAME, WorkPoint);
  8653. }
  8654. else if (ExtensionID != null)
  8655. {
  8656. str1 = ExtensionID.ToString();
  8657. }
  8658. ExtensionIDList.Add(Colspan + WorkPoint);
  8659. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8660. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8661. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  8662. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8663. sql += string.Format(@"
  8664. insert into ICSInventoryLot
  8665. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8666. select
  8667. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  8668. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8669. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8670. sql += "\r\n";
  8671. }
  8672. }
  8673. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8674. return count;
  8675. }
  8676. /// <summary>
  8677. /// 审核委外到货单生成条码(一键生成)
  8678. /// </summary>
  8679. /// <param name="POCode"></param>
  8680. /// <param name="PORow"></param>
  8681. /// <param name="keyValue"></param>
  8682. /// 已改
  8683. /// <returns></returns>
  8684. public int SubmitFormWWSHDHALL(string keyValue)
  8685. {
  8686. string sql = string.Empty;
  8687. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8688. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8689. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8690. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8691. foreach (var resItem in res)
  8692. {
  8693. JObject jo = (JObject)resItem;
  8694. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8695. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8696. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8697. decimal LOTQTY = minPackQty;
  8698. string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8699. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8700. string sqls = string.Empty;
  8701. string Colspan = "";
  8702. string str1 = "";
  8703. List<string> ExtensionIDList = new List<string>();
  8704. for (int i = 0; i < createPageCount; i++)
  8705. {
  8706. if (i + 1 == createPageCount)
  8707. {
  8708. if (minPackQty * createPageCount > thisCreateQty)
  8709. {
  8710. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8711. }
  8712. }
  8713. 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();
  8714. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8715. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8716. bool flag = true;
  8717. foreach (var item in ExtensionIDList)
  8718. {
  8719. if (item == Colspan + WorkPoint)
  8720. {
  8721. flag = false;
  8722. }
  8723. }
  8724. if (ExtensionID == null && flag == true)
  8725. {
  8726. str1 = Guid.NewGuid().ToString();
  8727. 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)
  8728. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8729. 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(),
  8730. MUSER, MUSERNAME, WorkPoint);
  8731. }
  8732. else if (ExtensionID != null)
  8733. {
  8734. str1 = ExtensionID.ToString();
  8735. }
  8736. ExtensionIDList.Add(Colspan + WorkPoint);
  8737. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8738. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8739. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8740. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]);
  8741. sql += string.Format(@"
  8742. insert into ICSInventoryLot
  8743. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8744. select
  8745. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  8746. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8747. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8748. sql += "\r\n";
  8749. }
  8750. }
  8751. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8752. return count;
  8753. }
  8754. public DataTable SelectICSColumnEnableForLotEnable()
  8755. {
  8756. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8757. string sql = @" select ColumnCode from ICSColumnEnable
  8758. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
  8759. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8760. return dt;
  8761. }
  8762. public DataTable GetLoadShowForColumn()
  8763. {
  8764. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8765. string sql = @"
  8766. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
  8767. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8768. return dt;
  8769. }
  8770. public string GetAMEnable()
  8771. {
  8772. string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
  8773. return Code;
  8774. }
  8775. public DataTable SeachMeasure()
  8776. {
  8777. DataTable dt = new DataTable();
  8778. List<DbParameter> parameter = new List<DbParameter>();
  8779. string sql = @" SELECT Top 1 a.F_ItemCode as Code
  8780. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8781. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8782. WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
  8783. return Repository().FindTableBySql(sql.ToString());
  8784. }
  8785. public DataTable SeachLableofDisable()
  8786. {
  8787. DataTable dt = new DataTable();
  8788. List<DbParameter> parameter = new List<DbParameter>();
  8789. string sql = @"
  8790. SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
  8791. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8792. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8793. WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
  8794. return Repository().FindTableBySql(sql.ToString());
  8795. }
  8796. public DataTable SeachAmountEnablebyInvCode(string InvCode)
  8797. {
  8798. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8799. DataTable dt = new DataTable();
  8800. List<DbParameter> parameter = new List<DbParameter>();
  8801. string sql = @"
  8802. select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8803. return Repository().FindTableBySql(sql.ToString());
  8804. }
  8805. public DataTable SeachDatabyInvCode(string InvCode)
  8806. {
  8807. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8808. DataTable dt = new DataTable();
  8809. List<DbParameter> parameter = new List<DbParameter>();
  8810. string sql = @"
  8811. select isnull(AmountEnable,0) as AmountEnable,
  8812. isnull(ContainerEnable,0) ContainerEnable
  8813. from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8814. return Repository().FindTableBySql(sql.ToString());
  8815. }
  8816. public string LotBindCode(String savePath, string Code, string Sequence)
  8817. {
  8818. //数据获取
  8819. try
  8820. {
  8821. int index = 1;
  8822. string msg = "";
  8823. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8824. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8825. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8826. SqlConnection conn = SqlHelper.GetDataCenterConn();
  8827. string sql = "";
  8828. int count = 0;
  8829. DataTable data = FileToExcel.ExcelToTable(savePath);
  8830. int totalNum = data.AsEnumerable().Sum(row => int.Parse(row.Field<string>("条码数量")));
  8831. string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
  8832. case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
  8833. a.ExtensionID
  8834. from ICSMO a
  8835. left join (
  8836. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  8837. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  8838. where isnull(a.EATTRIBUTE1,'')=''
  8839. group by b.TransCode,b.TransSequence
  8840. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  8841. 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}'";
  8842. sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
  8843. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
  8844. string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
  8845. string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString();
  8846. string InvCode = dd.Rows[0]["InvCode"].ToString();
  8847. decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
  8848. decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
  8849. decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
  8850. decimal SQTY = CQuantity - CLOTQTY;
  8851. if (totalNum > SQTY)
  8852. {
  8853. throw new Exception("单号: " + Code + "行号" + Sequence + " 所导入条码数量超出该单据可生成数量,该单据剩余可生成数量为" + SQTY + "!");
  8854. }
  8855. // string CodeSequence = "";
  8856. foreach (DataRow dr in data.Rows)
  8857. {
  8858. index++;
  8859. //string GUID = Guid.NewGuid().ToString();
  8860. // string Code = dr["单据号"].ToString().Trim().ToUpper();
  8861. // string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
  8862. string LotNo = dr["条码"].ToString().Trim().ToUpper();
  8863. string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
  8864. //if (CodeSequence != "" && CodeSequence != Code + Sequence)
  8865. //{
  8866. // throw new Exception("一次只能导入同一单据数据!");
  8867. //}
  8868. //else
  8869. //{
  8870. // CodeSequence = Code + Sequence;
  8871. //}
  8872. if (Code == "" || Code == null)
  8873. {
  8874. throw new Exception("第 " + index + " 行单据号不能为空!");
  8875. }
  8876. if (Sequence == "" || Sequence == null)
  8877. {
  8878. throw new Exception("第 " + index + " 行单据行号不能为空!");
  8879. }
  8880. if (LotNo == "" || LotNo == null)
  8881. {
  8882. throw new Exception("第 " + index + " 行条码不能为空!");
  8883. }
  8884. if (Quantity == "" || Quantity == null)
  8885. {
  8886. throw new Exception("第 " + index + " 行条码数量不能为空!");
  8887. }
  8888. //if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY))
  8889. //{
  8890. // decimal SQTY = CQuantity - CLOTQTY;
  8891. // throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量,该单据剩余可生成数量为"+ SQTY + "!");
  8892. //}
  8893. var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
  8894. sql += @"Insert INto ICSInventoryLot
  8895. ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
  8896. Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
  8897. ";
  8898. sql += @" Insert INto ICSInventoryLotDetail
  8899. ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  8900. Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
  8901. sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
  8902. }
  8903. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8904. if (count > 0)
  8905. {
  8906. msg = "导入成功";
  8907. }
  8908. else
  8909. {
  8910. return "无有效的导入数据。";
  8911. }
  8912. return msg;
  8913. }
  8914. catch (Exception ex)
  8915. {
  8916. return ex.Message;
  8917. }
  8918. }
  8919. /// <summary>
  8920. /// 生产退料(一键生成)
  8921. /// </summary>
  8922. public int SubmitFormGDTLALL(string keyValue)
  8923. {
  8924. string sql = string.Empty;
  8925. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8926. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8927. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8928. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8929. foreach (var item in res)
  8930. {
  8931. JObject jo = (JObject)item;
  8932. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8933. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8934. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8935. decimal LOTQTY = minPackQty;
  8936. string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8937. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8938. string sqls = string.Empty;
  8939. string Colspan = "";
  8940. string str1 = "";
  8941. List<string> ExtensionIDList = new List<string>();
  8942. for (int i = 0; i < createPageCount; i++)
  8943. {
  8944. if (i + 1 == createPageCount)
  8945. {
  8946. if (minPackQty * createPageCount > thisCreateQty)
  8947. {
  8948. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8949. }
  8950. }
  8951. 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();
  8952. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8953. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8954. bool flag = true;
  8955. foreach (var items in ExtensionIDList)
  8956. {
  8957. if (items == Colspan + WorkPoint)
  8958. {
  8959. flag = false;
  8960. }
  8961. }
  8962. if (ExtensionID == null && flag == true)
  8963. {
  8964. str1 = Guid.NewGuid().ToString();
  8965. 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)
  8966. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8967. 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(),
  8968. MUSER, MUSERNAME, WorkPoint);
  8969. }
  8970. else if (ExtensionID != null)
  8971. {
  8972. str1 = ExtensionID.ToString();
  8973. }
  8974. ExtensionIDList.Add(Colspan + WorkPoint);
  8975. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8976. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8977. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8978. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8979. sql += string.Format(@"
  8980. insert into ICSInventoryLot
  8981. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8982. select
  8983. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  8984. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8985. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8986. sql += "\r\n";
  8987. }
  8988. }
  8989. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8990. return count;
  8991. }
  8992. /// <summary>
  8993. /// 工单成品生成条码(一键生成)
  8994. /// </summary>
  8995. public int SubmitFormChengPingALL(string keyValue)
  8996. {
  8997. try
  8998. {
  8999. string sql = string.Empty;
  9000. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9001. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9002. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9003. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  9004. foreach (var item in res)
  9005. {
  9006. JObject jo = (JObject)item;
  9007. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  9008. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  9009. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  9010. decimal LOTQTY = minPackQty;
  9011. string Pre = "CP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  9012. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  9013. string sqls = string.Empty;
  9014. string Colspan = "";
  9015. string str1 = "";
  9016. List<string> ExtensionIDList = new List<string>();
  9017. for (int i = 0; i < createPageCount; i++)
  9018. {
  9019. if (i + 1 == createPageCount)
  9020. {
  9021. if (minPackQty * createPageCount > thisCreateQty)
  9022. {
  9023. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9024. }
  9025. }
  9026. 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();
  9027. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9028. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9029. bool flag = true;
  9030. foreach (var items in ExtensionIDList)
  9031. {
  9032. if (items == Colspan + WorkPoint)
  9033. {
  9034. flag = false;
  9035. }
  9036. }
  9037. if (ExtensionID == null && flag == true)
  9038. {
  9039. str1 = Guid.NewGuid().ToString();
  9040. 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)
  9041. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9042. 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(),
  9043. MUSER, MUSERNAME, WorkPoint);
  9044. }
  9045. else if (ExtensionID != null)
  9046. {
  9047. str1 = ExtensionID.ToString();
  9048. }
  9049. ExtensionIDList.Add(Colspan + WorkPoint);
  9050. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9051. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9052. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9053. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  9054. sql += string.Format(@"
  9055. insert into ICSInventoryLot
  9056. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  9057. select
  9058. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}'
  9059. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9060. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  9061. sql += "\r\n";
  9062. }
  9063. }
  9064. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9065. return count;
  9066. }
  9067. catch (Exception ex)
  9068. {
  9069. throw new Exception(ex.Message);
  9070. }
  9071. }
  9072. /// <summary>
  9073. /// 自动生成批次信息
  9074. /// </summary>
  9075. /// <param name="InvCode"></param>
  9076. /// <param name="WorkPoint"></param>
  9077. /// <returns></returns>
  9078. public DataTable GetVendorBatch()
  9079. {
  9080. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9081. string pre = "C" + DateTime.Now.ToString("yyyyMMdd");
  9082. //var queryParam = queryJson.ToJObject();
  9083. //List<DbParameter> parameter = new List<DbParameter>();
  9084. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  9085. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  9086. return Repository().FindTableBySql(sql.ToString());
  9087. }
  9088. public DataTable GetVendorBatchBYInvCode(string InvCode, string WorkPoint)
  9089. {
  9090. DataTable dt = new DataTable();
  9091. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  9092. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  9093. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  9094. string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
  9095. //var queryParam = queryJson.ToJObject();
  9096. //List<DbParameter> parameter = new List<DbParameter>();
  9097. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  9098. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  9099. return Repository().FindTableBySql(sql.ToString());
  9100. }
  9101. public DataTable GetReworkMo(string invcode, string Code, string SourceCode, ref Pagination jqgridparam)
  9102. {
  9103. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9104. List<DbParameter> parameter = new List<DbParameter>();
  9105. DataTable table = new DataTable();
  9106. string wherestr = "";
  9107. if (!string.IsNullOrEmpty(invcode))
  9108. {
  9109. wherestr += " and a.InvCode like '%" + invcode + "%'";
  9110. }
  9111. if (!string.IsNullOrEmpty(Code))
  9112. {
  9113. wherestr += " and a.MOCode like '%" + Code + "%'";
  9114. }
  9115. string sql = @"SELECT
  9116. a.ID,
  9117. a.MOCode,
  9118. a.Sequence,
  9119. a.InvCode,
  9120. a.Quantity,
  9121. a.Amount,
  9122. a.RCVQuantity,
  9123. a.DepCode,
  9124. a.WHCode,
  9125. a.StartDate,
  9126. a.DueDate,
  9127. a.MOType,
  9128. a.MOStatus,
  9129. a.MOMemo,
  9130. a.CreatePerson,
  9131. a.CreateDateTime,
  9132. a.ERPStatus,
  9133. a.MOID,
  9134. a.MODetailID,
  9135. a.ExtensionID,
  9136. a.MUSER,
  9137. a.MUSERName,
  9138. a.MTIME,
  9139. a.WorkPoint,
  9140. a.EATTRIBUTE1,
  9141. a.EATTRIBUTE2,
  9142. a.EATTRIBUTE3,
  9143. a.EATTRIBUTE4,
  9144. a.EATTRIBUTE5,
  9145. a.EATTRIBUTE6,
  9146. a.EATTRIBUTE7,
  9147. a.EATTRIBUTE8,
  9148. a.EATTRIBUTE9,
  9149. a.EATTRIBUTE10,
  9150. b.InvName,
  9151. b.InvStd,
  9152. b.InvUnit
  9153. from
  9154. dbo.ICSMO a
  9155. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9156. where a.EATTRIBUTE1='1' and a.MOStatus<>'3' and a.WorkPoint = '" + WorkPoint + "'" + wherestr;
  9157. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9158. }
  9159. //修改形态转换
  9160. public string LotReworkBind(string LotNo, string Code, string Sequence, string ExtensionID)
  9161. {
  9162. string Colspan = "";
  9163. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9164. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9165. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9166. string msg = "";
  9167. string MTDOCCode = "";
  9168. DateTime TimeNow = DateTime.Now;
  9169. string sql = string.Empty;
  9170. //修改条码绑定关系
  9171. sql += @"update dbo.ICSInventoryLotDetail set TransCode='{0}' ,TransSequence='{1}' where LotNo in({2}) and WorkPoint='{3}'";
  9172. //修改条码批次
  9173. sql += @"update dbo.ICSInventoryLot set ExtensionID='{4}' where LotNo in({2}) and WorkPoint='{3}'";
  9174. //删除条码库存
  9175. sql += @"delete dbo.ICSWareHouseLotInfo where LotNo in({2}) and WorkPoint='{3}' ";
  9176. sql = string.Format(sql, Code, Sequence, LotNo, WorkPoint, ExtensionID);
  9177. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  9178. {
  9179. msg = "";
  9180. }
  9181. else
  9182. {
  9183. msg = "条码重新绑定失败!";
  9184. }
  9185. return msg;
  9186. }
  9187. /// <summary>
  9188. /// 一键退库(咖博士新增需求:根据生产退料单,B2、C类物料可以实现一键退库操作),调用PDA上架接口
  9189. /// </summary>
  9190. /// <param name="IDs"></param>
  9191. /// <returns></returns>
  9192. public string PostInWareHouse(string IDs)
  9193. {
  9194. string Colspan = "";
  9195. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9196. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9197. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9198. string msg = "";
  9199. DateTime TimeNow = DateTime.Now;
  9200. string sql = string.Empty;
  9201. try
  9202. {
  9203. IDs = IDs.Substring(1, IDs.Length - 2);
  9204. //1.获取退料单中的B2和C类物料,检验是否全部生成条码,没有生成条码的单据需要先生成条码后一键退库
  9205. 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' ;
  9206. 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' ";
  9207. string whereSql2 = @"
  9208. 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' ";
  9209. DataTable dataTable1 = SqlHelper.CmdExecuteDataTable(whereSql1);
  9210. DataTable dataTable2 = SqlHelper.CmdExecuteDataTable(whereSql2);
  9211. if (dataTable1.Rows.Count <= 0)
  9212. {
  9213. throw new Exception("请先再自定义档案配置需要一键退库的物料信息!");
  9214. }
  9215. if (dataTable2.Rows.Count <= 0)
  9216. {
  9217. throw new Exception("请先再自定义档案配置需要一键退库的仓库库位信息!");
  9218. }
  9219. //判断是否全部生成条码
  9220. string isCreate = $@" SELECT a.ApplyNegCode,a.Sequence,a.Quantity,sum(isnull(c.Quantity,0)) as LotQuantity
  9221. FROM ICSMOApplyNegDetail a
  9222. left JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  9223. left JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  9224. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  9225. WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]}
  9226. GROUP BY a.Quantity,a.Id,a.ApplyNegCode,a.Sequence ";
  9227. DataTable isCreatedt = SqlHelper.CmdExecuteDataTable(isCreate);
  9228. if (isCreatedt.Rows.Count <= 0)
  9229. {
  9230. throw new Exception("请先确认退料单物料类别信息,然后确认自定义档案配置可以自动出库的物料信息!");
  9231. }
  9232. else
  9233. {
  9234. for (int i = 0; i < isCreatedt.Rows.Count; i++)
  9235. {
  9236. if (isCreatedt.Rows[i]["Quantity"].ToDecimal() != isCreatedt.Rows[i]["LotQuantity"].ToDecimal())
  9237. {
  9238. throw new Exception($"请先将单据:{isCreatedt.Rows[i]["ApplyNegCode"]},行号:{isCreatedt.Rows[i]["Sequence"]} ,全部生成条码!");
  9239. }
  9240. }
  9241. }
  9242. //查询需要入库的条码信息
  9243. sql = $@" SELECT a.ApplyNegCode,a.Sequence,c.LotNo,c.Quantity,c.InvCode FROM ICSMOApplyNegDetail a
  9244. INNER JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  9245. INNER JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  9246. LEFT JOIN ICSWareHouseLotInfo d ON d.LotNo=c.LotNo AND d.WorkPoint=c.WorkPoint
  9247. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  9248. WHERE
  9249. a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} AND
  9250. d.ID is null ";
  9251. //2.查询退料的条码和退料的条码数量,拼接参数,调用PDA接口
  9252. var getSql = SqlHelper.CmdExecuteDataTable(sql);
  9253. if (getSql.Rows.Count > 0)
  9254. {
  9255. List<LOTStockUpCreateIModel> models = new List<LOTStockUpCreateIModel>();
  9256. LOTStockUpCreateIModel model = new LOTStockUpCreateIModel
  9257. {
  9258. User = MUSER,
  9259. MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"),
  9260. WorkPoint = WorkPoint,
  9261. TransType = "生产退料-生产退料单"
  9262. };
  9263. model.detail = new List<LOTStockUpCreateIModelList>();
  9264. for (int i = 0; i < getSql.Rows.Count; i++)
  9265. {
  9266. LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList
  9267. {
  9268. LotNo = getSql.Rows[i]["LotNo"].ToString(),
  9269. WarehouseCode = dataTable2.Rows[0]["F_Define1"].ToString(),
  9270. LocationCode = dataTable2.Rows[0]["F_Define2"].ToString(),
  9271. TransCode = getSql.Rows[i]["ApplyNegCode"].ToString(),
  9272. TransSequence = getSql.Rows[i]["Sequence"].ToString(),
  9273. Quantity = getSql.Rows[i]["Quantity"].ToString(),
  9274. InvCode = getSql.Rows[i]["InvCode"].ToString()
  9275. };
  9276. model.detail.Add(detail);
  9277. }
  9278. models.Add(model);
  9279. var input = models.ToJson();
  9280. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create";
  9281. string result = HttpPost(APIURL, input);
  9282. Result res = result.ToObject<Result>();
  9283. if (!res.Success)
  9284. {
  9285. throw new Exception(res.Message);
  9286. }
  9287. msg = "";
  9288. }
  9289. return msg;
  9290. }
  9291. catch (Exception ex)
  9292. {
  9293. throw new Exception(ex.Message);
  9294. }
  9295. }
  9296. /// <summary>
  9297. /// 红字销售出库单生成条码列表数据
  9298. /// </summary>
  9299. /// <param name="queryJson"></param>
  9300. /// <param name="jqgridparam"></param>
  9301. /// <returns></returns>
  9302. public DataTable GetGridJsonWMSSSD(string queryJson, ref Pagination jqgridparam)
  9303. {
  9304. DataTable dt = new DataTable();
  9305. var queryParam = queryJson.ToJObject();
  9306. List<DbParameter> parameter = new List<DbParameter>();
  9307. object Figure = GetDecimalDigits();
  9308. #region [SQL]
  9309. 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,
  9310. CAST(c.LOTQTY AS DECIMAL(38,6)) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  9311. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  9312. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9313. ,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,
  9314. a.EATTRIBUTE9,a.EATTRIBUTE10
  9315. from ICSSSD a
  9316. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9317. left join (
  9318. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9319. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='24'
  9320. where isnull(ee.EATTRIBUTE1,'')=''
  9321. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9322. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9323. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9324. where a.Type='2' and a.Status='1' ";
  9325. sql = string.Format(sql, Figure);
  9326. #endregion
  9327. if (!string.IsNullOrWhiteSpace(queryJson))
  9328. {
  9329. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9330. {
  9331. sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' ";
  9332. }
  9333. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  9334. {
  9335. sql += " and a.CusCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  9336. }
  9337. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  9338. {
  9339. sql += " and a.CusName like '%" + queryParam["VenName"].ToString() + "%' ";
  9340. }
  9341. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9342. {
  9343. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9344. }
  9345. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9346. {
  9347. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9348. }
  9349. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9350. {
  9351. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9352. }
  9353. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  9354. {
  9355. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  9356. }
  9357. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  9358. {
  9359. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  9360. }
  9361. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  9362. {
  9363. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  9364. }
  9365. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9366. {
  9367. string POStatus = queryParam["POStatus"].ToString();
  9368. if (POStatus == "0")
  9369. {
  9370. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9371. }
  9372. else if (POStatus == "1")
  9373. {
  9374. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  9375. }
  9376. else
  9377. {
  9378. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  9379. }
  9380. }
  9381. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  9382. {
  9383. string WHStatus = queryParam["WHStatus"].ToString();
  9384. if (WHStatus == "0")
  9385. {
  9386. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9387. }
  9388. else if (WHStatus == "1")
  9389. {
  9390. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)>0";
  9391. }
  9392. else
  9393. {
  9394. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)=0";
  9395. }
  9396. }
  9397. }
  9398. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9399. {
  9400. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9401. }
  9402. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9403. {
  9404. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9405. }
  9406. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9407. }
  9408. /// <summary>
  9409. /// 红字销售出库单生成条码
  9410. /// </summary>
  9411. /// <param name="SDNCode"></param>
  9412. /// <param name="Sequence"></param>
  9413. /// <param name="keyValue"></param>
  9414. /// <param name="WorkPoint"></param>
  9415. /// <param name="AMEnable"></param>
  9416. /// <returns></returns>
  9417. public int SubmitFormSSD(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  9418. {
  9419. var queryParam = keyValue.ToJObject();
  9420. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9421. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9422. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9423. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9424. decimal LOTQTY = minPackQty;
  9425. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9426. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  9427. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  9428. string sql = string.Empty;
  9429. //string VendorLot = queryParam["VendorLot"].ToString();
  9430. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9431. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9432. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9433. string InvCode = queryParam["ClassCode"].ToString();
  9434. string sqls = string.Empty;
  9435. string Colspan = "";
  9436. string str1 = "";
  9437. string LotNo = string.Empty;
  9438. List<string> ExtensionIDList = new List<string>();
  9439. #region 装箱的功能
  9440. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9441. string VenCode = queryParam["VenCode"].ToString();
  9442. int PackCount = 0;//每箱放的数量
  9443. int Pack_YuShu = 0;//需要平摊的数量
  9444. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9445. List<PackModel> List_Pack = new List<PackModel>();
  9446. int ZQty = 0;
  9447. if (createPackCount > 0)
  9448. {
  9449. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9450. if (Pack_YuShu == 0)
  9451. {
  9452. PackCount = (createPageCount / createPackCount);
  9453. }
  9454. else
  9455. {
  9456. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9457. }
  9458. for (int jj = 0; jj < createPackCount; jj++)
  9459. {
  9460. object CARID = Guid.NewGuid();
  9461. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9462. sql += @" INSERT INTO dbo.ICSContainer
  9463. ( ID,ContainerCode ,
  9464. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9465. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9466. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9467. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9468. PackModel PP = new PackModel();
  9469. PP.ID = CARID.ToString();
  9470. PP.PackCode = Carton;
  9471. if (jj < Pack_YuShu)
  9472. {
  9473. PP.FristBarIndex = ZQty;
  9474. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9475. }
  9476. else
  9477. {
  9478. PP.FristBarIndex = ZQty;
  9479. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9480. }
  9481. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9482. List_Pack.Add(PP);
  9483. }
  9484. }
  9485. #endregion
  9486. for (int i = 0; i < createPageCount; i++)
  9487. {
  9488. if (i + 1 == createPageCount)
  9489. {
  9490. if (minPackQty * createPageCount > thisCreateQty)
  9491. {
  9492. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9493. }
  9494. }
  9495. 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();
  9496. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9497. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9498. bool flag = true;
  9499. foreach (var item in ExtensionIDList)
  9500. {
  9501. if (item == Colspan + WorkPoint)
  9502. {
  9503. flag = false;
  9504. }
  9505. }
  9506. if (ExtensionID == null && flag == true)
  9507. {
  9508. str1 = Guid.NewGuid().ToString();
  9509. 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)
  9510. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9511. 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(),
  9512. MUSER, MUSERNAME, WorkPoints);
  9513. }
  9514. else if (ExtensionID != null)
  9515. {
  9516. str1 = ExtensionID.ToString();
  9517. }
  9518. ExtensionIDList.Add(Colspan + WorkPoint);
  9519. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9520. if (AMEnable == "true")
  9521. {
  9522. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9523. }
  9524. else
  9525. {
  9526. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9527. }
  9528. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9529. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9530. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9531. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9532. //{
  9533. sql += string.Format(@"
  9534. insert into ICSInventoryLot
  9535. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9536. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9537. select
  9538. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9539. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9540. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9541. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9542. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9543. sql += "\r\n";
  9544. //装箱的功能
  9545. if (List_Pack.Count > 0)
  9546. {
  9547. PackModel mm = new PackModel();
  9548. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9549. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9550. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9551. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9552. }
  9553. //}
  9554. }
  9555. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9556. return count;
  9557. }
  9558. /// <summary>
  9559. /// 红字销售出库单生成条码
  9560. /// </summary>
  9561. /// <param name="SDNCode"></param>
  9562. /// <param name="Sequence"></param>
  9563. /// <param name="keyValue"></param>
  9564. /// <param name="WorkPoint"></param>
  9565. /// <param name="AMEnable"></param>
  9566. /// <returns></returns>
  9567. public int SubmitFormSSDNew(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  9568. {
  9569. var queryParam = keyValue.ToJObject();
  9570. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9571. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9572. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9573. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9574. List<decimal> lotQtys = new List<decimal>();
  9575. foreach (var jLotno in jLotnos)
  9576. {
  9577. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9578. lotQtys.Add(qty);
  9579. }
  9580. int createPageCount = lotQtys.Count();
  9581. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9582. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  9583. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  9584. string sql = string.Empty;
  9585. //string VendorLot = queryParam["VendorLot"].ToString();
  9586. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9587. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9588. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9589. string InvCode = queryParam["ClassCode"].ToString();
  9590. string sqls = string.Empty;
  9591. string Colspan = "";
  9592. string str1 = "";
  9593. string LotNo = string.Empty;
  9594. List<string> ExtensionIDList = new List<string>();
  9595. #region 装箱的功能
  9596. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9597. string VenCode = queryParam["VenCode"].ToString();
  9598. int PackCount = 0;//每箱放的数量
  9599. int Pack_YuShu = 0;//需要平摊的数量
  9600. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9601. List<PackModel> List_Pack = new List<PackModel>();
  9602. int ZQty = 0;
  9603. if (createPackCount > 0)
  9604. {
  9605. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9606. if (Pack_YuShu == 0)
  9607. {
  9608. PackCount = (createPageCount / createPackCount);
  9609. }
  9610. else
  9611. {
  9612. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9613. }
  9614. for (int jj = 0; jj < createPackCount; jj++)
  9615. {
  9616. object CARID = Guid.NewGuid();
  9617. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9618. sql += @" INSERT INTO dbo.ICSContainer
  9619. ( ID,ContainerCode ,
  9620. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9621. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9622. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9623. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9624. PackModel PP = new PackModel();
  9625. PP.ID = CARID.ToString();
  9626. PP.PackCode = Carton;
  9627. if (jj < Pack_YuShu)
  9628. {
  9629. PP.FristBarIndex = ZQty;
  9630. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9631. }
  9632. else
  9633. {
  9634. PP.FristBarIndex = ZQty;
  9635. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9636. }
  9637. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9638. List_Pack.Add(PP);
  9639. }
  9640. }
  9641. #endregion
  9642. for (int i = 0; i < createPageCount; i++)
  9643. {
  9644. var LOTQTY = lotQtys[i];
  9645. 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();
  9646. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9647. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9648. bool flag = true;
  9649. foreach (var item in ExtensionIDList)
  9650. {
  9651. if (item == Colspan + WorkPoint)
  9652. {
  9653. flag = false;
  9654. }
  9655. }
  9656. if (ExtensionID == null && flag == true)
  9657. {
  9658. str1 = Guid.NewGuid().ToString();
  9659. 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)
  9660. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9661. 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(),
  9662. MUSER, MUSERNAME, WorkPoints);
  9663. }
  9664. else if (ExtensionID != null)
  9665. {
  9666. str1 = ExtensionID.ToString();
  9667. }
  9668. ExtensionIDList.Add(Colspan + WorkPoint);
  9669. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9670. if (AMEnable == "true")
  9671. {
  9672. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9673. }
  9674. else
  9675. {
  9676. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9677. }
  9678. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9679. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9680. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9681. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9682. //{
  9683. sql += string.Format(@"
  9684. insert into ICSInventoryLot
  9685. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9686. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9687. select
  9688. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9689. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9690. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9691. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9692. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9693. sql += "\r\n";
  9694. //装箱的功能
  9695. if (List_Pack.Count > 0)
  9696. {
  9697. PackModel mm = new PackModel();
  9698. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9699. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9700. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9701. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9702. }
  9703. //}
  9704. }
  9705. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9706. return count;
  9707. }
  9708. /// <summary>
  9709. /// 红字销售出库单查询
  9710. /// </summary>
  9711. /// <param name="SSDCode"></param>
  9712. /// <param name="Sequence"></param>
  9713. /// <param name="WorkPoint"></param>
  9714. /// <returns></returns>
  9715. public DataTable GetSubGridJsonSSDByCreate(string SSDCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  9716. {
  9717. DataTable dt = new DataTable();
  9718. object Figure = GetDecimalDigits();
  9719. List<DbParameter> parameter = new List<DbParameter>();
  9720. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn026', " + Quantity + ",1,3,'')";
  9721. object Num = SqlHelper.ExecuteScalar(SeachNum);
  9722. 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,
  9723. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) as thisCreateQty,
  9724. isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
  9725. ,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,
  9726. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  9727. from ICSSSD a
  9728. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9729. left join (
  9730. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  9731. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='24'
  9732. where isnull(a.EATTRIBUTE1,'')=''
  9733. group by b.TransCode,b.TransSequence
  9734. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence
  9735. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  9736. WHERE a.Status='1'
  9737. and a.Type='2' and a.SSDCode='" + SSDCode + "' and a.Sequence='" + Sequence + "'";
  9738. sql += " and a.WorkPoint='" + WorkPoint + "'";
  9739. sql = string.Format(sql, Figure);
  9740. return Repository().FindTableBySql(sql.ToString());
  9741. }
  9742. /// <summary>
  9743. /// 派纳 线边仓调拨申请单生成条码
  9744. /// </summary>
  9745. /// <param name="queryJson"></param>
  9746. /// <param name="jqgridparam"></param>
  9747. /// <returns></returns>
  9748. public DataTable GetGridJsonTransferApplicationPN(string queryJson, ref Pagination jqgridparam)
  9749. {
  9750. DataTable dt = new DataTable();
  9751. var queryParam = queryJson.ToJObject();
  9752. List<DbParameter> parameter = new List<DbParameter>();
  9753. object Figure = GetDecimalDigits();
  9754. #region [SQL]
  9755. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9756. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9757. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9758. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9759. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9760. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9761. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9762. ,c.LOTQTY
  9763. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9764. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9765. ,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,
  9766. a.EATTRIBUTE9,a.EATTRIBUTE10
  9767. from ICSTransferApplication a
  9768. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9769. left join (
  9770. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9771. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  9772. where isnull(ee.EATTRIBUTE1,'')=''
  9773. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9774. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9775. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9776. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9777. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9778. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9779. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9780. where 1 = 1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9781. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9782. where A.F_EnCode='WorkLineWHConfig')";
  9783. sql = string.Format(sql, Figure);
  9784. #endregion
  9785. if (!string.IsNullOrWhiteSpace(queryJson))
  9786. {
  9787. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9788. {
  9789. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9790. }
  9791. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9792. {
  9793. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9794. }
  9795. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9796. {
  9797. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9798. }
  9799. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9800. {
  9801. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9802. }
  9803. }
  9804. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9805. {
  9806. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9807. }
  9808. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9809. //{
  9810. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9811. //}
  9812. 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,
  9813. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9814. 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
  9815. where 1=1 ";
  9816. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9817. {
  9818. string POStatus = queryParam["POStatus"].ToString();
  9819. if (POStatus == "0")
  9820. {
  9821. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9822. }
  9823. else if (POStatus == "1")
  9824. {
  9825. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9826. }
  9827. else
  9828. {
  9829. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9830. }
  9831. }
  9832. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9833. }
  9834. /// <summary>
  9835. /// 派纳 线边仓一步调入单生成条码
  9836. /// </summary>
  9837. /// <param name="queryJson"></param>
  9838. /// <param name="jqgridparam"></param>
  9839. /// <returns></returns>
  9840. public DataTable GetGridJsonOneSetpTransPN(string queryJson, ref Pagination jqgridparam)
  9841. {
  9842. DataTable dt = new DataTable();
  9843. var queryParam = queryJson.ToJObject();
  9844. List<DbParameter> parameter = new List<DbParameter>();
  9845. object Figure = GetDecimalDigits();
  9846. #region [SQL]
  9847. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9848. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9849. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9850. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9851. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9852. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9853. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9854. ,c.LOTQTY
  9855. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9856. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9857. ,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,
  9858. a.EATTRIBUTE9,a.EATTRIBUTE10
  9859. from ICSTransfer a
  9860. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9861. left join (
  9862. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9863. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='203'
  9864. where isnull(ee.EATTRIBUTE1,'')=''
  9865. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9866. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9867. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9868. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9869. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9870. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9871. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9872. where 1 = 1 and a.Type=1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9873. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9874. where A.F_EnCode='WorkLineWHConfig')";
  9875. sql = string.Format(sql, Figure);
  9876. #endregion
  9877. if (!string.IsNullOrWhiteSpace(queryJson))
  9878. {
  9879. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9880. {
  9881. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9882. }
  9883. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9884. {
  9885. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9886. }
  9887. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9888. {
  9889. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9890. }
  9891. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9892. {
  9893. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9894. }
  9895. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  9896. {
  9897. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  9898. }
  9899. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  9900. {
  9901. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  9902. }
  9903. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  9904. {
  9905. sql += " and a.FromWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  9906. }
  9907. }
  9908. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9909. {
  9910. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9911. }
  9912. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9913. //{
  9914. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9915. //}
  9916. 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,
  9917. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9918. 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
  9919. where 1=1 ";
  9920. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9921. {
  9922. string POStatus = queryParam["POStatus"].ToString();
  9923. if (POStatus == "0")
  9924. {
  9925. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9926. }
  9927. else if (POStatus == "1")
  9928. {
  9929. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9930. }
  9931. else
  9932. {
  9933. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9934. }
  9935. }
  9936. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9937. }
  9938. /// <summary>
  9939. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9940. /// </summary>
  9941. /// <param name="TransferNO"></param>
  9942. /// <param name="Sequence"></param>
  9943. /// <param name="keyValue"></param>
  9944. /// <param name="WorkPoint"></param>
  9945. /// <returns></returns>
  9946. public int SubmitFormTransferApplicatioPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9947. {
  9948. var queryParam = keyValue.ToJObject();
  9949. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9950. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9951. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9952. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9953. decimal LOTQTY = minPackQty;
  9954. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9955. string sql = string.Empty;
  9956. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9957. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9958. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9959. string Identification = Guid.NewGuid().ToString();
  9960. string sqls = string.Empty;
  9961. string Colspan = "";
  9962. string str1 = "";
  9963. List<string> ExtensionIDList = new List<string>();
  9964. #region 装箱的功能
  9965. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9966. string VenCode = queryParam["VenCode"].ToString();
  9967. int PackCount = 0;//每箱放的数量
  9968. int Pack_YuShu = 0;//需要平摊的数量
  9969. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9970. List<PackModel> List_Pack = new List<PackModel>();
  9971. int ZQty = 0;
  9972. if (createPackCount > 0)
  9973. {
  9974. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9975. if (Pack_YuShu == 0)
  9976. {
  9977. PackCount = (createPageCount / createPackCount);
  9978. }
  9979. else
  9980. {
  9981. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9982. }
  9983. for (int jj = 0; jj < createPackCount; jj++)
  9984. {
  9985. object CARID = Guid.NewGuid();
  9986. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9987. sql += @" INSERT INTO dbo.ICSContainer
  9988. ( ID,ContainerCode ,
  9989. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9990. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9991. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9992. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9993. PackModel PP = new PackModel();
  9994. PP.ID = CARID.ToString();
  9995. PP.PackCode = Carton;
  9996. if (jj < Pack_YuShu)
  9997. {
  9998. PP.FristBarIndex = ZQty;
  9999. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  10000. }
  10001. else
  10002. {
  10003. PP.FristBarIndex = ZQty;
  10004. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10005. }
  10006. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10007. List_Pack.Add(PP);
  10008. }
  10009. }
  10010. #endregion
  10011. for (int i = 0; i < createPageCount; i++)
  10012. {
  10013. if (i + 1 == createPageCount)
  10014. {
  10015. if (minPackQty * createPageCount > thisCreateQty)
  10016. {
  10017. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10018. }
  10019. }
  10020. 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();
  10021. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10022. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10023. bool flag = true;
  10024. foreach (var item in ExtensionIDList)
  10025. {
  10026. if (item == Colspan + WorkPoint)
  10027. {
  10028. flag = false;
  10029. }
  10030. }
  10031. if (ExtensionID == null && flag == true)
  10032. {
  10033. str1 = Guid.NewGuid().ToString();
  10034. 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)
  10035. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10036. 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(),
  10037. MUSER, MUSERNAME, WorkPoints);
  10038. }
  10039. else if (ExtensionID != null)
  10040. {
  10041. str1 = ExtensionID.ToString();
  10042. }
  10043. ExtensionIDList.Add(Colspan + WorkPoint);
  10044. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10045. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10046. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10047. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10048. sql += string.Format(@"
  10049. insert into ICSInventoryLot
  10050. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10051. select
  10052. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10053. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10054. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  10055. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10056. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10057. //派纳调拨申请单生成的条码需要自动入库
  10058. sql += string.Format(@"
  10059. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10060. SELECT NEWID(),a.LotNo
  10061. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10062. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10063. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10064. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10065. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10066. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10067. FROM ICSInventoryLot a
  10068. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10069. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10070. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10071. sql += string.Format(@"
  10072. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10073. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10074. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10075. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10076. MTIME,WorkPoint)
  10077. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10078. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10079. '','0','6','75','1',D.TransferID,
  10080. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10081. SYSDATETIME() ,a.WorkPoint
  10082. FROM ICSInventoryLot a
  10083. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10084. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10085. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10086. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10087. LotNo, WorkPoint, Identification);
  10088. sql += "\r\n";
  10089. //装箱的功能
  10090. if (List_Pack.Count > 0)
  10091. {
  10092. PackModel mm = new PackModel();
  10093. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10094. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10095. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10096. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10097. }
  10098. }
  10099. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10100. return count;
  10101. }
  10102. /// <summary>
  10103. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库)
  10104. /// </summary>
  10105. /// <param name="TransferNO"></param>
  10106. /// <param name="Sequence"></param>
  10107. /// <param name="keyValue"></param>
  10108. /// <param name="WorkPoint"></param>
  10109. /// <returns></returns>
  10110. public int SubmitFormOneStepTransPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  10111. {
  10112. var queryParam = keyValue.ToJObject();
  10113. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10114. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  10115. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  10116. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  10117. decimal LOTQTY = minPackQty;
  10118. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  10119. string sql = string.Empty;
  10120. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10121. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10122. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  10123. string Identification = Guid.NewGuid().ToString();
  10124. string sqls = string.Empty;
  10125. string Colspan = "";
  10126. string str1 = "";
  10127. List<string> ExtensionIDList = new List<string>();
  10128. #region 装箱的功能
  10129. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  10130. string VenCode = queryParam["VenCode"].ToString();
  10131. int PackCount = 0;//每箱放的数量
  10132. int Pack_YuShu = 0;//需要平摊的数量
  10133. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  10134. List<PackModel> List_Pack = new List<PackModel>();
  10135. int ZQty = 0;
  10136. if (createPackCount > 0)
  10137. {
  10138. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  10139. if (Pack_YuShu == 0)
  10140. {
  10141. PackCount = (createPageCount / createPackCount);
  10142. }
  10143. else
  10144. {
  10145. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  10146. }
  10147. for (int jj = 0; jj < createPackCount; jj++)
  10148. {
  10149. object CARID = Guid.NewGuid();
  10150. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  10151. sql += @" INSERT INTO dbo.ICSContainer
  10152. ( ID,ContainerCode ,
  10153. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10154. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10155. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10156. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  10157. PackModel PP = new PackModel();
  10158. PP.ID = CARID.ToString();
  10159. PP.PackCode = Carton;
  10160. if (jj < Pack_YuShu)
  10161. {
  10162. PP.FristBarIndex = ZQty;
  10163. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  10164. }
  10165. else
  10166. {
  10167. PP.FristBarIndex = ZQty;
  10168. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10169. }
  10170. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10171. List_Pack.Add(PP);
  10172. }
  10173. }
  10174. #endregion
  10175. for (int i = 0; i < createPageCount; i++)
  10176. {
  10177. if (i + 1 == createPageCount)
  10178. {
  10179. if (minPackQty * createPageCount > thisCreateQty)
  10180. {
  10181. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10182. }
  10183. }
  10184. 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();
  10185. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10186. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10187. bool flag = true;
  10188. foreach (var item in ExtensionIDList)
  10189. {
  10190. if (item == Colspan + WorkPoint)
  10191. {
  10192. flag = false;
  10193. }
  10194. }
  10195. if (ExtensionID == null && flag == true)
  10196. {
  10197. str1 = Guid.NewGuid().ToString();
  10198. 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)
  10199. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10200. 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(),
  10201. MUSER, MUSERNAME, WorkPoints);
  10202. }
  10203. else if (ExtensionID != null)
  10204. {
  10205. str1 = ExtensionID.ToString();
  10206. }
  10207. ExtensionIDList.Add(Colspan + WorkPoint);
  10208. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10209. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10210. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10211. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10212. sql += string.Format(@"
  10213. insert into ICSInventoryLot
  10214. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10215. select
  10216. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10217. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10218. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  10219. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10220. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10221. //派纳调拨申请单生成的条码需要自动入库
  10222. sql += string.Format(@"
  10223. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10224. SELECT NEWID(),a.LotNo
  10225. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10226. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10227. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10228. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10229. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10230. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10231. FROM ICSInventoryLot a
  10232. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10233. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10234. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10235. sql += string.Format(@"
  10236. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10237. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10238. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10239. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10240. MTIME,WorkPoint)
  10241. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10242. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10243. '','0','6','75','1',D.TransferID,
  10244. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10245. SYSDATETIME() ,a.WorkPoint
  10246. FROM ICSInventoryLot a
  10247. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10248. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10249. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10250. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10251. LotNo, WorkPoint, Identification);
  10252. sql += "\r\n";
  10253. //装箱的功能
  10254. if (List_Pack.Count > 0)
  10255. {
  10256. PackModel mm = new PackModel();
  10257. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10258. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10259. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10260. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10261. }
  10262. }
  10263. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10264. return count;
  10265. }
  10266. /// <summary>
  10267. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  10268. /// </summary>
  10269. /// <param name="TransferNO"></param>
  10270. /// <param name="Sequence"></param>
  10271. /// <param name="keyValue"></param>
  10272. /// <param name="WorkPoint"></param>
  10273. /// <returns></returns>
  10274. public int SubmitFormTransferApplicatioPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  10275. {
  10276. var queryParam = keyValue.ToJObject();
  10277. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10278. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  10279. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  10280. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  10281. List<decimal> lotQtys = new List<decimal>();
  10282. foreach (var jLotno in jLotnos)
  10283. {
  10284. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  10285. lotQtys.Add(qty);
  10286. }
  10287. int createPageCount = lotQtys.Count();
  10288. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  10289. string sql = string.Empty;
  10290. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10291. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10292. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  10293. string Identification = Guid.NewGuid().ToString();
  10294. string sqls = string.Empty;
  10295. string Colspan = "";
  10296. string str1 = "";
  10297. List<string> ExtensionIDList = new List<string>();
  10298. #region 装箱的功能
  10299. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  10300. string VenCode = queryParam["VenCode"].ToString();
  10301. int PackCount = 0;//每箱放的数量
  10302. int Pack_YuShu = 0;//需要平摊的数量
  10303. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  10304. List<PackModel> List_Pack = new List<PackModel>();
  10305. int ZQty = 0;
  10306. if (createPackCount > 0)
  10307. {
  10308. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  10309. if (Pack_YuShu == 0)
  10310. {
  10311. PackCount = (createPageCount / createPackCount);
  10312. }
  10313. else
  10314. {
  10315. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  10316. }
  10317. for (int jj = 0; jj < createPackCount; jj++)
  10318. {
  10319. object CARID = Guid.NewGuid();
  10320. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  10321. sql += @" INSERT INTO dbo.ICSContainer
  10322. ( ID,ContainerCode ,
  10323. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10324. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10325. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10326. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  10327. PackModel PP = new PackModel();
  10328. PP.ID = CARID.ToString();
  10329. PP.PackCode = Carton;
  10330. if (jj < Pack_YuShu)
  10331. {
  10332. PP.FristBarIndex = ZQty;
  10333. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  10334. }
  10335. else
  10336. {
  10337. PP.FristBarIndex = ZQty;
  10338. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10339. }
  10340. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10341. List_Pack.Add(PP);
  10342. }
  10343. }
  10344. #endregion
  10345. for (int i = 0; i < createPageCount; i++)
  10346. {
  10347. var LOTQTY = lotQtys[i];
  10348. 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();
  10349. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10350. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10351. bool flag = true;
  10352. foreach (var item in ExtensionIDList)
  10353. {
  10354. if (item == Colspan + WorkPoint)
  10355. {
  10356. flag = false;
  10357. }
  10358. }
  10359. if (ExtensionID == null && flag == true)
  10360. {
  10361. str1 = Guid.NewGuid().ToString();
  10362. 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)
  10363. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10364. 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(),
  10365. MUSER, MUSERNAME, WorkPoints);
  10366. }
  10367. else if (ExtensionID != null)
  10368. {
  10369. str1 = ExtensionID.ToString();
  10370. }
  10371. ExtensionIDList.Add(Colspan + WorkPoint);
  10372. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10373. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10374. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10375. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10376. sql += string.Format(@"
  10377. insert into ICSInventoryLot
  10378. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10379. select
  10380. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10381. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10382. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  10383. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10384. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10385. //派纳调拨申请单生成的条码需要自动入库
  10386. sql += string.Format(@"
  10387. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10388. SELECT NEWID(),a.LotNo
  10389. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10390. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10391. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10392. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10393. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10394. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10395. FROM ICSInventoryLot a
  10396. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10397. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10398. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10399. sql += string.Format(@"
  10400. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10401. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10402. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10403. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10404. MTIME,WorkPoint)
  10405. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10406. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10407. '','0','6','75','1',D.TransferID,
  10408. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10409. SYSDATETIME() ,a.WorkPoint
  10410. FROM ICSInventoryLot a
  10411. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10412. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10413. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10414. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10415. LotNo, WorkPoint, Identification);
  10416. sql += "\r\n";
  10417. //装箱的功能
  10418. if (List_Pack.Count > 0)
  10419. {
  10420. PackModel mm = new PackModel();
  10421. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10422. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10423. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10424. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10425. }
  10426. }
  10427. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10428. return count;
  10429. }
  10430. /// <summary>
  10431. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库---非规则生成条码)
  10432. /// </summary>
  10433. /// <param name="TransferNO"></param>
  10434. /// <param name="Sequence"></param>
  10435. /// <param name="keyValue"></param>
  10436. /// <param name="WorkPoint"></param>
  10437. /// <returns></returns>
  10438. public int SubmitFormOneStepTransferPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  10439. {
  10440. var queryParam = keyValue.ToJObject();
  10441. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10442. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  10443. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  10444. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  10445. List<decimal> lotQtys = new List<decimal>();
  10446. foreach (var jLotno in jLotnos)
  10447. {
  10448. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  10449. lotQtys.Add(qty);
  10450. }
  10451. int createPageCount = lotQtys.Count();
  10452. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  10453. string sql = string.Empty;
  10454. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10455. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10456. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  10457. string Identification = Guid.NewGuid().ToString();
  10458. string sqls = string.Empty;
  10459. string Colspan = "";
  10460. string str1 = "";
  10461. List<string> ExtensionIDList = new List<string>();
  10462. #region 装箱的功能
  10463. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  10464. string VenCode = queryParam["VenCode"].ToString();
  10465. int PackCount = 0;//每箱放的数量
  10466. int Pack_YuShu = 0;//需要平摊的数量
  10467. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  10468. List<PackModel> List_Pack = new List<PackModel>();
  10469. int ZQty = 0;
  10470. if (createPackCount > 0)
  10471. {
  10472. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  10473. if (Pack_YuShu == 0)
  10474. {
  10475. PackCount = (createPageCount / createPackCount);
  10476. }
  10477. else
  10478. {
  10479. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  10480. }
  10481. for (int jj = 0; jj < createPackCount; jj++)
  10482. {
  10483. object CARID = Guid.NewGuid();
  10484. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  10485. sql += @" INSERT INTO dbo.ICSContainer
  10486. ( ID,ContainerCode ,
  10487. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  10488. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  10489. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  10490. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  10491. PackModel PP = new PackModel();
  10492. PP.ID = CARID.ToString();
  10493. PP.PackCode = Carton;
  10494. if (jj < Pack_YuShu)
  10495. {
  10496. PP.FristBarIndex = ZQty;
  10497. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  10498. }
  10499. else
  10500. {
  10501. PP.FristBarIndex = ZQty;
  10502. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  10503. }
  10504. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  10505. List_Pack.Add(PP);
  10506. }
  10507. }
  10508. #endregion
  10509. for (int i = 0; i < createPageCount; i++)
  10510. {
  10511. var LOTQTY = lotQtys[i];
  10512. 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();
  10513. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10514. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10515. bool flag = true;
  10516. foreach (var item in ExtensionIDList)
  10517. {
  10518. if (item == Colspan + WorkPoint)
  10519. {
  10520. flag = false;
  10521. }
  10522. }
  10523. if (ExtensionID == null && flag == true)
  10524. {
  10525. str1 = Guid.NewGuid().ToString();
  10526. 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)
  10527. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10528. 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(),
  10529. MUSER, MUSERNAME, WorkPoints);
  10530. }
  10531. else if (ExtensionID != null)
  10532. {
  10533. str1 = ExtensionID.ToString();
  10534. }
  10535. ExtensionIDList.Add(Colspan + WorkPoint);
  10536. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10537. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10538. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10539. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10540. sql += string.Format(@"
  10541. insert into ICSInventoryLot
  10542. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10543. select
  10544. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10545. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10546. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  10547. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10548. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10549. //派纳调拨申请单生成的条码需要自动入库
  10550. sql += string.Format(@"
  10551. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10552. SELECT NEWID(),a.LotNo
  10553. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10554. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10555. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10556. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10557. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10558. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10559. FROM ICSInventoryLot a
  10560. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10561. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10562. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10563. sql += string.Format(@"
  10564. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10565. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10566. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10567. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10568. MTIME,WorkPoint)
  10569. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10570. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10571. '','0','6','75','1',D.TransferID,
  10572. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10573. SYSDATETIME() ,a.WorkPoint
  10574. FROM ICSInventoryLot a
  10575. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10576. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10577. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10578. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10579. LotNo, WorkPoint, Identification);
  10580. sql += "\r\n";
  10581. //装箱的功能
  10582. if (List_Pack.Count > 0)
  10583. {
  10584. PackModel mm = new PackModel();
  10585. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10586. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10587. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10588. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10589. }
  10590. }
  10591. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10592. return count;
  10593. }
  10594. /// <summary>
  10595. /// 派纳 线边仓调拨申请单获取单据信息
  10596. /// </summary>
  10597. /// <param name="TransferNO"></param>
  10598. /// <param name="Sequence"></param>
  10599. /// <param name="WorkPoint"></param>
  10600. /// <returns></returns>
  10601. public DataTable GetSubGridJsonTransferApplicationByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10602. {
  10603. DataTable dt = new DataTable();
  10604. object Figure = GetDecimalDigits();
  10605. List<DbParameter> parameter = new List<DbParameter>();
  10606. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10607. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10608. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10609. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10610. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10611. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10612. , 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 ,
  10613. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10614. FROM ICSTransferApplication a
  10615. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10616. 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
  10617. END AS Quantity
  10618. FROM ICSTransferApplication a
  10619. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  10620. AND a.WorkPoint= b.WorkPoint
  10621. ) xx ON xx.Id= a.Id
  10622. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10623. FROM ICSInventoryLot a
  10624. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  10625. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  10626. GROUP BY
  10627. b.TransCode,
  10628. b.TransSequence
  10629. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10630. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10631. WHERE 1 = 1
  10632. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10633. and a.WorkPoint='{WorkPoint}'";
  10634. sql = string.Format(sql, Figure);
  10635. return Repository().FindTableBySql(sql.ToString());
  10636. }
  10637. /// <summary>
  10638. /// 派纳 线边仓一步调入单获取单据信息
  10639. /// </summary>
  10640. /// <param name="TransferNO"></param>
  10641. /// <param name="Sequence"></param>
  10642. /// <param name="WorkPoint"></param>
  10643. /// <returns></returns>
  10644. public DataTable GetSubGridJsonOneSetpTransByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10645. {
  10646. DataTable dt = new DataTable();
  10647. object Figure = GetDecimalDigits();
  10648. List<DbParameter> parameter = new List<DbParameter>();
  10649. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10650. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10651. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10652. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10653. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10654. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10655. , 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 ,
  10656. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10657. FROM ICSTransfer a
  10658. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10659. 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
  10660. END AS Quantity
  10661. FROM ICSTransfer a
  10662. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  10663. AND a.WorkPoint= b.WorkPoint
  10664. ) xx ON xx.Id= a.Id
  10665. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10666. FROM ICSInventoryLot a
  10667. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '203'
  10668. WHERE isnull( a.EATTRIBUTE1, '' ) = '' AND a.Type=1
  10669. GROUP BY
  10670. b.TransCode,
  10671. b.TransSequence
  10672. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10673. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10674. WHERE 1 = 1
  10675. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10676. and a.WorkPoint='{WorkPoint}'";
  10677. sql = string.Format(sql, Figure);
  10678. return Repository().FindTableBySql(sql.ToString());
  10679. }
  10680. public int SubmitFormCGRKALL(string keyValue)
  10681. {
  10682. string sql = string.Empty;
  10683. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10684. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10685. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10686. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10687. foreach (var item in res)
  10688. {
  10689. JObject jo = (JObject)item;
  10690. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10691. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10692. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10693. decimal LOTQTY = minPackQty;
  10694. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10695. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10696. string sqls = string.Empty;
  10697. string Colspan = "";
  10698. string str1 = "";
  10699. List<string> ExtensionIDList = new List<string>();
  10700. for (int i = 0; i < createPageCount; i++)
  10701. {
  10702. if (i + 1 == createPageCount)
  10703. {
  10704. if (minPackQty * createPageCount > thisCreateQty)
  10705. {
  10706. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10707. }
  10708. }
  10709. 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();
  10710. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10711. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10712. bool flag = true;
  10713. foreach (var items in ExtensionIDList)
  10714. {
  10715. if (items == Colspan + WorkPoint)
  10716. {
  10717. flag = false;
  10718. }
  10719. }
  10720. if (ExtensionID == null && flag == true)
  10721. {
  10722. str1 = Guid.NewGuid().ToString();
  10723. 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)
  10724. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10725. 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(),
  10726. MUSER, MUSERNAME, WorkPoint);
  10727. }
  10728. else if (ExtensionID != null)
  10729. {
  10730. str1 = ExtensionID.ToString();
  10731. }
  10732. ExtensionIDList.Add(Colspan + WorkPoint);
  10733. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10734. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10735. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10736. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10737. sql += string.Format(@"
  10738. insert into ICSInventoryLot
  10739. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10740. select
  10741. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}'
  10742. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10743. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10744. sql += "\r\n";
  10745. }
  10746. }
  10747. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10748. return count;
  10749. }
  10750. /// <summary>
  10751. /// 销售退货生成条码(一键生成)
  10752. /// </summary>
  10753. /// <param name="POCode"></param>
  10754. /// <param name="PORow"></param>
  10755. /// <param name="keyValue"></param>
  10756. /// 已改
  10757. /// <returns></returns>
  10758. public int SubmitFormXSTHALL(string keyValue)
  10759. {
  10760. string sql = string.Empty;
  10761. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10762. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10763. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10764. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10765. foreach (var resItem in res)
  10766. {
  10767. JObject jo = (JObject)resItem;
  10768. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10769. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10770. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10771. decimal LOTQTY = minPackQty;
  10772. string Pre = "SR" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  10773. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10774. string sqls = string.Empty;
  10775. string Colspan = "";
  10776. string str1 = "";
  10777. List<string> ExtensionIDList = new List<string>();
  10778. for (int i = 0; i < createPageCount; i++)
  10779. {
  10780. if (i + 1 == createPageCount)
  10781. {
  10782. if (minPackQty * createPageCount > thisCreateQty)
  10783. {
  10784. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10785. }
  10786. }
  10787. 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();
  10788. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10789. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10790. bool flag = true;
  10791. foreach (var item in ExtensionIDList)
  10792. {
  10793. if (item == Colspan + WorkPoint)
  10794. {
  10795. flag = false;
  10796. }
  10797. }
  10798. if (ExtensionID == null && flag == true)
  10799. {
  10800. str1 = Guid.NewGuid().ToString();
  10801. 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)
  10802. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10803. 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(),
  10804. MUSER, MUSERNAME, WorkPoint);
  10805. }
  10806. else if (ExtensionID != null)
  10807. {
  10808. str1 = ExtensionID.ToString();
  10809. }
  10810. ExtensionIDList.Add(Colspan + WorkPoint);
  10811. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10812. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10813. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  10814. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10815. sql += string.Format(@"
  10816. insert into ICSInventoryLot
  10817. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10818. select
  10819. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}'
  10820. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10821. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10822. sql += "\r\n";
  10823. }
  10824. }
  10825. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10826. return count;
  10827. }
  10828. /// <summary>
  10829. /// 其他入库生成条码(一键生成)
  10830. /// </summary>
  10831. /// <param name="POCode"></param>
  10832. /// <param name="PORow"></param>
  10833. /// <param name="keyValue"></param>
  10834. /// 已改
  10835. /// <returns></returns>
  10836. public int SubmitFormQiTaALL(string keyValue)
  10837. {
  10838. string sql = string.Empty;
  10839. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10840. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10841. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10842. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10843. foreach (var resItem in res)
  10844. {
  10845. JObject jo = (JObject)resItem;
  10846. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10847. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10848. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10849. decimal LOTQTY = minPackQty;
  10850. string Pre = "QT" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  10851. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10852. string sqls = string.Empty;
  10853. string Colspan = "";
  10854. string str1 = "";
  10855. List<string> ExtensionIDList = new List<string>();
  10856. for (int i = 0; i < createPageCount; i++)
  10857. {
  10858. if (i + 1 == createPageCount)
  10859. {
  10860. if (minPackQty * createPageCount > thisCreateQty)
  10861. {
  10862. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10863. }
  10864. }
  10865. 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();
  10866. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10867. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10868. bool flag = true;
  10869. foreach (var item in ExtensionIDList)
  10870. {
  10871. if (item == Colspan + WorkPoint)
  10872. {
  10873. flag = false;
  10874. }
  10875. }
  10876. if (ExtensionID == null && flag == true)
  10877. {
  10878. str1 = Guid.NewGuid().ToString();
  10879. 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)
  10880. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10881. 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(),
  10882. MUSER, MUSERNAME, WorkPoint);
  10883. }
  10884. else if (ExtensionID != null)
  10885. {
  10886. str1 = ExtensionID.ToString();
  10887. }
  10888. ExtensionIDList.Add(Colspan + WorkPoint);
  10889. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10890. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10891. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  10892. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10893. sql += string.Format(@"
  10894. insert into ICSInventoryLot
  10895. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10896. select
  10897. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}'
  10898. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  10899. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10900. sql += "\r\n";
  10901. }
  10902. }
  10903. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10904. return count;
  10905. }
  10906. /// <summary>
  10907. /// 材料出库退料(一键生成)
  10908. /// </summary>
  10909. public int SubmitFormCLCKTLALL(string keyValue)
  10910. {
  10911. string sql = string.Empty;
  10912. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10913. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10914. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10915. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10916. foreach (var item in res)
  10917. {
  10918. JObject jo = (JObject)item;
  10919. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10920. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10921. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10922. decimal LOTQTY = minPackQty;
  10923. string Pre = "MD" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10924. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10925. string sqls = string.Empty;
  10926. string Colspan = "";
  10927. string str1 = "";
  10928. List<string> ExtensionIDList = new List<string>();
  10929. for (int i = 0; i < createPageCount; i++)
  10930. {
  10931. if (i + 1 == createPageCount)
  10932. {
  10933. if (minPackQty * createPageCount > thisCreateQty)
  10934. {
  10935. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10936. }
  10937. }
  10938. 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();
  10939. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10940. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10941. bool flag = true;
  10942. foreach (var items in ExtensionIDList)
  10943. {
  10944. if (items == Colspan + WorkPoint)
  10945. {
  10946. flag = false;
  10947. }
  10948. }
  10949. if (ExtensionID == null && flag == true)
  10950. {
  10951. str1 = Guid.NewGuid().ToString();
  10952. 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)
  10953. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10954. 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(),
  10955. MUSER, MUSERNAME, WorkPoint);
  10956. }
  10957. else if (ExtensionID != null)
  10958. {
  10959. str1 = ExtensionID.ToString();
  10960. }
  10961. ExtensionIDList.Add(Colspan + WorkPoint);
  10962. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10963. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10964. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10965. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10966. sql += string.Format(@"
  10967. insert into ICSInventoryLot
  10968. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10969. select
  10970. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}'
  10971. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10972. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10973. sql += "\r\n";
  10974. }
  10975. }
  10976. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10977. return count;
  10978. }
  10979. }
  10980. public class PackModel
  10981. {
  10982. public string ID { get; set; }
  10983. public string PackCode { get; set; }
  10984. public int FristBarIndex { get; set; }
  10985. public int LastBarIndex { get; set; }
  10986. }
  10987. }