TaxCategory.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace app\user\controller;
  3. use app\user\model\TaxCompany;
  4. use app\user\model\TaxRelation;
  5. use app\user\model\TaxRelationLog;use think\App;
  6. use think\facade\Validate;
  7. class TaxCategory extends Base{
  8. public function __construct(App $app) {
  9. parent::__construct($app);
  10. $this->model = new \app\user\model\TaxCategory();
  11. }
  12. public function list(){
  13. $params=$this->request->param(["cat_name"=>"","cat_code"=>"","status"=>[],"page"=>1,"size"=>15],"post","trim");
  14. $where=[];
  15. if($params["cat_name"]!='') $where[]=["cat_name|short_name","like","%".$params["cat_name"]."%"];
  16. if($params["cat_code"]!='') $where[]=["cat_code|merge_code","like","%".$params["cat_code"]."%"];
  17. if(!empty($params["status"])) $where[]=["status","in",$params["status"]];
  18. $list=$this->model->where($where)->order("status asc,id desc")->paginate(["page"=>$params["page"],"list_rows"=>$params["size"]]);
  19. return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);
  20. }
  21. public function query(){
  22. $params=$this->request->param(["cat_name"=>"","cat_code"=>"","status"=>[]],"post","trim");
  23. $where=[["tax","<>",""]];
  24. if($params["cat_name"]!='') $where[]=["cat_name|short_name","like","%".$params["cat_name"]."%"];
  25. if($params["cat_code"]!='') $where[]=["cat_code|merge_code","like","%".$params["cat_code"]."%"];
  26. if(!empty($params["status"])) $where[]=["status","in",$params["status"]];
  27. $list=$this->model->where($where)
  28. ->field('cat_name,cat_code,status,tax,addtax,sumitem,`desc`,short_name,merge_code,LENGTH(cat_name) as weight')
  29. ->order("weight asc,id desc")
  30. ->limit(30)->select()->toArray();
  31. return success("获取成功",$list);
  32. }
  33. public function listByCompany(){
  34. $params=$this->request->param([
  35. "cat_name"=>"",
  36. 'tax_id'=>"",
  37. "short_name"=>"",
  38. "income_status"=>"",
  39. "output_status"=>"",
  40. "cat_code"=>"",
  41. "companyNo"=>"",
  42. "page"=>1,"size"=>15],"post","trim");
  43. $where=[];
  44. if($params["cat_name"]!='') $where[]=["cat_name","like","%".$params["cat_name"]."%"];
  45. if($params["short_name"]!='') $where[]=["short_name","like","%".$params["short_name"]."%"];
  46. if($params["tax_id"]!=='') $where[]=["tax_category.id","=",$params["tax_id"]];
  47. if($params["income_status"]!=='') $where[]=$params['income_status']==0 ? ['income','=',null] :['income','=',$params['income_status']];
  48. if($params["output_status"]!=='') $where[]=$params['output_status']==0 ? ['output','=',null] :['output','=',$params['output_status']];
  49. if($params["cat_code"]!='') $where[]=["cat_code|merge_code","like","%".$params["cat_code"]."%"];
  50. if($params["companyNo"]!='') $where[]=["business.companyNo","=",$params["companyNo"]];
  51. $list=$this->model->alias("tax_category")
  52. ->leftJoin("business",'business.is_del=tax_category.is_del and business.is_del=0')
  53. ->leftJoin("taxCompany c","business.companyNo=c.companyNo and tax_category.id=c.tax_id")
  54. ->field(['tax_category.id','cat_name','short_name','cat_code','merge_code','desc','tax','business.company companyName','business.companyNo','business.legaler_type',"income","output"])
  55. ->where($where)
  56. ->order("tax_category.id desc")->paginate(["page"=>$params["page"],"list_rows"=>$params["size"]])
  57. ->each(function($item){
  58. $item->income=$item->income??0;
  59. $item->output=$item->output??0;
  60. $item->incomeCn= TaxCompany::$useType[$item->income];
  61. $item->outputCn= TaxCompany::$useType[$item->output];
  62. });
  63. return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);
  64. }
  65. public function taxCompanySet(){
  66. $params=$this->request->param(["tax_ids"=>[],"companyNo"=>"","status"=>"","type"=>"in"],"post","trim");
  67. $valid=Validate::rule([
  68. "tax_ids|税目Id"=>"require|array",
  69. "companyNo|公司编号"=>"require",
  70. "status|状态"=>"require|integer|in:1,2",
  71. "type|类型"=>"require|in:in,out"
  72. ]);
  73. if(!$valid->check($params))return error($valid->getError());
  74. try{
  75. $taxCompany=new TaxCompany();
  76. $taxCompany->saveAll(array_map(function($item)use($params){
  77. $temp = [
  78. 'id'=>TaxCompany::where(['tax_id'=>$item,'companyNo'=>$params['companyNo']])->value('id',null),
  79. 'tax_id'=>$item,
  80. 'companyNo'=>$params['companyNo'],
  81. 'createrid'=>$this->uid,
  82. 'creater'=>$this->uname
  83. ];
  84. if($params['type']=='in'){
  85. $temp['income']=$params['status'];
  86. }else{
  87. $temp['output']=$params['status'];
  88. }
  89. return $temp;
  90. },$params['tax_ids']));
  91. }catch(\Exception $e){
  92. return error($e->getMessage());
  93. }
  94. return success("设置成功");
  95. }
  96. public function taxCompanyQuery(){
  97. $params=$this->request->param([
  98. 'cat_name'=>'',
  99. 'short_name'=>'',
  100. 'income_status'=>'',
  101. 'output_status'=>'',
  102. 'cat_code'=>'',
  103. 'in_status'=>'',
  104. 'out_status'=>'',
  105. 'companyNo'=>'',
  106. 'size'=>15],'post','trim');
  107. $where=[];
  108. if($params['cat_name']!='') $where[]=['cat_name','like','%'.$params['cat_name'].'%'];
  109. if($params['short_name']!='') $where[]=['short_name','like','%'.$params['short_name'].'%'];
  110. if($params['income_status']!=='') $where[]=$params['income_status']==0 ? ['income','is',null] :['income','=',$params['income_status']];
  111. if($params['output_status']!=='') $where[]=$params['output_status']==0 ? ['output','is',null] :['output','=',$params['output_status']];
  112. if($params['cat_code']!='') $where[]=['cat_code|merge_code','like','%'.$params['cat_code'].'%'];
  113. if($params['companyNo']!='') $where[]=['business.companyNo','=',$params['companyNo']];
  114. $list=$this->model->alias('tax_category')
  115. ->leftJoin('business','business.is_del=tax_category.is_del and business.is_del=0')
  116. ->leftJoin('taxCompany c','business.companyNo=c.companyNo and tax_category.id=c.tax_id')
  117. ->field(['tax_category.id','cat_name','short_name','cat_code','merge_code','desc','tax','business.company companyName','business.companyNo',"business,legaler_type",'income','output'])
  118. ->where($where)
  119. ->limit($params['size'])
  120. ->order('tax_category.id desc')->select()
  121. ->each(function($item){
  122. $item->income=$item->income??0;
  123. $item->output=$item->output??0;
  124. $item->incomeCn= TaxCompany::$useType[$item->income];
  125. $item->outputCn= TaxCompany::$useType[$item->output];
  126. });
  127. return success('获取成功',$list);
  128. }
  129. }