SupplierCatProfit.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. namespace app\admin\controller;
  3. use think\facade\Db;
  4. use think\facade\Validate;
  5. //公司分类毛利
  6. class SupplierCatProfit extends Base
  7. {
  8. //列表
  9. public function getList()
  10. {
  11. $param = $this->request->only(['page' => 1, 'size' => 10, 'supplier_name' => '', 'supplierNo' => '', 'cat_name' => ''], 'post', 'trim');
  12. $where = [['a.is_del', '=', 0]];
  13. if ($param['supplier_name'] != '') $where[] = ['b.name', 'like', '%' . $param['supplier_name'] . '%'];
  14. if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', '=', $param['supplierNo']];
  15. if ($param['cat_name'] != '') $where[] = ['f.cat_name', 'like', '%' . $param['cat_name'] . '%'];
  16. $count = Db::name('supplier_cat_profit')
  17. ->alias('a')
  18. ->leftJoin('supplier b', 'b.code=a.supplierNo')
  19. ->leftJoin('cat f', 'f.id=a.cat_id AND f.is_del=0')
  20. ->where($where)
  21. ->count('a.id');
  22. $list = Db::name('supplier_cat_profit')
  23. ->alias('a')
  24. ->field('a.id,a.supplierNo,b.name supplier_name,a.cat_id,f.cat_name,a.rate,a.order_rate,a.money_rate,a.low_rate,a.sale_rate,a.lower_rate,a.status,a.addtime')
  25. ->leftJoin('supplier b', 'b.code=a.supplierNo')
  26. ->leftJoin('cat f', 'f.id=a.cat_id AND f.is_del=0')
  27. ->where($where)
  28. ->order('a.id', 'desc')
  29. ->page($param['page'], $param['size'])
  30. ->select()
  31. ->toArray();
  32. return json_show(0, '获取列表成功', ['count' => $count, 'list' => $list]);
  33. }
  34. //添加
  35. public function add()
  36. {
  37. $param = $this->request->only(['supplierNo', 'cat_id', 'rate', 'order_rate', 'money_rate', 'low_rate', 'sale_rate', 'lower_rate'], 'post', 'trim');
  38. $val = Validate::rule([
  39. 'supplierNo|公司编码' => 'require|length:18',
  40. 'cat_id|分类id' => 'require|number|gt:0',
  41. 'rate|主管利率' => 'require|number|between:0,100',
  42. 'order_rate|预算成本' => 'require|number|between:0,100',
  43. 'money_rate|财务利率' => 'require|number|between:0,100',
  44. 'low_rate|最低利率' => 'require|number|between:0,100',
  45. 'sale_rate|成本售价' => 'require|number|between:0,100',
  46. 'lower_rate|BOSS利率' => 'require|number|between:0,100',
  47. ]);
  48. if (!$val->check($param)) return json_show(1004, $val->getError());
  49. $tmp_spcp = Db::name('supplier_cat_profit')
  50. ->field('id')
  51. ->where(['is_del' => 0, 'supplierNo' => $param['supplierNo'], 'cat_id' => $param['cat_id']])
  52. ->findOrEmpty();
  53. if (!empty($tmp_spcp)) return json_show(1004, '该公司分类的毛利已存在');
  54. $rs = Db::name('supplier_cat_profit')
  55. ->insert([
  56. 'supplierNo' => $param['supplierNo'],
  57. 'cat_id' => $param['cat_id'],
  58. 'rate' => $param['rate'],
  59. 'order_rate' => $param['order_rate'],
  60. 'money_rate' => $param['money_rate'],
  61. 'low_rate' => $param['low_rate'],
  62. 'sale_rate' => $param['sale_rate'],
  63. 'lower_rate' => $param['lower_rate'],
  64. 'status' => 1,
  65. 'is_del' => 0,
  66. 'addtime' => date('Y-m-d H:i:s'),
  67. 'updatetime' => date('Y-m-d H:i:s'),
  68. ]);
  69. return $rs ? json_show(0, '添加成功') : json_show(1004, '添加失败');
  70. }
  71. //详情
  72. public function info()
  73. {
  74. $id = $this->request->post('id/d', 0, 'trim');
  75. $rs = Db::name('supplier_cat_profit')
  76. ->field(true)
  77. ->where(['id' => $id, 'is_del' => 0])
  78. ->findOrEmpty();
  79. return json_show(0, '获取详情成功', $rs);
  80. }
  81. //修改
  82. public function update()
  83. {
  84. $param = $this->request->only(['id', 'rate', 'order_rate', 'money_rate', 'low_rate', 'sale_rate', 'lower_rate'], 'post', 'trim');
  85. $val = Validate::rule([
  86. 'id' => 'require|number|gt:0',
  87. 'rate|主管利率' => 'require|number|between:0,100',
  88. 'order_rate|预算成本' => 'require|number|between:0,100',
  89. 'money_rate|财务利率' => 'require|number|between:0,100',
  90. 'low_rate|最低利率' => 'require|number|between:0,100',
  91. 'sale_rate|成本售价' => 'require|number|between:0,100',
  92. 'lower_rate|BOSS利率' => 'require|number|between:0,100',
  93. ]);
  94. if (!$val->check($param)) return json_show(1004, $val->getError());
  95. $rs = Db::name('supplier_cat_profit')
  96. ->field('id')
  97. ->where(['is_del' => 0, 'id' => $param['id']])
  98. ->findOrEmpty();
  99. if (empty($rs)) return json_show(1004, '该记录不存在');
  100. $rs = Db::name('supplier_cat_profit')
  101. ->where(['is_del' => 0, 'id' => $param['id']])
  102. ->update([
  103. 'rate' => $param['rate'],
  104. 'order_rate' => $param['order_rate'],
  105. 'money_rate' => $param['money_rate'],
  106. 'low_rate' => $param['low_rate'],
  107. 'sale_rate' => $param['sale_rate'],
  108. 'lower_rate' => $param['lower_rate'],
  109. 'updatetime' => date('Y-m-d H:i:s')
  110. ]);
  111. return $rs ? json_show(0, '修改成功') : json_show(1004, '修改失败');
  112. }
  113. //启禁用
  114. public function status()
  115. {
  116. $param = $this->request->only(['id', 'status'], 'post', 'trim');
  117. $val = Validate::rule([
  118. 'id' => 'require|number|gt:0',
  119. 'status|状态' => 'require|number|in:0,1',
  120. ]);
  121. if (!$val->check($param)) return json_show(1004, $val->getError());
  122. // $tmp = Db::name('supplier_cat_profit')
  123. // ->field('id,status')
  124. // ->where(['is_del' => 0, 'id' => $param['id']])
  125. // ->findOrEmpty();
  126. //
  127. // if (empty($tmp)) return json_show(1004, '该记录不存在');
  128. // if ($tmp['status'] == $param['status']) return json_show(1004, '重复操作');
  129. $rs = Db::name('supplier_cat_profit')
  130. ->where(['is_del' => 0, 'id' => $param['id']])
  131. ->where('status', '<>', $param['status'])
  132. ->update([
  133. 'status' => $param['status'],
  134. 'updatetime' => date('Y-m-d H:i:s')
  135. ]);
  136. return $rs ? json_show(0, '操作成功') : json_show(1004, '操作失败,该记录不存在或重复操作');
  137. }
  138. //删除
  139. public function delete()
  140. {
  141. $id = $this->request->post('id/d', 0, 'trim');
  142. $rs = Db::name('supplier_cat_profit')
  143. ->where(['is_del' => 0, 'id' => $id])
  144. ->update([
  145. 'is_del' => 1,
  146. 'updatetime' => date('Y-m-d H:i:s')
  147. ]);
  148. return $rs ? json_show(0, '删除成功') : json_show(1004, '删除失败');
  149. }
  150. }