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); } }