model=new \app\admin\model\DataChange(); } public function create(){ $param =$this->request->only(["code"=>'',"source"=>"","remark"=>"","type"=>"",'oaCode'=>'',"change"=>"","apply_id"=>""], "post","trim"); $valid =Validate::rule([ "code|订单编号"=>"require", "source|修正类型"=>"require|number|in:1,2,3", # 1 数据修正 2 二次议价咨询单 3 数据同步结算 "type|订单类型"=>"require|number|in:1,2,3",# 1 采购单 2 销售单 3 咨询商品 "apply_id|申请人"=>"require|number", "change|修改字段内容"=>"require|array" ]); if($valid->check($param)==false) return error($valid->getError()); $array_diff=[]; if($param['type']==1){ $purchOrder = \app\admin\model\PurcheaseOrder::where("cgdNo",$param['code'])->findOrEmpty(); if($purchOrder->isEmpty()) return error("采购单不存在"); $orderIsCheck = CaixiaoData::order_is_check($param['code'],1); if(!empty($orderIsCheck)){ return error("采购单存在已对账数据",10005,$orderIsCheck); } if($purchOrder['order_source']!=2) return error("供应商非咨询单订单不可修改"); $array_diff=array_diff($param['change'],$purchOrder->toArray()); if(array_key_exists("supplierNo",$array_diff)){ $persion = \app\user\model\Supplier::where("code",$array_diff['supplierNo'])->findOrEmpty(); $array_diff['cgder'] =$persion->person?:''; $array_diff['cgder_id'] =$persion->personid?:''; } $before= array_diff($purchOrder->toArray(),$param['change']); } if($param['type']==2){ $saleOrder = \app\admin\model\Sale::where("orderCode",$param['code'])->findOrEmpty(); if($saleOrder->isEmpty()) return error("销售单不存在"); $orderIsCheck = CaixiaoData::order_is_check($param['code']); if(!empty($orderIsCheck)){ return error("销售单存在已对账数据",10005,$orderIsCheck); } $array_diff=array_diff($param['change'],$saleOrder->toArray()); $before= array_diff($saleOrder->toArray(),$param['change']); } if($param['type']==3){ $good = GoodZixun::where("spuCode",$param['code'])->findOrEmpty(); if($good->isEmpty()) return error("咨询商品不存在"); $array_diff=array_diff($param['change'],$good->toArray()); $before= array_diff($good->toArray(),$param['change']); } $isT= $this->model->where(["code"=>$param['code'],"status"=>1])->findOrEmpty(); if($isT->isEmpty()==false)return error("订单修改存在未完成得流程"); $data=[ 'code'=>$param['code'], 'type'=>$param['type'], 'source'=>$param['source'], 'before'=>$before, 'after'=>$array_diff, 'oaCode'=>$param['oaCode'], 'apply_id'=>$param['apply_id'], 'apply_name'=>\app\user\model\User::where("account_id",$param['apply_id'])->value("nickname",""), 'creater_id'=>$this->uid, 'creater'=>$this->uname, 'remark'=>$param['remark'], 'status'=>$param['source']==3?2:1, ]; $this->model->create($data); return success("新建成功"); } public function list(){ $param = $this->request->only(['code'=>'','oaCode'=>'','type'=>'','source'=>'','apply_name'=>'','status'=>'','page'=>1, 'size'=>15],'post','trim'); $param['source']==''?: $where[]=['source','=',$param['source']]; $param['code']==''?: $where[]=['code','like',"%{$param['code']}%"]; $param['apply_name']==''?: $where[]=['apply_name','like',"%{$param['apply_name']}%"]; $param['oaCode']==''?: $where[]=['oaCode','like',"%{$param['oaCode']}%"]; $param['type']==''?: $where[]=['type','=',$param['type']]; $param['status']==''?: $where[]=['status','=',$param['status']]; $list = $this->model->where($where)->order('id','desc')->paginate(['page'=>$param['page'], 'list_rows'=>$param['size']]); return success('获取成功',['list'=>$list->items(),'count'=>$list->total()]); } public function info(){ $param = $this->request->only(['id'],'post','trim'); $info = $this->model->findOrEmpty($param['id']); return success('获取成功',$info); } public function status(){ $param = $this->request->only(['id'=>"",'status'=>"",'remark'=>""],'post','trim'); $Valid =Validate::rule(["id|申请id"=>"require","status|状态"=>"require|number|in:2,3"]); if($Valid->check($param)==false) return error($Valid->getError()); $info = $this->model->findOrEmpty($param['id']); if($info->isEmpty())return error('未找到申请单数据'); if($info->status!=1) return error("申请单数据已审核"); $info->status=$param['status']; $info->remark=$param['remark']; if($param['status']==2){ if($param['type']==1){ $orderIsCheck = CaixiaoData::order_is_check($param['code'],1); if(!empty($orderIsCheck)){ return error('采购单存在已对账数据',10005,$orderIsCheck); } } if($param['type']==2){ $orderIsCheck = CaixiaoData::order_is_check($param['code']); if(!empty($orderIsCheck)){ return error('销售单存在已对账数据',10005,$orderIsCheck); } } } $info->save(); return success("操作成功"); } }