|
|
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.Configuration; 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 CartonNoManageController : ControllerBase { private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); private CartonNoManageApp App = new CartonNoManageApp();
public ActionResult Index() { return View(); }
public ActionResult CartonNoAdd() { return View(); } public ActionResult CartonNoUpdate() { return View(); } public ActionResult SeachLotNo() { return View(); }
public ActionResult CartonNoAddByASN() { 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 CartonNo, Pagination pagination) { DataTable ListData = App.GetSubGridJson(CartonNo, ref pagination); var JsonData = new { total = pagination.total, page = pagination.page, records = pagination.records, rows = ListData, }; return Content(JsonData.ToJson()); }
[HttpGet] [HandlerAjaxOnly] public ActionResult GetSubGridJsons(string CartonNo,string WorkPointCode ,Pagination pagination) { DataTable ListData = App.GetSubGridJsons(CartonNo, WorkPointCode, 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_Add(string queryJson,string WorkPoint, Pagination pagination) { DataTable ListData = App.GetSubGridJson_Add(queryJson, WorkPoint, 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_AddByAsn(string queryJson, string WorkPoint, Pagination pagination) { DataTable ListData = App.GetSubGridJson_AddByAsn(queryJson, WorkPoint, 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()); }
[HttpPost] [HandlerAjaxOnly] [ValidateAntiForgeryToken] public ActionResult DeleteCartonNo(string keyValue, string Work) { string msg = App.DeleteCartonNo(keyValue, Work); if (string.IsNullOrEmpty(msg)) { return Success("删除成功!"); } else { return Error(msg); } }
[HttpGet] [HandlerAjaxOnly] public ActionResult CheckIsAll(string CartonNo) { string _result = App.CheckIsAll(CartonNo); 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 Type) { string strSql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string CusterJC = ConfigurationManager.ConnectionStrings["CusterJC"].ConnectionString; keyValue = keyValue.Substring(1, keyValue.Length - 2); string strPrintFileName = Server.MapPath("/ReportFile/") + "CartonNo.fr3"; PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName); pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
string strPrintTempFile = string.Empty; log.Info("界面传参:"+ Type); if (CusterJC == "咖博士") { pJson.MasterOptions(1, "ContainerCode", false); //主从关系
strSql = @" SELECT DISTINCT a.ContainerCode,f.VenName
FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint LEFT JOIN icsVendor f ON a.EATTRIBUTE8=f.VenCode and a.WorkPoint=f.WorkPoint LEFT JOIN ICSInventory g ON c.InvCode=g.INvCode AND c.WorkPoint=g.WorkPoint WHERE 1=1 and a.ContainerType='ContainerType01' and a.ContainerCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',');
DataTable dtInInfo = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); strSql = @" SELECT DISTINCT c.invCode,g.InvName,sum(c.Quantity) AS Quantity,a.ContainerCode,f.VenName
FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint LEFT JOIN icsVendor f ON a.EATTRIBUTE8=f.VenCode and a.WorkPoint=f.WorkPoint LEFT JOIN ICSInventory g ON c.InvCode=g.INvCode AND c.WorkPoint=g.WorkPoint WHERE 1=1 and a.ContainerType='ContainerType01' and a.ContainerCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',');
strSql += " group by c.InvCode,g.InvName,a.ContainerCode,f.VenName "; DataTable dtInMaterial = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
strPrintTempFile = pJson.ShowReport(dtInInfo,dtInMaterial); //产生JSON文件内容
} else { if (Type == "1") { strSql = @"
SELECT DISTINCT f.VenCode,f.VenName, e.EATTRIBUTE4 as PODXEATTRIBUTE4,ContainerCode as QRLotNo,g.invcode,g.invname,g.invstd,e.pocode,CONVERT(varchar(100), a.MTIME, 112) AS BatchCode,g.InvUnit,SUM(c.Quantity) AS Quantity ,CAST(f.VenCode+'_'+g.InvCode+'_'+CAST(SUM(c.Quantity) AS NVARCHAR(20))+'_'+g.InvUnit+'_'+CONVERT(varchar(100), a.MTIME, 112) AS NVARCHAR(100)) AS erweima,g.EATTRIBUTE11,g.EATTRIBUTE12,g.EATTRIBUTE13,g.EATTRIBUTE14,g.EATTRIBUTE15 ,g.EATTRIBUTE16,g.EATTRIBUTE17,g.EATTRIBUTE18, CASE WHEN g.EATTRIBUTE19='1'THEN'食品级物料'WHEN g.EATTRIBUTE19='0'THEN'非食品级物料' END EATTRIBUTE19,c.ProductDate FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint left join ICSInventoryLotDetail d on c.lotNo=d.LotNo and c.WorkPoint=d.WorkPoint LEFT JOIN dbo.ICSPurchaseOrder e ON e.POCode=d.TransCode AND e.Sequence=d.TransSequence AND e.WorkPoint=d.WorkPoint LEFT JOIN icsVendor f ON f.VenCode=e.VenCode AND f.WorkPoint=e.WorkPoint LEFT JOIN ICSInventory g ON e.InvCode=g.INvCode AND e.WorkPoint=g.WorkPoint WHERE 1=1 and a.ContainerCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in (" + WorkPoint.TrimEnd(',') + ") GROUP BY f.VenCode,f.VenName, e.EATTRIBUTE4 ,ContainerCode,g.INVCode,g.INvName,g.INvStd,e.POCode,g.InvUnit,CONVERT(varchar(100), a.MTIME, 112), g.EATTRIBUTE11,g.EATTRIBUTE12,g.EATTRIBUTE13,g.EATTRIBUTE14,g.EATTRIBUTE15,g.EATTRIBUTE16,g.EATTRIBUTE17,g.EATTRIBUTE18,g.EATTRIBUTE19,c.ProductDate ";
} else if(Type == "2") { strSql = @" SELECT DISTINCT f.VenCode,f.VenName, e.EATTRIBUTE4 as PODXEATTRIBUTE4,ContainerCode as QRLotNo,g.invcode,g.invname,g.invstd,e.OOCode,CONVERT(varchar(100), a.MTIME, 112) AS BatchCode,g.InvUnit,SUM(c.Quantity) AS Quantity
,CAST(f.VenCode+'_'+g.InvCode+'_'+CAST(SUM(c.Quantity) AS NVARCHAR(20))+'_'+g.InvUnit+'_'+CONVERT(varchar(100), a.MTIME, 112) AS NVARCHAR(100)) AS erweima,g.EATTRIBUTE11,g.EATTRIBUTE12,g.EATTRIBUTE13,g.EATTRIBUTE14,g.EATTRIBUTE15 ,g.EATTRIBUTE16,g.EATTRIBUTE17,g.EATTRIBUTE18, CASE WHEN g.EATTRIBUTE19='1'THEN'食品级物料'WHEN g.EATTRIBUTE19='0'THEN'非食品级物料' END EATTRIBUTE19,c.ProductDate FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint left join ICSInventoryLotDetail d on c.lotNo=d.LotNo and c.WorkPoint=d.WorkPoint LEFT JOIN dbo.ICSOutsourcingOrder e ON e.OOCode=d.TransCode AND e.Sequence=d.TransSequence AND e.WorkPoint=d.WorkPoint LEFT JOIN icsVendor f ON f.VenCode=e.VenCode AND f.WorkPoint=e.WorkPoint LEFT JOIN ICSInventory g ON e.InvCode=g.INvCode AND e.WorkPoint=g.WorkPoint WHERE 1=1 and a.ContainerCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in (" + WorkPoint.TrimEnd(',') + @") GROUP BY f.VenCode,f.VenName, e.EATTRIBUTE4 ,ContainerCode,g.INVCode,g.INvName,g.INvStd,e.OOCode,g.InvUnit,CONVERT(varchar(100), a.MTIME, 112), g.EATTRIBUTE11,g.EATTRIBUTE12,g.EATTRIBUTE13,g.EATTRIBUTE14,g.EATTRIBUTE15,g.EATTRIBUTE16,g.EATTRIBUTE17,g.EATTRIBUTE18,g.EATTRIBUTE19,c.ProductDate ";
} log.Info("获取sql:" + strSql); DataTable dtInMaterial = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); strPrintTempFile = pJson.ShowReport(dtInMaterial,null); //产生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.ICSCarton
// SET PrintTimes=ISNULL(PrintTimes,0)+1,
// lastPrintTime=GETDATE()
// WHERE CartonNO IN (" + keyValue.TrimEnd(',') + ") and WorkPoint='" + WorkPoint + "'";
//SqlHelper.ExecuteNonQuery(sql);
return Content(JsonData.ToJson()); }
[HttpPost] [HandlerAjaxOnly] public ActionResult PrintItemLotByContainerType01(string keyValue) { string strSql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string CusterJC = ConfigurationManager.ConnectionStrings["CusterJC"].ConnectionString; keyValue = keyValue.Substring(1, keyValue.Length - 2); string strPrintFileName = Server.MapPath("/ReportFile/") + "CartonNo.fr3"; PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName); pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
pJson.MasterOptions(1, "ContainerCode", false); //主从关系
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
string strPrintTempFile = string.Empty; if (CusterJC == "咖博士") { strSql = @" SELECT DISTINCT a.ContainerCode,f.VenName
FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint LEFT JOIN icsVendor f ON a.EATTRIBUTE8=f.VenCode and a.WorkPoint=f.WorkPoint LEFT JOIN ICSInventory g ON c.InvCode=g.INvCode AND c.WorkPoint=g.WorkPoint LEFT JOIN ICSASNDetail h ON c.lotno=h.lotno AND c.WorkPoint=h.WorkPoint WHERE 1=1 and a.ContainerType='ContainerType01' and h.ASNCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',');
DataTable dtInInfo = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); strSql = @" SELECT DISTINCT c.invCode,g.InvName,sum(c.Quantity) AS Quantity,a.ContainerCode,f.VenName
FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint LEFT JOIN icsVendor f ON a.EATTRIBUTE8=f.VenCode and a.WorkPoint=f.WorkPoint LEFT JOIN ICSInventory g ON c.InvCode=g.INvCode AND c.WorkPoint=g.WorkPoint LEFT JOIN ICSASNDetail h ON c.lotno=h.lotno AND c.WorkPoint=h.WorkPoint WHERE 1=1 and a.ContainerType='ContainerType01' and h.ASNCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',');
strSql += " group by c.InvCode,g.InvName,a.ContainerCode,f.VenName "; DataTable dtInMaterial = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
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.ICSCarton
// SET PrintTimes=ISNULL(PrintTimes,0)+1,
// lastPrintTime=GETDATE()
// WHERE CartonNO IN (" + keyValue.TrimEnd(',') + ") and WorkPoint='" + WorkPoint + "'";
//SqlHelper.ExecuteNonQuery(sql);
return Content(JsonData.ToJson()); }
[HttpPost] [HandlerAjaxOnly] public ActionResult PrintItemLotByOOContainerType01(string keyValue) { string strSql = string.Empty; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string CusterJC = ConfigurationManager.ConnectionStrings["CusterJC"].ConnectionString; keyValue = keyValue.Substring(1, keyValue.Length - 2); string strPrintFileName = Server.MapPath("/ReportFile/") + "CartonNo.fr3"; PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName); pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
//pJson.MasterOptions(1, "ContainerCode", false); //主从关系
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
string strPrintTempFile = string.Empty; //string strSql = @"SELECT * FROM ICSContainer WHERE EATTRIBUTE3='SRM'
//and ContainerCode IN (" + keyValue.TrimEnd(',') + ") and WorkPoint=" + WorkPoint.TrimEnd(',') + "";
//DataTable dtInInfo = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
if (CusterJC == "咖博士") { strSql = @" SELECT DISTINCT a.ContainerCode,f.VenName
FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint LEFT JOIN icsVendor f ON a.EATTRIBUTE8=f.VenCode and a.WorkPoint=f.WorkPoint LEFT JOIN ICSInventory g ON c.InvCode=g.INvCode AND c.WorkPoint=g.WorkPoint LEFT JOIN ICSOASNDetail h ON c.lotno=h.lotno AND c.WorkPoint=h.WorkPoint WHERE 1=1 and a.ContainerType='ContainerType01' and h.OASNCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',');
DataTable dtInInfo = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null); strSql = @" SELECT DISTINCT c.invCode,g.InvName,sum(c.Quantity) AS Quantity,a.ContainerCode,f.VenName
FROM ICSContainer a LEFT JOIN ICSContainerLot b ON a.ID=b.ContainerID AND a.WorkPOint=b.WorkPOint LEFT JOIN ICSInventoryLot c ON b.lotno=c.lotno AND b.WorkPOint=c.WorkPOint LEFT JOIN icsVendor f ON a.EATTRIBUTE8=f.VenCode and a.WorkPoint=f.WorkPoint LEFT JOIN ICSInventory g ON c.InvCode=g.INvCode AND c.WorkPoint=g.WorkPoint LEFT JOIN ICSOASNDetail h ON c.lotno=h.lotno AND c.WorkPoint=h.WorkPoint WHERE 1=1 and a.ContainerType='ContainerType01' and h.OASNCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',');
strSql += " group by c.InvCode,g.InvName,a.ContainerCode,f.VenName "; DataTable dtInMaterial = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
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.ICSCarton
// SET PrintTimes=ISNULL(PrintTimes,0)+1,
// lastPrintTime=GETDATE()
// WHERE CartonNO IN (" + keyValue.TrimEnd(',') + ") and WorkPoint='" + WorkPoint + "'";
//SqlHelper.ExecuteNonQuery(sql);
return Content(JsonData.ToJson()); }
#region 根据单号打印条码信息
[HttpPost] [HandlerAjaxOnly] public ActionResult PrintItemCartonLot(string keyValue, string WorkPoint) { keyValue = keyValue.Substring(1, keyValue.Length - 2); WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2); string strPrintFileName = Server.MapPath("/File/LablesFile/") + "lot_SRM条码打印.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 a.InvCode,b.POCode,CONVERT(varchar(100),b.CreateDateTime, 23) PODate,g.BatchCode,a.Quantity,c.InvName,
b.VenCode,h.VenName,c.InvUnit, CONVERT(NVARCHAR(50),a.LotNO) AS QRLotNo,CONVERT(varchar(100), a.ProductDate, 23) as PRODUCTDATE,CONVERT(varchar(100), getdate(), 23) as PreArriveDate ,a.EATTRIBUTE2,a.EATTRIBUTE3,CONVERT(varchar(100),dateadd(day,c.EffectiveDays,a.ProductDate), 23) AS exprdate,i.asnCode,b.EATTRIBUTE3 as DXEATTRIBUTE3 ,a.EATTRIBUTE4 as DXEATTRIBUTE4 ,c.EATTRIBUTE11,c.EATTRIBUTE12,c.EATTRIBUTE13,c.EATTRIBUTE14,c.EATTRIBUTE15 ,c.EATTRIBUTE16,c.EATTRIBUTE17,c.EATTRIBUTE18,Y.ContainerCode FROM 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=b.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 ICSContainerLot X ON A.LotNo =X.LotNo AND a.workPoint=X.workPoint LEFT JOIN ICSContainer Y ON X.ContainerID=Y.ID AND Y.workPoint=X.workPoint WHERE Y.ContainerCode 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
/// <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 GetContainerCode(string RoleEnCode, string WorkPoint) { string ListData = App.GetContainerCode(RoleEnCode, WorkPoint); var data = new { rows = ListData, }; return Content(data.ToJson()); }
[HttpPost] [HandlerAjaxOnly] public ActionResult SaveICSContainerForBox(string ICSASN) {
string msg = App.SaveICSContainerForBox(ICSASN); if (!string.IsNullOrEmpty(msg)) { return Error(msg); } else { return Success("添加成功!"); } }
[HttpPost] [HandlerAjaxOnly] public ActionResult SaveICSContainerForBoxByAsn(string ICSASN) {
string msg = App.SaveICSContainerForBoxByAsn(ICSASN); if (!string.IsNullOrEmpty(msg)) { return Error(msg); } else { return Success("添加成功!"); } }
[HttpPost] [HandlerAjaxOnly] public ActionResult UpdateICSContainerForBox(string ICSASN) {
string msg = App.UpdateICSContainerForBox(ICSASN); if (!string.IsNullOrEmpty(msg)) { return Error(msg); } else { return Success("修改成功!"); } }
[HttpGet] [HandlerAjaxOnly] public ActionResult IsProductDate() { string _result = App.IsProductDate(); var JsonData = new { result = _result }; return Content(JsonData.ToJson()); }
[HttpGet] [HandlerAjaxOnly] public ActionResult IsInvCode() { string _result = App.IsInvCode(); var JsonData = new { result = _result }; return Content(JsonData.ToJson()); } } }
|