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

970 lines
50 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 CAManageApp : RepositoryFactory<ICSVendor>
{
public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
#region [旧]
//string sql = @"SELECT ID,DocNo,MUSER,MUSERName,CONVERT(VARCHAR(100), MTIME,23) AS MTIME,
// CASE [Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
// SupplierCode,SupplierName,PubUser,CONVERT(VARCHAR(100), PubTime,23) AS PubTime,[Remark],WorkPoint
// FROM ICSCA
// WHERE 1=1 ";
//if (!string.IsNullOrWhiteSpace(queryJson))
//{
// if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
// {
// sql += " and DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
// }
// if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
// {
// sql += " and SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
// }
// if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
// {
// sql += " and SupplierName like '%" + queryParam["SupplierName"].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 WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
//}
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
//{
// sql += " and SupplierCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
//}
#endregion
string sql = @"SELECT DISTINCT a.ID,a.DocNo,a.MUSER,a.MUSERName,d.WorkPointName,CONVERT(VARCHAR(100), a.MTIME,23) AS MTIME,
CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100), a.PubTime,23) AS PubTime,a.[Remark],a.WorkPoint,
CAST(c.POQty AS DECIMAL(18,2)) AS PoQty,c.YSHQty AS ArriveQty
FROM ICSCA a
LEFT JOIN ICSCADetail b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
LEFT JOIN view_PoMain c ON b.Src_ASNDocNo = c.DNNO
LEFT JOIN Sys_WorkPoint d on a.WorkPoint=d.WorkPointCode
WHERE 1=1";
//(SELECT CAST(ISNULL(SUM([YRKQty]),0) AS DECIMAL(18,2)) FROM view_PoMain WHERE DNNO = c.PUCode) AS ArriveQty
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
{
sql += " and a.DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
{
sql += " and a.SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
{
sql += " and a.SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
{
sql += " and a.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
{
sql += " and a.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.SupplierCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetGridJsonAdmin(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
#region [旧]
// string sql = @"SELECT ID,DocNo,MUSER,MUSERName,CONVERT(VARCHAR(100), MTIME,23) AS MTIME,
// CASE [Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
// SupplierCode,SupplierName,PubUser,CONVERT(VARCHAR(100), PubTime,23) AS PubTime,[Remark],WorkPoint
// FROM ICSCA
// WHERE 1=1 AND Status IN (1,2,3)";
// if (!string.IsNullOrWhiteSpace(queryJson))
// {
// if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
// {
// sql += " and DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
// }
// if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
// {
// sql += " and SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
// }
// if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
// {
// sql += " and SupplierName like '%" + queryParam["SupplierName"].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 WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
// }
// if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
// {
// sql += " and SupplierCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
// }
#endregion
string sql = @"SELECT DISTINCT a.ID,a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100), a.MTIME,23) AS MTIME,
CASE a.[Status] WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100), a.PubTime,23) AS PubTime,a.[Remark],a.WorkPoint,
CAST(c.POQty AS DECIMAL(18,2)) AS PoQty,c.YSHQty AS ArriveQty
FROM ICSCA a
LEFT JOIN ICSCADetail b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
LEFT JOIN view_PoMain c ON b.Src_ASNDocNo = c.DNNO
WHERE 1=1 AND a.Status IN (1,2,3)";
//(SELECT CAST(ISNULL(SUM([YRKQty]),0) AS DECIMAL(18,2)) FROM view_PoMain WHERE DNNO = c.PUCode) AS ArriveQty
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
{
sql += " and a.DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
{
sql += " and a.SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
{
sql += " and a.SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
{
sql += " and a.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
{
sql += " and a.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.SupplierCode='" + 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 ID, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
DataTable dt = new DataTable();
List<DbParameter> parameter = new List<DbParameter>();
//string sql = @"SELECT ID,DocNo,DocLineNo,Src_ASNDocNo,Src_ASNDocLineNo,InvCode,CAST(Qty AS DECIMAL(18,2)) AS Qty
// FROM ICSCADetail
// WHERE 1=1 AND DocNo = '{0}' AND WorkPoint = '{1}'";
string sql = @"SELECT a.ID,a.DocNo,a.DocLineNo,a.Src_ASNDocNo,a.Src_ASNDocLineNo,a.InvCode,CAST(a.Qty AS DECIMAL(18,2)) AS Qty,
CAST(b.YRKQty AS DECIMAL(18,2)) AS RQty,CAST(b.YJSQty AS DECIMAL(18,2)) AS JQty,
CAST(b.YTHQty AS DECIMAL(18,2)) AS TQty
FROM ICSCADetail a
LEFT JOIN view_PoMain b ON a.Src_ASNDocNo = b.DNNO AND a.Src_ASNDocLineNo = b.DNLine
AND a.InvCode = b.LotNO
WHERE 1=1 AND DocNo = '{0}' AND WorkPoint = {1}";
sql = string.Format(sql, ID, WorkPoint);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 查询送货单新增/修改页面数据
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
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>();
string sql = @"SELECT a.ID,a.DocNo,a.DocLineNo,a.Src_ASNDocNo,a.Src_ASNDocLineNo,a.InvCode,CAST( a.Qty AS DECIMAL(18,2)) AS Qty,
b.MUSER,b.MUSERName,CONVERT(VARCHAR(100), b.MTIME,23) AS MTIME,b.SupplierCode,b.SupplierName,b.Status
FROM ICSCADetail a
INNER JOIN ICSCA b ON a.DocNo = b.DocNo AND a.WorkPoint = b.WorkPoint
WHERE 1=1 AND a.DocNo = '{0}' AND a.WorkPoint in ({1}) ";
sql = string.Format(sql, queryParam["DocNo"].ToString(), WorkPoint);
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.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
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.WorkPoint 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.TrimEnd(',');
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.ID, a.POCode,a.PORow,a.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.WorkPoint='" + 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.TrimEnd(',');
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 DeleteInfo(string keyValue)
{
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string msg = "";
string sql = string.Format(@"DELETE
FROM dbo.ICSCADetail
WHERE ID IN ({0}) and WorkPoint ='{1}' ", keyValue.TrimEnd(','), WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
/// <summary>
/// 删除对账单
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteDocNo(string keyValue)
{
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
if (string.IsNullOrEmpty(msg))
{
sql = string.Format(@"DELETE FROM ICSCADetail WHERE DocNo IN ({0}) and WorkPoint in ({1})
DELETE FROM ICSCA WHERE DocNo IN ({0}) and WorkPoint in ({1})", keyValue.TrimEnd(','), WorkPoint);
SqlHelper.ExecuteNonQuery(sql);
}
return msg;
}
public int UpDateByDocNo(string keyValue, string Status)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
if (Status == "0")
{
sql = @"UPDATE ICSCA SET STATUS = '{1}',PubUser = NULL,PubTime = NULL WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status);
}
else if (Status == "1")
{
sql = @"UPDATE ICSCA SET STATUS = '{1}',PubUser = '{2}',PubTime = GETDATE() WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status, MUSER);
}
return SqlHelper.ExecuteNonQuery(sql);
}
public int UpDateByDocNoAdmin(string keyValue, string Status)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
if (Status == "2")
{
sql = @"UPDATE ICSCA SET STATUS = '{1}',CAComptTime = GETDATE(),CAComptUser = '{2}',ModifyTime = GETDATE(),ModifyUser = '{2}'
WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status, MUSER);
}
else if (Status == "3")
{
sql = @"UPDATE ICSCA SET STATUS = '{1}',CAComptTime = NULL,CAComptUser = NULL,ModifyTime =NULL,ModifyUser = NULL
WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status);
}
return SqlHelper.ExecuteNonQuery(sql);
}
public string ChangeStatusBySTNO(string keyValue)
{
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
sql = "SELECT STNO FROM dbo.ICSPOArrive WHERE STNO IN (" + keyValue.TrimEnd(',') + ")";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
foreach (DataRow dr in dt.Rows)
{
string STNO = dr["STNO"].ToString();
if (!string.IsNullOrEmpty(STNO))
{
msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
}
}
if (string.IsNullOrEmpty(msg))
{
sql = string.Format(@"DELETE FROM dbo.ICSASNDETAIL WHERE STNO IN ({0}) and WorkPoint ='{1}'
DELETE FROM dbo.ICSASN WHERE STNO IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
SqlHelper.ExecuteNonQuery(sql);
}
return msg;
}
/// <summary>
/// 删除送货单
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteCartonNo(string keyValue)
{
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
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);
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);
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 c.ID,a.STNO,b.STLINE,CONVERT(varchar(100),g.MTime,23) AS RECEIVEDATE,e.INVCODE,e.INVNAME,c.LotNO,
CAST(c.LOTQTY AS DECIMAL(18,2)) AS LOTQTY,b.UNIT,a.STDESC,f.POCode,f.PORow
FROM ICSASN a
LEFT JOIN ICSASNDETAIL b ON a.STNO = b.STNO AND a.WorkPoint = b.WorkPoint
LEFT JOIN ICSITEMLot c ON b.LOTNO = c.LotNO AND b.WorkPoint = c.WorkPoint
LEFT JOIN ICSITEMLot2Carton d ON c.LotNO = d.LotNO AND c.WorkPoint = d.WorkPoint
LEFT JOIN ICSINVENTORY e ON b.ITEMCODE = e.INVCODE AND b.WorkPoint = e.WorkPoint
LEFT JOIN ICSPO_PoMain f ON c.TransNO = f.POCode AND c.TransLine = f.PORow AND c.WorkPoint = f.WorkPoint
LEFT JOIN ICSPOArrive g ON g.STNO = a.STNO AND g.WorkPoint = a.WorkPoint
WHERE g.Free2 = '收' AND c.LotNO NOT IN (SELECT INVCODE FROM ICSCADetail) ";
// --AND a.STNO NOT IN (SELECT Src_ASNDocNo FROM ICSCADetail)
if (!string.IsNullOrEmpty(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
sql += " and e.INVCODE like '%" + queryParam["InvCode"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
sql += " and e.INVNAME like '%" + queryParam["InvName"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
sql += " and b.STNO like '%" + queryParam["STNO"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["STLINE"].ToString()))
sql += " and b.STLINE like '%" + queryParam["STLINE"].ToString() + "%'";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
sql += " and a.VENDORCODE='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
else
sql += " and a.VENDORCODE='" + queryParam["VenCode"].ToString() + "'";
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
sql += " and a.WorkPoint in (" + WorkPoint + ")";
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 and a.F_Location=b.WorkPoint
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 in (" + WorkPoint + ")";
}
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public string GetDocNoVenCode(string Tax)
{
string DocNo = string.Empty;
string SupplierCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
string SupplierName = string.Empty;
//已改多站点
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
if (!string.IsNullOrEmpty(SupplierCode))
{
string Date = DateTime.Now.ToString("yy");
string Pre = "AS" + SupplierCode + Date;
//DocNo = GetSerialCode(WorkPoint, "ICSCA", "DocNo", Pre, 5);
SupplierName = GetSupplierName(SupplierCode);
}
//if (!string.IsNullOrEmpty(DocNo))
//{
// string sql = string.Empty;
// string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
// string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
// sql = @"INSERT INTO ICSCA (ID,DocNo,Status,SupplierCode,SupplierName,Tax,WorkPoint,MUSER,MUSERName,MTIME)
// VALUES (NEWID(),'{0}',0,'{1}','{2}','{3}','{4}','{5}','{6}',GETDATE())";
// sql = string.Format(sql, DocNo, SupplierCode, SupplierName, Tax, WorkPoint, MUSER, MUSERNAME);
// try
// {
// SqlHelper.ExecuteNonQuery(sql);
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
//}
return SupplierName;
}
public string GetDocNo(string Tax, string WorkPoint)
{
string DocNo = string.Empty;
string SupplierCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
string SupplierName = string.Empty;
//已改多站点
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
if (!string.IsNullOrEmpty(SupplierCode))
{
string Date = DateTime.Now.ToString("yy");
string Pre = "AS" + SupplierCode + Date;
DocNo = GetSerialCode(WorkPoint, "ICSCA", "DocNo", Pre, 5);
SupplierName = GetSupplierName(SupplierCode);
}
if (!string.IsNullOrEmpty(DocNo))
{
string sql = string.Empty;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
sql = @"INSERT INTO ICSCA (ID,DocNo,Status,SupplierCode,SupplierName,Tax,WorkPoint,MUSER,MUSERName,MTIME)
VALUES (NEWID(),'{0}',0,'{1}','{2}','{3}','{4}','{5}','{6}',GETDATE())";
sql = string.Format(sql, DocNo, SupplierCode, SupplierName, Tax, WorkPoint, MUSER, MUSERNAME);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
return DocNo;
}
public string GetDocNoByPerson(string SupplierCode, string Tax,string WorkPoint)
{
string DocNo = string.Empty;
string Date = DateTime.Now.ToString("yy");
string Pre = "AS" + SupplierCode + Date;
//已改多站点
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
DocNo = GetSerialCode(WorkPoint, "ICSCA", "DocNo", Pre, 5);
if (!string.IsNullOrEmpty(DocNo))
{
string sql = string.Empty;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string SupplierName = GetSupplierName(SupplierCode);
sql = @"INSERT INTO ICSCA (ID,DocNo,Status,SupplierCode,SupplierName,Tax,WorkPoint,MUSER,MUSERName,MTIME)
VALUES (NEWID(),'{0}',0,'{1}','{2}','{3}','{4}','{5}','{6}',GETDATE())";
sql = string.Format(sql, DocNo, SupplierCode, SupplierName, Tax, WorkPoint, MUSER, MUSERNAME);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
return DocNo;
}
public string GetSupplierName(string SupplierCode)
{
string sql = @"SELECT cVenName FROM ICSVendor WHERE cVenCode = '{0}'";
sql = string.Format(sql, SupplierCode);
try
{
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrEmpty(dt.Rows[0][0].ToString()))
return dt.Rows[0][0].ToString();
else
return "";
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
public string CheckSTNO_ItemCode(string JsonData, string DocNo)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string msg = "";
string sql = string.Empty;
sql = @"INSERT INTO ICSCADetail(ID,DocNo,DocLineNo,Src_ASNDocNo,Src_ASNDocLineNo,
InvCode,Qty,InvUom,MUSER,MUSERName,MTIME,WorkPoint)
SELECT NEWID(),'{0}',DNLine,DNNO,DNLine,LotNO,LotQty,InvUom,
'{1}','{2}',GETDATE(),'{3}'
FROM view_PoMain
WHERE LotNO IN (" + JsonData.TrimEnd(',') + ")";
sql = string.Format(sql, DocNo, MUSER, MUSERNAME, WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
public string CheckSTNO_CartonNo(string JsonData, string STNO)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
//已改多站点
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string msg = "";
string sql = string.Empty;
sql = @"INSERT INTO dbo.ICSASNDETAIL
( ASNDETAILID ,CREATEDATE ,CREATETIME ,CREATEUSER ,
ITEMCODE ,ITEMNAME ,LOGDATE ,LOGTIME ,LOGUSER ,
LOTNO ,PLANQTY ,STDSTATUS ,STLINE ,
STNO ,WorkPoint)
SELECT NEWID(),GETDATE(),GETDATE(),'" + MUSER + @"',
a.INVCODE,b.INVNAME,GETDATE(),GETDATE(),'" + MUSER + @"',
a.LotNO,c.LOTQTY,'0',0,
'" + STNO + "','" + WorkPoint + @"'
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSINVENTORY b ON a.INVCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
WHERE a.CartonNO IN (" + JsonData.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
/// <summary>
/// 获取箱号主表信息
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetCartonGridJson(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT Serial,a.CartonNO,CartonStatus,PrintTimes,
lastPrintTime,a.MUSERName,a.MTIME,EATTRIBUTE8
FROM dbo.ICSCarton a
LEFT JOIN
(SELECT COUNT(x.LotNO) AS LotNoCount,CartonNO,x.WorkPoint FROM dbo.ICSITEMLot2Carton x
LEFT JOIN dbo.ICSITEMLot y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
GROUP BY CartonNO,x.WorkPoint) b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
WHERE b.LotNoCount>0 and a.EATTRIBUTE3='SRM'
AND a.CartonNo not IN
(SELECT b.CartonNO FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSITEMLot2Carton b ON a.LOTNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
{
sql += " and a.CartonNO like '%" + queryParam["CartonNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
{
sql += " and b.OrderNO like '%" + queryParam["OrderNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
{
sql += " and b.TransNO like '%" + queryParam["TransNO"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
{
sql += " and b.TransLine like '%" + queryParam["TransLine"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
{
sql += " and a.EATTRIBUTE8 like '%" + queryParam["VenCode"].ToString() + "%' ";
}
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
{
//已改多站点
sql += " and a.WorkPoint in ('" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "')";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 箱号子表查询
/// </summary>
/// <param name="CartonNo"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetCartonSubGridJson(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.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='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetCAListGridJson(string queryJson, ref Pagination jqgridparam)
{
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.ID,a.DocNo AS ASDocNo,c.InvCode,c.InvName,c.InvStd,
CAST(c.YSHQty AS DECIMAL(18,2)) AS RkQty,
c.InvUom,CAST(c.POPrice AS DECIMAL(18,2)) AS PoPrice,
CAST(c.POPrice*a.Tax AS DECIMAL(18,2)) AS TotalPrice,
CONVERT(VARCHAR(100),a.MTIME,23) AS ASDate,
CASE a.Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
b.Src_ASNDocNo AS DNDocNo,c.POCode AS POCode,CONVERT(VARCHAR(100),c.PODate,23) AS PODate,a.SupplierCode
FROM ICSCA a
INNER JOIN ICSCADetail b ON a.DocNo = b.DocNo
LEFT JOIN view_PoMain c ON b.InvCode = c.LotNO
WHERE 1=1";
if (!string.IsNullOrEmpty(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["ASDocNo"].ToString()))
sql += " AND a.DocNo like '%" + queryParam["ASDocNo"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
sql += " AND c.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["DNDocNo"].ToString()))
sql += " AND b.Src_ASNDocNo like '%" + queryParam["DNDocNo"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
sql += " AND c.POCode like '%" + queryParam["POCode"].ToString() + "%'";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
sql += " AND a.SupplierCode = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
//已改多站点
sql += " AND a.WorkPoint in ('" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "')";
sql += @" GROUP BY a.ID,a.DocNo,c.InvCode,c.InvName,c.InvStd,c.InvUom,c.POPrice,a.MTIME,a.Status,b.Src_ASNDocNo,
c.POCode,c.PODate,a.SupplierCode,a.Tax,c.YSHQty ";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetASNListExport(string keyVaule)
{
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.STNO AS 送货单号,a.ITEMCODE 物料编码,d.INVNAME 物料名称,d.INVSTD AS 规格型号,
d.INVPARSETYPE AS 存货代码
,d.INVTYPE 描述1,d.INVDESC 描述2,h.ReMark 行备注,case
when a.RECEIVEQTY is null then '否'
else '是'
end as 是否到货,
a.LOTNO 条码,b.VenderLotNO 条码批次,
b.LOTQTY 数量,c.CartonNO 箱号,e.VENDORCODE 供应商编码,f.cVenName 供应商名称,
b.TransNO 采购单号,b.TransLine 采购单行,g.F_RealName 维护人, CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME 维护时间
FROM dbo.ICSASNDETAIL a
LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot2Carton 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.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.cVenCode AND a.WorkPoint=f.WorkPoint
LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account
LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint where 1=1";
sql += " and a.ASNDETAILID in (" + keyVaule + ")";
//已改多站点
sql += " and a.WorkPoint in ('" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "')";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public DataTable GetASNListExport(string ORDERNO, string STNO, string BeginDate, string EndDate, string VenCode, string VenName, string VenderLotNO, string IsReceive)
{
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.STNO AS 送货单号,h.ORDERNO as 项目号,a.ITEMCODE 物料编码,d.INVNAME 物料名称,
d.INVSTD AS 规格型号,d.INVPARSETYPE AS 存货代码,
d.INVTYPE 描述1,d.INVDESC 描述2,h.ReMark 行备注,case
when a.RECEIVEQTY is null then '否'
else '是'
end as 是否到货,
a.LOTNO 条码,b.VenderLotNO 条码批次,
b.LOTQTY 数量,c.CartonNO 箱号,e.VENDORCODE 供应商编码,f.cVenName 供应商名称,
b.TransNO 采购单号,b.TransLine 采购单行,g.F_RealName 维护人,CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME 维护时间
FROM dbo.ICSASNDETAIL a
LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot2Carton 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.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.cVenCode AND a.WorkPoint=f.WorkPoint
LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account
LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint where 1=1";
if (!string.IsNullOrWhiteSpace(ORDERNO))
sql += " and a.ORDERNO like '%" + ORDERNO + "%'";
if (!string.IsNullOrWhiteSpace(STNO))
sql += " and a.STNO like '%" + STNO + "%'";
if (!string.IsNullOrWhiteSpace(BeginDate))
sql += " and e.CREATETIME >= '" + BeginDate + "'";
if (!string.IsNullOrWhiteSpace(BeginDate))
sql += " and e.CREATETIME <= '" + EndDate + "'";
if (!string.IsNullOrWhiteSpace(VenCode))
sql += " and e.VENDORCODE like '%" + VenCode + "%'";
if (!string.IsNullOrWhiteSpace(VenCode))
sql += " and f.cVenName like '%" + VenName + "%'";
if (!string.IsNullOrWhiteSpace(VenderLotNO))
sql += " and b.VenderLotNO like '%" + VenderLotNO + "%'";
if (IsReceive == "1")
{
sql += " and isnull(a.RECEIVEQTY,0)<>0";
}
else if (IsReceive == "2")
{
sql += " and isnull(a.RECEIVEQTY,0)=0";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
{
sql += " and e.VENDORCODE='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
}
//已改多站点
sql += " and a.WorkPoint in ('" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "')";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public string CheckIsAll(string STNO)
{
string sql = @"SELECT * FROM dbo.ICSASNDETAIL WHERE STNO='" + STNO + "' AND ISNULL(RECEIVEQTY,0)<>0";
//已改多站点
sql += " and WorkPoint in ('" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "')";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt != null && dt.Rows.Count > 0)
{
return "0";
}
else
{
return "1";
}
}
}
}