bompackunit.ashx 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  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 T.NAME is not null
  175. AND BP.ACCOUNTID = @ACCOUNTID@ ";
  176. List<CDAParameter> sqlPara = new List<CDAParameter>();
  177. sqlPara.Add(new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]));
  178. if (!string.IsNullOrEmpty(form["BOMPACKUNITID"]))
  179. {
  180. sqlStr += " AND BP.BOMPACKUNITID = @BOMPACKUNITID@ ";
  181. sqlPara.Add(new CDAParameter("BOMPACKUNITID", form["BOMPACKUNITID"]));
  182. }
  183. if (!string.IsNullOrEmpty(form["IDNRK"]))
  184. {
  185. sqlStr += " AND INSTR( BP.IDNRK, @IDNRK@ ) > 0 ";
  186. sqlPara.Add(new CDAParameter("IDNRK", form["IDNRK"]));
  187. }
  188. if (!string.IsNullOrEmpty(form["NAME"]))
  189. {
  190. sqlStr += " AND INSTR( T.NAME, @NAME@ ) > 0 ";
  191. sqlPara.Add(new CDAParameter("NAME", form["NAME"]));
  192. }
  193. if (sort != "")
  194. {
  195. sqlStr += " ORDER BY " + sort + " " + order;
  196. }
  197. else
  198. {
  199. sqlStr += " ORDER BY BP.BOMPACKUNITID DESC";
  200. }
  201. int total = 0;
  202. DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
  203. return new JsonResult(dt) { total = total }.ToJson();
  204. }
  205. }
  206. /// <summary>
  207. /// 详细 TP_PC_BOMPACKUNIT
  208. /// </summary>
  209. /// <returns>json</returns>
  210. private string detail()
  211. {
  212. using (IDataAccess conn = DataAccess.Create())
  213. {
  214. DataTable dt = conn.ExecuteDatatable(@"
  215. SELECT BP.BOMPACKUNITID AS SID,
  216. BP.BOMPACKUNITID,
  217. BP.IDNRK,
  218. T.NAME,
  219. BP.MENGE,
  220. BP.MEINS,
  221. BP.CREATETIME,
  222. BP.UPDATETIME,
  223. CU.USERNAME AS CREATEUSERNAME,
  224. CU.USERNAME AS UPDATEUSERNAME
  225. FROM TP_PC_BOMPACKUNIT BP
  226. LEFT JOIN (SELECT PBD.IDNRK,
  227. NAME
  228. FROM TP_MST_PACKINGBOMDETAIL PBD
  229. GROUP BY PBD.IDNRK,
  230. NAME) T
  231. ON T.IDNRK = BP.IDNRK
  232. LEFT JOIN TP_MST_USER CU
  233. ON CU.USERID = BP.CREATEUSERID
  234. LEFT JOIN TP_MST_USER UU
  235. ON UU.USERID = BP.UPDATEUSERID
  236. WHERE BP.BOMPACKUNITID = @BOMPACKUNITID@ ",
  237. new CDAParameter("BOMPACKUNITID", HttpContext.Current.Request["id"])
  238. );
  239. return new JsonResult(dt).ToJson();
  240. }
  241. }
  242. /// <summary>
  243. /// 删除 TP_PC_BOMPACKUNIT
  244. /// </summary>
  245. /// <returns>json</returns>
  246. private string sync(HttpContext context)
  247. {
  248. string ZTYPE;
  249. string ZMSG;
  250. DataTable dtResult = SapApi.ZMMFM054(out ZTYPE, out ZMSG,null,null);
  251. if ("E".Equals(ZTYPE) || dtResult == null || dtResult.Rows.Count == 0)
  252. {
  253. return new JsonResult(JsonStatus.otherError).ToJson();
  254. }
  255. using (IDataAccess conn = DataAccess.Create())
  256. {
  257. // 开启事务
  258. conn.BeginTransaction();
  259. // 删除所有
  260. int result = conn.ExecuteNonQuery(@"
  261. DELETE FROM TP_PC_BOMPACKUNIT "
  262. );
  263. // 插入新的
  264. string sqlString = @"
  265. INSERT INTO TP_PC_BOMPACKUNIT
  266. (IDNRK,
  267. MENGE,
  268. MEINS,
  269. ORDERMEINS,
  270. MAKTX,
  271. MATKL,
  272. WGBEZ,
  273. LABOR,
  274. LGFSB,
  275. MTART,
  276. LVORM,
  277. PRDHA,
  278. VTEXT,
  279. ACCOUNTID,
  280. CREATEUSERID,
  281. UPDATEUSERID)
  282. VALUES
  283. (@IDNRK@,
  284. @MENGE@,
  285. @MEINS@,
  286. @ORDERMEINS@,
  287. @MAKTX@,
  288. @MATKL@,
  289. @WGBEZ@,
  290. @LABOR@,
  291. @LGFSB@,
  292. @MTART@,
  293. @LVORM@,
  294. @PRDHA@,
  295. @VTEXT@,
  296. @ACCOUNTID@,
  297. @USERID@,
  298. @USERID@) ";
  299. decimal menge = 0;
  300. foreach (DataRow row in dtResult.Rows)
  301. {
  302. decimal.TryParse(row["BSTRF"] + "", out menge);
  303. menge = menge == 0 ? 1 : menge;
  304. result += conn.ExecuteNonQuery(sqlString,
  305. new CDAParameter("IDNRK", row["MATNR"]),
  306. new CDAParameter("MENGE", menge),
  307. new CDAParameter("MEINS", row["MEINS"]),
  308. new CDAParameter("ORDERMEINS", row["BSTME"]),
  309. new CDAParameter("MAKTX", row["MAKTX"]),
  310. new CDAParameter("MATKL", row["MATKL"]),
  311. new CDAParameter("WGBEZ", row["WGBEZ"]),
  312. new CDAParameter("LABOR", row["LABOR"]),
  313. new CDAParameter("LGFSB", row["LGFSB"]),
  314. new CDAParameter("MTART", row["MTART"]),
  315. new CDAParameter("LVORM", row["LVORM"]),
  316. new CDAParameter("PRDHA", row["PRDHA"]),
  317. new CDAParameter("VTEXT", row["VTEXT"]),
  318. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  319. new CDAParameter("USERID", HttpContext.Current.Session["userId"])
  320. );
  321. }
  322. if (result > 0)
  323. {
  324. conn.Commit();
  325. return new JsonResult(JsonStatus.success).ToJson();
  326. }
  327. else
  328. {
  329. conn.Rollback();
  330. return new JsonResult(JsonStatus.error).ToJson();
  331. }
  332. }
  333. }
  334. /// <summary>
  335. /// 插入 TP_PC_BOMPACKUNIT
  336. /// </summary>
  337. /// <returns>json</returns>
  338. private string insert(NameValueCollection form)
  339. {
  340. using (IDataAccess conn = DataAccess.Create())
  341. {
  342. int result = conn.ExecuteNonQuery(@"
  343. INSERT INTO TP_PC_BOMPACKUNIT
  344. (IDNRK,
  345. MENGE,
  346. MEINS,
  347. ACCOUNTID,
  348. CREATEUSERID,
  349. UPDATEUSERID)
  350. VALUES
  351. (@IDNRK@,
  352. @MENGE@,
  353. @MEINS@,
  354. @ACCOUNTID@,
  355. @USERID@,
  356. @USERID@) ",
  357. new CDAParameter("IDNRK", form["IDNRK"]),
  358. new CDAParameter("MENGE", form["MENGE"]),
  359. new CDAParameter("MEINS", form["MEINS"]),
  360. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  361. new CDAParameter("USERID", HttpContext.Current.Session["userId"])
  362. );
  363. return new JsonResult(JsonStatus.success).ToJson();
  364. }
  365. }
  366. /// <summary>
  367. /// 更新 TP_PC_BOMPACKUNIT
  368. /// </summary>
  369. /// <returns>json</returns>
  370. private string update(NameValueCollection form)
  371. {
  372. using (IDataAccess conn = DataAccess.Create())
  373. {
  374. int result = conn.ExecuteNonQuery(@"
  375. UPDATE TP_PC_BOMPACKUNIT
  376. SET IDNRK = @IDNRK@,
  377. MENGE = @MENGE@,
  378. MEINS = @MEINS@,
  379. UPDATEUSERID = @USERID@
  380. WHERE BOMPACKUNITID = @BOMPACKUNITID@ ",
  381. new CDAParameter("IDNRK", form["IDNRK"]),
  382. new CDAParameter("MENGE", form["MENGE"]),
  383. new CDAParameter("MEINS", form["MEINS"]),
  384. new CDAParameter("USERID", HttpContext.Current.Session["userId"]),
  385. new CDAParameter("BOMPACKUNITID", HttpContext.Current.Request["id"])
  386. );
  387. return new JsonResult(JsonStatus.success).ToJson();
  388. }
  389. }
  390. /// <summary>
  391. /// 删除 TP_PC_BOMPACKUNIT
  392. /// </summary>
  393. /// <returns>json</returns>
  394. private string delete()
  395. {
  396. using (IDataAccess conn = DataAccess.Create())
  397. {
  398. if (HttpContext.Current.Request["id"] is object)
  399. {
  400. int result = conn.ExecuteNonQuery(@"
  401. DELETE TP_PC_BOMPACKUNIT
  402. WHERE INSTR(',' || @BOMPACKUNITID@ || ',' , ',' || BOMPACKUNITID || ',') > 0 ",
  403. new CDAParameter("BOMPACKUNITID", HttpContext.Current.Request["id"])
  404. );
  405. return new JsonResult(JsonStatus.success).ToJson();
  406. }
  407. else
  408. {
  409. return new JsonResult(JsonStatus.otherError).ToJson();
  410. }
  411. }
  412. }
  413. /// <summary>
  414. /// 导出 TP_PC_BOMPACKUNIT
  415. /// </summary>
  416. /// <returns>json</returns>
  417. private string export()
  418. {
  419. return search(new NameValueCollection());
  420. }
  421. private class Button
  422. {
  423. public bool bompackunitButtonSync = false;
  424. public bool bompackunitButtonIndex = false;
  425. public bool bompackunitButtonInsert = false;
  426. public bool bompackunitButtonInsertBatch = false;
  427. public bool bompackunitButtonCopy = false;
  428. public bool bompackunitButtonUpdate = false;
  429. public bool bompackunitButtonDelete = false;
  430. public bool bompackunitButtonCancel = false;
  431. public bool bompackunitButtonSearch = false;
  432. public bool bompackunitButtonDetail = false;
  433. public bool bompackunitButtonCheckbox = false;
  434. public bool bompackunitButtonExport = false;
  435. public bool bompackunitButtonReload = false;
  436. }
  437. private class xRecord
  438. {
  439. public string sid { get; set; }
  440. public string IDNRK { get; set; }
  441. public string MENGE { get; set; }
  442. public string MEINS { get; set; }
  443. }
  444. public bool IsReusable
  445. {
  446. get
  447. {
  448. return false;
  449. }
  450. }
  451. }