123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- <?php
- namespace app\admin\controller;
- use app\admin\model\GoodZixun;use app\cxinv\model\CaixiaoData;use think\App;use think\facade\Validate;class DataChange extends Base{
- public function __construct(App $app) {
- parent::__construct($app);
- $this->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("操作成功");
- }
- }
|