FuncPowerHelper.cs 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using JLHHJSvr.DBA.DBModle;
  2. using JLHHJSvr.LJException;
  3. using LJLib.DAL.SQL;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data.SqlClient;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace JLHHJSvr.BLL
  11. {
  12. internal class FuncPowerHelper
  13. {
  14. public static Dictionary<int, string> _stupidFunc = new Dictionary<int, string>
  15. {
  16. {703,"销售报价单隐藏成本" },
  17. {2179,"销售发货单不显示客户欠款情况" },
  18. {2402,"销售发货单单价不允许编辑" },
  19. {2403,"销售订单单价不允许编辑" },
  20. {2635,"销售订单必须选择订单分类" },
  21. {3066,"销售发货单仓审后不能打印" },
  22. {3158,"销售订单折扣不允许编辑" },
  23. {3159,"销售发货单折扣不允许编辑" },
  24. {3200,"调出明细只能选公共库存" },
  25. {3201,"调货时只能调空闲库存" },
  26. {3672,"销售订单0单价不允许保存" },
  27. {3703,"只允许修改自己及下级用户建立的单据" },
  28. {3704,"只允许修改自己及下级用户建立的单据" },
  29. {3712,"不允许审核订单明细没有默认供应商的采购订单" },
  30. {3713,"不允许审核订单明细没有申购单的采购订单" },
  31. {3714,"不允许审核订单明细没有采购合同的采购订单" },
  32. {3715,"不能仓库审核有实发数与计划发货数不相等的发货单" },
  33. {3847,"明细只能选择工序" },
  34. {3890,"客户补件单确认后才能打印" },
  35. {3905,"明细不能选择更新原订单" },
  36. {3910,"已打印的销售发货单不能撤审" },
  37. {3911,"销售发货单不允许重复打印" },
  38. {3990,"销售订单审核检查审核日期+生产周期<=订单明细交期" },
  39. {4141,"建立日期和计件月份不允许修改" },
  40. {4169,"不允许查看无效物料" },
  41. {4200,"销售发货单仓审日期不能早于销售日期" },
  42. {4354,"板式销售意向单单价不允许编辑" },
  43. {4355,"板式销售意向单折扣不允许编辑" },
  44. {4365,"不允许审核订单明细有0单价的采购订单" },
  45. {4366,"不允许审核订单明细有0单价的采购订单" },
  46. {4400,"销售发货单0单价不允许保存" },
  47. {4427,"销售报价不能低于标准销售价" },
  48. {4428,"销售订单严格按照客户指定的货运部选择" },
  49. {4429,"销售发货单严格按照客户指定的货运部选择" },
  50. {4535,"不允许编辑单价" },
  51. {4555,"单价少于定价不能审核" },
  52. {4615,"编辑状态下不允许删除明细" },
  53. {4616,"编辑状态下不允许删除明细" },
  54. {4690,"不允许审核订单明细有0单价的采购订单" },
  55. {4843,"必须选销售退货单明细" },
  56. {4883,"不允许重复打印派工单的权限" },
  57. {5078,"不允许编辑工价" },
  58. {5168,"不允许修改单价" },
  59. {5201,"销售限价为0不能审核" },
  60. {5207,"销售退货单不允许重复打印" },
  61. {5274,"只能查看自己建立的单据" },
  62. {5289,"明细没有合同不允许审核" },
  63. {5290,"明细没有单价不允许审核" },
  64. {5291,"明细没有默认供应商不允许审核" },
  65. {5599,"隐藏规格参数页" },
  66. {5633,"只允许查看自己建立的单据" },
  67. {5634,"只允许查看自己建立的单据" },
  68. {5734,"不允许编辑单价" },
  69. {5738,"不允许修改明细员工" },
  70. {5739,"不允许修改客户折扣" },
  71. {5740,"不允许修改客户折扣" },
  72. {5795,"限制派工员工受限于工种技术等级" },
  73. {5888,"只允许修改自己及下级用户建立的单据" },
  74. {6007,"税率为0不允许保存" },
  75. {6008,"税率为0不允许保存" },
  76. {6027,"只允许操作有权限工段的排程" },
  77. {6256,"隐藏绩效分页" },
  78. {6371,"借用原因只能选不能录入" },
  79. {6390,"报销内容不能为空白或金额为0" },
  80. {6444,"定价为0不能审核" },
  81. {6502,"只能显示自己建立的单据" },
  82. {6503,"只能修改自己建立的单据" },
  83. {6527,"财审前修改费用明细" },
  84. {6548,"不允许保存调入日期和调出日期不一致的单据" },
  85. {6573,"隐藏费用明细页" },
  86. {6580,"出口销售订单单价不允许编辑" },
  87. {6725,"限制录入客户信息" },
  88. {6727,"销售发货单0税率不允许保存" },
  89. {6777,"只能修改自己建立的单据" },
  90. {6807,"不允许修改客户币种" },
  91. {6808,"不允许修改供应商币种" },
  92. {6809,"不允许修改客户币种" },
  93. {6835,"必须选择部门" },
  94. {6836,"必须选择部门" },
  95. {6845,"不允许保存订单明细0单价的采购订单" },
  96. };
  97. /// <summary>
  98. /// 包含对反转权限的转义,有权限/无限制返回true,无权限/有限制返回false
  99. /// </summary>
  100. public static bool CheckFuncPower(SqlCommand cmd, int empid, int funcid)
  101. {
  102. if (empid == 0)
  103. {
  104. return true;
  105. }
  106. var user = new u_user_jlhprice() { empid = empid };
  107. if (DbSqlHelper.SelectOne(cmd, user, "Empid,rightstring") != 1)
  108. {
  109. throw new LJCommonException(string.Format("查询用户信息失败,empid:{0}", empid));
  110. }
  111. var ifStupidFunc = false;
  112. if (_stupidFunc.ContainsKey(funcid))
  113. {
  114. ifStupidFunc = true;
  115. }
  116. else
  117. {
  118. cmd.CommandText = "SELECT parentid FROM sys_func_pwr WHERE funcid = " + funcid;
  119. cmd.Parameters.Clear();
  120. using (var reader = cmd.ExecuteReader())
  121. {
  122. if (reader.Read())
  123. {
  124. if (Convert.ToInt32(reader["parentid"]) == 521)
  125. {
  126. ifStupidFunc = true;
  127. }
  128. }
  129. }
  130. }
  131. var funcVal = GetFuncPowerVal(funcid, user.rightstring);
  132. return funcVal != ifStupidFunc;
  133. }
  134. private static bool GetFuncPowerVal(int funcid, string sys_pwrstr)
  135. {
  136. bool rslt;
  137. rslt = funcid > 0 && sys_pwrstr.Length >= funcid &&
  138. sys_pwrstr.Substring(funcid - 1, 1) == "1";
  139. return rslt;
  140. }
  141. }
  142. }