123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- namespace app\user\controller;
- use app\user\model\TaxCompany;
- use app\user\model\TaxRelation;
- use app\user\model\TaxRelationLog;use think\App;
- use think\facade\Validate;
- class TaxCategory extends Base{
- public function __construct(App $app) {
- parent::__construct($app);
- $this->model = new \app\user\model\TaxCategory();
- }
- public function list(){
- $params=$this->request->param(["cat_name"=>"","cat_code"=>"","status"=>[],"page"=>1,"size"=>15],"post","trim");
- $where=[];
- if($params["cat_name"]!='') $where[]=["cat_name|short_name","like","%".$params["cat_name"]."%"];
- if($params["cat_code"]!='') $where[]=["cat_code|merge_code","like","%".$params["cat_code"]."%"];
- if(!empty($params["status"])) $where[]=["status","in",$params["status"]];
- $list=$this->model->where($where)->order("status asc,id desc")->paginate(["page"=>$params["page"],"list_rows"=>$params["size"]]);
- return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);
- }
- public function query(){
- $params=$this->request->param(["cat_name"=>"","cat_code"=>"","status"=>[]],"post","trim");
- $where=[["tax","<>",""]];
- if($params["cat_name"]!='') $where[]=["cat_name|short_name","like","%".$params["cat_name"]."%"];
- if($params["cat_code"]!='') $where[]=["cat_code|merge_code","like","%".$params["cat_code"]."%"];
- if(!empty($params["status"])) $where[]=["status","in",$params["status"]];
- $list=$this->model->where($where)
- ->field('cat_name,cat_code,status,tax,addtax,sumitem,`desc`,short_name,merge_code,LENGTH(cat_name) as weight')
- ->order("weight asc,id desc")
- ->limit(30)->select()->toArray();
- return success("获取成功",$list);
- }
- public function listByCompany(){
- $params=$this->request->param([
- "cat_name"=>"",
- "short_name"=>"",
- "income_status"=>"",
- "output_status"=>"",
- "cat_code"=>"",
- "companyNo"=>"",
- "page"=>1,"size"=>15],"post","trim");
- $where=[];
- if($params["cat_name"]!='') $where[]=["cat_name","like","%".$params["cat_name"]."%"];
- if($params["short_name"]!='') $where[]=["short_name","like","%".$params["short_name"]."%"];
- if($params["income_status"]!=='') $where[]=$params['income_status']==0 ? ['income','=',null] :['income','=',$params['income_status']];
- if($params["output_status"]!=='') $where[]=$params['output_status']==0 ? ['output','=',null] :['output','=',$params['output_status']];
- if($params["cat_code"]!='') $where[]=["cat_code|merge_code","like","%".$params["cat_code"]."%"];
- if($params["companyNo"]!='') $where[]=["business.companyNo","=",$params["companyNo"]];
- $list=$this->model->alias("tax_category")
- ->leftJoin("business",'business.is_del=tax_category.is_del and business.is_del=0')
- ->leftJoin("taxCompany c","business.companyNo=c.companyNo and tax_category.id=c.tax_id")
- ->field(['tax_category.id','cat_name','short_name','cat_code','merge_code','desc','tax','business.company companyName','business.companyNo','business.legaler_type',"income","output"])
- ->where($where)
- ->order("tax_category.id desc")->paginate(["page"=>$params["page"],"list_rows"=>$params["size"]])
- ->each(function($item){
- $item->income=$item->income??0;
- $item->output=$item->output??0;
- $item->incomeCn= TaxCompany::$useType[$item->income];
- $item->outputCn= TaxCompany::$useType[$item->output];
- });
- return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);
- }
- public function taxCompanySet(){
- $params=$this->request->param(["tax_ids"=>[],"companyNo"=>"","status"=>"","type"=>"in"],"post","trim");
- $valid=Validate::rule([
- "tax_ids|税目Id"=>"require|array",
- "companyNo|公司编号"=>"require",
- "status|状态"=>"require|integer|in:1,2",
- "type|类型"=>"require|in:in,out"
- ]);
- if(!$valid->check($params))return error($valid->getError());
- try{
- $taxCompany=new TaxCompany();
- $taxCompany->saveAll(array_map(function($item)use($params){
- $temp = [
- 'id'=>TaxCompany::where(['tax_id'=>$item,'companyNo'=>$params['companyNo']])->value('id',null),
- 'tax_id'=>$item,
- 'companyNo'=>$params['companyNo'],
- 'createrid'=>$this->uid,
- 'creater'=>$this->uname
- ];
- if($params['type']=='in'){
- $temp['income']=$params['status'];
- }else{
- $temp['output']=$params['status'];
- }
- return $temp;
- },$params['tax_ids']));
- }catch(\Exception $e){
- return error($e->getMessage());
- }
- return success("设置成功");
- }
- public function taxCompanyQuery(){
- $params=$this->request->param([
- 'cat_name'=>'',
- 'short_name'=>'',
- 'income_status'=>'',
- 'output_status'=>'',
- 'cat_code'=>'',
- 'in_status'=>'',
- 'out_status'=>'',
- 'companyNo'=>'',
- 'size'=>15],'post','trim');
- $where=[];
- if($params['cat_name']!='') $where[]=['cat_name','like','%'.$params['cat_name'].'%'];
- if($params['short_name']!='') $where[]=['short_name','like','%'.$params['short_name'].'%'];
- if($params['income_status']!=='') $where[]=$params['income_status']==0 ? ['income','is',null] :['income','=',$params['income_status']];
- if($params['output_status']!=='') $where[]=$params['output_status']==0 ? ['output','is',null] :['output','=',$params['output_status']];
- if($params['cat_code']!='') $where[]=['cat_code|merge_code','like','%'.$params['cat_code'].'%'];
- if($params['companyNo']!='') $where[]=['business.companyNo','=',$params['companyNo']];
- $list=$this->model->alias('tax_category')
- ->leftJoin('business','business.is_del=tax_category.is_del and business.is_del=0')
- ->leftJoin('taxCompany c','business.companyNo=c.companyNo and tax_category.id=c.tax_id')
- ->field(['tax_category.id','cat_name','short_name','cat_code','merge_code','desc','tax','business.company companyName','business.companyNo',"business,legaler_type",'income','output'])
- ->where($where)
- ->limit($params['size'])
- ->order('tax_category.id desc')->select()
- ->each(function($item){
- $item->income=$item->income??0;
- $item->output=$item->output??0;
- $item->incomeCn= TaxCompany::$useType[$item->income];
- $item->outputCn= TaxCompany::$useType[$item->output];
- });
- return success('获取成功',$list);
- }
- }
|