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.

11436 lines
674 KiB

3 weeks ago
  1. using NFine.Data.Extensions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using NFine.Code;
  6. using NFine.Repository;
  7. using System.Data.Common;
  8. using NFine.Domain._03_Entity.SRM;
  9. using System.Configuration;
  10. using System.Text;
  11. using System.Net;
  12. using Newtonsoft.Json.Linq;
  13. using Newtonsoft.Json;
  14. using System.IO;
  15. using System.Data.SqlClient;
  16. using System.Linq;
  17. using NFine.Application.Models;
  18. namespace NFine.Application.RTWMS
  19. {
  20. public class PackModel
  21. {
  22. public string ID { get; set; }
  23. public string PackCode { get; set; }
  24. public int FristBarIndex { get; set; }
  25. public int LastBarIndex { get; set; }
  26. }
  27. public class WMSCreateItemLotApp : RepositoryFactory<ICSVendor>
  28. {
  29. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  30. {
  31. DataTable dt = new DataTable();
  32. var queryParam = queryJson.ToJObject();
  33. List<DbParameter> parameter = new List<DbParameter>();
  34. object Figure = GetDecimalDigits();
  35. #region [SQL]
  36. string sql = @"select a.ID,y.MOCode,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  37. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  38. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  39. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  40. ,b.EffectiveEnable,b.EffectiveDays
  41. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  42. ,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,
  43. a.EATTRIBUTE9,a.EATTRIBUTE10
  44. from ICSMOApplyNegDetail a
  45. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  46. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  47. left join (
  48. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  49. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  50. where isnull(ee.EATTRIBUTE1,'')=''
  51. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  52. )c
  53. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  54. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  55. inner JOIN ICSMOPick x ON a.SourceDetailID=x.PickID AND a.WorkPoint=x.WorkPoint
  56. left JOIN ICSMO y ON x.MODetailID=y.MODetailID AND x.WorkPoint=y.WorkPoint
  57. where d.Type='1' and d.Status='2' ";
  58. sql = string.Format(sql, Figure);
  59. #endregion
  60. if (!string.IsNullOrWhiteSpace(queryJson))
  61. {
  62. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  63. {
  64. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  65. }
  66. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  67. {
  68. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  69. }
  70. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  71. {
  72. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  73. }
  74. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  75. {
  76. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  77. }
  78. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  79. {
  80. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  81. }
  82. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  83. {
  84. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  85. }
  86. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  87. {
  88. string POStatus = queryParam["POStatus"].ToString();
  89. if (POStatus == "0")
  90. {
  91. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  92. }
  93. else if (POStatus == "1")
  94. {
  95. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  96. }
  97. else
  98. {
  99. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  100. }
  101. }
  102. }
  103. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  104. {
  105. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  106. }
  107. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  108. {
  109. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  110. }
  111. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  112. }
  113. /// <summary>
  114. /// 领料子件信息
  115. /// </summary>
  116. /// <param name="MODetailID"></param>
  117. /// <param name="workpoint"></param>
  118. /// <param name="jqgridparam"></param>
  119. /// <returns></returns>
  120. public DataTable GetICSMOPick(string MODetailID, string workpoint, ref Pagination jqgridparam)
  121. {
  122. DataTable dt = new DataTable();
  123. List<DbParameter> parameter = new List<DbParameter>();
  124. object Figure = GetDecimalDigits();
  125. #region [SQL]
  126. string sql = @" SELECT b.InvCode,c.InvName,c.InvStd,InvUnit,b.ID,b.Quantity,b.IssueQuantity,d.WarehouseCode,d.WarehouseName FROM dbo.ICSMO a
  127. LEFT JOIN dbo.ICSMOPick b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint
  128. LEFT JOIN dbo.ICSInventory c ON b.InvCode=c.InvCode AND b.WorkPoint=c.WorkPoint
  129. left join dbo.ICSWarehouse d on b.WHCode=d.WarehouseCode and b.WorkPoint=d.WorkPoint
  130. WHERE a.MODetailID='{0}'
  131. ";
  132. sql = string.Format(sql, MODetailID);
  133. #endregion
  134. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  135. }
  136. public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, string isPrint, ref Pagination jqgridparam)
  137. {
  138. DataTable dt = new DataTable();
  139. object Figure = GetDecimalDigits();
  140. List<DbParameter> parameter = new List<DbParameter>();
  141. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  142. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  143. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  144. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  145. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  146. case when g.InvIQC='1'and isnull(e.ID,'')='' then '' else '' end as isInspection,
  147. case when isnull(a.LastPrintUser,'')='' then '' else '' end as isPrint,
  148. case when Isnull(g.InvIQC,'0')='1' then '否' else '是' end as isExemption,a.Amount,
  149. convert(varchar(20),a.ProductDate,23) as ProductDate,convert(varchar(20),a.ExpirationDate,23) as ExpirationDate ,g.EffectiveDays,a.EATTRIBUTE4,a.EATTRIBUTE5
  150. from ICSInventoryLot a
  151. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  152. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  153. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  154. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  155. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  156. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  157. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  158. WHERE isnull(a.EATTRIBUTE1,'')='' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
  159. if (!string.IsNullOrWhiteSpace(isPrint))
  160. {
  161. if (isPrint == "0")
  162. {
  163. }
  164. else if (isPrint == "1")
  165. {
  166. sql += " and isnull(LastPrintUser,'')<>''";
  167. }
  168. else
  169. {
  170. sql += " and isnull(LastPrintUser,'')=''";
  171. }
  172. }
  173. sql = string.Format(sql, Figure);
  174. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  175. }
  176. /// <summary>
  177. /// 点击生成条码
  178. /// </summary>
  179. public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  180. {
  181. DataTable dt = new DataTable();
  182. object Figure = GetDecimalDigits();
  183. List<DbParameter> parameter = new List<DbParameter>();
  184. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn017', " + Quantity + ",1,2,'')";
  185. object Num = SqlHelper.ExecuteScalar(SeachNum);
  186. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  187. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty ,
  188. CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  189. 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' 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,
  190. 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,
  191. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  192. from ICSMOApplyNegDetail a
  193. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  194. left join (
  195. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  196. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='1'
  197. where isnull(a.EATTRIBUTE1,'')=''
  198. group by b.TransCode,b.TransSequence
  199. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  200. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  201. WHERE 1 =1
  202. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  203. sql += " and a.WorkPoint='" + WorkPoint + "'";
  204. sql = string.Format(sql, Figure);
  205. return Repository().FindTableBySql(sql.ToString());
  206. }
  207. public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
  208. {
  209. DataTable dt = new DataTable();
  210. //var queryParam = queryJson.ToJObject();
  211. List<DbParameter> parameter = new List<DbParameter>();
  212. string dtPre = DateTime.Now.ToString("yyyyMMdd");
  213. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
  214. return Repository().FindTableBySql(sql.ToString());
  215. }
  216. /// <summary>
  217. /// 生产退料生成条码
  218. /// </summary>
  219. /// <param name="POCode"></param>
  220. /// <param name="PORow"></param>
  221. /// <param name="keyValue"></param>
  222. /// 已改
  223. /// <returns></returns>
  224. public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  225. {
  226. var queryParam = keyValue.ToJObject();
  227. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  228. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  229. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  230. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  231. decimal LOTQTY = minPackQty;
  232. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  233. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  234. string Pre = "MDN" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  235. string sql = string.Empty;
  236. //string VendorLot = queryParam["VendorLot"].ToString();
  237. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  238. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  239. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  240. string InvCode = queryParam["ClassCode"].ToString();
  241. string Colspan = "";
  242. string sqls = string.Empty;
  243. string LotNo = string.Empty;
  244. string str1 = "";
  245. List<string> ExtensionIDList = new List<string>();
  246. #region 装箱的功能
  247. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  248. string VenCode = queryParam["VenCode"].ToString();
  249. int PackCount = 0;//每箱放的数量
  250. int Pack_YuShu = 0;//需要平摊的数量
  251. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  252. List<PackModel> List_Pack = new List<PackModel>();
  253. int ZQty = 0;
  254. if (createPackCount > 0)
  255. {
  256. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  257. if (Pack_YuShu == 0)
  258. {
  259. PackCount = (createPageCount / createPackCount);
  260. }
  261. else
  262. {
  263. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  264. }
  265. for (int jj = 0; jj < createPackCount; jj++)
  266. {
  267. object CARID = Guid.NewGuid();
  268. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  269. sql += @" INSERT INTO dbo.ICSContainer
  270. ( ID,ContainerCode ,
  271. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  272. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  273. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  274. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  275. PackModel PP = new PackModel();
  276. PP.ID = CARID.ToString();
  277. PP.PackCode = Carton;
  278. if (jj < Pack_YuShu)
  279. {
  280. PP.FristBarIndex = ZQty;
  281. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  282. }
  283. else
  284. {
  285. PP.FristBarIndex = ZQty;
  286. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  287. }
  288. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  289. List_Pack.Add(PP);
  290. }
  291. }
  292. #endregion
  293. for (int i = 0; i < createPageCount; i++)
  294. {
  295. if (i + 1 == createPageCount)
  296. {
  297. if (minPackQty * createPageCount > thisCreateQty)
  298. {
  299. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  300. }
  301. }
  302. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  303. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  304. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  305. bool flag = true;
  306. foreach (var item in ExtensionIDList)
  307. {
  308. if (item == Colspan + WorkPoint)
  309. {
  310. flag = false;
  311. }
  312. }
  313. if (ExtensionID == null && flag == true)
  314. {
  315. str1 = Guid.NewGuid().ToString();
  316. 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)
  317. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  318. 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(),
  319. MUSER, MUSERNAME, WorkPoints);
  320. }
  321. else if (ExtensionID != null)
  322. {
  323. str1 = ExtensionID.ToString();
  324. }
  325. ExtensionIDList.Add(Colspan + WorkPoint);
  326. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  327. if (AMEnable == "true")
  328. {
  329. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  330. }
  331. else
  332. {
  333. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  334. }
  335. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  336. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  337. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  338. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  339. //{
  340. sql += string.Format(@"insert into ICSInventoryLot
  341. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  342. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  343. select
  344. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  345. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  346. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  347. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  348. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  349. sql += "\r\n";
  350. //装箱的功能
  351. if (List_Pack.Count > 0)
  352. {
  353. PackModel mm = new PackModel();
  354. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  355. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  356. ( ID ,ContainerID ,LotNo ,
  357. MUSER ,MUSERName ,MTIME ,WorkPoint )
  358. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  359. }
  360. //}
  361. }
  362. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  363. return count;
  364. }
  365. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  366. {
  367. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  368. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  369. //return Repository().FindTableBySql(sql.ToString());
  370. return SqlHelper.ExecuteScalar(sql).ToString();
  371. //return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  372. }
  373. /// <summary>
  374. /// 删除条码
  375. /// </summary>
  376. /// <param name="keyValue"></param>
  377. /// <returns></returns>
  378. public string DeleteItemLot(string keyValue)
  379. {
  380. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  381. string msg = string.Empty;
  382. string sql = string.Format(@"SELECT * FROM dbo.ICSInspection
  383. WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  384. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  385. if (dtASN != null && dtASN.Rows.Count > 0)
  386. {
  387. msg = "所选条码已生成检验单,无法删除!";
  388. }
  389. sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN
  390. (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  391. DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
  392. if (dtCarton != null && dtCarton.Rows.Count > 0)
  393. {
  394. msg += "所选条码已入库,无法删除!";
  395. }
  396. if (string.IsNullOrEmpty(msg))
  397. {
  398. 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);
  399. 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);//删除箱子 条码对应关系
  400. sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
  401. SqlHelper.CmdExecuteNonQueryLi(sqls);
  402. }
  403. return msg;
  404. }
  405. public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
  406. {
  407. DataTable dt = new DataTable();
  408. var queryParam = queryJson.ToJObject();
  409. List<DbParameter> parameter = new List<DbParameter>();
  410. object Figure = GetDecimalDigits();
  411. #region [SQL]
  412. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  413. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  414. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
  415. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  416. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  417. ,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,
  418. a.EATTRIBUTE9,a.EATTRIBUTE10
  419. from ICSOApplyNegDetail a
  420. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  421. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  422. left join (
  423. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  424. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  425. where isnull(ee.EATTRIBUTE1,'')=''
  426. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  427. )c
  428. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  429. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  430. WHERE d.Type='1' ";
  431. sql = string.Format(sql, Figure);
  432. #endregion
  433. if (!string.IsNullOrWhiteSpace(queryJson))
  434. {
  435. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  436. {
  437. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  438. }
  439. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  440. {
  441. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  442. }
  443. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  444. {
  445. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  446. }
  447. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  448. {
  449. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  450. }
  451. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  452. {
  453. sql += " and d.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  454. }
  455. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  456. {
  457. sql += " and d.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  458. }
  459. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  460. {
  461. sql += " and d.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  462. }
  463. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  464. {
  465. string POStatus = queryParam["POStatus"].ToString();
  466. if (POStatus == "0")
  467. {
  468. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  469. }
  470. else if (POStatus == "1")
  471. {
  472. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  473. }
  474. else
  475. {
  476. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  477. }
  478. }
  479. }
  480. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  481. {
  482. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  483. }
  484. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  485. {
  486. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  487. }
  488. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  489. }
  490. public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
  491. {
  492. DataTable dt = new DataTable();
  493. object Figure = GetDecimalDigits();
  494. //var queryParam = queryJson.ToJObject();
  495. List<DbParameter> parameter = new List<DbParameter>();
  496. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  497. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity from ICSInventoryLot a
  498. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  499. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  500. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
  501. WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
  502. sql = string.Format(sql, Figure);
  503. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  504. }
  505. /// <summary>
  506. /// 点击委外退料生成条码
  507. /// </summary>
  508. public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  509. {
  510. DataTable dt = new DataTable();
  511. object Figure = GetDecimalDigits();
  512. List<DbParameter> parameter = new List<DbParameter>();
  513. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn008', " + Quantity + ",1,2,'')";
  514. object Num = SqlHelper.ExecuteScalar(SeachNum);
  515. string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  516. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  517. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  518. 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' 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
  519. ,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,
  520. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  521. from ICSOApplyNegDetail a
  522. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  523. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  524. left join (
  525. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  526. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='2'
  527. where isnull(a.EATTRIBUTE1,'')=''
  528. group by b.TransCode,b.TransSequence
  529. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  530. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  531. WHERE d.Type='1'
  532. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  533. sql += " and a.WorkPoint='" + WorkPoint + "'";
  534. sql = string.Format(sql, Figure);
  535. return Repository().FindTableBySql(sql.ToString());
  536. }
  537. /// <summary>
  538. /// 委外退料生成条码
  539. /// </summary>
  540. /// <param name="POCode"></param>
  541. /// <param name="PORow"></param>
  542. /// <param name="keyValue"></param>
  543. /// 已改
  544. /// <returns></returns>
  545. public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  546. {
  547. var queryParam = keyValue.ToJObject();
  548. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  549. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  550. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  551. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  552. decimal LOTQTY = minPackQty;
  553. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  554. string sql = string.Empty;
  555. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  556. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  557. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  558. string sqls = string.Empty;
  559. string Colspan = "";
  560. List<string> ExtensionIDList = new List<string>();
  561. string str1 = "";
  562. #region 装箱的功能
  563. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  564. string VenCode = queryParam["VenCode"].ToString();
  565. int PackCount = 0;//每箱放的数量
  566. int Pack_YuShu = 0;//需要平摊的数量
  567. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  568. List<PackModel> List_Pack = new List<PackModel>();
  569. int ZQty = 0;
  570. if (createPackCount > 0)
  571. {
  572. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  573. if (Pack_YuShu == 0)
  574. {
  575. PackCount = (createPageCount / createPackCount);
  576. }
  577. else
  578. {
  579. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  580. }
  581. for (int jj = 0; jj < createPackCount; jj++)
  582. {
  583. object CARID = Guid.NewGuid();
  584. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  585. sql += @" INSERT INTO dbo.ICSContainer
  586. ( ID,ContainerCode ,
  587. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  588. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  589. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  590. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  591. PackModel PP = new PackModel();
  592. PP.ID = CARID.ToString();
  593. PP.PackCode = Carton;
  594. if (jj < Pack_YuShu)
  595. {
  596. PP.FristBarIndex = ZQty;
  597. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  598. }
  599. else
  600. {
  601. PP.FristBarIndex = ZQty;
  602. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  603. }
  604. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  605. List_Pack.Add(PP);
  606. }
  607. }
  608. #endregion
  609. for (int i = 0; i < createPageCount; i++)
  610. {
  611. if (i + 1 == createPageCount)
  612. {
  613. if (minPackQty * createPageCount > thisCreateQty)
  614. {
  615. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  616. }
  617. }
  618. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  619. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  620. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  621. bool flag = true;
  622. foreach (var item in ExtensionIDList)
  623. {
  624. if (item == Colspan + WorkPoint)
  625. {
  626. flag = false;
  627. }
  628. }
  629. if (ExtensionID == null && flag == true)
  630. {
  631. str1 = Guid.NewGuid().ToString();
  632. 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)
  633. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  634. 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(),
  635. MUSER, MUSERNAME, WorkPoints);
  636. }
  637. else if (ExtensionID != null)
  638. {
  639. str1 = ExtensionID.ToString();
  640. }
  641. ExtensionIDList.Add(Colspan + WorkPoint);
  642. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  643. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  644. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  645. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  646. sql += string.Format(@"insert into ICSInventoryLot
  647. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  648. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  649. select
  650. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  651. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  652. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  653. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  654. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  655. sql += "\r\n";
  656. //装箱的功能
  657. if (List_Pack.Count > 0)
  658. {
  659. PackModel mm = new PackModel();
  660. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  661. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  662. ( ID ,ContainerID ,LotNo ,
  663. MUSER ,MUSERName ,MTIME ,WorkPoint )
  664. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  665. }
  666. }
  667. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  668. return count;
  669. }
  670. /// <summary>
  671. /// 委外退料生成条码
  672. /// </summary>
  673. /// <param name="POCode"></param>
  674. /// <param name="PORow"></param>
  675. /// <param name="keyValue"></param>
  676. /// 已改
  677. /// <returns></returns>
  678. public int SubmitFormWeiWaiNew(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  679. {
  680. var queryParam = keyValue.ToJObject();
  681. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  682. // decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  683. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  684. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  685. List<decimal> lotQtys = new List<decimal>();
  686. foreach (var jLotno in jLotnos)
  687. {
  688. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  689. lotQtys.Add(qty);
  690. }
  691. int createPageCount = lotQtys.Count();
  692. string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  693. string sql = string.Empty;
  694. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  695. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  696. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  697. string sqls = string.Empty;
  698. string Colspan = "";
  699. List<string> ExtensionIDList = new List<string>();
  700. string str1 = "";
  701. #region 装箱的功能
  702. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  703. string VenCode = queryParam["VenCode"].ToString();
  704. int PackCount = 0;//每箱放的数量
  705. int Pack_YuShu = 0;//需要平摊的数量
  706. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  707. List<PackModel> List_Pack = new List<PackModel>();
  708. int ZQty = 0;
  709. if (createPackCount > 0)
  710. {
  711. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  712. if (Pack_YuShu == 0)
  713. {
  714. PackCount = (createPageCount / createPackCount);
  715. }
  716. else
  717. {
  718. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  719. }
  720. for (int jj = 0; jj < createPackCount; jj++)
  721. {
  722. object CARID = Guid.NewGuid();
  723. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  724. sql += @" INSERT INTO dbo.ICSContainer
  725. ( ID,ContainerCode ,
  726. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  727. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  728. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  729. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  730. PackModel PP = new PackModel();
  731. PP.ID = CARID.ToString();
  732. PP.PackCode = Carton;
  733. if (jj < Pack_YuShu)
  734. {
  735. PP.FristBarIndex = ZQty;
  736. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  737. }
  738. else
  739. {
  740. PP.FristBarIndex = ZQty;
  741. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  742. }
  743. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  744. List_Pack.Add(PP);
  745. }
  746. }
  747. #endregion
  748. for (int i = 0; i < createPageCount; i++)
  749. {
  750. decimal LOTQTY = lotQtys[i];
  751. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  752. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  753. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  754. bool flag = true;
  755. foreach (var item in ExtensionIDList)
  756. {
  757. if (item == Colspan + WorkPoint)
  758. {
  759. flag = false;
  760. }
  761. }
  762. if (ExtensionID == null && flag == true)
  763. {
  764. str1 = Guid.NewGuid().ToString();
  765. 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)
  766. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  767. 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(),
  768. MUSER, MUSERNAME, WorkPoints);
  769. }
  770. else if (ExtensionID != null)
  771. {
  772. str1 = ExtensionID.ToString();
  773. }
  774. ExtensionIDList.Add(Colspan + WorkPoint);
  775. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  776. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  777. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  778. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  779. sql += string.Format(@"insert into ICSInventoryLot
  780. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  781. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  782. select
  783. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  784. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  785. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  786. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  787. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  788. sql += "\r\n";
  789. //装箱的功能
  790. if (List_Pack.Count > 0)
  791. {
  792. PackModel mm = new PackModel();
  793. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  794. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  795. ( ID ,ContainerID ,LotNo ,
  796. MUSER ,MUSERName ,MTIME ,WorkPoint )
  797. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  798. }
  799. }
  800. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  801. return count;
  802. }
  803. public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
  804. {
  805. DataTable dt = new DataTable();
  806. var queryParam = queryJson.ToJObject();
  807. List<DbParameter> parameter = new List<DbParameter>();
  808. object Figure = GetDecimalDigits();
  809. #region [SQL]
  810. string sql = @" select distinct a.ID, a.MODetailID,a.MOCode,a.Sequence,
  811. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  812. 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
  813. ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,
  814. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  815. 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
  816. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  817. ,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,
  818. a.EATTRIBUTE9,a.EATTRIBUTE10,a.EATTRIBUTE11,a.EATTRIBUTE12,b.MTIME as TMTime,dep.DepName,a.CreateDateTime
  819. from ICSMO a
  820. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  821. left join (
  822. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  823. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  824. where isnull(ee.EATTRIBUTE1,'')=''
  825. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  826. )c
  827. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  828. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  829. left join ICSDepartment dep ON dep.DepCode=a.DepCode and a.WorkPoint=dep.WorkPoint
  830. left join ICSWarehouse warehouse on a.WHCode=warehouse.WarehouseCode and a.WorkPoint=warehouse.WorkPoint ";
  831. sql += " WHERE 1=1 and a.MOStatus<>'3' ";
  832. sql = string.Format(sql, Figure);
  833. #endregion
  834. if (!string.IsNullOrWhiteSpace(queryJson))
  835. {
  836. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  837. {
  838. sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  839. }
  840. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  841. {
  842. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  843. }
  844. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  845. {
  846. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  847. }
  848. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  849. {
  850. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  851. }
  852. if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString()))
  853. {
  854. sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' ";
  855. }
  856. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  857. {
  858. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  859. }
  860. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  861. {
  862. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  863. }
  864. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  865. {
  866. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  867. }
  868. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  869. {
  870. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  871. }
  872. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  873. {
  874. string POStatus = queryParam["POStatus"].ToString();
  875. if (POStatus == "0")
  876. {
  877. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  878. }
  879. else if (POStatus == "1")
  880. {
  881. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  882. }
  883. else
  884. {
  885. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0";
  886. }
  887. }
  888. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  889. {
  890. string WHStatus = queryParam["WHStatus"].ToString();
  891. if (WHStatus == "0")
  892. {
  893. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  894. }
  895. else if (WHStatus == "1")
  896. {
  897. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
  898. }
  899. else
  900. {
  901. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
  902. }
  903. }
  904. }
  905. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  906. {
  907. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  908. }
  909. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  910. {
  911. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  912. }
  913. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  914. }
  915. /// <summary>
  916. /// 点击成品生成条码(成品)
  917. /// </summary>
  918. public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  919. {
  920. DataTable dt = new DataTable();
  921. object Figure = GetDecimalDigits();
  922. List<DbParameter> parameter = new List<DbParameter>();
  923. // 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,
  924. //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
  925. // ,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
  926. // from ICSMO a
  927. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  928. // left join (
  929. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  930. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  931. // where isnull(a.EATTRIBUTE1,'')=''
  932. // group by b.TransCode,b.TransSequence
  933. // ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  934. // left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  935. // left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  936. // WHERE 1 =1 and a.MOStatus<>'3'
  937. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn011', " + Quantity + ",1,2,'')";
  938. object Num = SqlHelper.ExecuteScalar(SeachNum);
  939. string sql = @" select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit,
  940. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  941. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  942. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  943. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  944. 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' 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
  945. ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
  946. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  947. from ICSMO a
  948. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  949. left join (
  950. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  951. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  952. where isnull(a.EATTRIBUTE1,'')=''
  953. group by b.TransCode,b.TransSequence
  954. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  955. left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
  956. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  957. WHERE 1 =1 and a.MOStatus<>'3'
  958. and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
  959. sql += " and a.WorkPoint='" + WorkPoint + "'";
  960. sql = string.Format(sql, Figure);
  961. return Repository().FindTableBySql(sql.ToString());
  962. }
  963. /// <summary>
  964. /// 成品生成条码
  965. /// </summary>
  966. /// <param name="POCode"></param>
  967. /// <param name="PORow"></param>
  968. /// <param name="keyValue"></param>
  969. /// 已改
  970. /// <returns></returns>
  971. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  972. public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity,string CodeAssociated)
  973. {
  974. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(CodeAssociated);
  975. var queryParam = keyValue.ToJObject();
  976. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  977. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  978. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  979. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  980. decimal LOTQTY = minPackQty;
  981. string InvCode = queryParam["ClassCode"].ToString();
  982. string InvCodeLP = queryParam["InvCode"].ToString();
  983. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  984. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  985. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  986. string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  987. string sql = string.Empty;
  988. //string VendorLot = queryParam["VendorLot"].ToString();
  989. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  990. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  991. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  992. string sqls = string.Empty;
  993. string Colspan = "";
  994. string str1 = "";
  995. string LotNo = string.Empty;
  996. List<string> ExtensionIDList = new List<string>();
  997. #region 装箱的功能
  998. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  999. string VenCode = queryParam["VenCode"].ToString();
  1000. int PackCount = 0;//每箱放的数量
  1001. int Pack_YuShu = 0;//需要平摊的数量
  1002. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1003. List<PackModel> List_Pack = new List<PackModel>();
  1004. int ZQty = 0;
  1005. if (createPackCount > 0)
  1006. {
  1007. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1008. if (Pack_YuShu == 0)
  1009. {
  1010. PackCount = (createPageCount / createPackCount);
  1011. }
  1012. else
  1013. {
  1014. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1015. }
  1016. for (int jj = 0; jj < createPackCount; jj++)
  1017. {
  1018. object CARID = Guid.NewGuid();
  1019. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1020. sql += @" INSERT INTO dbo.ICSContainer
  1021. ( ID,ContainerCode ,
  1022. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1023. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1024. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1025. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1026. PackModel PP = new PackModel();
  1027. PP.ID = CARID.ToString();
  1028. PP.PackCode = Carton;
  1029. if (jj < Pack_YuShu)
  1030. {
  1031. PP.FristBarIndex = ZQty;
  1032. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1033. }
  1034. else
  1035. {
  1036. PP.FristBarIndex = ZQty;
  1037. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1038. }
  1039. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1040. List_Pack.Add(PP);
  1041. }
  1042. }
  1043. #endregion
  1044. for (int i = 0; i < createPageCount; i++)
  1045. {
  1046. if (i + 1 == createPageCount)
  1047. {
  1048. if (minPackQty * createPageCount > thisCreateQty)
  1049. {
  1050. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1051. }
  1052. }
  1053. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1054. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1055. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1056. bool flag = true;
  1057. foreach (var item in ExtensionIDList)
  1058. {
  1059. if (item == Colspan + WorkPoint)
  1060. {
  1061. flag = false;
  1062. }
  1063. }
  1064. if (ExtensionID == null && flag == true)
  1065. {
  1066. str1 = Guid.NewGuid().ToString();
  1067. 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)
  1068. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1069. 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(),
  1070. MUSER, MUSERNAME, WorkPoints);
  1071. }
  1072. else if (ExtensionID != null)
  1073. {
  1074. str1 = ExtensionID.ToString();
  1075. }
  1076. ExtensionIDList.Add(Colspan + WorkPoint);
  1077. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1078. //if (AMEnable == "true")
  1079. //{
  1080. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1081. //}vvv
  1082. //else
  1083. //{
  1084. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  1085. //}
  1086. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1087. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1088. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1089. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1090. //{
  1091. sql += string.Format(@"insert into ICSInventoryLot
  1092. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1093. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE11)
  1094. select
  1095. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}'
  1096. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1097. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1098. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1099. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString(), queryParam["VenInvCode"].ToString());
  1100. sql += "\r\n";
  1101. //foreach (var item in res)
  1102. //{
  1103. // JObject jo = (JObject)item;
  1104. // var DistributionNum = jo["RemainingQTY"].ToDecimal();
  1105. //}
  1106. var LotNum = LOTQTY;
  1107. //foreach (DataRow dr in dt1.Rows)
  1108. //{
  1109. // if (LotNum==0)
  1110. // {
  1111. // break;
  1112. // }
  1113. // var Num= dr["RemainingQTY"].ToDecimal();
  1114. // if (Num==0)
  1115. // {
  1116. // dr.Delete();
  1117. // continue;
  1118. // }
  1119. // if (LotNum > Num)
  1120. // {
  1121. // LotNum = LotNum - Num;
  1122. // sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
  1123. // Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
  1124. // LotNo, dr["Code"].ToString(), Num, MUSER, MUSERNAME);
  1125. // dr.Delete();
  1126. // }
  1127. // else
  1128. // {
  1129. // sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
  1130. // Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
  1131. // LotNo, dr["Code"].ToString(), LotNum, MUSER, MUSERNAME);
  1132. // dr["RemainingQTY"] = (dr["RemainingQTY"].ToDecimal()-LotNum).ToString();
  1133. // LotNum = LotNum - LotNum;
  1134. // }
  1135. //}
  1136. for (int A = dt1.Rows.Count-1;A >= 0; A--)
  1137. {
  1138. DataRow dr = dt1.Rows[A] ;
  1139. if (LotNum == 0)
  1140. {
  1141. break;
  1142. }
  1143. var Num = dr["RemainingQTY"].ToDecimal();
  1144. if (Num == 0)
  1145. {
  1146. dt1.Rows.Remove(dr);
  1147. // dr.Delete();
  1148. continue;
  1149. }
  1150. if (LotNum > Num)
  1151. {
  1152. LotNum = LotNum - Num;
  1153. sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
  1154. Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
  1155. LotNo, dr["Code"].ToString(), Num, MUSER, MUSERNAME);
  1156. dt1.Rows.Remove(dr);
  1157. //dr.Delete();
  1158. }
  1159. else
  1160. {
  1161. sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
  1162. Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
  1163. LotNo, dr["Code"].ToString(), LotNum, MUSER, MUSERNAME);
  1164. dr["RemainingQTY"] = (dr["RemainingQTY"].ToDecimal() - LotNum).ToString();
  1165. LotNum = LotNum - LotNum;
  1166. }
  1167. }
  1168. #region//装箱的功能
  1169. if (List_Pack.Count > 0)
  1170. {
  1171. PackModel mm = new PackModel();
  1172. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1173. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1174. ( ID ,ContainerID ,LotNo ,
  1175. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1176. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1177. }
  1178. //}
  1179. #endregion
  1180. }
  1181. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1182. return count;
  1183. }
  1184. /// <summary>
  1185. /// 成品生成条码
  1186. /// </summary>
  1187. /// <param name="POCode"></param>
  1188. /// <param name="PORow"></param>
  1189. /// <param name="keyValue"></param>
  1190. /// 已改
  1191. /// <returns></returns>
  1192. ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1193. public int SubmitFormChengPingNew(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
  1194. {
  1195. var queryParam = keyValue.ToJObject();
  1196. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1197. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1198. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1199. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1200. List<decimal> lotQtys = new List<decimal>();
  1201. foreach (var jLotno in jLotnos)
  1202. {
  1203. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1204. lotQtys.Add(qty);
  1205. }
  1206. int createPageCount = lotQtys.Count();
  1207. string InvCode = queryParam["ClassCode"].ToString();
  1208. string InvCodeLP = queryParam["InvCode"].ToString();
  1209. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1210. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1211. //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
  1212. string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1213. string sql = string.Empty;
  1214. //string VendorLot = queryParam["VendorLot"].ToString();
  1215. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1216. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1217. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1218. string sqls = string.Empty;
  1219. string Colspan = "";
  1220. string str1 = "";
  1221. string LotNo = string.Empty;
  1222. List<string> ExtensionIDList = new List<string>();
  1223. #region 装箱的功能
  1224. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1225. string VenCode = queryParam["VenCode"].ToString();
  1226. int PackCount = 0;//每箱放的数量
  1227. int Pack_YuShu = 0;//需要平摊的数量
  1228. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1229. List<PackModel> List_Pack = new List<PackModel>();
  1230. int ZQty = 0;
  1231. if (createPackCount > 0)
  1232. {
  1233. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1234. if (Pack_YuShu == 0)
  1235. {
  1236. PackCount = (createPageCount / createPackCount);
  1237. }
  1238. else
  1239. {
  1240. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1241. }
  1242. for (int jj = 0; jj < createPackCount; jj++)
  1243. {
  1244. object CARID = Guid.NewGuid();
  1245. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1246. sql += @" INSERT INTO dbo.ICSContainer
  1247. ( ID,ContainerCode ,
  1248. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1249. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1250. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1251. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1252. PackModel PP = new PackModel();
  1253. PP.ID = CARID.ToString();
  1254. PP.PackCode = Carton;
  1255. if (jj < Pack_YuShu)
  1256. {
  1257. PP.FristBarIndex = ZQty;
  1258. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1259. }
  1260. else
  1261. {
  1262. PP.FristBarIndex = ZQty;
  1263. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1264. }
  1265. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1266. List_Pack.Add(PP);
  1267. }
  1268. }
  1269. #endregion
  1270. for (int i = 0; i < createPageCount; i++)
  1271. {
  1272. var LOTQTY = lotQtys[i];
  1273. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1274. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1275. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1276. bool flag = true;
  1277. foreach (var item in ExtensionIDList)
  1278. {
  1279. if (item == Colspan + WorkPoint)
  1280. {
  1281. flag = false;
  1282. }
  1283. }
  1284. if (ExtensionID == null && flag == true)
  1285. {
  1286. str1 = Guid.NewGuid().ToString();
  1287. 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)
  1288. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1289. 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(),
  1290. MUSER, MUSERNAME, WorkPoints);
  1291. }
  1292. else if (ExtensionID != null)
  1293. {
  1294. str1 = ExtensionID.ToString();
  1295. }
  1296. ExtensionIDList.Add(Colspan + WorkPoint);
  1297. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1298. //if (AMEnable == "true")
  1299. //{
  1300. // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1301. //}vvv
  1302. //else
  1303. //{
  1304. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
  1305. //}
  1306. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1307. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1308. LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1309. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1310. //{
  1311. sql += string.Format(@"insert into ICSInventoryLot
  1312. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1313. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1314. select
  1315. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1316. from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1317. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1318. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1319. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1320. sql += "\r\n";
  1321. //装箱的功能
  1322. if (List_Pack.Count > 0)
  1323. {
  1324. PackModel mm = new PackModel();
  1325. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1326. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1327. ( ID ,ContainerID ,LotNo ,
  1328. MUSER ,MUSERName ,MTIME ,WorkPoint )
  1329. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1330. }
  1331. //}
  1332. }
  1333. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1334. return count;
  1335. }
  1336. public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
  1337. {
  1338. DataTable dt = new DataTable();
  1339. var queryParam = queryJson.ToJObject();
  1340. List<DbParameter> parameter = new List<DbParameter>();
  1341. object Figure = GetDecimalDigits();
  1342. #region [SQL]
  1343. 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
  1344. ,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
  1345. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1346. ,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,
  1347. a.EATTRIBUTE9,a.EATTRIBUTE10
  1348. from ICSSDN a
  1349. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1350. left join (
  1351. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1352. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  1353. where isnull(ee.EATTRIBUTE1,'')=''
  1354. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1355. )c
  1356. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1357. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1358. --left join ICSDepartment dep ON dep.DepCode=a.[Detp]
  1359. where a.Type='2'";
  1360. sql = string.Format(sql, Figure);
  1361. #endregion
  1362. if (!string.IsNullOrWhiteSpace(queryJson))
  1363. {
  1364. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1365. {
  1366. sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1367. }
  1368. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1369. {
  1370. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1371. }
  1372. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1373. {
  1374. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1375. }
  1376. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1377. {
  1378. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1379. }
  1380. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1381. {
  1382. string POStatus = queryParam["POStatus"].ToString();
  1383. if (POStatus == "0")
  1384. {
  1385. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1386. }
  1387. else if (POStatus == "1")
  1388. {
  1389. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1390. }
  1391. else
  1392. {
  1393. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1394. }
  1395. }
  1396. }
  1397. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1398. {
  1399. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1400. }
  1401. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1402. {
  1403. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1404. }
  1405. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1406. }
  1407. /// <summary>
  1408. /// 点击销售退货生成条码(销售退货)
  1409. /// </summary>
  1410. public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1411. {
  1412. DataTable dt = new DataTable();
  1413. object Figure = GetDecimalDigits();
  1414. List<DbParameter> parameter = new List<DbParameter>();
  1415. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn020', " + Quantity + ",1,3,'')";
  1416. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1417. 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,
  1418. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1419. 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' 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
  1420. ,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,
  1421. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1422. from ICSSDN a
  1423. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1424. left join (
  1425. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1426. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='4'
  1427. where isnull(a.EATTRIBUTE1,'')=''
  1428. group by b.TransCode,b.TransSequence
  1429. ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
  1430. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1431. WHERE 1 =1
  1432. and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
  1433. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1434. sql = string.Format(sql, Figure);
  1435. return Repository().FindTableBySql(sql.ToString());
  1436. }
  1437. /// <summary>
  1438. /// 销售退货生成条码
  1439. /// </summary>
  1440. /// <param name="POCode"></param>
  1441. /// <param name="PORow"></param>
  1442. /// <param name="keyValue"></param>
  1443. /// 已改
  1444. /// <returns></returns>
  1445. public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1446. {
  1447. var queryParam = keyValue.ToJObject();
  1448. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1449. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1450. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1451. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1452. decimal LOTQTY = minPackQty;
  1453. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1454. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1455. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1456. string sql = string.Empty;
  1457. //string VendorLot = queryParam["VendorLot"].ToString();
  1458. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1459. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1460. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1461. string InvCode = queryParam["ClassCode"].ToString();
  1462. string sqls = string.Empty;
  1463. string Colspan = "";
  1464. string str1 = "";
  1465. string LotNo = string.Empty;
  1466. List<string> ExtensionIDList = new List<string>();
  1467. #region 装箱的功能
  1468. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1469. string VenCode = queryParam["VenCode"].ToString();
  1470. int PackCount = 0;//每箱放的数量
  1471. int Pack_YuShu = 0;//需要平摊的数量
  1472. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1473. List<PackModel> List_Pack = new List<PackModel>();
  1474. int ZQty = 0;
  1475. if (createPackCount > 0)
  1476. {
  1477. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1478. if (Pack_YuShu == 0)
  1479. {
  1480. PackCount = (createPageCount / createPackCount);
  1481. }
  1482. else
  1483. {
  1484. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1485. }
  1486. for (int jj = 0; jj < createPackCount; jj++)
  1487. {
  1488. object CARID = Guid.NewGuid();
  1489. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1490. sql += @" INSERT INTO dbo.ICSContainer
  1491. ( ID,ContainerCode ,
  1492. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1493. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1494. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1495. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1496. PackModel PP = new PackModel();
  1497. PP.ID = CARID.ToString();
  1498. PP.PackCode = Carton;
  1499. if (jj < Pack_YuShu)
  1500. {
  1501. PP.FristBarIndex = ZQty;
  1502. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1503. }
  1504. else
  1505. {
  1506. PP.FristBarIndex = ZQty;
  1507. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1508. }
  1509. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1510. List_Pack.Add(PP);
  1511. }
  1512. }
  1513. #endregion
  1514. for (int i = 0; i < createPageCount; i++)
  1515. {
  1516. if (i + 1 == createPageCount)
  1517. {
  1518. if (minPackQty * createPageCount > thisCreateQty)
  1519. {
  1520. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1521. }
  1522. }
  1523. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1524. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1525. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1526. bool flag = true;
  1527. foreach (var item in ExtensionIDList)
  1528. {
  1529. if (item == Colspan + WorkPoint)
  1530. {
  1531. flag = false;
  1532. }
  1533. }
  1534. if (ExtensionID == null && flag == true)
  1535. {
  1536. str1 = Guid.NewGuid().ToString();
  1537. 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)
  1538. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1539. 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(),
  1540. MUSER, MUSERNAME, WorkPoints);
  1541. }
  1542. else if (ExtensionID != null)
  1543. {
  1544. str1 = ExtensionID.ToString();
  1545. }
  1546. ExtensionIDList.Add(Colspan + WorkPoint);
  1547. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1548. if (AMEnable == "true")
  1549. {
  1550. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1551. }
  1552. else
  1553. {
  1554. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1555. }
  1556. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1557. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1558. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1559. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1560. //{
  1561. sql += string.Format(@"
  1562. insert into ICSInventoryLot
  1563. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1564. select
  1565. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1566. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1567. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1568. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1569. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1570. sql += "\r\n";
  1571. //}
  1572. //装箱的功能
  1573. if (List_Pack.Count > 0)
  1574. {
  1575. PackModel mm = new PackModel();
  1576. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1577. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1578. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1579. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1580. }
  1581. }
  1582. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1583. return count;
  1584. }
  1585. /// <summary>
  1586. /// 销售退货生成条码
  1587. /// </summary>
  1588. /// <param name="POCode"></param>
  1589. /// <param name="PORow"></param>
  1590. /// <param name="keyValue"></param>
  1591. /// 已改
  1592. /// <returns></returns>
  1593. public int SubmitFormXiaoShouNew(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1594. {
  1595. var queryParam = keyValue.ToJObject();
  1596. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1597. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1598. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1599. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  1600. List<decimal> lotQtys = new List<decimal>();
  1601. foreach (var jLotno in jLotnos)
  1602. {
  1603. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  1604. lotQtys.Add(qty);
  1605. }
  1606. int createPageCount = lotQtys.Count();
  1607. string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1608. string sql = string.Empty;
  1609. //string VendorLot = queryParam["VendorLot"].ToString();
  1610. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1611. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1612. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1613. string InvCode = queryParam["ClassCode"].ToString();
  1614. string sqls = string.Empty;
  1615. string Colspan = "";
  1616. string str1 = "";
  1617. string LotNo = string.Empty;
  1618. List<string> ExtensionIDList = new List<string>();
  1619. #region 装箱的功能
  1620. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1621. string VenCode = queryParam["VenCode"].ToString();
  1622. int PackCount = 0;//每箱放的数量
  1623. int Pack_YuShu = 0;//需要平摊的数量
  1624. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1625. List<PackModel> List_Pack = new List<PackModel>();
  1626. int ZQty = 0;
  1627. if (createPackCount > 0)
  1628. {
  1629. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1630. if (Pack_YuShu == 0)
  1631. {
  1632. PackCount = (createPageCount / createPackCount);
  1633. }
  1634. else
  1635. {
  1636. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1637. }
  1638. for (int jj = 0; jj < createPackCount; jj++)
  1639. {
  1640. object CARID = Guid.NewGuid();
  1641. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1642. sql += @" INSERT INTO dbo.ICSContainer
  1643. ( ID,ContainerCode ,
  1644. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1645. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1646. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1647. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1648. PackModel PP = new PackModel();
  1649. PP.ID = CARID.ToString();
  1650. PP.PackCode = Carton;
  1651. if (jj < Pack_YuShu)
  1652. {
  1653. PP.FristBarIndex = ZQty;
  1654. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1655. }
  1656. else
  1657. {
  1658. PP.FristBarIndex = ZQty;
  1659. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1660. }
  1661. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1662. List_Pack.Add(PP);
  1663. }
  1664. }
  1665. #endregion
  1666. for (int i = 0; i < createPageCount; i++)
  1667. {
  1668. var LOTQTY = lotQtys[i];
  1669. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1670. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1671. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1672. bool flag = true;
  1673. foreach (var item in ExtensionIDList)
  1674. {
  1675. if (item == Colspan + WorkPoint)
  1676. {
  1677. flag = false;
  1678. }
  1679. }
  1680. if (ExtensionID == null && flag == true)
  1681. {
  1682. str1 = Guid.NewGuid().ToString();
  1683. 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)
  1684. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1685. 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(),
  1686. MUSER, MUSERNAME, WorkPoints);
  1687. }
  1688. else if (ExtensionID != null)
  1689. {
  1690. str1 = ExtensionID.ToString();
  1691. }
  1692. ExtensionIDList.Add(Colspan + WorkPoint);
  1693. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1694. if (AMEnable == "true")
  1695. {
  1696. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1697. }
  1698. else
  1699. {
  1700. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1701. }
  1702. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1703. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
  1704. LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1705. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1706. //{
  1707. sql += string.Format(@"
  1708. insert into ICSInventoryLot
  1709. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1710. select
  1711. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1712. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  1713. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  1714. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1715. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1716. sql += "\r\n";
  1717. //}
  1718. //装箱的功能
  1719. if (List_Pack.Count > 0)
  1720. {
  1721. PackModel mm = new PackModel();
  1722. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1723. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1724. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1725. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1726. }
  1727. }
  1728. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1729. return count;
  1730. }
  1731. public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
  1732. {
  1733. DataTable dt = new DataTable();
  1734. var queryParam = queryJson.ToJObject();
  1735. List<DbParameter> parameter = new List<DbParameter>();
  1736. object Figure = GetDecimalDigits();
  1737. #region [SQL]
  1738. string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  1739. 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
  1740. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  1741. ,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,
  1742. a.EATTRIBUTE9,a.EATTRIBUTE10
  1743. from ICSOtherIn a
  1744. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1745. left join (
  1746. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  1747. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  1748. where isnull(ee.EATTRIBUTE1,'')=''
  1749. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  1750. )c
  1751. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  1752. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  1753. where a.Status='1' and ISNULL(a.Type,'1')='1' ";
  1754. sql = string.Format(sql, Figure);
  1755. #endregion
  1756. if (!string.IsNullOrWhiteSpace(queryJson))
  1757. {
  1758. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  1759. {
  1760. sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
  1761. }
  1762. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  1763. {
  1764. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  1765. }
  1766. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  1767. {
  1768. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  1769. }
  1770. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  1771. {
  1772. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  1773. }
  1774. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  1775. {
  1776. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  1777. }
  1778. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  1779. {
  1780. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  1781. }
  1782. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  1783. {
  1784. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  1785. }
  1786. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  1787. {
  1788. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  1789. }
  1790. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  1791. {
  1792. string POStatus = queryParam["POStatus"].ToString();
  1793. if (POStatus == "0")
  1794. {
  1795. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  1796. }
  1797. else if (POStatus == "1")
  1798. {
  1799. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  1800. }
  1801. else
  1802. {
  1803. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  1804. }
  1805. }
  1806. }
  1807. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  1808. {
  1809. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  1810. }
  1811. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  1812. {
  1813. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  1814. }
  1815. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1816. }
  1817. /// <summary>
  1818. /// 点击销售退货生成条码(其他入库)
  1819. /// </summary>
  1820. public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  1821. {
  1822. DataTable dt = new DataTable();
  1823. object Figure = GetDecimalDigits();
  1824. List<DbParameter> parameter = new List<DbParameter>();
  1825. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn021', " + Quantity + ",1,4,'')";
  1826. object Num = SqlHelper.ExecuteScalar(SeachNum);
  1827. 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,
  1828. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  1829. 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' 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
  1830. ,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,
  1831. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  1832. from ICSOtherIn a
  1833. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  1834. left join (
  1835. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  1836. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='5'
  1837. where isnull(a.EATTRIBUTE1,'')=''
  1838. group by b.TransCode,b.TransSequence
  1839. ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
  1840. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  1841. WHERE 1 =1
  1842. and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "' and ISNULL(a.EATTRIBUTE2,'1')='1'";
  1843. sql += " and a.WorkPoint='" + WorkPoint + "'";
  1844. sql = string.Format(sql, Figure);
  1845. return Repository().FindTableBySql(sql.ToString());
  1846. }
  1847. /// <summary>
  1848. /// 其他入库生成条码
  1849. /// </summary>
  1850. /// <param name="POCode"></param>
  1851. /// <param name="PORow"></param>
  1852. /// <param name="keyValue"></param>
  1853. /// 已改
  1854. /// <returns></returns>
  1855. public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1856. {
  1857. var queryParam = keyValue.ToJObject();
  1858. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1859. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  1860. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  1861. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  1862. decimal LOTQTY = minPackQty;
  1863. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1864. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  1865. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  1866. string sql = string.Empty;
  1867. //string VendorLot = queryParam["VendorLot"].ToString();
  1868. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1869. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1870. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  1871. string InvCode = queryParam["ClassCode"].ToString();
  1872. string sqls = string.Empty;
  1873. string Colspan = "";
  1874. string str1 = "";
  1875. string LotNo = string.Empty;
  1876. List<string> ExtensionIDList = new List<string>();
  1877. #region 装箱的功能
  1878. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  1879. string VenCode = queryParam["VenCode"].ToString();
  1880. int PackCount = 0;//每箱放的数量
  1881. int Pack_YuShu = 0;//需要平摊的数量
  1882. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  1883. List<PackModel> List_Pack = new List<PackModel>();
  1884. int ZQty = 0;
  1885. if (createPackCount > 0)
  1886. {
  1887. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  1888. if (Pack_YuShu == 0)
  1889. {
  1890. PackCount = (createPageCount / createPackCount);
  1891. }
  1892. else
  1893. {
  1894. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  1895. }
  1896. for (int jj = 0; jj < createPackCount; jj++)
  1897. {
  1898. object CARID = Guid.NewGuid();
  1899. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  1900. sql += @" INSERT INTO dbo.ICSContainer
  1901. ( ID,ContainerCode ,
  1902. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  1903. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  1904. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  1905. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  1906. PackModel PP = new PackModel();
  1907. PP.ID = CARID.ToString();
  1908. PP.PackCode = Carton;
  1909. if (jj < Pack_YuShu)
  1910. {
  1911. PP.FristBarIndex = ZQty;
  1912. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  1913. }
  1914. else
  1915. {
  1916. PP.FristBarIndex = ZQty;
  1917. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  1918. }
  1919. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  1920. List_Pack.Add(PP);
  1921. }
  1922. }
  1923. #endregion
  1924. for (int i = 0; i < createPageCount; i++)
  1925. {
  1926. if (i + 1 == createPageCount)
  1927. {
  1928. if (minPackQty * createPageCount > thisCreateQty)
  1929. {
  1930. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  1931. }
  1932. }
  1933. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  1934. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  1935. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  1936. bool flag = true;
  1937. foreach (var item in ExtensionIDList)
  1938. {
  1939. if (item == Colspan + WorkPoint)
  1940. {
  1941. flag = false;
  1942. }
  1943. }
  1944. if (ExtensionID == null && flag == true)
  1945. {
  1946. str1 = Guid.NewGuid().ToString();
  1947. 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)
  1948. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  1949. 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(),
  1950. MUSER, MUSERNAME, WorkPoints);
  1951. }
  1952. else if (ExtensionID != null)
  1953. {
  1954. str1 = ExtensionID.ToString();
  1955. }
  1956. ExtensionIDList.Add(Colspan + WorkPoint);
  1957. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  1958. if (AMEnable == "true")
  1959. {
  1960. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  1961. }
  1962. else
  1963. {
  1964. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  1965. }
  1966. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  1967. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  1968. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  1969. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  1970. //{
  1971. sql += string.Format(@"
  1972. insert into ICSInventoryLot
  1973. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  1974. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  1975. select
  1976. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  1977. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  1978. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  1979. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  1980. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  1981. sql += "\r\n";
  1982. //装箱的功能
  1983. if (List_Pack.Count > 0)
  1984. {
  1985. PackModel mm = new PackModel();
  1986. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  1987. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  1988. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  1989. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  1990. }
  1991. //}
  1992. }
  1993. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  1994. return count;
  1995. }
  1996. public int SubmitFormQiTaNew(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  1997. {
  1998. var queryParam = keyValue.ToJObject();
  1999. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2000. //int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2001. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2002. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2003. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  2004. List<decimal> lotQtys = new List<decimal>();
  2005. foreach (var jLotno in jLotnos)
  2006. {
  2007. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  2008. lotQtys.Add(qty);
  2009. }
  2010. int createPageCount = lotQtys.Count();
  2011. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2012. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  2013. string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2014. string sql = string.Empty;
  2015. //string VendorLot = queryParam["VendorLot"].ToString();
  2016. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2017. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2018. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2019. string InvCode = queryParam["ClassCode"].ToString();
  2020. string sqls = string.Empty;
  2021. string Colspan = "";
  2022. string str1 = "";
  2023. string LotNo = string.Empty;
  2024. List<string> ExtensionIDList = new List<string>();
  2025. #region 装箱的功能
  2026. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2027. string VenCode = queryParam["VenCode"].ToString();
  2028. int PackCount = 0;//每箱放的数量
  2029. int Pack_YuShu = 0;//需要平摊的数量
  2030. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2031. List<PackModel> List_Pack = new List<PackModel>();
  2032. int ZQty = 0;
  2033. if (createPackCount > 0)
  2034. {
  2035. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2036. if (Pack_YuShu == 0)
  2037. {
  2038. PackCount = (createPageCount / createPackCount);
  2039. }
  2040. else
  2041. {
  2042. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2043. }
  2044. for (int jj = 0; jj < createPackCount; jj++)
  2045. {
  2046. object CARID = Guid.NewGuid();
  2047. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2048. sql += @" INSERT INTO dbo.ICSContainer
  2049. ( ID,ContainerCode ,
  2050. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2051. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2052. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2053. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2054. PackModel PP = new PackModel();
  2055. PP.ID = CARID.ToString();
  2056. PP.PackCode = Carton;
  2057. if (jj < Pack_YuShu)
  2058. {
  2059. PP.FristBarIndex = ZQty;
  2060. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2061. }
  2062. else
  2063. {
  2064. PP.FristBarIndex = ZQty;
  2065. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2066. }
  2067. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2068. List_Pack.Add(PP);
  2069. }
  2070. }
  2071. #endregion
  2072. for (int i = 0; i < createPageCount; i++)
  2073. {
  2074. var LOTQTY = lotQtys[i];
  2075. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2076. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2077. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2078. bool flag = true;
  2079. foreach (var item in ExtensionIDList)
  2080. {
  2081. if (item == Colspan + WorkPoint)
  2082. {
  2083. flag = false;
  2084. }
  2085. }
  2086. if (ExtensionID == null && flag == true)
  2087. {
  2088. str1 = Guid.NewGuid().ToString();
  2089. 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)
  2090. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2091. 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(),
  2092. MUSER, MUSERNAME, WorkPoints);
  2093. }
  2094. else if (ExtensionID != null)
  2095. {
  2096. str1 = ExtensionID.ToString();
  2097. }
  2098. ExtensionIDList.Add(Colspan + WorkPoint);
  2099. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2100. if (AMEnable == "true")
  2101. {
  2102. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2103. }
  2104. else
  2105. {
  2106. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2107. }
  2108. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2109. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  2110. LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2111. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2112. //{
  2113. sql += string.Format(@"
  2114. insert into ICSInventoryLot
  2115. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  2116. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2117. select
  2118. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2119. from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
  2120. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  2121. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2122. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2123. sql += "\r\n";
  2124. //装箱的功能
  2125. if (List_Pack.Count > 0)
  2126. {
  2127. PackModel mm = new PackModel();
  2128. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2129. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2130. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  2131. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2132. }
  2133. //}
  2134. }
  2135. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2136. return count;
  2137. }
  2138. //归还
  2139. public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
  2140. {
  2141. DataTable dt = new DataTable();
  2142. var queryParam = queryJson.ToJObject();
  2143. List<DbParameter> parameter = new List<DbParameter>();
  2144. object Figure = GetDecimalDigits();
  2145. #region [SQL]
  2146. string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2147. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2148. CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime,
  2149. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2150. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2151. ,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,
  2152. a.EATTRIBUTE9,a.EATTRIBUTE10
  2153. from ICSReturn a
  2154. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2155. left join (
  2156. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2157. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  2158. where isnull(ee.EATTRIBUTE1,'')=''
  2159. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2160. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2161. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2162. where a.Status='2'";
  2163. sql = string.Format(sql, Figure);
  2164. #endregion
  2165. if (!string.IsNullOrWhiteSpace(queryJson))
  2166. {
  2167. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2168. {
  2169. sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2170. }
  2171. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2172. {
  2173. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2174. }
  2175. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2176. {
  2177. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2178. }
  2179. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2180. {
  2181. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2182. }
  2183. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2184. {
  2185. string POStatus = queryParam["POStatus"].ToString();
  2186. if (POStatus == "0")
  2187. {
  2188. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2189. }
  2190. else if (POStatus == "1")
  2191. {
  2192. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2193. }
  2194. else
  2195. {
  2196. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2197. }
  2198. }
  2199. }
  2200. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2201. {
  2202. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2203. }
  2204. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2205. {
  2206. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2207. }
  2208. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2209. }
  2210. //审核到货单(采购订单需与审核到货单一起同步)
  2211. public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
  2212. {
  2213. DataTable dt = new DataTable();
  2214. var queryParam = queryJson.ToJObject();
  2215. List<DbParameter> parameter = new List<DbParameter>();
  2216. object Figure = GetDecimalDigits();
  2217. #region [SQL]
  2218. 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,
  2219. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2220. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2221. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
  2222. Case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2223. --,isnull(b.EffectiveEnable,0) as EffectiveEnable
  2224. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2225. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2226. ,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,
  2227. a.EATTRIBUTE9,a.EATTRIBUTE10
  2228. from ICSDeliveryNotice a
  2229. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2230. left join (
  2231. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2232. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  2233. where isnull(ee.EATTRIBUTE1,'')=''
  2234. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2235. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2236. left join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  2237. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2238. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2239. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  2240. ";
  2241. sql = string.Format(sql, Figure);
  2242. #endregion
  2243. if (!string.IsNullOrWhiteSpace(queryJson))
  2244. {
  2245. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2246. {
  2247. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2248. }
  2249. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2250. {
  2251. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2252. }
  2253. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2254. {
  2255. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2256. }
  2257. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2258. {
  2259. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2260. }
  2261. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2262. {
  2263. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2264. }
  2265. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2266. {
  2267. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2268. }
  2269. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2270. {
  2271. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2272. }
  2273. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2274. {
  2275. string POStatus = queryParam["POStatus"].ToString();
  2276. if (POStatus == "0")
  2277. {
  2278. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2279. }
  2280. else if (POStatus == "1")
  2281. {
  2282. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2283. }
  2284. else
  2285. {
  2286. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2287. }
  2288. }
  2289. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2290. {
  2291. string WHStatus = queryParam["WHStatus"].ToString();
  2292. if (WHStatus == "0")
  2293. {
  2294. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2295. }
  2296. else if (WHStatus == "1")
  2297. {
  2298. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2299. }
  2300. else
  2301. {
  2302. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2303. }
  2304. }
  2305. }
  2306. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2307. {
  2308. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2309. }
  2310. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2311. {
  2312. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2313. }
  2314. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2315. }
  2316. //审核委外到货单
  2317. public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
  2318. {
  2319. DataTable dt = new DataTable();
  2320. var queryParam = queryJson.ToJObject();
  2321. List<DbParameter> parameter = new List<DbParameter>();
  2322. object Figure = GetDecimalDigits();
  2323. #region [SQL]
  2324. 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,
  2325. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2326. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2327. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
  2328. CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
  2329. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  2330. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,d.OODetailID ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  2331. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  2332. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2333. ,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,
  2334. a.EATTRIBUTE9,a.EATTRIBUTE10
  2335. from ICSODeliveryNotice a
  2336. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2337. left join (
  2338. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2339. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  2340. where isnull(ee.EATTRIBUTE1,'')=''
  2341. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2342. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2343. left join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  2344. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  2345. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2346. where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
  2347. sql = string.Format(sql, Figure);
  2348. #endregion
  2349. if (!string.IsNullOrWhiteSpace(queryJson))
  2350. {
  2351. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2352. {
  2353. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2354. }
  2355. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  2356. {
  2357. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  2358. }
  2359. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  2360. {
  2361. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  2362. }
  2363. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2364. {
  2365. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2366. }
  2367. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2368. {
  2369. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2370. }
  2371. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2372. {
  2373. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2374. }
  2375. if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
  2376. {
  2377. sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
  2378. }
  2379. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2380. {
  2381. string POStatus = queryParam["POStatus"].ToString();
  2382. if (POStatus == "0")
  2383. {
  2384. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2385. }
  2386. else if (POStatus == "1")
  2387. {
  2388. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2389. }
  2390. else
  2391. {
  2392. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2393. }
  2394. }
  2395. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  2396. {
  2397. string WHStatus = queryParam["WHStatus"].ToString();
  2398. if (WHStatus == "0")
  2399. {
  2400. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2401. }
  2402. else if (WHStatus == "1")
  2403. {
  2404. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
  2405. }
  2406. else
  2407. {
  2408. sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
  2409. }
  2410. }
  2411. }
  2412. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2413. {
  2414. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2415. }
  2416. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2417. {
  2418. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2419. }
  2420. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2421. }
  2422. //开立得成品入库单
  2423. public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
  2424. {
  2425. DataTable dt = new DataTable();
  2426. var queryParam = queryJson.ToJObject();
  2427. List<DbParameter> parameter = new List<DbParameter>();
  2428. object Figure = GetDecimalDigits();
  2429. #region [SQL]
  2430. string sql = @"
  2431. select a.ID,a.RCVCode,a.Sequence,a.SourceCode as MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  2432. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  2433. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  2434. CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.CreatePerson,a.CreateDateTime,
  2435. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  2436. ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable,b.EffectiveDays
  2437. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  2438. ,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,
  2439. a.EATTRIBUTE9,a.EATTRIBUTE10
  2440. from ICSManufactureReceive a
  2441. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2442. left join (
  2443. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  2444. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  2445. where isnull(ee.EATTRIBUTE1,'')=''
  2446. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  2447. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  2448. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  2449. --left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint
  2450. where a.Status='1' and a.Type='1'";
  2451. sql = string.Format(sql, Figure);
  2452. #endregion
  2453. if (!string.IsNullOrWhiteSpace(queryJson))
  2454. {
  2455. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  2456. {
  2457. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  2458. }
  2459. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  2460. {
  2461. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  2462. }
  2463. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  2464. {
  2465. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  2466. }
  2467. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  2468. {
  2469. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  2470. }
  2471. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  2472. {
  2473. sql += " and a.SourceCode like '%" + queryParam["SCode"].ToString() + "%' ";
  2474. }
  2475. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  2476. {
  2477. string POStatus = queryParam["POStatus"].ToString();
  2478. if (POStatus == "0")
  2479. {
  2480. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  2481. }
  2482. else if (POStatus == "1")
  2483. {
  2484. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  2485. }
  2486. else
  2487. {
  2488. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  2489. }
  2490. }
  2491. }
  2492. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  2493. {
  2494. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  2495. }
  2496. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  2497. {
  2498. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  2499. }
  2500. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  2501. }
  2502. /// <summary>
  2503. /// 点击审核委外到货单生成条码(审核委外到货单)
  2504. /// </summary>
  2505. public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2506. {
  2507. DataTable dt = new DataTable();
  2508. object Figure = GetDecimalDigits();
  2509. List<DbParameter> parameter = new List<DbParameter>();
  2510. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn005', " + Quantity + ",1,1,'')";
  2511. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2512. //锐腾添加退补逻辑
  2513. string sql = @"select e.Enable, a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2514. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2515. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2516. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2517. 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' 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
  2518. ,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,
  2519. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2520. from ICSODeliveryNotice a
  2521. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2522. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2523. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8'
  2524. where isnull(a.EATTRIBUTE1,'')=''
  2525. group by b.TransCode,b.TransSequence
  2526. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  2527. left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
  2528. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2529. left join (select a.ODNCode,a.Sequence,a.WorkPoint, ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  2530. from ICSODeliveryNotice a
  2531. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2532. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  2533. 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
  2534. WHERE 1 =1
  2535. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  2536. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2537. sql = string.Format(sql, Figure);
  2538. return Repository().FindTableBySql(sql.ToString());
  2539. }
  2540. /// <summary>
  2541. /// 点击开立成品入库生成条码(开立成品入库单)
  2542. /// </summary>
  2543. /// //--
  2544. public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2545. {
  2546. DataTable dt = new DataTable();
  2547. object Figure = GetDecimalDigits();
  2548. List<DbParameter> parameter = new List<DbParameter>();
  2549. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn013', " + Quantity + ",1,2,'')";
  2550. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2551. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2552. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2553. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2554. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2555. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2556. 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' 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
  2557. ,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,
  2558. '' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10
  2559. from ICSManufactureReceive a
  2560. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2561. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2562. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9'
  2563. where isnull(a.EATTRIBUTE1,'')=''
  2564. group by b.TransCode,b.TransSequence
  2565. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
  2566. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2567. WHERE 1 =1
  2568. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
  2569. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2570. sql = string.Format(sql, Figure);
  2571. return Repository().FindTableBySql(sql.ToString());
  2572. }
  2573. /// <summary>
  2574. /// 点击审核到货单生成条码(审核到货单)
  2575. /// </summary>
  2576. public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2577. {
  2578. DataTable dt = new DataTable();
  2579. object Figure = GetDecimalDigits();
  2580. List<DbParameter> parameter = new List<DbParameter>();
  2581. /***
  2582. * 退退退退
  2583. * 退退
  2584. ***/
  2585. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn002', " + Quantity + ",1,1,'')";
  2586. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2587. string checksql = $@"select a.ID from ICSDeliveryNotice a
  2588. inner join ICSDeliveryNotice b ON a.DNDetailID=Isnull(b.EATTRIBUTE8,'') and a.WorkPoint=b.WorkPoint and b.DNType='2' and b.EATTRIBUTE7='退'
  2589. where a.DNType='1' and a.DNCode='{DNCode}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}' ";
  2590. var checkdt = SqlHelper.CmdExecuteDataTable(checksql);
  2591. string sql = string.Empty;
  2592. if (checkdt.Rows.Count > 0)
  2593. {
  2594. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2595. CAST( " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2596. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2597. 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,
  2598. 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' 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
  2599. ,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,
  2600. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2601. from ICSDeliveryNotice a
  2602. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2603. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2604. 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
  2605. from ICSDeliveryNotice a
  2606. 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
  2607. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2608. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2609. where isnull(a.EATTRIBUTE1,'')=''
  2610. group by b.TransCode,b.TransSequence
  2611. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2612. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2613. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  2614. 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
  2615. WHERE 1 =1
  2616. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2617. }
  2618. else
  2619. {
  2620. sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2621. CAST( " + Num + @"+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
  2622. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2623. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2624. 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' 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
  2625. ,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,
  2626. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2627. from ICSDeliveryNotice a
  2628. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2629. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  2630. 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
  2631. from ICSDeliveryNotice a
  2632. 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
  2633. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2634. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
  2635. where isnull(a.EATTRIBUTE1,'')=''
  2636. group by b.TransCode,b.TransSequence
  2637. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  2638. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2639. 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
  2640. WHERE 1 =1
  2641. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  2642. }
  2643. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2644. sql = string.Format(sql, Figure);
  2645. return Repository().FindTableBySql(sql.ToString());
  2646. }
  2647. /// <summary>
  2648. /// 点击归还生成条码(归还)
  2649. /// </summary>
  2650. public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  2651. {
  2652. DataTable dt = new DataTable();
  2653. object Figure = GetDecimalDigits();
  2654. List<DbParameter> parameter = new List<DbParameter>();
  2655. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn023', " + Quantity + ",1,4,'')";
  2656. object Num = SqlHelper.ExecuteScalar(SeachNum);
  2657. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  2658. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  2659. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  2660. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  2661. CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  2662. 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' 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
  2663. ,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,
  2664. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  2665. from ICSReturn a
  2666. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  2667. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  2668. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6'
  2669. where isnull(a.EATTRIBUTE1,'')=''
  2670. group by b.TransCode,b.TransSequence
  2671. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
  2672. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  2673. WHERE 1 =1
  2674. and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
  2675. sql += " and a.WorkPoint='" + WorkPoint + "'";
  2676. sql = string.Format(sql, Figure);
  2677. return Repository().FindTableBySql(sql.ToString());
  2678. }
  2679. /// <summary>
  2680. /// 归还单生成条码
  2681. /// </summary>
  2682. /// <param name="POCode"></param>
  2683. /// <param name="PORow"></param>
  2684. /// <param name="keyValue"></param>
  2685. /// 已改
  2686. /// <returns></returns>
  2687. public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
  2688. {
  2689. var queryParam = keyValue.ToJObject();
  2690. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2691. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2692. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2693. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2694. decimal LOTQTY = minPackQty;
  2695. string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2696. string sql = string.Empty;
  2697. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2698. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2699. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2700. string sqls = string.Empty;
  2701. string Colspan = "";
  2702. string str1 = "";
  2703. List<string> ExtensionIDList = new List<string>();
  2704. #region 装箱的功能
  2705. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2706. string VenCode = queryParam["VenCode"].ToString();
  2707. int PackCount = 0;//每箱放的数量
  2708. int Pack_YuShu = 0;//需要平摊的数量
  2709. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2710. List<PackModel> List_Pack = new List<PackModel>();
  2711. int ZQty = 0;
  2712. if (createPackCount > 0)
  2713. {
  2714. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2715. if (Pack_YuShu == 0)
  2716. {
  2717. PackCount = (createPageCount / createPackCount);
  2718. }
  2719. else
  2720. {
  2721. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2722. }
  2723. for (int jj = 0; jj < createPackCount; jj++)
  2724. {
  2725. object CARID = Guid.NewGuid();
  2726. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2727. sql += @" INSERT INTO dbo.ICSContainer
  2728. ( ID,ContainerCode ,
  2729. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2730. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2731. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2732. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2733. PackModel PP = new PackModel();
  2734. PP.ID = CARID.ToString();
  2735. PP.PackCode = Carton;
  2736. if (jj < Pack_YuShu)
  2737. {
  2738. PP.FristBarIndex = ZQty;
  2739. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2740. }
  2741. else
  2742. {
  2743. PP.FristBarIndex = ZQty;
  2744. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2745. }
  2746. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2747. List_Pack.Add(PP);
  2748. }
  2749. }
  2750. #endregion
  2751. for (int i = 0; i < createPageCount; i++)
  2752. {
  2753. if (i + 1 == createPageCount)
  2754. {
  2755. if (minPackQty * createPageCount > thisCreateQty)
  2756. {
  2757. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2758. }
  2759. }
  2760. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2761. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2762. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2763. bool flag = true;
  2764. foreach (var item in ExtensionIDList)
  2765. {
  2766. if (item == Colspan + WorkPoint)
  2767. {
  2768. flag = false;
  2769. }
  2770. }
  2771. if (ExtensionID == null && flag == true)
  2772. {
  2773. str1 = Guid.NewGuid().ToString();
  2774. 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)
  2775. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2776. 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(),
  2777. MUSER, MUSERNAME, WorkPoints);
  2778. }
  2779. else if (ExtensionID != null)
  2780. {
  2781. str1 = ExtensionID.ToString();
  2782. }
  2783. ExtensionIDList.Add(Colspan + WorkPoint);
  2784. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2785. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2786. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  2787. LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2788. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  2789. //{
  2790. sql += string.Format(@"
  2791. insert into ICSInventoryLot
  2792. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2793. select
  2794. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2795. from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  2796. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2797. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2798. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2799. sql += "\r\n";
  2800. //装箱的功能
  2801. if (List_Pack.Count > 0)
  2802. {
  2803. PackModel mm = new PackModel();
  2804. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2805. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2806. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  2807. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2808. }
  2809. //}
  2810. }
  2811. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2812. return count;
  2813. }
  2814. /// <summary>
  2815. /// 审核到货单生成条码
  2816. /// </summary>
  2817. /// <param name="POCode"></param>
  2818. /// <param name="PORow"></param>
  2819. /// <param name="keyValue"></param>
  2820. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  2821. /// <returns></returns>
  2822. public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2823. {
  2824. var queryParam = keyValue.ToJObject();
  2825. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2826. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2827. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2828. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2829. decimal LOTQTY = minPackQty;
  2830. string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2831. string sql = string.Empty;
  2832. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2833. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2834. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2835. string InvCode = queryParam["ClassCode"].ToString();
  2836. string sqls = string.Empty;
  2837. string Colspan = "";
  2838. string str1 = "";
  2839. string LotNo = string.Empty;
  2840. List<string> ExtensionIDList = new List<string>();
  2841. #region 装箱的功能
  2842. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2843. string VenCode = queryParam["VenCode"].ToString();
  2844. int PackCount = 0;//每箱放的数量
  2845. int Pack_YuShu = 0;//需要平摊的数量
  2846. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2847. List<PackModel> List_Pack = new List<PackModel>();
  2848. int ZQty = 0;
  2849. if (createPackCount > 0)
  2850. {
  2851. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2852. if (Pack_YuShu == 0)
  2853. {
  2854. PackCount = (createPageCount / createPackCount);
  2855. }
  2856. else
  2857. {
  2858. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  2859. }
  2860. for (int jj = 0; jj < createPackCount; jj++)
  2861. {
  2862. object CARID = Guid.NewGuid();
  2863. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  2864. sql += @" INSERT INTO dbo.ICSContainer
  2865. ( ID,ContainerCode ,
  2866. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  2867. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  2868. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  2869. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  2870. PackModel PP = new PackModel();
  2871. PP.ID = CARID.ToString();
  2872. PP.PackCode = Carton;
  2873. if (jj < Pack_YuShu)
  2874. {
  2875. PP.FristBarIndex = ZQty;
  2876. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  2877. }
  2878. else
  2879. {
  2880. PP.FristBarIndex = ZQty;
  2881. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  2882. }
  2883. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  2884. List_Pack.Add(PP);
  2885. }
  2886. }
  2887. #endregion
  2888. for (int i = 0; i < createPageCount; i++)
  2889. {
  2890. if (i + 1 == createPageCount)
  2891. {
  2892. if (minPackQty * createPageCount > thisCreateQty)
  2893. {
  2894. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  2895. }
  2896. }
  2897. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  2898. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  2899. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  2900. bool flag = true;
  2901. foreach (var item in ExtensionIDList)
  2902. {
  2903. if (item == Colspan + WorkPoint)
  2904. {
  2905. flag = false;
  2906. }
  2907. }
  2908. if (ExtensionID == null && flag == true)
  2909. {
  2910. str1 = Guid.NewGuid().ToString();
  2911. 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)
  2912. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  2913. 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(),
  2914. MUSER, MUSERNAME, WorkPoints);
  2915. }
  2916. else if (ExtensionID != null)
  2917. {
  2918. str1 = ExtensionID.ToString();
  2919. }
  2920. ExtensionIDList.Add(Colspan + WorkPoint);
  2921. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  2922. if (AMEnable == "true")
  2923. {
  2924. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  2925. }
  2926. else
  2927. {
  2928. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  2929. }
  2930. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  2931. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  2932. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  2933. sql += string.Format(@"
  2934. insert into ICSInventoryLot
  2935. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  2936. select
  2937. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  2938. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  2939. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  2940. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  2941. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  2942. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  2943. sql += "\r\n";
  2944. //装箱的功能
  2945. if (List_Pack.Count > 0)
  2946. {
  2947. PackModel mm = new PackModel();
  2948. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  2949. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  2950. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  2951. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  2952. }
  2953. }
  2954. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2955. return count;
  2956. }
  2957. /// <summary>
  2958. /// 审核委外到货单生成条码
  2959. /// </summary>
  2960. /// <param name="POCode"></param>
  2961. /// <param name="PORow"></param>
  2962. /// <param name="keyValue"></param>
  2963. /// 已改
  2964. /// <returns></returns>
  2965. /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
  2966. public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  2967. {
  2968. var queryParam = keyValue.ToJObject();
  2969. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  2970. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  2971. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  2972. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  2973. decimal LOTQTY = minPackQty;
  2974. string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  2975. string sql = string.Empty;
  2976. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2977. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2978. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  2979. string InvCode = queryParam["ClassCode"].ToString();
  2980. string sqls = string.Empty;
  2981. string Colspan = "";
  2982. string str1 = "";
  2983. string LotNo = string.Empty;
  2984. List<string> ExtensionIDList = new List<string>();
  2985. #region 装箱的功能
  2986. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  2987. string VenCode = queryParam["VenCode"].ToString();
  2988. int PackCount = 0;//每箱放的数量
  2989. int Pack_YuShu = 0;//需要平摊的数量
  2990. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  2991. List<PackModel> List_Pack = new List<PackModel>();
  2992. int ZQty = 0;
  2993. if (createPackCount > 0)
  2994. {
  2995. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  2996. if (Pack_YuShu == 0)
  2997. {
  2998. PackCount = (createPageCount / createPackCount);
  2999. }
  3000. else
  3001. {
  3002. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3003. }
  3004. for (int jj = 0; jj < createPackCount; jj++)
  3005. {
  3006. object CARID = Guid.NewGuid();
  3007. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3008. sql += @" INSERT INTO dbo.ICSContainer
  3009. ( ID,ContainerCode ,
  3010. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3011. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3012. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3013. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3014. PackModel PP = new PackModel();
  3015. PP.ID = CARID.ToString();
  3016. PP.PackCode = Carton;
  3017. if (jj < Pack_YuShu)
  3018. {
  3019. PP.FristBarIndex = ZQty;
  3020. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3021. }
  3022. else
  3023. {
  3024. PP.FristBarIndex = ZQty;
  3025. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3026. }
  3027. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3028. List_Pack.Add(PP);
  3029. }
  3030. }
  3031. #endregion
  3032. for (int i = 0; i < createPageCount; i++)
  3033. {
  3034. if (i + 1 == createPageCount)
  3035. {
  3036. if (minPackQty * createPageCount > thisCreateQty)
  3037. {
  3038. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3039. }
  3040. }
  3041. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3042. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3043. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3044. bool flag = true;
  3045. foreach (var item in ExtensionIDList)
  3046. {
  3047. if (item == Colspan + WorkPoint)
  3048. {
  3049. flag = false;
  3050. }
  3051. }
  3052. if (ExtensionID == null && flag == true)
  3053. {
  3054. str1 = Guid.NewGuid().ToString();
  3055. 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)
  3056. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3057. 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(),
  3058. MUSER, MUSERNAME, WorkPoints);
  3059. }
  3060. else if (ExtensionID != null)
  3061. {
  3062. str1 = ExtensionID.ToString();
  3063. }
  3064. ExtensionIDList.Add(Colspan + WorkPoint);
  3065. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  3066. if (AMEnable == "true")
  3067. {
  3068. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  3069. }
  3070. else
  3071. {
  3072. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3073. }
  3074. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3075. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3076. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3077. sql += string.Format(@"
  3078. insert into ICSInventoryLot
  3079. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3080. select
  3081. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  3082. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3083. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3084. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3085. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3086. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3087. sql += "\r\n";
  3088. //装箱的功能
  3089. if (List_Pack.Count > 0)
  3090. {
  3091. PackModel mm = new PackModel();
  3092. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3093. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3094. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3095. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3096. }
  3097. }
  3098. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3099. return count;
  3100. }
  3101. /// <summary>
  3102. /// 开立成品入库单
  3103. /// </summary>
  3104. /// <param name="POCode"></param>
  3105. /// <param name="PORow"></param>
  3106. /// <param name="keyValue"></param>
  3107. /// 已改
  3108. /// <returns></returns>
  3109. public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  3110. {
  3111. var queryParam = keyValue.ToJObject();
  3112. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3113. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3114. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3115. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3116. decimal LOTQTY = minPackQty;
  3117. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3118. string sql = string.Empty;
  3119. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3120. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3121. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3122. string sqls = string.Empty;
  3123. string Colspan = "";
  3124. string str1 = "";
  3125. List<string> ExtensionIDList = new List<string>();
  3126. #region 装箱的功能
  3127. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3128. string VenCode = queryParam["VenCode"].ToString();
  3129. int PackCount = 0;//每箱放的数量
  3130. int Pack_YuShu = 0;//需要平摊的数量
  3131. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3132. List<PackModel> List_Pack = new List<PackModel>();
  3133. int ZQty = 0;
  3134. if (createPackCount > 0)
  3135. {
  3136. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3137. if (Pack_YuShu == 0)
  3138. {
  3139. PackCount = (createPageCount / createPackCount);
  3140. }
  3141. else
  3142. {
  3143. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3144. }
  3145. for (int jj = 0; jj < createPackCount; jj++)
  3146. {
  3147. object CARID = Guid.NewGuid();
  3148. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3149. sql += @" INSERT INTO dbo.ICSContainer
  3150. ( ID,ContainerCode ,
  3151. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3152. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3153. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3154. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3155. PackModel PP = new PackModel();
  3156. PP.ID = CARID.ToString();
  3157. PP.PackCode = Carton;
  3158. if (jj < Pack_YuShu)
  3159. {
  3160. PP.FristBarIndex = ZQty;
  3161. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3162. }
  3163. else
  3164. {
  3165. PP.FristBarIndex = ZQty;
  3166. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3167. }
  3168. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3169. List_Pack.Add(PP);
  3170. }
  3171. }
  3172. #endregion
  3173. for (int i = 0; i < createPageCount; i++)
  3174. {
  3175. if (i + 1 == createPageCount)
  3176. {
  3177. if (minPackQty * createPageCount > thisCreateQty)
  3178. {
  3179. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3180. }
  3181. }
  3182. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3183. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3184. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3185. bool flag = true;
  3186. foreach (var item in ExtensionIDList)
  3187. {
  3188. if (item == Colspan + WorkPoint)
  3189. {
  3190. flag = false;
  3191. }
  3192. }
  3193. if (ExtensionID == null && flag == true)
  3194. {
  3195. str1 = Guid.NewGuid().ToString();
  3196. 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)
  3197. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3198. 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(),
  3199. MUSER, MUSERNAME, WorkPoints);
  3200. }
  3201. else if (ExtensionID != null)
  3202. {
  3203. str1 = ExtensionID.ToString();
  3204. }
  3205. ExtensionIDList.Add(Colspan + WorkPoint);
  3206. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3207. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3208. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3209. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3210. sql += string.Format(@"
  3211. insert into ICSInventoryLot
  3212. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3213. select
  3214. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3215. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3216. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3217. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3218. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3219. sql += "\r\n";
  3220. //装箱的功能
  3221. if (List_Pack.Count > 0)
  3222. {
  3223. PackModel mm = new PackModel();
  3224. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3225. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3226. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3227. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3228. }
  3229. }
  3230. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3231. return count;
  3232. }
  3233. //委外拒收单
  3234. public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
  3235. {
  3236. DataTable dt = new DataTable();
  3237. var queryParam = queryJson.ToJObject();
  3238. List<DbParameter> parameter = new List<DbParameter>();
  3239. object Figure = GetDecimalDigits();
  3240. #region [SQL]
  3241. 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,
  3242. 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,
  3243. CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3244. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3245. ,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,
  3246. a.EATTRIBUTE9,a.EATTRIBUTE10
  3247. from ICSODeliveryNotice a
  3248. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3249. left join (
  3250. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3251. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  3252. where isnull(ee.EATTRIBUTE1,'')=''
  3253. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3254. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3255. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  3256. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3257. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3258. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3259. ";
  3260. sql = string.Format(sql, Figure);
  3261. #endregion
  3262. if (!string.IsNullOrWhiteSpace(queryJson))
  3263. {
  3264. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3265. {
  3266. sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3267. }
  3268. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3269. {
  3270. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3271. }
  3272. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3273. {
  3274. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3275. }
  3276. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3277. {
  3278. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3279. }
  3280. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3281. {
  3282. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3283. }
  3284. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3285. {
  3286. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3287. }
  3288. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3289. {
  3290. string POStatus = queryParam["POStatus"].ToString();
  3291. if (POStatus == "0")
  3292. {
  3293. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3294. }
  3295. else if (POStatus == "1")
  3296. {
  3297. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3298. }
  3299. else
  3300. {
  3301. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3302. }
  3303. }
  3304. }
  3305. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3306. {
  3307. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3308. }
  3309. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3310. {
  3311. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3312. }
  3313. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3314. }
  3315. //拒收单
  3316. public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
  3317. {
  3318. DataTable dt = new DataTable();
  3319. var queryParam = queryJson.ToJObject();
  3320. List<DbParameter> parameter = new List<DbParameter>();
  3321. object Figure = GetDecimalDigits();
  3322. #region [SQL]
  3323. string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
  3324. 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,
  3325. CAST( a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
  3326. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3327. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3328. ,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,
  3329. a.EATTRIBUTE9,a.EATTRIBUTE10
  3330. from ICSDeliveryNotice a
  3331. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3332. left join (
  3333. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3334. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  3335. where isnull(ee.EATTRIBUTE1,'')=''
  3336. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3337. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3338. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  3339. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  3340. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3341. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  3342. ";
  3343. sql = string.Format(sql, Figure);
  3344. #endregion
  3345. if (!string.IsNullOrWhiteSpace(queryJson))
  3346. {
  3347. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3348. {
  3349. sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3350. }
  3351. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  3352. {
  3353. sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  3354. }
  3355. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  3356. {
  3357. sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  3358. }
  3359. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3360. {
  3361. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3362. }
  3363. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3364. {
  3365. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3366. }
  3367. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3368. {
  3369. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3370. }
  3371. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3372. {
  3373. string POStatus = queryParam["POStatus"].ToString();
  3374. if (POStatus == "0")
  3375. {
  3376. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3377. }
  3378. else if (POStatus == "1")
  3379. {
  3380. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3381. }
  3382. else
  3383. {
  3384. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3385. }
  3386. }
  3387. }
  3388. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3389. {
  3390. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3391. }
  3392. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3393. {
  3394. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3395. }
  3396. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3397. }
  3398. //领料申请退料
  3399. public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
  3400. {
  3401. DataTable dt = new DataTable();
  3402. var queryParam = queryJson.ToJObject();
  3403. List<DbParameter> parameter = new List<DbParameter>();
  3404. object Figure = GetDecimalDigits();
  3405. #region [SQL]
  3406. 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,
  3407. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
  3408. CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  3409. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  3410. ,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,
  3411. a.EATTRIBUTE9,a.EATTRIBUTE10
  3412. from ICSMOApplyNegDetail a
  3413. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3414. left JOIN ICSMOApply bb ON a.SourceDetailID=bb.ApplyDetailID AND a.WorkPoint=bb.WorkPoint
  3415. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3416. left join (
  3417. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  3418. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  3419. where isnull(ee.EATTRIBUTE1,'')=''
  3420. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  3421. )c
  3422. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  3423. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  3424. WHERE d.Type='2' and d.Status='2' ";
  3425. sql = string.Format(sql, Figure);
  3426. #endregion
  3427. if (!string.IsNullOrWhiteSpace(queryJson))
  3428. {
  3429. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  3430. {
  3431. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  3432. }
  3433. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  3434. {
  3435. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  3436. }
  3437. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  3438. {
  3439. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  3440. }
  3441. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  3442. {
  3443. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  3444. }
  3445. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  3446. {
  3447. sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
  3448. }
  3449. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  3450. {
  3451. sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' ";
  3452. }
  3453. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  3454. {
  3455. string POStatus = queryParam["POStatus"].ToString();
  3456. if (POStatus == "0")
  3457. {
  3458. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  3459. }
  3460. else if (POStatus == "1")
  3461. {
  3462. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  3463. }
  3464. else
  3465. {
  3466. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  3467. }
  3468. }
  3469. }
  3470. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  3471. {
  3472. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  3473. }
  3474. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  3475. {
  3476. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  3477. }
  3478. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  3479. }
  3480. /// <summary>
  3481. /// 拒收生成条码
  3482. /// </summary>
  3483. /// <param name="POCode"></param>
  3484. /// <param name="PORow"></param>
  3485. /// <param name="keyValue"></param>
  3486. /// <returns></returns>
  3487. public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
  3488. {
  3489. var queryParam = keyValue.ToJObject();
  3490. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3491. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3492. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3493. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3494. decimal LOTQTY = minPackQty;
  3495. string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3496. string sql = string.Empty;
  3497. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3498. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3499. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3500. string sqls = string.Empty;
  3501. string Colspan = "";
  3502. string str1 = "";
  3503. List<string> ExtensionIDList = new List<string>();
  3504. #region 装箱的功能
  3505. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3506. string VenCode = queryParam["VenCode"].ToString();
  3507. int PackCount = 0;//每箱放的数量
  3508. int Pack_YuShu = 0;//需要平摊的数量
  3509. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3510. List<PackModel> List_Pack = new List<PackModel>();
  3511. int ZQty = 0;
  3512. if (createPackCount > 0)
  3513. {
  3514. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3515. if (Pack_YuShu == 0)
  3516. {
  3517. PackCount = (createPageCount / createPackCount);
  3518. }
  3519. else
  3520. {
  3521. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3522. }
  3523. for (int jj = 0; jj < createPackCount; jj++)
  3524. {
  3525. object CARID = Guid.NewGuid();
  3526. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3527. sql += @" INSERT INTO dbo.ICSContainer
  3528. ( ID,ContainerCode ,
  3529. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3530. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3531. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3532. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3533. PackModel PP = new PackModel();
  3534. PP.ID = CARID.ToString();
  3535. PP.PackCode = Carton;
  3536. if (jj < Pack_YuShu)
  3537. {
  3538. PP.FristBarIndex = ZQty;
  3539. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3540. }
  3541. else
  3542. {
  3543. PP.FristBarIndex = ZQty;
  3544. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3545. }
  3546. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3547. List_Pack.Add(PP);
  3548. }
  3549. }
  3550. #endregion
  3551. for (int i = 0; i < createPageCount; i++)
  3552. {
  3553. if (i + 1 == createPageCount)
  3554. {
  3555. if (minPackQty * createPageCount > thisCreateQty)
  3556. {
  3557. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3558. }
  3559. }
  3560. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3561. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3562. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3563. bool flag = true;
  3564. foreach (var item in ExtensionIDList)
  3565. {
  3566. if (item == Colspan + WorkPoint)
  3567. {
  3568. flag = false;
  3569. }
  3570. }
  3571. if (ExtensionID == null && flag == true)
  3572. {
  3573. str1 = Guid.NewGuid().ToString();
  3574. 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)
  3575. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3576. 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(),
  3577. MUSER, MUSERNAME, WorkPoints);
  3578. }
  3579. else if (ExtensionID != null)
  3580. {
  3581. str1 = ExtensionID.ToString();
  3582. }
  3583. ExtensionIDList.Add(Colspan + WorkPoint);
  3584. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3585. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3586. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3587. LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3588. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3589. //{
  3590. sql += string.Format(@"
  3591. insert into ICSInventoryLot
  3592. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3593. select
  3594. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3595. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3596. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3597. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3598. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3599. sql += "\r\n";
  3600. //装箱的功能
  3601. if (List_Pack.Count > 0)
  3602. {
  3603. PackModel mm = new PackModel();
  3604. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3605. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3606. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3607. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3608. }
  3609. //}
  3610. }
  3611. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3612. return count;
  3613. }
  3614. /// <summary>
  3615. /// 委外拒收生成条码
  3616. /// </summary>
  3617. /// <param name="POCode"></param>
  3618. /// <param name="PORow"></param>
  3619. /// <param name="keyValue"></param>
  3620. /// <returns></returns>
  3621. public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
  3622. {
  3623. var queryParam = keyValue.ToJObject();
  3624. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3625. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3626. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3627. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3628. decimal LOTQTY = minPackQty;
  3629. string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3630. string sql = string.Empty;
  3631. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3632. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3633. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3634. string sqls = string.Empty;
  3635. string Colspan = "";
  3636. string str1 = "";
  3637. List<string> ExtensionIDList = new List<string>();
  3638. #region 装箱的功能
  3639. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3640. string VenCode = queryParam["VenCode"].ToString();
  3641. int PackCount = 0;//每箱放的数量
  3642. int Pack_YuShu = 0;//需要平摊的数量
  3643. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3644. List<PackModel> List_Pack = new List<PackModel>();
  3645. int ZQty = 0;
  3646. if (createPackCount > 0)
  3647. {
  3648. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3649. if (Pack_YuShu == 0)
  3650. {
  3651. PackCount = (createPageCount / createPackCount);
  3652. }
  3653. else
  3654. {
  3655. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3656. }
  3657. for (int jj = 0; jj < createPackCount; jj++)
  3658. {
  3659. object CARID = Guid.NewGuid();
  3660. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  3661. sql += @" INSERT INTO dbo.ICSContainer
  3662. ( ID,ContainerCode ,
  3663. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  3664. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  3665. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  3666. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  3667. PackModel PP = new PackModel();
  3668. PP.ID = CARID.ToString();
  3669. PP.PackCode = Carton;
  3670. if (jj < Pack_YuShu)
  3671. {
  3672. PP.FristBarIndex = ZQty;
  3673. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  3674. }
  3675. else
  3676. {
  3677. PP.FristBarIndex = ZQty;
  3678. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  3679. }
  3680. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  3681. List_Pack.Add(PP);
  3682. }
  3683. }
  3684. #endregion
  3685. for (int i = 0; i < createPageCount; i++)
  3686. {
  3687. if (i + 1 == createPageCount)
  3688. {
  3689. if (minPackQty * createPageCount > thisCreateQty)
  3690. {
  3691. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  3692. }
  3693. }
  3694. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  3695. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  3696. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  3697. bool flag = true;
  3698. foreach (var item in ExtensionIDList)
  3699. {
  3700. if (item == Colspan + WorkPoint)
  3701. {
  3702. flag = false;
  3703. }
  3704. }
  3705. if (ExtensionID == null && flag == true)
  3706. {
  3707. str1 = Guid.NewGuid().ToString();
  3708. 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)
  3709. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  3710. 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(),
  3711. MUSER, MUSERNAME, WorkPoints);
  3712. }
  3713. else if (ExtensionID != null)
  3714. {
  3715. str1 = ExtensionID.ToString();
  3716. }
  3717. ExtensionIDList.Add(Colspan + WorkPoint);
  3718. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  3719. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  3720. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  3721. LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  3722. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  3723. //{
  3724. sql += string.Format(@"
  3725. insert into ICSInventoryLot
  3726. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  3727. select
  3728. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  3729. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  3730. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  3731. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  3732. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  3733. sql += "\r\n";
  3734. //装箱的功能
  3735. if (List_Pack.Count > 0)
  3736. {
  3737. PackModel mm = new PackModel();
  3738. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  3739. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  3740. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  3741. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  3742. }
  3743. //}
  3744. }
  3745. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  3746. return count;
  3747. }
  3748. /// <summary>
  3749. /// 点击审核到货单生成条码(审核到货单)
  3750. /// </summary>
  3751. public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3752. {
  3753. DataTable dt = new DataTable();
  3754. object Figure = GetDecimalDigits();
  3755. List<DbParameter> parameter = new List<DbParameter>();
  3756. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn003', " + Quantity + ",1,1,'')";
  3757. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3758. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3759. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3760. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3761. 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' 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
  3762. ,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,
  3763. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3764. from ICSDeliveryNotice a
  3765. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3766. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3767. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10'
  3768. where isnull(a.EATTRIBUTE1,'')=''
  3769. group by b.TransCode,b.TransSequence
  3770. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
  3771. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3772. WHERE a.DNType='3'
  3773. and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
  3774. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3775. sql = string.Format(sql, Figure);
  3776. return Repository().FindTableBySql(sql.ToString());
  3777. }
  3778. /// <summary>
  3779. /// 点击审核委外到货单生成条码(审核委外到货单)
  3780. /// </summary>
  3781. public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3782. {
  3783. DataTable dt = new DataTable();
  3784. object Figure = GetDecimalDigits();
  3785. List<DbParameter> parameter = new List<DbParameter>();
  3786. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn006', " + Quantity + ",1,1,'')";
  3787. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3788. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3789. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3790. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  3791. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3792. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3793. 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' 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
  3794. ,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,
  3795. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3796. from ICSODeliveryNotice a
  3797. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3798. left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3799. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11'
  3800. where isnull(a.EATTRIBUTE1,'')=''
  3801. group by b.TransCode,b.TransSequence
  3802. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
  3803. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  3804. WHERE a.ODNType='3'
  3805. and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
  3806. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3807. sql = string.Format(sql, Figure);
  3808. return Repository().FindTableBySql(sql.ToString());
  3809. }
  3810. //获取委外退料源头条码
  3811. public DataTable GetWeiWaiTLSrcLot(string OApplyNegCode, string Sequence, string WorkPoint)
  3812. {
  3813. DataTable dt = new DataTable();
  3814. List<DbParameter> parameter = new List<DbParameter>();
  3815. string sql = @"select C.LotNo from ICSOApplyNegDetail A
  3816. INNER JOIN ICSOIssue B ON B.PickID=A.SourceDetailID AND B.InvCode=A.InvCode
  3817. INNER JOIN ICSWareHouseLotInfoLog C
  3818. ON C.TransCode=B.SourceCode AND SUBSTRING(C.TransSequence,0,CharIndex('~',C.TransSequence))=B.SourceSequence
  3819. AND C.WorkPoint=B.WorkPoint
  3820. AND C.TransType=3 AND C.BusinessCode=5
  3821. where A.OApplyNegCode='" + OApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  3822. order by C.MTIME desc";
  3823. return Repository().FindTableBySql(sql.ToString());
  3824. }
  3825. //获取领料申请源头条码
  3826. public DataTable GetLLSQSrcLot(string ApplyNegCode, string Sequence, string WorkPoint)
  3827. {
  3828. DataTable dt = new DataTable();
  3829. List<DbParameter> parameter = new List<DbParameter>();
  3830. string sql = @"select C.LotNo from ICSMOApplyNegDetail A
  3831. INNER JOIN ICSMOApply B ON B.EATTRIBUTE30=A.SourceDetailID AND B.InvCode=A.InvCode
  3832. INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.ApplyCode AND C.TransSequence=B.Sequence
  3833. AND C.TransType=3 AND C.BusinessCode=14
  3834. where A.ApplyNegCode='" + ApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
  3835. order by C.MTIME desc";
  3836. return Repository().FindTableBySql(sql.ToString());
  3837. }
  3838. //获取条码备用字段568(派纳特殊需求---销售退货直接取单据备用字段信息)
  3839. public DataTable GetSSDDocEATTRIBUTEInfo(string SSDCode, string Sequence, string WorkPoint)
  3840. {
  3841. string sql = @"select A.CreateDateTime AS ProductDate,B.BatchCode AS BatchCode,A.EATTRIBUTE3,A.EATTRIBUTE5,A.EATTRIBUTE6,A.EATTRIBUTE8 from ICSSSD A
  3842. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  3843. where A.SSDCode='" + SSDCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + "'";
  3844. return Repository().FindTableBySql(sql.ToString());
  3845. }
  3846. //获取业务源头条码备用字段456(派纳特殊需求)
  3847. public DataTable GetSrcLotNoInfoPN(string LotNo, string WorkPoint)
  3848. {
  3849. try
  3850. {
  3851. string sql = "SELECT '' AS EATTRIBUTE3,'' AS EATTRIBUTE5,'' AS EATTRIBUTE6,'' AS EATTRIBUTE8 ";
  3852. DataTable dt = new DataTable();
  3853. List<DbParameter> parameter = new List<DbParameter>();
  3854. string lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  3855. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  3856. WHERE A.LotNo='" + LotNo + "' AND A.WorkPoint='" + WorkPoint + "'";
  3857. dt = SqlHelper.GetDataTableBySql(lotsql);
  3858. if (dt.Rows.Count > 0)
  3859. {
  3860. if (dt.Rows[0]["Type"].ToString() == "101" || dt.Rows[0]["Type"].ToString() == "102")//分批合批或形态转换后条码 需要找到最初的原条码确认单据后再取备用字段
  3861. {
  3862. string OriginalLot = LotNo.Split('-')[0];
  3863. lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
  3864. INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
  3865. WHERE A.LotNo='" + OriginalLot + "' AND A.WorkPoint='" + WorkPoint + "'";
  3866. dt = SqlHelper.GetDataTableBySql(lotsql);
  3867. if (dt.Rows.Count == 0)
  3868. {
  3869. return Repository().FindTableBySql(sql.ToString());
  3870. }
  3871. else
  3872. {
  3873. LotNo = OriginalLot;
  3874. }
  3875. }
  3876. if (dt.Rows[0]["Type"].ToString() == "0" || dt.Rows[0]["Type"].ToString() == "2"
  3877. || dt.Rows[0]["Type"].ToString() == "12" || dt.Rows[0]["Type"].ToString() == "24")//期初条码 成品条码 生产退料条码 销售退货条码 取条码备用字段
  3878. {
  3879. sql = @"SELECT B.BatchCode AS BatchCode,A.ProductDate AS ProductDate,A.EATTRIBUTE3 as EATTRIBUTE3,A.EATTRIBUTE5 AS EATTRIBUTE5
  3880. ,A.EATTRIBUTE6 AS EATTRIBUTE6,A.EATTRIBUTE8 AS EATTRIBUTE8
  3881. from ICSInventoryLot A
  3882. LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
  3883. where A.LotNo = '" + LotNo + "' and A.WorkPoint = '" + WorkPoint + "'";
  3884. }
  3885. else if (dt.Rows[0]["Type"].ToString() == "22")//采购入库(标准收货单)条码 取单据备用字段
  3886. {
  3887. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  3888. LEFT JOIN ICSPurchaseReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3889. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3890. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3891. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3892. }
  3893. else if (dt.Rows[0]["Type"].ToString() == "23")//委外入库(委外收货单)条码 取单据备用字段
  3894. {
  3895. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  3896. LEFT JOIN ICSOutsourcingReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3897. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3898. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3899. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3900. }
  3901. else if (dt.Rows[0]["Type"].ToString() == "3")//成品入库(完工申报单)条码 取单据备用字段
  3902. {
  3903. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  3904. LEFT JOIN ICSMO B ON B.MOCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3905. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3906. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3907. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3908. }
  3909. else if (dt.Rows[0]["Type"].ToString() == "5")//杂收条码 取单据备用字段
  3910. {
  3911. sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
  3912. LEFT JOIN ICSOtherIn B ON B.InCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
  3913. LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
  3914. LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
  3915. WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
  3916. }
  3917. }
  3918. return Repository().FindTableBySql(sql.ToString());
  3919. }
  3920. catch (Exception ex)
  3921. {
  3922. throw new Exception(ex.Message);
  3923. }
  3924. }
  3925. public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  3926. {
  3927. DataTable dt = new DataTable();
  3928. object Figure = GetDecimalDigits();
  3929. List<DbParameter> parameter = new List<DbParameter>();
  3930. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn018', " + Quantity + ",1,2,'')";
  3931. object Num = SqlHelper.ExecuteScalar(SeachNum);
  3932. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
  3933. CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  3934. CAST( a.Amount as DECIMAL(38,{0})) as Amount,
  3935. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  3936. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  3937. 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' 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
  3938. ,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,
  3939. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  3940. from ICSMOApplyNegDetail a
  3941. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  3942. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  3943. left join (
  3944. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  3945. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12'
  3946. where isnull(a.EATTRIBUTE1,'')=''
  3947. group by b.TransCode,b.TransSequence
  3948. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  3949. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  3950. WHERE d.Type='2' and d.Status='2'
  3951. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  3952. sql += " and a.WorkPoint='" + WorkPoint + "'";
  3953. sql = string.Format(sql, Figure);
  3954. return Repository().FindTableBySql(sql.ToString());
  3955. }
  3956. //领料申请退料生成条码
  3957. public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  3958. {
  3959. var queryParam = keyValue.ToJObject();
  3960. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  3961. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  3962. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  3963. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  3964. decimal LOTQTY = minPackQty;
  3965. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  3966. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  3967. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  3968. string sql = string.Empty;
  3969. //string VendorLot = queryParam["VendorLot"].ToString();
  3970. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  3971. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  3972. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  3973. string sqls = string.Empty;
  3974. string Colspan = "";
  3975. string str1 = "";
  3976. List<string> ExtensionIDList = new List<string>();
  3977. #region 装箱的功能
  3978. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  3979. string VenCode = queryParam["VenCode"].ToString();
  3980. int PackCount = 0;//每箱放的数量
  3981. int Pack_YuShu = 0;//需要平摊的数量
  3982. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  3983. List<PackModel> List_Pack = new List<PackModel>();
  3984. int ZQty = 0;
  3985. if (createPackCount > 0)
  3986. {
  3987. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  3988. if (Pack_YuShu == 0)
  3989. {
  3990. PackCount = (createPageCount / createPackCount);
  3991. }
  3992. else
  3993. {
  3994. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  3995. }
  3996. for (int jj = 0; jj < createPackCount; jj++)
  3997. {
  3998. object CARID = Guid.NewGuid();
  3999. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4000. sql += @" INSERT INTO dbo.ICSContainer
  4001. ( ID,ContainerCode ,
  4002. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4003. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4004. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4005. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4006. PackModel PP = new PackModel();
  4007. PP.ID = CARID.ToString();
  4008. PP.PackCode = Carton;
  4009. if (jj < Pack_YuShu)
  4010. {
  4011. PP.FristBarIndex = ZQty;
  4012. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4013. }
  4014. else
  4015. {
  4016. PP.FristBarIndex = ZQty;
  4017. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4018. }
  4019. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4020. List_Pack.Add(PP);
  4021. }
  4022. }
  4023. #endregion
  4024. for (int i = 0; i < createPageCount; i++)
  4025. {
  4026. if (i + 1 == createPageCount)
  4027. {
  4028. if (minPackQty * createPageCount > thisCreateQty)
  4029. {
  4030. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4031. }
  4032. }
  4033. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  4034. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4035. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4036. bool flag = true;
  4037. foreach (var item in ExtensionIDList)
  4038. {
  4039. if (item == Colspan + WorkPoint)
  4040. {
  4041. flag = false;
  4042. }
  4043. }
  4044. if (ExtensionID == null && flag == true)
  4045. {
  4046. str1 = Guid.NewGuid().ToString();
  4047. 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)
  4048. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4049. 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(),
  4050. MUSER, MUSERNAME, WorkPoints);
  4051. }
  4052. else if (ExtensionID != null)
  4053. {
  4054. str1 = ExtensionID.ToString();
  4055. }
  4056. ExtensionIDList.Add(Colspan + WorkPoint);
  4057. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4058. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4059. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4060. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4061. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4062. //{
  4063. sql += string.Format(@"insert into ICSInventoryLot
  4064. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4065. select
  4066. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4067. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4068. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4069. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4070. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4071. sql += "\r\n";
  4072. //装箱的功能
  4073. if (List_Pack.Count > 0)
  4074. {
  4075. PackModel mm = new PackModel();
  4076. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4077. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4078. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4079. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4080. }
  4081. //}
  4082. }
  4083. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4084. return count;
  4085. }
  4086. public int SubmitFormLLSQTLNew(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4087. {
  4088. var queryParam = keyValue.ToJObject();
  4089. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4090. decimal minPackQty = 1;
  4091. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4092. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  4093. List<decimal> lotQtys = new List<decimal>();
  4094. foreach (var jLotno in jLotnos)
  4095. {
  4096. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  4097. lotQtys.Add(qty);
  4098. }
  4099. int createPageCount = lotQtys.Count();
  4100. string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4101. string sql = string.Empty;
  4102. //string VendorLot = queryParam["VendorLot"].ToString();
  4103. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4104. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4105. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4106. string sqls = string.Empty;
  4107. string Colspan = "";
  4108. string str1 = "";
  4109. List<string> ExtensionIDList = new List<string>();
  4110. #region 装箱的功能
  4111. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4112. string VenCode = queryParam["VenCode"].ToString();
  4113. int PackCount = 0;//每箱放的数量
  4114. int Pack_YuShu = 0;//需要平摊的数量
  4115. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4116. List<PackModel> List_Pack = new List<PackModel>();
  4117. int ZQty = 0;
  4118. if (createPackCount > 0)
  4119. {
  4120. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4121. if (Pack_YuShu == 0)
  4122. {
  4123. PackCount = (createPageCount / createPackCount);
  4124. }
  4125. else
  4126. {
  4127. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4128. }
  4129. for (int jj = 0; jj < createPackCount; jj++)
  4130. {
  4131. object CARID = Guid.NewGuid();
  4132. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4133. sql += @" INSERT INTO dbo.ICSContainer
  4134. ( ID,ContainerCode ,
  4135. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4136. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4137. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4138. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4139. PackModel PP = new PackModel();
  4140. PP.ID = CARID.ToString();
  4141. PP.PackCode = Carton;
  4142. if (jj < Pack_YuShu)
  4143. {
  4144. PP.FristBarIndex = ZQty;
  4145. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4146. }
  4147. else
  4148. {
  4149. PP.FristBarIndex = ZQty;
  4150. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4151. }
  4152. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4153. List_Pack.Add(PP);
  4154. }
  4155. }
  4156. #endregion
  4157. for (int i = 0; i < lotQtys.Count(); i++)
  4158. {
  4159. decimal LOTQTY = lotQtys[i];
  4160. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  4161. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4162. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4163. bool flag = true;
  4164. foreach (var item in ExtensionIDList)
  4165. {
  4166. if (item == Colspan + WorkPoint)
  4167. {
  4168. flag = false;
  4169. }
  4170. }
  4171. if (ExtensionID == null && flag == true)
  4172. {
  4173. str1 = Guid.NewGuid().ToString();
  4174. 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)
  4175. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4176. 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(),
  4177. MUSER, MUSERNAME, WorkPoints);
  4178. }
  4179. else if (ExtensionID != null)
  4180. {
  4181. str1 = ExtensionID.ToString();
  4182. }
  4183. ExtensionIDList.Add(Colspan + WorkPoint);
  4184. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4185. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4186. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4187. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4188. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4189. //{
  4190. sql += string.Format(@"insert into ICSInventoryLot
  4191. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4192. select
  4193. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4194. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4195. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  4196. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4197. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4198. sql += "\r\n";
  4199. //装箱的功能
  4200. if (List_Pack.Count > 0)
  4201. {
  4202. PackModel mm = new PackModel();
  4203. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4204. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4205. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4206. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4207. }
  4208. //}
  4209. }
  4210. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4211. return count;
  4212. }
  4213. //材料出库退料
  4214. public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
  4215. {
  4216. DataTable dt = new DataTable();
  4217. var queryParam = queryJson.ToJObject();
  4218. List<DbParameter> parameter = new List<DbParameter>();
  4219. object Figure = GetDecimalDigits();
  4220. #region [SQL]
  4221. string sql = @"
  4222. select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4223. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  4224. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4225. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4226. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4227. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  4228. from ICSMOApplyNegDetail a
  4229. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4230. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4231. left join (
  4232. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4233. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  4234. where isnull(ee.EATTRIBUTE1,'')=''
  4235. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4236. )c
  4237. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4238. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4239. left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint
  4240. WHERE d.Type='3' and d.Status='2' ";
  4241. sql = string.Format(sql, Figure);
  4242. #endregion
  4243. if (!string.IsNullOrWhiteSpace(queryJson))
  4244. {
  4245. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4246. {
  4247. sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4248. }
  4249. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4250. {
  4251. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4252. }
  4253. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4254. {
  4255. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4256. }
  4257. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4258. {
  4259. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4260. }
  4261. if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
  4262. {
  4263. sql += " and g.IssueCode like '%" + queryParam["SCode"].ToString() + "%' ";
  4264. }
  4265. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4266. {
  4267. string POStatus = queryParam["POStatus"].ToString();
  4268. if (POStatus == "0")
  4269. {
  4270. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4271. }
  4272. else if (POStatus == "1")
  4273. {
  4274. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4275. }
  4276. else
  4277. {
  4278. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4279. }
  4280. }
  4281. }
  4282. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4283. {
  4284. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4285. }
  4286. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4287. {
  4288. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4289. }
  4290. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4291. }
  4292. //材料出库退料
  4293. public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4294. {
  4295. DataTable dt = new DataTable();
  4296. object Figure = GetDecimalDigits();
  4297. List<DbParameter> parameter = new List<DbParameter>();
  4298. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn019', " + Quantity + ",1,2,'')";
  4299. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4300. string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
  4301. CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4302. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4303. 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' 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
  4304. ,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,
  4305. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4306. from ICSMOApplyNegDetail a
  4307. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  4308. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4309. left join (
  4310. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4311. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13'
  4312. where isnull(a.EATTRIBUTE1,'')=''
  4313. group by b.TransCode,b.TransSequence
  4314. ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4315. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4316. WHERE d.Type='3' and d.Status='2'
  4317. and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4318. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4319. sql = string.Format(sql, Figure);
  4320. return Repository().FindTableBySql(sql.ToString());
  4321. }
  4322. //材料出库退料生成条码
  4323. public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4324. {
  4325. var queryParam = keyValue.ToJObject();
  4326. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4327. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4328. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4329. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4330. decimal LOTQTY = minPackQty;
  4331. string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4332. string sql = string.Empty;
  4333. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4334. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4335. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4336. string sqls = string.Empty;
  4337. string Colspan = "";
  4338. string str1 = "";
  4339. List<string> ExtensionIDList = new List<string>();
  4340. #region 装箱的功能
  4341. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4342. string VenCode = queryParam["VenCode"].ToString();
  4343. int PackCount = 0;//每箱放的数量
  4344. int Pack_YuShu = 0;//需要平摊的数量
  4345. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4346. List<PackModel> List_Pack = new List<PackModel>();
  4347. int ZQty = 0;
  4348. if (createPackCount > 0)
  4349. {
  4350. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4351. if (Pack_YuShu == 0)
  4352. {
  4353. PackCount = (createPageCount / createPackCount);
  4354. }
  4355. else
  4356. {
  4357. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4358. }
  4359. for (int jj = 0; jj < createPackCount; jj++)
  4360. {
  4361. object CARID = Guid.NewGuid();
  4362. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4363. sql += @" INSERT INTO dbo.ICSContainer
  4364. ( ID,ContainerCode ,
  4365. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4366. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4367. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4368. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4369. PackModel PP = new PackModel();
  4370. PP.ID = CARID.ToString();
  4371. PP.PackCode = Carton;
  4372. if (jj < Pack_YuShu)
  4373. {
  4374. PP.FristBarIndex = ZQty;
  4375. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4376. }
  4377. else
  4378. {
  4379. PP.FristBarIndex = ZQty;
  4380. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4381. }
  4382. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4383. List_Pack.Add(PP);
  4384. }
  4385. }
  4386. #endregion
  4387. for (int i = 0; i < createPageCount; i++)
  4388. {
  4389. if (i + 1 == createPageCount)
  4390. {
  4391. if (minPackQty * createPageCount > thisCreateQty)
  4392. {
  4393. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4394. }
  4395. }
  4396. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  4397. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4398. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4399. bool flag = true;
  4400. foreach (var item in ExtensionIDList)
  4401. {
  4402. if (item == Colspan + WorkPoint)
  4403. {
  4404. flag = false;
  4405. }
  4406. }
  4407. if (ExtensionID == null && flag == true)
  4408. {
  4409. str1 = Guid.NewGuid().ToString();
  4410. 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)
  4411. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4412. 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(),
  4413. MUSER, MUSERNAME, WorkPoints);
  4414. }
  4415. else if (ExtensionID != null)
  4416. {
  4417. str1 = ExtensionID.ToString();
  4418. }
  4419. ExtensionIDList.Add(Colspan + WorkPoint);
  4420. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4421. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4422. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4423. LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4424. sql += string.Format(@"insert into ICSInventoryLot
  4425. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4426. select
  4427. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4428. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4429. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4430. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4431. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4432. sql += "\r\n";
  4433. //装箱的功能
  4434. if (List_Pack.Count > 0)
  4435. {
  4436. PackModel mm = new PackModel();
  4437. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4438. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4439. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4440. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4441. }
  4442. }
  4443. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4444. return count;
  4445. }
  4446. public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
  4447. {
  4448. DataTable dt = new DataTable();
  4449. var queryParam = queryJson.ToJObject();
  4450. List<DbParameter> parameter = new List<DbParameter>();
  4451. object Figure = GetDecimalDigits();
  4452. #region [SQL]
  4453. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4454. 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 ,
  4455. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4456. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4457. ,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,
  4458. a.EATTRIBUTE9,a.EATTRIBUTE10
  4459. from ICSOApplyNegDetail a
  4460. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4461. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4462. left join (
  4463. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4464. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  4465. where isnull(ee.EATTRIBUTE1,'')=''
  4466. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4467. )c
  4468. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4469. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4470. WHERE d.Type='2'";
  4471. sql = string.Format(sql, Figure);
  4472. #endregion
  4473. if (!string.IsNullOrWhiteSpace(queryJson))
  4474. {
  4475. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4476. {
  4477. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4478. }
  4479. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4480. {
  4481. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4482. }
  4483. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4484. {
  4485. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4486. }
  4487. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4488. {
  4489. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4490. }
  4491. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4492. {
  4493. string POStatus = queryParam["POStatus"].ToString();
  4494. if (POStatus == "0")
  4495. {
  4496. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4497. }
  4498. else if (POStatus == "1")
  4499. {
  4500. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4501. }
  4502. else
  4503. {
  4504. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4505. }
  4506. }
  4507. }
  4508. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4509. {
  4510. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4511. }
  4512. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4513. {
  4514. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4515. }
  4516. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4517. }
  4518. /// <summary>
  4519. /// 点击委外领料退料生成条码
  4520. /// </summary>
  4521. public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4522. {
  4523. DataTable dt = new DataTable();
  4524. object Figure = GetDecimalDigits();
  4525. List<DbParameter> parameter = new List<DbParameter>();
  4526. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn009', " + Quantity + ",1,1,'')";
  4527. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4528. string sql = @"
  4529. 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,
  4530. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4531. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4532. 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' 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
  4533. ,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,
  4534. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4535. from ICSOApplyNegDetail a
  4536. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4537. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4538. left join (
  4539. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4540. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14'
  4541. where isnull(a.EATTRIBUTE1,'')=''
  4542. group by b.TransCode,b.TransSequence
  4543. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4544. left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  4545. WHERE d.Type='2'
  4546. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4547. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4548. sql = string.Format(sql, Figure);
  4549. return Repository().FindTableBySql(sql.ToString());
  4550. }
  4551. //委外领料申请退料
  4552. public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4553. {
  4554. var queryParam = keyValue.ToJObject();
  4555. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4556. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4557. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4558. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4559. decimal LOTQTY = minPackQty;
  4560. string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4561. string sql = string.Empty;
  4562. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4563. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4564. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4565. string sqls = string.Empty;
  4566. string Colspan = "";
  4567. string str1 = "";
  4568. List<string> ExtensionIDList = new List<string>();
  4569. #region 装箱的功能
  4570. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4571. string VenCode = queryParam["VenCode"].ToString();
  4572. int PackCount = 0;//每箱放的数量
  4573. int Pack_YuShu = 0;//需要平摊的数量
  4574. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4575. List<PackModel> List_Pack = new List<PackModel>();
  4576. int ZQty = 0;
  4577. if (createPackCount > 0)
  4578. {
  4579. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4580. if (Pack_YuShu == 0)
  4581. {
  4582. PackCount = (createPageCount / createPackCount);
  4583. }
  4584. else
  4585. {
  4586. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4587. }
  4588. for (int jj = 0; jj < createPackCount; jj++)
  4589. {
  4590. object CARID = Guid.NewGuid();
  4591. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4592. sql += @" INSERT INTO dbo.ICSContainer
  4593. ( ID,ContainerCode ,
  4594. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4595. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4596. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4597. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4598. PackModel PP = new PackModel();
  4599. PP.ID = CARID.ToString();
  4600. PP.PackCode = Carton;
  4601. if (jj < Pack_YuShu)
  4602. {
  4603. PP.FristBarIndex = ZQty;
  4604. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4605. }
  4606. else
  4607. {
  4608. PP.FristBarIndex = ZQty;
  4609. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4610. }
  4611. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4612. List_Pack.Add(PP);
  4613. }
  4614. }
  4615. #endregion
  4616. for (int i = 0; i < createPageCount; i++)
  4617. {
  4618. if (i + 1 == createPageCount)
  4619. {
  4620. if (minPackQty * createPageCount > thisCreateQty)
  4621. {
  4622. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4623. }
  4624. }
  4625. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  4626. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4627. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4628. bool flag = true;
  4629. foreach (var item in ExtensionIDList)
  4630. {
  4631. if (item == Colspan + WorkPoint)
  4632. {
  4633. flag = false;
  4634. }
  4635. }
  4636. if (ExtensionID == null && flag == true)
  4637. {
  4638. str1 = Guid.NewGuid().ToString();
  4639. 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)
  4640. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4641. 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(),
  4642. MUSER, MUSERNAME, WorkPoints);
  4643. }
  4644. else if (ExtensionID != null)
  4645. {
  4646. str1 = ExtensionID.ToString();
  4647. }
  4648. ExtensionIDList.Add(Colspan + WorkPoint);
  4649. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4650. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4651. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4652. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4653. sql += string.Format(@"insert into ICSInventoryLot
  4654. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4655. select
  4656. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4657. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4658. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4659. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4660. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4661. sql += "\r\n";
  4662. //装箱的功能
  4663. if (List_Pack.Count > 0)
  4664. {
  4665. PackModel mm = new PackModel();
  4666. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4667. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4668. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4669. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4670. }
  4671. }
  4672. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4673. return count;
  4674. }
  4675. //委外材料出库
  4676. public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
  4677. {
  4678. DataTable dt = new DataTable();
  4679. var queryParam = queryJson.ToJObject();
  4680. List<DbParameter> parameter = new List<DbParameter>();
  4681. object Figure = GetDecimalDigits();
  4682. #region [SQL]
  4683. string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  4684. 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 ,
  4685. a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4686. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4687. ,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,
  4688. a.EATTRIBUTE9,a.EATTRIBUTE10
  4689. from ICSOApplyNegDetail a
  4690. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4691. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4692. left join (
  4693. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4694. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  4695. where isnull(ee.EATTRIBUTE1,'')=''
  4696. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4697. )c
  4698. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4699. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4700. WHERE d.Type='3'";
  4701. sql = string.Format(sql, Figure);
  4702. #endregion
  4703. if (!string.IsNullOrWhiteSpace(queryJson))
  4704. {
  4705. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4706. {
  4707. sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4708. }
  4709. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4710. {
  4711. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4712. }
  4713. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4714. {
  4715. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4716. }
  4717. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4718. {
  4719. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4720. }
  4721. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4722. {
  4723. string POStatus = queryParam["POStatus"].ToString();
  4724. if (POStatus == "0")
  4725. {
  4726. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4727. }
  4728. else if (POStatus == "1")
  4729. {
  4730. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4731. }
  4732. else
  4733. {
  4734. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4735. }
  4736. }
  4737. }
  4738. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4739. {
  4740. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4741. }
  4742. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  4743. {
  4744. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  4745. }
  4746. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  4747. }
  4748. //委外材料出库
  4749. public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  4750. {
  4751. DataTable dt = new DataTable();
  4752. object Figure = GetDecimalDigits();
  4753. List<DbParameter> parameter = new List<DbParameter>();
  4754. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn010', " + Quantity + ",1,1,'')";
  4755. object Num = SqlHelper.ExecuteScalar(SeachNum);
  4756. string sql = @"
  4757. 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,
  4758. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  4759. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  4760. 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' 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
  4761. ,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,
  4762. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  4763. from ICSOApplyNegDetail a
  4764. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  4765. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4766. left join (
  4767. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  4768. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15'
  4769. where isnull(a.EATTRIBUTE1,'')=''
  4770. group by b.TransCode,b.TransSequence
  4771. ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
  4772. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4773. WHERE d.Type='3'
  4774. and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
  4775. sql += " and a.WorkPoint='" + WorkPoint + "'";
  4776. sql = string.Format(sql, Figure);
  4777. return Repository().FindTableBySql(sql.ToString());
  4778. }
  4779. //委外材料出库
  4780. public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
  4781. {
  4782. var queryParam = keyValue.ToJObject();
  4783. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4784. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  4785. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  4786. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  4787. decimal LOTQTY = minPackQty;
  4788. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  4789. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  4790. string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
  4791. string sql = string.Empty;
  4792. //string VendorLot = queryParam["VendorLot"].ToString();
  4793. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  4794. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  4795. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  4796. string sqls = string.Empty;
  4797. string Colspan = "";
  4798. string str1 = "";
  4799. List<string> ExtensionIDList = new List<string>();
  4800. #region 装箱的功能
  4801. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  4802. string VenCode = queryParam["VenCode"].ToString();
  4803. int PackCount = 0;//每箱放的数量
  4804. int Pack_YuShu = 0;//需要平摊的数量
  4805. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  4806. List<PackModel> List_Pack = new List<PackModel>();
  4807. int ZQty = 0;
  4808. if (createPackCount > 0)
  4809. {
  4810. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  4811. if (Pack_YuShu == 0)
  4812. {
  4813. PackCount = (createPageCount / createPackCount);
  4814. }
  4815. else
  4816. {
  4817. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  4818. }
  4819. for (int jj = 0; jj < createPackCount; jj++)
  4820. {
  4821. object CARID = Guid.NewGuid();
  4822. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  4823. sql += @" INSERT INTO dbo.ICSContainer
  4824. ( ID,ContainerCode ,
  4825. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  4826. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  4827. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  4828. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  4829. PackModel PP = new PackModel();
  4830. PP.ID = CARID.ToString();
  4831. PP.PackCode = Carton;
  4832. if (jj < Pack_YuShu)
  4833. {
  4834. PP.FristBarIndex = ZQty;
  4835. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  4836. }
  4837. else
  4838. {
  4839. PP.FristBarIndex = ZQty;
  4840. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  4841. }
  4842. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  4843. List_Pack.Add(PP);
  4844. }
  4845. }
  4846. #endregion
  4847. for (int i = 0; i < createPageCount; i++)
  4848. {
  4849. if (i + 1 == createPageCount)
  4850. {
  4851. if (minPackQty * createPageCount > thisCreateQty)
  4852. {
  4853. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  4854. }
  4855. }
  4856. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  4857. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  4858. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  4859. bool flag = true;
  4860. foreach (var item in ExtensionIDList)
  4861. {
  4862. if (item == Colspan + WorkPoint)
  4863. {
  4864. flag = false;
  4865. }
  4866. }
  4867. if (ExtensionID == null && flag == true)
  4868. {
  4869. str1 = Guid.NewGuid().ToString();
  4870. 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)
  4871. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  4872. 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(),
  4873. MUSER, MUSERNAME, WorkPoints);
  4874. }
  4875. else if (ExtensionID != null)
  4876. {
  4877. str1 = ExtensionID.ToString();
  4878. }
  4879. ExtensionIDList.Add(Colspan + WorkPoint);
  4880. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  4881. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  4882. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  4883. LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  4884. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  4885. //{
  4886. sql += string.Format(@"insert into ICSInventoryLot
  4887. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  4888. select
  4889. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}'
  4890. ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  4891. from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
  4892. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  4893. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  4894. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  4895. sql += "\r\n";
  4896. //装箱的功能
  4897. if (List_Pack.Count > 0)
  4898. {
  4899. PackModel mm = new PackModel();
  4900. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  4901. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  4902. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  4903. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  4904. }
  4905. //}
  4906. }
  4907. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  4908. return count;
  4909. }
  4910. public DataTable SelectICSExtensionEnable()
  4911. {
  4912. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4913. string sql = @"select ColCode from ICSExtensionEnable
  4914. where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
  4915. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4916. return dt;
  4917. }
  4918. public DataTable GetComplete()
  4919. {
  4920. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4921. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
  4922. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4923. return dt;
  4924. }
  4925. public DataTable GetWWComplete()
  4926. {
  4927. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  4928. string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004' and WorkPoint='" + WorkPoints + "'";
  4929. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  4930. return dt;
  4931. }
  4932. //返工工单
  4933. public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
  4934. {
  4935. DataTable dt = new DataTable();
  4936. var queryParam = queryJson.ToJObject();
  4937. List<DbParameter> parameter = new List<DbParameter>();
  4938. object Figure = GetDecimalDigits();
  4939. #region [SQL]
  4940. 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,
  4941. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  4942. CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
  4943. CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
  4944. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  4945. ,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,
  4946. a.EATTRIBUTE9,a.EATTRIBUTE10
  4947. from ICSMOPick a
  4948. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  4949. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  4950. left join (
  4951. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  4952. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  4953. where isnull(ee.EATTRIBUTE1,'')=''
  4954. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  4955. )c
  4956. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  4957. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  4958. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
  4959. sql = string.Format(sql, Figure);
  4960. #endregion
  4961. if (!string.IsNullOrWhiteSpace(queryJson))
  4962. {
  4963. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  4964. {
  4965. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  4966. }
  4967. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  4968. {
  4969. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  4970. }
  4971. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  4972. {
  4973. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  4974. }
  4975. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  4976. {
  4977. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  4978. }
  4979. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  4980. {
  4981. string POStatus = queryParam["POStatus"].ToString();
  4982. if (POStatus == "0")
  4983. {
  4984. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  4985. }
  4986. else if (POStatus == "1")
  4987. {
  4988. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  4989. }
  4990. else
  4991. {
  4992. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  4993. }
  4994. }
  4995. }
  4996. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  4997. {
  4998. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  4999. }
  5000. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  5001. {
  5002. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  5003. }
  5004. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5005. }
  5006. public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5007. {
  5008. DataTable dt = new DataTable();
  5009. object Figure = GetDecimalDigits();
  5010. List<DbParameter> parameter = new List<DbParameter>();
  5011. // string sql = @"
  5012. //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,
  5013. //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
  5014. //,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
  5015. // from ICSMOPick a
  5016. // left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5017. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5018. // left join (
  5019. // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5020. // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5021. //where isnull(a.EATTRIBUTE1,'')=''
  5022. // group by b.TransCode,b.TransSequence
  5023. // ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5024. // left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5025. // WHERE 1=1
  5026. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn015', " + Quantity + ",1,2,'')";
  5027. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5028. string sql = @"
  5029. 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,
  5030. CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
  5031. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
  5032. 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' 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
  5033. ,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,
  5034. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5035. from ICSMOPick a
  5036. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5037. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5038. left join (
  5039. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  5040. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16'
  5041. where isnull(a.EATTRIBUTE1,'')=''
  5042. group by b.TransCode,b.TransSequence
  5043. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  5044. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  5045. WHERE 1=1
  5046. and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  5047. sql += " and a.WorkPoint='" + WorkPoint + "'";
  5048. sql = string.Format(sql, Figure);
  5049. return Repository().FindTableBySql(sql.ToString());
  5050. }
  5051. //返工工单
  5052. public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
  5053. {
  5054. var queryParam = keyValue.ToJObject();
  5055. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5056. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5057. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5058. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5059. decimal LOTQTY = minPackQty;
  5060. Sequence = Sequence.Replace("~", "");
  5061. string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5062. string sql = string.Empty;
  5063. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5064. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5065. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5066. string sqls = string.Empty;
  5067. string Colspan = "";
  5068. string str1 = "";
  5069. List<string> ExtensionIDList = new List<string>();
  5070. #region 装箱的功能
  5071. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5072. string VenCode = queryParam["VenCode"].ToString();
  5073. int PackCount = 0;//每箱放的数量
  5074. int Pack_YuShu = 0;//需要平摊的数量
  5075. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5076. List<PackModel> List_Pack = new List<PackModel>();
  5077. int ZQty = 0;
  5078. if (createPackCount > 0)
  5079. {
  5080. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5081. if (Pack_YuShu == 0)
  5082. {
  5083. PackCount = (createPageCount / createPackCount);
  5084. }
  5085. else
  5086. {
  5087. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5088. }
  5089. for (int jj = 0; jj < createPackCount; jj++)
  5090. {
  5091. object CARID = Guid.NewGuid();
  5092. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5093. sql += @" INSERT INTO dbo.ICSContainer
  5094. ( ID,ContainerCode ,
  5095. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5096. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5097. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5098. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5099. PackModel PP = new PackModel();
  5100. PP.ID = CARID.ToString();
  5101. PP.PackCode = Carton;
  5102. if (jj < Pack_YuShu)
  5103. {
  5104. PP.FristBarIndex = ZQty;
  5105. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5106. }
  5107. else
  5108. {
  5109. PP.FristBarIndex = ZQty;
  5110. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5111. }
  5112. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5113. List_Pack.Add(PP);
  5114. }
  5115. }
  5116. #endregion
  5117. for (int i = 0; i < createPageCount; i++)
  5118. {
  5119. if (i + 1 == createPageCount)
  5120. {
  5121. if (minPackQty * createPageCount > thisCreateQty)
  5122. {
  5123. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5124. }
  5125. }
  5126. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  5127. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5128. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5129. bool flag = true;
  5130. foreach (var item in ExtensionIDList)
  5131. {
  5132. if (item == Colspan + WorkPoint)
  5133. {
  5134. flag = false;
  5135. }
  5136. }
  5137. if (ExtensionID == null && flag == true)
  5138. {
  5139. str1 = Guid.NewGuid().ToString();
  5140. 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)
  5141. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5142. 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(),
  5143. MUSER, MUSERNAME, WorkPoints);
  5144. }
  5145. else if (ExtensionID != null)
  5146. {
  5147. str1 = ExtensionID.ToString();
  5148. }
  5149. ExtensionIDList.Add(Colspan + WorkPoint);
  5150. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5151. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5152. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5153. LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5154. sql += string.Format(@"insert into ICSInventoryLot
  5155. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5156. select
  5157. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5158. 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}' ",
  5159. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5160. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5161. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5162. sql += "\r\n";
  5163. //装箱的功能
  5164. if (List_Pack.Count > 0)
  5165. {
  5166. PackModel mm = new PackModel();
  5167. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5168. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5169. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5170. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5171. }
  5172. }
  5173. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5174. return count;
  5175. }
  5176. /// <summary>
  5177. /// 锐腾获取单据信息
  5178. /// </summary>
  5179. /// <param name="FGGDMOCode"></param>
  5180. /// <param name="Sequence"></param>
  5181. /// <param name="WorkPoint"></param>
  5182. /// <returns></returns>
  5183. public DataTable GetSubGridJsonTransferByCreate(string TransferNO, string Sequence, string WorkPoint, string Quantity, string InvCode)
  5184. {
  5185. DataTable dt = new DataTable();
  5186. object Figure = GetDecimalDigits();
  5187. List<DbParameter> parameter = new List<DbParameter>();
  5188. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn025', " + Quantity + ",1,2,'')";
  5189. object Num = SqlHelper.ExecuteScalar(SeachNum);
  5190. string sql = $@"SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit, CAST ( " + Num + @" AS DECIMAL ( 38,6 )) AS Amount, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty, CAST ( ( " + Num + $@"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
  5191. case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,8)) >=(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,8)) end as MPQ
  5192. ,
  5193. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  5194. FROM
  5195. ICSTransfer a
  5196. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  5197. LEFT JOIN (
  5198. SELECT
  5199. b.TransCode,
  5200. b.TransSequence,
  5201. SUM ( isnull( Quantity, 0 ) ) LOTQTY
  5202. FROM
  5203. ICSInventoryLot a
  5204. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo
  5205. AND a.Type= '19'
  5206. WHERE
  5207. isnull( a.EATTRIBUTE1, '' ) = ''
  5208. GROUP BY
  5209. b.TransCode,
  5210. b.TransSequence
  5211. ) c ON a.TransferNO= c.TransCode
  5212. AND a.Sequence= c.TransSequence
  5213. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID
  5214. AND a.WorkPoint= e.WorkPoint
  5215. WHERE
  5216. 1 = 1
  5217. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  5218. and a.WorkPoint='{WorkPoint}'";
  5219. sql = string.Format(sql, Figure);
  5220. return Repository().FindTableBySql(sql.ToString());
  5221. }
  5222. /// <summary>
  5223. /// 锐腾两步调入单生成条码
  5224. /// </summary>
  5225. /// <param name="TransferNO"></param>
  5226. /// <param name="Sequence"></param>
  5227. /// <param name="keyValue"></param>
  5228. /// <param name="WorkPoint"></param>
  5229. /// <returns></returns>
  5230. public int SubmitFormTransfer(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  5231. {
  5232. var queryParam = keyValue.ToJObject();
  5233. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5234. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5235. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5236. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5237. decimal LOTQTY = minPackQty;
  5238. Sequence = Sequence.Replace("~", "");
  5239. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  5240. string sql = string.Empty;
  5241. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5242. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5243. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5244. string sqls = string.Empty;
  5245. string Colspan = "";
  5246. string str1 = "";
  5247. List<string> ExtensionIDList = new List<string>();
  5248. #region 装箱的功能
  5249. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  5250. string VenCode = queryParam["VenCode"].ToString();
  5251. int PackCount = 0;//每箱放的数量
  5252. int Pack_YuShu = 0;//需要平摊的数量
  5253. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  5254. List<PackModel> List_Pack = new List<PackModel>();
  5255. int ZQty = 0;
  5256. if (createPackCount > 0)
  5257. {
  5258. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  5259. if (Pack_YuShu == 0)
  5260. {
  5261. PackCount = (createPageCount / createPackCount);
  5262. }
  5263. else
  5264. {
  5265. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  5266. }
  5267. for (int jj = 0; jj < createPackCount; jj++)
  5268. {
  5269. object CARID = Guid.NewGuid();
  5270. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  5271. sql += @" INSERT INTO dbo.ICSContainer
  5272. ( ID,ContainerCode ,
  5273. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  5274. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  5275. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  5276. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  5277. PackModel PP = new PackModel();
  5278. PP.ID = CARID.ToString();
  5279. PP.PackCode = Carton;
  5280. if (jj < Pack_YuShu)
  5281. {
  5282. PP.FristBarIndex = ZQty;
  5283. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  5284. }
  5285. else
  5286. {
  5287. PP.FristBarIndex = ZQty;
  5288. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  5289. }
  5290. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  5291. List_Pack.Add(PP);
  5292. }
  5293. }
  5294. #endregion
  5295. for (int i = 0; i < createPageCount; i++)
  5296. {
  5297. if (i + 1 == createPageCount)
  5298. {
  5299. if (minPackQty * createPageCount > thisCreateQty)
  5300. {
  5301. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5302. }
  5303. }
  5304. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  5305. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  5306. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  5307. bool flag = true;
  5308. foreach (var item in ExtensionIDList)
  5309. {
  5310. if (item == Colspan + WorkPoint)
  5311. {
  5312. flag = false;
  5313. }
  5314. }
  5315. if (ExtensionID == null && flag == true)
  5316. {
  5317. str1 = Guid.NewGuid().ToString();
  5318. 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)
  5319. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  5320. 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(),
  5321. MUSER, MUSERNAME, WorkPoints);
  5322. }
  5323. else if (ExtensionID != null)
  5324. {
  5325. str1 = ExtensionID.ToString();
  5326. }
  5327. ExtensionIDList.Add(Colspan + WorkPoint);
  5328. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  5329. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5330. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  5331. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  5332. sql += string.Format(@"insert into ICSInventoryLot
  5333. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  5334. select
  5335. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','20','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  5336. from ICSTransfer a where a.TransferNO='{6}' and a.Sequence='{7}' and a.WorkPoint='{5}' ",
  5337. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  5338. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  5339. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  5340. sql += "\r\n";
  5341. //装箱的功能
  5342. if (List_Pack.Count > 0)
  5343. {
  5344. PackModel mm = new PackModel();
  5345. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  5346. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  5347. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  5348. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  5349. }
  5350. }
  5351. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5352. return count;
  5353. }
  5354. public object GetDecimalDigits()
  5355. {
  5356. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5357. try
  5358. {
  5359. string sql = string.Empty;
  5360. sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
  5361. object Figure = SqlHelper.ExecuteScalar(sql);
  5362. return Figure;
  5363. }
  5364. catch (Exception ex)
  5365. {
  5366. throw new Exception(ex.Message.ToString());
  5367. }
  5368. }
  5369. /// <summary>
  5370. /// 生成条码导出
  5371. /// </summary>
  5372. /// <param name="ProductBrand"></param>
  5373. /// <param name="cCusName"></param>
  5374. /// <param name="DesignAddRate"></param>
  5375. /// <returns></returns>
  5376. public DataTable StatementExportAll(string Type, string ID)
  5377. {
  5378. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5379. string sql = string.Empty;
  5380. object Figure = GetDecimalDigits();
  5381. string TableCode = string.Empty;
  5382. #region sql语句
  5383. if (Type == "1") //生产退料
  5384. {
  5385. 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 数量
  5386. ,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
  5387. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5388. ,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,
  5389. a.EATTRIBUTE9,a.EATTRIBUTE10
  5390. from ICSMOApplyNegDetail a
  5391. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5392. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5393. left join (
  5394. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5395. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  5396. where isnull(ee.EATTRIBUTE1,'')=''
  5397. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5398. )c
  5399. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5400. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5401. where d.Type='1' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5402. TableCode = "ICSMOApplyNegDetail";
  5403. }
  5404. if (Type == "2") //委外退料
  5405. {
  5406. 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 数量
  5407. ,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
  5408. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5409. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5410. a.EATTRIBUTE9,a.EATTRIBUTE10
  5411. from ICSOApplyNegDetail a
  5412. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5413. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5414. left join (
  5415. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5416. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  5417. where isnull(ee.EATTRIBUTE1,'')=''
  5418. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5419. )c
  5420. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5421. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5422. WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5423. TableCode = "ICSOApplyNegDetail";
  5424. }
  5425. if (Type == "3")//工单成品生成条码
  5426. {
  5427. sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
  5428. ,CAST( a.Quantity AS DECIMAL(38,{0})) as ,CAST( a.Amount as DECIMAL(38,{0})) as
  5429. ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5430. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5431. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5432. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5433. a.EATTRIBUTE9,a.EATTRIBUTE10
  5434. from ICSMO a
  5435. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5436. left join (
  5437. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5438. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  5439. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5440. )c
  5441. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5442. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5443. WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
  5444. TableCode = "ICSMO";
  5445. }
  5446. if (Type == "4")//销售退货
  5447. {
  5448. 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 数量
  5449. ,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
  5450. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5451. ,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,
  5452. a.EATTRIBUTE9,a.EATTRIBUTE10
  5453. from ICSSDN a
  5454. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5455. left join (
  5456. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5457. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  5458. where isnull(ee.EATTRIBUTE1,'')=''
  5459. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5460. )c
  5461. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5462. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5463. where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
  5464. TableCode = "ICSSDN";
  5465. }
  5466. if (Type == "5")//其它入库生成条码
  5467. {
  5468. 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 料品单位,
  5469. 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
  5470. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5471. ,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,
  5472. a.EATTRIBUTE9,a.EATTRIBUTE10
  5473. from ICSOtherIn a
  5474. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5475. left join (
  5476. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5477. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  5478. where isnull(ee.EATTRIBUTE1,'')=''
  5479. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5480. )c
  5481. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5482. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5483. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5484. TableCode = "ICSOtherIn";
  5485. }
  5486. if (Type == "6")//归还单生成条码
  5487. {
  5488. 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 料品单位
  5489. ,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
  5490. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5491. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5492. a.EATTRIBUTE9,a.EATTRIBUTE10
  5493. from ICSReturn a
  5494. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5495. left join (
  5496. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5497. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  5498. where isnull(ee.EATTRIBUTE1,'')=''
  5499. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5500. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5501. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5502. where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5503. TableCode = "ICSReturn";
  5504. }
  5505. if (Type == "7")//*审核到货单生成条码
  5506. {
  5507. 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 料品单位,
  5508. 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
  5509. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5510. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5511. a.EATTRIBUTE9,a.EATTRIBUTE10
  5512. from ICSDeliveryNotice a
  5513. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5514. left join (
  5515. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5516. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  5517. where isnull(ee.EATTRIBUTE1,'')=''
  5518. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5519. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5520. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5521. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5522. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5523. where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5524. TableCode = "ICSDeliveryNotice";
  5525. }
  5526. if (Type == "8")//审核委外到货单生成条码
  5527. {
  5528. 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 创建时间,
  5529. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5530. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5531. ,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,
  5532. a.EATTRIBUTE9,a.EATTRIBUTE10
  5533. from ICSODeliveryNotice a
  5534. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5535. left join (
  5536. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5537. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  5538. where isnull(ee.EATTRIBUTE1,'')=''
  5539. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5540. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5541. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5542. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5543. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5544. where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
  5545. TableCode = "ICSODeliveryNotice";
  5546. }
  5547. if (Type == "9")//开立得成品入库单 生成条码
  5548. {
  5549. 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 数量 ,
  5550. 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
  5551. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5552. ,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,
  5553. a.EATTRIBUTE9,a.EATTRIBUTE10
  5554. from ICSManufactureReceive a
  5555. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5556. left join (
  5557. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5558. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  5559. where isnull(ee.EATTRIBUTE1,'')=''
  5560. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5561. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5562. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5563. where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5564. TableCode = "ICSManufactureReceive";
  5565. }
  5566. if (Type == "10")//采购拒收单
  5567. {
  5568. 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 料品单位,
  5569. 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 ,
  5570. CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5571. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5572. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5573. a.EATTRIBUTE9,a.EATTRIBUTE10
  5574. from ICSDeliveryNotice a
  5575. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5576. left join (
  5577. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5578. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  5579. where isnull(ee.EATTRIBUTE1,'')=''
  5580. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5581. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5582. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  5583. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5584. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5585. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5586. TableCode = "ICSDeliveryNotice";
  5587. }
  5588. if (Type == "11") //委外拒收单生成条码
  5589. {
  5590. 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 料品单位,
  5591. 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
  5592. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5593. ,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,
  5594. a.EATTRIBUTE9,a.EATTRIBUTE10
  5595. from ICSODeliveryNotice a
  5596. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5597. left join (
  5598. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5599. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  5600. where isnull(ee.EATTRIBUTE1,'')=''
  5601. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5602. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5603. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  5604. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  5605. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5606. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
  5607. TableCode = "ICSODeliveryNotice";
  5608. }
  5609. if (Type == "12")//领料申请退料生成条码
  5610. {
  5611. sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5612. CAST(a.Quantity AS DECIMAL(38,{0})) as ,CAST(a.Amount AS DECIMAL(38,{0})) as ,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 退 ,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5613. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5614. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5615. a.EATTRIBUTE9,a.EATTRIBUTE10
  5616. from ICSMOApplyNegDetail a
  5617. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5618. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5619. left join (
  5620. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5621. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  5622. where isnull(ee.EATTRIBUTE1,'')=''
  5623. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5624. )c
  5625. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5626. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5627. WHERE d.Type='2' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5628. TableCode = "ICSMOApplyNegDetail";
  5629. }
  5630. if (Type == "13")//材料出库退料
  5631. {
  5632. sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5633. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5634. 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
  5635. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5636. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
  5637. from ICSMOApplyNegDetail a
  5638. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  5639. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5640. left join (
  5641. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5642. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  5643. where isnull(ee.EATTRIBUTE1,'')=''
  5644. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5645. )c
  5646. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5647. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5648. WHERE d.Type='3' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5649. TableCode = "ICSMOApplyNegDetail";
  5650. }
  5651. if (Type == "14")//委外领料申请退料
  5652. {
  5653. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5654. CAST(a.Quantity AS DECIMAL(38,{0})) as ,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
  5655. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5656. ,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,
  5657. a.EATTRIBUTE9,a.EATTRIBUTE10
  5658. from ICSOApplyNegDetail a
  5659. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5660. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5661. left join (
  5662. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5663. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  5664. where isnull(ee.EATTRIBUTE1,'')=''
  5665. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5666. )c
  5667. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5668. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5669. WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
  5670. TableCode = "ICSOApplyNegDetail";
  5671. }
  5672. if (Type == "15")//委外材料出库退料
  5673. {
  5674. sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5675. 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
  5676. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5677. ,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,
  5678. a.EATTRIBUTE9,a.EATTRIBUTE10
  5679. from ICSOApplyNegDetail a
  5680. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  5681. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5682. left join (
  5683. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5684. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  5685. where isnull(ee.EATTRIBUTE1,'')=''
  5686. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5687. )c
  5688. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5689. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5690. WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
  5691. TableCode = "ICSOApplyNegDetail";
  5692. }
  5693. if (Type == "16") //返工工单
  5694. {
  5695. 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 单位,
  5696. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5697. 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
  5698. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5699. ,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,
  5700. a.EATTRIBUTE9,a.EATTRIBUTE10
  5701. from ICSMOPick a
  5702. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  5703. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5704. left join (
  5705. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5706. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  5707. where isnull(ee.EATTRIBUTE1,'')=''
  5708. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  5709. )c
  5710. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  5711. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5712. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5713. TableCode = "ICSMOPick";
  5714. }
  5715. if (Type == "17")//检验不合格条码重新生成
  5716. {
  5717. sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
  5718. CAST(a.Quantity AS DECIMAL(38,{0})) as ,
  5719. CAST(c.Amount AS DECIMAL(38,{0})) as ,a.MUSERName,a.MUSERName as ,a.MTIME as ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as
  5720. ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5721. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5722. a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
  5723. a.EATTRIBUTE9,a.EATTRIBUTE10
  5724. from ICSInspection a
  5725. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5726. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5727. left join (
  5728. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5729. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  5730. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  5731. )c
  5732. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  5733. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5734. where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
  5735. TableCode = "ICSInspection";
  5736. }
  5737. #endregion
  5738. sql = sql + " and a.WorkPoint='{1}'";
  5739. sql = string.Format(sql, Figure, WorkPoint);
  5740. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5741. string sqls = @"SELECT ColCode,ColName,Enable
  5742. from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
  5743. DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
  5744. foreach (DataRow drE in dtExtension.Rows)
  5745. {
  5746. if (dt.Columns.Contains(drE["ColCode"].ToString()))
  5747. {
  5748. if (!Convert.ToBoolean(drE["Enable"]))
  5749. {
  5750. dt.Columns.Remove(drE["ColCode"].ToString());
  5751. }
  5752. else if (Convert.ToBoolean(drE["Enable"]))
  5753. {
  5754. dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
  5755. }
  5756. }
  5757. }
  5758. DataTable dtColumn = ColumnEnable(TableCode);
  5759. foreach (DataRow drC in dtColumn.Rows)
  5760. {
  5761. if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
  5762. {
  5763. if (!Convert.ToBoolean(drC["Enable"]))
  5764. {
  5765. dt.Columns.Remove(drC["ColumnCode"].ToString());
  5766. }
  5767. else if (Convert.ToBoolean(drC["Enable"]))
  5768. {
  5769. dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
  5770. }
  5771. }
  5772. }
  5773. return dt;
  5774. }
  5775. public DataTable ColumnEnable(string TableCode)
  5776. {
  5777. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5778. string sql = string.Empty;
  5779. sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
  5780. sql = string.Format(sql, TableCode, WorkPoint);
  5781. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  5782. return dt;
  5783. }
  5784. public object GetQiSetNum(string keyValue)
  5785. {
  5786. decimal Num = 0;
  5787. string msg = "";
  5788. string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
  5789. string result = HttpPost(APIURL, keyValue);
  5790. JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
  5791. string MessAge = Obj["Message"].ToString();
  5792. string Success = Obj["Success"].ToString();
  5793. if (Success.ToUpper() == "FALSE")
  5794. {
  5795. msg = MessAge;
  5796. }
  5797. else
  5798. {
  5799. if (MessAge == "U9")
  5800. {
  5801. decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
  5802. int date = Convert.ToInt32(Date);
  5803. Num = date;
  5804. }
  5805. else
  5806. {
  5807. if (msg == "")
  5808. {
  5809. JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
  5810. foreach (var item in res)
  5811. {
  5812. JObject jo = (JObject)item;
  5813. //var aa= jo["min_lotqty"].ToString();
  5814. Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
  5815. }
  5816. }
  5817. }
  5818. }
  5819. var Header = new
  5820. {
  5821. msg = msg,
  5822. Num = Num,
  5823. };
  5824. return Header;
  5825. }
  5826. //接口api解析
  5827. public static string HttpPost(string url, string body)
  5828. {
  5829. try
  5830. {
  5831. Encoding encoding = Encoding.UTF8;
  5832. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  5833. request.Method = "POST";
  5834. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  5835. request.ContentType = "application/json; charset=utf-8";
  5836. byte[] buffer = encoding.GetBytes(body);
  5837. request.ContentLength = buffer.Length;
  5838. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  5839. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  5840. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  5841. {
  5842. return reader.ReadToEnd();
  5843. }
  5844. }
  5845. catch (WebException ex)
  5846. {
  5847. throw new Exception(ex.Message);
  5848. }
  5849. }
  5850. public DataTable GetLoadShow()
  5851. {
  5852. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5853. string sql = @"
  5854. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  5855. return Repository().FindTableBySql(sql.ToString());
  5856. }
  5857. //不合格条码重新生成入库
  5858. public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
  5859. {
  5860. DataTable dt = new DataTable();
  5861. var queryParam = queryJson.ToJObject();
  5862. List<DbParameter> parameter = new List<DbParameter>();
  5863. object Figure = GetDecimalDigits();
  5864. #region [SQL]
  5865. string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
  5866. CAST(a.UnqualifiedQuantity AS DECIMAL(38,{0})) as Quantity ,
  5867. CAST(c.Amount AS DECIMAL(38,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY,d.ExtensionID
  5868. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5869. ,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,
  5870. a.EATTRIBUTE9,a.EATTRIBUTE10
  5871. from ICSInspection a
  5872. left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5873. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  5874. left join (
  5875. select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  5876. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
  5877. group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
  5878. )c
  5879. on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
  5880. left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5881. where a.UnqualifiedQuantity>0 and a.Enable='1'";
  5882. sql = string.Format(sql, Figure);
  5883. #endregion
  5884. if (!string.IsNullOrWhiteSpace(queryJson))
  5885. {
  5886. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  5887. {
  5888. sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
  5889. }
  5890. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  5891. {
  5892. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  5893. }
  5894. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  5895. {
  5896. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  5897. }
  5898. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  5899. {
  5900. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  5901. }
  5902. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  5903. {
  5904. string POStatus = queryParam["POStatus"].ToString();
  5905. if (POStatus == "0")
  5906. {
  5907. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  5908. }
  5909. else if (POStatus == "1")
  5910. {
  5911. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
  5912. }
  5913. else
  5914. {
  5915. sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
  5916. }
  5917. }
  5918. }
  5919. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  5920. {
  5921. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  5922. }
  5923. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5924. }
  5925. public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
  5926. {
  5927. DataTable dt = new DataTable();
  5928. object Figure = GetDecimalDigits();
  5929. List<DbParameter> parameter = new List<DbParameter>();
  5930. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5931. string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
  5932. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  5933. ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
  5934. case when isnull(d.ID,'')='' then '' else '' end as isStorage,
  5935. case when isnull(e.ID,'')='' then '' else '' end as isInspection,
  5936. case when g.InvIQC='1' then '是' else '否' end as isExemption
  5937. from ICSInventoryLot a
  5938. left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
  5939. group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
  5940. left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
  5941. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  5942. left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
  5943. left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
  5944. left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
  5945. WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
  5946. sql = string.Format(sql, Figure);
  5947. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  5948. }
  5949. public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
  5950. {
  5951. var queryParam = keyValue.ToJObject();
  5952. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  5953. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  5954. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  5955. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  5956. decimal LOTQTY = minPackQty;
  5957. // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
  5958. string sql = string.Empty;
  5959. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  5960. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  5961. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  5962. string sqls = string.Empty;
  5963. string Colspan = "";
  5964. string str1 = "";
  5965. List<string> ExtensionIDList = new List<string>();
  5966. for (int i = 0; i < createPageCount; i++)
  5967. {
  5968. if (i + 1 == createPageCount)
  5969. {
  5970. if (minPackQty * createPageCount > thisCreateQty)
  5971. {
  5972. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  5973. }
  5974. }
  5975. string LotNo = GetNewLotNo(OldLotNo);
  5976. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  5977. select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}',TransID from ICSInventoryLotDetail where LotNo='{4}'",
  5978. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  5979. sql += string.Format(@"
  5980. insert into ICSInventoryLot
  5981. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
  5982. select
  5983. newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
  5984. from ICSInventoryLot a
  5985. inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
  5986. where a.LotNo='{4}' and a.WorkPoint='{3}'",
  5987. LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
  5988. sql += "\r\n";
  5989. }
  5990. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  5991. return count;
  5992. }
  5993. public string GetNewLotNo(string LotNO)
  5994. {
  5995. DataTable dt = new DataTable();
  5996. List<DbParameter> parameter = new List<DbParameter>();
  5997. //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
  5998. string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
  5999. ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
  6000. sql = string.Format(sql, LotNO);
  6001. dt = Repository().FindTableBySql(sql.ToString());
  6002. if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
  6003. {
  6004. return LotNO + "-1";
  6005. }
  6006. else
  6007. {
  6008. string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
  6009. int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
  6010. return LotNO + "-" + COUNT.ToString();
  6011. }
  6012. }
  6013. public DataTable SelGDLX()
  6014. {
  6015. string sql = string.Empty;
  6016. DataTable dt = null;
  6017. sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
  6018. dt = SqlHelper.GetDataTableBySql(sql);
  6019. return dt;
  6020. }
  6021. public DataTable GetFreeEnble()
  6022. {
  6023. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6024. string sql = @"
  6025. select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
  6026. return Repository().FindTableBySql(sql.ToString());
  6027. }
  6028. public DataTable GetInvBatchEnable(string InvCode)
  6029. {
  6030. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6031. string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'";
  6032. sql = string.Format(sql, InvCode, WorkPoints);
  6033. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  6034. return dt;
  6035. }
  6036. //副产品
  6037. public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
  6038. {
  6039. DataTable dt = new DataTable();
  6040. var queryParam = queryJson.ToJObject();
  6041. List<DbParameter> parameter = new List<DbParameter>();
  6042. object Figure = GetDecimalDigits();
  6043. #region [SQL]
  6044. 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,
  6045. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
  6046. 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
  6047. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6048. ,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,
  6049. a.EATTRIBUTE9,a.EATTRIBUTE10
  6050. from ICSMOPick a
  6051. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  6052. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6053. left join (
  6054. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6055. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  6056. where isnull(ee.EATTRIBUTE1,'')=''
  6057. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6058. )c
  6059. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6060. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6061. where a.EATTRIBUTE1='1' ";
  6062. sql = string.Format(sql, Figure);
  6063. #endregion
  6064. if (!string.IsNullOrWhiteSpace(queryJson))
  6065. {
  6066. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6067. {
  6068. sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6069. }
  6070. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6071. {
  6072. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6073. }
  6074. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6075. {
  6076. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6077. }
  6078. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6079. {
  6080. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6081. }
  6082. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6083. {
  6084. string POStatus = queryParam["POStatus"].ToString();
  6085. if (POStatus == "0")
  6086. {
  6087. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6088. }
  6089. else if (POStatus == "1")
  6090. {
  6091. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6092. }
  6093. else
  6094. {
  6095. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6096. }
  6097. }
  6098. }
  6099. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6100. {
  6101. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6102. }
  6103. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6104. {
  6105. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6106. }
  6107. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6108. }
  6109. /// <summary>
  6110. /// 锐腾调入单生成条码
  6111. /// </summary>
  6112. /// <param name="queryJson"></param>
  6113. /// <param name="jqgridparam"></param>
  6114. /// <returns></returns>
  6115. public DataTable GetGridJsonTransfer(string queryJson, ref Pagination jqgridparam)
  6116. {
  6117. DataTable dt = new DataTable();
  6118. var queryParam = queryJson.ToJObject();
  6119. List<DbParameter> parameter = new List<DbParameter>();
  6120. object Figure = GetDecimalDigits();
  6121. #region [SQL]
  6122. 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
  6123. FROM ICSTransfer a
  6124. LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
  6125. LEFT JOIN (SELECT c.TransCode,c.WorkPoint,c.TransSequence,sum(d.Quantity) Quantity FROM ICSInventoryLotDetail c
  6126. LEFT JOIN ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint
  6127. WHERE ISNULL(d.EATTRIBUTE1, '')=''
  6128. GROUP BY c.TransCode,c.WorkPoint,c.TransSequence ) c ON a.TransferNO=c.TransCode AND c.WorkPoint=a.WorkPoint AND a.Sequence=c.TransSequence
  6129. left JOIN ICSExtension f ON f.Id=a.ExtensionID AND f.WorkPoint=a.WorkPoint
  6130. WHERE a.Type='2'
  6131. AND Isnull(a.Status,'')<>3
  6132. ";
  6133. sql = string.Format(sql, Figure);
  6134. #endregion
  6135. if (!string.IsNullOrWhiteSpace(queryJson))
  6136. {
  6137. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6138. {
  6139. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  6140. }
  6141. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6142. {
  6143. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6144. }
  6145. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6146. {
  6147. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6148. }
  6149. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6150. {
  6151. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6152. }
  6153. }
  6154. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6155. {
  6156. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6157. }
  6158. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6159. {
  6160. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6161. }
  6162. 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
  6163. where 1=1 ";
  6164. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6165. {
  6166. string POStatus = queryParam["POStatus"].ToString();
  6167. if (POStatus == "0")
  6168. {
  6169. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6170. }
  6171. else if (POStatus == "1")
  6172. {
  6173. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6174. }
  6175. else
  6176. {
  6177. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6178. }
  6179. }
  6180. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6181. }
  6182. /// <summary>
  6183. /// 采购入库生成条码
  6184. /// </summary>
  6185. /// <param name="queryJson"></param>
  6186. /// <param name="jqgridparam"></param>
  6187. /// <returns></returns>
  6188. ///
  6189. public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6190. {
  6191. DataTable dt = new DataTable();
  6192. var queryParam = queryJson.ToJObject();
  6193. List<DbParameter> parameter = new List<DbParameter>();
  6194. object Figure = GetDecimalDigits();
  6195. #region [SQL]
  6196. 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,
  6197. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6198. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6199. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6200. ,c.LOTQTY
  6201. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6202. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6203. ,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,
  6204. a.EATTRIBUTE9,a.EATTRIBUTE10,
  6205. isnull(b.EATTRIBUTE2,'') as MPQ
  6206. from ICSPurchaseReceive a
  6207. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6208. left join (
  6209. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6210. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6211. where isnull(ee.EATTRIBUTE1,'')=''
  6212. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6213. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6214. left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6215. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6216. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6217. where a.Type='1' ";
  6218. sql = string.Format(sql, Figure);
  6219. #endregion
  6220. if (!string.IsNullOrWhiteSpace(queryJson))
  6221. {
  6222. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6223. {
  6224. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6225. }
  6226. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6227. {
  6228. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6229. }
  6230. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6231. {
  6232. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6233. }
  6234. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6235. {
  6236. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6237. }
  6238. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6239. {
  6240. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6241. }
  6242. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6243. {
  6244. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6245. }
  6246. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6247. {
  6248. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6249. }
  6250. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6251. {
  6252. string POStatus = queryParam["POStatus"].ToString();
  6253. if (POStatus == "0")
  6254. {
  6255. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6256. }
  6257. else if (POStatus == "1")
  6258. {
  6259. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  6260. }
  6261. else
  6262. {
  6263. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  6264. }
  6265. }
  6266. }
  6267. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6268. {
  6269. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6270. }
  6271. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6272. {
  6273. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6274. }
  6275. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6276. }
  6277. // public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6278. // {
  6279. // DataTable dt = new DataTable();
  6280. // var queryParam = queryJson.ToJObject();
  6281. // List<DbParameter> parameter = new List<DbParameter>();
  6282. // object Figure = GetDecimalDigits();
  6283. // #region [SQL]
  6284. // 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,
  6285. // CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6286. // ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6287. // ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6288. // ,c.LOTQTY
  6289. // ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6290. // ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6291. // ,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,
  6292. // a.EATTRIBUTE9,a.EATTRIBUTE10,
  6293. // isnull(b.EATTRIBUTE2,'') as MPQ
  6294. // from ICSPurchaseReceive a
  6295. // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6296. // left join (
  6297. // select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6298. // left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  6299. // where isnull(ee.EATTRIBUTE1,'')=''
  6300. // group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6301. // ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6302. // left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6303. // left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6304. // left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6305. // where a.Type='1' ";
  6306. // sql = string.Format(sql, Figure);
  6307. // #endregion
  6308. // if (!string.IsNullOrWhiteSpace(queryJson))
  6309. // {
  6310. // if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6311. // {
  6312. // sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6313. // }
  6314. // if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6315. // {
  6316. // sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6317. // }
  6318. // if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6319. // {
  6320. // sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6321. // }
  6322. // if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6323. // {
  6324. // sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6325. // }
  6326. // }
  6327. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6328. // {
  6329. // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6330. // }
  6331. // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6332. // {
  6333. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6334. // }
  6335. // 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,
  6336. //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
  6337. // where 1=1 ";
  6338. // if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6339. // {
  6340. // string POStatus = queryParam["POStatus"].ToString();
  6341. // if (POStatus == "0")
  6342. // {
  6343. // //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6344. // }
  6345. // else if (POStatus == "1")
  6346. // {
  6347. // sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6348. // }
  6349. // else
  6350. // {
  6351. // sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6352. // }
  6353. // }
  6354. // return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6355. // }
  6356. /// <summary>
  6357. /// 采购入库获取单据信息
  6358. /// </summary>
  6359. /// <param name="FGGDMOCode"></param>
  6360. /// <param name="Sequence"></param>
  6361. /// <param name="WorkPoint"></param>
  6362. /// <returns></returns>
  6363. public DataTable GetSubGridJsonPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6364. {
  6365. DataTable dt = new DataTable();
  6366. object Figure = GetDecimalDigits();
  6367. List<DbParameter> parameter = new List<DbParameter>();
  6368. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6369. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6370. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6371. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6372. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6373. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6374. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6375. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays
  6376. , 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
  6377. , 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 ,
  6378. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6379. FROM ICSPurchaseReceive a
  6380. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6381. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6382. FROM ICSInventoryLot a
  6383. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '22'
  6384. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6385. GROUP BY
  6386. b.TransCode,
  6387. b.TransSequence
  6388. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6389. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6390. WHERE 1 = 1
  6391. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6392. // sql = string.Format(sql, Figure);
  6393. return Repository().FindTableBySql(sql.ToString());
  6394. }
  6395. /// <summary>
  6396. /// 采购入库单生成条码 保存
  6397. /// </summary>
  6398. /// <param name="RCVCode"></param>
  6399. /// <param name="Sequence"></param>
  6400. /// <param name="keyValue"></param>
  6401. /// <param name="WorkPoint"></param>
  6402. /// <returns></returns>
  6403. public int SubmitFormCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6404. {
  6405. var queryParam = keyValue.ToJObject();
  6406. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6407. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6408. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6409. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6410. decimal LOTQTY = minPackQty;
  6411. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6412. string sql = string.Empty;
  6413. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6414. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6415. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6416. string sqls = string.Empty;
  6417. string Colspan = "";
  6418. string str1 = "";
  6419. List<string> ExtensionIDList = new List<string>();
  6420. #region 装箱的功能
  6421. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6422. string VenCode = queryParam["VenCode"].ToString();
  6423. int PackCount = 0;//每箱放的数量
  6424. int Pack_YuShu = 0;//需要平摊的数量
  6425. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6426. List<PackModel> List_Pack = new List<PackModel>();
  6427. int ZQty = 0;
  6428. if (createPackCount > 0)
  6429. {
  6430. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6431. if (Pack_YuShu == 0)
  6432. {
  6433. PackCount = (createPageCount / createPackCount);
  6434. }
  6435. else
  6436. {
  6437. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6438. }
  6439. for (int jj = 0; jj < createPackCount; jj++)
  6440. {
  6441. object CARID = Guid.NewGuid();
  6442. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6443. sql += @" INSERT INTO dbo.ICSContainer
  6444. ( ID,ContainerCode ,
  6445. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6446. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6447. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6448. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6449. PackModel PP = new PackModel();
  6450. PP.ID = CARID.ToString();
  6451. PP.PackCode = Carton;
  6452. if (jj < Pack_YuShu)
  6453. {
  6454. PP.FristBarIndex = ZQty;
  6455. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6456. }
  6457. else
  6458. {
  6459. PP.FristBarIndex = ZQty;
  6460. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6461. }
  6462. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6463. List_Pack.Add(PP);
  6464. }
  6465. }
  6466. #endregion
  6467. for (int i = 0; i < createPageCount; i++)
  6468. {
  6469. if (i + 1 == createPageCount)
  6470. {
  6471. if (minPackQty * createPageCount > thisCreateQty)
  6472. {
  6473. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6474. }
  6475. }
  6476. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  6477. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6478. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6479. bool flag = true;
  6480. foreach (var item in ExtensionIDList)
  6481. {
  6482. if (item == Colspan + WorkPoint)
  6483. {
  6484. flag = false;
  6485. }
  6486. }
  6487. if (ExtensionID == null && flag == true)
  6488. {
  6489. str1 = Guid.NewGuid().ToString();
  6490. 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)
  6491. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6492. 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(),
  6493. MUSER, MUSERNAME, WorkPoints);
  6494. }
  6495. else if (ExtensionID != null)
  6496. {
  6497. str1 = ExtensionID.ToString();
  6498. }
  6499. ExtensionIDList.Add(Colspan + WorkPoint);
  6500. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6501. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6502. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6503. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6504. sql += string.Format(@"
  6505. insert into ICSInventoryLot
  6506. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6507. select
  6508. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6509. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6510. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6511. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6512. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6513. sql += "\r\n";
  6514. //装箱的功能
  6515. if (List_Pack.Count > 0)
  6516. {
  6517. PackModel mm = new PackModel();
  6518. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6519. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6520. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6521. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6522. }
  6523. }
  6524. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6525. return count;
  6526. }
  6527. /// <summary>
  6528. /// 采购入库单生成条码 保存(新)
  6529. /// </summary>
  6530. /// <param name="RCVCode"></param>
  6531. /// <param name="Sequence"></param>
  6532. /// <param name="keyValue"></param>
  6533. /// <param name="WorkPoint"></param>
  6534. /// <returns></returns>
  6535. public int SubmitFormCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6536. {
  6537. var queryParam = keyValue.ToJObject();
  6538. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6539. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6540. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6541. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  6542. List<decimal> lotQtys = new List<decimal>();
  6543. foreach (var jLotno in jLotnos)
  6544. {
  6545. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  6546. lotQtys.Add(qty);
  6547. }
  6548. int createPageCount = lotQtys.Count();
  6549. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6550. string sql = string.Empty;
  6551. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6552. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6553. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6554. string sqls = string.Empty;
  6555. string Colspan = "";
  6556. string str1 = "";
  6557. List<string> ExtensionIDList = new List<string>();
  6558. #region 装箱的功能
  6559. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6560. string VenCode = queryParam["VenCode"].ToString();
  6561. int PackCount = 0;//每箱放的数量
  6562. int Pack_YuShu = 0;//需要平摊的数量
  6563. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6564. List<PackModel> List_Pack = new List<PackModel>();
  6565. int ZQty = 0;
  6566. if (createPackCount > 0)
  6567. {
  6568. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6569. if (Pack_YuShu == 0)
  6570. {
  6571. PackCount = (createPageCount / createPackCount);
  6572. }
  6573. else
  6574. {
  6575. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6576. }
  6577. for (int jj = 0; jj < createPackCount; jj++)
  6578. {
  6579. object CARID = Guid.NewGuid();
  6580. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6581. sql += @" INSERT INTO dbo.ICSContainer
  6582. ( ID,ContainerCode ,
  6583. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6584. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6585. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6586. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6587. PackModel PP = new PackModel();
  6588. PP.ID = CARID.ToString();
  6589. PP.PackCode = Carton;
  6590. if (jj < Pack_YuShu)
  6591. {
  6592. PP.FristBarIndex = ZQty;
  6593. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6594. }
  6595. else
  6596. {
  6597. PP.FristBarIndex = ZQty;
  6598. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6599. }
  6600. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6601. List_Pack.Add(PP);
  6602. }
  6603. }
  6604. #endregion
  6605. for (int i = 0; i < createPageCount; i++)
  6606. {
  6607. //if (i + 1 == createPageCount)
  6608. //{
  6609. // if (minPackQty * createPageCount > thisCreateQty)
  6610. // {
  6611. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6612. // }
  6613. //}
  6614. decimal LOTQTY = lotQtys[i];
  6615. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  6616. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6617. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6618. bool flag = true;
  6619. foreach (var item in ExtensionIDList)
  6620. {
  6621. if (item == Colspan + WorkPoint)
  6622. {
  6623. flag = false;
  6624. }
  6625. }
  6626. if (ExtensionID == null && flag == true)
  6627. {
  6628. str1 = Guid.NewGuid().ToString();
  6629. 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)
  6630. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6631. 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(),
  6632. MUSER, MUSERNAME, WorkPoints);
  6633. }
  6634. else if (ExtensionID != null)
  6635. {
  6636. str1 = ExtensionID.ToString();
  6637. }
  6638. ExtensionIDList.Add(Colspan + WorkPoint);
  6639. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6640. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6641. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6642. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6643. try
  6644. {
  6645. sql += string.Format(@"
  6646. insert into ICSInventoryLot
  6647. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6648. select
  6649. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6650. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6651. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  6652. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6653. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6654. sql += "\r\n";
  6655. }
  6656. catch (Exception EX)
  6657. {
  6658. throw EX;
  6659. }
  6660. //装箱的功能
  6661. if (List_Pack.Count > 0)
  6662. {
  6663. PackModel mm = new PackModel();
  6664. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6665. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6666. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6667. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6668. }
  6669. }
  6670. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6671. return count;
  6672. }
  6673. /// <summary>
  6674. /// 委外采购入库生成条码
  6675. /// </summary>
  6676. /// <param name="queryJson"></param>
  6677. /// <param name="jqgridparam"></param>
  6678. /// <returns></returns>
  6679. public DataTable GetGridJsonOutPurchaseReceive(string queryJson, ref Pagination jqgridparam)
  6680. {
  6681. DataTable dt = new DataTable();
  6682. var queryParam = queryJson.ToJObject();
  6683. List<DbParameter> parameter = new List<DbParameter>();
  6684. object Figure = GetDecimalDigits();
  6685. #region [SQL]
  6686. 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,
  6687. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  6688. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  6689. ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
  6690. ,c.LOTQTY
  6691. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  6692. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  6693. ,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,
  6694. a.EATTRIBUTE9,a.EATTRIBUTE10
  6695. from ICSOutsourcingReceive a
  6696. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  6697. left join (
  6698. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  6699. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  6700. where isnull(ee.EATTRIBUTE1,'')=''
  6701. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  6702. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  6703. left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
  6704. left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  6705. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  6706. where a.Type='1' ";
  6707. sql = string.Format(sql, Figure);
  6708. #endregion
  6709. if (!string.IsNullOrWhiteSpace(queryJson))
  6710. {
  6711. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  6712. {
  6713. sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
  6714. }
  6715. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  6716. {
  6717. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  6718. }
  6719. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  6720. {
  6721. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  6722. }
  6723. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  6724. {
  6725. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  6726. }
  6727. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  6728. {
  6729. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  6730. }
  6731. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  6732. {
  6733. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  6734. }
  6735. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  6736. {
  6737. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  6738. }
  6739. }
  6740. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  6741. {
  6742. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  6743. }
  6744. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  6745. {
  6746. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  6747. }
  6748. 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,
  6749. 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
  6750. where 1=1 ";
  6751. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  6752. {
  6753. string POStatus = queryParam["POStatus"].ToString();
  6754. if (POStatus == "0")
  6755. {
  6756. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  6757. }
  6758. else if (POStatus == "1")
  6759. {
  6760. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  6761. }
  6762. else
  6763. {
  6764. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  6765. }
  6766. }
  6767. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  6768. }
  6769. /// <summary>
  6770. /// 委外采购入库获取单据信息
  6771. /// </summary>
  6772. /// <param name="FGGDMOCode"></param>
  6773. /// <param name="Sequence"></param>
  6774. /// <param name="WorkPoint"></param>
  6775. /// <returns></returns>
  6776. public DataTable GetSubGridJsonOutPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  6777. {
  6778. DataTable dt = new DataTable();
  6779. object Figure = GetDecimalDigits();
  6780. List<DbParameter> parameter = new List<DbParameter>();
  6781. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
  6782. object Num = SqlHelper.ExecuteScalar(SeachNum);
  6783. string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  6784. , CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
  6785. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  6786. , CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  6787. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  6788. , 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' 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
  6789. , 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 ,
  6790. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  6791. FROM ICSOutsourcingReceive a
  6792. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  6793. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  6794. FROM ICSInventoryLot a
  6795. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '23'
  6796. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  6797. GROUP BY
  6798. b.TransCode,
  6799. b.TransSequence
  6800. ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
  6801. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  6802. WHERE 1 = 1
  6803. and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
  6804. sql = string.Format(sql, Figure);
  6805. return Repository().FindTableBySql(sql.ToString());
  6806. }
  6807. /// <summary>
  6808. /// 委外采购入库单生成条码 保存
  6809. /// </summary>
  6810. /// <param name="RCVCode"></param>
  6811. /// <param name="Sequence"></param>
  6812. /// <param name="keyValue"></param>
  6813. /// <param name="WorkPoint"></param>
  6814. /// <returns></returns>
  6815. public int SubmitFormWWCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6816. {
  6817. var queryParam = keyValue.ToJObject();
  6818. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6819. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  6820. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6821. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6822. decimal LOTQTY = minPackQty;
  6823. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6824. string sql = string.Empty;
  6825. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6826. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6827. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6828. string sqls = string.Empty;
  6829. string Colspan = "";
  6830. string str1 = "";
  6831. List<string> ExtensionIDList = new List<string>();
  6832. #region 装箱的功能
  6833. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6834. string VenCode = queryParam["VenCode"].ToString();
  6835. int PackCount = 0;//每箱放的数量
  6836. int Pack_YuShu = 0;//需要平摊的数量
  6837. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6838. List<PackModel> List_Pack = new List<PackModel>();
  6839. int ZQty = 0;
  6840. if (createPackCount > 0)
  6841. {
  6842. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6843. if (Pack_YuShu == 0)
  6844. {
  6845. PackCount = (createPageCount / createPackCount);
  6846. }
  6847. else
  6848. {
  6849. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6850. }
  6851. for (int jj = 0; jj < createPackCount; jj++)
  6852. {
  6853. object CARID = Guid.NewGuid();
  6854. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6855. sql += @" INSERT INTO dbo.ICSContainer
  6856. ( ID,ContainerCode ,
  6857. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6858. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6859. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6860. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6861. PackModel PP = new PackModel();
  6862. PP.ID = CARID.ToString();
  6863. PP.PackCode = Carton;
  6864. if (jj < Pack_YuShu)
  6865. {
  6866. PP.FristBarIndex = ZQty;
  6867. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  6868. }
  6869. else
  6870. {
  6871. PP.FristBarIndex = ZQty;
  6872. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  6873. }
  6874. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  6875. List_Pack.Add(PP);
  6876. }
  6877. }
  6878. #endregion
  6879. for (int i = 0; i < createPageCount; i++)
  6880. {
  6881. if (i + 1 == createPageCount)
  6882. {
  6883. if (minPackQty * createPageCount > thisCreateQty)
  6884. {
  6885. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  6886. }
  6887. }
  6888. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  6889. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  6890. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  6891. bool flag = true;
  6892. foreach (var item in ExtensionIDList)
  6893. {
  6894. if (item == Colspan + WorkPoint)
  6895. {
  6896. flag = false;
  6897. }
  6898. }
  6899. if (ExtensionID == null && flag == true)
  6900. {
  6901. str1 = Guid.NewGuid().ToString();
  6902. 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)
  6903. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  6904. 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(),
  6905. MUSER, MUSERNAME, WorkPoints);
  6906. }
  6907. else if (ExtensionID != null)
  6908. {
  6909. str1 = ExtensionID.ToString();
  6910. }
  6911. ExtensionIDList.Add(Colspan + WorkPoint);
  6912. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  6913. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  6914. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  6915. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  6916. sql += string.Format(@"
  6917. insert into ICSInventoryLot
  6918. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  6919. select
  6920. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  6921. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  6922. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  6923. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  6924. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  6925. sql += "\r\n";
  6926. //装箱的功能
  6927. if (List_Pack.Count > 0)
  6928. {
  6929. PackModel mm = new PackModel();
  6930. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  6931. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  6932. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  6933. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  6934. }
  6935. }
  6936. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  6937. return count;
  6938. }
  6939. /// <summary>
  6940. /// 委外采购入库单生成条码 保存(新)
  6941. /// </summary>
  6942. /// <param name="RCVCode"></param>
  6943. /// <param name="Sequence"></param>
  6944. /// <param name="keyValue"></param>
  6945. /// <param name="WorkPoint"></param>
  6946. /// <returns></returns>
  6947. public int SubmitFormWWCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
  6948. {
  6949. var queryParam = keyValue.ToJObject();
  6950. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  6951. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  6952. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  6953. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  6954. List<decimal> lotQtys = new List<decimal>();
  6955. foreach (var jLotno in jLotnos)
  6956. {
  6957. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  6958. lotQtys.Add(qty);
  6959. }
  6960. int createPageCount = lotQtys.Count();
  6961. string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
  6962. string sql = string.Empty;
  6963. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  6964. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  6965. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  6966. string sqls = string.Empty;
  6967. string Colspan = "";
  6968. string str1 = "";
  6969. List<string> ExtensionIDList = new List<string>();
  6970. #region 装箱的功能
  6971. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  6972. string VenCode = queryParam["VenCode"].ToString();
  6973. int PackCount = 0;//每箱放的数量
  6974. int Pack_YuShu = 0;//需要平摊的数量
  6975. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  6976. List<PackModel> List_Pack = new List<PackModel>();
  6977. int ZQty = 0;
  6978. if (createPackCount > 0)
  6979. {
  6980. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  6981. if (Pack_YuShu == 0)
  6982. {
  6983. PackCount = (createPageCount / createPackCount);
  6984. }
  6985. else
  6986. {
  6987. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  6988. }
  6989. for (int jj = 0; jj < createPackCount; jj++)
  6990. {
  6991. object CARID = Guid.NewGuid();
  6992. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  6993. sql += @" INSERT INTO dbo.ICSContainer
  6994. ( ID,ContainerCode ,
  6995. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  6996. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  6997. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  6998. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  6999. PackModel PP = new PackModel();
  7000. PP.ID = CARID.ToString();
  7001. PP.PackCode = Carton;
  7002. if (jj < Pack_YuShu)
  7003. {
  7004. PP.FristBarIndex = ZQty;
  7005. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7006. }
  7007. else
  7008. {
  7009. PP.FristBarIndex = ZQty;
  7010. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7011. }
  7012. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7013. List_Pack.Add(PP);
  7014. }
  7015. }
  7016. #endregion
  7017. for (int i = 0; i < createPageCount; i++)
  7018. {
  7019. //if (i + 1 == createPageCount)
  7020. //{
  7021. // if (minPackQty * createPageCount > thisCreateQty)
  7022. // {
  7023. // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7024. // }
  7025. //}
  7026. decimal LOTQTY = lotQtys[i];
  7027. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  7028. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7029. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7030. bool flag = true;
  7031. foreach (var item in ExtensionIDList)
  7032. {
  7033. if (item == Colspan + WorkPoint)
  7034. {
  7035. flag = false;
  7036. }
  7037. }
  7038. if (ExtensionID == null && flag == true)
  7039. {
  7040. str1 = Guid.NewGuid().ToString();
  7041. 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)
  7042. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7043. 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(),
  7044. MUSER, MUSERNAME, WorkPoints);
  7045. }
  7046. else if (ExtensionID != null)
  7047. {
  7048. str1 = ExtensionID.ToString();
  7049. }
  7050. ExtensionIDList.Add(Colspan + WorkPoint);
  7051. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7052. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7053. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7054. LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7055. try
  7056. {
  7057. sql += string.Format(@"
  7058. insert into ICSInventoryLot
  7059. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7060. select
  7061. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7062. from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7063. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / LOTQTY, queryParam["ExpirationDate"].ToString()
  7064. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7065. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7066. sql += "\r\n";
  7067. }
  7068. catch (Exception EX)
  7069. {
  7070. throw EX;
  7071. }
  7072. //装箱的功能
  7073. if (List_Pack.Count > 0)
  7074. {
  7075. PackModel mm = new PackModel();
  7076. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7077. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7078. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7079. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7080. }
  7081. }
  7082. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7083. return count;
  7084. }
  7085. /// <summary>
  7086. /// 铭锋 退货调拨申请单生成条码
  7087. /// </summary>
  7088. /// <param name="queryJson"></param>
  7089. /// <param name="jqgridparam"></param>
  7090. /// <returns></returns>
  7091. public DataTable GetGridJsonTransferApplication(string queryJson, ref Pagination jqgridparam)
  7092. {
  7093. DataTable dt = new DataTable();
  7094. var queryParam = queryJson.ToJObject();
  7095. List<DbParameter> parameter = new List<DbParameter>();
  7096. object Figure = GetDecimalDigits();
  7097. #region [SQL]
  7098. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  7099. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  7100. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  7101. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  7102. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  7103. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  7104. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  7105. ,c.LOTQTY
  7106. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  7107. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  7108. ,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,
  7109. a.EATTRIBUTE9,a.EATTRIBUTE10
  7110. from ICSTransferApplication a
  7111. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7112. left join (
  7113. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7114. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  7115. where isnull(ee.EATTRIBUTE1,'')=''
  7116. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7117. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7118. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  7119. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7120. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  7121. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  7122. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  7123. where 1 = 1";
  7124. sql = string.Format(sql, Figure);
  7125. #endregion
  7126. if (!string.IsNullOrWhiteSpace(queryJson))
  7127. {
  7128. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  7129. {
  7130. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  7131. }
  7132. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  7133. {
  7134. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  7135. }
  7136. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  7137. {
  7138. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  7139. }
  7140. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  7141. {
  7142. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  7143. }
  7144. }
  7145. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  7146. {
  7147. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  7148. }
  7149. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  7150. //{
  7151. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  7152. //}
  7153. 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,
  7154. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  7155. 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
  7156. where 1=1 ";
  7157. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  7158. {
  7159. string POStatus = queryParam["POStatus"].ToString();
  7160. if (POStatus == "0")
  7161. {
  7162. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  7163. }
  7164. else if (POStatus == "1")
  7165. {
  7166. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  7167. }
  7168. else
  7169. {
  7170. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  7171. }
  7172. }
  7173. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  7174. }
  7175. /// <summary>
  7176. /// 铭锋 退货调拨申请单获取单据信息
  7177. /// </summary>
  7178. /// <param name="TransferNO"></param>
  7179. /// <param name="Sequence"></param>
  7180. /// <param name="WorkPoint"></param>
  7181. /// <returns></returns>
  7182. public DataTable GetSubGridJsonTransferApplicationByCreate(string TransferNO, string Sequence, string WorkPoint)
  7183. {
  7184. DataTable dt = new DataTable();
  7185. object Figure = GetDecimalDigits();
  7186. List<DbParameter> parameter = new List<DbParameter>();
  7187. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  7188. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  7189. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  7190. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  7191. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  7192. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  7193. , 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 ,
  7194. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7195. FROM ICSTransferApplication a
  7196. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  7197. 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
  7198. END AS Quantity
  7199. FROM ICSTransferApplication a
  7200. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  7201. AND a.WorkPoint= b.WorkPoint
  7202. ) xx ON xx.Id= a.Id
  7203. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  7204. FROM ICSInventoryLot a
  7205. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  7206. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  7207. GROUP BY
  7208. b.TransCode,
  7209. b.TransSequence
  7210. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  7211. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  7212. WHERE 1 = 1
  7213. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  7214. and a.WorkPoint='{WorkPoint}'";
  7215. sql = string.Format(sql, Figure);
  7216. return Repository().FindTableBySql(sql.ToString());
  7217. }
  7218. /// <summary>
  7219. /// 铭锋 退货调拨申请单生成条码 保存
  7220. /// </summary>
  7221. /// <param name="TransferNO"></param>
  7222. /// <param name="Sequence"></param>
  7223. /// <param name="keyValue"></param>
  7224. /// <param name="WorkPoint"></param>
  7225. /// <returns></returns>
  7226. public int SubmitFormTransferApplicatioSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7227. {
  7228. var queryParam = keyValue.ToJObject();
  7229. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7230. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7231. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7232. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7233. decimal LOTQTY = minPackQty;
  7234. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7235. string sql = string.Empty;
  7236. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7237. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7238. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7239. string sqls = string.Empty;
  7240. string Colspan = "";
  7241. string str1 = "";
  7242. List<string> ExtensionIDList = new List<string>();
  7243. #region 装箱的功能
  7244. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7245. string VenCode = queryParam["VenCode"].ToString();
  7246. int PackCount = 0;//每箱放的数量
  7247. int Pack_YuShu = 0;//需要平摊的数量
  7248. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7249. List<PackModel> List_Pack = new List<PackModel>();
  7250. int ZQty = 0;
  7251. if (createPackCount > 0)
  7252. {
  7253. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7254. if (Pack_YuShu == 0)
  7255. {
  7256. PackCount = (createPageCount / createPackCount);
  7257. }
  7258. else
  7259. {
  7260. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7261. }
  7262. for (int jj = 0; jj < createPackCount; jj++)
  7263. {
  7264. object CARID = Guid.NewGuid();
  7265. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7266. sql += @" INSERT INTO dbo.ICSContainer
  7267. ( ID,ContainerCode ,
  7268. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7269. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7270. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7271. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7272. PackModel PP = new PackModel();
  7273. PP.ID = CARID.ToString();
  7274. PP.PackCode = Carton;
  7275. if (jj < Pack_YuShu)
  7276. {
  7277. PP.FristBarIndex = ZQty;
  7278. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7279. }
  7280. else
  7281. {
  7282. PP.FristBarIndex = ZQty;
  7283. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7284. }
  7285. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7286. List_Pack.Add(PP);
  7287. }
  7288. }
  7289. #endregion
  7290. for (int i = 0; i < createPageCount; i++)
  7291. {
  7292. if (i + 1 == createPageCount)
  7293. {
  7294. if (minPackQty * createPageCount > thisCreateQty)
  7295. {
  7296. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7297. }
  7298. }
  7299. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  7300. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7301. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7302. bool flag = true;
  7303. foreach (var item in ExtensionIDList)
  7304. {
  7305. if (item == Colspan + WorkPoint)
  7306. {
  7307. flag = false;
  7308. }
  7309. }
  7310. if (ExtensionID == null && flag == true)
  7311. {
  7312. str1 = Guid.NewGuid().ToString();
  7313. 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)
  7314. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7315. 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(),
  7316. MUSER, MUSERNAME, WorkPoints);
  7317. }
  7318. else if (ExtensionID != null)
  7319. {
  7320. str1 = ExtensionID.ToString();
  7321. }
  7322. ExtensionIDList.Add(Colspan + WorkPoint);
  7323. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7324. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7325. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7326. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7327. sql += string.Format(@"
  7328. insert into ICSInventoryLot
  7329. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7330. select
  7331. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7332. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7333. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7334. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7335. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7336. sql += "\r\n";
  7337. //装箱的功能
  7338. if (List_Pack.Count > 0)
  7339. {
  7340. PackModel mm = new PackModel();
  7341. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7342. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7343. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7344. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7345. }
  7346. }
  7347. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7348. return count;
  7349. }
  7350. public int SubmitFormTransferApplicatioSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  7351. {
  7352. var queryParam = keyValue.ToJObject();
  7353. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7354. //decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7355. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7356. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  7357. List<decimal> lotQtys = new List<decimal>();
  7358. foreach (var jLotno in jLotnos)
  7359. {
  7360. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  7361. lotQtys.Add(qty);
  7362. }
  7363. int createPageCount = lotQtys.Count();
  7364. string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  7365. string sql = string.Empty;
  7366. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7367. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7368. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7369. string sqls = string.Empty;
  7370. string Colspan = "";
  7371. string str1 = "";
  7372. List<string> ExtensionIDList = new List<string>();
  7373. #region 装箱的功能
  7374. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7375. string VenCode = queryParam["VenCode"].ToString();
  7376. int PackCount = 0;//每箱放的数量
  7377. int Pack_YuShu = 0;//需要平摊的数量
  7378. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7379. List<PackModel> List_Pack = new List<PackModel>();
  7380. int ZQty = 0;
  7381. if (createPackCount > 0)
  7382. {
  7383. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7384. if (Pack_YuShu == 0)
  7385. {
  7386. PackCount = (createPageCount / createPackCount);
  7387. }
  7388. else
  7389. {
  7390. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7391. }
  7392. for (int jj = 0; jj < createPackCount; jj++)
  7393. {
  7394. object CARID = Guid.NewGuid();
  7395. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7396. sql += @" INSERT INTO dbo.ICSContainer
  7397. ( ID,ContainerCode ,
  7398. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7399. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7400. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7401. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7402. PackModel PP = new PackModel();
  7403. PP.ID = CARID.ToString();
  7404. PP.PackCode = Carton;
  7405. if (jj < Pack_YuShu)
  7406. {
  7407. PP.FristBarIndex = ZQty;
  7408. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7409. }
  7410. else
  7411. {
  7412. PP.FristBarIndex = ZQty;
  7413. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7414. }
  7415. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7416. List_Pack.Add(PP);
  7417. }
  7418. }
  7419. #endregion
  7420. for (int i = 0; i < createPageCount; i++)
  7421. {
  7422. var LOTQTY = lotQtys[i];
  7423. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  7424. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7425. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7426. bool flag = true;
  7427. foreach (var item in ExtensionIDList)
  7428. {
  7429. if (item == Colspan + WorkPoint)
  7430. {
  7431. flag = false;
  7432. }
  7433. }
  7434. if (ExtensionID == null && flag == true)
  7435. {
  7436. str1 = Guid.NewGuid().ToString();
  7437. 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)
  7438. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7439. 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(),
  7440. MUSER, MUSERNAME, WorkPoints);
  7441. }
  7442. else if (ExtensionID != null)
  7443. {
  7444. str1 = ExtensionID.ToString();
  7445. }
  7446. ExtensionIDList.Add(Colspan + WorkPoint);
  7447. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7448. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7449. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  7450. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7451. sql += string.Format(@"
  7452. insert into ICSInventoryLot
  7453. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7454. select
  7455. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7456. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  7457. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  7458. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7459. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7460. sql += "\r\n";
  7461. //装箱的功能
  7462. if (List_Pack.Count > 0)
  7463. {
  7464. PackModel mm = new PackModel();
  7465. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7466. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7467. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7468. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7469. }
  7470. }
  7471. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7472. return count;
  7473. }
  7474. public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  7475. {
  7476. DataTable dt = new DataTable();
  7477. object Figure = GetDecimalDigits();
  7478. List<DbParameter> parameter = new List<DbParameter>();
  7479. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn014', " + Quantity + ",1,2,'')";
  7480. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7481. string sql = @"
  7482. 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,
  7483. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
  7484. 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' 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
  7485. ,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,
  7486. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  7487. from ICSMOPick a
  7488. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7489. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7490. left join (
  7491. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  7492. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18'
  7493. where isnull(a.EATTRIBUTE1,'')=''
  7494. group by b.TransCode,b.TransSequence
  7495. ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
  7496. left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
  7497. WHERE 1=1
  7498. and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
  7499. sql += " and a.WorkPoint='" + WorkPoint + "'";
  7500. sql = string.Format(sql, Figure);
  7501. return Repository().FindTableBySql(sql.ToString());
  7502. }
  7503. //副产品
  7504. public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
  7505. {
  7506. var queryParam = keyValue.ToJObject();
  7507. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7508. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  7509. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  7510. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  7511. decimal LOTQTY = minPackQty;
  7512. string Sequences = Sequence.Replace("~", "");
  7513. string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
  7514. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  7515. string sql = string.Empty;
  7516. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  7517. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  7518. string sqls = string.Empty;
  7519. string Colspan = "";
  7520. string str1 = "";
  7521. List<string> ExtensionIDList = new List<string>();
  7522. #region 装箱的功能
  7523. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  7524. string VenCode = queryParam["VenCode"].ToString();
  7525. int PackCount = 0;//每箱放的数量
  7526. int Pack_YuShu = 0;//需要平摊的数量
  7527. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  7528. List<PackModel> List_Pack = new List<PackModel>();
  7529. int ZQty = 0;
  7530. if (createPackCount > 0)
  7531. {
  7532. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  7533. if (Pack_YuShu == 0)
  7534. {
  7535. PackCount = (createPageCount / createPackCount);
  7536. }
  7537. else
  7538. {
  7539. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  7540. }
  7541. for (int jj = 0; jj < createPackCount; jj++)
  7542. {
  7543. object CARID = Guid.NewGuid();
  7544. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  7545. sql += @" INSERT INTO dbo.ICSContainer
  7546. ( ID,ContainerCode ,
  7547. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  7548. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  7549. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  7550. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  7551. PackModel PP = new PackModel();
  7552. PP.ID = CARID.ToString();
  7553. PP.PackCode = Carton;
  7554. if (jj < Pack_YuShu)
  7555. {
  7556. PP.FristBarIndex = ZQty;
  7557. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  7558. }
  7559. else
  7560. {
  7561. PP.FristBarIndex = ZQty;
  7562. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  7563. }
  7564. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  7565. List_Pack.Add(PP);
  7566. }
  7567. }
  7568. #endregion
  7569. for (int i = 0; i < createPageCount; i++)
  7570. {
  7571. if (i + 1 == createPageCount)
  7572. {
  7573. if (minPackQty * createPageCount > thisCreateQty)
  7574. {
  7575. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  7576. }
  7577. }
  7578. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  7579. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  7580. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  7581. bool flag = true;
  7582. foreach (var item in ExtensionIDList)
  7583. {
  7584. if (item == Colspan + WorkPoint)
  7585. {
  7586. flag = false;
  7587. }
  7588. }
  7589. if (ExtensionID == null && flag == true)
  7590. {
  7591. str1 = Guid.NewGuid().ToString();
  7592. 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)
  7593. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  7594. 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(),
  7595. MUSER, MUSERNAME, WorkPoints);
  7596. }
  7597. else if (ExtensionID != null)
  7598. {
  7599. str1 = ExtensionID.ToString();
  7600. }
  7601. ExtensionIDList.Add(Colspan + WorkPoint);
  7602. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  7603. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  7604. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  7605. LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  7606. sql += string.Format(@"insert into ICSInventoryLot
  7607. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  7608. select
  7609. newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  7610. 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}' ",
  7611. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  7612. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  7613. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  7614. sql += "\r\n";
  7615. //装箱的功能
  7616. if (List_Pack.Count > 0)
  7617. {
  7618. PackModel mm = new PackModel();
  7619. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  7620. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  7621. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  7622. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  7623. }
  7624. }
  7625. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  7626. return count;
  7627. }
  7628. public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty, string InvCode, string Quantitys)
  7629. {
  7630. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  7631. DataTable dt = new DataTable();
  7632. List<DbParameter> parameter = new List<DbParameter>();
  7633. string sql = string.Empty;
  7634. bool flag = true;
  7635. if (Type == "1")
  7636. {
  7637. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn017', " + Quantitys + ",1,2,'')";
  7638. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7639. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7640. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7641. from ICSMOApplyNegDetail a
  7642. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7643. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7644. left join (
  7645. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7646. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1'
  7647. where isnull(ee.EATTRIBUTE1,'')=''
  7648. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7649. )c
  7650. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7651. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7652. where d.Type='1' and d.Status='2'
  7653. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7654. }
  7655. if (Type == "2")
  7656. {
  7657. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn008', " + Quantitys + ",1,2,'')";
  7658. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7659. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7660. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7661. from ICSOApplyNegDetail a
  7662. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7663. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7664. left join (
  7665. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7666. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2'
  7667. where isnull(ee.EATTRIBUTE1,'')=''
  7668. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7669. )c
  7670. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7671. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7672. WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7673. }
  7674. if (Type == "3")
  7675. {
  7676. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn011', " + Quantitys + ",1,2,'')";
  7677. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7678. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7679. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7680. from ICSMO a
  7681. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7682. left join (
  7683. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7684. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3'
  7685. where isnull(ee.EATTRIBUTE1,'')=''
  7686. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7687. )c
  7688. on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7689. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7690. WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7691. }
  7692. if (Type == "4")
  7693. {
  7694. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn020', " + Quantitys + ",1,3,'')";
  7695. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7696. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7697. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7698. from ICSSDN a
  7699. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7700. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7701. left join(select a.SDNCode,a.Sequence,a.WorkPoint,
  7702. 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
  7703. from ICSSDN a
  7704. 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
  7705. left join (
  7706. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7707. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4'
  7708. where isnull(ee.EATTRIBUTE1,'')=''
  7709. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7710. )c
  7711. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7712. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7713. where a.Type='2'
  7714. and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7715. }
  7716. if (Type == "5")
  7717. {
  7718. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn021', " + Quantitys + ",1,4,'')";
  7719. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7720. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7721. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7722. from ICSOtherIn a
  7723. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7724. left join(select a.InCode,a.Sequence,a.WorkPoint,
  7725. 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
  7726. from ICSOtherIn a
  7727. 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
  7728. left join (
  7729. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7730. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  7731. where isnull(ee.EATTRIBUTE1,'')=''
  7732. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7733. )c
  7734. on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7735. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7736. where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1'
  7737. and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7738. }
  7739. if (Type == "6")
  7740. {
  7741. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn023', " + Quantitys + ",1,4,'')";
  7742. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7743. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7744. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7745. from ICSReturn a
  7746. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7747. left join(select a.ReturnCode,a.Sequence,a.WorkPoint,
  7748. 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
  7749. from ICSReturn a
  7750. 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
  7751. left join (
  7752. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7753. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6'
  7754. where isnull(ee.EATTRIBUTE1,'')=''
  7755. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7756. ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7757. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7758. where a.Status='2'
  7759. and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7760. }
  7761. if (Type == "7")
  7762. {
  7763. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn002', " + Quantitys + ",1,1,'')";
  7764. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7765. //锐腾添加退补逻辑
  7766. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  7767. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7768. from ICSDeliveryNotice a
  7769. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7770. left join(select a.DNCode,a.Sequence,a.WorkPoint,
  7771. " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  7772. from ICSDeliveryNotice a
  7773. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7774. left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退'
  7775. 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
  7776. left join (
  7777. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7778. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7'
  7779. where isnull(ee.EATTRIBUTE1,'')=''
  7780. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7781. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7782. inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  7783. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7784. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7785. where a.DNType='1' and a.Status='2' and a.ASNCode is null
  7786. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7787. }
  7788. if (Type == "8")
  7789. {
  7790. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn005', " + Quantitys + ",1,1,'')";
  7791. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7792. //锐腾添加退补逻辑
  7793. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  7794. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7795. from ICSODeliveryNotice a
  7796. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7797. left join(select a.ODNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
  7798. from ICSODeliveryNotice a
  7799. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7800. left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退'
  7801. 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
  7802. left join (
  7803. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7804. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8'
  7805. where isnull(ee.EATTRIBUTE1,'')=''
  7806. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7807. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7808. inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  7809. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7810. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7811. where a.ODNType='1' and a.Status='2' and a.OASNCode is null
  7812. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7813. }
  7814. if (Type == "9")
  7815. {
  7816. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn013', " + Quantitys + ",1,2,'')";
  7817. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7818. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7819. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7820. from ICSManufactureReceive a
  7821. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7822. left join (
  7823. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7824. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9'
  7825. where isnull(ee.EATTRIBUTE1,'')=''
  7826. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7827. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7828. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7829. where a.Status='1' and a.Type='1'
  7830. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7831. }
  7832. if (Type == "10")
  7833. {
  7834. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn003', " + Quantitys + ",1,1,'')";
  7835. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7836. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7837. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7838. from ICSDeliveryNotice a
  7839. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7840. left join (
  7841. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7842. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10'
  7843. where isnull(ee.EATTRIBUTE1,'')=''
  7844. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7845. ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7846. --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
  7847. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7848. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7849. where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  7850. and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7851. }
  7852. if (Type == "11")
  7853. {
  7854. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn006', " + Quantitys + ",1,1,'')";
  7855. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7856. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7857. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7858. from ICSODeliveryNotice a
  7859. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7860. left join (
  7861. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7862. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11'
  7863. where isnull(ee.EATTRIBUTE1,'')=''
  7864. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7865. ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7866. --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
  7867. left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
  7868. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7869. where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
  7870. and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7871. }
  7872. if (Type == "12")
  7873. {
  7874. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn018', " + Quantitys + ",1,2,'')";
  7875. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7876. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7877. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7878. from ICSMOApplyNegDetail a
  7879. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7880. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7881. left join (
  7882. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7883. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12'
  7884. where isnull(ee.EATTRIBUTE1,'')=''
  7885. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7886. )c
  7887. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7888. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7889. WHERE d.Type='2' and d.Status='2'
  7890. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7891. }
  7892. if (Type == "13")
  7893. {
  7894. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn019', " + Quantitys + ",1,2,'')";
  7895. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7896. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7897. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7898. from ICSMOApplyNegDetail a
  7899. left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
  7900. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7901. left join (
  7902. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7903. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13'
  7904. where isnull(ee.EATTRIBUTE1,'')=''
  7905. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7906. )c
  7907. on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7908. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7909. WHERE d.Type='3' and d.Status='2'
  7910. and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7911. }
  7912. if (Type == "14")
  7913. {
  7914. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn009', " + Quantitys + ",1,1,'')";
  7915. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7916. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7917. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7918. from ICSOApplyNegDetail a
  7919. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7920. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7921. left join (
  7922. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7923. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14'
  7924. where isnull(ee.EATTRIBUTE1,'')=''
  7925. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7926. )c
  7927. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7928. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7929. WHERE d.Type='2'
  7930. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7931. }
  7932. if (Type == "15")
  7933. {
  7934. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn010', " + Quantitys + ",1,1,'')";
  7935. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7936. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7937. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7938. from ICSOApplyNegDetail a
  7939. left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
  7940. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7941. left join (
  7942. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7943. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15'
  7944. where isnull(ee.EATTRIBUTE1,'')=''
  7945. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7946. )c
  7947. on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7948. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7949. WHERE d.Type='3'
  7950. and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7951. }
  7952. if (Type == "16")
  7953. {
  7954. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn015', " + Quantitys + ",1,2,'')";
  7955. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7956. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7957. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7958. from ICSMOPick a
  7959. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7960. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7961. left join (
  7962. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7963. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16'
  7964. where isnull(ee.EATTRIBUTE1,'')=''
  7965. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7966. )c
  7967. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7968. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7969. where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
  7970. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7971. }
  7972. if (Type == "18")
  7973. {
  7974. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn014', " + Quantitys + ",1,2,'')";
  7975. object Num = SqlHelper.ExecuteScalar(SeachNum);
  7976. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  7977. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7978. from ICSMOPick a
  7979. left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
  7980. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7981. left join (
  7982. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  7983. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18'
  7984. where isnull(ee.EATTRIBUTE1,'')=''
  7985. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  7986. )c
  7987. on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  7988. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  7989. where a.EATTRIBUTE1='1'
  7990. and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  7991. }
  7992. if (Type == "22")
  7993. {
  7994. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  7995. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  7996. from ICSPurchaseReceive a
  7997. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  7998. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  7999. 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
  8000. from ICSPurchaseReceive a
  8001. 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
  8002. left join (
  8003. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8004. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22'
  8005. where isnull(ee.EATTRIBUTE1,'')=''
  8006. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8007. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8008. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8009. where a.Status='1'
  8010. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8011. }
  8012. if (Type == "23")
  8013. {
  8014. sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
  8015. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8016. from ICSOutsourcingReceive a
  8017. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8018. left join(select a.RCVCode,a.Sequence,a.WorkPoint,
  8019. 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
  8020. from ICSOutsourcingReceive a
  8021. 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
  8022. left join (
  8023. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8024. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23'
  8025. where isnull(ee.EATTRIBUTE1,'')=''
  8026. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8027. ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8028. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8029. where a.Status='1'
  8030. and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8031. }
  8032. if (Type == "24")
  8033. {
  8034. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn026', " + Quantitys + ",1,3,'')";
  8035. object Num = SqlHelper.ExecuteScalar(SeachNum);
  8036. sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
  8037. CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
  8038. from ICSSSD a
  8039. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8040. left join(select a.SDNCode,a.SDNSequence Sequence,a.WorkPoint,
  8041. 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
  8042. from ICSSSD a
  8043. 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
  8044. left join (
  8045. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8046. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5'
  8047. where isnull(ee.EATTRIBUTE1,'')=''
  8048. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8049. )c
  8050. on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8051. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8052. where a.Status='1' and a.Type='2'
  8053. and a.SSDCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
  8054. }
  8055. dt = SqlHelper.GetDataTableBySql(sql);
  8056. decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
  8057. decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
  8058. decimal thisQty = Convert.ToDecimal(thisCreateQty);
  8059. if (LOTQTY + thisQty > Quantity)
  8060. {
  8061. flag = false;
  8062. }
  8063. return flag;
  8064. }
  8065. /// <summary>
  8066. /// 开立成品入库单(一键生成)
  8067. /// </summary>
  8068. public int SubmitFormKLCPRKALL(string keyValue)
  8069. {
  8070. string sql = string.Empty;
  8071. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8072. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8073. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8074. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8075. foreach (var item in res)
  8076. {
  8077. JObject jo = (JObject)item;
  8078. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8079. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8080. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8081. decimal LOTQTY = minPackQty;
  8082. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8083. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8084. string sqls = string.Empty;
  8085. string Colspan = "";
  8086. string str1 = "";
  8087. List<string> ExtensionIDList = new List<string>();
  8088. for (int i = 0; i < createPageCount; i++)
  8089. {
  8090. if (i + 1 == createPageCount)
  8091. {
  8092. if (minPackQty * createPageCount > thisCreateQty)
  8093. {
  8094. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8095. }
  8096. }
  8097. 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();
  8098. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8099. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8100. bool flag = true;
  8101. foreach (var items in ExtensionIDList)
  8102. {
  8103. if (items == Colspan + WorkPoint)
  8104. {
  8105. flag = false;
  8106. }
  8107. }
  8108. if (ExtensionID == null && flag == true)
  8109. {
  8110. str1 = Guid.NewGuid().ToString();
  8111. 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)
  8112. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8113. 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(),
  8114. MUSER, MUSERNAME, WorkPoint);
  8115. }
  8116. else if (ExtensionID != null)
  8117. {
  8118. str1 = ExtensionID.ToString();
  8119. }
  8120. ExtensionIDList.Add(Colspan + WorkPoint);
  8121. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8122. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8123. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8124. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8125. sql += string.Format(@"
  8126. insert into ICSInventoryLot
  8127. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8128. select
  8129. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}'
  8130. from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8131. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8132. sql += "\r\n";
  8133. }
  8134. }
  8135. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8136. return count;
  8137. }
  8138. /// <summary>
  8139. /// 审核到货单生成条码(一键生成)
  8140. /// </summary>
  8141. /// <param name="POCode"></param>
  8142. /// <param name="PORow"></param>
  8143. /// <param name="keyValue"></param>
  8144. /// 已改
  8145. /// <returns></returns>
  8146. public int SubmitFormSHDHALL(string keyValue)
  8147. {
  8148. string sql = string.Empty;
  8149. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8150. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8151. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8152. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8153. foreach (var resItem in res)
  8154. {
  8155. JObject jo = (JObject)resItem;
  8156. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8157. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8158. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8159. decimal LOTQTY = minPackQty;
  8160. string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8161. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8162. string sqls = string.Empty;
  8163. string Colspan = "";
  8164. string str1 = "";
  8165. List<string> ExtensionIDList = new List<string>();
  8166. for (int i = 0; i < createPageCount; i++)
  8167. {
  8168. if (i + 1 == createPageCount)
  8169. {
  8170. if (minPackQty * createPageCount > thisCreateQty)
  8171. {
  8172. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8173. }
  8174. }
  8175. 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();
  8176. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8177. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8178. bool flag = true;
  8179. foreach (var item in ExtensionIDList)
  8180. {
  8181. if (item == Colspan + WorkPoint)
  8182. {
  8183. flag = false;
  8184. }
  8185. }
  8186. if (ExtensionID == null && flag == true)
  8187. {
  8188. str1 = Guid.NewGuid().ToString();
  8189. 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)
  8190. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8191. 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(),
  8192. MUSER, MUSERNAME, WorkPoint);
  8193. }
  8194. else if (ExtensionID != null)
  8195. {
  8196. str1 = ExtensionID.ToString();
  8197. }
  8198. ExtensionIDList.Add(Colspan + WorkPoint);
  8199. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8200. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8201. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  8202. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8203. sql += string.Format(@"
  8204. insert into ICSInventoryLot
  8205. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8206. select
  8207. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  8208. from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8209. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8210. sql += "\r\n";
  8211. }
  8212. }
  8213. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8214. return count;
  8215. }
  8216. /// <summary>
  8217. /// 审核委外到货单生成条码(一键生成)
  8218. /// </summary>
  8219. /// <param name="POCode"></param>
  8220. /// <param name="PORow"></param>
  8221. /// <param name="keyValue"></param>
  8222. /// 已改
  8223. /// <returns></returns>
  8224. public int SubmitFormWWSHDHALL(string keyValue)
  8225. {
  8226. string sql = string.Empty;
  8227. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8228. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8229. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8230. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8231. foreach (var resItem in res)
  8232. {
  8233. JObject jo = (JObject)resItem;
  8234. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8235. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8236. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8237. decimal LOTQTY = minPackQty;
  8238. string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  8239. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8240. string sqls = string.Empty;
  8241. string Colspan = "";
  8242. string str1 = "";
  8243. List<string> ExtensionIDList = new List<string>();
  8244. for (int i = 0; i < createPageCount; i++)
  8245. {
  8246. if (i + 1 == createPageCount)
  8247. {
  8248. if (minPackQty * createPageCount > thisCreateQty)
  8249. {
  8250. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8251. }
  8252. }
  8253. 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();
  8254. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8255. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8256. bool flag = true;
  8257. foreach (var item in ExtensionIDList)
  8258. {
  8259. if (item == Colspan + WorkPoint)
  8260. {
  8261. flag = false;
  8262. }
  8263. }
  8264. if (ExtensionID == null && flag == true)
  8265. {
  8266. str1 = Guid.NewGuid().ToString();
  8267. 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)
  8268. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8269. 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(),
  8270. MUSER, MUSERNAME, WorkPoint);
  8271. }
  8272. else if (ExtensionID != null)
  8273. {
  8274. str1 = ExtensionID.ToString();
  8275. }
  8276. ExtensionIDList.Add(Colspan + WorkPoint);
  8277. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8278. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8279. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8280. LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]);
  8281. sql += string.Format(@"
  8282. insert into ICSInventoryLot
  8283. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8284. select
  8285. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}'
  8286. from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8287. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8288. sql += "\r\n";
  8289. }
  8290. }
  8291. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8292. return count;
  8293. }
  8294. public DataTable SelectICSColumnEnableForLotEnable()
  8295. {
  8296. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8297. string sql = @" select ColumnCode from ICSColumnEnable
  8298. where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
  8299. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8300. return dt;
  8301. }
  8302. public DataTable GetLoadShowForColumn()
  8303. {
  8304. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8305. string sql = @"
  8306. select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
  8307. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  8308. return dt;
  8309. }
  8310. public string GetAMEnable()
  8311. {
  8312. string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
  8313. return Code;
  8314. }
  8315. public DataTable SeachMeasure()
  8316. {
  8317. DataTable dt = new DataTable();
  8318. List<DbParameter> parameter = new List<DbParameter>();
  8319. string sql = @" SELECT Top 1 a.F_ItemCode as Code
  8320. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8321. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8322. WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
  8323. return Repository().FindTableBySql(sql.ToString());
  8324. }
  8325. public DataTable SeachLableofDisable()
  8326. {
  8327. DataTable dt = new DataTable();
  8328. List<DbParameter> parameter = new List<DbParameter>();
  8329. string sql = @"
  8330. SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
  8331. FROM [dbo].[Sys_SRM_ItemsDetail] a
  8332. LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
  8333. WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
  8334. return Repository().FindTableBySql(sql.ToString());
  8335. }
  8336. public DataTable SeachAmountEnablebyInvCode(string InvCode)
  8337. {
  8338. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8339. DataTable dt = new DataTable();
  8340. List<DbParameter> parameter = new List<DbParameter>();
  8341. string sql = @"
  8342. select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8343. return Repository().FindTableBySql(sql.ToString());
  8344. }
  8345. public DataTable SeachDatabyInvCode(string InvCode)
  8346. {
  8347. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8348. DataTable dt = new DataTable();
  8349. List<DbParameter> parameter = new List<DbParameter>();
  8350. string sql = @"
  8351. select isnull(AmountEnable,0) as AmountEnable,
  8352. isnull(ContainerEnable,0) ContainerEnable
  8353. from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
  8354. return Repository().FindTableBySql(sql.ToString());
  8355. }
  8356. public string LotBindCode(String savePath, string Code, string Sequence)
  8357. {
  8358. //数据获取
  8359. try
  8360. {
  8361. int index = 1;
  8362. string msg = "";
  8363. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8364. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8365. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8366. SqlConnection conn = SqlHelper.GetDataCenterConn();
  8367. string sql = "";
  8368. int count = 0;
  8369. DataTable data = FileToExcel.ExcelToTable(savePath);
  8370. int totalNum = data.AsEnumerable().Sum(row => int.Parse(row.Field<string>("条码数量")));
  8371. string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
  8372. case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
  8373. a.ExtensionID
  8374. from ICSMO a
  8375. left join (
  8376. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  8377. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
  8378. where isnull(a.EATTRIBUTE1,'')=''
  8379. group by b.TransCode,b.TransSequence
  8380. ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
  8381. 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}'";
  8382. sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
  8383. DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
  8384. string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
  8385. string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString();
  8386. string InvCode = dd.Rows[0]["InvCode"].ToString();
  8387. decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
  8388. decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
  8389. decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
  8390. decimal SQTY = CQuantity - CLOTQTY;
  8391. if (totalNum > SQTY)
  8392. {
  8393. throw new Exception("单号: " + Code + "行号" + Sequence + " 所导入条码数量超出该单据可生成数量,该单据剩余可生成数量为" + SQTY + "!");
  8394. }
  8395. // string CodeSequence = "";
  8396. foreach (DataRow dr in data.Rows)
  8397. {
  8398. index++;
  8399. //string GUID = Guid.NewGuid().ToString();
  8400. // string Code = dr["单据号"].ToString().Trim().ToUpper();
  8401. // string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
  8402. string LotNo = dr["条码"].ToString().Trim().ToUpper();
  8403. string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
  8404. //if (CodeSequence != "" && CodeSequence != Code + Sequence)
  8405. //{
  8406. // throw new Exception("一次只能导入同一单据数据!");
  8407. //}
  8408. //else
  8409. //{
  8410. // CodeSequence = Code + Sequence;
  8411. //}
  8412. if (Code == "" || Code == null)
  8413. {
  8414. throw new Exception("第 " + index + " 行单据号不能为空!");
  8415. }
  8416. if (Sequence == "" || Sequence == null)
  8417. {
  8418. throw new Exception("第 " + index + " 行单据行号不能为空!");
  8419. }
  8420. if (LotNo == "" || LotNo == null)
  8421. {
  8422. throw new Exception("第 " + index + " 行条码不能为空!");
  8423. }
  8424. if (Quantity == "" || Quantity == null)
  8425. {
  8426. throw new Exception("第 " + index + " 行条码数量不能为空!");
  8427. }
  8428. //if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY))
  8429. //{
  8430. // decimal SQTY = CQuantity - CLOTQTY;
  8431. // throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量,该单据剩余可生成数量为"+ SQTY + "!");
  8432. //}
  8433. var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
  8434. sql += @"Insert INto ICSInventoryLot
  8435. ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
  8436. Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
  8437. ";
  8438. sql += @" Insert INto ICSInventoryLotDetail
  8439. ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
  8440. Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
  8441. sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
  8442. }
  8443. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8444. if (count > 0)
  8445. {
  8446. msg = "导入成功";
  8447. }
  8448. else
  8449. {
  8450. return "无有效的导入数据。";
  8451. }
  8452. return msg;
  8453. }
  8454. catch (Exception ex)
  8455. {
  8456. return ex.Message;
  8457. }
  8458. }
  8459. /// <summary>
  8460. /// 生产退料(一键生成)
  8461. /// </summary>
  8462. public int SubmitFormGDTLALL(string keyValue)
  8463. {
  8464. string sql = string.Empty;
  8465. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8466. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8467. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8468. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  8469. foreach (var item in res)
  8470. {
  8471. JObject jo = (JObject)item;
  8472. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  8473. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  8474. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  8475. decimal LOTQTY = minPackQty;
  8476. string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  8477. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  8478. string sqls = string.Empty;
  8479. string Colspan = "";
  8480. string str1 = "";
  8481. List<string> ExtensionIDList = new List<string>();
  8482. for (int i = 0; i < createPageCount; i++)
  8483. {
  8484. if (i + 1 == createPageCount)
  8485. {
  8486. if (minPackQty * createPageCount > thisCreateQty)
  8487. {
  8488. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8489. }
  8490. }
  8491. 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();
  8492. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8493. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8494. bool flag = true;
  8495. foreach (var items in ExtensionIDList)
  8496. {
  8497. if (items == Colspan + WorkPoint)
  8498. {
  8499. flag = false;
  8500. }
  8501. }
  8502. if (ExtensionID == null && flag == true)
  8503. {
  8504. str1 = Guid.NewGuid().ToString();
  8505. 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)
  8506. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8507. 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(),
  8508. MUSER, MUSERNAME, WorkPoint);
  8509. }
  8510. else if (ExtensionID != null)
  8511. {
  8512. str1 = ExtensionID.ToString();
  8513. }
  8514. ExtensionIDList.Add(Colspan + WorkPoint);
  8515. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8516. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8517. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8518. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  8519. sql += string.Format(@"
  8520. insert into ICSInventoryLot
  8521. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  8522. select
  8523. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}'
  8524. from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  8525. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  8526. sql += "\r\n";
  8527. }
  8528. }
  8529. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  8530. return count;
  8531. }
  8532. /// <summary>
  8533. /// 自动生成批次信息
  8534. /// </summary>
  8535. /// <param name="InvCode"></param>
  8536. /// <param name="WorkPoint"></param>
  8537. /// <returns></returns>
  8538. public DataTable GetVendorBatch()
  8539. {
  8540. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8541. string pre = "C" + DateTime.Now.ToString("yyyyMMdd");
  8542. //var queryParam = queryJson.ToJObject();
  8543. //List<DbParameter> parameter = new List<DbParameter>();
  8544. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  8545. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  8546. return Repository().FindTableBySql(sql.ToString());
  8547. }
  8548. public DataTable GetVendorBatchBYInvCode(string InvCode, string WorkPoint)
  8549. {
  8550. DataTable dt = new DataTable();
  8551. string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
  8552. sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
  8553. DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
  8554. string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
  8555. //var queryParam = queryJson.ToJObject();
  8556. //List<DbParameter> parameter = new List<DbParameter>();
  8557. //string dtPre = DateTime.Now.ToString("yyyyMMdd");
  8558. string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
  8559. return Repository().FindTableBySql(sql.ToString());
  8560. }
  8561. public DataTable GetReworkMo(string invcode, string Code, string SourceCode, ref Pagination jqgridparam)
  8562. {
  8563. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8564. List<DbParameter> parameter = new List<DbParameter>();
  8565. DataTable table = new DataTable();
  8566. string wherestr = "";
  8567. if (!string.IsNullOrEmpty(invcode))
  8568. {
  8569. wherestr += " and a.InvCode like '%" + invcode + "%'";
  8570. }
  8571. if (!string.IsNullOrEmpty(Code))
  8572. {
  8573. wherestr += " and a.MOCode like '%" + Code + "%'";
  8574. }
  8575. string sql = @"SELECT
  8576. a.ID,
  8577. a.MOCode,
  8578. a.Sequence,
  8579. a.InvCode,
  8580. a.Quantity,
  8581. a.Amount,
  8582. a.RCVQuantity,
  8583. a.DepCode,
  8584. a.WHCode,
  8585. a.StartDate,
  8586. a.DueDate,
  8587. a.MOType,
  8588. a.MOStatus,
  8589. a.MOMemo,
  8590. a.CreatePerson,
  8591. a.CreateDateTime,
  8592. a.ERPStatus,
  8593. a.MOID,
  8594. a.MODetailID,
  8595. a.ExtensionID,
  8596. a.MUSER,
  8597. a.MUSERName,
  8598. a.MTIME,
  8599. a.WorkPoint,
  8600. a.EATTRIBUTE1,
  8601. a.EATTRIBUTE2,
  8602. a.EATTRIBUTE3,
  8603. a.EATTRIBUTE4,
  8604. a.EATTRIBUTE5,
  8605. a.EATTRIBUTE6,
  8606. a.EATTRIBUTE7,
  8607. a.EATTRIBUTE8,
  8608. a.EATTRIBUTE9,
  8609. a.EATTRIBUTE10,
  8610. b.InvName,
  8611. b.InvStd,
  8612. b.InvUnit
  8613. from
  8614. dbo.ICSMO a
  8615. left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8616. where a.EATTRIBUTE1='1' and a.MOStatus<>'3' and a.WorkPoint = '" + WorkPoint + "'" + wherestr;
  8617. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  8618. }
  8619. //修改形态转换
  8620. public string LotReworkBind(string LotNo, string Code, string Sequence, string ExtensionID)
  8621. {
  8622. string Colspan = "";
  8623. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8624. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8625. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8626. string msg = "";
  8627. string MTDOCCode = "";
  8628. DateTime TimeNow = DateTime.Now;
  8629. string sql = string.Empty;
  8630. //修改条码绑定关系
  8631. sql += @"update dbo.ICSInventoryLotDetail set TransCode='{0}' ,TransSequence='{1}' where LotNo in({2}) and WorkPoint='{3}'";
  8632. //修改条码批次
  8633. sql += @"update dbo.ICSInventoryLot set ExtensionID='{4}' where LotNo in({2}) and WorkPoint='{3}'";
  8634. //删除条码库存
  8635. sql += @"delete dbo.ICSWareHouseLotInfo where LotNo in({2}) and WorkPoint='{3}' ";
  8636. sql = string.Format(sql, Code, Sequence, LotNo, WorkPoint, ExtensionID);
  8637. if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
  8638. {
  8639. msg = "";
  8640. }
  8641. else
  8642. {
  8643. msg = "条码重新绑定失败!";
  8644. }
  8645. return msg;
  8646. }
  8647. /// <summary>
  8648. /// 一键退库(咖博士新增需求:根据生产退料单,B2、C类物料可以实现一键退库操作),调用PDA上架接口
  8649. /// </summary>
  8650. /// <param name="IDs"></param>
  8651. /// <returns></returns>
  8652. public string PostInWareHouse(string IDs)
  8653. {
  8654. string Colspan = "";
  8655. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8656. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8657. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8658. string msg = "";
  8659. DateTime TimeNow = DateTime.Now;
  8660. string sql = string.Empty;
  8661. try
  8662. {
  8663. IDs = IDs.Substring(1, IDs.Length - 2);
  8664. //1.获取退料单中的B2和C类物料,检验是否全部生成条码,没有生成条码的单据需要先生成条码后一键退库
  8665. 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' ;
  8666. 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' ";
  8667. string whereSql2 = @"
  8668. 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' ";
  8669. DataTable dataTable1 = SqlHelper.CmdExecuteDataTable(whereSql1);
  8670. DataTable dataTable2 = SqlHelper.CmdExecuteDataTable(whereSql2);
  8671. if (dataTable1.Rows.Count <= 0)
  8672. {
  8673. throw new Exception("请先再自定义档案配置需要一键退库的物料信息!");
  8674. }
  8675. if (dataTable2.Rows.Count <= 0)
  8676. {
  8677. throw new Exception("请先再自定义档案配置需要一键退库的仓库库位信息!");
  8678. }
  8679. //判断是否全部生成条码
  8680. string isCreate = $@" SELECT a.ApplyNegCode,a.Sequence,a.Quantity,sum(isnull(c.Quantity,0)) as LotQuantity
  8681. FROM ICSMOApplyNegDetail a
  8682. left JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  8683. left JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  8684. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  8685. WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]}
  8686. GROUP BY a.Quantity,a.Id,a.ApplyNegCode,a.Sequence ";
  8687. DataTable isCreatedt = SqlHelper.CmdExecuteDataTable(isCreate);
  8688. if (isCreatedt.Rows.Count <= 0)
  8689. {
  8690. throw new Exception("请先确认退料单物料类别信息,然后确认自定义档案配置可以自动出库的物料信息!");
  8691. }
  8692. else
  8693. {
  8694. for (int i = 0; i < isCreatedt.Rows.Count; i++)
  8695. {
  8696. if (isCreatedt.Rows[i]["Quantity"].ToDecimal() != isCreatedt.Rows[i]["LotQuantity"].ToDecimal())
  8697. {
  8698. throw new Exception($"请先将单据:{isCreatedt.Rows[i]["ApplyNegCode"]},行号:{isCreatedt.Rows[i]["Sequence"]} ,全部生成条码!");
  8699. }
  8700. }
  8701. }
  8702. //查询需要入库的条码信息
  8703. sql = $@" SELECT a.ApplyNegCode,a.Sequence,c.LotNo,c.Quantity,c.InvCode FROM ICSMOApplyNegDetail a
  8704. INNER JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
  8705. INNER JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
  8706. LEFT JOIN ICSWareHouseLotInfo d ON d.LotNo=c.LotNo AND d.WorkPoint=c.WorkPoint
  8707. INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
  8708. WHERE
  8709. a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} AND
  8710. d.ID is null ";
  8711. //2.查询退料的条码和退料的条码数量,拼接参数,调用PDA接口
  8712. var getSql = SqlHelper.CmdExecuteDataTable(sql);
  8713. if (getSql.Rows.Count > 0)
  8714. {
  8715. List<LOTStockUpCreateIModel> models = new List<LOTStockUpCreateIModel>();
  8716. LOTStockUpCreateIModel model = new LOTStockUpCreateIModel
  8717. {
  8718. User = MUSER,
  8719. MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"),
  8720. WorkPoint = WorkPoint,
  8721. TransType = "生产退料-生产退料单"
  8722. };
  8723. model.detail = new List<LOTStockUpCreateIModelList>();
  8724. for (int i = 0; i < getSql.Rows.Count; i++)
  8725. {
  8726. LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList
  8727. {
  8728. LotNo = getSql.Rows[i]["LotNo"].ToString(),
  8729. WarehouseCode = dataTable2.Rows[0]["F_Define1"].ToString(),
  8730. LocationCode = dataTable2.Rows[0]["F_Define2"].ToString(),
  8731. TransCode = getSql.Rows[i]["ApplyNegCode"].ToString(),
  8732. TransSequence = getSql.Rows[i]["Sequence"].ToString(),
  8733. Quantity = getSql.Rows[i]["Quantity"].ToString(),
  8734. InvCode = getSql.Rows[i]["InvCode"].ToString()
  8735. };
  8736. model.detail.Add(detail);
  8737. }
  8738. models.Add(model);
  8739. var input = models.ToJson();
  8740. string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create";
  8741. string result = HttpPost(APIURL, input);
  8742. Result res = result.ToObject<Result>();
  8743. if (!res.Success)
  8744. {
  8745. throw new Exception(res.Message);
  8746. }
  8747. msg = "";
  8748. }
  8749. return msg;
  8750. }
  8751. catch (Exception ex)
  8752. {
  8753. throw new Exception(ex.Message);
  8754. }
  8755. }
  8756. /// <summary>
  8757. /// 红字销售出库单生成条码列表数据
  8758. /// </summary>
  8759. /// <param name="queryJson"></param>
  8760. /// <param name="jqgridparam"></param>
  8761. /// <returns></returns>
  8762. public DataTable GetGridJsonWMSSSD(string queryJson, ref Pagination jqgridparam)
  8763. {
  8764. DataTable dt = new DataTable();
  8765. var queryParam = queryJson.ToJObject();
  8766. List<DbParameter> parameter = new List<DbParameter>();
  8767. object Figure = GetDecimalDigits();
  8768. #region [SQL]
  8769. 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,
  8770. CAST(c.LOTQTY AS DECIMAL(38,6)) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
  8771. , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
  8772. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  8773. ,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,
  8774. a.EATTRIBUTE9,a.EATTRIBUTE10
  8775. from ICSSSD a
  8776. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  8777. left join (
  8778. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  8779. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='24'
  8780. where isnull(ee.EATTRIBUTE1,'')=''
  8781. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  8782. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  8783. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  8784. where a.Type='2' and a.Status='1' ";
  8785. sql = string.Format(sql, Figure);
  8786. #endregion
  8787. if (!string.IsNullOrWhiteSpace(queryJson))
  8788. {
  8789. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  8790. {
  8791. sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' ";
  8792. }
  8793. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  8794. {
  8795. sql += " and a.CusCode like '%" + queryParam["VenCode"].ToString() + "%' ";
  8796. }
  8797. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  8798. {
  8799. sql += " and a.CusName like '%" + queryParam["VenName"].ToString() + "%' ";
  8800. }
  8801. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  8802. {
  8803. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  8804. }
  8805. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  8806. {
  8807. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  8808. }
  8809. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  8810. {
  8811. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  8812. }
  8813. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  8814. {
  8815. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  8816. }
  8817. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  8818. {
  8819. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  8820. }
  8821. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  8822. {
  8823. sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  8824. }
  8825. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  8826. {
  8827. string POStatus = queryParam["POStatus"].ToString();
  8828. if (POStatus == "0")
  8829. {
  8830. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  8831. }
  8832. else if (POStatus == "1")
  8833. {
  8834. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0";
  8835. }
  8836. else
  8837. {
  8838. sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
  8839. }
  8840. }
  8841. if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
  8842. {
  8843. string WHStatus = queryParam["WHStatus"].ToString();
  8844. if (WHStatus == "0")
  8845. {
  8846. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  8847. }
  8848. else if (WHStatus == "1")
  8849. {
  8850. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)>0";
  8851. }
  8852. else
  8853. {
  8854. sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)=0";
  8855. }
  8856. }
  8857. }
  8858. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  8859. {
  8860. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  8861. }
  8862. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  8863. {
  8864. sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  8865. }
  8866. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  8867. }
  8868. /// <summary>
  8869. /// 红字销售出库单生成条码
  8870. /// </summary>
  8871. /// <param name="SDNCode"></param>
  8872. /// <param name="Sequence"></param>
  8873. /// <param name="keyValue"></param>
  8874. /// <param name="WorkPoint"></param>
  8875. /// <param name="AMEnable"></param>
  8876. /// <returns></returns>
  8877. public int SubmitFormSSD(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  8878. {
  8879. var queryParam = keyValue.ToJObject();
  8880. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  8881. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  8882. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  8883. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  8884. decimal LOTQTY = minPackQty;
  8885. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  8886. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  8887. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  8888. string sql = string.Empty;
  8889. //string VendorLot = queryParam["VendorLot"].ToString();
  8890. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  8891. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  8892. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  8893. string InvCode = queryParam["ClassCode"].ToString();
  8894. string sqls = string.Empty;
  8895. string Colspan = "";
  8896. string str1 = "";
  8897. string LotNo = string.Empty;
  8898. List<string> ExtensionIDList = new List<string>();
  8899. #region 装箱的功能
  8900. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  8901. string VenCode = queryParam["VenCode"].ToString();
  8902. int PackCount = 0;//每箱放的数量
  8903. int Pack_YuShu = 0;//需要平摊的数量
  8904. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  8905. List<PackModel> List_Pack = new List<PackModel>();
  8906. int ZQty = 0;
  8907. if (createPackCount > 0)
  8908. {
  8909. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  8910. if (Pack_YuShu == 0)
  8911. {
  8912. PackCount = (createPageCount / createPackCount);
  8913. }
  8914. else
  8915. {
  8916. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  8917. }
  8918. for (int jj = 0; jj < createPackCount; jj++)
  8919. {
  8920. object CARID = Guid.NewGuid();
  8921. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  8922. sql += @" INSERT INTO dbo.ICSContainer
  8923. ( ID,ContainerCode ,
  8924. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  8925. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  8926. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  8927. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  8928. PackModel PP = new PackModel();
  8929. PP.ID = CARID.ToString();
  8930. PP.PackCode = Carton;
  8931. if (jj < Pack_YuShu)
  8932. {
  8933. PP.FristBarIndex = ZQty;
  8934. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  8935. }
  8936. else
  8937. {
  8938. PP.FristBarIndex = ZQty;
  8939. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  8940. }
  8941. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  8942. List_Pack.Add(PP);
  8943. }
  8944. }
  8945. #endregion
  8946. for (int i = 0; i < createPageCount; i++)
  8947. {
  8948. if (i + 1 == createPageCount)
  8949. {
  8950. if (minPackQty * createPageCount > thisCreateQty)
  8951. {
  8952. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  8953. }
  8954. }
  8955. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  8956. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  8957. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  8958. bool flag = true;
  8959. foreach (var item in ExtensionIDList)
  8960. {
  8961. if (item == Colspan + WorkPoint)
  8962. {
  8963. flag = false;
  8964. }
  8965. }
  8966. if (ExtensionID == null && flag == true)
  8967. {
  8968. str1 = Guid.NewGuid().ToString();
  8969. 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)
  8970. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  8971. 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(),
  8972. MUSER, MUSERNAME, WorkPoints);
  8973. }
  8974. else if (ExtensionID != null)
  8975. {
  8976. str1 = ExtensionID.ToString();
  8977. }
  8978. ExtensionIDList.Add(Colspan + WorkPoint);
  8979. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  8980. if (AMEnable == "true")
  8981. {
  8982. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  8983. }
  8984. else
  8985. {
  8986. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  8987. }
  8988. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  8989. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  8990. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  8991. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  8992. //{
  8993. sql += string.Format(@"
  8994. insert into ICSInventoryLot
  8995. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  8996. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  8997. select
  8998. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  8999. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9000. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9001. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9002. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9003. sql += "\r\n";
  9004. //装箱的功能
  9005. if (List_Pack.Count > 0)
  9006. {
  9007. PackModel mm = new PackModel();
  9008. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9009. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9010. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9011. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9012. }
  9013. //}
  9014. }
  9015. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9016. return count;
  9017. }
  9018. /// <summary>
  9019. /// 红字销售出库单生成条码
  9020. /// </summary>
  9021. /// <param name="SDNCode"></param>
  9022. /// <param name="Sequence"></param>
  9023. /// <param name="keyValue"></param>
  9024. /// <param name="WorkPoint"></param>
  9025. /// <param name="AMEnable"></param>
  9026. /// <returns></returns>
  9027. public int SubmitFormSSDNew(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
  9028. {
  9029. var queryParam = keyValue.ToJObject();
  9030. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9031. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9032. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9033. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9034. List<decimal> lotQtys = new List<decimal>();
  9035. foreach (var jLotno in jLotnos)
  9036. {
  9037. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9038. lotQtys.Add(qty);
  9039. }
  9040. int createPageCount = lotQtys.Count();
  9041. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  9042. //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
  9043. string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
  9044. string sql = string.Empty;
  9045. //string VendorLot = queryParam["VendorLot"].ToString();
  9046. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9047. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9048. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9049. string InvCode = queryParam["ClassCode"].ToString();
  9050. string sqls = string.Empty;
  9051. string Colspan = "";
  9052. string str1 = "";
  9053. string LotNo = string.Empty;
  9054. List<string> ExtensionIDList = new List<string>();
  9055. #region 装箱的功能
  9056. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9057. string VenCode = queryParam["VenCode"].ToString();
  9058. int PackCount = 0;//每箱放的数量
  9059. int Pack_YuShu = 0;//需要平摊的数量
  9060. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9061. List<PackModel> List_Pack = new List<PackModel>();
  9062. int ZQty = 0;
  9063. if (createPackCount > 0)
  9064. {
  9065. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9066. if (Pack_YuShu == 0)
  9067. {
  9068. PackCount = (createPageCount / createPackCount);
  9069. }
  9070. else
  9071. {
  9072. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9073. }
  9074. for (int jj = 0; jj < createPackCount; jj++)
  9075. {
  9076. object CARID = Guid.NewGuid();
  9077. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9078. sql += @" INSERT INTO dbo.ICSContainer
  9079. ( ID,ContainerCode ,
  9080. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9081. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9082. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9083. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9084. PackModel PP = new PackModel();
  9085. PP.ID = CARID.ToString();
  9086. PP.PackCode = Carton;
  9087. if (jj < Pack_YuShu)
  9088. {
  9089. PP.FristBarIndex = ZQty;
  9090. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9091. }
  9092. else
  9093. {
  9094. PP.FristBarIndex = ZQty;
  9095. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9096. }
  9097. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9098. List_Pack.Add(PP);
  9099. }
  9100. }
  9101. #endregion
  9102. for (int i = 0; i < createPageCount; i++)
  9103. {
  9104. var LOTQTY = lotQtys[i];
  9105. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  9106. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9107. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9108. bool flag = true;
  9109. foreach (var item in ExtensionIDList)
  9110. {
  9111. if (item == Colspan + WorkPoint)
  9112. {
  9113. flag = false;
  9114. }
  9115. }
  9116. if (ExtensionID == null && flag == true)
  9117. {
  9118. str1 = Guid.NewGuid().ToString();
  9119. 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)
  9120. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9121. 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(),
  9122. MUSER, MUSERNAME, WorkPoints);
  9123. }
  9124. else if (ExtensionID != null)
  9125. {
  9126. str1 = ExtensionID.ToString();
  9127. }
  9128. ExtensionIDList.Add(Colspan + WorkPoint);
  9129. //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
  9130. if (AMEnable == "true")
  9131. {
  9132. LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
  9133. }
  9134. else
  9135. {
  9136. LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9137. }
  9138. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9139. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9140. LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9141. //if (SqlHelper.ExecuteNonQuery(sqls) > 0)
  9142. //{
  9143. sql += string.Format(@"
  9144. insert into ICSInventoryLot
  9145. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
  9146. ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9147. select
  9148. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9149. from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
  9150. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9151. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9152. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9153. sql += "\r\n";
  9154. //装箱的功能
  9155. if (List_Pack.Count > 0)
  9156. {
  9157. PackModel mm = new PackModel();
  9158. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9159. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9160. ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
  9161. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9162. }
  9163. //}
  9164. }
  9165. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9166. return count;
  9167. }
  9168. /// <summary>
  9169. /// 红字销售出库单查询
  9170. /// </summary>
  9171. /// <param name="SSDCode"></param>
  9172. /// <param name="Sequence"></param>
  9173. /// <param name="WorkPoint"></param>
  9174. /// <returns></returns>
  9175. public DataTable GetSubGridJsonSSDByCreate(string SSDCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
  9176. {
  9177. DataTable dt = new DataTable();
  9178. object Figure = GetDecimalDigits();
  9179. List<DbParameter> parameter = new List<DbParameter>();
  9180. string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn026', " + Quantity + ",1,3,'')";
  9181. object Num = SqlHelper.ExecuteScalar(SeachNum);
  9182. 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,
  9183. CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) as thisCreateQty,
  9184. 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' 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
  9185. ,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,
  9186. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  9187. from ICSSSD a
  9188. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9189. left join (
  9190. select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
  9191. left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='24'
  9192. where isnull(a.EATTRIBUTE1,'')=''
  9193. group by b.TransCode,b.TransSequence
  9194. ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence
  9195. left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
  9196. WHERE a.Status='1'
  9197. and a.Type='2' and a.SSDCode='" + SSDCode + "' and a.Sequence='" + Sequence + "'";
  9198. sql += " and a.WorkPoint='" + WorkPoint + "'";
  9199. sql = string.Format(sql, Figure);
  9200. return Repository().FindTableBySql(sql.ToString());
  9201. }
  9202. /// <summary>
  9203. /// 派纳 线边仓调拨申请单生成条码
  9204. /// </summary>
  9205. /// <param name="queryJson"></param>
  9206. /// <param name="jqgridparam"></param>
  9207. /// <returns></returns>
  9208. public DataTable GetGridJsonTransferApplicationPN(string queryJson, ref Pagination jqgridparam)
  9209. {
  9210. DataTable dt = new DataTable();
  9211. var queryParam = queryJson.ToJObject();
  9212. List<DbParameter> parameter = new List<DbParameter>();
  9213. object Figure = GetDecimalDigits();
  9214. #region [SQL]
  9215. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9216. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9217. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9218. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9219. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9220. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9221. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9222. ,c.LOTQTY
  9223. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9224. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9225. ,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,
  9226. a.EATTRIBUTE9,a.EATTRIBUTE10
  9227. from ICSTransferApplication a
  9228. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9229. left join (
  9230. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9231. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202'
  9232. where isnull(ee.EATTRIBUTE1,'')=''
  9233. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9234. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9235. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9236. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9237. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9238. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9239. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9240. where 1 = 1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9241. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9242. where A.F_EnCode='WorkLineWHConfig')";
  9243. sql = string.Format(sql, Figure);
  9244. #endregion
  9245. if (!string.IsNullOrWhiteSpace(queryJson))
  9246. {
  9247. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9248. {
  9249. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9250. }
  9251. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9252. {
  9253. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9254. }
  9255. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9256. {
  9257. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9258. }
  9259. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9260. {
  9261. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9262. }
  9263. }
  9264. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9265. {
  9266. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9267. }
  9268. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9269. //{
  9270. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9271. //}
  9272. 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,
  9273. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9274. 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
  9275. where 1=1 ";
  9276. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9277. {
  9278. string POStatus = queryParam["POStatus"].ToString();
  9279. if (POStatus == "0")
  9280. {
  9281. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9282. }
  9283. else if (POStatus == "1")
  9284. {
  9285. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9286. }
  9287. else
  9288. {
  9289. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9290. }
  9291. }
  9292. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9293. }
  9294. /// <summary>
  9295. /// 派纳 线边仓一步调入单生成条码
  9296. /// </summary>
  9297. /// <param name="queryJson"></param>
  9298. /// <param name="jqgridparam"></param>
  9299. /// <returns></returns>
  9300. public DataTable GetGridJsonOneSetpTransPN(string queryJson, ref Pagination jqgridparam)
  9301. {
  9302. DataTable dt = new DataTable();
  9303. var queryParam = queryJson.ToJObject();
  9304. List<DbParameter> parameter = new List<DbParameter>();
  9305. object Figure = GetDecimalDigits();
  9306. #region [SQL]
  9307. string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
  9308. ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
  9309. a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
  9310. a.InvCode, b.InvName,b.InvStd,b.InvUnit,
  9311. CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
  9312. ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
  9313. ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
  9314. ,c.LOTQTY
  9315. ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
  9316. ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
  9317. ,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,
  9318. a.EATTRIBUTE9,a.EATTRIBUTE10
  9319. from ICSTransfer a
  9320. left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  9321. left join (
  9322. select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
  9323. left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='203'
  9324. where isnull(ee.EATTRIBUTE1,'')=''
  9325. group by mm.TransCode,mm.TransSequence,ee.WorkPoint
  9326. ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
  9327. left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
  9328. left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
  9329. left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
  9330. left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
  9331. left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
  9332. where 1 = 1 and a.Type=1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
  9333. LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
  9334. where A.F_EnCode='WorkLineWHConfig')";
  9335. sql = string.Format(sql, Figure);
  9336. #endregion
  9337. if (!string.IsNullOrWhiteSpace(queryJson))
  9338. {
  9339. if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
  9340. {
  9341. sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
  9342. }
  9343. if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
  9344. {
  9345. sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
  9346. }
  9347. if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
  9348. {
  9349. sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
  9350. }
  9351. if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
  9352. {
  9353. sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
  9354. }
  9355. if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
  9356. {
  9357. sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
  9358. }
  9359. if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
  9360. {
  9361. sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
  9362. }
  9363. if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
  9364. {
  9365. sql += " and a.FromWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
  9366. }
  9367. }
  9368. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  9369. {
  9370. sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
  9371. }
  9372. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
  9373. //{
  9374. // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
  9375. //}
  9376. 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,
  9377. a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
  9378. 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
  9379. where 1=1 ";
  9380. if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
  9381. {
  9382. string POStatus = queryParam["POStatus"].ToString();
  9383. if (POStatus == "0")
  9384. {
  9385. //sql += " and a.Quantity=ISNULL(c.LotQty,0)";
  9386. }
  9387. else if (POStatus == "1")
  9388. {
  9389. sql += " and Quantity-ISNULL(LOTQTY,0)=0";
  9390. }
  9391. else
  9392. {
  9393. sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
  9394. }
  9395. }
  9396. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  9397. }
  9398. /// <summary>
  9399. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9400. /// </summary>
  9401. /// <param name="TransferNO"></param>
  9402. /// <param name="Sequence"></param>
  9403. /// <param name="keyValue"></param>
  9404. /// <param name="WorkPoint"></param>
  9405. /// <returns></returns>
  9406. public int SubmitFormTransferApplicatioPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9407. {
  9408. var queryParam = keyValue.ToJObject();
  9409. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9410. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9411. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9412. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9413. decimal LOTQTY = minPackQty;
  9414. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9415. string sql = string.Empty;
  9416. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9417. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9418. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9419. string Identification = Guid.NewGuid().ToString();
  9420. string sqls = string.Empty;
  9421. string Colspan = "";
  9422. string str1 = "";
  9423. List<string> ExtensionIDList = new List<string>();
  9424. #region 装箱的功能
  9425. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9426. string VenCode = queryParam["VenCode"].ToString();
  9427. int PackCount = 0;//每箱放的数量
  9428. int Pack_YuShu = 0;//需要平摊的数量
  9429. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9430. List<PackModel> List_Pack = new List<PackModel>();
  9431. int ZQty = 0;
  9432. if (createPackCount > 0)
  9433. {
  9434. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9435. if (Pack_YuShu == 0)
  9436. {
  9437. PackCount = (createPageCount / createPackCount);
  9438. }
  9439. else
  9440. {
  9441. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9442. }
  9443. for (int jj = 0; jj < createPackCount; jj++)
  9444. {
  9445. object CARID = Guid.NewGuid();
  9446. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9447. sql += @" INSERT INTO dbo.ICSContainer
  9448. ( ID,ContainerCode ,
  9449. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9450. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9451. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9452. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9453. PackModel PP = new PackModel();
  9454. PP.ID = CARID.ToString();
  9455. PP.PackCode = Carton;
  9456. if (jj < Pack_YuShu)
  9457. {
  9458. PP.FristBarIndex = ZQty;
  9459. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9460. }
  9461. else
  9462. {
  9463. PP.FristBarIndex = ZQty;
  9464. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9465. }
  9466. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9467. List_Pack.Add(PP);
  9468. }
  9469. }
  9470. #endregion
  9471. for (int i = 0; i < createPageCount; i++)
  9472. {
  9473. if (i + 1 == createPageCount)
  9474. {
  9475. if (minPackQty * createPageCount > thisCreateQty)
  9476. {
  9477. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9478. }
  9479. }
  9480. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  9481. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9482. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9483. bool flag = true;
  9484. foreach (var item in ExtensionIDList)
  9485. {
  9486. if (item == Colspan + WorkPoint)
  9487. {
  9488. flag = false;
  9489. }
  9490. }
  9491. if (ExtensionID == null && flag == true)
  9492. {
  9493. str1 = Guid.NewGuid().ToString();
  9494. 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)
  9495. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9496. 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(),
  9497. MUSER, MUSERNAME, WorkPoints);
  9498. }
  9499. else if (ExtensionID != null)
  9500. {
  9501. str1 = ExtensionID.ToString();
  9502. }
  9503. ExtensionIDList.Add(Colspan + WorkPoint);
  9504. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9505. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9506. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9507. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9508. sql += string.Format(@"
  9509. insert into ICSInventoryLot
  9510. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9511. select
  9512. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9513. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9514. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9515. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9516. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9517. //派纳调拨申请单生成的条码需要自动入库
  9518. sql += string.Format(@"
  9519. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9520. SELECT NEWID(),a.LotNo
  9521. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9522. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9523. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9524. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9525. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9526. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9527. FROM ICSInventoryLot a
  9528. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9529. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9530. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9531. sql += string.Format(@"
  9532. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9533. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9534. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9535. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9536. MTIME,WorkPoint)
  9537. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9538. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9539. '','0','6','75','1',D.TransferID,
  9540. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9541. SYSDATETIME() ,a.WorkPoint
  9542. FROM ICSInventoryLot a
  9543. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9544. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9545. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9546. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9547. LotNo, WorkPoint, Identification);
  9548. sql += "\r\n";
  9549. //装箱的功能
  9550. if (List_Pack.Count > 0)
  9551. {
  9552. PackModel mm = new PackModel();
  9553. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9554. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9555. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9556. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9557. }
  9558. }
  9559. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9560. return count;
  9561. }
  9562. /// <summary>
  9563. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库)
  9564. /// </summary>
  9565. /// <param name="TransferNO"></param>
  9566. /// <param name="Sequence"></param>
  9567. /// <param name="keyValue"></param>
  9568. /// <param name="WorkPoint"></param>
  9569. /// <returns></returns>
  9570. public int SubmitFormOneStepTransPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9571. {
  9572. var queryParam = keyValue.ToJObject();
  9573. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9574. int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
  9575. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9576. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9577. decimal LOTQTY = minPackQty;
  9578. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9579. string sql = string.Empty;
  9580. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9581. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9582. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9583. string Identification = Guid.NewGuid().ToString();
  9584. string sqls = string.Empty;
  9585. string Colspan = "";
  9586. string str1 = "";
  9587. List<string> ExtensionIDList = new List<string>();
  9588. #region 装箱的功能
  9589. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9590. string VenCode = queryParam["VenCode"].ToString();
  9591. int PackCount = 0;//每箱放的数量
  9592. int Pack_YuShu = 0;//需要平摊的数量
  9593. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9594. List<PackModel> List_Pack = new List<PackModel>();
  9595. int ZQty = 0;
  9596. if (createPackCount > 0)
  9597. {
  9598. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9599. if (Pack_YuShu == 0)
  9600. {
  9601. PackCount = (createPageCount / createPackCount);
  9602. }
  9603. else
  9604. {
  9605. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9606. }
  9607. for (int jj = 0; jj < createPackCount; jj++)
  9608. {
  9609. object CARID = Guid.NewGuid();
  9610. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9611. sql += @" INSERT INTO dbo.ICSContainer
  9612. ( ID,ContainerCode ,
  9613. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9614. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9615. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9616. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9617. PackModel PP = new PackModel();
  9618. PP.ID = CARID.ToString();
  9619. PP.PackCode = Carton;
  9620. if (jj < Pack_YuShu)
  9621. {
  9622. PP.FristBarIndex = ZQty;
  9623. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9624. }
  9625. else
  9626. {
  9627. PP.FristBarIndex = ZQty;
  9628. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9629. }
  9630. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9631. List_Pack.Add(PP);
  9632. }
  9633. }
  9634. #endregion
  9635. for (int i = 0; i < createPageCount; i++)
  9636. {
  9637. if (i + 1 == createPageCount)
  9638. {
  9639. if (minPackQty * createPageCount > thisCreateQty)
  9640. {
  9641. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  9642. }
  9643. }
  9644. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  9645. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9646. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9647. bool flag = true;
  9648. foreach (var item in ExtensionIDList)
  9649. {
  9650. if (item == Colspan + WorkPoint)
  9651. {
  9652. flag = false;
  9653. }
  9654. }
  9655. if (ExtensionID == null && flag == true)
  9656. {
  9657. str1 = Guid.NewGuid().ToString();
  9658. 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)
  9659. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9660. 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(),
  9661. MUSER, MUSERNAME, WorkPoints);
  9662. }
  9663. else if (ExtensionID != null)
  9664. {
  9665. str1 = ExtensionID.ToString();
  9666. }
  9667. ExtensionIDList.Add(Colspan + WorkPoint);
  9668. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9669. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9670. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9671. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9672. sql += string.Format(@"
  9673. insert into ICSInventoryLot
  9674. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9675. select
  9676. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9677. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9678. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
  9679. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9680. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9681. //派纳调拨申请单生成的条码需要自动入库
  9682. sql += string.Format(@"
  9683. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9684. SELECT NEWID(),a.LotNo
  9685. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9686. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9687. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9688. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9689. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9690. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9691. FROM ICSInventoryLot a
  9692. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9693. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9694. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9695. sql += string.Format(@"
  9696. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9697. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9698. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9699. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9700. MTIME,WorkPoint)
  9701. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9702. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9703. '','0','6','75','1',D.TransferID,
  9704. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9705. SYSDATETIME() ,a.WorkPoint
  9706. FROM ICSInventoryLot a
  9707. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9708. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9709. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9710. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9711. LotNo, WorkPoint, Identification);
  9712. sql += "\r\n";
  9713. //装箱的功能
  9714. if (List_Pack.Count > 0)
  9715. {
  9716. PackModel mm = new PackModel();
  9717. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9718. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9719. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9720. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9721. }
  9722. }
  9723. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9724. return count;
  9725. }
  9726. /// <summary>
  9727. /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
  9728. /// </summary>
  9729. /// <param name="TransferNO"></param>
  9730. /// <param name="Sequence"></param>
  9731. /// <param name="keyValue"></param>
  9732. /// <param name="WorkPoint"></param>
  9733. /// <returns></returns>
  9734. public int SubmitFormTransferApplicatioPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9735. {
  9736. var queryParam = keyValue.ToJObject();
  9737. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9738. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9739. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9740. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9741. List<decimal> lotQtys = new List<decimal>();
  9742. foreach (var jLotno in jLotnos)
  9743. {
  9744. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9745. lotQtys.Add(qty);
  9746. }
  9747. int createPageCount = lotQtys.Count();
  9748. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9749. string sql = string.Empty;
  9750. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9751. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9752. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9753. string Identification = Guid.NewGuid().ToString();
  9754. string sqls = string.Empty;
  9755. string Colspan = "";
  9756. string str1 = "";
  9757. List<string> ExtensionIDList = new List<string>();
  9758. #region 装箱的功能
  9759. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9760. string VenCode = queryParam["VenCode"].ToString();
  9761. int PackCount = 0;//每箱放的数量
  9762. int Pack_YuShu = 0;//需要平摊的数量
  9763. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9764. List<PackModel> List_Pack = new List<PackModel>();
  9765. int ZQty = 0;
  9766. if (createPackCount > 0)
  9767. {
  9768. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9769. if (Pack_YuShu == 0)
  9770. {
  9771. PackCount = (createPageCount / createPackCount);
  9772. }
  9773. else
  9774. {
  9775. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9776. }
  9777. for (int jj = 0; jj < createPackCount; jj++)
  9778. {
  9779. object CARID = Guid.NewGuid();
  9780. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9781. sql += @" INSERT INTO dbo.ICSContainer
  9782. ( ID,ContainerCode ,
  9783. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9784. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9785. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9786. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9787. PackModel PP = new PackModel();
  9788. PP.ID = CARID.ToString();
  9789. PP.PackCode = Carton;
  9790. if (jj < Pack_YuShu)
  9791. {
  9792. PP.FristBarIndex = ZQty;
  9793. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9794. }
  9795. else
  9796. {
  9797. PP.FristBarIndex = ZQty;
  9798. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9799. }
  9800. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9801. List_Pack.Add(PP);
  9802. }
  9803. }
  9804. #endregion
  9805. for (int i = 0; i < createPageCount; i++)
  9806. {
  9807. var LOTQTY = lotQtys[i];
  9808. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  9809. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9810. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9811. bool flag = true;
  9812. foreach (var item in ExtensionIDList)
  9813. {
  9814. if (item == Colspan + WorkPoint)
  9815. {
  9816. flag = false;
  9817. }
  9818. }
  9819. if (ExtensionID == null && flag == true)
  9820. {
  9821. str1 = Guid.NewGuid().ToString();
  9822. 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)
  9823. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9824. 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(),
  9825. MUSER, MUSERNAME, WorkPoints);
  9826. }
  9827. else if (ExtensionID != null)
  9828. {
  9829. str1 = ExtensionID.ToString();
  9830. }
  9831. ExtensionIDList.Add(Colspan + WorkPoint);
  9832. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9833. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9834. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9835. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  9836. sql += string.Format(@"
  9837. insert into ICSInventoryLot
  9838. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  9839. select
  9840. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  9841. from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  9842. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  9843. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  9844. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  9845. //派纳调拨申请单生成的条码需要自动入库
  9846. sql += string.Format(@"
  9847. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  9848. SELECT NEWID(),a.LotNo
  9849. ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  9850. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  9851. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  9852. INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  9853. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  9854. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  9855. FROM ICSInventoryLot a
  9856. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9857. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9858. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  9859. sql += string.Format(@"
  9860. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  9861. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  9862. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  9863. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  9864. MTIME,WorkPoint)
  9865. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  9866. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  9867. '','0','6','75','1',D.TransferID,
  9868. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  9869. SYSDATETIME() ,a.WorkPoint
  9870. FROM ICSInventoryLot a
  9871. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  9872. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  9873. INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  9874. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  9875. LotNo, WorkPoint, Identification);
  9876. sql += "\r\n";
  9877. //装箱的功能
  9878. if (List_Pack.Count > 0)
  9879. {
  9880. PackModel mm = new PackModel();
  9881. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  9882. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  9883. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  9884. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  9885. }
  9886. }
  9887. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  9888. return count;
  9889. }
  9890. /// <summary>
  9891. /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库---非规则生成条码)
  9892. /// </summary>
  9893. /// <param name="TransferNO"></param>
  9894. /// <param name="Sequence"></param>
  9895. /// <param name="keyValue"></param>
  9896. /// <param name="WorkPoint"></param>
  9897. /// <returns></returns>
  9898. public int SubmitFormOneStepTransferPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
  9899. {
  9900. var queryParam = keyValue.ToJObject();
  9901. string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  9902. decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
  9903. decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
  9904. JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
  9905. List<decimal> lotQtys = new List<decimal>();
  9906. foreach (var jLotno in jLotnos)
  9907. {
  9908. decimal qty = Convert.ToDecimal(jLotno["qty"]);
  9909. lotQtys.Add(qty);
  9910. }
  9911. int createPageCount = lotQtys.Count();
  9912. string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
  9913. string sql = string.Empty;
  9914. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  9915. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  9916. string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
  9917. string Identification = Guid.NewGuid().ToString();
  9918. string sqls = string.Empty;
  9919. string Colspan = "";
  9920. string str1 = "";
  9921. List<string> ExtensionIDList = new List<string>();
  9922. #region 装箱的功能
  9923. int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
  9924. string VenCode = queryParam["VenCode"].ToString();
  9925. int PackCount = 0;//每箱放的数量
  9926. int Pack_YuShu = 0;//需要平摊的数量
  9927. string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
  9928. List<PackModel> List_Pack = new List<PackModel>();
  9929. int ZQty = 0;
  9930. if (createPackCount > 0)
  9931. {
  9932. Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
  9933. if (Pack_YuShu == 0)
  9934. {
  9935. PackCount = (createPageCount / createPackCount);
  9936. }
  9937. else
  9938. {
  9939. PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
  9940. }
  9941. for (int jj = 0; jj < createPackCount; jj++)
  9942. {
  9943. object CARID = Guid.NewGuid();
  9944. string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
  9945. sql += @" INSERT INTO dbo.ICSContainer
  9946. ( ID,ContainerCode ,
  9947. MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,
  9948. InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
  9949. VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint +
  9950. "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
  9951. PackModel PP = new PackModel();
  9952. PP.ID = CARID.ToString();
  9953. PP.PackCode = Carton;
  9954. if (jj < Pack_YuShu)
  9955. {
  9956. PP.FristBarIndex = ZQty;
  9957. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
  9958. }
  9959. else
  9960. {
  9961. PP.FristBarIndex = ZQty;
  9962. PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
  9963. }
  9964. ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
  9965. List_Pack.Add(PP);
  9966. }
  9967. }
  9968. #endregion
  9969. for (int i = 0; i < createPageCount; i++)
  9970. {
  9971. var LOTQTY = lotQtys[i];
  9972. Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
  9973. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  9974. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  9975. bool flag = true;
  9976. foreach (var item in ExtensionIDList)
  9977. {
  9978. if (item == Colspan + WorkPoint)
  9979. {
  9980. flag = false;
  9981. }
  9982. }
  9983. if (ExtensionID == null && flag == true)
  9984. {
  9985. str1 = Guid.NewGuid().ToString();
  9986. 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)
  9987. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  9988. 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(),
  9989. MUSER, MUSERNAME, WorkPoints);
  9990. }
  9991. else if (ExtensionID != null)
  9992. {
  9993. str1 = ExtensionID.ToString();
  9994. }
  9995. ExtensionIDList.Add(Colspan + WorkPoint);
  9996. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  9997. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  9998. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  9999. LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
  10000. sql += string.Format(@"
  10001. insert into ICSInventoryLot
  10002. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
  10003. select
  10004. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
  10005. from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10006. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString()
  10007. , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
  10008. queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
  10009. //派纳调拨申请单生成的条码需要自动入库
  10010. sql += string.Format(@"
  10011. INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
  10012. SELECT NEWID(),a.LotNo
  10013. ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
  10014. ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
  10015. INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
  10016. INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
  10017. WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
  10018. ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
  10019. FROM ICSInventoryLot a
  10020. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10021. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10022. LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
  10023. sql += string.Format(@"
  10024. INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
  10025. FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
  10026. Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
  10027. ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
  10028. MTIME,WorkPoint)
  10029. SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
  10030. '','',c.WarehouseCode,c.LocationCode,c.Quantity,
  10031. '','0','6','75','1',D.TransferID,
  10032. D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
  10033. SYSDATETIME() ,a.WorkPoint
  10034. FROM ICSInventoryLot a
  10035. INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
  10036. INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
  10037. INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
  10038. WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
  10039. LotNo, WorkPoint, Identification);
  10040. sql += "\r\n";
  10041. //装箱的功能
  10042. if (List_Pack.Count > 0)
  10043. {
  10044. PackModel mm = new PackModel();
  10045. mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
  10046. sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
  10047. ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
  10048. Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
  10049. }
  10050. }
  10051. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10052. return count;
  10053. }
  10054. /// <summary>
  10055. /// 派纳 线边仓调拨申请单获取单据信息
  10056. /// </summary>
  10057. /// <param name="TransferNO"></param>
  10058. /// <param name="Sequence"></param>
  10059. /// <param name="WorkPoint"></param>
  10060. /// <returns></returns>
  10061. public DataTable GetSubGridJsonTransferApplicationByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10062. {
  10063. DataTable dt = new DataTable();
  10064. object Figure = GetDecimalDigits();
  10065. List<DbParameter> parameter = new List<DbParameter>();
  10066. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10067. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10068. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10069. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10070. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10071. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10072. , 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 ,
  10073. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10074. FROM ICSTransferApplication a
  10075. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10076. 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
  10077. END AS Quantity
  10078. FROM ICSTransferApplication a
  10079. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  10080. AND a.WorkPoint= b.WorkPoint
  10081. ) xx ON xx.Id= a.Id
  10082. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10083. FROM ICSInventoryLot a
  10084. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
  10085. WHERE isnull( a.EATTRIBUTE1, '' ) = ''
  10086. GROUP BY
  10087. b.TransCode,
  10088. b.TransSequence
  10089. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10090. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10091. WHERE 1 = 1
  10092. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10093. and a.WorkPoint='{WorkPoint}'";
  10094. sql = string.Format(sql, Figure);
  10095. return Repository().FindTableBySql(sql.ToString());
  10096. }
  10097. /// <summary>
  10098. /// 派纳 线边仓一步调入单获取单据信息
  10099. /// </summary>
  10100. /// <param name="TransferNO"></param>
  10101. /// <param name="Sequence"></param>
  10102. /// <param name="WorkPoint"></param>
  10103. /// <returns></returns>
  10104. public DataTable GetSubGridJsonOneSetpTransByCreatePN(string TransferNO, string Sequence, string WorkPoint)
  10105. {
  10106. DataTable dt = new DataTable();
  10107. object Figure = GetDecimalDigits();
  10108. List<DbParameter> parameter = new List<DbParameter>();
  10109. string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
  10110. , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
  10111. , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
  10112. , CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
  10113. , isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
  10114. , CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
  10115. , 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 ,
  10116. '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
  10117. FROM ICSTransfer a
  10118. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
  10119. 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
  10120. END AS Quantity
  10121. FROM ICSTransfer a
  10122. LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
  10123. AND a.WorkPoint= b.WorkPoint
  10124. ) xx ON xx.Id= a.Id
  10125. LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
  10126. FROM ICSInventoryLot a
  10127. LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '203'
  10128. WHERE isnull( a.EATTRIBUTE1, '' ) = '' AND a.Type=1
  10129. GROUP BY
  10130. b.TransCode,
  10131. b.TransSequence
  10132. ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
  10133. LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
  10134. WHERE 1 = 1
  10135. and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
  10136. and a.WorkPoint='{WorkPoint}'";
  10137. sql = string.Format(sql, Figure);
  10138. return Repository().FindTableBySql(sql.ToString());
  10139. }
  10140. public int SubmitFormCGRKALL(string keyValue)
  10141. {
  10142. string sql = string.Empty;
  10143. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10144. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10145. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10146. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10147. foreach (var item in res)
  10148. {
  10149. JObject jo = (JObject)item;
  10150. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10151. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10152. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10153. decimal LOTQTY = minPackQty;
  10154. string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
  10155. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10156. string sqls = string.Empty;
  10157. string Colspan = "";
  10158. string str1 = "";
  10159. List<string> ExtensionIDList = new List<string>();
  10160. for (int i = 0; i < createPageCount; i++)
  10161. {
  10162. if (i + 1 == createPageCount)
  10163. {
  10164. if (minPackQty * createPageCount > thisCreateQty)
  10165. {
  10166. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10167. }
  10168. }
  10169. 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();
  10170. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10171. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10172. bool flag = true;
  10173. foreach (var items in ExtensionIDList)
  10174. {
  10175. if (items == Colspan + WorkPoint)
  10176. {
  10177. flag = false;
  10178. }
  10179. }
  10180. if (ExtensionID == null && flag == true)
  10181. {
  10182. str1 = Guid.NewGuid().ToString();
  10183. 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)
  10184. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10185. 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(),
  10186. MUSER, MUSERNAME, WorkPoint);
  10187. }
  10188. else if (ExtensionID != null)
  10189. {
  10190. str1 = ExtensionID.ToString();
  10191. }
  10192. ExtensionIDList.Add(Colspan + WorkPoint);
  10193. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10194. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10195. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
  10196. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10197. sql += string.Format(@"
  10198. insert into ICSInventoryLot
  10199. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10200. select
  10201. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}'
  10202. from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10203. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10204. sql += "\r\n";
  10205. }
  10206. }
  10207. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10208. return count;
  10209. }
  10210. /// <summary>
  10211. /// 销售退货生成条码(一键生成)
  10212. /// </summary>
  10213. /// <param name="POCode"></param>
  10214. /// <param name="PORow"></param>
  10215. /// <param name="keyValue"></param>
  10216. /// 已改
  10217. /// <returns></returns>
  10218. public int SubmitFormXSTHALL(string keyValue)
  10219. {
  10220. string sql = string.Empty;
  10221. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  10222. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  10223. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  10224. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  10225. foreach (var resItem in res)
  10226. {
  10227. JObject jo = (JObject)resItem;
  10228. int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
  10229. decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
  10230. decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
  10231. decimal LOTQTY = minPackQty;
  10232. string Pre = "SR" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
  10233. string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
  10234. string sqls = string.Empty;
  10235. string Colspan = "";
  10236. string str1 = "";
  10237. List<string> ExtensionIDList = new List<string>();
  10238. for (int i = 0; i < createPageCount; i++)
  10239. {
  10240. if (i + 1 == createPageCount)
  10241. {
  10242. if (minPackQty * createPageCount > thisCreateQty)
  10243. {
  10244. LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
  10245. }
  10246. }
  10247. 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();
  10248. sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
  10249. object ExtensionID = SqlHelper.ExecuteScalar(sqls);
  10250. bool flag = true;
  10251. foreach (var item in ExtensionIDList)
  10252. {
  10253. if (item == Colspan + WorkPoint)
  10254. {
  10255. flag = false;
  10256. }
  10257. }
  10258. if (ExtensionID == null && flag == true)
  10259. {
  10260. str1 = Guid.NewGuid().ToString();
  10261. 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)
  10262. Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
  10263. 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(),
  10264. MUSER, MUSERNAME, WorkPoint);
  10265. }
  10266. else if (ExtensionID != null)
  10267. {
  10268. str1 = ExtensionID.ToString();
  10269. }
  10270. ExtensionIDList.Add(Colspan + WorkPoint);
  10271. string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
  10272. sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
  10273. Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
  10274. LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString());
  10275. sql += string.Format(@"
  10276. insert into ICSInventoryLot
  10277. (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount)
  10278. select
  10279. newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}'
  10280. from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
  10281. LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
  10282. sql += "\r\n";
  10283. }
  10284. }
  10285. int count = SqlHelper.CmdExecuteNonQueryLi(sql);
  10286. return count;
  10287. }
  10288. public DataTable GetCode(string MOCode, string Sequence, ref Pagination jqgridparam)
  10289. {
  10290. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  10291. List<DbParameter> parameter = new List<DbParameter>();
  10292. DataTable table = new DataTable();
  10293. // string wherestr = "";
  10294. //if (!string.IsNullOrEmpty(invcode) || !string.IsNullOrEmpty(Code) || !string.IsNullOrEmpty(Invstd) || !string.IsNullOrEmpty(EATTRIBUTE2))
  10295. //{
  10296. //if (!string.IsNullOrEmpty(invcode))
  10297. //{
  10298. // wherestr += " and a.InvCode like '%" + invcode + "%'";
  10299. //}
  10300. //if (!string.IsNullOrEmpty(Code))
  10301. //{
  10302. // wherestr += " and c.MOCode like '%" + Code + "%'";
  10303. //}
  10304. //if (!string.IsNullOrEmpty(Invstd))
  10305. //{
  10306. // wherestr += " and b.InvStd like '%" + Invstd + "%'";
  10307. //}
  10308. //if (!string.IsNullOrEmpty(EATTRIBUTE2))
  10309. //{
  10310. // wherestr += " and a.EATTRIBUTE2 like '%" + EATTRIBUTE2 + "%'";
  10311. //}
  10312. //}
  10313. //else
  10314. //{
  10315. // wherestr += " and a.MTIME >= '" + TimeFrom + "'";
  10316. // wherestr += " and a.MTIME <= '" + TimeArrive + "'";
  10317. //}
  10318. string sql = @"select a.Code as ID, a.Code,a.MoCode,a.MoSeq,a.ItemCode,d.InvName,a.BatchCode,a.Qty ,
  10319. a.Qty-CAST(ISNULL(c.LOTQTY,0) as DECIMAL(38,6)) as RemainingQTY,
  10320. a.Qty-CAST(ISNULL(c.LOTQTY,0) as DECIMAL(38,6)) as RemainingQTY2
  10321. from MES_MO a
  10322. inner join ICSMO b on a.MoCode=b.MOCode and a.MoSeq=b.Sequence
  10323. inner join dbo.ICSInventory d on a.ItemCode=d.InvCode
  10324. left join (select b.Code, sum(isnull(b.Quantity,0)) LOTQTY from ICSInventoryLot a
  10325. left join ICSInventoryLotDetailRT b on a.LotNo=b.LotNo and a.Type='3'
  10326. where isnull(a.EATTRIBUTE1,'')=''
  10327. group by b.Code
  10328. ) c on a.Code=c.Code
  10329. where 1=1 and a.MOCode='" + MOCode + "' and a.MoSeq='"+ Sequence + "'";
  10330. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  10331. }
  10332. public DataTable GetVendor()
  10333. {
  10334. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  10335. string sql = @"select '' as Code,'' as Name
  10336. union all
  10337. SELECT DISTINCT a.Code,a.Name FROM dbo.ICSCustomerItem a ";
  10338. //string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  10339. //if (role != "admin")
  10340. //{
  10341. // sql += " and b.WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
  10342. //}
  10343. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  10344. return dt;
  10345. }
  10346. public string GetERPInvCode(string VenCode, string InvCode)
  10347. {
  10348. string sql = string.Empty;
  10349. sql = @"select CustomerItemCode from ICSCustomerItem
  10350. where Code='"+ VenCode + "' and ItemCode ='"+ InvCode + "'";
  10351. object ERPInvCode = SqlHelper.ExecuteScalar(sql);
  10352. return Convert.ToString(ERPInvCode);
  10353. }
  10354. }
  10355. }