using NFine.Application;
using NFine.Application.KBSSRM;
using NFine.Application.ProductManage;
using NFine.Code;
using NFine.Data.Extensions;
using NFine.Domain.Entity.ProductManage;
using NPOI.SS.Formula.Functions;
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;
using static NPOI.HSSF.Util.HSSFColor;
namespace NFine.Web.Areas.KBSSRM.Controllers
{
public class CreateItemLotController : ControllerBase
{
private KBSCreateItemLotApp App = new KBSCreateItemLotApp();
[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 GetGridJsonByBB(Pagination pagination, string queryJson)
{
DataTable ListData = App.GetGridJsonByBB(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 GetGridJsonWeiWai(Pagination pagination, string queryJson)
{
DataTable ListData = App.GetGridJsonWeiWai(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 GetGridJsonWeiWaiByBB(Pagination pagination, string queryJson)
{
DataTable ListData = App.GetGridJsonWeiWaiByBB(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 POCode, string PORow,string WorkPoint, Pagination pagination)
{
DataTable ListData = App.GetSubGridJson(POCode, PORow, 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 GetSubGridJsonByWeiWai(string POCode, string PORow, string WorkPoint, Pagination pagination)
{
DataTable ListData = App.GetSubGridJsonByWeiWai(POCode, PORow, WorkPoint, ref pagination);
var JsonData = new
{
total = pagination.total,
page = pagination.page,
records = pagination.records,
rows = ListData,
};
return Content(JsonData.ToJson());
}
public ActionResult Index()
{
return View();
}
public ActionResult Form2()
{
return View();
}
public ActionResult IndexByBB()
{
return View();
}
public ActionResult FormByYL()
{
return View();
}
//[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, string WorkPoint, string IsEable)
{
int i = App.CreateItemLotNo(POCode, PORow, keyValue, WorkPoint, IsEable);
if (i > 0)
{
return Success("生成成功!");
}
else
{
return Error("生成失败!");
}
}
[HttpPost]
[HandlerAjaxOnly]
[ValidateAntiForgeryToken]
public ActionResult BatchSubmitForm(string keyValue)
{
int i = App.BatchSubmitForm(keyValue);
if (i > 0)
{
return Success("生成成功!");
}
else
{
return Error("生成失败!");
}
}
[HttpPost]
[HandlerAjaxOnly]
[ValidateAntiForgeryToken]
public ActionResult SubmitFormWeiWai(string OOCode, string Sequence, string keyValue, string WorkPoint, string IsEable)
{
int i = App.SubmitFormWeiWai(OOCode, Sequence, keyValue, WorkPoint, IsEable);
if (i > 0)
{
return Success("生成成功!");
}
else
{
return Error("生成失败!");
}
}
///
/// 点击生成条码查询
///
/// 采购订单
/// 采购行
/// 多站点
///
[HttpGet]
[HandlerAjaxOnly]
public ActionResult GetSubGridJsonByCreate(string POCode, string PORow, string WorkPoint)
{
DataTable ListData = App.GetSubGridJsonByCreate(POCode, PORow,WorkPoint);
var JsonData = new
{
rows = ListData,
};
return Content(JsonData.ToJson());
}
///
/// 点击生成条码查询
///
/// 采购订单
/// 采购行
/// 多站点
///
[HttpGet]
[HandlerAjaxOnly]
public ActionResult GetSubGridJsonByCreateWeiWai(string OOCode, string Sequence, string WorkPoint)
{
DataTable ListData = App.GetSubGridJsonByCreateWeiWai(OOCode, Sequence, WorkPoint);
var JsonData = new
{
rows = ListData,
};
return Content(JsonData.ToJson());
}
[HttpGet]
[HandlerAjaxOnly]
public ActionResult GetVendorLotNo(string InvCode, string WorkPoint)
{
DataTable ListData = App.GetVendorLotNo(InvCode, WorkPoint);
var JsonData = new
{
VendorLotNo = ListData.Rows[0][0].ToString(),
};
return Content(JsonData.ToJson());
}
[HttpPost]
[HandlerAjaxOnly]
[ValidateAntiForgeryToken]
public ActionResult DeleteItemLot(string keyValue, string WorkPoint)
{
keyValue = keyValue.Substring(1, keyValue.Length - 2);
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
string msg = App.DeleteItemLot(keyValue, WorkPoint);
if (string.IsNullOrWhiteSpace(msg))
{
return Success("删除成功!");
}
else
{
return Error(msg);
}
}
///
/// 打印数据参数:服务器的URL+打印的文件名,转化为Base64编码
///
protected string strPrintData;
///
/// 标识是否安装了控件
///
protected bool bIsInstallPrintControl = true;
///
/// 打印控件的Cookie值
///
protected string strPrintControlCookie = "";
///
/// 获取Url中去掉文件名的路径
///
///
private string GetUrlPath()
{
string strUrl = Request.Url.ToString();
int iEnd = strUrl.LastIndexOf("/");
strUrl = strUrl.Substring(0, iEnd + 1);
return strUrl;
}
///
/// 设置控件调用的Cookie值,判断是否安装了打印控件
///
///
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);
}
///
/// 生成条码打印
///
/// ID
/// 多站点
///
[HttpPost]
[HandlerAjaxOnly]
public ActionResult PrintItemLot(string keyValue, string WorkPoint,string Type)
{
// string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
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.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
//pJson.AddPrintParam("ShopName", "测试酒楼");
//pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
string strSql = "";
if (Type=="1")
{
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.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,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,k.ContainerCode
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=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 dbo.ICSContainerLot j ON a. lotno=j.LotNo AND a. WorkPoint=j. WorkPoint
LEFT JOIN dbo.IcSContainer k ON j.ContainerID=k.ID AND i. WorkPoint=k.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
LEFT JOIN (
SELECT
InvCode,
WarehouseCode,
LocationCode,
MTIME,
WorkPoint
FROM
(
SELECT
b.InvCode,
b.WarehouseCode,
b.LocationCode,
b.MTIME,
b.WorkPoint
FROM dbo.ICSWarehouse a
LEFT JOIN dbo.ICSWareHouseLotInfo b ON a.WarehouseCode=b.WarehouseCode AND a.WorkPoint=b.WorkPoint
WHERE
b.quantity > 0
and a.WarehouseCode='YL020'
) AS subquery
) c2 ON c2.invcode = a.invcode AND c2.WorkPoint = a.WorkPoint
where a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')";
}
if (Type == "2")
{
strSql = @"SELECT distinct b.ExtensionID,a.InvCode,a.LotNo AS QRLotNo,b.OOCode as 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.OASNCode as 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
,a.InvCode+'~'+' '+'~'+' '+'~'+b.OOCode+'~'+' '+'~'+h.VenName as NKSM,k.ContainerCode
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.ICSOutsourcingOrder b ON b.OOCode=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 ICSOASNDetail i ON a.lotNO=i.LotNO AND a.workPoint=i.workPoint
LEFT JOIN dbo.ICSContainerLot j ON a. lotno=j.LotNo AND a. WorkPoint=j. WorkPoint
LEFT JOIN dbo.IcSContainer k ON j.ContainerID=k.ID AND i. WorkPoint=k.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 a.ID IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint in ('" + WorkPoint.Trim(',') + "')";
}
//string strSql = @"Select * From CashLog";
DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
string strPrintTempFile = pJson.ShowReport(dtCashLog); //产生JSON文件内容
//string strPrintTempFile = pJson.ExportReportPdf(dtCashLog, null, null, null, null, null, "D:/基础版/NFine.Framework/NFine.Web/File/PDF"); //导出PDF文件
//把服务器的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.ICSInventoryLot
SET PrintTimes=ISNULL(PrintTimes,0)+1,
LastPrintUser='',
LastPrintTime=GETDATE()
WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
SqlHelper.ExecuteNonQuery(sql);
return Content(JsonData.ToJson());
}
[HttpPost]
[HandlerAjaxOnly]
public ActionResult PrintPurchaseOrder(string keyValue,string Type)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string strSql = string.Empty;
DataTable dtOrder = null;
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string strPrintFileName = Server.MapPath("/ReportFile/") + "PurchaseOrder.fr3";
PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
pJson.MasterOptions(1, "POCode", false); //主从关系
SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
if (Type == "1")
{
strSql = @"SELECT DISTINCT POCode,a.VenCode,VenName,a.CreateDateTime,CreatePerson,c.F_RealName
FROM dbo.ICSPurchaseOrder a
LEFT JOIN ICSVendor b ON a.VenCode = b.VenCode AND a.WorkPoint = b.WorkPoint
LEFT JOIN sys_srm_user c ON a.CreatePerson=c.F_account AND a.workpoint=c.F_location
WHERE POCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + "";
dtOrder = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
strSql = @" SELECT a.InvCode,b.INVNAME,b.INVSTD,b.InvUnit,a.Quantity,a.UnitPrice,
CAST(a.UnitPrice*a.Quantity AS DECIMAL(18,4)) AS TaxPrice,a.PlanArriveDate
,a.Sequence,a.POCode
FROM dbo.ICSPurchaseOrder a
LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
WHERE a.POCode IN (" + keyValue.TrimEnd(',') + @") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + @"
ORDER BY CONVERT(int,convert(numeric(4,0),a.Sequence ))";
}
else
{
strSql = @" SELECT DISTINCT a.OOCode as POCode ,a.VenCode,VenName,a.CreateDateTime,CreatePerson,c.F_RealName
FROM dbo.ICSOutsourcingOrder a
LEFT JOIN ICSVendor b ON a.VenCode = b.VenCode AND a.WorkPoint = b.WorkPoint
LEFT JOIN sys_srm_user c ON a.CreatePerson=c.F_account AND a.workpoint=c.F_location
WHERE OOCode IN (" + keyValue.TrimEnd(',') + ") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + "";
dtOrder = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
strSql = @" SELECT a.InvCode,b.INVNAME,b.INVSTD,b.InvUnit,a.Quantity,a.UnitPrice,
CAST(a.UnitPrice*a.Quantity AS DECIMAL(18,4)) AS TaxPrice,a.PlanArriveDate
,a.Sequence,a.OOCode as POCode
FROM dbo.ICSOutsourcingOrder a
LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
WHERE a.OOCode IN (" + keyValue.TrimEnd(',') + @") and a.WorkPoint=" + WorkPoint.TrimEnd(',') + @"
ORDER BY CONVERT(int,convert(numeric(4,0),a.Sequence ))";
}
DataTable dtOderDetail = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
string strPrintTempFile = pJson.ShowReport(dtOrder, dtOderDetail); //产生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
};
return Content(JsonData.ToJson());
}
///
/// 写日志(用于跟踪)
///
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();
}
}
///
///判断数据表中是否存在,若不存在则新建一条记录,若存在则更新最后访问的时间
///
///
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;
}
}
}
///
/// 获取此Cookie的最后访问时间
///
///
///
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;
}
[HttpGet]
public ActionResult SelectICSExtensionEnable(string BeginTime, string EndTime)
{
var data = App.SelectICSExtensionEnable(BeginTime, EndTime);
return Content(data.ToJson());
}
[HttpGet]
public ActionResult SelectICSInventoryEnable(string BeginTime)
{
var data = App.SelectICSInventoryEnable(BeginTime);
return Content(data.ToJson());
}
[HttpGet]
public ActionResult SelectICSColumnEnableForLotEnable(string WorkPoint)
{
var data = App.SelectICSColumnEnableForLotEnable(WorkPoint);
return Content(data.ToJson());
}
public ActionResult GetQiSetNum(string keyValue)
{
var rows = App.GetQiSetNum(keyValue);
return Content(rows.ToJson());
}
///
/// 查询是否启用序列号
///
///
///
///
[HttpGet]
[HandlerAjaxOnly]
public ActionResult GetInventoryIsEnable(string InvCode, string WorkPoint)
{
DataTable ListData = App.GetInventoryIsEnable(InvCode, WorkPoint);
var JsonData = new
{
ContainerEnable = ListData.Rows[0][0].ToString(),
};
return Content(JsonData.ToJson());
}
[HttpGet]
public ActionResult GetInvBatchEnable(string InvCode)
{
var data = App.GetInvBatchEnable(InvCode);
return Content(data.ToJson());
}
[HttpGet]
public ActionResult GetInvBatchCardControl(string InvCode,string BatchCode,string PRODUCTDATE)
{
bool flag = App.GetInvBatchCardControl(InvCode, BatchCode, PRODUCTDATE);
var JsonData = new
{
Flag = flag,
};
return Content(JsonData.ToJson());
}
public ActionResult GetWWComplete(string BeginTime, string EndTime)
{
var data = App.GetWWComplete(BeginTime, EndTime);
return Content(data.ToJson());
}
[HttpGet]
[HandlerAjaxOnly]
public ActionResult GetLoadShowForColumn(string WorkPoint)
{
DataTable ListData = App.GetLoadShowForColumn(WorkPoint);
var JsonData = new
{
rows = ListData,
};
return Content(JsonData.ToJson());
}
public ActionResult ISPOBack()
{
string result = App.ISPOBack();
var JsonData = new
{
result = result
};
return Content(JsonData.ToJson());
}
public ActionResult ISEableDDSX(string VenCode, string InvCode, string WorkPoint, string PODate, string POCode, string Sequence)
{
string result = App.ISEableDDSX( VenCode,InvCode,WorkPoint,PODate, POCode, Sequence);
var JsonData = new
{
result = result
};
return Content(JsonData.ToJson());
}
[HttpGet]
public ActionResult SeachCreateLotOrderByPO()
{
var data = App.SeachCreateLotOrderByPO();
return Content(data.ToJson());
}
[HttpGet]
public ActionResult SeachCreateLotOrderByOO()
{
var data = App.SeachCreateLotOrderByOO();
return Content(data.ToJson());
}
//比博独有校验交期是否维护
public ActionResult SeachPoArriveDate(string Code,string Row,string Type)
{
bool Flag = App.SeachPoArriveDate(Code, Row,Type);
var JsonData = new
{
Flag = Flag
};
return Content(JsonData.ToJson());
}
}
}