bompackunit.ashx 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. <%@ WebHandler Language="C#" Class="bompackunit" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Collections.Generic;
  6. using System.Collections.Specialized;
  7. using System.Data;
  8. using Curtain.DataAccess;
  9. using DK.XuWei.WebMes;
  10. /// <summary>
  11. /// TP_PC_BOMPACKUNIT
  12. /// xuwei create 2022-04-15
  13. /// </summary>
  14. public class bompackunit : IHttpHandler, IReadOnlySessionState
  15. {
  16. public void ProcessRequest(HttpContext context)
  17. {
  18. context.Response.ContentType = "text/plain";
  19. if (mes.LoginCheck() && context.Request["m"] is object)
  20. {
  21. Button b = new Button();
  22. if (mes.RightCheck(""))
  23. {
  24. b.bompackunitButtonIndex = true;
  25. b.bompackunitButtonSync = true;
  26. b.bompackunitButtonInsert = true;
  27. b.bompackunitButtonInsertBatch = true;
  28. b.bompackunitButtonCopy = true;
  29. b.bompackunitButtonUpdate = true;
  30. b.bompackunitButtonDelete = true;
  31. b.bompackunitButtonCancel = true;
  32. b.bompackunitButtonSearch = true;
  33. b.bompackunitButtonDetail = true;
  34. b.bompackunitButtonCheckbox = true;
  35. b.bompackunitButtonExport = true;
  36. b.bompackunitButtonReload = true;
  37. };
  38. switch (context.Request["m"].ToString().ToLower())
  39. {
  40. case "b":
  41. {
  42. //按钮
  43. context.Response.Write(new JsonResult(b).ToJson());
  44. break;
  45. }
  46. case "a":
  47. {
  48. //添加
  49. if (b.bompackunitButtonDetail && context.Request["id"] is object)
  50. context.Response.Write(detail());
  51. else
  52. {
  53. List<xRecord> list = new List<xRecord>();
  54. xRecord r = new xRecord();
  55. list.Add(r);
  56. context.Response.Write(new JsonResult(list).ToJson());
  57. }
  58. break;
  59. }
  60. case "s":
  61. {
  62. //搜索
  63. if (b.bompackunitButtonIndex)
  64. context.Response.Write(search(context.Request.Form));
  65. else
  66. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  67. break;
  68. }
  69. case "t":
  70. {
  71. //详细
  72. if (b.bompackunitButtonDetail)
  73. context.Response.Write(detail());
  74. else
  75. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  76. break;
  77. }
  78. case "sync":
  79. {
  80. //插入
  81. if (b.bompackunitButtonSync)
  82. context.Response.Write(sync(context));
  83. else
  84. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  85. break;
  86. }
  87. case "i":
  88. {
  89. //插入
  90. if (b.bompackunitButtonInsert)
  91. context.Response.Write(insert(context.Request.Form));
  92. else
  93. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  94. break;
  95. }
  96. case "u":
  97. {
  98. //修改
  99. if (b.bompackunitButtonUpdate)
  100. context.Response.Write(update(context.Request.Form));
  101. else
  102. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  103. break;
  104. }
  105. case "d":
  106. {
  107. //删除
  108. if (b.bompackunitButtonDelete)
  109. context.Response.Write(delete());
  110. else
  111. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  112. break;
  113. }
  114. case "e":
  115. {
  116. //导出
  117. if (b.bompackunitButtonExport)
  118. {
  119. context.Response.Write(export());
  120. }
  121. else
  122. {
  123. context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
  124. }
  125. break;
  126. }
  127. default:
  128. {
  129. break;
  130. }
  131. }
  132. }
  133. else
  134. {
  135. context.Response.Write(new JsonResult(JsonStatus.loginError).ToJson());
  136. }
  137. }
  138. /// <summary>
  139. /// TP_PC_BOMPACKUNIT 查询
  140. /// </summary>
  141. /// <returns>json</returns>
  142. private string search(NameValueCollection form)
  143. {
  144. using (IDataAccess conn = DataAccess.Create())
  145. {
  146. int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
  147. int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
  148. string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
  149. string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
  150. string sqlStr = @"
  151. SELECT BP.BOMPACKUNITID AS SID,
  152. BP.BOMPACKUNITID,
  153. BP.IDNRK,
  154. T.NAME,
  155. BP.MENGE,
  156. BP.MEINS,
  157. BP.CREATETIME,
  158. BP.UPDATETIME,
  159. BP.ORDERMEINS,
  160. CU.USERNAME AS CREATEUSERNAME,
  161. CU.USERNAME AS UPDATEUSERNAME
  162. FROM TP_PC_BOMPACKUNIT BP
  163. LEFT JOIN (SELECT PBD.IDNRK,
  164. NAME
  165. FROM TP_MST_PACKINGBOMDETAIL PBD
  166. GROUP BY PBD.IDNRK,
  167. NAME) T
  168. ON T.IDNRK = BP.IDNRK
  169. LEFT JOIN TP_MST_USER CU
  170. ON CU.USERID = BP.CREATEUSERID
  171. LEFT JOIN TP_MST_USER UU
  172. ON UU.USERID = BP.UPDATEUSERID
  173. WHERE BP.VALUEFLAG = '1'
  174. AND BP.ACCOUNTID = @ACCOUNTID@ ";
  175. List<CDAParameter> sqlPara = new List<CDAParameter>();
  176. sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
  177. if (!string.IsNullOrEmpty(form["BOMPACKUNITID"]))
  178. {
  179. sqlStr += " AND BP.BOMPACKUNITID = @BOMPACKUNITID@ ";
  180. sqlPara.Add(new CDAParameter("BOMPACKUNITID", form["BOMPACKUNITID"]));
  181. }
  182. if (!string.IsNullOrEmpty(form["IDNRK"]))
  183. {
  184. sqlStr += " AND INSTR( BP.IDNRK, @IDNRK@ ) > 0 ";
  185. sqlPara.Add(new CDAParameter("IDNRK", form["IDNRK"]));
  186. }
  187. if (!string.IsNullOrEmpty(form["NAME"]))
  188. {
  189. sqlStr += " AND INSTR( T.NAME, @NAME@ ) > 0 ";
  190. sqlPara.Add(new CDAParameter("NAME", form["NAME"]));
  191. }
  192. if (sort != "")
  193. {
  194. sqlStr += " ORDER BY " + sort + " " + order;
  195. }
  196. else
  197. {
  198. sqlStr += " ORDER BY BP.BOMPACKUNITID DESC";
  199. }
  200. int total = 0;
  201. DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
  202. return new JsonResult(dt) { total = total }.ToJson();
  203. }
  204. }
  205. /// <summary>
  206. /// 详细 TP_PC_BOMPACKUNIT
  207. /// </summary>
  208. /// <returns>json</returns>
  209. private string detail()
  210. {
  211. using (IDataAccess conn = DataAccess.Create())
  212. {
  213. DataTable dt = conn.ExecuteDatatable(@"
  214. SELECT BP.BOMPACKUNITID AS SID,
  215. BP.BOMPACKUNITID,
  216. BP.IDNRK,
  217. T.NAME,
  218. BP.MENGE,
  219. BP.MEINS,
  220. BP.CREATETIME,
  221. BP.UPDATETIME,
  222. CU.USERNAME AS CREATEUSERNAME,
  223. CU.USERNAME AS UPDATEUSERNAME
  224. FROM TP_PC_BOMPACKUNIT BP
  225. LEFT JOIN (SELECT PBD.IDNRK,
  226. NAME
  227. FROM TP_MST_PACKINGBOMDETAIL PBD
  228. GROUP BY PBD.IDNRK,
  229. NAME) T
  230. ON T.IDNRK = BP.IDNRK
  231. LEFT JOIN TP_MST_USER CU
  232. ON CU.USERID = BP.CREATEUSERID
  233. LEFT JOIN TP_MST_USER UU
  234. ON UU.USERID = BP.UPDATEUSERID
  235. WHERE BP.BOMPACKUNITID = @BOMPACKUNITID@ ",
  236. new CDAParameter("BOMPACKUNITID", HttpContext.Current.Request["id"])
  237. );
  238. return new JsonResult(dt).ToJson();
  239. }
  240. }
  241. /// <summary>
  242. /// 删除 TP_PC_BOMPACKUNIT
  243. /// </summary>
  244. /// <returns>json</returns>
  245. private string sync(HttpContext context)
  246. {
  247. string ZTYPE;
  248. string ZMSG;
  249. DataTable dtResult = SapApi.ZMMFM054(out ZTYPE, out ZMSG);
  250. if ("E".Equals(ZTYPE) || dtResult == null || dtResult.Rows.Count == 0)
  251. {
  252. return new JsonResult(JsonStatus.otherError).ToJson();
  253. }
  254. using (IDataAccess conn = DataAccess.Create())
  255. {
  256. // 开启事务
  257. conn.BeginTransaction();
  258. // 删除所有
  259. int result = conn.ExecuteNonQuery(@"
  260. DELETE FROM TP_PC_BOMPACKUNIT "
  261. );
  262. // 插入新的
  263. string sqlString = @"
  264. INSERT INTO TP_PC_BOMPACKUNIT
  265. (IDNRK,
  266. MENGE,
  267. MEINS,
  268. ORDERMEINS,
  269. MAKTX,
  270. MATKL,
  271. WGBEZ,
  272. LABOR,
  273. LGFSB,
  274. MTART,
  275. LVORM,
  276. PRDHA,
  277. VTEXT,
  278. ACCOUNTID,
  279. CREATEUSERID,
  280. UPDATEUSERID)
  281. VALUES
  282. (@IDNRK@,
  283. @MENGE@,
  284. @MEINS@,
  285. @ORDERMEINS@,
  286. @MAKTX@,
  287. @MATKL@,
  288. @WGBEZ@,
  289. @LABOR@,
  290. @LGFSB@,
  291. @MTART@,
  292. @LVORM@,
  293. @PRDHA@,
  294. @VTEXT@,
  295. @ACCOUNTID@,
  296. @USERID@,
  297. @USERID@) ";
  298. decimal menge = 0;
  299. foreach (DataRow row in dtResult.Rows)
  300. {
  301. decimal.TryParse(row["BSTRF"] + "", out menge);
  302. menge = menge == 0 ? 1 : menge;
  303. result += conn.ExecuteNonQuery(sqlString,
  304. new CDAParameter("IDNRK", row["MATNR"]),
  305. new CDAParameter("MENGE", menge),
  306. new CDAParameter("MEINS", row["MEINS"]),
  307. new CDAParameter("ORDERMEINS", row["BSTME"]),
  308. new CDAParameter("MAKTX", row["MAKTX"]),
  309. new CDAParameter("MATKL", row["MATKL"]),
  310. new CDAParameter("WGBEZ", row["WGBEZ"]),
  311. new CDAParameter("LABOR", row["LABOR"]),
  312. new CDAParameter("LGFSB", row["LGFSB"]),
  313. new CDAParameter("MTART", row["MTART"]),
  314. new CDAParameter("LVORM", row["LVORM"]),
  315. new CDAParameter("PRDHA", row["PRDHA"]),
  316. new CDAParameter("VTEXT", row["VTEXT"]),
  317. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  318. new CDAParameter("USERID", HttpContext.Current.Session["userId"])
  319. );
  320. }
  321. if (result > 0)
  322. {
  323. conn.Commit();
  324. return new JsonResult(JsonStatus.success).ToJson();
  325. }
  326. else
  327. {
  328. conn.Rollback();
  329. return new JsonResult(JsonStatus.error).ToJson();
  330. }
  331. }
  332. }
  333. /// <summary>
  334. /// 插入 TP_PC_BOMPACKUNIT
  335. /// </summary>
  336. /// <returns>json</returns>
  337. private string insert(NameValueCollection form)
  338. {
  339. using (IDataAccess conn = DataAccess.Create())
  340. {
  341. int result = conn.ExecuteNonQuery(@"
  342. INSERT INTO TP_PC_BOMPACKUNIT
  343. (IDNRK,
  344. MENGE,
  345. MEINS,
  346. ACCOUNTID,
  347. CREATEUSERID,
  348. UPDATEUSERID)
  349. VALUES
  350. (@IDNRK@,
  351. @MENGE@,
  352. @MEINS@,
  353. @ACCOUNTID@,
  354. @USERID@,
  355. @USERID@) ",
  356. new CDAParameter("IDNRK", form["IDNRK"]),
  357. new CDAParameter("MENGE", form["MENGE"]),
  358. new CDAParameter("MEINS", form["MEINS"]),
  359. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  360. new CDAParameter("USERID", HttpContext.Current.Session["userId"])
  361. );
  362. return new JsonResult(JsonStatus.success).ToJson();
  363. }
  364. }
  365. /// <summary>
  366. /// 更新 TP_PC_BOMPACKUNIT
  367. /// </summary>
  368. /// <returns>json</returns>
  369. private string update(NameValueCollection form)
  370. {
  371. using (IDataAccess conn = DataAccess.Create())
  372. {
  373. int result = conn.ExecuteNonQuery(@"
  374. UPDATE TP_PC_BOMPACKUNIT
  375. SET IDNRK = @IDNRK@,
  376. MENGE = @MENGE@,
  377. MEINS = @MEINS@,
  378. UPDATEUSERID = @USERID@
  379. WHERE BOMPACKUNITID = @BOMPACKUNITID@ ",
  380. new CDAParameter("IDNRK", form["IDNRK"]),
  381. new CDAParameter("MENGE", form["MENGE"]),
  382. new CDAParameter("MEINS", form["MEINS"]),
  383. new CDAParameter("USERID", HttpContext.Current.Session["userId"]),
  384. new CDAParameter("BOMPACKUNITID", HttpContext.Current.Request["id"])
  385. );
  386. return new JsonResult(JsonStatus.success).ToJson();
  387. }
  388. }
  389. /// <summary>
  390. /// 删除 TP_PC_BOMPACKUNIT
  391. /// </summary>
  392. /// <returns>json</returns>
  393. private string delete()
  394. {
  395. using (IDataAccess conn = DataAccess.Create())
  396. {
  397. if (HttpContext.Current.Request["id"] is object)
  398. {
  399. int result = conn.ExecuteNonQuery(@"
  400. DELETE TP_PC_BOMPACKUNIT
  401. WHERE INSTR(',' || @BOMPACKUNITID@ || ',' , ',' || BOMPACKUNITID || ',') > 0 ",
  402. new CDAParameter("BOMPACKUNITID", HttpContext.Current.Request["id"])
  403. );
  404. return new JsonResult(JsonStatus.success).ToJson();
  405. }
  406. else
  407. {
  408. return new JsonResult(JsonStatus.otherError).ToJson();
  409. }
  410. }
  411. }
  412. /// <summary>
  413. /// 导出 TP_PC_BOMPACKUNIT
  414. /// </summary>
  415. /// <returns>json</returns>
  416. private string export()
  417. {
  418. return search(new NameValueCollection());
  419. }
  420. private class Button
  421. {
  422. public bool bompackunitButtonSync = false;
  423. public bool bompackunitButtonIndex = false;
  424. public bool bompackunitButtonInsert = false;
  425. public bool bompackunitButtonInsertBatch = false;
  426. public bool bompackunitButtonCopy = false;
  427. public bool bompackunitButtonUpdate = false;
  428. public bool bompackunitButtonDelete = false;
  429. public bool bompackunitButtonCancel = false;
  430. public bool bompackunitButtonSearch = false;
  431. public bool bompackunitButtonDetail = false;
  432. public bool bompackunitButtonCheckbox = false;
  433. public bool bompackunitButtonExport = false;
  434. public bool bompackunitButtonReload = false;
  435. }
  436. private class xRecord
  437. {
  438. public string sid { get; set; }
  439. public string IDNRK { get; set; }
  440. public string MENGE { get; set; }
  441. public string MEINS { get; set; }
  442. }
  443. public bool IsReusable
  444. {
  445. get
  446. {
  447. return false;
  448. }
  449. }
  450. }