6 changed files with 3097 additions and 3 deletions
-
1WMS-BS/NFine.Application/NFine.Application.csproj
-
810WMS-BS/NFine.Application/OMAY/ICSOOCreateLotApp.cs
-
234WMS-BS/NFine.Web/Areas/OMAY/Controllers/ICSOOCreateLotController.cs
-
745WMS-BS/NFine.Web/Areas/OMAY/Views/ICSOOCreateLot/ICSCreateLotByOO.cshtml
-
1302WMS-BS/NFine.Web/Areas/OMAY/Views/ICSOOCreateLot/OOFrom.cshtml
-
8WMS-BS/NFine.Web/NFine.Web.csproj
@ -0,0 +1,810 @@ |
|||
using NFine.Data.Extensions; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Text; |
|||
using NFine.Code; |
|||
using NFine.Repository; |
|||
using System.Data.Common; |
|||
using NFine.Domain._03_Entity.SRM; |
|||
using Newtonsoft.Json; |
|||
using System.Configuration; |
|||
using System.Net; |
|||
using System.IO; |
|||
using Newtonsoft.Json.Linq; |
|||
|
|||
namespace NFine.Application.OMAY |
|||
{ |
|||
public class ICSOOCreateLotApp : RepositoryFactory<ICSVendor> |
|||
{ |
|||
//奥美工单生成条码主表查询
|
|||
public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam) |
|||
{ |
|||
DataTable dt = new DataTable(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
List<DbParameter> parameter = new List<DbParameter>(); |
|||
object Figure = GetDecimalDigits(); |
|||
|
|||
#region [SQL]
|
|||
string sql = @" select distinct a.ID, a.OODetailID,a.OOCode,a.Sequence, CAST(a.InQuantity AS DECIMAL(18,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount
|
|||
,a.Status,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{0})) as LOTQTY ,CAST( a.Quantity AS DECIMAL(18,{0})) -CAST(a.InQuantity AS DECIMAL(18,{0})) as ERPNum |
|||
,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 ICSOutsourcingOrder 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.OOCode=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.Status='2'";
|
|||
sql = string.Format(sql, Figure); |
|||
sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName()); |
|||
#endregion
|
|||
|
|||
if (!string.IsNullOrWhiteSpace(queryJson)) |
|||
{ |
|||
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) |
|||
{ |
|||
sql += " and a.OOCode 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["POStatus"].ToString())) |
|||
{ |
|||
string POStatus = queryParam["POStatus"].ToString(); |
|||
if (POStatus == "0") |
|||
{ |
|||
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|||
} |
|||
else if (POStatus == "1") |
|||
{ |
|||
sql += " and ISNULL(c.LOTQTY,0)>=a.Quantity"; |
|||
} |
|||
else |
|||
{ |
|||
sql += " and ISNULL(c.LOTQTY,0)<a.Quantity"; |
|||
} |
|||
} |
|||
} |
|||
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 GetSubGridJson(string ApplyNegCode, string Sequence, string Type, ref Pagination jqgridparam) |
|||
{ |
|||
DataTable dt = new DataTable(); |
|||
object Figure = GetDecimalDigits(); |
|||
List<DbParameter> parameter = new List<DbParameter>(); |
|||
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(18,{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 g.InvIQC='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 |
|||
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 + "')";
|
|||
sql = string.Format(sql, Figure); |
|||
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); |
|||
} |
|||
|
|||
//获取小数点数位
|
|||
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 GetSubGridJsonChengPingByCreate(string OOCode, string Sequence, string WorkPoint) |
|||
{ |
|||
|
|||
DataTable dt = new DataTable(); |
|||
object Figure = GetDecimalDigits(); |
|||
List<DbParameter> parameter = new List<DbParameter>(); |
|||
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 |
|||
from ICSOutsourcingOrder 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.OOCode=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.Status='2' |
|||
and a.OOCode='" + OOCode + "' and a.Sequence='" + Sequence + "'";
|
|||
sql += " and a.WorkPoint='" + WorkPoint + "'"; |
|||
sql = string.Format(sql, Figure); |
|||
return Repository().FindTableBySql(sql.ToString()); |
|||
} |
|||
|
|||
|
|||
//查询超生比例
|
|||
public DataTable GetScale() |
|||
{ |
|||
|
|||
DataTable dt = new DataTable(); |
|||
|
|||
List<DbParameter> parameter = new List<DbParameter>(); |
|||
string sql = @" SELECT Top 1 a.F_Define1 as Prorate
|
|||
FROM [dbo].[Sys_SRM_ItemsDetail] a |
|||
LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id AND b.F_EnabledMark='1' |
|||
WHERE b.F_EnCode='CS0001' ORDER BY a.F_ItemCode";
|
|||
return Repository().FindTableBySql(sql.ToString()); |
|||
} |
|||
|
|||
|
|||
|
|||
//调用接口来显示本次可生产数量
|
|||
public object GetAbsolveQty(string OOCode, string Sequence,string Qty) |
|||
{ |
|||
decimal AvailQty = 0; |
|||
decimal AllQty = 0; |
|||
string msg = ""; |
|||
string sql = @"select
|
|||
a.WorkPoint as WorkPoint, |
|||
a.OODetailID as DetailID, |
|||
'生产订单' as Type, |
|||
cast( isnull(c.LOTQTY,0) as DECIMAL(18,4)) as InQty, |
|||
" + Qty + @" as Qty, |
|||
flag.F_Define1 as Prorate |
|||
from ICSOutsourcingOrder 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.OOCode=c.TransCode and a.Sequence=c.TransSequence |
|||
left join ( |
|||
select b.TransCode,PARSENAME(REPLACE(b.TransSequence, '~', '.'), 2) as TransSequence ,sum(isnull(Quantity,0)) OOPickQTY from ICSInventoryLot a |
|||
left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='20' |
|||
where isnull(a.EATTRIBUTE1,'')='' |
|||
group by b.TransCode,PARSENAME(REPLACE(b.TransSequence, '~', '.'), 2) |
|||
) f on a.OOCode=f.TransCode and a.Sequence=f.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 |
|||
left join Sys_SRM_ItemsDetail flag on flag.F_ItemCode='GDCS0001' |
|||
WHERE 1 =1 and a.Status='2' |
|||
and a.OOCode='" + OOCode + "' and a.Sequence='" + Sequence + "'";
|
|||
|
|||
DataTable dt = SqlHelper.GetDataTableBySql(sql); |
|||
string Inputstr = JsonConvert.SerializeObject(dt); |
|||
|
|||
string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Completeamnew/Approve"; |
|||
string result = HttpPost(APIURL, Inputstr); |
|||
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 (msg == "") |
|||
{ |
|||
JObject dataObj = JObject.Parse(Obj["Data"].ToString()); |
|||
AvailQty = decimal.Parse(dataObj["AvailQty"].ToString()); |
|||
AllQty = decimal.Parse(dataObj["AllQty"].ToString()); |
|||
|
|||
|
|||
//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["AllQty"].ToString());
|
|||
//}
|
|||
|
|||
} |
|||
} |
|||
|
|||
var Header = new |
|||
{ |
|||
msg = msg, |
|||
AvailQty = AvailQty, |
|||
AllQty= AllQty, |
|||
}; |
|||
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 int SubmitFormChengPing(string OOCode, 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 = "CP" + OOCode + (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<string> ExtensionIDList = new List<string>(); |
|||
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)
|
|||
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|||
LotNo, OOCode, Sequence, MUSER, MUSERNAME, WorkPoints); |
|||
//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}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}' |
|||
from ICSOutsourcingOrder where OOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|||
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OOCode, 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"; |
|||
//}
|
|||
|
|||
} |
|||
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 DataTable GetGridJsonOOPick(string queryJson, ref Pagination jqgridparam) |
|||
{ |
|||
DataTable dt = new DataTable(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
List<DbParameter> parameter = new List<DbParameter>(); |
|||
object Figure = GetDecimalDigits(); |
|||
#region [SQL]
|
|||
string sql = @"select a.ID,d.OOCode,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(18,{0})) as Quantity ,a.OODetailID, |
|||
CAST(a.Amount AS DECIMAL(18,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(18,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(18,{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 ICSOOPick a |
|||
inner join ICSOutsourcingOrder d on a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint and d.Status='2' |
|||
inner 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='20' |
|||
where isnull(ee.EATTRIBUTE1,'')='' |
|||
group by mm.TransCode,mm.TransSequence,ee.WorkPoint |
|||
)c |
|||
on d.OOCode=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); |
|||
sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName()); |
|||
#endregion
|
|||
|
|||
if (!string.IsNullOrWhiteSpace(queryJson)) |
|||
{ |
|||
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) |
|||
{ |
|||
sql += " and d.OOCode 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 ISNULL(c.LOTQTY,0)>=a.Quantity"; |
|||
} |
|||
else |
|||
{ |
|||
sql += " and ISNULL(c.LOTQTY,0)<a.Quantity"; |
|||
} |
|||
} |
|||
|
|||
} |
|||
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 GetSubGridJsonOOPickCreate(string OOPickCode, string Sequence, string WorkPoint) |
|||
{ |
|||
DataTable dt = new DataTable(); |
|||
object Figure = GetDecimalDigits(); |
|||
List<DbParameter> parameter = new List<DbParameter>(); |
|||
string sql = @"
|
|||
select |
|||
a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, a.Quantity as Quantity, |
|||
cast( isnull(c.LOTQTY,0)+isnull(f.GDQTY,0) as DECIMAL(18,4)) as CreatedQty, |
|||
cast( a.Amount as DECIMAL(18,4)) as Amount, |
|||
isnull(b.EffectiveEnable,0) as EffectiveEnable, |
|||
cast( isnull(b.EffectiveDays,0) as DECIMAL(18,4)) 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 ICSOOPick a |
|||
left join ICSOutsourcingOrder d on a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint and d.Status='2' |
|||
--汇总副产品已生成条码数量 |
|||
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='20' |
|||
where isnull(a.EATTRIBUTE1,'')='' |
|||
group by b.TransCode,b.TransSequence |
|||
) c on d.OOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence |
|||
--汇总工单已生成条码 |
|||
left join ( |
|||
select b.TransCode,b.TransSequence ,sum(isnull(Quantity,0)) GDQTY 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 |
|||
) f on d.OOCode=f.TransCode and d.Sequence=f.TransSequence |
|||
left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint |
|||
|
|||
WHERE 1=1 |
|||
and d.OOCode='" + OOPickCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
|
|||
sql += " and a.WorkPoint='" + WorkPoint + "'"; |
|||
sql = string.Format(sql, Figure); |
|||
return Repository().FindTableBySql(sql.ToString()); |
|||
} |
|||
|
|||
//副产品调用接口获取可生成数量
|
|||
|
|||
public object GetOOPickAbsolveQty(string OOCode, string Sequence, string Qty) |
|||
{ |
|||
decimal AvailQty = 0; |
|||
decimal AllQty = 0; |
|||
string msg = ""; |
|||
string sql = @"
|
|||
select |
|||
a.WorkPoint as WorkPoint, |
|||
a.OODetailID as DetailID, |
|||
'生产订单' as Type, |
|||
cast( isnull(c.LOTQTY,0) as DECIMAL(18,4)) as InQty, |
|||
" + Qty + @" as Qty, |
|||
flag.F_Define1 as Prorate |
|||
from ICSOOPick a |
|||
left join ICSOutsourcingOrder d on a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint and d.Status='2' |
|||
--汇总副产品已生成条码数量 |
|||
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='20' |
|||
where isnull(a.EATTRIBUTE1,'')='' |
|||
group by b.TransCode,b.TransSequence |
|||
) c on d.OOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence |
|||
--汇总工单已生成条码 |
|||
left join ( |
|||
select b.TransCode,b.TransSequence ,sum(isnull(Quantity,0)) GDQTY 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 |
|||
) f on d.OOCode=f.TransCode and d.Sequence=f.TransSequence |
|||
left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint |
|||
left join Sys_SRM_ItemsDetail flag on flag.F_ItemCode='GDCS0001' |
|||
WHERE 1=1 |
|||
and d.OOCode='" + OOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
|
|||
|
|||
|
|||
DataTable dt = SqlHelper.GetDataTableBySql(sql); |
|||
string Inputstr = JsonConvert.SerializeObject(dt); |
|||
|
|||
string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Completeamnew/Approve"; |
|||
string result = HttpPost(APIURL, Inputstr); |
|||
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 (msg == "") |
|||
{ |
|||
JObject dataObj = JObject.Parse(Obj["Data"].ToString()); |
|||
AvailQty = decimal.Parse(dataObj["AvailQty"].ToString()); |
|||
AllQty = decimal.Parse(dataObj["AllQty"].ToString()); |
|||
|
|||
} |
|||
} |
|||
|
|||
var Header = new |
|||
{ |
|||
msg = msg, |
|||
AvailQty = AvailQty, |
|||
AllQty = AllQty, |
|||
}; |
|||
return Header; |
|||
} |
|||
|
|||
|
|||
|
|||
//联副产品
|
|||
public int SubmitFormOOPick(string OOPickCode, 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 Sequences = Sequence.Replace("~", ""); |
|||
string Pre = "OOPick" + OOPickCode + (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 InvCode = queryParam["ClassCode"].ToString(); |
|||
string sqls = string.Empty; |
|||
string Colspan = ""; |
|||
string str1 = ""; |
|||
string LotNo = string.Empty; |
|||
List<string> ExtensionIDList = new List<string>(); |
|||
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)
|
|||
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|||
LotNo, OOPickCode, Sequence, MUSER, MUSERNAME, WorkPoints); |
|||
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 ICSOOPick a left join ICSOutsourcingOrder d on a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint and d.Status='2' where d.OOCode='{6}' and d.Sequence+'~'+a.Sequence='{7}' and a.WorkPoint='{5}' ",
|
|||
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OOPickCode, 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"; |
|||
} |
|||
int count = SqlHelper.CmdExecuteNonQueryLi(sql); |
|||
return count; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
public DataTable GetByproductGridJson(string queryJson, ref Pagination jqgridparam) |
|||
{ |
|||
DataTable dt = new DataTable(); |
|||
var queryParam = queryJson.ToJObject(); |
|||
List<DbParameter> parameter = new List<DbParameter>(); |
|||
|
|||
#region [SQL]
|
|||
string sql = @" select a.ID,a.LotNo,a.InvCode,c.InvName,c.InvStd,a.Quantity,a.MUSERName,b.MTIME as WMTIME,a.MTIME
|
|||
from dbo.ICSInventoryLot a |
|||
left join dbo.ICSWareHouseLotInfo b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint |
|||
inner join dbo.ICSInventory c on a.InvCode=c.InvCode |
|||
where a.Type='19'";
|
|||
// sql += " WHERE 1=1";
|
|||
sql = string.Format(sql, DbHelper.GetErpIp(), DbHelper.GetErpName()); |
|||
#endregion
|
|||
|
|||
if (!string.IsNullOrWhiteSpace(queryJson)) |
|||
{ |
|||
if (!string.IsNullOrWhiteSpace(queryParam["MTDOCCode"].ToString())) |
|||
{ |
|||
sql += " and a.MTDOCCode like '%" + queryParam["MTDOCCode"].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 + "'";
|
|||
//}
|
|||
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); |
|||
} |
|||
|
|||
|
|||
|
|||
public DataTable GetInvCode() |
|||
{ |
|||
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; |
|||
string sql = @"
|
|||
select '' as Code,'' as InvCode |
|||
union all |
|||
SELECT InvCode as Code ,InvCode as InvCode FROM dbo.ICSInventory WITH (NOLOCK) WHERE 1=1 and SUBSTRING(ClassCode, 1, 2) IN ('05') ";
|
|||
|
|||
sql += " and WorkPoint='" + WorkPoint + "'"; |
|||
DataTable dt = SqlHelper.GetDataTableBySql(sql); |
|||
return dt; |
|||
} |
|||
|
|||
|
|||
public int SubmitFormOOPickNoCode (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()); |
|||
string InvCode = queryParam["InvCode"].ToString(); |
|||
decimal LOTQTY = minPackQty; |
|||
//string Sequences = Sequence.Replace("~", "");
|
|||
//string Pre = "OOPick" + OOPickOOCode + (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 ClassCode = queryParam["ClassCode"].ToString(); |
|||
string sqls = string.Empty; |
|||
string Colspan = ""; |
|||
string str1 = ""; |
|||
string LotNo = string.Empty; |
|||
List<string> ExtensionIDList = new List<string>(); |
|||
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(ClassCode, WorkPoint); |
|||
} |
|||
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)
|
|||
values(newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','19','{5}','{6}',getdate(),'{7}','{8}','','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}')",
|
|||
LotNo, InvCode, queryParam["ExpirationDate"].ToString(), LOTQTY, str1, MUSER, MUSERNAME, WorkPoints, queryParam["Amount"].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"; |
|||
} |
|||
int count = SqlHelper.CmdExecuteNonQueryLi(sql); |
|||
return count; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
} |
@ -0,0 +1,234 @@ |
|||
using NFine.Application.OMAY; |
|||
using NFine.Code; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Linq; |
|||
using System.Web; |
|||
using System.Web.Mvc; |
|||
|
|||
namespace NFine.Web.Areas.OMAY.Controllers |
|||
{ |
|||
public class ICSOOCreateLotController : ControllerBase |
|||
{ |
|||
ICSOOCreateLotApp App = new ICSOOCreateLotApp(); |
|||
|
|||
|
|||
// GET: OMAY/ICSOOCreateLot
|
|||
public ActionResult ICSCreateLotByOO() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
public ActionResult OOFrom() |
|||
{ |
|||
return View(); |
|||
} |
|||
|
|||
//奥美工单生成条码主表查询
|
|||
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetGridJsonChengPing(Pagination pagination, string queryJson) |
|||
{ |
|||
DataTable ListData = App.GetGridJsonChengPing(queryJson, ref pagination); |
|||
var JsonData = new |
|||
{ |
|||
total = pagination.total, |
|||
page = pagination.page, |
|||
records = pagination.records, |
|||
rows = ListData, |
|||
}; |
|||
return Content(JsonData.ToJson()); |
|||
} |
|||
|
|||
|
|||
//生成条码子表查询
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetSubGridJson(string ApplyNegCode, string Sequence, string Type, Pagination pagination) |
|||
{ |
|||
DataTable ListData = App.GetSubGridJson(ApplyNegCode, Sequence, Type, ref pagination); |
|||
var JsonData = new |
|||
{ |
|||
total = pagination.total, |
|||
page = pagination.page, |
|||
records = pagination.records, |
|||
rows = ListData, |
|||
}; |
|||
return Content(JsonData.ToJson()); |
|||
} |
|||
|
|||
|
|||
//工单生成条码获取物料数量信息
|
|||
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetSubGridJsonChengPingByCreate(string OOCode, string Sequence, string WorkPoint) |
|||
{ |
|||
DataTable ListData = App.GetSubGridJsonChengPingByCreate(OOCode, Sequence, WorkPoint); |
|||
var JsonData = new |
|||
{ |
|||
rows = ListData, |
|||
}; |
|||
return Content(JsonData.ToJson()); |
|||
} |
|||
|
|||
|
|||
|
|||
//查询超生比例
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetScale() |
|||
{ |
|||
DataTable ListData = App.GetScale(); |
|||
var JsonData = new |
|||
{ |
|||
rows = ListData, |
|||
}; |
|||
return Content(JsonData.ToJson()); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
//副产品调用接口来显示本次可生产数量
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetOOPickAbsolveQty(string OOCode, string Sequence, string Qty) |
|||
{ |
|||
var rows = App.GetOOPickAbsolveQty(OOCode, Sequence, Qty); |
|||
|
|||
return Content(rows.ToJson()); |
|||
} |
|||
|
|||
|
|||
|
|||
//工单调用接口来显示本次可生产数量
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetAbsolveQty(string OOCode, string Sequence, string Qty) |
|||
{ |
|||
var rows = App.GetAbsolveQty(OOCode, Sequence, Qty); |
|||
|
|||
return Content(rows.ToJson()); |
|||
} |
|||
|
|||
|
|||
//工单生成条码
|
|||
[HttpPost] |
|||
[HandlerAjaxOnly] |
|||
[ValidateAntiForgeryToken] |
|||
public ActionResult SubmitFormChengPing(string OOCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) |
|||
{ |
|||
int i = App.SubmitFormChengPing(OOCode, Sequence, keyValue, WorkPoint, AMEnable); |
|||
if (i > 0) |
|||
{ |
|||
return Success("生成成功!"); |
|||
} |
|||
else |
|||
{ |
|||
return Error("生成失败!"); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
//副产品
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetGridJsonOOPick(Pagination pagination, string queryJson) |
|||
{ |
|||
DataTable ListData = App.GetGridJsonOOPick(queryJson, ref pagination); |
|||
var JsonData = new |
|||
{ |
|||
total = pagination.total, |
|||
page = pagination.page, |
|||
records = pagination.records, |
|||
rows = ListData, |
|||
}; |
|||
return Content(JsonData.ToJson()); |
|||
} |
|||
|
|||
|
|||
//副产品生成条码获取物料数量信息
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetSubGridJsonOOPickCreate(string OOPickCode, string Sequence, string WorkPoint) |
|||
{ |
|||
DataTable ListData = App.GetSubGridJsonOOPickCreate(OOPickCode, Sequence, WorkPoint); |
|||
var JsonData = new |
|||
{ |
|||
rows = ListData, |
|||
}; |
|||
return Content(JsonData.ToJson()); |
|||
} |
|||
|
|||
|
|||
//联产品生成条码
|
|||
[HttpPost] |
|||
[HandlerAjaxOnly] |
|||
[ValidateAntiForgeryToken] |
|||
public ActionResult SubmitFormOOPick(string OOPickCode, string Sequence, string keyValue, string WorkPoint, string AMEnable) |
|||
{ |
|||
int i = App.SubmitFormOOPick(OOPickCode, Sequence, keyValue, WorkPoint, AMEnable); |
|||
if (i > 0) |
|||
{ |
|||
return Success("生成成功!"); |
|||
} |
|||
else |
|||
{ |
|||
return Error("生成失败!"); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
[HttpGet] |
|||
[HandlerAjaxOnly] |
|||
public ActionResult GetByproductGridJson(Pagination pagination, string queryJson) |
|||
{ |
|||
DataTable ListData = App.GetByproductGridJson(queryJson, ref pagination); |
|||
var JsonData = new |
|||
{ |
|||
total = pagination.total, |
|||
page = pagination.page, |
|||
records = pagination.records, |
|||
rows = ListData, |
|||
}; |
|||
return Content(JsonData.ToJson()); |
|||
} |
|||
|
|||
|
|||
//获取料品信息
|
|||
public ActionResult GetInvCode() |
|||
{ |
|||
DataTable dt = App.GetInvCode(); |
|||
return Content(dt.ToJson()); |
|||
} |
|||
|
|||
|
|||
//副产品生成条码
|
|||
[HttpPost] |
|||
[HandlerAjaxOnly] |
|||
[ValidateAntiForgeryToken] |
|||
public ActionResult SubmitFormOOPickNoCode(string keyValue, string WorkPoint, string AMEnable) |
|||
{ |
|||
int i = App.SubmitFormOOPickNoCode( keyValue, WorkPoint, AMEnable); |
|||
if (i > 0) |
|||
{ |
|||
return Success("生成成功!"); |
|||
} |
|||
else |
|||
{ |
|||
return Error("生成失败!"); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
} |
@ -0,0 +1,745 @@ |
|||
@{ |
|||
ViewBag.Title = "Index"; |
|||
Layout = "~/Views/Shared/_Index.cshtml"; |
|||
} |
|||
<script> |
|||
debugger; |
|||
var _Clos = new Array(); |
|||
var Type = $.request("Type"); |
|||
var Name = "单据号"; |
|||
var ColOOdelMain = []; |
|||
var ColOOdelSub = []; |
|||
$(function () { |
|||
SetCols(); |
|||
if (Type == '201' ) { |
|||
$(".HideItems").css('display', 'none'); |
|||
} |
|||
$("#POCodeShowLable").text(Name); |
|||
if (Type != '201') { |
|||
$("#GDLX").css('display', 'none'); |
|||
$("#GDLX2").css('display', 'none'); |
|||
|
|||
} |
|||
if (Type == '201') { |
|||
$(".GDLX").css('display', 'block'); |
|||
Select_SelGDLX(); |
|||
gridList201(); |
|||
|
|||
} |
|||
//副产品 |
|||
if (Type == '20') { |
|||
gridList20(); |
|||
} |
|||
}) |
|||
|
|||
function SetCols() { |
|||
$.ajax({ |
|||
url: "/Print/SelectColumnName?" + Math.random(), |
|||
dataType: "json", |
|||
async: false, |
|||
success: function (data) { |
|||
var cols = new Array(); |
|||
var cols1 = new Array(); |
|||
|
|||
if (Type == '201') { |
|||
var collast = { label: "主键", name: "ID", hidden: true, key: true }; |
|||
cols.push(collast); |
|||
var collast = { label: '工单号', name: 'OOCode', width: 120, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '工单行号', name: 'Sequence', width: 50, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: 'ERP工单行ID', name: 'OODetailID', hidden: true }; |
|||
cols.push(collast); |
|||
var collast = { label: '已入库数量', name: 'RCVQuantity', hidden: true, }; |
|||
cols.push(collast); |
|||
var collast = { label: '料品编码', name: 'InvCode', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '料品名称', name: 'InvName', width: 60, align: 'left', }; |
|||
cols.push(collast); |
|||
var collast = { label: '数量', name: 'Quantity', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '辅计量数量', name: 'Amount', width: 150, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { |
|||
label: "状态", name: "OOStatus", width: 60, align: "left", |
|||
formatter: function (cellvalue) { |
|||
if (cellvalue == "1") { |
|||
return "初始"; |
|||
} else if (cellvalue == "2") { |
|||
return "下发"; |
|||
} |
|||
else if (cellvalue == "3") { |
|||
return "关单"; |
|||
} |
|||
else { return ""; } |
|||
} |
|||
}; |
|||
cols.push(collast); |
|||
var collast = { label: '规格型号', name: 'InvStd', width: 60, align: 'left', }; |
|||
cols.push(collast); |
|||
var collast = { label: '单位', name: 'InvUnit', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
//var collast = { label: '批次', name: 'BatchCode', width: 100, align: 'left' }; |
|||
//cols.push(collast); |
|||
var collast = { label: '已生成数量', name: 'LOTQTY', width: 60, align: 'left', }; |
|||
cols.push(collast); |
|||
var collast = { label: '可入库数量', name: 'ERPNum', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '工单备注', name: 'OOMemo', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
|
|||
$.ajax({ |
|||
url: "/Print/SelectTableColumnName?" + Math.random(), |
|||
dataType: "json", |
|||
async: false, |
|||
success: function (data) { |
|||
if (data != null && data.length > 0) { |
|||
DateList = data; |
|||
for (var i = 0; i < data.length; i++) { |
|||
var TableCode = data[i].TableCode; |
|||
if (TableCode == "ICSOO") { |
|||
var Code = data[i].Code; |
|||
var Name = data[i].Name; |
|||
var obj = new Array(); |
|||
obj = { |
|||
label: Name, |
|||
name: Code, |
|||
width: 80, |
|||
align: "left" |
|||
} |
|||
cols.push(obj); |
|||
} |
|||
if (TableCode == "ICSInventory") { |
|||
var Code = data[i].Code; |
|||
var Name = data[i].Name; |
|||
var obj = new Array(); |
|||
obj = { |
|||
label: Name, |
|||
name: Code, |
|||
width: 80, |
|||
align: "left" |
|||
} |
|||
cols.push(obj); |
|||
//cols1.push(obj); |
|||
} |
|||
} |
|||
} |
|||
_Clos = cols; |
|||
//_Clos1 = cols1; |
|||
} |
|||
|
|||
}); |
|||
} |
|||
|
|||
//副产品生成条码 |
|||
if (Type == '20') { |
|||
var collast = { label: "主键", name: "ID", hidden: true, key: true }; |
|||
cols.push(collast); |
|||
var collast = { label: '工单号', name: 'OOCode', width: 120, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '工单子件行号', name: 'Sequence', width: 50, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '备料表ID', name: 'PickID', hidden: true, }; |
|||
cols.push(collast); |
|||
var collast = { label: '料品编码(子)', name: 'ZInvCode', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '料品编码(母)', name: 'MInvCode', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '料品名称', name: 'InvName', width: 60, align: 'left', }; |
|||
cols.push(collast); |
|||
var collast = { label: '数量', name: 'Quantity', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '辅计量数量', name: 'Amount', width: 150, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '已发数量', name: 'IssueQuantity', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
var collast = { label: '规格型号', name: 'InvStd', width: 60, align: 'left', }; |
|||
cols.push(collast); |
|||
var collast = { label: '单位', name: 'InvUnit', width: 100, align: 'left' }; |
|||
cols.push(collast); |
|||
//var collast = { label: '批次', name: 'BatchCode', width: 100, align: 'left' }; |
|||
//cols.push(collast); |
|||
var collast = { label: '已生成数量', name: 'LOTQTY', width: 60, align: 'left', }; |
|||
cols.push(collast); |
|||
var collast = { label: '工单关联ID', name: 'OODetailID', hidden: true }; |
|||
cols.push(collast); |
|||
|
|||
//var collast = { label: '批次', name: 'BatchCode', width: 100, align: 'left' }; |
|||
//cols.push(collast); |
|||
$.ajax({ |
|||
url: "/Print/SelectTableColumnName?" + Math.random(), |
|||
dataType: "json", |
|||
async: false, |
|||
success: function (data) { |
|||
if (data != null && data.length > 0) { |
|||
DateList = data; |
|||
for (var i = 0; i < data.length; i++) { |
|||
var TableCode = data[i].TableCode; |
|||
if (TableCode == "ICSOOPick") { |
|||
var Code = data[i].Code; |
|||
var Name = data[i].Name; |
|||
var obj = new Array(); |
|||
obj = { |
|||
label: Name, |
|||
name: Code, |
|||
width: 80, |
|||
align: "left" |
|||
} |
|||
cols.push(obj); |
|||
} |
|||
if (TableCode == "ICSInventory") { |
|||
var Code = data[i].Code; |
|||
var Name = data[i].Name; |
|||
var obj = new Array(); |
|||
obj = { |
|||
label: Name, |
|||
name: Code, |
|||
width: 80, |
|||
align: "left" |
|||
} |
|||
cols.push(obj); |
|||
//cols1.push(obj); |
|||
} |
|||
} |
|||
} |
|||
_Clos = cols; |
|||
//_Clos1 = cols1; |
|||
} |
|||
|
|||
}); |
|||
} |
|||
|
|||
|
|||
var cols1 = new Array(); |
|||
var collast1 = { label: "主键", name: "ID", hidden: true, key: true }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: "来源单据号", name: "TransCode", width: 150, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '来源单据行', name: 'TransSequence', width: 80, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '条码', name: 'LotNo', width: 200, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '条码数量', name: 'Quantity', width: 80, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '辅计量数量', name: 'Amount', width: 80, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '生产日期', name: 'ProductDate', width: 80, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '失效日期', name: 'ExpirationDate', width: 80, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '有效期天数', name: 'EffectiveDays', width: 80, align: 'left' }; |
|||
cols1.push(collast1); |
|||
|
|||
var collast1 = { label: '是否入库', name: 'isStorage', width: 100, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '是否检验', name: 'isInspection', width: 100, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '是否免检', name: 'isExemption', width: 100, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '操作人', name: 'MUSERName', width: 100, align: 'left' }; |
|||
cols1.push(collast1); |
|||
var collast1 = { label: '操作时间', name: 'MTIME', width: 150, align: 'left' }; |
|||
cols1.push(collast1); |
|||
|
|||
|
|||
if (data != null && data.length > 0) { |
|||
DateList = data; |
|||
for (var i = 0; i < data.length; i++) { |
|||
var ColName = data[i].ColName; |
|||
var ColCode = data[i].ColCode; |
|||
var obj = new Array(); |
|||
obj = { |
|||
label: ColName, |
|||
name: ColCode, |
|||
width: 80, |
|||
align: "left" |
|||
} |
|||
cols.push(obj); |
|||
cols1.push(obj); |
|||
} |
|||
} |
|||
_Clos = cols; |
|||
_Clos1 = cols1; |
|||
} |
|||
}); |
|||
} |
|||
|
|||
|
|||
//成品 |
|||
function gridList201() { |
|||
var $gridList = $("#gridList"); |
|||
var queryJson = { |
|||
POCode: $("#txt_POCode").val(), |
|||
InvCode: $("#txt_InvCode").val(), |
|||
InvName: $("#txt_InvName").val(), |
|||
BatchCode: $("#txt_BatchCode").val(), |
|||
POStatus: $("#selShow").val(), |
|||
SelGDLX: $("#SelGDLX option:checked").val(), |
|||
} |
|||
$gridList.dataGrid({ |
|||
url: "/OMAY/ICSOOCreateLot/GetGridJsonChengPing" + "?" + Math.random(), |
|||
postData: { queryJson: JSON.stringify(queryJson) }, |
|||
height: $(window).height() - 200, |
|||
width: $(window).width() - 300, |
|||
colModel: _Clos, |
|||
width: "100%", |
|||
autowidth: true, |
|||
//shrinkToFit: true, |
|||
gridComplete: function () { |
|||
}, |
|||
pager: "#gridPager", |
|||
//sortname: 'MOCode,cast(Sequence as int)', |
|||
sortname: "OOCode,REPLICATE('0',10-len(Sequence))+Sequence ", |
|||
sortorder: "asc", |
|||
viewrecords: true, |
|||
multiselect: true, |
|||
//beforeSelectRow: function (rowid, e) { |
|||
// $("#gridList").jqGrid('resetSelection'); |
|||
// return (true); |
|||
//}, |
|||
subGrid: true, // (1)开启子表格支持 |
|||
subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数 |
|||
$("#gridList").jqGrid("setSelection", rowid, false); |
|||
bindSubGrid201(subgrid_id, rowid) |
|||
} |
|||
}); |
|||
|
|||
$("#warehouse a.btn-default").click(function () { |
|||
$("#warehouse a.btn-default").removeClass("active"); |
|||
$(this).addClass("active"); |
|||
$('#btn_search').trigger("click"); |
|||
}); |
|||
$("#btn_search").click(function () { |
|||
var warehouse = $("#warehouse a.active").attr('data-value'); |
|||
var queryJson = { |
|||
POCode: $("#txt_POCode").val(), |
|||
InvCode: $("#txt_InvCode").val(), |
|||
InvName: $("#txt_InvName").val(), |
|||
BatchCode: $("#txt_BatchCode").val(), |
|||
POStatus: $("#selShow").val(), |
|||
SelGDLX: $("#SelGDLX option:checked").val(), |
|||
|
|||
} |
|||
$gridList.jqGrid('setGridParam', { |
|||
postData: { queryJson: JSON.stringify(queryJson) }, |
|||
}).trigger('reloadGrid'); |
|||
}); |
|||
|
|||
} |
|||
|
|||
function bindSubGrid201(subgrid_id, rowid) { |
|||
$("#gridList").jqGrid("setSelection", rowid, false); |
|||
var subgrid_table_id; |
|||
subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id |
|||
|
|||
var subgrid_pager_id; |
|||
subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id |
|||
|
|||
// (5)动态添加子报表的table和pager |
|||
$("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>"); |
|||
var OOCode = $("#gridList").jqGrid('getRowData', rowid).OOCode; |
|||
var Sequence = $("#gridList").jqGrid('getRowData', rowid).Sequence; |
|||
// (6)创建jqGrid对象 |
|||
$("#" + subgrid_table_id).dataGrid({ |
|||
cellEdit: true, |
|||
url: "/OMAY/ICSOOCreateLot/GetSubGridJson?ApplyNegCode=" + OOCode + "&Sequence=" + Sequence + "&Type=" + Type + "&" + Math.random(), // (7)子表格数据对应的url,注意传入的contact.id参数 |
|||
colModel: _Clos1, |
|||
//colModel: ColModelSub, |
|||
shrinkToFit: true,//宽度自适应 |
|||
multiselect: true, |
|||
prmNames: { search: "search" }, |
|||
viewrecords: true, |
|||
height: "100%", |
|||
rowNum: 20, |
|||
pager: subgrid_pager_id, |
|||
|
|||
}); |
|||
} |
|||
|
|||
|
|||
function gridList20() { |
|||
var $gridList = $("#gridList"); |
|||
var queryJson = { |
|||
POCode: $("#txt_POCode").val(), |
|||
InvCode: $("#txt_InvCode").val(), |
|||
InvName: $("#txt_InvName").val(), |
|||
BatchCode: $("#txt_BatchCode").val(), |
|||
POStatus: $("#selShow").val() |
|||
} |
|||
$gridList.dataGrid({ |
|||
url: "/OMAY/ICSOOCreateLot/GetGridJsonOOPick" + "?" + Math.random(), |
|||
postData: { queryJson: JSON.stringify(queryJson) }, |
|||
height: $(window).height() - 200, |
|||
width: $(window).width() - 300, |
|||
colModel: _Clos, |
|||
width: "100%", |
|||
autowidth: true, |
|||
//shrinkToFit: true, |
|||
gridComplete: function () { |
|||
}, |
|||
pager: "#gridPager", |
|||
// sortname: 'MOCode,cast(Sequence as int)', |
|||
sortname: "OOCode,REPLICATE('0',10-len(Sequence))+Sequence ", |
|||
sortorder: "asc", |
|||
viewrecords: true, |
|||
multiselect: true, |
|||
//beforeSelectRow: function (rowid, e) { |
|||
// $("#gridList").jqGrid('resetSelection'); |
|||
// return (true); |
|||
//}, |
|||
subGrid: true, // (1)开启子表格支持 |
|||
subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数 |
|||
$("#gridList").jqGrid("setSelection", rowid, false); |
|||
bindSubGrid20(subgrid_id, rowid) |
|||
} |
|||
}); |
|||
|
|||
$("#warehouse a.btn-default").click(function () { |
|||
$("#warehouse a.btn-default").removeClass("active"); |
|||
$(this).addClass("active"); |
|||
$('#btn_search').trigger("click"); |
|||
}); |
|||
$("#btn_search").click(function () { |
|||
var warehouse = $("#warehouse a.active").attr('data-value'); |
|||
var queryJson = { |
|||
POCode: $("#txt_POCode").val(), |
|||
InvCode: $("#txt_InvCode").val(), |
|||
InvName: $("#txt_InvName").val(), |
|||
BatchCode: $("#txt_BatchCode").val(), |
|||
POStatus: $("#selShow").val() |
|||
} |
|||
$gridList.jqGrid('setGridParam', { |
|||
postData: { queryJson: JSON.stringify(queryJson) }, |
|||
}).trigger('reloadGrid'); |
|||
}); |
|||
|
|||
} |
|||
|
|||
function bindSubGrid20(subgrid_id, rowid) { |
|||
$("#gridList").jqGrid("setSelection", rowid, false); |
|||
var subgrid_table_id; |
|||
subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id |
|||
|
|||
var subgrid_pager_id; |
|||
subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id |
|||
|
|||
// (5)动态添加子报表的table和pager |
|||
$("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>"); |
|||
var OOCode = $("#gridList").jqGrid('getRowData', rowid).OOCode; |
|||
var Sequence = $("#gridList").jqGrid('getRowData', rowid).Sequence; |
|||
// (6)创建jqGrid对象 |
|||
$("#" + subgrid_table_id).dataGrid({ |
|||
cellEdit: true, |
|||
url: "/OMAY/ICSOOCreateLot/GetSubGridJson?ApplyNegCode=" + OOCode + "&Sequence=" + Sequence + "&Type=" + Type + "&" + Math.random(), // (7)子表格数据对应的url,注意传入的contact.id参数 |
|||
colModel: _Clos1, |
|||
//colModel: ColModelSub, |
|||
shrinkToFit: true,//宽度自适应 |
|||
multiselect: true, |
|||
prmNames: { search: "search" }, |
|||
viewrecords: true, |
|||
height: "100%", |
|||
rowNum: 20, |
|||
pager: subgrid_pager_id, |
|||
|
|||
}); |
|||
} |
|||
|
|||
function btnDelete() { |
|||
var objArr = ''; |
|||
var obj = $("#gridList").jqGrid("getRowData"); |
|||
for (var i = 0; i < obj.length; i++) { |
|||
var $SubGird = $("#gridList_" + obj[i].ID + "_t"); |
|||
var rowData = $SubGird.jqGrid('getGridParam', 'selarrrow'); |
|||
if (rowData != "undefined" && rowData != null) { |
|||
for (var j = 0; j < rowData.length; j++) { |
|||
objArr += "'" + rowData[j] + "',"; |
|||
} |
|||
} |
|||
} |
|||
if (objArr == "") { |
|||
$.modalAlertNew("WMS00099"); |
|||
return; |
|||
} |
|||
$.deleteForm({ |
|||
url: "/WMS/WMSCreateItemLot/DeleteItemLot", |
|||
param: { keyValue: JSON.stringify(objArr) }, |
|||
success: function () { |
|||
$.currentWindow().$("#gridList").trigger("reloadGrid"); |
|||
} |
|||
}) |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
function dateChange(num, date) { |
|||
if (!date) { |
|||
date = new Date();//没有传入值时,默认是当前日期 |
|||
date = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); |
|||
} |
|||
date += " 00:00:00";//设置为当天凌晨12点 |
|||
date = Date.parse(new Date(date)) / 1000;//转换为时间戳 |
|||
date += (86400) * num;//修改后的时间戳 |
|||
var newDate = new Date(parseInt(date) * 1000);//转换为时间 |
|||
return newDate.getFullYear() + '-' + (newDate.getMonth() + 1) + '-' + newDate.getDate(); |
|||
} |
|||
|
|||
|
|||
|
|||
function btnCreate() { |
|||
debugger; |
|||
var PoStatus; |
|||
var jsonData = ''; |
|||
var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据 |
|||
if (ids.length != 1) { |
|||
$.modalAlertNew("WMS00100"); |
|||
return; |
|||
} |
|||
var POCode = ""; |
|||
var PORow = ""; |
|||
if (Type == '201') { |
|||
for (var i in ids) { |
|||
OODetailID = $("#gridList").jqGrid('getRowData', ids[i]).OODetailID; |
|||
OOCode = $("#gridList").jqGrid('getRowData', ids[i]).OOCode; |
|||
Sequence = $("#gridList").jqGrid('getRowData', ids[i]).Sequence; |
|||
InvCode = $("#gridList").jqGrid('getRowData', ids[i]).InvCode; |
|||
} |
|||
$.modalOpen({ |
|||
id: "FormAddItemLot", |
|||
title: "委外条码产生", |
|||
url: "/OMAY/ICSOOCreateLot/OOFrom?OOCode=" + encodeURI(encodeURI(OOCode)) + "&Sequence=" + Sequence + "&InvCode=" + InvCode + "&Type=" + 201 + "&OODetailID=" + OODetailID + "&" + Math.random(), |
|||
width: "550px", |
|||
height: "1000px", |
|||
callBack: function (iframeId) { |
|||
top.frames[iframeId].submitForm(); |
|||
} |
|||
}); |
|||
} |
|||
else if (Type == '20') { |
|||
for (var i in ids) { |
|||
OOPickCode = $("#gridList").jqGrid('getRowData', ids[i]).OOCode; |
|||
Sequence = $("#gridList").jqGrid('getRowData', ids[i]).Sequence; |
|||
OODetailID = $("#gridList").jqGrid('getRowData', ids[i]).OODetailID; |
|||
InvCode = $("#gridList").jqGrid('getRowData', ids[i]).ZInvCode; |
|||
} |
|||
$.modalOpen({ |
|||
id: "FormAddItemLot", |
|||
title: "委外备料条码生成", |
|||
url: "/OMAY/ICSOOCreateLot/OOFrom?OOPickCode=" + encodeURI(encodeURI(OOPickCode)) + "&Sequence=" + Sequence + "&InvCode=" + InvCode + "&Type=" + 20 + "&OODetailID=" + OODetailID + "&" + Math.random(), |
|||
width: "550px", |
|||
height: "1000px", |
|||
callBack: function (iframeId) { |
|||
top.frames[iframeId].submitForm(); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
|
|||
function fullscreen() { |
|||
var docElm = document.documentElement; |
|||
if (docElm.requestFullscreen) { |
|||
docElm.requestFullscreen(); |
|||
} else if (docElm.mozRequestFullScreen) { |
|||
docElm.mozRequestFullScreen(); |
|||
} else if (docElm.webkitRequestFullScreen) { |
|||
docElm.webkitRequestFullScreen(); |
|||
} else if (docElm.msRequestFullscreen) { |
|||
docElm.msRequestFullscreen(); |
|||
} |
|||
$(window).bind('resize', function () { |
|||
$("#gridList").setGridWidth($(window).width()); |
|||
}).trigger('resize'); |
|||
$(window).bind('resize', function () { |
|||
$("#gridList").setGridHeight($(window).height()); |
|||
}).trigger('resize'); |
|||
} |
|||
|
|||
|
|||
function btnPrint() { |
|||
debugger; |
|||
var OOld = ''; |
|||
if (Type == '201') { OOld = '00003'; }//工单成品生成条码 |
|||
if (Type == '20') { OOld = 'FCP00001'; }//副产品生成条码 |
|||
var objArr = ''; |
|||
var arr = []; |
|||
var obj = $("#gridList").jqGrid("getRowData"); |
|||
for (var i = 0; i < obj.length; i++) { |
|||
var $SubGird = $("#gridList_" + obj[i].ID + "_t"); |
|||
var rowData = $SubGird.jqGrid('getGridParam', 'selarrrow'); |
|||
if (rowData != "undefined" && rowData != null && rowData.length != 0) { |
|||
for (var j = 0; j < rowData.length; j++) { |
|||
objArr += "'" + rowData[j] + "',"; |
|||
} |
|||
objArr = objArr.slice(0, objArr.length - 1); |
|||
objArr = "" + objArr + "|"; |
|||
arr.push(objArr); |
|||
} |
|||
} |
|||
if (objArr == "") { |
|||
$.modalAlertNew("WMS00101"); |
|||
return; |
|||
} |
|||
$.modalOpen({ |
|||
id: "PrintLot", |
|||
title: "打印", |
|||
url: "/WMS/Print/PrintView?Arguments=" + encodeURI(encodeURI(arr)) + "&OOld=" + OOld + "&" + Math.random(), |
|||
width: "550px", |
|||
height: "1000px", |
|||
callBack: function (iframeId) { |
|||
top.frames[iframeId].submitForm(); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
|
|||
function btn_ExportAll() { |
|||
debugger; |
|||
var objArr = ''; |
|||
var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); |
|||
for (var i in ids) { |
|||
objArr += "'" + $("#gridList").jqGrid('getRowData', ids[i]).ID + "',"; |
|||
} |
|||
if (objArr=="") { |
|||
$.modalAlert("请选择单据后导出!"); |
|||
return; |
|||
} |
|||
var postData = "&Type=" + Type + ""; |
|||
//postData += "&ID=" + ID |
|||
|
|||
postData += "&ID=" + objArr; |
|||
$.download("/WMS/WMSCreateItemLot/StatementExportAll" + "?" + Math.random(), postData, 'post'); |
|||
} |
|||
function Select_SelGDLX() { |
|||
$("#SelGDLX").find("option").remove(); |
|||
var DeptName = $("#SelGDLX option:checked").text(); |
|||
$("#SelGDLX").append("<option value=''>--请选择--</option>"); |
|||
$.ajax({ |
|||
url: "/WMS/WMSCreateItemLot/SelGDLX" + "?" + Math.random(), |
|||
dataType: "json", |
|||
async: false, |
|||
success: function (data) { |
|||
if (data != null && data.length > 0) { |
|||
for (var i = 0; i < data.length; i++) { |
|||
$("#SelGDLX").append("<option value='" + data[i].Code + "'>" + data[i].Name + "</option>"); |
|||
} |
|||
} |
|||
} |
|||
}); |
|||
$("#SelGDLX option:checked").val(''); |
|||
} |
|||
|
|||
|
|||
</script> |
|||
<iframe id="ifrm" src="" width="0" height="0"></iframe> |
|||
<script> |
|||
|
|||
</script> |
|||
|
|||
<div class="topPanel" style="height:100px;"> |
|||
<div class="toolbar"> |
|||
<div class="btn-group"> |
|||
<a id="NF-Create" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnCreate()"><i class="fa fa-pencil-square-o"></i>生成条码</a> |
|||
<a id="NF-Delete" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnDelete()"><i class="fa fa-pencil-square-o"></i>删除条码</a> |
|||
<a id="NF-Print" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btnPrint()"><i class="fa fa-pencil-square-o"></i>打印</a> |
|||
@*<a id="NF-ExportAll" authorize="yes" style="margin-left:3px;" class="btn btn-primary" onclick="btn_ExportAll()"><i class="fa fa-pencil-square-o"></i>导出</a>*@ |
|||
@*<a id="NF-ExportAll" authorize="yes" class="btn btn-default" onclick="btn_ExportAll()"><i class="fa fa-download"></i>导出</a>*@ |
|||
<a class="btn btn-primary" onclick="$.reload()"><span class="glyphicon glyphicon-refresh"></span></a> |
|||
|
|||
</div> |
|||
<div class="btn-group" style="display:block;padding-left:2px;"> |
|||
<a class="btn btn-primary" id="downPrintControl" href="~/PrintActivex.exe" style="display:none">点击下载打印组件</a> |
|||
</div> |
|||
<script>$('.toolbar').authorizeButton()</script> |
|||
</div> |
|||
<div class="search"> |
|||
<table> |
|||
<tr> |
|||
<td class="POCodeShow" style="text-align:right;"><label class="lglabel " id="POCodeShowLable" for="txt_POCode"> </label>:</td> |
|||
<td class="POCodeShow"> |
|||
<div class="input-group"> |
|||
<input id="txt_POCode" type="text" class="form-control" style="width: 100px;"> |
|||
</div> |
|||
</td> |
|||
<td class="HideItems" style="text-align:right;"><label class="lglabel HideItems" for="txt_VenCode"> 供应商代码</label>:</td> |
|||
<td class="HideItems"> |
|||
<div class="input-group HideItems"> |
|||
<input id="txt_VenCode" type="text" class="form-control HideItems" style="width: 100px;"> |
|||
</div> |
|||
</td> |
|||
|
|||
<td class="HideItems" style="text-align:right;"><label class="lglabel HideItems" for="txt_VenName"> 供应商名称</label>:</td> |
|||
<td class="HideItems"> |
|||
<div class="input-group HideItems"> |
|||
<input id="txt_VenName" type="text" class="form-control HideItems" style="width: 100px;"> |
|||
</div> |
|||
</td> |
|||
|
|||
</tr> |
|||
<tr> |
|||
<td style="text-align:right;"><label class="lglabel" for="txt_InvCode"> 料品编码</label>:</td> |
|||
<td> |
|||
<div class="input-group"> |
|||
<input id="txt_InvCode" type="text" class="form-control" style="width: 100px;"> |
|||
</div> |
|||
</td> |
|||
|
|||
<td style="text-align:right;"><label class="lglabel" for="txt_InvName"> 料品名称</label>:</td> |
|||
<td> |
|||
<div class="input-group"> |
|||
<input id="txt_InvName" type="text" class="form-control" style="width: 100px;"> |
|||
</div> |
|||
</td> |
|||
|
|||
<td style="text-align:right;"><label class="lglabel" for="txt_BatchCode"> 批次号</label>:</td> |
|||
<td> |
|||
<div class="input-group"> |
|||
<input id="txt_BatchCode" type="text" class="form-control" style="width: 100px;"> |
|||
</div> |
|||
</td> |
|||
<td> |
|||
<label> 是否全部生成: </label> |
|||
</td> |
|||
<td> |
|||
<div class="input-group"> |
|||
<select id="selShow" name="F_Target" class="form-control" style="width: 100px;"> |
|||
<option value="0">显示全部</option> |
|||
<option value="1">已全部生成</option> |
|||
<option value="2" selected="selected">未全部生成</option> |
|||
</select> |
|||
</div> |
|||
</td> |
|||
<td id="GDLX"> |
|||
<label> 工单类型: </label> |
|||
</td> |
|||
<td id="GDLX2"> |
|||
<div class="input-group"> |
|||
<select id="SelGDLX" name="SelShow" class="form-control" style="width: 100px;"></select> |
|||
</div> |
|||
</td> |
|||
@*<td class="GDLX" style="display:none"> |
|||
<label> 工单类型: </label> |
|||
</td> |
|||
<td class="GDLX" style="display:none"> |
|||
<div class="input-group"> |
|||
<select id="selShow" name="F_Target" class="form-control" style="width: 100px;"> |
|||
<option value="0">显示全部</option> |
|||
<option value="1">已全部生成</option> |
|||
<option value="2" selected="selected">未全部生成</option> |
|||
</select> |
|||
</div> |
|||
</td>*@ |
|||
<td> |
|||
<span class="input-group-btn"> |
|||
<button id="btn_search" type="button" class="btn btn-primary"><i class="fa fa-search"></i></button> |
|||
</span> |
|||
</td> |
|||
|
|||
</tr> |
|||
|
|||
</table> |
|||
</div> |
|||
</div> |
|||
<div class="gridPanel"> |
|||
<table id="gridList"></table> |
|||
<div id="gridPager"></div> |
|||
</div> |
1302
WMS-BS/NFine.Web/Areas/OMAY/Views/ICSOOCreateLot/OOFrom.cshtml
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Reference in new issue
xxxxxxxxxx