using NFine.Data.Extensions; using System; using System.Collections.Generic; using System.Data; using NFine.Code; using NFine.Repository; using System.Data.Common; using NFine.Domain._03_Entity.SRM; using System.Configuration; using System.Text; using System.Net; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using System.IO; using System.Data.SqlClient; using System.Linq; using NFine.Application.Models; namespace NFine.Application.RTWMS { public class PackModel { public string ID { get; set; } public string PackCode { get; set; } public int FristBarIndex { get; set; } public int LastBarIndex { get; set; } } public class WMSCreateItemLotApp : RepositoryFactory { public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @"select a.ID,y.MOCode,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, 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 ,a.ExtensionID,a.MUSERName,a.MTIME , CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,b.EffectiveEnable,b.EffectiveDays ,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 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint inner JOIN ICSMOPick x ON a.SourceDetailID=x.PickID AND a.WorkPoint=x.WorkPoint left JOIN ICSMO y ON x.MODetailID=y.MODetailID AND x.WorkPoint=y.WorkPoint where d.Type='1' and d.Status='2' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 领料子件信息 /// /// /// /// /// public DataTable GetICSMOPick(string MODetailID, string workpoint, ref Pagination jqgridparam) { DataTable dt = new DataTable(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" SELECT b.InvCode,c.InvName,c.InvStd,InvUnit,b.ID,b.Quantity,b.IssueQuantity,d.WarehouseCode,d.WarehouseName FROM dbo.ICSMO a LEFT JOIN dbo.ICSMOPick b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint LEFT JOIN dbo.ICSInventory c ON b.InvCode=c.InvCode AND b.WorkPoint=c.WorkPoint left join dbo.ICSWarehouse d on b.WHCode=d.WarehouseCode and b.WorkPoint=d.WorkPoint WHERE a.MODetailID='{0}' "; sql = string.Format(sql, MODetailID); #endregion return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, string isPrint, ref Pagination jqgridparam) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME ,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, case when isnull(d.ID,'')='' then '未入库' else '已入库' end as isStorage, case when g.InvIQC='1'and isnull(e.ID,'')='' then '未检验' else '已检验' end as isInspection, case when isnull(a.LastPrintUser,'')='' then '未打印' else '已打印' end as isPrint, case when Isnull(g.InvIQC,'0')='1' then '否' else '是' end as isExemption,a.Amount, convert(varchar(20),a.ProductDate,23) as ProductDate,convert(varchar(20),a.ExpirationDate,23) as ExpirationDate ,g.EffectiveDays,a.EATTRIBUTE4,a.EATTRIBUTE5 from ICSInventoryLot a left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint WHERE isnull(a.EATTRIBUTE1,'')='' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')"; if (!string.IsNullOrWhiteSpace(isPrint)) { if (isPrint == "0") { } else if (isPrint == "1") { sql += " and isnull(LastPrintUser,'')<>''"; } else { sql += " and isnull(LastPrintUser,'')=''"; } } sql = string.Format(sql, Figure); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 点击生成条码 /// public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn017', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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 , CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, 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, 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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSMOApplyNegDetail a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='1' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE 1 =1 and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } public DataTable GetVendorLotNo(string VenCode, string WorkPoint) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string dtPre = DateTime.Now.ToString("yyyyMMdd"); string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2"; return Repository().FindTableBySql(sql.ToString()); } /// /// 生产退料生成条码 /// /// /// /// /// 已改 /// public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "MDN" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string Colspan = ""; string sqls = string.Empty; string LotNo = string.Empty; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen) { string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}"; sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen }); //return Repository().FindTableBySql(sql.ToString()); return SqlHelper.ExecuteScalar(sql).ToString(); //return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString(); } /// /// 删除条码 /// /// /// public string DeleteItemLot(string keyValue) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = string.Empty; string sql = string.Format(@"SELECT * FROM dbo.ICSInspection WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint); DataTable dtASN = SqlHelper.GetDataTableBySql(sql); if (dtASN != null && dtASN.Rows.Count > 0) { msg = "所选条码已生成检验单,无法删除!"; } sql = string.Format(@"SELECT * FROM dbo.ICSWareHouseLotInfo WHERE LotNO IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint); DataTable dtCarton = SqlHelper.GetDataTableBySql(sql); if (dtCarton != null && dtCarton.Rows.Count > 0) { msg += "所选条码已入库,无法删除!"; } if (string.IsNullOrEmpty(msg)) { 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); 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);//删除箱子 条码对应关系 sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint); SqlHelper.CmdExecuteNonQueryLi(sqls); } return msg; } public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, 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,a.ExtensionID,a.MUSERName,a.MTIME , CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='1' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and d.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and d.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString())) { sql += " and d.WHCode like '%" + queryParam["WHCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); //var queryParam = queryJson.ToJObject(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity from ICSInventoryLot a left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint left join ICSInventoryLotDetail c on a.LotNo=c.LotNo WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")"; sql = string.Format(sql, Figure); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 点击委外退料生成条码 /// public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn008', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='2' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint WHERE d.Type='1' and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 委外退料生成条码 /// /// /// /// /// 已改 /// public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; List ExtensionIDList = new List(); string str1 = ""; #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 委外退料生成条码 /// /// /// /// /// 已改 /// public int SubmitFormWeiWaiNew(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); // decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; List ExtensionIDList = new List(); string str1 = ""; #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { decimal LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" select distinct a.ID, a.MODetailID,a.MOCode,a.Sequence, CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, 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 ,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME , CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY , 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 ,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,a.EATTRIBUTE11,a.EATTRIBUTE12,b.MTIME as TMTime,dep.DepName,a.CreateDateTime from ICSMO a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join ICSDepartment dep ON dep.DepCode=a.DepCode and a.WorkPoint=dep.WorkPoint left join ICSWarehouse warehouse on a.WHCode=warehouse.WarehouseCode and a.WorkPoint=warehouse.WorkPoint "; sql += " WHERE 1=1 and a.MOStatus<>'3' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString())) { sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString())) { sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString())) { sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0"; } } if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString())) { string WHStatus = queryParam["WHStatus"].ToString(); if (WHStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (WHStatus == "1") { sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 "; } else { sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 "; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 点击成品生成条码(成品) /// public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); // 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, //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 // ,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 // from ICSMO a // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint // left join ( // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3' // where isnull(a.EATTRIBUTE1,'')='' // group by b.TransCode,b.TransSequence // ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence // left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint // left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint // WHERE 1 =1 and a.MOStatus<>'3' string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn011', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); string sql = @" select d.Enable, a.InvCode,b.ClassCode,b.InvName,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, CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSMO a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint WHERE 1 =1 and a.MOStatus<>'3' and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 成品生成条码 /// /// /// /// /// 已改 /// ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity,string CodeAssociated) { DataTable dt1 = JsonConvert.DeserializeObject(CodeAssociated); var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string InvCode = queryParam["ClassCode"].ToString(); string InvCodeLP = queryParam["InvCode"].ToString(); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|"; string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 //if (AMEnable == "true") //{ // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); //}vvv //else //{ LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4); //} sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10,EATTRIBUTE11) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}' from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString(), queryParam["VenInvCode"].ToString()); sql += "\r\n"; //foreach (var item in res) //{ // JObject jo = (JObject)item; // var DistributionNum = jo["RemainingQTY"].ToDecimal(); //} var LotNum = LOTQTY; //foreach (DataRow dr in dt1.Rows) //{ // if (LotNum==0) // { // break; // } // var Num= dr["RemainingQTY"].ToDecimal(); // if (Num==0) // { // dr.Delete(); // continue; // } // if (LotNum > Num) // { // LotNum = LotNum - Num; // sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME) // Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )", // LotNo, dr["Code"].ToString(), Num, MUSER, MUSERNAME); // dr.Delete(); // } // else // { // sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME) // Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )", // LotNo, dr["Code"].ToString(), LotNum, MUSER, MUSERNAME); // dr["RemainingQTY"] = (dr["RemainingQTY"].ToDecimal()-LotNum).ToString(); // LotNum = LotNum - LotNum; // } //} for (int A = dt1.Rows.Count-1;A >= 0; A--) { DataRow dr = dt1.Rows[A] ; if (LotNum == 0) { break; } var Num = dr["RemainingQTY"].ToDecimal(); if (Num == 0) { dt1.Rows.Remove(dr); // dr.Delete(); continue; } if (LotNum > Num) { LotNum = LotNum - Num; sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME) Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )", LotNo, dr["Code"].ToString(), Num, MUSER, MUSERNAME); dt1.Rows.Remove(dr); //dr.Delete(); } else { sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME) Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )", LotNo, dr["Code"].ToString(), LotNum, MUSER, MUSERNAME); dr["RemainingQTY"] = (dr["RemainingQTY"].ToDecimal() - LotNum).ToString(); LotNum = LotNum - LotNum; } } #region//装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} #endregion } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 成品生成条码 /// /// /// /// /// 已改 /// ///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 public int SubmitFormChengPingNew(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string InvCode = queryParam["ClassCode"].ToString(); string InvCodeLP = queryParam["InvCode"].ToString(); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); //string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|"; string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { var LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 //if (AMEnable == "true") //{ // LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); //}vvv //else //{ LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4); //} sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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 ,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 ,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 from ICSSDN a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint --left join ICSDepartment dep ON dep.DepCode=a.[Detp] where a.Type='2'"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 点击销售退货生成条码(销售退货) /// public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn020', " + Quantity + ",1,3,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty, isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSSDN a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='4' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE 1 =1 and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 销售退货生成条码 /// /// /// /// /// 已改 /// public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')", LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //} //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 销售退货生成条码 /// /// /// /// /// 已改 /// public int SubmitFormXiaoShouNew(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { var LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')", LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //} //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit, 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 ,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 from ICSOtherIn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and ISNULL(a.Type,'1')='1' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString())) { sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString())) { sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 点击销售退货生成条码(其他入库) /// public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn021', " + Quantity + ",1,4,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty, isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSOtherIn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='5' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE 1 =1 and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "' and ISNULL(a.EATTRIBUTE2,'1')='1'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 其他入库生成条码 /// /// /// /// /// 已改 /// public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public int SubmitFormQiTaNew(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); //int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { var LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } //归还 public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit, CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount, CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime, CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSReturn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='2'"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //审核到货单(采购订单需与审核到货单一起同步) public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, 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,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity, CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY , Case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable --,isnull(b.EffectiveEnable,0) as EffectiveEnable , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable ,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 from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.DNType='1' and a.Status='2' and a.ASNCode is null "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString())) { sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString())) { string WHStatus = queryParam["WHStatus"].ToString(); if (WHStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (WHStatus == "1") { sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0"; } else { sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //审核委外到货单 public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, 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, CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity, CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime, CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,d.OODetailID ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable ,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 from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.ODNType='1' and a.Status='2' and a.OASNCode is null"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString())) { sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString())) { string WHStatus = queryParam["WHStatus"].ToString(); if (WHStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (WHStatus == "1") { sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0"; } else { sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //开立得成品入库单 public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" select a.ID,a.RCVCode,a.Sequence,a.SourceCode as MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit, 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 ,a.CreatePerson,a.CreateDateTime, CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable,b.EffectiveDays ,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 from ICSManufactureReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint --left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint where a.Status='1' and a.Type='1'"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString())) { sql += " and a.SourceCode like '%" + queryParam["SCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 点击审核委外到货单生成条码(审核委外到货单) /// public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn005', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); //锐腾添加退补逻辑 string sql = @"select e.Enable, 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='8' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint left join (select a.ODNCode,a.Sequence,a.WorkPoint, ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退补' 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 WHERE 1 =1 and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 点击开立成品入库生成条码(开立成品入库单) /// /// //-- public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn013', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10 from ICSManufactureReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='9' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE 1 =1 and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 点击审核到货单生成条码(审核到货单) /// public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); /*** * 锐腾新加退补逻辑,当退货申请单类型为退补时,可生成条码数量加上退补的数量 * 查询退货申请单的单据类型,判断是否为退补单 ***/ string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn002', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); string checksql = $@"select a.ID from ICSDeliveryNotice a inner join ICSDeliveryNotice b ON a.DNDetailID=Isnull(b.EATTRIBUTE8,'') and a.WorkPoint=b.WorkPoint and b.DNType='2' and b.EATTRIBUTE7='退补' where a.DNType='1' and a.DNCode='{DNCode}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}' "; var checkdt = SqlHelper.CmdExecuteDataTable(checksql); string sql = string.Empty; if (checkdt.Rows.Count > 0) { sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) 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, 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, 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.DNCode,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 end as Quantity from ICSDeliveryNotice a 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 left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退补' 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 WHERE 1 =1 and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'"; } else { sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @"+ISNULL(j.Quantity,0) 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.DNCode,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 end as Quantity from ICSDeliveryNotice a 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 left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint 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 WHERE 1 =1 and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'"; } sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 点击归还生成条码(归还) /// public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn023', " + Quantity + ",1,4,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSReturn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='6' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE 1 =1 and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 归还单生成条码 /// /// /// /// /// 已改 /// public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 审核到货单生成条码 /// /// /// /// /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu /// public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}' ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 审核委外到货单生成条码 /// /// /// /// /// 已改 /// /// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}' ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 开立成品入库单 /// /// /// /// /// 已改 /// public int SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } //委外拒收单 public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, 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, CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //拒收单 public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit, 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, CAST( a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime, CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //领料申请退料 public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, 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 ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left JOIN ICSMOApply bb ON a.SourceDetailID=bb.ApplyDetailID AND a.WorkPoint=bb.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='2' and d.Status='2' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.MTIME <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 拒收生成条码 /// /// /// /// /// public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 委外拒收生成条码 /// /// /// /// /// public int SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 点击审核到货单生成条码(审核到货单) /// public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn003', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='10' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE a.DNType='3' and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 点击审核委外到货单生成条码(审核委外到货单) /// public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn006', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='11' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE a.ODNType='3' and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } //获取委外退料源头条码 public DataTable GetWeiWaiTLSrcLot(string OApplyNegCode, string Sequence, string WorkPoint) { DataTable dt = new DataTable(); List parameter = new List(); string sql = @"select C.LotNo from ICSOApplyNegDetail A INNER JOIN ICSOIssue B ON B.PickID=A.SourceDetailID AND B.InvCode=A.InvCode INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.SourceCode AND SUBSTRING(C.TransSequence,0,CharIndex('~',C.TransSequence))=B.SourceSequence AND C.WorkPoint=B.WorkPoint AND C.TransType=3 AND C.BusinessCode=5 where A.OApplyNegCode='" + OApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"' order by C.MTIME desc"; return Repository().FindTableBySql(sql.ToString()); } //获取领料申请源头条码 public DataTable GetLLSQSrcLot(string ApplyNegCode, string Sequence, string WorkPoint) { DataTable dt = new DataTable(); List parameter = new List(); string sql = @"select C.LotNo from ICSMOApplyNegDetail A INNER JOIN ICSMOApply B ON B.EATTRIBUTE30=A.SourceDetailID AND B.InvCode=A.InvCode INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.ApplyCode AND C.TransSequence=B.Sequence AND C.TransType=3 AND C.BusinessCode=14 where A.ApplyNegCode='" + ApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"' order by C.MTIME desc"; return Repository().FindTableBySql(sql.ToString()); } //获取条码备用字段568(派纳特殊需求---销售退货直接取单据备用字段信息) public DataTable GetSSDDocEATTRIBUTEInfo(string SSDCode, string Sequence, string WorkPoint) { string sql = @"select A.CreateDateTime AS ProductDate,B.BatchCode AS BatchCode,A.EATTRIBUTE3,A.EATTRIBUTE5,A.EATTRIBUTE6,A.EATTRIBUTE8 from ICSSSD A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID where A.SSDCode='" + SSDCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + "'"; return Repository().FindTableBySql(sql.ToString()); } //获取业务源头条码备用字段456(派纳特殊需求) public DataTable GetSrcLotNoInfoPN(string LotNo, string WorkPoint) { try { string sql = "SELECT '' AS EATTRIBUTE3,'' AS EATTRIBUTE5,'' AS EATTRIBUTE6,'' AS EATTRIBUTE8 "; DataTable dt = new DataTable(); List parameter = new List(); string lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint WHERE A.LotNo='" + LotNo + "' AND A.WorkPoint='" + WorkPoint + "'"; dt = SqlHelper.GetDataTableBySql(lotsql); if (dt.Rows.Count > 0) { if (dt.Rows[0]["Type"].ToString() == "101" || dt.Rows[0]["Type"].ToString() == "102")//分批合批或形态转换后条码 需要找到最初的原条码确认单据后再取备用字段 { string OriginalLot = LotNo.Split('-')[0]; lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint WHERE A.LotNo='" + OriginalLot + "' AND A.WorkPoint='" + WorkPoint + "'"; dt = SqlHelper.GetDataTableBySql(lotsql); if (dt.Rows.Count == 0) { return Repository().FindTableBySql(sql.ToString()); } else { LotNo = OriginalLot; } } if (dt.Rows[0]["Type"].ToString() == "0" || dt.Rows[0]["Type"].ToString() == "2" || dt.Rows[0]["Type"].ToString() == "12" || dt.Rows[0]["Type"].ToString() == "24")//期初条码 成品条码 生产退料条码 销售退货条码 取条码备用字段 { sql = @"SELECT B.BatchCode AS BatchCode,A.ProductDate AS ProductDate,A.EATTRIBUTE3 as EATTRIBUTE3,A.EATTRIBUTE5 AS EATTRIBUTE5 ,A.EATTRIBUTE6 AS EATTRIBUTE6,A.EATTRIBUTE8 AS EATTRIBUTE8 from ICSInventoryLot A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID where A.LotNo = '" + LotNo + "' and A.WorkPoint = '" + WorkPoint + "'"; } else if (dt.Rows[0]["Type"].ToString() == "22")//采购入库(标准收货单)条码 取单据备用字段 { sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A LEFT JOIN ICSPurchaseReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'"; } else if (dt.Rows[0]["Type"].ToString() == "23")//委外入库(委外收货单)条码 取单据备用字段 { sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A LEFT JOIN ICSOutsourcingReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'"; } else if (dt.Rows[0]["Type"].ToString() == "3")//成品入库(完工申报单)条码 取单据备用字段 { sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A LEFT JOIN ICSMO B ON B.MOCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'"; } else if (dt.Rows[0]["Type"].ToString() == "5")//杂收条码 取单据备用字段 { sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A LEFT JOIN ICSOtherIn B ON B.InCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'"; } } return Repository().FindTableBySql(sql.ToString()); } catch (Exception ex) { throw new Exception(ex.Message); } } public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn018', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='12' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint WHERE d.Type='2' and d.Status='2' and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } //领料申请退料生成条码 public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public int SubmitFormLLSQTLNew(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = 1; decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < lotQtys.Count(); i++) { decimal LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } //材料出库退料 public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, 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 ,a.ExtensionID,a.MUSERName,a.MTIME , CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint WHERE d.Type='3' and d.Status='2' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString())) { sql += " and g.IssueCode like '%" + queryParam["SCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //材料出库退料 public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn019', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='13' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='3' and d.Status='2' and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } //材料出库退料生成条码 public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, 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 , a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='2'"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 点击委外领料退料生成条码 /// public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn009', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='14' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint WHERE d.Type='2' and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } //委外领料申请退料 public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } //委外材料出库 public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, 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 , a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{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 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='3'"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //委外材料出库 public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn010', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='15' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='3' and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } //委外材料出库 public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','15','{3}','{4}', getdate(),'{5}','{9}' ,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable SelectICSExtensionEnable() { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @"select ColCode from ICSExtensionEnable where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)"; DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetComplete() { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'"; DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetWWComplete() { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004' and WorkPoint='" + WorkPoints + "'"; DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } //返工工单 public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity , 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 ,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 from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); // string sql = @" //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, //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 //,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 // from ICSMOPick a // left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint // left join ( // select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a // left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16' //where isnull(a.EATTRIBUTE1,'')='' // group by b.TransCode,b.TransSequence // ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence // left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint // WHERE 1=1 string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn015', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='16' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint WHERE 1=1 and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } //返工工单 public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; Sequence = Sequence.Replace("~", ""); string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' 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}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 锐腾获取单据信息 /// /// /// /// /// public DataTable GetSubGridJsonTransferByCreate(string TransferNO, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn025', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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 , 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 , '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 FROM ICSTransfer a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint LEFT JOIN ( SELECT b.TransCode, b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY FROM ICSInventoryLot a LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '19' WHERE isnull( a.EATTRIBUTE1, '' ) = '' GROUP BY b.TransCode, b.TransSequence ) c ON a.TransferNO= c.TransCode AND a.Sequence= c.TransSequence LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint WHERE 1 = 1 and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 锐腾两步调入单生成条码 /// /// /// /// /// /// public int SubmitFormTransfer(string TransferNO, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; Sequence = Sequence.Replace("~", ""); string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','20','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSTransfer a where a.TransferNO='{6}' and a.Sequence='{7}' and a.WorkPoint='{5}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public object GetDecimalDigits() { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); try { string sql = string.Empty; sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'"; object Figure = SqlHelper.ExecuteScalar(sql); return Figure; } catch (Exception ex) { throw new Exception(ex.Message.ToString()); } } /// /// 生成条码导出 /// /// /// /// /// public DataTable StatementExportAll(string Type, string ID) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = string.Empty; object Figure = GetDecimalDigits(); string TableCode = string.Empty; #region sql语句 if (Type == "1") //生产退料 { 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 数量 ,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 已生成数量 ,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 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where d.Type='1' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSMOApplyNegDetail"; } if (Type == "2") //委外退料 { 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 数量 ,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 已生成数量 ,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 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSOApplyNegDetail"; } if (Type == "3")//工单成品生成条码 { sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位 ,CAST( a.Quantity AS DECIMAL(38,{0})) as 数量,CAST( a.Amount as DECIMAL(38,{0})) as 辅计量数量 ,a.MUSERName as 操作人 ,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量 ,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 from ICSMO a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSMO"; } if (Type == "4")//销售退货 { 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 数量 ,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 已生成数量 ,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 from ICSSDN a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSSDN"; } if (Type == "5")//其它入库生成条码 { 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 料品单位, 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 已生成数量 ,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 from ICSOtherIn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSOtherIn"; } if (Type == "6")//归还单生成条码 { 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 料品单位 ,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 已生成数量 ,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 from ICSReturn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSReturn"; } if (Type == "7")//*审核到货单生成条码 { 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 料品单位, 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 已生成数量 ,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 from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSDeliveryNotice"; } if (Type == "8")//审核委外到货单生成条码 { 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 创建时间, CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量 ,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 from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSODeliveryNotice"; } if (Type == "9")//开立得成品入库单 生成条码 { 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 数量 , 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 已生成数量 ,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 from ICSManufactureReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSManufactureReceive"; } if (Type == "10")//采购拒收单 { 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 料品单位, 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 已生成数量 ,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 from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSDeliveryNotice"; } if (Type == "11") //委外拒收单生成条码 { 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 料品单位, 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 已生成数量 ,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 from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSODeliveryNotice"; } if (Type == "12")//领料申请退料生成条码 { sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位, 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 已生成数量 ,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 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='2' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSMOApplyNegDetail"; } if (Type == "13")//材料出库退料 { sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位, 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 已生成数量 ,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 from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='3' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSMOApplyNegDetail"; } if (Type == "14")//委外领料申请退料 { sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位, 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 已生成数量 ,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 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSOApplyNegDetail"; } if (Type == "15")//委外材料出库退料 { sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位, 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 已生成数量 ,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 from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSOApplyNegDetail"; } if (Type == "16") //返工工单 { 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 单位, CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 , 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 已生成数量 ,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 from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSMOPick"; } if (Type == "17")//检验不合格条码重新生成 { sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 , CAST(c.Amount AS DECIMAL(38,{0})) as 辅计量数量,a.MUSERName,a.MUSERName as 操作人,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量 ,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 from ICSInspection a left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17' group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint )c on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")"; TableCode = "ICSInspection"; } #endregion sql = sql + " and a.WorkPoint='{1}'"; sql = string.Format(sql, Figure, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); string sqls = @"SELECT ColCode,ColName,Enable from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'"; DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls); foreach (DataRow drE in dtExtension.Rows) { if (dt.Columns.Contains(drE["ColCode"].ToString())) { if (!Convert.ToBoolean(drE["Enable"])) { dt.Columns.Remove(drE["ColCode"].ToString()); } else if (Convert.ToBoolean(drE["Enable"])) { dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString(); } } } DataTable dtColumn = ColumnEnable(TableCode); foreach (DataRow drC in dtColumn.Rows) { if (dt.Columns.Contains(drC["ColumnCode"].ToString())) { if (!Convert.ToBoolean(drC["Enable"])) { dt.Columns.Remove(drC["ColumnCode"].ToString()); } else if (Convert.ToBoolean(drC["Enable"])) { dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString(); } } } return dt; } public DataTable ColumnEnable(string TableCode) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = string.Empty; sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'"; sql = string.Format(sql, TableCode, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public object GetQiSetNum(string keyValue) { decimal Num = 0; string msg = ""; string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve"; string result = HttpPost(APIURL, keyValue); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText); string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); if (Success.ToUpper() == "FALSE") { msg = MessAge; } else { if (MessAge == "U9") { decimal Date = Convert.ToDecimal(Obj["Data"].ToString()); int date = Convert.ToInt32(Date); Num = date; } else { if (msg == "") { JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString()); foreach (var item in res) { JObject jo = (JObject)item; //var aa= jo["min_lotqty"].ToString(); Num = Convert.ToDecimal(jo["min_lotqty"].ToString()); } } } } var Header = new { msg = msg, Num = Num, }; return Header; } //接口api解析 public static string HttpPost(string url, string body) { try { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*"; request.ContentType = "application/json; charset=utf-8"; byte[] buffer = encoding.GetBytes(body); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { return reader.ReadToEnd(); } } catch (WebException ex) { throw new Exception(ex.Message); } } public DataTable GetLoadShow() { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) "; return Repository().FindTableBySql(sql.ToString()); } //不合格条码重新生成入库 public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit, CAST(a.UnqualifiedQuantity AS DECIMAL(38,{0})) as Quantity , CAST(c.Amount AS DECIMAL(38,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY,d.ExtensionID ,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 from ICSInspection a left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17' group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint )c on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.UnqualifiedQuantity>0 and a.Enable='1'"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select c.TransCode,c.TransSequence ,a.ID,a.LotNo, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME ,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, case when isnull(d.ID,'')='' then '未入库' else '已入库' end as isStorage, case when isnull(e.ID,'')='' then '未检验' else '已检验' end as isInspection, case when g.InvIQC='1' then '是' else '否' end as isExemption from ICSInventoryLot a left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')"; sql = string.Format(sql, Figure); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; // string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } string LotNo = GetNewLotNo(OldLotNo); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}',TransID from ICSInventoryLotDetail where LotNo='{4}'", LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1) select newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}' from ICSInventoryLot a inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1' where a.LotNo='{4}' and a.WorkPoint='{3}'", LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo); sql += "\r\n"; } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public string GetNewLotNo(string LotNO) { DataTable dt = new DataTable(); List parameter = new List(); //string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' "; string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}' ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC"; sql = string.Format(sql, LotNO); dt = Repository().FindTableBySql(sql.ToString()); if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "") { return LotNO + "-1"; } else { string newLotNO = dt.Rows[0]["NewLotNo"].ToString(); int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1; return LotNO + "-" + COUNT.ToString(); } } public DataTable SelGDLX() { string sql = string.Empty; DataTable dt = null; sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''"); dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetFreeEnble() { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) "; return Repository().FindTableBySql(sql.ToString()); } public DataTable GetInvBatchEnable(string InvCode) { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint='{1}'"; sql = string.Format(sql, InvCode, WorkPoints); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } //副产品 public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity , 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 ,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 from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.EATTRIBUTE1='1' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 锐腾调入单生成条码 /// /// /// /// public DataTable GetGridJsonTransfer(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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 FROM ICSTransfer a LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint LEFT JOIN (SELECT c.TransCode,c.WorkPoint,c.TransSequence,sum(d.Quantity) Quantity FROM ICSInventoryLotDetail c LEFT JOIN ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint WHERE ISNULL(d.EATTRIBUTE1, '')='' GROUP BY c.TransCode,c.WorkPoint,c.TransSequence ) c ON a.TransferNO=c.TransCode AND c.WorkPoint=a.WorkPoint AND a.Sequence=c.TransSequence left JOIN ICSExtension f ON f.Id=a.ExtensionID AND f.WorkPoint=a.WorkPoint WHERE a.Type='2' AND Isnull(a.Status,'')<>3 "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } 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 where 1=1 "; if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and Quantity-ISNULL(LOTQTY,0)=0"; } else { sql += " and Quantity-ISNULL(LOTQTY,0)<>0"; } } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 采购入库生成条码 /// /// /// /// /// public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, 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 ,c.LOTQTY ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,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, isnull(b.EATTRIBUTE2,'') as MPQ from ICSPurchaseReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Type='1' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString())) { sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } // public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam) // { // DataTable dt = new DataTable(); // var queryParam = queryJson.ToJObject(); // List parameter = new List(); // object Figure = GetDecimalDigits(); // #region [SQL] // 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, // 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 // ,c.LOTQTY // ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays // ,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, // isnull(b.EATTRIBUTE2,'') as MPQ // from ICSPurchaseReceive a // left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint // left join ( // select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee // left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22' // where isnull(ee.EATTRIBUTE1,'')='' // group by mm.TransCode,mm.TransSequence,ee.WorkPoint // ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint // left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint // left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint // left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint // where a.Type='1' "; // sql = string.Format(sql, Figure); // #endregion // if (!string.IsNullOrWhiteSpace(queryJson)) // { // if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) // { // sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' "; // } // if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) // { // sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; // } // if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) // { // sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; // } // if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) // { // sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; // } // } // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") // { // sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; // } // if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") // { // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; // } // 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, //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 // where 1=1 "; // if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) // { // string POStatus = queryParam["POStatus"].ToString(); // if (POStatus == "0") // { // //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; // } // else if (POStatus == "1") // { // sql += " and Quantity-ISNULL(LOTQTY,0)=0"; // } // else // { // sql += " and Quantity-ISNULL(LOTQTY,0)<>0"; // } // } // return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); // } /// /// 采购入库获取单据信息 /// /// /// /// /// public DataTable GetSubGridJsonPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit , CAST ( a.Amount 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 , 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 , 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 , '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 FROM ICSPurchaseReceive a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY FROM ICSInventoryLot a LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '22' WHERE isnull( a.EATTRIBUTE1, '' ) = '' GROUP BY b.TransCode, b.TransSequence ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint WHERE 1 = 1 and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'"; // sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 采购入库单生成条码 保存 /// /// /// /// /// /// public int SubmitFormCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 采购入库单生成条码 保存(新) /// /// /// /// /// /// public int SubmitFormCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { //if (i + 1 == createPageCount) //{ // if (minPackQty * createPageCount > thisCreateQty) // { // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); // } //} decimal LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); try { sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; } catch (Exception EX) { throw EX; } //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 委外采购入库生成条码 /// /// /// /// public DataTable GetGridJsonOutPurchaseReceive(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, 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 ,c.LOTQTY ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,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 from ICSOutsourcingReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Type='1' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString())) { sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' "; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } 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, 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 where 1=1 "; if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and Quantity-ISNULL(LOTQTY,0)=0"; } else { sql += " and Quantity-ISNULL(LOTQTY,0)<>0"; } } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 委外采购入库获取单据信息 /// /// /// /// /// public DataTable GetSubGridJsonOutPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit , CAST ( a.Amount 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, 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 , 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 , '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 FROM ICSOutsourcingReceive a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY FROM ICSInventoryLot a LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '23' WHERE isnull( a.EATTRIBUTE1, '' ) = '' GROUP BY b.TransCode, b.TransSequence ) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint WHERE 1 = 1 and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 委外采购入库单生成条码 保存 /// /// /// /// /// /// public int SubmitFormWWCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 委外采购入库单生成条码 保存(新) /// /// /// /// /// /// public int SubmitFormWWCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { //if (i + 1 == createPageCount) //{ // if (minPackQty * createPageCount > thisCreateQty) // { // LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); // } //} decimal LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); try { sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; } catch (Exception EX) { throw EX; } //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 铭锋 退货调拨申请单生成条码 /// /// /// /// public DataTable GetGridJsonTransferApplication(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName, a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName, a.InvCode, b.InvName,b.InvStd,b.InvUnit, CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity ,c.LOTQTY ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,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 from ICSTransferApplication a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint where 1 = 1"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") //{ // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; //} 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, a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.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 ) t where 1=1 "; if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and Quantity-ISNULL(LOTQTY,0)=0"; } else { sql += " and Quantity-ISNULL(LOTQTY,0)<>0"; } } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 铭锋 退货调拨申请单获取单据信息 /// /// /// /// /// public DataTable GetSubGridJsonTransferApplicationByCreate(string TransferNO, string Sequence, string WorkPoint) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty , CAST ( ( xx.Quantity- 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,isnull(b.EATTRIBUTE2,'') as MPQ , 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 , '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 FROM ICSTransferApplication a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint 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 END AS Quantity FROM ICSTransferApplication a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint ) xx ON xx.Id= a.Id LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY FROM ICSInventoryLot a LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202' WHERE isnull( a.EATTRIBUTE1, '' ) = '' GROUP BY b.TransCode, b.TransSequence ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint WHERE 1 = 1 and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 铭锋 退货调拨申请单生成条码 保存 /// /// /// /// /// /// public int SubmitFormTransferApplicatioSave(string TransferNO, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public int SubmitFormTransferApplicatioSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); //decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { var LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn014', " + Quantity + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty, isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='18' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint WHERE 1=1 and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } //副产品 public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Sequences = Sequence.Replace("~", ""); string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4"); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string sql = string.Empty; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@"insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' 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}' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty, string InvCode, string Quantitys) { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); DataTable dt = new DataTable(); List parameter = new List(); string sql = string.Empty; bool flag = true; if (Type == "1") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn017', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='1' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where d.Type='1' and d.Status='2' and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "2") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn008', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='2' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "3") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn011', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSMO a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='3' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "4") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn020', " + Quantitys + ",1,3,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSSDN a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.SDNCode,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 end as Quantity from ICSSDN a 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='4' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Type='2' and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "5") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn021', " + Quantitys + ",1,4,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSOtherIn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.InCode,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 end as Quantity from ICSOtherIn a 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "6") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn023', " + Quantitys + ",1,4,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSReturn a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.ReturnCode,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 end as Quantity from ICSReturn a 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='6' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='2' and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "7") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn002', " + Quantitys + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); //锐腾添加退补逻辑 sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.DNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退补' 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='7' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "8") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn005', " + Quantitys + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); //锐腾添加退补逻辑 sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.ODNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退补' 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='8' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "9") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn013', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSManufactureReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='9' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and a.Type='1' and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "10") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn003', " + Quantitys + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSDeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='10' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint --inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "11") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn006', " + Quantitys + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSODeliveryNotice a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='11' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint --inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "12") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn018', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='12' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='2' and d.Status='2' and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "13") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn019', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSMOApplyNegDetail a left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='13' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='3' and d.Status='2' and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "14") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn009', " + Quantitys + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='14' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='2' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "15") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn010', " + Quantitys + ",1,1,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSOApplyNegDetail a left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='15' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint WHERE d.Type='3' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "16") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn015', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='16' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "18") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn014', " + Quantitys + ",1,2,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='18' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.EATTRIBUTE1='1' and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "22") { sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSPurchaseReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.RCVCode,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 end as Quantity from ICSPurchaseReceive a 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='22' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "23") { sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSOutsourcingReceive a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.RCVCode,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 end as Quantity from ICSOutsourcingReceive a 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='23' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } if (Type == "24") { string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn026', " + Quantitys + ",1,3,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity , CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY from ICSSSD a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join(select a.SDNCode,a.SDNSequence 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 end as Quantity from ICSSSD a 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 left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='5' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint )c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Status='1' and a.Type='2' and a.SSDCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'"; } dt = SqlHelper.GetDataTableBySql(sql); decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString()); decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString()); decimal thisQty = Convert.ToDecimal(thisCreateQty); if (LOTQTY + thisQty > Quantity) { flag = false; } return flag; } /// /// 开立成品入库单(一键生成) /// public int SubmitFormKLCPRKALL(string keyValue) { string sql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; JArray res = (JArray)JsonConvert.DeserializeObject(keyValue); foreach (var item in res) { JObject jo = (JObject)item; int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4"); string PRODUCTDATE = jo["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } 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(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var items in ExtensionIDList) { if (items == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoint); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','9','{3}','{4}', getdate(),'{5}','{9}' from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString()); sql += "\r\n"; } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 审核到货单生成条码(一键生成) /// /// /// /// /// 已改 /// public int SubmitFormSHDHALL(string keyValue) { string sql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; JArray res = (JArray)JsonConvert.DeserializeObject(keyValue); foreach (var resItem in res) { JObject jo = (JObject)resItem; int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4"); string PRODUCTDATE = jo["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } 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(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoint); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}' from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString()); sql += "\r\n"; } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 审核委外到货单生成条码(一键生成) /// /// /// /// /// 已改 /// public int SubmitFormWWSHDHALL(string keyValue) { string sql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; JArray res = (JArray)JsonConvert.DeserializeObject(keyValue); foreach (var resItem in res) { JObject jo = (JObject)resItem; int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4"); string PRODUCTDATE = jo["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } 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(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoint); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','8','{3}','{4}', getdate(),'{5}','{9}' from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString()); sql += "\r\n"; } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable SelectICSColumnEnableForLotEnable() { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select ColumnCode from ICSColumnEnable where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)"; DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public DataTable GetLoadShowForColumn() { string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string sql = @" select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) "; DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public string GetAMEnable() { string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance"); return Code; } public DataTable SeachMeasure() { DataTable dt = new DataTable(); List parameter = new List(); string sql = @" SELECT Top 1 a.F_ItemCode as Code FROM [dbo].[Sys_SRM_ItemsDetail] a LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode"; return Repository().FindTableBySql(sql.ToString()); } public DataTable SeachLableofDisable() { DataTable dt = new DataTable(); List parameter = new List(); string sql = @" SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable FROM [dbo].[Sys_SRM_ItemsDetail] a LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode"; return Repository().FindTableBySql(sql.ToString()); } public DataTable SeachAmountEnablebyInvCode(string InvCode) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); DataTable dt = new DataTable(); List parameter = new List(); string sql = @" select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'"; return Repository().FindTableBySql(sql.ToString()); } public DataTable SeachDatabyInvCode(string InvCode) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); DataTable dt = new DataTable(); List parameter = new List(); string sql = @" select isnull(AmountEnable,0) as AmountEnable, isnull(ContainerEnable,0) ContainerEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'"; return Repository().FindTableBySql(sql.ToString()); } public string LotBindCode(String savePath, string Code, string Sequence) { //数据获取 try { int index = 1; string msg = ""; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; SqlConnection conn = SqlHelper.GetDataCenterConn(); string sql = ""; int count = 0; DataTable data = FileToExcel.ExcelToTable(savePath); int totalNum = data.AsEnumerable().Sum(row => int.Parse(row.Field("条码数量"))); string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY, case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate, a.ExtensionID from ICSMO a left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence 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}'"; sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint); DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode); string ExtensionID = dd.Rows[0]["ExtensionID"].ToString(); string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString(); string InvCode = dd.Rows[0]["InvCode"].ToString(); decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString()); decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString()); decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString()); decimal SQTY = CQuantity - CLOTQTY; if (totalNum > SQTY) { throw new Exception("单号: " + Code + "行号" + Sequence + " 所导入条码数量超出该单据可生成数量,该单据剩余可生成数量为" + SQTY + "!"); } // string CodeSequence = ""; foreach (DataRow dr in data.Rows) { index++; //string GUID = Guid.NewGuid().ToString(); // string Code = dr["单据号"].ToString().Trim().ToUpper(); // string Sequence = dr["单据行号"].ToString().Trim().ToUpper(); string LotNo = dr["条码"].ToString().Trim().ToUpper(); string Quantity = dr["条码数量"].ToString().Trim().ToUpper(); //if (CodeSequence != "" && CodeSequence != Code + Sequence) //{ // throw new Exception("一次只能导入同一单据数据!"); //} //else //{ // CodeSequence = Code + Sequence; //} if (Code == "" || Code == null) { throw new Exception("第 " + index + " 行单据号不能为空!"); } if (Sequence == "" || Sequence == null) { throw new Exception("第 " + index + " 行单据行号不能为空!"); } if (LotNo == "" || LotNo == null) { throw new Exception("第 " + index + " 行条码不能为空!"); } if (Quantity == "" || Quantity == null) { throw new Exception("第 " + index + " 行条码数量不能为空!"); } //if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY)) //{ // decimal SQTY = CQuantity - CLOTQTY; // throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量,该单据剩余可生成数量为"+ SQTY + "!"); //} var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity); sql += @"Insert INto ICSInventoryLot ( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint) Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}') "; sql += @" Insert INto ICSInventoryLotDetail ( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint) Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')"; sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence); } count = SqlHelper.CmdExecuteNonQueryLi(sql); if (count > 0) { msg = "导入成功"; } else { return "无有效的导入数据。"; } return msg; } catch (Exception ex) { return ex.Message; } } /// /// 生产退料(一键生成) /// public int SubmitFormGDTLALL(string keyValue) { string sql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; JArray res = (JArray)JsonConvert.DeserializeObject(keyValue); foreach (var item in res) { JObject jo = (JObject)item; int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4"); string PRODUCTDATE = jo["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } 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(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var items in ExtensionIDList) { if (items == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoint); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','1','{3}','{4}', getdate(),'{5}','{9}' from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString()); sql += "\r\n"; } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 自动生成批次信息 /// /// /// /// public DataTable GetVendorBatch() { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string pre = "C" + DateTime.Now.ToString("yyyyMMdd"); //var queryParam = queryJson.ToJObject(); //List parameter = new List(); //string dtPre = DateTime.Now.ToString("yyyyMMdd"); string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4"; return Repository().FindTableBySql(sql.ToString()); } public DataTable GetVendorBatchBYInvCode(string InvCode, string WorkPoint) { DataTable dt = new DataTable(); string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'"; sqlClass = string.Format(sqlClass, InvCode, WorkPoint); DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass); string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd"); //var queryParam = queryJson.ToJObject(); //List parameter = new List(); //string dtPre = DateTime.Now.ToString("yyyyMMdd"); string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4"; return Repository().FindTableBySql(sql.ToString()); } public DataTable GetReworkMo(string invcode, string Code, string SourceCode, ref Pagination jqgridparam) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; List parameter = new List(); DataTable table = new DataTable(); string wherestr = ""; if (!string.IsNullOrEmpty(invcode)) { wherestr += " and a.InvCode like '%" + invcode + "%'"; } if (!string.IsNullOrEmpty(Code)) { wherestr += " and a.MOCode like '%" + Code + "%'"; } string sql = @"SELECT a.ID, a.MOCode, a.Sequence, a.InvCode, a.Quantity, a.Amount, a.RCVQuantity, a.DepCode, a.WHCode, a.StartDate, a.DueDate, a.MOType, a.MOStatus, a.MOMemo, a.CreatePerson, a.CreateDateTime, a.ERPStatus, a.MOID, a.MODetailID, a.ExtensionID, a.MUSER, a.MUSERName, a.MTIME, a.WorkPoint, a.EATTRIBUTE1, a.EATTRIBUTE2, a.EATTRIBUTE3, a.EATTRIBUTE4, a.EATTRIBUTE5, a.EATTRIBUTE6, a.EATTRIBUTE7, a.EATTRIBUTE8, a.EATTRIBUTE9, a.EATTRIBUTE10, b.InvName, b.InvStd, b.InvUnit from dbo.ICSMO a left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint where a.EATTRIBUTE1='1' and a.MOStatus<>'3' and a.WorkPoint = '" + WorkPoint + "'" + wherestr; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //修改形态转换 public string LotReworkBind(string LotNo, string Code, string Sequence, string ExtensionID) { string Colspan = ""; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; string MTDOCCode = ""; DateTime TimeNow = DateTime.Now; string sql = string.Empty; //修改条码绑定关系 sql += @"update dbo.ICSInventoryLotDetail set TransCode='{0}' ,TransSequence='{1}' where LotNo in({2}) and WorkPoint='{3}'"; //修改条码批次 sql += @"update dbo.ICSInventoryLot set ExtensionID='{4}' where LotNo in({2}) and WorkPoint='{3}'"; //删除条码库存 sql += @"delete dbo.ICSWareHouseLotInfo where LotNo in({2}) and WorkPoint='{3}' "; sql = string.Format(sql, Code, Sequence, LotNo, WorkPoint, ExtensionID); if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0) { msg = ""; } else { msg = "条码重新绑定失败!"; } return msg; } /// /// 一键退库(咖博士新增需求:根据生产退料单,B2、C类物料可以实现一键退库操作),调用PDA上架接口 /// /// /// public string PostInWareHouse(string IDs) { string Colspan = ""; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; DateTime TimeNow = DateTime.Now; string sql = string.Empty; try { IDs = IDs.Substring(1, IDs.Length - 2); //1.获取退料单中的B2和C类物料,检验是否全部生成条码,没有生成条码的单据需要先生成条码后一键退库 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' ; 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' "; string whereSql2 = @" 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' "; DataTable dataTable1 = SqlHelper.CmdExecuteDataTable(whereSql1); DataTable dataTable2 = SqlHelper.CmdExecuteDataTable(whereSql2); if (dataTable1.Rows.Count <= 0) { throw new Exception("请先再自定义档案配置需要一键退库的物料信息!"); } if (dataTable2.Rows.Count <= 0) { throw new Exception("请先再自定义档案配置需要一键退库的仓库库位信息!"); } //判断是否全部生成条码 string isCreate = $@" SELECT a.ApplyNegCode,a.Sequence,a.Quantity,sum(isnull(c.Quantity,0)) as LotQuantity FROM ICSMOApplyNegDetail a left JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint left JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} GROUP BY a.Quantity,a.Id,a.ApplyNegCode,a.Sequence "; DataTable isCreatedt = SqlHelper.CmdExecuteDataTable(isCreate); if (isCreatedt.Rows.Count <= 0) { throw new Exception("请先确认退料单物料类别信息,然后确认自定义档案配置可以自动出库的物料信息!"); } else { for (int i = 0; i < isCreatedt.Rows.Count; i++) { if (isCreatedt.Rows[i]["Quantity"].ToDecimal() != isCreatedt.Rows[i]["LotQuantity"].ToDecimal()) { throw new Exception($"请先将单据:{isCreatedt.Rows[i]["ApplyNegCode"]},行号:{isCreatedt.Rows[i]["Sequence"]} ,全部生成条码!"); } } } //查询需要入库的条码信息 sql = $@" SELECT a.ApplyNegCode,a.Sequence,c.LotNo,c.Quantity,c.InvCode FROM ICSMOApplyNegDetail a INNER JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint INNER JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode LEFT JOIN ICSWareHouseLotInfo d ON d.LotNo=c.LotNo AND d.WorkPoint=c.WorkPoint INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} AND d.ID is null "; //2.查询退料的条码和退料的条码数量,拼接参数,调用PDA接口 var getSql = SqlHelper.CmdExecuteDataTable(sql); if (getSql.Rows.Count > 0) { List models = new List(); LOTStockUpCreateIModel model = new LOTStockUpCreateIModel { User = MUSER, MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"), WorkPoint = WorkPoint, TransType = "生产退料-生产退料单" }; model.detail = new List(); for (int i = 0; i < getSql.Rows.Count; i++) { LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList { LotNo = getSql.Rows[i]["LotNo"].ToString(), WarehouseCode = dataTable2.Rows[0]["F_Define1"].ToString(), LocationCode = dataTable2.Rows[0]["F_Define2"].ToString(), TransCode = getSql.Rows[i]["ApplyNegCode"].ToString(), TransSequence = getSql.Rows[i]["Sequence"].ToString(), Quantity = getSql.Rows[i]["Quantity"].ToString(), InvCode = getSql.Rows[i]["InvCode"].ToString() }; model.detail.Add(detail); } models.Add(model); var input = models.ToJson(); string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create"; string result = HttpPost(APIURL, input); Result res = result.ToObject(); if (!res.Success) { throw new Exception(res.Message); } msg = ""; } return msg; } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 红字销售出库单生成条码列表数据 /// /// /// /// public DataTable GetGridJsonWMSSSD(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] 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, CAST(c.LOTQTY AS DECIMAL(38,6)) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable , CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable ,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 from ICSSSD a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='24' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.Type='2' and a.Status='1' "; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.CusCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and a.CusName like '%" + queryParam["VenName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString())) { sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)=0"; } else { sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0"; } } if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString())) { string WHStatus = queryParam["WHStatus"].ToString(); if (WHStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (WHStatus == "1") { sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)>0"; } else { sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)=0"; } } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") { sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 红字销售出库单生成条码 /// /// /// /// /// /// /// public int SubmitFormSSD(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 红字销售出库单生成条码 /// /// /// /// /// /// /// public int SubmitFormSSDNew(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; //string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint); string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; //string VendorLot = queryParam["VendorLot"].ToString(); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string InvCode = queryParam["ClassCode"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; string LotNo = string.Empty; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { var LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); //传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 if (AMEnable == "true") { LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint); } else { LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); } sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); //if (SqlHelper.ExecuteNonQuery(sqls) > 0) //{ sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } //} } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 红字销售出库单查询 /// /// /// /// /// public DataTable GetSubGridJsonSSDByCreate(string SSDCode, string Sequence, string WorkPoint, string Quantity, string InvCode) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn026', " + Quantity + ",1,3,'')"; object Num = SqlHelper.ExecuteScalar(SeachNum); 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, 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, 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 ,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, '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 from ICSSSD a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='24' where isnull(a.EATTRIBUTE1,'')='' group by b.TransCode,b.TransSequence ) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint WHERE a.Status='1' and a.Type='2' and a.SSDCode='" + SSDCode + "' and a.Sequence='" + Sequence + "'"; sql += " and a.WorkPoint='" + WorkPoint + "'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 派纳 线边仓调拨申请单生成条码 /// /// /// /// public DataTable GetGridJsonTransferApplicationPN(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName, a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName, a.InvCode, b.InvName,b.InvStd,b.InvUnit, CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity ,c.LOTQTY ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,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 from ICSTransferApplication a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='202' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint where 1 = 1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id where A.F_EnCode='WorkLineWHConfig')"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") //{ // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; //} 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, a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.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 ) t where 1=1 "; if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and Quantity-ISNULL(LOTQTY,0)=0"; } else { sql += " and Quantity-ISNULL(LOTQTY,0)<>0"; } } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 派纳 线边仓一步调入单生成条码 /// /// /// /// public DataTable GetGridJsonOneSetpTransPN(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List parameter = new List(); object Figure = GetDecimalDigits(); #region [SQL] string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence ,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName, a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName, a.InvCode, b.InvName,b.InvStd,b.InvUnit, CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount ,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity ,c.LOTQTY ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,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 from ICSTransfer a left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint left join ( select mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='203' where isnull(ee.EATTRIBUTE1,'')='' group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint where 1 = 1 and a.Type=1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id where A.F_EnCode='WorkLineWHConfig')"; sql = string.Format(sql, Figure); #endregion if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString())) { sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString())) { sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString())) { sql += " and a.FromWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' "; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'"; } //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor") //{ // sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'"; //} 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, a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.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 ) t where 1=1 "; if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString())) { string POStatus = queryParam["POStatus"].ToString(); if (POStatus == "0") { //sql += " and a.Quantity=ISNULL(c.LotQty,0)"; } else if (POStatus == "1") { sql += " and Quantity-ISNULL(LOTQTY,0)=0"; } else { sql += " and Quantity-ISNULL(LOTQTY,0)<>0"; } } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库) /// /// /// /// /// /// public int SubmitFormTransferApplicatioPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string Identification = Guid.NewGuid().ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); //派纳调拨申请单生成的条码需要自动入库 sql += string.Format(@" INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint) SELECT NEWID(),a.LotNo ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}') ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}') ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME); sql += string.Format(@" INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode, FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity, Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID, ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName, MTIME,WorkPoint) SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode , '','',c.WarehouseCode,c.LocationCode,c.Quantity, '','0','6','75','1',D.TransferID, D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' , SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, Identification); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库) /// /// /// /// /// /// public int SubmitFormOneStepTransPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string Identification = Guid.NewGuid().ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); //派纳调拨申请单生成的条码需要自动入库 sql += string.Format(@" INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint) SELECT NEWID(),a.LotNo ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}') ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}') ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME); sql += string.Format(@" INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode, FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity, Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID, ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName, MTIME,WorkPoint) SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode , '','',c.WarehouseCode,c.LocationCode,c.Quantity, '','0','6','75','1',D.TransferID, D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' , SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, Identification); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库) /// /// /// /// /// /// public int SubmitFormTransferApplicatioPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string Identification = Guid.NewGuid().ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { var LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); //派纳调拨申请单生成的条码需要自动入库 sql += string.Format(@" INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint) SELECT NEWID(),a.LotNo ,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}') ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}') ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME); sql += string.Format(@" INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode, FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity, Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID, ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName, MTIME,WorkPoint) SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode , '','',c.WarehouseCode,c.LocationCode,c.Quantity, '','0','6','75','1',D.TransferID, D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' , SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, Identification); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库---非规则生成条码) /// /// /// /// /// /// public int SubmitFormOneStepTransferPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint) { var queryParam = keyValue.ToJObject(); string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString()); JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象 List lotQtys = new List(); foreach (var jLotno in jLotnos) { decimal qty = Convert.ToDecimal(jLotno["qty"]); lotQtys.Add(qty); } int createPageCount = lotQtys.Count(); string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4"); string sql = string.Empty; string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString(); string Identification = Guid.NewGuid().ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); #region 装箱的功能 int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成 string VenCode = queryParam["VenCode"].ToString(); int PackCount = 0;//每箱放的数量 int Pack_YuShu = 0;//需要平摊的数量 string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀 List List_Pack = new List(); int ZQty = 0; if (createPackCount > 0) { Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量 if (Pack_YuShu == 0) { PackCount = (createPageCount / createPackCount); } else { PackCount = ((createPageCount - Pack_YuShu) / (createPackCount)); } for (int jj = 0; jj < createPackCount; jj++) { object CARID = Guid.NewGuid(); string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5); sql += @" INSERT INTO dbo.ICSContainer ( ID,ContainerCode , MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName, InventoryMixed,ProjectMixed,BatchMixed,Multiplex) VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)"; PackModel PP = new PackModel(); PP.ID = CARID.ToString(); PP.PackCode = Carton; if (jj < Pack_YuShu) { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)); } else { PP.FristBarIndex = ZQty; PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1; } ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1; List_Pack.Add(PP); } } #endregion for (int i = 0; i < createPageCount; i++) { var LOTQTY = lotQtys[i]; Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoints); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount ,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * LOTQTY, queryParam["ExpirationDate"].ToString() , queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(), queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString()); //派纳调拨申请单生成的条码需要自动入库 sql += string.Format(@" INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint) SELECT NEWID(),a.LotNo ,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}') ,(SELECT TOP 1 A.LocationCode FROM ICSLocation A INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}') ,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME); sql += string.Format(@" INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode, FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity, Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID, ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName, MTIME,WorkPoint) SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode , '','',c.WarehouseCode,c.LocationCode,c.Quantity, '','0','6','75','1',D.TransferID, D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' , SYSDATETIME() ,a.WorkPoint FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'", LotNo, WorkPoint, Identification); sql += "\r\n"; //装箱的功能 if (List_Pack.Count > 0) { PackModel mm = new PackModel(); mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First(); sql += string.Format(@" INSERT INTO dbo.ICSContainerLot ( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint ) Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint); } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 派纳 线边仓调拨申请单获取单据信息 /// /// /// /// /// public DataTable GetSubGridJsonTransferApplicationByCreatePN(string TransferNO, string Sequence, string WorkPoint) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty , CAST ( ( xx.Quantity- 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,isnull(b.EATTRIBUTE2,'') as MPQ , 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 , '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 FROM ICSTransferApplication a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint 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 END AS Quantity FROM ICSTransferApplication a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint ) xx ON xx.Id= a.Id LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY FROM ICSInventoryLot a LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202' WHERE isnull( a.EATTRIBUTE1, '' ) = '' GROUP BY b.TransCode, b.TransSequence ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint WHERE 1 = 1 and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } /// /// 派纳 线边仓一步调入单获取单据信息 /// /// /// /// /// public DataTable GetSubGridJsonOneSetpTransByCreatePN(string TransferNO, string Sequence, string WorkPoint) { DataTable dt = new DataTable(); object Figure = GetDecimalDigits(); List parameter = new List(); string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit , CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount , CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty , CAST ( ( xx.Quantity- 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,isnull(b.EATTRIBUTE2,'') as MPQ , 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 , '' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10 FROM ICSTransfer a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint 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 END AS Quantity FROM ICSTransfer a LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint ) xx ON xx.Id= a.Id LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY FROM ICSInventoryLot a LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '203' WHERE isnull( a.EATTRIBUTE1, '' ) = '' AND a.Type=1 GROUP BY b.TransCode, b.TransSequence ) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint WHERE 1 = 1 and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}'"; sql = string.Format(sql, Figure); return Repository().FindTableBySql(sql.ToString()); } public int SubmitFormCGRKALL(string keyValue) { string sql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; JArray res = (JArray)JsonConvert.DeserializeObject(keyValue); foreach (var item in res) { JObject jo = (JObject)item; int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4"); string PRODUCTDATE = jo["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } 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(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var items in ExtensionIDList) { if (items == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoint); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )", LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','22','{3}','{4}', getdate(),'{5}','{9}' from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString()); sql += "\r\n"; } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } /// /// 销售退货生成条码(一键生成) /// /// /// /// /// 已改 /// public int SubmitFormXSTHALL(string keyValue) { string sql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(','); string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; JArray res = (JArray)JsonConvert.DeserializeObject(keyValue); foreach (var resItem in res) { JObject jo = (JObject)resItem; int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString()); decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString()); decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString()); decimal LOTQTY = minPackQty; string Pre = "SR" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4"); string PRODUCTDATE = jo["PRODUCTDATE"].ToString(); string sqls = string.Empty; string Colspan = ""; string str1 = ""; List ExtensionIDList = new List(); for (int i = 0; i < createPageCount; i++) { if (i + 1 == createPageCount) { if (minPackQty * createPageCount > thisCreateQty) { LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1)); } } 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(); sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint); object ExtensionID = SqlHelper.ExecuteScalar(sqls); bool flag = true; foreach (var item in ExtensionIDList) { if (item == Colspan + WorkPoint) { flag = false; } } if (ExtensionID == null && flag == true) { str1 = Guid.NewGuid().ToString(); 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) Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )", 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(), MUSER, MUSERNAME, WorkPoint); } else if (ExtensionID != null) { str1 = ExtensionID.ToString(); } ExtensionIDList.Add(Colspan + WorkPoint); string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5); sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')", LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].ToString()); sql += string.Format(@" insert into ICSInventoryLot (ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount) select newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','7','{3}','{4}', getdate(),'{5}','{9}' from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'", LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString()); sql += "\r\n"; } } int count = SqlHelper.CmdExecuteNonQueryLi(sql); return count; } public DataTable GetCode(string MOCode, string Sequence, ref Pagination jqgridparam) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; List parameter = new List(); DataTable table = new DataTable(); // string wherestr = ""; //if (!string.IsNullOrEmpty(invcode) || !string.IsNullOrEmpty(Code) || !string.IsNullOrEmpty(Invstd) || !string.IsNullOrEmpty(EATTRIBUTE2)) //{ //if (!string.IsNullOrEmpty(invcode)) //{ // wherestr += " and a.InvCode like '%" + invcode + "%'"; //} //if (!string.IsNullOrEmpty(Code)) //{ // wherestr += " and c.MOCode like '%" + Code + "%'"; //} //if (!string.IsNullOrEmpty(Invstd)) //{ // wherestr += " and b.InvStd like '%" + Invstd + "%'"; //} //if (!string.IsNullOrEmpty(EATTRIBUTE2)) //{ // wherestr += " and a.EATTRIBUTE2 like '%" + EATTRIBUTE2 + "%'"; //} //} //else //{ // wherestr += " and a.MTIME >= '" + TimeFrom + "'"; // wherestr += " and a.MTIME <= '" + TimeArrive + "'"; //} string sql = @"select a.Code as ID, a.Code,a.MoCode,a.MoSeq,a.ItemCode,d.InvName,a.BatchCode,a.Qty , a.Qty-CAST(ISNULL(c.LOTQTY,0) as DECIMAL(38,6)) as RemainingQTY, a.Qty-CAST(ISNULL(c.LOTQTY,0) as DECIMAL(38,6)) as RemainingQTY2 from MES_MO a inner join ICSMO b on a.MoCode=b.MOCode and a.MoSeq=b.Sequence inner join dbo.ICSInventory d on a.ItemCode=d.InvCode left join (select b.Code, sum(isnull(b.Quantity,0)) LOTQTY from ICSInventoryLot a left join ICSInventoryLotDetailRT b on a.LotNo=b.LotNo and a.Type='3' where isnull(a.EATTRIBUTE1,'')='' group by b.Code ) c on a.Code=c.Code where 1=1 and a.MOCode='" + MOCode + "' and a.MoSeq='"+ Sequence + "'"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetVendor() { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @"select '' as Code,'' as Name union all SELECT DISTINCT a.Code,a.Name FROM dbo.ICSCustomerItem a "; //string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode; //if (role != "admin") //{ // sql += " and b.WorkPoint in(" + WorkPoint.TrimEnd(',') + ")"; //} DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public string GetERPInvCode(string VenCode, string InvCode) { string sql = string.Empty; sql = @"select CustomerItemCode from ICSCustomerItem where Code='"+ VenCode + "' and ItemCode ='"+ InvCode + "'"; object ERPInvCode = SqlHelper.ExecuteScalar(sql); return Convert.ToString(ERPInvCode); } } }