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.
926 lines
36 KiB
926 lines
36 KiB
using NFine.Application;
|
|
using NFine.Application.ProductManage;
|
|
using NFine.Code;
|
|
using NFine.Data.Extensions;
|
|
using NFine.Domain.Entity.ProductManage;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
|
|
namespace NFine.Web.Areas.SRM.Controllers
|
|
{
|
|
public class ASNManageController : ControllerBase
|
|
{
|
|
private ASNManageApp App = new ASNManageApp();
|
|
|
|
public ActionResult Index()
|
|
{
|
|
return View();
|
|
}
|
|
public ActionResult ASNAdd()
|
|
{
|
|
return View();
|
|
}
|
|
public ActionResult ASNCartonSelect()
|
|
{
|
|
return View();
|
|
}
|
|
public ActionResult ASNSelect()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public ActionResult ASNUpdate()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public ActionResult ASNUpload()
|
|
{
|
|
return View();
|
|
}
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetGridJson(Pagination pagination, string queryJson)
|
|
{
|
|
DataTable ListData = App.GetGridJson(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 STNO, Pagination pagination,string WorkPoint)
|
|
{
|
|
DataTable ListData = App.GetSubGridJson(STNO, ref pagination, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = ListData,
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetSubGridJson_Add(string queryJson, Pagination pagination)
|
|
{
|
|
DataTable ListData = App.GetSubGridJson_Add(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 GetFormJson(string keyValue)
|
|
//{
|
|
// //var data = maintainAppApp.GetForm(keyValue);
|
|
// //return Content(data.ToJson());
|
|
//}
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
[ValidateAntiForgeryToken]
|
|
public ActionResult SubmitForm(string POCode, string PORow, string keyValue)
|
|
{
|
|
int i = App.CreateItemLotNo(POCode, PORow, keyValue);
|
|
if (i > 0)
|
|
{
|
|
return Success("发布成功!");
|
|
}
|
|
else
|
|
{
|
|
return Error("发布失败!");
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetSubGridJsonByCreate(string POCode, string PORow)
|
|
{
|
|
DataTable ListData = App.GetSubGridJsonByCreate(POCode, PORow);
|
|
var JsonData = new
|
|
{
|
|
rows = ListData,
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetVendorLotNo(string VenCode, string WorkPoint)
|
|
{
|
|
DataTable ListData = App.GetVendorLotNo(VenCode, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
VendorLotNo = ListData.Rows[0][0].ToString(),
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
|
|
public ActionResult DeleteSTNO(string keyValue, string WorkPoint, string EATTRIBUTE1)
|
|
{
|
|
string msg = App.DeleteSTNO(keyValue, WorkPoint, EATTRIBUTE1);
|
|
if (string.IsNullOrEmpty(msg))
|
|
{
|
|
return Success("删除成功!");
|
|
}
|
|
else
|
|
{
|
|
return Error(msg);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
[ValidateAntiForgeryToken]
|
|
public ActionResult UpDateBySTNO(string keyValue, string Status, string WorkPoint)
|
|
{
|
|
int result = App.UpDateBySTNO(keyValue, Status, WorkPoint);
|
|
if (result > 0)
|
|
{
|
|
return Success("操作成功!");
|
|
}
|
|
else
|
|
{
|
|
return Error("操作失败!");
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
[ValidateAntiForgeryToken]
|
|
public ActionResult UpDateBySTNODH(string keyValue)
|
|
{
|
|
string result = App.UpDateBySTNODH(keyValue);
|
|
if (string.IsNullOrWhiteSpace( result))
|
|
{
|
|
return Success("操作成功!");
|
|
}
|
|
else
|
|
{
|
|
return Error("操作失败!失败原因:"+ result);
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult CheckIsAll(string STNO,string WorkPoint)
|
|
{
|
|
string _result = App.CheckIsAll(STNO, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
result = _result
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
#region 打印
|
|
/// <summary>
|
|
/// 打印数据参数:服务器的URL+打印的文件名,转化为Base64编码
|
|
/// </summary>
|
|
protected string strPrintData;
|
|
/// <summary>
|
|
/// 标识是否安装了控件
|
|
/// </summary>
|
|
protected bool bIsInstallPrintControl = true;
|
|
/// <summary>
|
|
/// 打印控件的Cookie值
|
|
/// </summary>
|
|
protected string strPrintControlCookie = "";
|
|
|
|
|
|
/// <summary>
|
|
/// 获取Url中去掉文件名的路径
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private string GetUrlPath()
|
|
{
|
|
string strUrl = Request.Url.ToString();
|
|
int iEnd = strUrl.LastIndexOf("/");
|
|
strUrl = strUrl.Substring(0, iEnd + 1);
|
|
|
|
return strUrl;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置控件调用的Cookie值,判断是否安装了打印控件
|
|
/// </summary>
|
|
/// <param name="pJson"></param>
|
|
private void SetCookieAndURL(PrintJson pJson)
|
|
{
|
|
bIsInstallPrintControl = false;
|
|
strPrintControlCookie = "";
|
|
HttpCookie pCookieInstall = Request.Cookies["InstallPrintControl"];
|
|
if (pCookieInstall != null)
|
|
{ //Cookie存在
|
|
strPrintControlCookie = pCookieInstall.Value.ToString();
|
|
|
|
//以Cookie值查找在数据表中是否存在
|
|
string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie";
|
|
SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strPrintControlCookie) };
|
|
using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie))
|
|
{
|
|
if (drCookie.Read())
|
|
{ //标识为已经安装
|
|
bIsInstallPrintControl = true;
|
|
}
|
|
drCookie.Close();
|
|
}
|
|
//更新Cookie的保存时间
|
|
pCookieInstall.Expires = DateTime.Now.AddYears(10);
|
|
Response.SetCookie(pCookieInstall);
|
|
}
|
|
else
|
|
{//Cookie不存在,则新建Cookie
|
|
strPrintControlCookie = System.Guid.NewGuid().ToString();
|
|
pCookieInstall = new HttpCookie("InstallPrintControl", strPrintControlCookie);
|
|
pCookieInstall.Expires = DateTime.Now.AddYears(10);
|
|
Response.Cookies.Add(pCookieInstall);
|
|
}
|
|
|
|
string strUrl = Server.MapPath("/PrintTemp/") + "IsCheckInstall";
|
|
|
|
pJson.SetCookieAndURL(strPrintControlCookie, strUrl);
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult PrintItemLot(string keyValue, string WorkPoint)
|
|
{
|
|
keyValue = keyValue.Substring(1, keyValue.Length - 2);
|
|
WorkPoint = WorkPoint.Substring(1,WorkPoint.Length-2);
|
|
string strPrintFileName = Server.MapPath("/ReportFile/") + "ASN.fr3";
|
|
PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
|
|
pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
|
|
pJson.MasterOptions(1, "ASNCode", false); //主从关系
|
|
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string strSql = @"SELECT z.AsnCode,z.VenCode,x.VenName,CONVERT(varchar(100),z.Mtime, 23) CREATEDATE,GETDATE() AS printdate,z.EATTRIBUTE1
|
|
,VenPerson,VenHand,CONVERT(varchar(20), GETDATE(), 23) as DateNo
|
|
,CONVERT(varchar(20), z.mtime , 23) mtime
|
|
FROM dbo.ICSASN z
|
|
left join ICSVendor x on z.VenCode=x.VenCode and z.WorkPoint=x.WorkPoint
|
|
WHERE z.AsnCode IN (" + keyValue.TrimEnd(',') + ") and z.WorkPoint=" + WorkPoint.TrimEnd(',') + "";
|
|
DataTable dtInInfo = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
|
|
strSql = @"SELECT Row_Number() OVER (partition by a.ASNCode ORDER BY a.MTIME desc) AS rowno,
|
|
aa.ASNCode, bb.InvCode,SUM(bb.Quantity)AS Quantity,cc.TransCode,b.InvName,b.InvStd,b.InvUnit,ee.BatchCode,ee.ProjectCode
|
|
,ff.CreatePerson,ff.EATTRIBUTE3 as DXEATTRIBUTE3,ff.EATTRIBUTE4 as DXEATTRIBUTE4,a.MTIME
|
|
,ff.EATTRIBUTE12,ff.CreatePerson,ISNULL(ff.Quantity,0)AS POQuantity,ISNULL(ff.Quantity,0)-ISNULL(gg.Quantity,0)AS infoQuantity,ff.EATTRIBUTE2,b.EATTRIBUTE4,bb.EATTRIBUTE3
|
|
FROM ICSASNDETAIL aa
|
|
left join dbo.ICSInventoryLot bb on aa.LOTNO=bb.lotno AND aa.WorkPoint=bb.WorkPoint
|
|
LEFT JOIN dbo.ICSInventoryLotDetail cc ON bb.LotNo=cc.LotNo AND bb.WorkPoint=cc.WorkPoint
|
|
left join ICSASN a on aa.ASNCode=a.ASNCode and a.WorkPoint=a.WorkPoint
|
|
LEFT JOIN dbo.ICSINVENTORY b ON bb.InvCode=b.INVCODE AND b.WorkPoint=a.WorkPoint
|
|
LEFT JOIN dbo.ICSExtension ee ON bb.ExtensionID=ee.ID AND bb.WorkPoint=ee.WorkPoint
|
|
LEFT JOIN ICSPurchaseOrder ff on cc.TransCode=ff.POCode and cc.TransSequence=ff.Sequence and cc.WorkPoint=ff.WorkPoint
|
|
LEFT JOIN (SELECT TransCode,TransSequence,sum(Quantity) Quantity,WorkPoint FROM dbo.ICSWareHouseLotInfoLog WHERE BusinessCode='1' GROUP BY TransCode,TransSequence,WorkPoint) gg ON ff.POCode=gg.TransCode AND ff.Sequence=gg.TransSequence AND ff.WorkPoint=gg.WorkPoint
|
|
WHERE aa.ASNCode IN (" + keyValue.TrimEnd(',') + ") and aa.WorkPoint=" + WorkPoint.TrimEnd(',') + @"
|
|
GROUP BY aa.ASNCode,bb.InvCode,cc.TransCode,b.InvName,b.InvStd,b.InvUnit,ee.BatchCode,ee.ProjectCode,a.MTIME,a.ASNCode,ff.CreatePerson,ff.EATTRIBUTE3,ff.EATTRIBUTE4 ,ff.EATTRIBUTE12,ff.Quantity,gg.Quantity,ff.EATTRIBUTE2,b.EATTRIBUTE4,bb.EATTRIBUTE3";
|
|
DataTable dtInMaterial = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
|
|
|
|
string strPrintTempFile = pJson.ShowReport(dtInInfo, dtInMaterial); //产生JSON文件内容
|
|
|
|
//把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
|
|
string strServerURL = GetUrlPath() + "PrintTemp/";
|
|
string strData = strServerURL + strPrintTempFile;
|
|
strPrintData = PrintFunction.EnBase64(strData);
|
|
var JsonData = new
|
|
{
|
|
strPrintData_1 = strPrintData,
|
|
bIsInstallPrintControl_1 = bIsInstallPrintControl,
|
|
strPrintControlCookie_1 = strPrintControlCookie
|
|
};
|
|
// string sql = @"UPDATE dbo.ICSASN
|
|
// SET ADDITION1=ISNULL(ADDITION1,0)+1,
|
|
// ADDITION2=CONVERT(varchar(100), GETDATE(), 21)
|
|
// WHERE STNO in (" + keyValue.TrimEnd(',') + ") and WorkPoint=" + WorkPoint.TrimEnd(',') + "";
|
|
// SqlHelper.ExecuteNonQuery(sql);
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
#region 根据单号打印条码信息
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult PrintItemASNLot(string keyValue, string WorkPoint)
|
|
{
|
|
keyValue = keyValue.Substring(1, keyValue.Length - 2);
|
|
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
|
|
string strPrintFileName = Server.MapPath("/ReportFile/") + "lot.fr3";
|
|
PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
|
|
pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
|
|
pJson.MasterOptions(1, "ASNCode", false); //主从关系
|
|
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string strSql = @"SELECT distinct b.ExtensionID,a.InvCode,a.LotNo AS QRLotNo,b.POCode,CONVERT(varchar(100),b.CreateDateTime, 23) PODate,g.BatchCode,a.Quantity,c.InvName,
|
|
c.InvStd,
|
|
c.ClassName,c.InvDesc,
|
|
b.VenCode,h.VenName,c.InvUnit,f.WarehouseName,
|
|
a.LotNO AS QRLotNo,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,CONVERT(varchar(100), b.PlanArriveDate, 23) as PreArriveDate
|
|
,CAST(b.VenCode+'_'+a.InvCode+'_'+CAST(a.Quantity AS NVARCHAR(20))+'_'+c.InvUnit+g.BatchCode+'_'+CONVERT(varchar(100), a.ProductDate, 23)+'_' +a.LotNo AS NVARCHAR(100)) AS erweima
|
|
,a.EATTRIBUTE3,CONVERT(varchar(100),dateadd(day,c.EffectiveDays,a.ProductDate), 23) AS exprdate,i.asnCode,b.EATTRIBUTE3 as DXEATTRIBUTE3
|
|
,a.EATTRIBUTE4 as DXEATTRIBUTE4,b.EATTRIBUTE4 as PODXEATTRIBUTE4,c1.LocationCode
|
|
FROM dbo.ICSInventoryLot a
|
|
left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint
|
|
left join ICSInventoryLotDetail e on a.lotNo=e.LotNo and a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSPurchaseOrder b ON b.POCode=e.TransCode AND b.Sequence=e.TransSequence AND a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory c ON a.InvCode=c.InvCode AND a.WorkPoint=c.WorkPoint
|
|
left join dbo.ICSInventoryBatchEnable d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint AND d.BatchEnable=1
|
|
left join ICSWarehouse f on d.WHCode=f.WarehouseCode and d.WorkPoint=f.WorkPoint
|
|
left join ICSVendor h on b.VenCode=h.VenCode and b.WorkPoint=h.WorkPoint
|
|
LEFT JOIN icsasndetail i ON a.lotNO=i.LotNO AND a.workPoint=i.workPoint
|
|
LEFT JOIN (
|
|
SELECT
|
|
InvCode,
|
|
WarehouseCode,
|
|
LocationCode,
|
|
MTIME,
|
|
WorkPoint,
|
|
new_index
|
|
FROM
|
|
(
|
|
SELECT
|
|
b.InvCode,
|
|
b.WarehouseCode,
|
|
b.LocationCode,
|
|
b.MTIME,
|
|
b.WorkPoint,
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY b.InvCode
|
|
ORDER BY b.MTIME ASC
|
|
) AS new_index
|
|
FROM
|
|
ICSWareHouseLotInfo b WITH (NOLOCK)
|
|
WHERE
|
|
b.quantity > 0
|
|
) AS subquery
|
|
WHERE
|
|
new_index = 1
|
|
) c1 ON c1.invcode = a.invcode
|
|
AND c1.WorkPoint = a.WorkPoint
|
|
WHERE i.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in (" + WorkPoint.Trim(',') + ")";
|
|
DataTable dtInInfo = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
|
|
|
|
string strPrintTempFile = pJson.ShowReport(dtInInfo); //产生JSON文件内容
|
|
|
|
//把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
|
|
string strServerURL = GetUrlPath() + "PrintTemp/";
|
|
string strData = strServerURL + strPrintTempFile;
|
|
strPrintData = PrintFunction.EnBase64(strData);
|
|
var JsonData = new
|
|
{
|
|
strPrintData_1 = strPrintData,
|
|
bIsInstallPrintControl_1 = bIsInstallPrintControl,
|
|
strPrintControlCookie_1 = strPrintControlCookie
|
|
};
|
|
// string sql = @"UPDATE dbo.ICSASN
|
|
// SET ADDITION1=ISNULL(ADDITION1,0)+1,
|
|
// ADDITION2=CONVERT(varchar(100), GETDATE(), 21)
|
|
// WHERE STNO in (" + keyValue.TrimEnd(',') + ") and WorkPoint=" + WorkPoint.TrimEnd(',') + "";
|
|
// SqlHelper.ExecuteNonQuery(sql);
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 根据单号打印条码信息
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult PrintItemASNLotByYL(string keyValue)
|
|
{
|
|
keyValue = keyValue.Substring(1, keyValue.Length - 2);
|
|
string strPrintFileName = Server.MapPath("/ReportFile/") + "lot.fr3";
|
|
PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
|
|
pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
|
|
pJson.MasterOptions(1, "ASNCode", false); //主从关系
|
|
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string strSql = @"SELECT distinct b.ExtensionID,a.InvCode,a.LotNo AS QRLotNo,b.POCode,CONVERT(varchar(100),b.CreateDateTime, 23) PODate,g.BatchCode,a.Quantity,c.InvName,
|
|
c.InvStd,
|
|
c.ClassName,c.InvDesc,
|
|
b.VenCode,h.VenName,c.InvUnit,f.WarehouseName,
|
|
a.LotNO AS QRLotNo,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,CONVERT(varchar(100), b.PlanArriveDate, 23) as PreArriveDate
|
|
,CAST(b.VenCode+'_'+a.InvCode+'_'+CAST(a.Quantity AS NVARCHAR(20))+'_'+c.InvUnit+g.BatchCode+'_'+CONVERT(varchar(100), a.ProductDate, 23)+'_' +a.LotNo AS NVARCHAR(100)) AS erweima
|
|
,a.EATTRIBUTE3,CONVERT(varchar(100),dateadd(day,c.EffectiveDays,a.ProductDate), 23) AS exprdate,i.asnCode,b.EATTRIBUTE3 as DXEATTRIBUTE3
|
|
,a.EATTRIBUTE4 as DXEATTRIBUTE4,b.EATTRIBUTE4 as PODXEATTRIBUTE4,c1.LocationCode,c.EATTRIBUTE11,c.EATTRIBUTE12,c.EATTRIBUTE13,c.EATTRIBUTE14,c.EATTRIBUTE15
|
|
,c.EATTRIBUTE16,c.EATTRIBUTE17,c.EATTRIBUTE18,
|
|
CASE WHEN c.EATTRIBUTE19='1'THEN'食品级物料'WHEN c.EATTRIBUTE19='0'THEN'非食品级物料' END EATTRIBUTE19,ISNULL(a.EATTRIBUTE6,'') as isSJBGInvCode,a.EATTRIBUTE8, CASE WHEN c.InvIQC='0' THEN '免'ELSE '' END AS InvIQC
|
|
FROM dbo.ICSInventoryLot a
|
|
left join ICSExtension g on a.ExtensionID=g.ID and a.WorkPoint=g.WorkPoint
|
|
left join ICSInventoryLotDetail e on a.lotNo=e.LotNo and a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSPurchaseOrder b ON b.POCode=e.TransCode AND b.Sequence=e.TransSequence AND a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory c ON a.InvCode=c.InvCode AND a.WorkPoint=c.WorkPoint
|
|
left join dbo.ICSInventoryBatchEnable d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint AND d.BatchEnable=1
|
|
left join ICSWarehouse f on d.WHCode=f.WarehouseCode and d.WorkPoint=f.WorkPoint
|
|
left join ICSVendor h on b.VenCode=h.VenCode and b.WorkPoint=h.WorkPoint
|
|
LEFT JOIN icsasndetail i ON a.lotNO=i.LotNO AND a.workPoint=i.workPoint
|
|
LEFT JOIN (
|
|
SELECT
|
|
InvCode,
|
|
WarehouseCode,
|
|
LocationCode,
|
|
MTIME,
|
|
WorkPoint,
|
|
new_index
|
|
FROM
|
|
(
|
|
SELECT
|
|
b.InvCode,
|
|
b.WarehouseCode,
|
|
b.LocationCode,
|
|
b.MTIME,
|
|
b.WorkPoint,
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY b.InvCode
|
|
ORDER BY b.MTIME ASC
|
|
) AS new_index
|
|
FROM
|
|
ICSWareHouseLotInfo b WITH (NOLOCK)
|
|
WHERE
|
|
b.quantity > 0
|
|
) AS subquery
|
|
WHERE
|
|
new_index = 1
|
|
) c1 ON c1.invcode = a.invcode
|
|
AND c1.WorkPoint = a.WorkPoint
|
|
WHERE i.ASNCode IN (" + keyValue.TrimEnd(',') + ")";
|
|
DataTable dtInInfo = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
|
|
|
|
string strPrintTempFile = pJson.ShowReport(dtInInfo); //产生JSON文件内容
|
|
|
|
//把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
|
|
string strServerURL = GetUrlPath() + "PrintTemp/";
|
|
string strData = strServerURL + strPrintTempFile;
|
|
strPrintData = PrintFunction.EnBase64(strData);
|
|
var JsonData = new
|
|
{
|
|
strPrintData_1 = strPrintData,
|
|
bIsInstallPrintControl_1 = bIsInstallPrintControl,
|
|
strPrintControlCookie_1 = strPrintControlCookie
|
|
};
|
|
// string sql = @"UPDATE dbo.ICSASN
|
|
// SET ADDITION1=ISNULL(ADDITION1,0)+1,
|
|
// ADDITION2=CONVERT(varchar(100), GETDATE(), 21)
|
|
// WHERE STNO in (" + keyValue.TrimEnd(',') + ") and WorkPoint=" + WorkPoint.TrimEnd(',') + "";
|
|
// SqlHelper.ExecuteNonQuery(sql);
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 写日志(用于跟踪)
|
|
/// </summary>
|
|
private void WriteLog(string strMessage)
|
|
{
|
|
string strLogFile = Server.MapPath("./Cookie_Log.txt");
|
|
StreamWriter swLogFile = null;
|
|
try
|
|
{
|
|
if (!System.IO.File.Exists(strLogFile))
|
|
{
|
|
swLogFile = System.IO.File.CreateText(strLogFile);
|
|
}
|
|
else
|
|
{
|
|
swLogFile = System.IO.File.AppendText(strLogFile);
|
|
}
|
|
swLogFile.WriteLine(strMessage);
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
finally
|
|
{
|
|
if (swLogFile != null)
|
|
swLogFile.Close();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间
|
|
/// </summary>
|
|
/// <param name="strCookie"></param>
|
|
private void UpdateCheckInstall(string strCookie)
|
|
{
|
|
bool bIsExist = false;
|
|
//判断记录是否存在
|
|
GetLastAccessTime(strCookie, ref bIsExist);
|
|
|
|
string strSql = "";
|
|
SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strCookie) };
|
|
if (bIsExist)
|
|
{ //存在则更新最后访问的时间
|
|
strSql = @"Update sys_SRM_CheckInstall
|
|
Set LastAccessTime = getDate()
|
|
Where Cookie = @Cookie";
|
|
}
|
|
else
|
|
{ //不存在则新建一条记录
|
|
strSql = @"Insert into sys_SRM_CheckInstall(Cookie, LastAccessTime)
|
|
Values( @Cookie, getDate() )";
|
|
}
|
|
DbHelper.ExecuteNonQuery(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie);
|
|
}
|
|
|
|
public DateTime ToDateTime(object SrcValue)
|
|
{
|
|
if (Convert.IsDBNull(SrcValue) == true)
|
|
return DateTime.MinValue;
|
|
else
|
|
{
|
|
try
|
|
{
|
|
return Convert.ToDateTime(SrcValue);
|
|
}
|
|
catch
|
|
{
|
|
return DateTime.MinValue;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取此Cookie的最后访问时间
|
|
/// </summary>
|
|
/// <param name="strCookie"></param>
|
|
/// <returns></returns>
|
|
private DateTime GetLastAccessTime(string strCookie, ref bool bIsExist)
|
|
{
|
|
DateTime dtLastAccessTime = DateTime.MinValue;
|
|
bIsExist = false;
|
|
|
|
string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie";
|
|
SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strCookie) };
|
|
using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie))
|
|
{
|
|
if (drCookie.Read())
|
|
{
|
|
dtLastAccessTime = ToDateTime(drCookie["LastAccessTime"]);
|
|
bIsExist = true;
|
|
}
|
|
drCookie.Close();
|
|
}
|
|
|
|
return dtLastAccessTime;
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult IsCheckInstall(string checkInstall)
|
|
{
|
|
string strValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 访问,");
|
|
if (Request.QueryString["cookie"] != null)
|
|
{ //有控件上传的Cookie值
|
|
string strCookie = Request.QueryString["cookie"].ToString();
|
|
|
|
//判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间
|
|
UpdateCheckInstall(strCookie);
|
|
|
|
strValue = strValue + "上传的cookie:" + strCookie;
|
|
}
|
|
else if (checkInstall != null)
|
|
{//Ajax检查控件是否安装了,防止那种客户把打印控件卸装了,打印时无法检测到的情况
|
|
string strCookie = checkInstall;
|
|
//读取最后访问的时间
|
|
string strResult = "PrintControlInstall";
|
|
bool bIsExist = false;
|
|
DateTime dtLastAccessTime = GetLastAccessTime(strCookie, ref bIsExist);
|
|
if (!bIsExist || dtLastAccessTime.AddSeconds(30) < DateTime.Now)
|
|
{
|
|
strResult = "NOT";
|
|
}
|
|
Response.Clear();
|
|
Response.Write(strResult);
|
|
|
|
strValue = strValue + "检测安装的值:" + strCookie;
|
|
}
|
|
|
|
WriteLog(strValue);
|
|
return null;
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult IsCheckInstall()
|
|
{
|
|
string strValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss 访问,");
|
|
if (Request.QueryString["cookie"] != null)
|
|
{ //有控件上传的Cookie值
|
|
string strCookie = Request.QueryString["cookie"].ToString();
|
|
|
|
//判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间
|
|
UpdateCheckInstall(strCookie);
|
|
|
|
strValue = strValue + "上传的cookie:" + strCookie;
|
|
}
|
|
else if (Request.QueryString["checkInstall"] != null)
|
|
{//Ajax检查控件是否安装了,防止那种客户把打印控件卸装了,打印时无法检测到的情况
|
|
string strCookie = Request.QueryString["checkInstall"];
|
|
//读取最后访问的时间
|
|
string strResult = "PrintControlInstall";
|
|
bool bIsExist = false;
|
|
DateTime dtLastAccessTime = GetLastAccessTime(strCookie, ref bIsExist);
|
|
if (!bIsExist || dtLastAccessTime.AddSeconds(30) < DateTime.Now)
|
|
{
|
|
strResult = "NOT";
|
|
}
|
|
Response.Clear();
|
|
Response.Write(strResult);
|
|
|
|
strValue = strValue + "检测安装的值:" + strCookie;
|
|
}
|
|
|
|
WriteLog(strValue);
|
|
return null;
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetICSASNCode(string RoleEnCode, string WorkPoint)
|
|
{
|
|
string ListData = App.GetICSASNCode(RoleEnCode, WorkPoint);
|
|
var data = new
|
|
{
|
|
rows = ListData,
|
|
};
|
|
return Content(data.ToJson());
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetVendor()
|
|
{
|
|
DataTable dt = App.GetVendor();
|
|
return Content(dt.ToJson());
|
|
}
|
|
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetWorkPoint()
|
|
{
|
|
DataTable dt = App.GetWorkPoint();
|
|
return Content(dt.ToJson());
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetInfoBySelectItemCode(Pagination pagination, string queryJson, string WorkPoint)
|
|
{
|
|
DataTable ListData = App.GetInfoBySelectItemCode(queryJson, ref pagination, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = ListData,
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetCartonGridJson(Pagination pagination, string queryJson, string WorkPoint)
|
|
{
|
|
DataTable ListData = App.GetCartonGridJson(queryJson, ref pagination, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = ListData,
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetLotByContainer(string Value ,string WorkPoint)
|
|
{
|
|
DataTable ListData = App.GetLotByContainer(Value, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
rows = ListData,
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SaveICSASNAndDetail(string ICSASN,string WorkPoint)
|
|
{
|
|
|
|
string msg = App.SaveICSASNAndDetail(ICSASN, WorkPoint);
|
|
if (!string.IsNullOrEmpty(msg))
|
|
{
|
|
return Error(msg);
|
|
}
|
|
else
|
|
{
|
|
return Success("添加成功!");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult UpdateICSASNAndDetail(string ICSASN)
|
|
{
|
|
|
|
string msg = App.UpdateICSASNAndDetail(ICSASN);
|
|
if (!string.IsNullOrEmpty(msg))
|
|
{
|
|
return Error(msg);
|
|
}
|
|
else
|
|
{
|
|
return Success("修改成功!");
|
|
}
|
|
}
|
|
|
|
public ActionResult GetContainerListType()
|
|
{
|
|
string sql = @"select F_ItemCode as Code,F_ItemName as Name from Sys_SRM_ItemsDetail where F_ItemId='6230217e-4413-4427-9bec-c67ba789eca9' and F_EnabledMark='1' order by F_ItemCode";
|
|
DataTable ListData = SqlHelper.GetDataTableBySql(sql);
|
|
return Content(ListData.ToJson());
|
|
}
|
|
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetGridJsonUpload(Pagination pagination, string STNO, string queryJson, string WorkPoint)
|
|
{
|
|
DataTable ListData = App.GetGridJsonUpload(queryJson, STNO,ref pagination, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = ListData,
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetGridJsonUpload2(Pagination pagination, string STNO, string queryJson, string WorkPoint)
|
|
{
|
|
DataTable ListData = App.GetGridJsonUpload2(queryJson, STNO, ref pagination, WorkPoint);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = ListData,
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult UpLoadFile(string STNO,string InvCode,string BatchCodeNum,string BatchCode,string VenCode,string Type)
|
|
{
|
|
try
|
|
{
|
|
string msg = "";
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string FileName = "";
|
|
string PathName = "";
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string Name = "";
|
|
//获取上传的文件集合
|
|
var QuotationNo = STNO + InvCode + BatchCode;
|
|
HttpFileCollection httpFile = System.Web.HttpContext.Current.Request.Files;
|
|
for (int i = 0; i < httpFile.Count; i++)
|
|
{
|
|
FileName = Path.GetFileNameWithoutExtension(httpFile[i].FileName) + Path.GetExtension(httpFile[i].FileName);
|
|
string Paths = System.Web.HttpContext.Current.Server.MapPath("~\\File\\VendorFile\\" + VenCode + "\\" + QuotationNo + "");
|
|
if (!Directory.Exists(Paths))
|
|
{
|
|
Directory.CreateDirectory(Paths);
|
|
}
|
|
PathName = System.Web.HttpContext.Current.Server.MapPath("~\\File\\VendorFile\\" + VenCode + "\\" + QuotationNo + "\\" + FileName);
|
|
|
|
|
|
int iLen = httpFile[0].ContentLength;
|
|
byte[] bData = new byte[iLen];
|
|
httpFile[0].InputStream.Read(bData, 0, iLen);
|
|
FileStream fs = new FileStream(PathName, FileMode.OpenOrCreate);
|
|
fs.Write(bData, 0, bData.Length);
|
|
fs.Flush();
|
|
fs.Close();
|
|
fs.Dispose();
|
|
Name += "" + FileName + ";";
|
|
|
|
}
|
|
if (Type=="1")
|
|
{
|
|
msg = App.UpLoadFile(STNO, InvCode, BatchCode, VenCode, BatchCodeNum, FileName, PathName);
|
|
}
|
|
else
|
|
{
|
|
msg = App.UpLoadFile2(STNO, InvCode, BatchCode, VenCode, BatchCodeNum, FileName, PathName);
|
|
}
|
|
// string msg = App.UpLoadFile(STNO, InvCode, BatchCode, VenCode, BatchCodeNum, FileName, PathName);
|
|
if (!string.IsNullOrEmpty(msg))
|
|
{
|
|
return Error(msg);
|
|
}
|
|
else
|
|
{
|
|
return Success("上传成功!");
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
return Error(ex.Message);
|
|
}
|
|
|
|
|
|
}
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult CheckIsASNAudit()
|
|
{
|
|
string _result = App.CheckIsASNAudit();
|
|
var JsonData = new
|
|
{
|
|
result = _result
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ActionResult ISEableReport(string Code ,string VenCode,string Type)
|
|
{
|
|
bool result = App.ISEableReport(Code, VenCode, Type);
|
|
var JsonData = new
|
|
{
|
|
result = result
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult IsASNByCarton()
|
|
{
|
|
string _result = App.IsASNByCarton();
|
|
var JsonData = new
|
|
{
|
|
result = _result
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|