纽威
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.
 
 
 
 
 

538 lines
27 KiB

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NFine.Code;
using NFine.Data.Extensions;
using NFine.Domain._03_Entity.SRM;
using NFine.Domain.Entity.ProductManage;
using NFine.Domain.IRepository.ProductManage;
using NFine.Repository;
using NFine.Repository.ProductManage;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Linq;
using System.Text;
namespace NFine.Application
{
public class CartonNoManageApp : RepositoryFactory<ICSVendor>
{
public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT Serial,CartonNO,CartonStatus,PrintTimes,CONVERT(NVARCHAR(50),lastPrintTime,23) as lastPrintTime,MUSERName, CONVERT(NVARCHAR(50),MTIME,23) as MTIME,EATTRIBUTE8,EATTRIBUTE3,b.cVenName,w.WorkPointName,w.WorkPointCode
FROM dbo.ICSCarton a
LEFT JOIN Sys_WorkPoint w on a.WorkPoint=w.WorkPointCode
LEFT JOIN dbo.ICSVendor b ON a.EATTRIBUTE8=b.cVenCode AND a.WorkPoint=b.WorkPoint
WHERE 1=1 and EATTRIBUTE3='SRM'";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
{
sql += " and CartonNO like '%" + queryParam["CartonNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
{
sql += " and EATTRIBUTE8 like '%" + queryParam["VenCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
{
sql += " and cVenName like '%" + queryParam["VenName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
{
sql += " and MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
{
sql += " and MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
}
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
{
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
{
sql += " and a.EATTRIBUTE8='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 子表查询
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetSubGridJson(string CartonNo, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE,
b.EATTRIBUTE8,c.ORDERNO,c.TransNo,c.TransLine,a.LotNo,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine=e.PORow AND a.WorkPoint=e.WorkPoint
WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint in(" + WorkPoint + ")";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetSubGridJson_Add(string queryJson, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
if (!string.IsNullOrEmpty(queryParam["CartonNo"].ToString()))
{
string sql = @"SELECT a.LotNo, a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE,
b.EATTRIBUTE8,c.ORDERNO,c.TransNo,c.TransLine,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine=e.PORow AND a.WorkPoint=e.WorkPoint
WHERE a.CartonNO='" + queryParam["CartonNo"].ToString() + "' and a.WorkPoint=" + WorkPoint + "";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
else
{
string sql = @"SELECT '' as LotNo,'' as ID,'' as ItemCODE,'' as INVNAME,'' as VenderLotNO,'' as LOTQTY,'' as TYPE,
'' as EATTRIBUTE8,'' as ORDERNO,'' as TransNo,'' as TransLine,'' as INVDESC,'' as INVTYPE,'' as MEMO,'' as INVSTD,'' as INVPARSETYPE
";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
}
/// <summary>
/// 子表查询
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetSubGridJson(string CartonNo, string queryJson, 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,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint in(" + WorkPoint + ")";
if (!string.IsNullOrEmpty(queryJson))
{
sql += @"UNION ALL
SELECT a.ID,a.ItemCODE,b.INVNAME,a.VenderLotNO,a.LOTQTY,a.TYPE
FROM dbo.ICSITEMLot a
LEFT JOIN dbo.ICSINVENTORY b ON a.ItemCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
WHERE a.ID IN (" + queryJson.TrimEnd(',') + ") and a.WorkPonit in (" + WorkPoint + ")";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetSubGridJsonByCreate(string POCode, string PORow)
{
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.POCode,a.PORow, CONVERT(NVARCHAR(50),a.PODate,23) as PODate,a.ORDERNO,a.VenCode,a.VenName,a.InvCode,
b.INVNAME,b.INVSTD,b.INVDESC,b.INVUOM,a.Quantity,ISNULL(c.CreatedQty,0) AS CreatedQty,isnull(c.InQty,0) as InQty,a.WorkPoint
FROM dbo.ICSPO_PoMain a
LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
LEFT JOIN (SELECT SUM(x.LOTQTY) CreatedQty,TransNO,TransLine,x.WorkPoint,
SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.LOTQTY ELSE 0 END) AS InQty
FROM dbo.ICSITEMLot x
LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
GROUP BY TransNO,TransLine,x.WorkPoint) c ON a.POCode=c.TransNO AND a.PORow=c.TransLine AND a.WorkPoint=c.WorkPoint
WHERE 1=1
and a.POCode='" + POCode + "' and a.PORow='" + PORow + "' and a.WorkPonit in (" + WorkPoint + ")";
return Repository().FindTableBySql(sql.ToString());
}
public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
{
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string dtPre = DateTime.Now.ToString("yyyyMMdd");
string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
return Repository().FindTableBySql(sql.ToString());
}
/// <summary>
/// 生成条码
/// </summary>
/// <param name="POCode"></param>
/// <param name="PORow"></param>
/// <param name="keyValue"></param>
/// <returns></returns>
public int CreateItemLotNo(string POCode, string PORow, string keyValue)
{
var queryParam = keyValue.ToJObject();
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(POCode, PORow, WorkPoint);
string Pre = VenCode + DateTime.Now.ToString("yyMMdd");
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;
for (int i = 0; i < createPageCount; i++)
{
if (i + 1 == createPageCount)
{
if (minPackQty * createPageCount > thisCreateQty)
{
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
}
}
string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
sql += string.Format(@"INSERT INTO dbo.ICSITEMLot
( ID ,LotNO ,ItemCODE ,TransNO ,TransLine ,VENDORITEMCODE ,VENDORCODE ,
VenderLotNO ,PRODUCTDATE ,LOTQTY ,ACTIVE ,Exdate ,WorkPoint ,
MUSER ,MUSERName ,MTIME ,TYPE,ORDERNO)
SELECT NEWID(),'{0}',InvCode,POCode,PORow,'',NULL,
'{1}',GETDATE(),'{2}','Y','2999-12-31 00:00:00.000','{3}',
'{4}','{5}',GETDATE(),'采购原料',ORDERNO
FROM dbo.ICSPO_PoMain WHERE POCode='{6}' AND PORow='{7}' AND WorkPoint='{3}'",
LotNo, VendorLot, LOTQTY, WorkPoint, MUSER, MUSERNAME, POCode, PORow);
sql += "\r\n";
}
int count = SqlHelper.ExecuteNonQuery(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 DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
}
public string GetVendorCode(string POCode, string PORow, string WorkPoint)
{
string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPO_PoMain
WHERE POCode='{0}' AND PORow='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
string VenCode = string.Empty;
if (dt != null && dt.Rows.Count > 0)
{
VenCode = dt.Rows[0][0].ToString();
}
return VenCode;
}
/// <summary>
/// 删除条码
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteItemLot(string keyValue)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
WHERE LOTNO IN (
SELECT LotNo FROM dbo.ICSITEMLot2Carton WHERE LotNo_ID IN ({0})
) OR LOTNO IN (
SELECT LotNO FROM dbo.ICSITEMLot WHERE ID IN ({0})
) and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt == null || dt.Rows.Count <= 0)
{
sql = string.Format(@"DELETE FROM dbo.ICSITEMLot2Carton WHERE LotNo_ID IN ({0}) and WorkPoint='{1}'; ", keyValue.TrimEnd(','), WorkPoint);
DbHelper.ExecuteNonQuery(CommandType.Text, sql);
}
else
{
msg = "所选条码已加入送货单,请先在送货单管理页面删除该条码!";
}
return msg;
}
public string DeleteCartonNos(string keyValue, string WorkPoint)
{
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
//WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
WHERE LOTNO IN (
SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint in ({1})) and WorkPoint in ({1})", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt == null || dt.Rows.Count <= 0)
{
sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint in ('{1}')
DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint in ('{1}') ", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
DbHelper.ExecuteNonQuery(CommandType.Text, sql);
}
else
{
msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
}
return msg;
}
/// <summary>
/// 删除箱号
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteCartonNo(string keyValue, string WorkPoint)
{
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
WHERE LOTNO IN (
SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint={1}) and WorkPoint={1}", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt == null || dt.Rows.Count <= 0)
{
sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint={1}
DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint={1} ", keyValue.TrimEnd(','), WorkPoint.TrimEnd(','));
DbHelper.ExecuteNonQuery(CommandType.Text, sql);
}
else
{
msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
}
return msg;
}
/// <summary>
/// 选择条码
/// </summary>
/// <returns></returns>
public DataTable GetInfoBySelectItemCode(string queryJson, ref Pagination jqgridparam)
{
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.ID, a.LotNO,a.ItemCODE,d.INVNAME,a.LOTQTY,a.TYPE,a.ORDERNO,a.TransNo,
a.TransLine,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
FROM dbo.ICSITEMLot a
LEFT JOIN dbo.ICSITEMLot2Carton b ON a.ID=b.LotNo_ID AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSASNDETAIL c ON a.LotNO=c.LOTNO AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON a.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
LEFT JOIN dbo.ICSPO_PoMain e ON a.TransNO=e.POCode AND a.TransLine=e.PORow AND a.WorkPoint=e.WorkPoint
left join (SELECT LotNo FROM ICSITEMLot2Carton WHERE CartonNo = '{0}') ss on a.LotNo=ss.LotNO
WHERE ISNULL(a.EATTRIBUTE2,'') != 'FP' AND b.LotNo_ID IS NULL AND c.LOTNO IS NULL AND a.TYPE='采购原料' and ss.LotNo is null ";
sql = string.Format(sql, queryParam["CartonNo"].ToString());
if (!string.IsNullOrEmpty(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
sql += " and a.ItemCode like '%" + queryParam["InvCode"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
sql += " and d.InvName like '%" + queryParam["InvName"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
sql += " and a.ORDERNO like '%" + queryParam["OrderNo"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
sql += " and a.TransNo like '%" + queryParam["TransNo"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
sql += " and a.TransLine like '%" + queryParam["TransLine"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
sql += " and e.VenCode like '%" + queryParam["VenCode"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["LotNo"].ToString()))
sql += " and a.LotNo like '%" + queryParam["LotNo"].ToString() + "%'";
}
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
sql += " and a.WorkPoint=" + WorkPoint + "";
//string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
//if (!string.IsNullOrEmpty(VenCode))
//{
// sql += " AND e.VenCode='"+ VenCode + "'";
//}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 获取供应商列表
/// </summary>
/// <returns></returns>
public DataTable GetVendor()
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string sql = @"
select '' as F_VenCode, '' as cVenName
union all
SELECT DISTINCT a.F_VenCode,isnull(b.cVenName,'') as cVenName FROM dbo.Sys_SRM_User a
LEFT JOIN dbo.ICSVendor b ON a.F_VenCode=b.cVenCode
WHERE a.F_VenCode IS NOT NULL AND a.F_VenCode <>'' ";
string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
if (role != "admin")
{
sql += " and b.WorkPoint=" + WorkPoint + "";
}
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public string GetCartonNo()
{
string CartonNo = string.Empty;
string VenCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
if (!string.IsNullOrEmpty(VenCode))
{
string Date = DateTime.Now.ToString("yyMMdd");
string Pre = "C" + VenCode + Date;
CartonNo = GetSerialCode(WorkPoint, "ICSCarton", "CartonNo", Pre, 3);
}
if (!string.IsNullOrEmpty(CartonNo))
{
string sql = string.Empty;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
sql = @"INSERT INTO dbo.ICSCarton
( Serial ,SelectID ,CartonNO ,CartonStatus ,
MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3)
VALUES ( NEWID(),NULL,'" + CartonNo + "','未入库','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM')";
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
return CartonNo;
}
public string GetCartonNoByPerson(string VenCode, string WorkPoint)
{
string CartonNo = string.Empty;
string Date = DateTime.Now.ToString("yyMMdd");
string Pre = "C" + VenCode + Date;
CartonNo = GetSerialCode(WorkPoint, "ICSCarton", "CartonNo", Pre, 3);
if (!string.IsNullOrEmpty(CartonNo))
{
string sql = string.Empty;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
sql = @"INSERT INTO dbo.ICSCarton
( Serial ,SelectID ,CartonNO ,CartonStatus ,
MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3)
VALUES ( NEWID(),NULL,'" + CartonNo + "','未入库','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM')";
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
return CartonNo;
}
public string CheckCartonNo(string JsonData, string CartonNo, string WorkPoint)
{
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 sql = string.Format(@"SELECT DISTINCT * FROM (
SELECT DISTINCT INVCODE FROM dbo.ICSITEMLot2Carton
WHERE CartonNO='{0}' and WorkPoint={2}
UNION ALL
SELECT DISTINCT ItemCODE AS INVCODE FROM dbo.ICSITEMLot WHERE ID IN ({1}) and WorkPoint={2}
) t", CartonNo, JsonData.TrimEnd(','), WorkPoint);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt.Rows.Count > 1)
{
msg = "箱号原有物料与新增物料编码不同!";
}
else
{
sql = string.Format(@"UPDATE dbo.ICSCarton SET ItemCode=
( SELECT DISTINCT ItemCODE AS INVCODE FROM dbo.ICSITEMLot WHERE ID IN ({0}) and WorkPoint={2})
WHERE CartonNO='{1}' and WorkPoint={2}", JsonData.TrimEnd(','), CartonNo, WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
sql = @"INSERT INTO dbo.ICSITEMLot2Carton
( ID ,LotNo_ID ,CartonNO ,INVCODE ,LotNO ,Qty ,OrderNO ,BatchNO ,
MUSER ,MUSERName ,MTIME ,WorkPoint )
SELECT NEWID(),ID,'" + CartonNo + @"',ItemCODE,LotNO,LOTQTY,OrderNO,VenderLotNO,
'" + MUSER + "','" + MUSERNAME + "',getdate()," + WorkPoint + @"
FROM dbo.ICSITEMLot
WHERE ID IN(" + JsonData.TrimEnd(',') + ") and WorkPoint=" + WorkPoint + "";
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
return msg;
}
/// <summary>
/// 删除箱号内的条码
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteInfo(string keyValue,string WorkPoint)
{
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
string sql = string.Format(@"DELETE FROM dbo.ICSITEMLot2Carton WHERE ID IN ({0}) and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
public string CheckIsAll(string CartonNo)
{
string sql = @"SELECT a.CartonNO,b.ASNDETAILID
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSASNDETAIL b ON a.LotNo=b.LOTNO AND a.WorkPoint=b.WorkPoint
WHERE a.CartonNO='" + CartonNo + "' AND b.ASNDETAILID IS not NULL";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt != null && dt.Rows.Count > 0)
{
return "0";
}
else
{
return "1";
}
}
}
}