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"=>"", "in_status"=>"", 'out_status'=>'', "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['in_status']!='') $where[]=$params['in_status']==0 ? ['in_status','=',null] :['in_status','=',$params['in_status']]; if($params['out_status']!='') $where[]=$params['out_status']==0 ? ['out_status','=',null] :['out_status','=',$params['out_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.status=1 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','in_status', "out_status","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->in_status= $item->in_status??0; $item->out_status= $item->out_status??0; $item->incomeCn= TaxCompany::$useType[$item->income]; $item->outputCn= TaxCompany::$useType[$item->output]; $item->in_statusCn=TaxCompany::$inStatus[$item->in_status]; $item->out_statusCn=TaxCompany::$inStatus[$item->out_status]; }); 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['in_status']!='') $params['in_status']==0 ? ['in_status','is',null] :['in_status','=',$params['in_status']]; if($params['out_status']!='') $params['out_status']==0 ? ['out_status','is',null] :['out_status','=',$params['out_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.status=tax_category.status and business.status=1 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",'in_status', 'out_status','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->in_status= $item->in_status??0; $item->out_status= $item->out_status??0; $item->incomeCn= TaxCompany::$useType[$item->income]; $item->outputCn= TaxCompany::$useType[$item->output]; $item->in_statusCn=TaxCompany::$inStatus[$item->in_status]; $item->out_statusCn=TaxCompany::$inStatus[$item->out_status]; }); return success('获取成功',$list); } // public function taxCompanyCreate(){ // $params=$this->request->param(["in_tax_ids"=>[],"companyNo"=>"","out_tax_id"=>"",'out_bind_tax'=>''],"post","trim"); // $valid=Validate::rule([ // "in_tax_ids|进项类目"=>"require|array", // "companyNo|公司编号"=>"require", // "out_tax_id|销项类目"=>"require|integer", // "out_bind_tax|销项税率"=>"require" // ]); // if(!$valid->check($params))return error($valid->getError()); // try { // $inCheck = TaxCompany::taxCheck($params['companyNo'],$params['in_tax_ids']); // if(!$inCheck)return error('进项类目配置异常'); // $outCheck=TaxCompany::taxCheck($params['companyNo'],$params['out_tax_id'],'out'); // if(!$outCheck)return error('销项类目配置异常'); // $isExist=TaxRelation::relationCheck($params['companyNo'],$params['in_tax_ids']); // if(!$isExist)return error('进项类目已存在'); // $isInExist=\app\user\model\TaxCategory::checkTax($params['out_tax_id'],$params['out_bind_tax']); // if(!$isInExist)return error('销项类目税率不存在'); // $createData=[ // 'income_tax_id'=>0, // 'output_tax_id'=>$params['out_tax_id'], // 'output_bind_tax'=>$params['out_bind_tax'], // 'companyNo'=>$params['companyNo'], // 'createrid'=>$this->uid, // 'creater'=>$this->uname, // ]; // (new TaxRelation())->saveAll(array_map(function($item)use($createData){ // $createData['income_tax_id']=$item; // return $createData; // },$params['in_tax_ids'])); // }catch (\Exception $e){ // return error($e->getMessage()); // } // return success("添加成功"); // } // // public function taxCompanyUpdate(){ // $params=$this->request->param(["id"=>"",'out_tax_id'=>'','out_bind_tax'=>''],"post","trim"); // $valid=Validate::rule([ // "id|主键Id"=>"require|integer", // "out_tax_id|销项类目"=>"require|integer", // "out_bind_tax|销项税率"=>"require" // ]); // if(!$valid->check($params))return error($valid->getError()); // $relation=TaxRelation::where(["id"=>$params["id"]])->findOrEmpty(); // if($relation->isEmpty())return error("数据不存在"); // try{ // $outCheck=TaxCompany::taxCheck($relation->companyNo,$params['out_tax_id'],'out'); // if(!$outCheck)return error('销项类目配置异常'); // if($relation->output_tax_id!=$params['out_tax_id']){ // $isExist=TaxRelation::where([['companyNo','=',$relation->companyNo],['income_tax_id','=', // $relation->income_tax_id],['output_tax_id','=',$params['out_tax_id']],['id','<>',$relation->id]])->findOrEmpty(); // if(!$isExist->isEmpty())return error('进销项类目关联已存在'); // } // $isInExist=\app\user\model\TaxCategory::checkTax($params['out_tax_id'],$params['out_bind_tax']); // if(!$isInExist)return error('销项类目税率不存在'); // $relation->output_tax_id=$params['out_tax_id']; // $relation->output_bind_tax=$params['out_bind_tax']; // $relation->updater=$this->uname; // $save=$relation->save(); // if(!$save)return error("修改失败"); // }catch (\Exception $e){ // return error($e->getMessage()); // } // return success("修改成功"); // } // public function taxCompanyDelete(){ // $id=$this->request->post("id/d"); // $relation=TaxRelation::where(["id"=>$id])->findOrEmpty(); // if($relation->isEmpty())return error("数据不存在"); // $relation->updater=$this->uname; // $save=$relation->delete(); // if($save)return success("删除成功"); // return error("删除失败"); // } // public function taxCompanyList(){ // $params=$this->request->param(["companyNo"=>"","income_code"=>"","output_code"=>"","page"=>1,"size"=>15],"post","trim"); // $where=[]; // if($params["companyNo"]!='') $where[]=["companyNo","like","%".$params["companyNo"]."%"]; // if($params["income_code"]!='') $where[]=["incomeTax.merge_code","like","%".$params["income_code"]."%"]; // if($params["output_code"]!='') $where[]=["outputTax.merge_code","like","%".$params["output_code"]."%"]; // $list=TaxRelation::with(["incomeTax","company",'outputTax']) // ->withJoin(["incomeTax","outputTax"])->where($where)->order("id desc") // ->paginate(["page"=>$params["page"],"list_rows"=>$params["size"]]); // return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]); // } // // public function taxCompanyLog(){ // $params=$this->request->param(['companyNo'=>'','income_code'=>'','output_code'=>'','change_type'=>'','page'=>1,'size'=>15],'post','trim'); // $where=[]; // if($params['companyNo']!='') $where[]=['companyNo','like','%'.$params['companyNo'].'%']; // if($params['income_code']!='') $where[]=['incomeTax.merge_code','like','%'.$params['income_code'].'%']; // if($params['output_code']!='') $where[]=['outputTax.merge_code','like','%'.$params['output_code'].'%']; // if($params['change_type']!='') $where[]=['change_type','=',$params['change_type']]; // $list=TaxRelationLog::with(['incomeTax','company','outputTax']) // ->withJoin(['incomeTax','outputTax'])->where($where)->order('id desc') // ->paginate(['page'=>$params['page'],'list_rows'=>$params['size']])->each(function(&$item){ // if(!empty($item['change_content'])&& isset($item['change_content']['output_tax_id'])){ // $outputTax=\app\user\model\TaxCategory::where(['id'=>$item->change_content['output_tax_id']])->field('id output_tax_id,cat_name,merge_code,tax,short_name,cat_code')->findOrEmpty(); // if(!$outputTax->isEmpty()){ // $item->change_content=array_merge($item->change_content,["output_tax_info"=>$outputTax]); // } // } // }); // return success('获取成功',['list'=>$list->items(),'count'=>$list->total()]); // } }