model = new FinancialTz(); } public function list() { $params = $this->request->param(["goodNo"=>"","goodType"=>"","status"=>"","start"=>"","end"=>"",'seller_code'=>"", "page"=>1,"size"=>15],"post","trim"); $where=[]; if($params['goodNo']!='') $where[]=['manager.goodNo','like','%'.$params['goodNo'].'%']; if($params['goodType']!='') $where[]=['manager.goodType','=',$params['goodType']]; if($params['status']!='') $where[]=['financial_tz.status','=',$params['status']]; if($params['start']!='') $where[]=['financial_tz.create_time','>=',startTime($params['start'])]; if($params['end']!='') $where[]=['financial_tz.create_time','<=',startTime($params['end'])]; if($params['seller_code']!='') $where[]=['manager.seller_code','=',$params['seller_code']]; $list = $this->model ->with(["ProductTz"=>["Product"]]) ->withJoin("Manager", "LEFT") ->where($where) ->order("financial_tz.id", "desc") ->paginate(['page'=>$params['page'],'list_rows'=>$params['size']]); return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]); } public function info() { $ids = $this->request->param("id","0","int"); if($ids==0) return error("参数错误"); $info = $this->model ->with(["ProductTz"=>["Product"],"Manager"=>['ProductRela'=>['Product']],"FinancialCheck"]) ->findOrEmpty($ids); if($info->isEmpty()) return error("信息不存在"); return success("获取成功",$info); } public function status() { $params = $this->request->param(["id","status","idArr"=>[],'fz_date'=>"","checkFee"=>"","isAddCheck"=>0],"post","trim"); $validate = $this->validate($params,[ 'id|计提单ID'=>'require|number', 'status|状态'=>'require|number|in:1,2,3,4', 'fz_date|调整日期'=>'requireIf:status,2|max:255', 'idArr|关联商品id'=>'requireIf:status,2|array', 'checkFee|调整金额'=>'requireIf:status,2|float', 'isAddCheck|是否添加至调整单'=>'number|in:0,1', ]); if($validate!==true) return error($validate); $info = $this->model->with(['Manager'])->findOrEmpty($params['id']); if($info->isEmpty()) return error("计提单信息不存在"); if($info->status==2) return error("已审核,无法修改"); $manager = $info->Manager; $companyCode= in_array($manager['type'],['2','4'])?$manager['seller_code']:$manager['buyer_code']; $fz_date = ProductFz::where(['company_code'=>$companyCode,'fz_date'=>$params['fz_date']])->findOrEmpty(); if($fz_date->isEmpty()) return error("请先生成{$params['fz_date']}封账数据"); if($fz_date->status!=0) return error("{$params['fz_date']}封账状态不可用"); if($params['status']==2 && !empty($params['idArr'])){ foreach ($params['idArr'] as $k=>$v){ $vali=$this->validate($v,[ 'id|商品id'=>'require|number', 'num|数量'=>'require|float', 'subunit_price|不含税单价'=>'require|float', 'unit_price|含税单价'=>'require|float', ]); if($vali!==true) return error($vali); $params['idArr'][$k]['ktCode']=$info->ktCode; $params['idArr'][$k]['type']=2; $params['idArr'][$k]['checkUid']=$this->uid; $params['idArr'][$k]['checkUname']=$this->uname; $params['idArr'][$k]['product_id']=$v['id']; unset($params['idArr'][$k]['id']); } } $info->status=$params['status']; $info->check_fee=$params['checkFee']; $info->is_checkOrder=$params['isAddCheck']; $info->fz_date=$params['fz_date']; $info->checkUid=$this->uid; $info->checkUname=$this->uname; $this->model->startTrans(); try{ $save=$info->save(); if($save===false) throw new \Exception("保存失败"); if($params['status']==2 && !empty($params['idArr'])){ $key=(new TzProduct)->saveAll($params['idArr']); if($key->isEmpty()) throw new \Exception("保存商品信息失败"); } $this->model->commit(); }catch (\Exception $e){ $this->model->rollback(); return error($e->getMessage()); } return success("操作成功"); } }