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.

1388 lines
66 KiB

4 days ago
  1. using NFine.Application.SRM;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Web;
  8. using System.Web.Mvc;
  9. using NFine.Code;
  10. using System.Data.SqlClient;
  11. using NFine.Data.Extensions;
  12. using System.Data.Common;
  13. using Newtonsoft.Json;
  14. using NFine.Domain._03_Entity.SRM;
  15. using NFine.Application;
  16. namespace NFine.Web.Areas.SRM.Controllers
  17. {
  18. public class PrintController : ControllerBase
  19. {
  20. PrintApp App = new PrintApp();
  21. // GET: WMS/Print
  22. public ActionResult PrintView()
  23. {
  24. return View();
  25. }
  26. public ActionResult PrintViewByLot()
  27. {
  28. return View();
  29. }
  30. public ActionResult PrintViewBySession()
  31. {
  32. return View();
  33. }
  34. /// <summary>
  35. /// 打印数据参数:服务器的URL+打印的文件名,转化为Base64编码
  36. /// </summary>
  37. protected string strPrintData;
  38. /// <summary>
  39. /// 标识是否安装了控件
  40. /// </summary>
  41. protected bool bIsInstallPrintControl = true;
  42. /// <summary>
  43. /// 打印控件的Cookie值
  44. /// </summary>
  45. protected string strPrintControlCookie = "";
  46. /// <summary>
  47. /// 获取Url中去掉文件名的路径
  48. /// </summary>
  49. /// <returns></returns>
  50. private string GetUrlPath()
  51. {
  52. string strUrl = Request.Url.ToString();
  53. int iEnd = strUrl.LastIndexOf("/");
  54. strUrl = strUrl.Substring(0, iEnd + 1);
  55. return strUrl;
  56. }
  57. [HttpGet]
  58. [HandlerAjaxOnly]
  59. public ActionResult GetLableType()
  60. {
  61. DataTable dt = App.GetLableType();
  62. return Content(dt.ToJson());
  63. }
  64. [HttpGet]
  65. [HandlerAjaxOnly]
  66. public ActionResult GetLableSourceID()
  67. {
  68. DataTable dt = App.GetLableSourceID();
  69. return Content(dt.ToJson());
  70. }
  71. [HttpGet]
  72. [HandlerAjaxOnly]
  73. public ActionResult GetSys_LablesID(string LableType)
  74. {
  75. DataTable dt = App.GetSys_LablesID(LableType);
  76. return Content(dt.ToJson());
  77. }
  78. //打印
  79. [HttpPost]
  80. [HandlerAjaxOnly]
  81. public ActionResult PrintItemLot(string keyValue, string Parameter)
  82. {
  83. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  84. string WorkPoint = ""+NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',')+"";
  85. string sqltxt = "";
  86. Parameter = Parameter.Substring(1, Parameter.Length - 3);
  87. var queryParam = keyValue.ToJObject();
  88. List<DbParameter> parameter = new List<DbParameter>();
  89. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  90. List<PrintPara> parasList = new List<PrintPara>();
  91. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  92. string sqlValue = @"select LableSourceID,FileAddress,LableCode,LableName from Sys_Lables where ID='{0}'";
  93. sqlValue = string.Format(sqlValue, Sys_LablesID);
  94. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  95. string LableSourceID = drV["LableSourceID"].ToString();
  96. string FileAddress= drV["FileAddress"].ToString();
  97. string LableCode = drV["LableCode"].ToString();
  98. string LableName = drV["LableName"].ToString();
  99. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  100. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  101. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  102. where ID='{0}'";
  103. sqlLableDataSource= string.Format(sqlLableDataSource, LableSourceID);
  104. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  105. #region 打印
  106. //string[] PrintParas = Parameter.Split('|');
  107. //string LinkCols = string.Empty;
  108. //foreach (var p in PrintParas)
  109. //{
  110. // sqltxt = dr["SqlTxt"].ToString();
  111. // LinkCols= dr["LinkCols"].ToString();
  112. // if (dr["Paras"].ToString() != "")
  113. // {
  114. // string[] ps = dr["Paras"].ToString().Split(',');
  115. // for (int i = 0; i < ps.Length; i++)
  116. // {
  117. // if (!string.IsNullOrEmpty(ps[i]))
  118. // {
  119. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  120. // }
  121. // }
  122. // }
  123. // if (sqltxt.Contains("[WorkPoint]"))
  124. // {
  125. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  126. // }
  127. //}
  128. #endregion
  129. var PrintValue = Parameter.Split('|');
  130. string[] ValueParameters = PrintValue[0].Split(',');
  131. string[] PrintParas = Parameter.Split('|');
  132. string LinkCols = string.Empty;
  133. sqltxt = dr["SqlTxt"].ToString();
  134. LinkCols = dr["LinkCols"].ToString();
  135. string SourceName = dr["SourceName"].ToString();
  136. string Paras = dr["Paras"].ToString();
  137. if (dr["Paras"].ToString() != "")
  138. {
  139. string[] ps = dr["Paras"].ToString().Split(',');
  140. for (int i = 0; i < ps.Length; i++)
  141. {
  142. if (!string.IsNullOrEmpty(ps[i]))
  143. {
  144. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  145. }
  146. }
  147. }
  148. if (sqltxt.Contains("[WorkPoint]"))
  149. {
  150. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  151. }
  152. string strPrintFileName = Server.MapPath("/File/LablesFile/") + ""+ FileAddress + "";
  153. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  154. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  155. if (LinkCols!="")
  156. {
  157. pJson.MasterOptions(1, ""+ LinkCols + "", false); //主从关系
  158. }
  159. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  160. //pJson.AddPrintParam("ShopName", "测试酒楼");
  161. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  162. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  163. string strSql = sqltxt;
  164. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  165. DataSet dtCashLog = DbHelper.GetDataSet( CommandType.Text, strSql);
  166. DataTable dt1 = null;
  167. DataTable dt2 = null;
  168. DataTable dt3 = null;
  169. string strPrintTempFile = "";
  170. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  171. {
  172. dt1 = dtCashLog.Tables[0];
  173. strPrintTempFile = pJson.ShowReport(dt1);
  174. }
  175. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count<=2)
  176. {
  177. dt1 = dtCashLog.Tables[0];
  178. dt2 = dtCashLog.Tables[1];
  179. strPrintTempFile = pJson.ShowReport(dt1,dt2);
  180. }
  181. if (dtCashLog.Tables.Count > 2)
  182. {
  183. dt1 = dtCashLog.Tables[0];
  184. dt2 = dtCashLog.Tables[1];
  185. dt3 = dtCashLog.Tables[2];
  186. strPrintTempFile = pJson.ShowReport(dt1, dt2,dt3);
  187. }
  188. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  189. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  190. string strServerURL = GetUrlPath() + "PrintTemp/";
  191. string strData = strServerURL + strPrintTempFile;
  192. strPrintData = PrintFunction.EnBase64(strData);
  193. var JsonData = new
  194. {
  195. strPrintData_1 = strPrintData,
  196. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  197. strPrintControlCookie_1 = strPrintControlCookie
  198. };
  199. string sql = string.Empty;
  200. for (int i = 0; i < ValueParameters.Length; i++)
  201. {
  202. // 打印记录
  203. sql += @"insert into Sys_LableTask (ID, LableCode, LableName, PrintTableID, PrintTableName, PrintKey, ValueParameters, PrintDate, PrintUserCode, WorkPoint)
  204. values(newid(),'{0}','{1}','{2}','{3}','{4}',{5},getdate(),'{6}',{7})";
  205. sql = string.Format(sql, LableCode, LableName, LableSourceID, SourceName, Paras, ValueParameters[i].ToString(), MUSER, WorkPoint);
  206. }
  207. SqlHelper.CmdExecuteNonQueryLi(sql);
  208. //多站点
  209. //string sql = @"UPDATE dbo.ICSInventoryLot
  210. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  211. // LastPrintUser='',
  212. // LastPrintTime=GETDATE()
  213. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  214. //SqlHelper.ExecuteNonQuery(sql);
  215. return Content(JsonData.ToJson());
  216. }
  217. //打印(传入条码和单据)
  218. [HttpPost]
  219. [HandlerAjaxOnly]
  220. public ActionResult DHPrintItemLot(string keyValue, string Parameter)
  221. {
  222. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  223. string sqltxt = "";
  224. var queryParam = keyValue.ToJObject();
  225. List<DbParameter> parameter = new List<DbParameter>();
  226. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  227. List<PrintPara> parasList = new List<PrintPara>();
  228. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  229. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  230. sqlValue = string.Format(sqlValue, Sys_LablesID);
  231. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  232. string LableSourceID = drV["LableSourceID"].ToString();
  233. string FileAddress = drV["FileAddress"].ToString();
  234. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  235. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  236. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  237. where ID='{0}'";
  238. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  239. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  240. #region 打印
  241. //string[] PrintParas = Parameter.Split('|');
  242. //string LinkCols = string.Empty;
  243. //foreach (var p in PrintParas)
  244. //{
  245. // sqltxt = dr["SqlTxt"].ToString();
  246. // LinkCols= dr["LinkCols"].ToString();
  247. // if (dr["Paras"].ToString() != "")
  248. // {
  249. // string[] ps = dr["Paras"].ToString().Split(',');
  250. // for (int i = 0; i < ps.Length; i++)
  251. // {
  252. // if (!string.IsNullOrEmpty(ps[i]))
  253. // {
  254. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  255. // }
  256. // }
  257. // }
  258. // if (sqltxt.Contains("[WorkPoint]"))
  259. // {
  260. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  261. // }
  262. //}
  263. #endregion
  264. DataTable dtInfo = JsonConvert.DeserializeObject<DataTable>(Parameter);
  265. string Printstr1 = "";
  266. string Printstr2 = "";
  267. string PrintstrEnd = "";
  268. foreach (DataRow drInfo in dtInfo.Rows)
  269. {
  270. Printstr1 += "'" + drInfo["ApplyCode"] + "',";
  271. Printstr2 += "'" + drInfo["LotNO"] + "',";
  272. }
  273. PrintstrEnd = Printstr1.TrimEnd(',') + ";" + Printstr2.TrimEnd(',');
  274. string[] PrintParas = PrintstrEnd.Split(';');
  275. string LinkCols = string.Empty;
  276. sqltxt = dr["SqlTxt"].ToString();
  277. LinkCols = dr["LinkCols"].ToString();
  278. if (dr["Paras"].ToString() != "")
  279. {
  280. string[] ps = dr["Paras"].ToString().Split(',');
  281. for (int i = 0; i < ps.Length; i++)
  282. {
  283. if (!string.IsNullOrEmpty(ps[i]))
  284. {
  285. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  286. }
  287. }
  288. }
  289. if (sqltxt.Contains("[WorkPoint]"))
  290. {
  291. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  292. }
  293. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  294. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  295. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  296. if (LinkCols != "")
  297. {
  298. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  299. }
  300. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  301. //pJson.AddPrintParam("ShopName", "测试酒楼");
  302. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  303. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  304. string strSql = sqltxt;
  305. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  306. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  307. DataTable dt1 = null;
  308. DataTable dt2 = null;
  309. DataTable dt3 = null;
  310. string strPrintTempFile = "";
  311. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  312. {
  313. dt1 = dtCashLog.Tables[0];
  314. strPrintTempFile = pJson.ShowReport(dt1);
  315. }
  316. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  317. {
  318. dt1 = dtCashLog.Tables[0];
  319. dt2 = dtCashLog.Tables[1];
  320. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  321. }
  322. if (dtCashLog.Tables.Count > 2)
  323. {
  324. dt1 = dtCashLog.Tables[0];
  325. dt2 = dtCashLog.Tables[1];
  326. dt3 = dtCashLog.Tables[2];
  327. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  328. }
  329. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  330. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  331. string strServerURL = GetUrlPath() + "PrintTemp/";
  332. string strData = strServerURL + strPrintTempFile;
  333. strPrintData = PrintFunction.EnBase64(strData);
  334. var JsonData = new
  335. {
  336. strPrintData_1 = strPrintData,
  337. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  338. strPrintControlCookie_1 = strPrintControlCookie
  339. };
  340. //多站点
  341. //string sql = @"UPDATE dbo.ICSInventoryLot
  342. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  343. // LastPrintUser='',
  344. // LastPrintTime=GETDATE()
  345. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  346. //SqlHelper.ExecuteNonQuery(sql);
  347. return Content(JsonData.ToJson());
  348. }
  349. [HttpPost]
  350. [HandlerAjaxOnly]
  351. public ActionResult YLPrintItemLot(string keyValue, string Parameter)
  352. {
  353. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  354. string sqltxt = "";
  355. //Parameter = Parameter.Substring(1, Parameter.Length - 3);
  356. var queryParam = keyValue.ToJObject();
  357. List<DbParameter> parameter = new List<DbParameter>();
  358. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  359. List<PrintPara> parasList = new List<PrintPara>();
  360. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  361. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  362. sqlValue = string.Format(sqlValue, Sys_LablesID);
  363. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  364. string LableSourceID = drV["LableSourceID"].ToString();
  365. string FileAddress = drV["FileAddress"].ToString();
  366. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  367. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  368. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  369. where ID='{0}'";
  370. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  371. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  372. string LinkCols = string.Empty;
  373. LinkCols = dr["LinkCols"].ToString();
  374. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  375. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  376. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  377. if (LinkCols != "")
  378. {
  379. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  380. }
  381. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  382. //pJson.AddPrintParam("ShopName", "测试酒楼");
  383. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  384. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  385. string strSql = sqltxt;
  386. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  387. //DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  388. //var jsonData = $"[{Parameter}]";
  389. //DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(jsonData);
  390. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(Parameter);
  391. string strPrintTempFile = "";
  392. //if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  393. //{
  394. // dt1 = dtCashLog.Tables[0];
  395. strPrintTempFile = pJson.ShowReport(dt1);
  396. //}
  397. //if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  398. //{
  399. // dt1 = dtCashLog.Tables[0];
  400. // dt2 = dtCashLog.Tables[1];
  401. // strPrintTempFile = pJson.ShowReport(dt1, dt2);
  402. //}
  403. //if (dtCashLog.Tables.Count > 2)
  404. //{
  405. // dt1 = dtCashLog.Tables[0];
  406. // dt2 = dtCashLog.Tables[1];
  407. // dt3 = dtCashLog.Tables[2];
  408. // strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  409. //}
  410. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  411. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  412. string strServerURL = GetUrlPath() + "PrintTemp/";
  413. string strData = strServerURL + strPrintTempFile;
  414. strPrintData = PrintFunction.EnBase64(strData);
  415. var JsonData = new
  416. {
  417. strPrintData_1 = strPrintData,
  418. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  419. strPrintControlCookie_1 = strPrintControlCookie
  420. };
  421. //多站点
  422. //string sql = @"UPDATE dbo.ICSInventoryLot
  423. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  424. // LastPrintUser='',
  425. // LastPrintTime=GETDATE()
  426. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  427. //SqlHelper.ExecuteNonQuery(sql);
  428. return Content(JsonData.ToJson());
  429. }
  430. [HttpPost]
  431. [HandlerAjaxOnly]
  432. public ActionResult BasePrintItemLot(string keyValue, string Parameter)
  433. {
  434. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  435. string sqltxt = "";
  436. //Parameter = Parameter.Substring(1, Parameter.Length - 3);
  437. var queryParam = keyValue.ToJObject();
  438. List<DbParameter> parameter = new List<DbParameter>();
  439. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  440. List<PrintPara> parasList = new List<PrintPara>();
  441. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  442. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  443. sqlValue = string.Format(sqlValue, Sys_LablesID);
  444. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  445. string LableSourceID = drV["LableSourceID"].ToString();
  446. string FileAddress = drV["FileAddress"].ToString();
  447. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  448. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  449. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  450. where ID='{0}'";
  451. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  452. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  453. string LinkCols = string.Empty;
  454. LinkCols = dr["LinkCols"].ToString();
  455. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  456. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  457. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  458. if (LinkCols != "")
  459. {
  460. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  461. }
  462. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  463. //pJson.AddPrintParam("ShopName", "测试酒楼");
  464. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  465. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  466. string strSql = sqltxt;
  467. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  468. //DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  469. //var jsonData = $"[{Parameter}]";
  470. //DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(jsonData);
  471. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(Parameter);
  472. string strPrintTempFile = "";
  473. //if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  474. //{
  475. // dt1 = dtCashLog.Tables[0];
  476. strPrintTempFile = pJson.ShowReport(dt1);
  477. //}
  478. //if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  479. //{
  480. // dt1 = dtCashLog.Tables[0];
  481. // dt2 = dtCashLog.Tables[1];
  482. // strPrintTempFile = pJson.ShowReport(dt1, dt2);
  483. //}
  484. //if (dtCashLog.Tables.Count > 2)
  485. //{
  486. // dt1 = dtCashLog.Tables[0];
  487. // dt2 = dtCashLog.Tables[1];
  488. // dt3 = dtCashLog.Tables[2];
  489. // strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  490. //}
  491. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  492. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  493. string strServerURL = GetUrlPath() + "PrintTemp/";
  494. string strData = strServerURL + strPrintTempFile;
  495. strPrintData = PrintFunction.EnBase64(strData);
  496. var JsonData = new
  497. {
  498. strPrintData_1 = strPrintData,
  499. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  500. strPrintControlCookie_1 = strPrintControlCookie
  501. };
  502. //多站点
  503. //string sql = @"UPDATE dbo.ICSInventoryLot
  504. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  505. // LastPrintUser='',
  506. // LastPrintTime=GETDATE()
  507. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  508. //SqlHelper.ExecuteNonQuery(sql);
  509. return Content(JsonData.ToJson());
  510. }
  511. [HttpPost]
  512. [HandlerAjaxOnly]
  513. public ActionResult PNPrintItemLot(string keyValue, string Parameter)
  514. {
  515. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  516. string sqltxt = "";
  517. var queryParam = keyValue.ToJObject();
  518. List<DbParameter> parameter = new List<DbParameter>();
  519. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  520. List<PrintPara> parasList = new List<PrintPara>();
  521. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  522. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  523. sqlValue = string.Format(sqlValue, Sys_LablesID);
  524. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  525. string LableSourceID = drV["LableSourceID"].ToString();
  526. string FileAddress = drV["FileAddress"].ToString();
  527. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  528. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  529. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  530. where ID='{0}'";
  531. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  532. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  533. string LinkCols = string.Empty;
  534. LinkCols = dr["LinkCols"].ToString();
  535. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  536. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  537. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  538. if (LinkCols != "")
  539. {
  540. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  541. }
  542. string strSql = sqltxt;
  543. DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(Parameter);
  544. DataTable uniqueTable = dt1.Clone();
  545. HashSet<string> seen = new HashSet<string>();
  546. for (int i = 0; i < dt1.Rows.Count; i++)
  547. {
  548. string code = dt1.Rows[i]["Code"].ToString();
  549. string sequence = dt1.Rows[i]["Sequence"].ToString();
  550. string identifier = $"{code}-{sequence}";
  551. if (!seen.Contains(identifier))
  552. {
  553. seen.Add(identifier);
  554. uniqueTable.ImportRow(dt1.Rows[i]); // 将当前行添加到 uniqueTable
  555. }
  556. }
  557. string strPrintTempFile = "";
  558. strPrintTempFile = pJson.ShowReport(uniqueTable);
  559. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  560. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  561. string strServerURL = GetUrlPath() + "PrintTemp/";
  562. string strData = strServerURL + strPrintTempFile;
  563. strPrintData = PrintFunction.EnBase64(strData);
  564. var JsonData = new
  565. {
  566. strPrintData_1 = strPrintData,
  567. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  568. strPrintControlCookie_1 = strPrintControlCookie
  569. };
  570. return Content(JsonData.ToJson());
  571. }
  572. [HttpPost]
  573. [HandlerAjaxOnly]
  574. public ActionResult BQPrintItemLot(string keyValue, string Parameter)
  575. {
  576. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  577. string sqltxt = "";
  578. Parameter = Parameter.Substring(2, Parameter.Length - 3);
  579. var queryParam = keyValue.ToJObject();
  580. List<DbParameter> parameter = new List<DbParameter>();
  581. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  582. List<PrintPara> parasList = new List<PrintPara>();
  583. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  584. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  585. sqlValue = string.Format(sqlValue, Sys_LablesID);
  586. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  587. string LableSourceID = drV["LableSourceID"].ToString();
  588. string FileAddress = drV["FileAddress"].ToString();
  589. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  590. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  591. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  592. where ID='{0}'";
  593. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  594. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  595. #region 打印
  596. //string[] PrintParas = Parameter.Split('|');
  597. //string LinkCols = string.Empty;
  598. //foreach (var p in PrintParas)
  599. //{
  600. // sqltxt = dr["SqlTxt"].ToString();
  601. // LinkCols= dr["LinkCols"].ToString();
  602. // if (dr["Paras"].ToString() != "")
  603. // {
  604. // string[] ps = dr["Paras"].ToString().Split(',');
  605. // for (int i = 0; i < ps.Length; i++)
  606. // {
  607. // if (!string.IsNullOrEmpty(ps[i]))
  608. // {
  609. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  610. // }
  611. // }
  612. // }
  613. // if (sqltxt.Contains("[WorkPoint]"))
  614. // {
  615. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  616. // }
  617. //}
  618. #endregion
  619. string[] PrintParas = Parameter.Split('|');
  620. string LinkCols = string.Empty;
  621. sqltxt = dr["SqlTxt"].ToString();
  622. LinkCols = dr["LinkCols"].ToString();
  623. if (dr["Paras"].ToString() != "")
  624. {
  625. string[] ps = dr["Paras"].ToString().Split(',');
  626. for (int i = 0; i < ps.Length; i++)
  627. {
  628. if (!string.IsNullOrEmpty(ps[i]))
  629. {
  630. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  631. }
  632. }
  633. }
  634. if (sqltxt.Contains("[WorkPoint]"))
  635. {
  636. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  637. }
  638. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  639. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  640. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  641. if (LinkCols != "")
  642. {
  643. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  644. }
  645. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  646. //pJson.AddPrintParam("ShopName", "测试酒楼");
  647. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  648. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  649. string strSql = sqltxt;
  650. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  651. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  652. DataTable dt1 = null;
  653. DataTable dt2 = null;
  654. DataTable dt3 = null;
  655. string strPrintTempFile = "";
  656. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  657. {
  658. dt1 = dtCashLog.Tables[0];
  659. DataTable jieguo = new DataTable();
  660. int dtCashLogCount = dt1.Columns.Count * 2;
  661. for (int s = 1; s < 3; s++)
  662. {
  663. int Count = 0;
  664. foreach (DataColumn column in dt1.Columns)
  665. {
  666. if (Count == dt1.Columns.Count)
  667. {
  668. break;
  669. }
  670. jieguo.Columns.Add(column.ColumnName + s);
  671. Count++;
  672. }
  673. }
  674. string[] array2D = new string[dt1.Rows[0].ItemArray.ToList().Count]; // 假设这是一个3x3的二维数组
  675. int rows = array2D.GetLength(0); // 获取行数
  676. // 添加新行,所有元素设置为"N/A"
  677. for (int i = 0; i < rows; i++)
  678. {
  679. array2D[i] = " ";
  680. }
  681. // 遍历DataTable的每一行
  682. for (int i = 0; i < dt1.Rows.Count; i++)
  683. {
  684. var param = dt1.Rows[i].ItemArray.ToList();
  685. i++;
  686. if (i < dt1.Rows.Count)
  687. {
  688. param.AddRange(dt1.Rows[i].ItemArray.ToList());
  689. }
  690. else
  691. {
  692. param.AddRange(array2D);
  693. }
  694. jieguo.Rows.Add(param.ToArray());
  695. }
  696. strPrintTempFile = pJson.ShowReport(jieguo);
  697. }
  698. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  699. {
  700. dt1 = dtCashLog.Tables[0];
  701. dt2 = dtCashLog.Tables[1];
  702. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  703. }
  704. if (dtCashLog.Tables.Count > 2)
  705. {
  706. dt1 = dtCashLog.Tables[0];
  707. dt2 = dtCashLog.Tables[1];
  708. dt3 = dtCashLog.Tables[2];
  709. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  710. }
  711. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  712. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  713. string strServerURL = GetUrlPath() + "PrintTemp/";
  714. string strData = strServerURL + strPrintTempFile;
  715. strPrintData = PrintFunction.EnBase64(strData);
  716. var JsonData = new
  717. {
  718. strPrintData_1 = strPrintData,
  719. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  720. strPrintControlCookie_1 = strPrintControlCookie
  721. };
  722. //多站点
  723. //string sql = @"UPDATE dbo.ICSInventoryLot
  724. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  725. // LastPrintUser='',
  726. // LastPrintTime=GETDATE()
  727. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  728. //SqlHelper.ExecuteNonQuery(sql);
  729. return Content(JsonData.ToJson());
  730. }
  731. /// <summary>
  732. /// 设置控件调用的Cookie值,判断是否安装了打印控件....
  733. /// </summary>
  734. /// <param name="pJson"></param>
  735. private void SetCookieAndURL(PrintJson pJson)
  736. {
  737. bIsInstallPrintControl = false;
  738. strPrintControlCookie = "";
  739. HttpCookie pCookieInstall = Request.Cookies["InstallPrintControl"];
  740. if (pCookieInstall != null)
  741. { //Cookie存在
  742. strPrintControlCookie = pCookieInstall.Value.ToString();
  743. //以Cookie值查找在数据表中是否存在
  744. string strSql = @"Select * From sys_SRM_CheckInstall Where Cookie = @Cookie";
  745. SqlParameter[] pmcCookie = { new SqlParameter("Cookie", strPrintControlCookie) };
  746. using (SqlDataReader drCookie = DbHelper.ExecuteReader(DbHelper.ConnectionString, CommandType.Text, strSql, pmcCookie))
  747. {
  748. if (drCookie.Read())
  749. { //标识为已经安装
  750. bIsInstallPrintControl = true;
  751. }
  752. drCookie.Close();
  753. }
  754. //更新Cookie的保存时间
  755. pCookieInstall.Expires = DateTime.Now.AddYears(10);
  756. Response.SetCookie(pCookieInstall);
  757. }
  758. else
  759. {//Cookie不存在,则新建Cookie
  760. strPrintControlCookie = System.Guid.NewGuid().ToString();
  761. pCookieInstall = new HttpCookie("InstallPrintControl", strPrintControlCookie);
  762. pCookieInstall.Expires = DateTime.Now.AddYears(10);
  763. Response.Cookies.Add(pCookieInstall);
  764. }
  765. string strUrl = Server.MapPath("/PrintTemp/") + "IsCheckInstall";
  766. pJson.SetCookieAndURL(strPrintControlCookie, strUrl);
  767. }
  768. [HttpGet]
  769. public ActionResult SelectColumnName(string BeginTime, string EndTime)
  770. {
  771. var data = App.SelectColumnName(BeginTime, EndTime);
  772. return Content(data.ToJson());
  773. }
  774. [HttpGet]
  775. public ActionResult SelectTableColumnName(string BeginTime, string EndTime)
  776. {
  777. var data = App.SelectTableColumnName(BeginTime, EndTime);
  778. return Content(data.ToJson());
  779. }
  780. [HttpGet]
  781. public ActionResult GetCnValue(string Code)
  782. {
  783. string sql = string.Empty;
  784. try
  785. {
  786. string str = App.GetCnValue(Code);
  787. var JsonData = new
  788. {
  789. content = str
  790. };
  791. return Content(JsonData.ToJson());
  792. }
  793. catch (Exception ex)
  794. {
  795. return Error(ex.Message);
  796. }
  797. }
  798. [HttpGet]
  799. [HandlerAjaxOnly]
  800. public ActionResult updatePrintStatus(string LotNo)
  801. {
  802. string msg = App.updatePrintStatus(LotNo);
  803. if (!string.IsNullOrEmpty(msg))
  804. {
  805. return Error(msg);
  806. }
  807. else
  808. {
  809. return Success("打印人、打印次数、打印时间更新成功!");
  810. }
  811. }
  812. [HttpGet]
  813. [HandlerAjaxOnly]
  814. public ActionResult GetItemDetailsMoid(string keyValue)
  815. {
  816. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  817. var rows = App.GetItemDetailsMoid(keyValue);
  818. return Content(rows.ToJson());
  819. }
  820. //打印
  821. [HttpPost]
  822. [HandlerAjaxOnly]
  823. public ActionResult PrintItemLotTwoPrint(string keyValue, string Parameter)
  824. {
  825. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  826. string sqltxt = "";
  827. Parameter = Parameter.Substring(1, Parameter.Length - 3);
  828. var queryParam = keyValue.ToJObject();
  829. List<DbParameter> parameter = new List<DbParameter>();
  830. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  831. List<PrintPara> parasList = new List<PrintPara>();
  832. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  833. string sqlValue = @"select LableSourceID,FileAddress from Sys_Lables where ID='{0}'";
  834. sqlValue = string.Format(sqlValue, Sys_LablesID);
  835. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  836. string LableSourceID = drV["LableSourceID"].ToString();
  837. string FileAddress = drV["FileAddress"].ToString();
  838. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  839. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  840. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  841. where ID='{0}'";
  842. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  843. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  844. #region 打印
  845. //string[] PrintParas = Parameter.Split('|');
  846. //string LinkCols = string.Empty;
  847. //foreach (var p in PrintParas)
  848. //{
  849. // sqltxt = dr["SqlTxt"].ToString();
  850. // LinkCols= dr["LinkCols"].ToString();
  851. // if (dr["Paras"].ToString() != "")
  852. // {
  853. // string[] ps = dr["Paras"].ToString().Split(',');
  854. // for (int i = 0; i < ps.Length; i++)
  855. // {
  856. // if (!string.IsNullOrEmpty(ps[i]))
  857. // {
  858. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  859. // }
  860. // }
  861. // }
  862. // if (sqltxt.Contains("[WorkPoint]"))
  863. // {
  864. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  865. // }
  866. //}
  867. #endregion
  868. string[] PrintParas = Parameter.Split('|');
  869. string LinkCols = string.Empty;
  870. sqltxt = dr["SqlTxt"].ToString();
  871. LinkCols = dr["LinkCols"].ToString();
  872. if (dr["Paras"].ToString() != "")
  873. {
  874. string[] ps = dr["Paras"].ToString().Split(',');
  875. for (int i = 0; i < ps.Length; i++)
  876. {
  877. if (!string.IsNullOrEmpty(ps[i]))
  878. {
  879. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  880. }
  881. }
  882. }
  883. if (sqltxt.Contains("[WorkPoint]"))
  884. {
  885. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  886. }
  887. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  888. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  889. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  890. if (LinkCols != "")
  891. {
  892. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  893. }
  894. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  895. //pJson.AddPrintParam("ShopName", "测试酒楼");
  896. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  897. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  898. string strSql = sqltxt;
  899. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  900. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  901. DataTable dt1 = null;
  902. DataTable dt2 = null;
  903. DataTable dt3 = null;
  904. string strPrintTempFile = "";
  905. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  906. {
  907. dt1 = dtCashLog.Tables[0];
  908. DataTable jieguo = new DataTable();
  909. int dtCashLogCount = dt1.Columns.Count * 2;
  910. for (int s = 1; s < 3; s++)
  911. {
  912. int Count = 0;
  913. foreach (DataColumn column in dt1.Columns)
  914. {
  915. if (Count == dt1.Columns.Count)
  916. {
  917. break;
  918. }
  919. jieguo.Columns.Add(column.ColumnName + s);
  920. Count++;
  921. }
  922. }
  923. string[] array2D = new string[dt1.Rows[0].ItemArray.ToList().Count]; // 假设这是一个3x3的二维数组
  924. int rows = array2D.GetLength(0); // 获取行数
  925. // 添加新行,所有元素设置为"N/A"
  926. for (int i = 0; i < rows; i++)
  927. {
  928. array2D[i] = " ";
  929. }
  930. // 遍历DataTable的每一行
  931. for (int i = 0; i < dt1.Rows.Count; i++)
  932. {
  933. var param = dt1.Rows[i].ItemArray.ToList();
  934. i++;
  935. if (i < dt1.Rows.Count)
  936. {
  937. param.AddRange(dt1.Rows[i].ItemArray.ToList());
  938. }
  939. else
  940. {
  941. param.AddRange(array2D);
  942. }
  943. jieguo.Rows.Add(param.ToArray());
  944. }
  945. strPrintTempFile = pJson.ShowReport(jieguo);
  946. }
  947. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  948. {
  949. dt1 = dtCashLog.Tables[0];
  950. dt2 = dtCashLog.Tables[1];
  951. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  952. }
  953. if (dtCashLog.Tables.Count > 2)
  954. {
  955. dt1 = dtCashLog.Tables[0];
  956. dt2 = dtCashLog.Tables[1];
  957. dt3 = dtCashLog.Tables[2];
  958. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  959. }
  960. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  961. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  962. string strServerURL = GetUrlPath() + "PrintTemp/";
  963. string strData = strServerURL + strPrintTempFile;
  964. strPrintData = PrintFunction.EnBase64(strData);
  965. var JsonData = new
  966. {
  967. strPrintData_1 = strPrintData,
  968. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  969. strPrintControlCookie_1 = strPrintControlCookie
  970. };
  971. //多站点
  972. //string sql = @"UPDATE dbo.ICSInventoryLot
  973. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  974. // LastPrintUser='',
  975. // LastPrintTime=GETDATE()
  976. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  977. //SqlHelper.ExecuteNonQuery(sql);
  978. return Content(JsonData.ToJson());
  979. }
  980. //条码打印(专属)
  981. [HttpPost]
  982. [HandlerAjaxOnly]
  983. public ActionResult PrintByLot(string keyValue, string Parameter)
  984. {
  985. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  986. string WorkPoint = "" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "";
  987. string sqltxt = "";
  988. Parameter = Parameter.Substring(1, Parameter.Length - 3);
  989. var queryParam = keyValue.ToJObject();
  990. List<DbParameter> parameter = new List<DbParameter>();
  991. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  992. List<PrintPara> parasList = new List<PrintPara>();
  993. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  994. string sqlValue = @"select LableSourceID,FileAddress,LableCode,LableName from Sys_Lables where ID='{0}'";
  995. sqlValue = string.Format(sqlValue, Sys_LablesID);
  996. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  997. string LableSourceID = drV["LableSourceID"].ToString();
  998. string FileAddress = drV["FileAddress"].ToString();
  999. string LableCode = drV["LableCode"].ToString();
  1000. string LableName = drV["LableName"].ToString();
  1001. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  1002. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  1003. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  1004. where ID='{0}'";
  1005. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  1006. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  1007. #region 打印
  1008. //string[] PrintParas = Parameter.Split('|');
  1009. //string LinkCols = string.Empty;
  1010. //foreach (var p in PrintParas)
  1011. //{
  1012. // sqltxt = dr["SqlTxt"].ToString();
  1013. // LinkCols= dr["LinkCols"].ToString();
  1014. // if (dr["Paras"].ToString() != "")
  1015. // {
  1016. // string[] ps = dr["Paras"].ToString().Split(',');
  1017. // for (int i = 0; i < ps.Length; i++)
  1018. // {
  1019. // if (!string.IsNullOrEmpty(ps[i]))
  1020. // {
  1021. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  1022. // }
  1023. // }
  1024. // }
  1025. // if (sqltxt.Contains("[WorkPoint]"))
  1026. // {
  1027. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1028. // }
  1029. //}
  1030. #endregion
  1031. var PrintValue = Parameter.Split('|');
  1032. string[] ValueParameters = PrintValue[0].Split(',');
  1033. string[] PrintParas = Parameter.Split('|');
  1034. string LinkCols = string.Empty;
  1035. sqltxt = dr["SqlTxt"].ToString();
  1036. LinkCols = dr["LinkCols"].ToString();
  1037. string SourceName = dr["SourceName"].ToString();
  1038. string Paras = dr["Paras"].ToString();
  1039. if (dr["Paras"].ToString() != "")
  1040. {
  1041. string[] ps = dr["Paras"].ToString().Split(',');
  1042. for (int i = 0; i < ps.Length; i++)
  1043. {
  1044. if (!string.IsNullOrEmpty(ps[i]))
  1045. {
  1046. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  1047. }
  1048. }
  1049. }
  1050. if (sqltxt.Contains("[WorkPoint]"))
  1051. {
  1052. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1053. }
  1054. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  1055. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  1056. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  1057. if (LinkCols != "")
  1058. {
  1059. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  1060. }
  1061. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  1062. //pJson.AddPrintParam("ShopName", "测试酒楼");
  1063. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  1064. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  1065. string strSql = sqltxt;
  1066. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  1067. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  1068. DataTable dt1 = null;
  1069. DataTable dt2 = null;
  1070. DataTable dt3 = null;
  1071. string strPrintTempFile = "";
  1072. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  1073. {
  1074. dt1 = dtCashLog.Tables[0];
  1075. strPrintTempFile = pJson.ShowReport(dt1);
  1076. }
  1077. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  1078. {
  1079. dt1 = dtCashLog.Tables[0];
  1080. dt2 = dtCashLog.Tables[1];
  1081. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  1082. }
  1083. if (dtCashLog.Tables.Count > 2)
  1084. {
  1085. dt1 = dtCashLog.Tables[0];
  1086. dt2 = dtCashLog.Tables[1];
  1087. dt3 = dtCashLog.Tables[2];
  1088. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  1089. }
  1090. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  1091. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  1092. string strServerURL = GetUrlPath() + "PrintTemp/";
  1093. string strData = strServerURL + strPrintTempFile;
  1094. strPrintData = PrintFunction.EnBase64(strData);
  1095. var JsonData = new
  1096. {
  1097. strPrintData_1 = strPrintData,
  1098. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  1099. strPrintControlCookie_1 = strPrintControlCookie
  1100. };
  1101. string sql = string.Empty;
  1102. for (int i = 0; i < ValueParameters.Length; i++)
  1103. {
  1104. // 打印记录
  1105. sql += @"insert into Sys_LableTask (ID, LableCode, LableName, PrintTableID, PrintTableName, PrintKey, ValueParameters, PrintDate, PrintUserCode, WorkPoint)
  1106. values(newid(),'{0}','{1}','{2}','{3}','{4}',{5},getdate(),'{6}',{7})";
  1107. //修改条码表打印信息
  1108. sql += @"UPDATE dbo.ICSInventoryLot
  1109. SET PrintTimes=ISNULL(PrintTimes,0)+1,
  1110. LastPrintUser='" + MUSER + @"',
  1111. LastPrintTime=GETDATE()
  1112. WHERE ID = " + ValueParameters[i].ToString() + " and WorkPoint in (" + WorkPoint + ")";
  1113. sql = string.Format(sql, LableCode, LableName, LableSourceID, SourceName, Paras, ValueParameters[i].ToString(), MUSER, WorkPoint);
  1114. }
  1115. SqlHelper.CmdExecuteNonQueryLi(sql);
  1116. return Content(JsonData.ToJson());
  1117. }
  1118. //打印
  1119. [HttpPost]
  1120. [HandlerAjaxOnly]
  1121. public ActionResult PrintByStatements(string keyValue, string Parameter)
  1122. {
  1123. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1124. string WorkPoint = "'" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + "'";
  1125. string sqltxt = "";
  1126. Parameter = Parameter.Substring(2, Parameter.Length - 3);
  1127. var queryParam = keyValue.ToJObject();
  1128. List<DbParameter> parameter = new List<DbParameter>();
  1129. var Sys_LablesID = queryParam["Sys_LablesID"].ToString();
  1130. List<PrintPara> parasList = new List<PrintPara>();
  1131. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  1132. string sqlValue = @"select LableSourceID,FileAddress,LableCode,LableName from Sys_Lables where ID='{0}'";
  1133. sqlValue = string.Format(sqlValue, Sys_LablesID);
  1134. DataRow drV = SqlHelper.GetDataRowBySql(sqlValue);
  1135. string LableSourceID = drV["LableSourceID"].ToString();
  1136. string FileAddress = drV["FileAddress"].ToString();
  1137. string LableCode = drV["LableCode"].ToString();
  1138. string LableName = drV["LableName"].ToString();
  1139. string sqlLableDataSource = @"SELECT ID,WorkPointCode,OtherDataBaseID,WorkPointDataFlag,
  1140. SysDataFlag,SqlTxt,SourceName,FormatSqlTxt,Paras,DbParas,LinkCols,CreateUserID,
  1141. CreateDate,ModifyUserID,ModifyDate,Link2Cols FROM dbo.Sys_LableDataSource
  1142. where ID='{0}'";
  1143. sqlLableDataSource = string.Format(sqlLableDataSource, LableSourceID);
  1144. DataRow dr = SqlHelper.GetDataRowBySql(sqlLableDataSource);
  1145. #region 打印
  1146. //string[] PrintParas = Parameter.Split('|');
  1147. //string LinkCols = string.Empty;
  1148. //foreach (var p in PrintParas)
  1149. //{
  1150. // sqltxt = dr["SqlTxt"].ToString();
  1151. // LinkCols= dr["LinkCols"].ToString();
  1152. // if (dr["Paras"].ToString() != "")
  1153. // {
  1154. // string[] ps = dr["Paras"].ToString().Split(',');
  1155. // for (int i = 0; i < ps.Length; i++)
  1156. // {
  1157. // if (!string.IsNullOrEmpty(ps[i]))
  1158. // {
  1159. // sqltxt = sqltxt.Replace(ps[i], p.ToString());
  1160. // }
  1161. // }
  1162. // }
  1163. // if (sqltxt.Contains("[WorkPoint]"))
  1164. // {
  1165. // sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1166. // }
  1167. //}
  1168. #endregion
  1169. var PrintValue = Parameter.Split('|');
  1170. string[] ValueParameters = PrintValue[0].Split(',');
  1171. string[] PrintParas = Parameter.Split('|');
  1172. string LinkCols = string.Empty;
  1173. sqltxt = dr["SqlTxt"].ToString();
  1174. LinkCols = dr["LinkCols"].ToString();
  1175. string SourceName = dr["SourceName"].ToString();
  1176. string Paras = dr["Paras"].ToString();
  1177. if (dr["Paras"].ToString() != "")
  1178. {
  1179. string[] ps = dr["Paras"].ToString().Split(',');
  1180. for (int i = 0; i < ps.Length; i++)
  1181. {
  1182. if (!string.IsNullOrEmpty(ps[i]))
  1183. {
  1184. sqltxt = sqltxt.Replace(ps[i], PrintParas[i]);
  1185. }
  1186. }
  1187. }
  1188. if (sqltxt.Contains("[WorkPoint]"))
  1189. {
  1190. sqltxt = sqltxt.Replace("[WorkPoint]", WorkPoint);
  1191. }
  1192. string strPrintFileName = Server.MapPath("/File/LablesFile/") + "" + FileAddress + "";
  1193. PrintJson pJson = new PrintJson(Server.MapPath("./PrintTemp"), strPrintFileName);
  1194. pJson.CheckRegister("苏州智合诚信息科技有限公司", "56DD3B4C172D0D140841CAC98A58A819F4E28EDA5D6E45711DDD64F6A439F68B6A7870CD7DAFD69A919CB870207FE4BB206F92BE3D53C221B019E0797E739EBA4"); //注册信息
  1195. if (LinkCols != "")
  1196. {
  1197. pJson.MasterOptions(1, "" + LinkCols + "", false); //主从关系
  1198. }
  1199. //pJson.CheckRegister("注册姓名", "8ECCCD6A1302DFEE1A6456A5D"); //注册信息
  1200. //pJson.AddPrintParam("ShopName", "测试酒楼");
  1201. //pJson.AddPrintParam("PrintDepositAdd", "说明:本单据为贵客押金收取凭证,盖章有效。退房时请出示,遗失者自负,请妥善保存。退房时间为12:00时,延时退房18:00时以前按半天房费收取,18:00时以后算全天房价。押金单有效期为一个月,过期作废。 贵重物品请交前台寄存,未寄存丢失自负。 谢谢!");
  1202. SetCookieAndURL(pJson);// 设置控件调用的Cookie值,判断是否安装了打印控件
  1203. string strSql = sqltxt;
  1204. //DataTable dtCashLog = DbHelper.ExecuteTable(DbHelper.ConnectionString, CommandType.Text, strSql, true, null);
  1205. DataSet dtCashLog = DbHelper.GetDataSet(CommandType.Text, strSql);
  1206. DataTable dt1 = null;
  1207. DataTable dt2 = null;
  1208. DataTable dt3 = null;
  1209. string strPrintTempFile = "";
  1210. if (dtCashLog.Tables.Count > 0 && dtCashLog.Tables.Count <= 1)
  1211. {
  1212. dt1 = dtCashLog.Tables[0];
  1213. strPrintTempFile = pJson.ShowReport(dt1);
  1214. }
  1215. if (dtCashLog.Tables.Count > 1 && dtCashLog.Tables.Count <= 2)
  1216. {
  1217. dt1 = dtCashLog.Tables[0];
  1218. dt2 = dtCashLog.Tables[1];
  1219. strPrintTempFile = pJson.ShowReport(dt1, dt2);
  1220. }
  1221. if (dtCashLog.Tables.Count > 2)
  1222. {
  1223. dt1 = dtCashLog.Tables[0];
  1224. dt2 = dtCashLog.Tables[1];
  1225. dt3 = dtCashLog.Tables[2];
  1226. strPrintTempFile = pJson.ShowReport(dt1, dt2, dt3);
  1227. }
  1228. //string strPrintTempFile = pJson.ShowReport(dt1, dt2); //产生JSON文件内容
  1229. //把服务器的URL + 此文件名 传递给控件,由控件下载还原数据进行打印
  1230. string strServerURL = GetUrlPath() + "PrintTemp/";
  1231. string strData = strServerURL + strPrintTempFile;
  1232. strPrintData = PrintFunction.EnBase64(strData);
  1233. var JsonData = new
  1234. {
  1235. strPrintData_1 = strPrintData,
  1236. bIsInstallPrintControl_1 = bIsInstallPrintControl,
  1237. strPrintControlCookie_1 = strPrintControlCookie
  1238. };
  1239. string sql = string.Empty;
  1240. for (int i = 0; i < ValueParameters.Length; i++)
  1241. {
  1242. // 打印记录
  1243. sql += @"insert into Sys_LableTask (ID, LableCode, LableName, PrintTableID, PrintTableName, PrintKey, ValueParameters, PrintDate, PrintUserCode, WorkPoint)
  1244. values(newid(),'{0}','{1}','{2}','{3}','{4}',{5},getdate(),'{6}',{7})";
  1245. sql = string.Format(sql, LableCode, LableName, LableSourceID, SourceName, Paras, ValueParameters[i].ToString(), MUSER, WorkPoint);
  1246. }
  1247. SqlHelper.CmdExecuteNonQueryLi(sql);
  1248. //多站点
  1249. //string sql = @"UPDATE dbo.ICSInventoryLot
  1250. // SET PrintTimes=ISNULL(PrintTimes,0)+1,
  1251. // LastPrintUser='',
  1252. // LastPrintTime=GETDATE()
  1253. // WHERE ID IN (" + keyValue.TrimEnd(',') + ") and WorkPoint in ('" + WorkPoint.TrimEnd(',') + "')";
  1254. //SqlHelper.ExecuteNonQuery(sql);
  1255. return Content(JsonData.ToJson());
  1256. }
  1257. }
  1258. }