You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
404 lines
19 KiB
404 lines
19 KiB
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 Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
|
namespace NFine.Application.WMS
|
|
{
|
|
public class ICSApplyApp : RepositoryFactory<ICSVendor>
|
|
{
|
|
|
|
/// 主表查询
|
|
public DataTable SearchICSApply(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @" select a.ID ,a.ApplyCode ,a.WHCode ,c.WarehouseName,
|
|
case when a.Status ='1' then '开立' when a.Status ='2' then '审核' else '关闭' end as Status
|
|
,a.Type ,b.Name ,a.Memo ,a.CreatePerson ,a.CreateDateTime ,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
|
|
from dbo.ICSApply a
|
|
left join ICSType b on a.Type=b.Code and b.TableCode='ICSApply' and b.ColumnCode='Type' and a.WorkPoint=b.WorkPoint
|
|
left join dbo.ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=b.WorkPoint";
|
|
//sql = string.Format(sql);
|
|
//DataTable dttest = Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["Code"].ToString()))
|
|
{
|
|
sql += " and a.ApplyCode like '%" + queryParam["Code"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["UserCode"].ToString()))
|
|
{
|
|
sql += " and a.MUSER like '%" + queryParam["UserCode"].ToString() + "%' ";
|
|
}
|
|
//if (!string.IsNullOrWhiteSpace(queryParam["selShow"].ToString()))
|
|
//{
|
|
// string POStatus = queryParam["selShow"].ToString();
|
|
// if (POStatus == "1")
|
|
// {
|
|
// sql += " and a.Status='1' ";
|
|
// }
|
|
// else if (POStatus == "2")
|
|
// {
|
|
// sql += " and a.Status='2' ";
|
|
// }
|
|
// else if (POStatus == "3")
|
|
// {
|
|
// sql += " and a.Status='3' ";
|
|
// }
|
|
// else
|
|
// {
|
|
|
|
// }
|
|
//}
|
|
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
//子表查询
|
|
public DataTable SeachICSApplyDetail(string Code, ref Pagination jqgridparam)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"select a.ID ,a.ApplyCode ,a.Sequence ,a.InvCode ,a.Quantity ,a.Amount , a.ApplyQuantity ,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 ,
|
|
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 ICSApplyDetail a
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE a.ApplyCode='" + Code + "' ";
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
|
|
|
|
public DataTable GetINV(string invcode, string Code, string Invstd, string EATTRIBUTE2, ref Pagination jqgridparam)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
DataTable table = new DataTable();
|
|
string wherestr = "";
|
|
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 + "%'";
|
|
//}
|
|
string sql = @"select InvCode,InvName,InvDesc,InvUnit,InvStd from dbo.ICSInventory
|
|
where WorkPoint = '" + WorkPoint + "'" + wherestr;
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
|
|
}
|
|
|
|
|
|
public DataTable GetDocumentType()
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = @"
|
|
select '' as Code,'' as Name
|
|
union all
|
|
select Code,Name from dbo.ICSType where TableCode='ICSApply' and ColumnCode='Type' and Enable='1' and WorkPoint='{0}'
|
|
";
|
|
sql = string.Format(sql, WorkPoint);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
public DataTable GetICSApplyDetail(string ApplyCode, ref Pagination jqgridparam)
|
|
{
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"SELECT
|
|
a.ID,
|
|
a.ID as SQZID,
|
|
a.ApplyCode,
|
|
a.InvCode,
|
|
a.Quantity,
|
|
a.Amount,
|
|
b.InvName,
|
|
b.InvStd,
|
|
b.InvUnit,
|
|
a.ApplyQuantity,
|
|
a.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
|
|
FROM
|
|
ICSApplyDetail a
|
|
LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.ApplyCode='" + ApplyCode + "'";
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
//DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
|
|
|
|
//return table;
|
|
}
|
|
|
|
|
|
|
|
public string SaveICSApply(string ICSASN)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string msg = "";
|
|
string SeachCode;
|
|
string sql = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
//获取单号
|
|
SeachCode = @"DECLARE @MaxNO INT,@date varchar(20)='AP'+SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 8)
|
|
SELECT @MaxNO=SUBSTRING(MAX(ApplyCode),LEN(@date)+1,LEN(MAX(ApplyCode))-LEN(@date))+1 FROM ICSApply
|
|
WHERE SUBSTRING(ApplyCode, 1, LEN(@date))=@date
|
|
IF @MaxNO IS NULL
|
|
BEGIN
|
|
SELECT @date+'00001' AS Code
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @date+REPLICATE('0',5-LEN(@MaxNO))+CAST(@MaxNO AS nvarchar(10)) AS Code
|
|
END ";
|
|
object Code = SqlHelper.ExecuteScalar(SeachCode);
|
|
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
//创建主表
|
|
sql += @"insert into ICSApply( ID,ApplyCode,WHCode,Status,Type,Memo,CreatePerson,CreateDateTime,MUSER,MUSERName,MTIME,WorkPoint)
|
|
VALUES (NEWID(),'{0}','{1}','1','{2}','{3}','{4}',getdate(),'{4}','{5}',getdate(),'{6}')";
|
|
sql = string.Format(sql, Code,jo["WHCode"].ToString(), jo["Type"].ToString(), jo["Memo"].ToString(), MUSER, MUSERNAME, WorkPoint);
|
|
|
|
JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
|
|
foreach (var detail in resdetail)
|
|
{
|
|
JObject det = (JObject)detail;
|
|
|
|
Colspan = det["ProjectCode"].ToString() + "~" + det["BatchCode"].ToString() + "~" + det["Version"].ToString() + "~" + det["Brand"].ToString() + "~" + det["cFree1"].ToString() + "~" + det["cFree2"].ToString() + "~" + det["cFree3"].ToString() + "~" + det["cFree4"].ToString() + "~" + det["cFree5"].ToString() + "~" + det["cFree6"].ToString() + "~" + det["cFree7"].ToString() + "~" + det["cFree8"].ToString() + "~" + det["cFree9"].ToString() + "~" + det["cFree10"].ToString();
|
|
string 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 itemE in ExtensionIDList)
|
|
{
|
|
if (itemE == 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, det["ProjectCode"].ToString(), det["BatchCode"].ToString(), det["Version"].ToString(), det["Brand"].ToString(), det["cFree1"].ToString(), det["cFree2"].ToString(), det["cFree3"].ToString(), det["cFree4"].ToString(), det["cFree5"].ToString(), det["cFree6"].ToString(), det["cFree7"].ToString(), det["cFree8"].ToString(), det["cFree9"].ToString(), det["cFree10"].ToString(),
|
|
MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
sql += @"insert into ICSApplyDetail( ID,ApplyCode,Sequence,InvCode,Quantity,Amount,ApplyQuantity,ExtensionID,MUSER,MUSERName,MTIME,WorkPoint)
|
|
VALUES (NEWID(),'{0}','{1}','{2}','{3}','{4}','0','{5}','{6}','{7}',getdate(),'{8}')";
|
|
sql = string.Format(sql, Code, det["Sequence"].ToString(), det["InvCode"].ToString(), det["Quantity"].ToString(),
|
|
det["Amount"].ToString(), str1, MUSER, MUSERNAME, WorkPoint);
|
|
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "新增失败";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg=ex.Message;
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
public string UpdateICSApply(string ICSASN)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string msg = "";
|
|
string sql = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string idss = "";
|
|
string Code = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
//创建主表
|
|
sql += @"update ICSApply set WHCode='{0}' ,Memo='{1}' ,MUSER='{2}',MUSERName='{3}',MTIME=getdate() where ApplyCode='{4}'";
|
|
sql = string.Format(sql, jo["WHCode"].ToString(), jo["Memo"].ToString(), MUSER, MUSERNAME, jo["Code"].ToString());
|
|
Code = jo["Code"].ToString();
|
|
JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
|
|
foreach (var detail in resdetail)
|
|
{
|
|
JObject det = (JObject)detail;
|
|
|
|
Colspan = det["ProjectCode"].ToString() + "~" + det["BatchCode"].ToString() + "~" + det["Version"].ToString() + "~" + det["Brand"].ToString() + "~" + det["cFree1"].ToString() + "~" + det["cFree2"].ToString() + "~" + det["cFree3"].ToString() + "~" + det["cFree4"].ToString() + "~" + det["cFree5"].ToString() + "~" + det["cFree6"].ToString() + "~" + det["cFree7"].ToString() + "~" + det["cFree8"].ToString() + "~" + det["cFree9"].ToString() + "~" + det["cFree10"].ToString();
|
|
string 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 itemE in ExtensionIDList)
|
|
{
|
|
if (itemE == 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, det["ProjectCode"].ToString(), det["BatchCode"].ToString(), det["Version"].ToString(), det["Brand"].ToString(), det["cFree1"].ToString(), det["cFree2"].ToString(), det["cFree3"].ToString(), det["cFree4"].ToString(), det["cFree5"].ToString(), det["cFree6"].ToString(), det["cFree7"].ToString(), det["cFree8"].ToString(), det["cFree9"].ToString(), det["cFree10"].ToString(),
|
|
MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
if (string.IsNullOrWhiteSpace(det["SQZID"].ToString()))
|
|
{
|
|
string DetailID = Guid.NewGuid().ToString();
|
|
sql += @"insert into ICSApplyDetail( ID,ApplyCode,Sequence,InvCode,Quantity,Amount,ApplyQuantity,ExtensionID,MUSER,MUSERName,MTIME,WorkPoint)
|
|
VALUES ('{9}','{0}','{1}','{2}','{3}','{4}','0','{5}','{6}','{7}',getdate(),'{8}')";
|
|
sql = string.Format(sql, jo["Code"].ToString(), det["Sequence"].ToString(), det["InvCode"].ToString(), det["Quantity"].ToString(),
|
|
det["Amount"].ToString(), str1, MUSER, MUSERNAME, WorkPoint, DetailID);
|
|
idss += "'" + DetailID + "',";
|
|
}
|
|
else
|
|
{
|
|
//子表修改
|
|
sql += @"update ICSApplyDetail set InvCode='{0}' ,Quantity='{1}',Amount='{2}',MUSER='{3}',MUSERName='{4}',MTIME=getdate() where ID='{5}' and WorkPoint='{6}'";
|
|
sql = string.Format(sql, det["InvCode"].ToString(), det["Quantity"].ToString(), det["Amount"].ToString(), MUSER, MUSERNAME, det["SQZID"].ToString(), WorkPoint);
|
|
|
|
idss += "'" + det["SQZID"].ToString() + "',";
|
|
}
|
|
}
|
|
}
|
|
sql += @"DELETE from ICSApplyDetail where ApplyCode ='{0}' and id not in ({1})";
|
|
sql = string.Format(sql, Code, idss.Substring(0, idss.Length - 1));
|
|
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "修改失败";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg = ex.Message;
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
public string DeleteICSApply(string keyValue)
|
|
{
|
|
//站点信息
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = "";
|
|
keyValue = keyValue.Substring(1, keyValue.Length - 2);
|
|
string sql = string.Empty;
|
|
|
|
sql += string.Format(@"DELETE FROM dbo.ICSApply WHERE ApplyCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
|
|
sql += string.Format(@"DELETE FROM dbo.ICSApplyDetail WHERE ApplyCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg = ex.Message;
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
public string AuditICSApply(string keyValue)
|
|
{
|
|
//站点信息
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = "";
|
|
keyValue = keyValue.Substring(1, keyValue.Length - 2);
|
|
string sql = string.Empty;
|
|
sql += string.Format(@"update dbo.ICSApply set Status='2' WHERE ApplyCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg=ex.Message;
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|