Change.php 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace app\cxinv\controller;
  3. use app\cxinv\model\DataChange;
  4. use think\App;use think\facade\Validate;
  5. class Change extends Base{
  6. public function __construct(App $app) {
  7. parent::__construct($app);
  8. $this->model = new DataChange();
  9. }
  10. public function list(){
  11. $param = $this->request->param(["code"=>"","companyNo"=>"","goodNo"=>"","good_type"=>"","page"=>1,"size"=>15],"post","trim");
  12. $where=[];
  13. if ($param['code']!="") $where[]=['code','like','%'.$param['code'].'%'];
  14. if ($param['companyNo']!="") $where[]=['data_change.companyNo','like','%'.$param['companyNo'].'%'];
  15. if ($param['goodNo']!="") $where[]=['goodNo','like','%'.$param['goodNo'].'%'];
  16. if ($param['good_type']!=""){
  17. switch ($param['good_type']){
  18. case 1:
  19. $where[]=['isZx','=',1];
  20. break;
  21. case 2:
  22. $where[]=['is_stock','=',1];
  23. break;
  24. case 3:
  25. $where[]=['is_stock','=',0];
  26. $where[]=['isZx','=',0];
  27. break;
  28. }
  29. }
  30. $list = $this->model->with(["Business"])
  31. ->withJoin(["good"],"left")
  32. ->where($where)
  33. ->order('id desc')->paginate(['list_rows'=>$param['size'],'page'=>$param['page']]);
  34. return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);
  35. }
  36. public function create(){
  37. $param=$this->request->param(["code"=>"","remark"=>"","type"=>1,"order_type"=>"","content"=>[]],"post","trim");
  38. $valid = Validate::rule([
  39. "code|单据编号"=>"require|max:255",
  40. "type|修改类型"=>"require|number|in:1",
  41. "order_type|单据类型"=>"require|number|in:1,2",
  42. "remark|备注"=>"max:255",
  43. "content|修改内容"=>"require|array",
  44. ]);
  45. if(!$valid->check($param)) return error($valid->getError());
  46. $model = $param['order_type']==1 ? new \app\cxinv\model\QrdInfo() : new \app\cxinv\model\CgdInfo();
  47. $info = $model->where("sequenceNo",$param['code'])->findOrEmpty();
  48. if($info->isEmpty()) return error("单据不存在");
  49. $before = DataChange::GetBefore($param['code'],$param['type'],$param['order_type']);
  50. DataChange::diffContent($before,$param['content'],$param['type']);
  51. $data = [
  52. "code"=>$param['code'],
  53. "type"=>$param['type'],
  54. "order_type"=>$param['order_type'],
  55. "companyNo"=>$info['companyNo'],
  56. "goodNo"=>$info['goodNo'],
  57. "before"=>$before,
  58. "after"=>$param['content'],
  59. "remark"=>$param['remark'],
  60. "apply_id"=>$this->uid,
  61. "apply_name"=>$this->uname,
  62. ];
  63. $save= $this->model->save($data);
  64. if($save) return success("提交成功");
  65. return error("提交失败");
  66. }
  67. public function info(){
  68. $param=$this->request->param(["id"=>0],"get","trim");
  69. $valid = Validate::rule([
  70. "id|id"=>"require|number",
  71. ]);
  72. if(!$valid->check($param)) return error($valid->getError());
  73. $info = $this->model->with(["Business"])->where("id",$param['id'])->findOrEmpty();
  74. if($info->isEmpty()) return error("单据不存在");
  75. $info['goodList'] = DataChange::GetBefore($info['code'],$info['type'],$info['order_type']);
  76. return success("获取成功",$info);
  77. }
  78. }