post=$this->request->post(); } public function list(){ } public function add(){ $cgdNo = isset($this->post['cgdNo']) && $this->post['cgdNo']!=""? trim($this->post['cgdNo']):""; if($cgdNo==""){ return error_show(1005,"参数cgdNo 不能为空"); } $cgdinfo = Db::name("purchease_order")->where(['cgdNo'=>$cgdNo,'is_del'=>0])->find(); if(empty($cgdinfo)){ return error_show(1005,"未找到采购单数据"); } if($cgdinfo['status']==0){ return error_show(1005,"采购单未发货"); } $wsm_in_code = makeNo("IC"); $wsm_code = isset($this->post['wsm_code'])&&$this->post['wsm_code']!="" ? trim($this->post['wsm_code']):""; if($wsm_code==""){ return error_show(1004,"参数 wsm_code 不能为空"); } $wsminfo = Db::name("warehouse_info")->where(["wsm_code"=>$wsm_code,"is_del"=>0])->find(); if(empty($wsminfo)){ return error_show(1004,"未找到仓库信息"); } $recep = Db::name('warehouse_addr')->where(["wsm_code"=>$wsm_code,"is_del"=>0])->find(); // $wsm_code = isset($this->post['wsm_code'])&&$this->post['wsm_code']!="" ? trim($this->post['wsm_code']):""; // if($wsm_code==""){ // return error_show(1004,"参数 wsm_code 不能为空"); // } $data = GetUserInfo($this->post['token']); if((!empty($data) && $data['code']!=0) ||empty($data) ){ return error_show($data['code'],$data['message']); } $userinfo = $data['data']; $post_company = isset($this->post['post_company'])&&$this->post['post_company']!="" ? trim($this->post['post_company']):""; $post_code = isset($this->post['post_code'])&&$this->post['post_code']!="" ? trim($this->post['post_code']):""; $post_fee = isset($this->post['post_fee'])&&$this->post['post_fee']!="" ? $this->post['post_fee']:"0"; $post_time = isset($this->post['post_time'])&&$this->post['post_time']!="" ? $this->post['post_time']:date("Y-m-d H:i:s"); $send_num = isset($this->post['send_num'])&&$this->post['send_num']!="" ? intval($this->post['send_num']):""; $status = isset($this->post['status'])&&$this->post['status']!="" ? intval($this->post['status']):"0"; if($send_num==''){ return error_show(1004,"参数 send_num 不能为空或零"); } if($send_num>$cgdinfo['wsend_num']){ return error_show(1004,"采购单剩余未发货数量不足"); } $orin = [ "wsm_in_code"=>$wsm_in_code, "cgdNo"=>$cgdNo, "wsm_code"=>$wsm_code, "wsm_reaper"=>isset($recep)&& $recep['wsm_name']!=''? $recep['wsm_name']:"", "send_num"=>$send_num, "post_company"=>$post_company, "post_code"=>$post_code, "post_fee"=>$post_fee, "sendtime"=>$post_time, "apply_id"=>$userinfo['id'], "apply_name"=>$userinfo['nickname'], "wait_num"=>0, "status"=>$status, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; Db::startTrans(); try{ $win = Db::name("purchease_in")->insert($orin); if($win){ $order = ["order_code"=>$wsm_in_code,"status"=>$status,"action_remark"=>'',"action_type"=>"create"]; ActionLog::logAdd($this->post['token'],$order,"rkd",$status,$this->post); if($status==1){ $order = ["order_code"=>$cgdNo,"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"]; $cgdinfo['wsend_num']-=$send_num; $cgdinfo['send_num']+=$send_num; $cgdinfo['send_status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2); $cgdinfo['status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2); $cgdinfo['updatetime']=date("Y-m-d H:i:s"); $up=Db::name("purchease_order")->save($cgdinfo); if($up){ ActionLog::logAdd($this->post['token'],$order,"cgd", $cgdinfo['status'],$cgdinfo); Db::commit(); return app_show(0,'新建成功',["wsm_in_code"=>$wsm_in_code]); }else{ Db::rollback(); return error_show(1004,"新建失败"); } } Db::commit(); return app_show(0,'新建成功',["wsm_in_code"=>$wsm_in_code]); } Db::rollback(); return error_show(1004,"新建失败"); }catch (\Exception $e){ Db::rollback(); return error_show(1004,$e->getMessage()); } } public function info(){ $incode = isset($this->post['wsm_in_code'])&&$this->post['wsm_in_code']!="" ? trim($this->post['wsm_in_code']) :""; if($incode==""){ return error_show(1004,"参数wsm_in_code 不为空"); } $info = Db::name("purchease_in")->where(['wsm_in_code'=>$incode,"is_del"=>0])->find(); if(empty($info)){ return error_show(1004,"未找到数据"); } $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code") ->leftJoin("warehouse_addr c","a.wsm_code=c.wsm_code and c.is_del=0") ->where(["a.wsm_code"=>$info['wsm_code']])->field("a.name as wsm_name,b.name,b.code,c.wsm_name as wsm_contactor,c.wsm_mobile,c.wsm_addr,c.addr_code")->find(); $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:""; $info['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:""; $info['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:""; $info['wsm_contactor'] =isset($wsmcode['wsm_contactor']) ? $wsmcode['wsm_contactor']:""; $info['wsm_mobile'] =isset($wsmcode['wsm_mobile']) ? $wsmcode['wsm_mobile']:""; $data['addr_code'] =isset($wsmcode['addr_code']) ? $wsmcode['addr_code']:""; $data['wsm_addr'] =isset($wsmcode['addr_code']) ? GetAddr($wsmcode['addr_code']):""; $data['wsm_addr'].=isset($wsmcode['wsm_addr']) ? $wsmcode['wsm_addr']:""; $check = Db::name("purchease_info")->where(['wsm_in_code'=>$incode,"is_del"=>0])->select(); $info['checkinfo']= $check; $return = Db::name("purchease_return")->where(['wsm_in_code'=>$incode,"is_del"=>0])->find(); $info['return']= $return; return app_show(0,'获取成功',$info); } public function check(){ $incode = isset($this->post['wsm_in_code'])&&$this->post['wsm_in_code']!="" ? trim($this->post['wsm_in_code']) :""; if($incode==""){ return error_show(1004,"参数wsm_in_code 不为空"); } $info = Db::name("purchease_in")->where(['wsm_in_code'=>$incode,"is_del"=>0])->find(); if(empty($info)){ return error_show(1004,"未找到数据"); } if($info['status']!=1){ return error_show(1004,"发货单状态有误"); } $order_num = isset($this->post['order_num']) && $this->post['order_num']!==''?intval($this->post['order_num']) :""; if($order_num===""){ return error_show(1004,"参数 order_num 不为空"); } $error_list = isset($this->post['error_list']) && $this->post['error_list']!==''?$this->post['error_list']:""; // $wait_num = isset($this->post['wait_num']) && $this->post['wait_num']!==''?intval($this->post['wait_num']) // :""; // if($wait_num===''){ // return error_show(1004,"参数 wait_num 不为空"); // } $result = GetUserInfo($this->post['token']); if((!empty($result) && $result['code']!=0) ||empty($result) ){ return error_show($result['code'],$result['message']); } $userinfo = $result['data']; Db::startTrans(); try{ $order = ["order_code"=>$incode,"status"=>$info['status'],"action_remark"=>'',"action_type"=>"edit"]; $info['wsm_num'] = $order_num; $info['wait_num'] = $info['send_num']; $info['checkid'] = $userinfo['id']; $info['check_name'] = $userinfo['nickname']; $info['status'] =2; $info['error_num'] = $info['send_num']-$order_num; $info['updatetime'] = date("Y-m-d H:i:s"); $up =Db::name("purchease_in")->save($info); if($up){ ActionLog::logAdd($this->post['token'],$order,"rkd",2,$this->post); if(!empty($error_list)){ $data=[]; foreach ($error_list as $value ){ $temp=[]; $temp['wsm_in_code']=$info['wsm_in_code']; $temp['num']=$value['num']; $temp['error_code']=$value['error_code']; $temp['error_img']=$value['error_img']; $temp['remark']=$value['remark']; $temp['is_del']=0; $temp['addtime']=date("Y-m-d H:i:s"); $temp['updatetime']=date("Y-m-d H:i:s"); $data[]=$temp; } $derr= Db::name("purchease_info")->insertAll($data); // echo Db::name("purchease_info")->getLastSql(); if($derr){ Db::commit(); return app_show(0,"验货完成"); }else{ Db::rollback(); return error_show(1002,"验货数据保存失败"); } } Db::commit(); return app_show(0,"验货完成"); } Db::rollback(); return error_show(1002,"验货数据保存失败"); }catch (\Exception $e){ Db::rollback(); return error_show(1002,$e->getMessage()); } } public function status(){ $incode = isset($this->post['wsm_in_code'])&&$this->post['wsm_in_code']!="" ? trim($this->post['wsm_in_code']) :""; if($incode==""){ return error_show(1004,"参数wsm_in_code 不为空"); } $info = Db::name("purchease_in")->where(['wsm_in_code'=>$incode,"is_del"=>0])->find(); if(empty($info)){ return error_show(1004,"未找到数据"); } $status = isset($this->post['status'])&&$this->post['status']!=="" ? intval($this->post['status']):""; if($status===""){ return error_show(1004,"参数status 不为空"); } if($info['status']==3){ return error_show(1004,"入库单已完成"); } $remark = isset($this->post['remark'])&&$this->post['remark']!="" ? trim($this->post['remark']) :""; Db::rollback(); try{ $order = ["order_code"=>$incode,"status"=>$info['status'],"action_remark"=>'',"action_type"=>"status"]; $info['status'] = $status; $info['remark'] = $remark; $info['updatetime'] = date("Y-m-d H:i:s"); $update = Db::name("purchease_in")->save($info); if($update){ ActionLog::logAdd($this->post['token'],$order,"rkd",$status,$this->post); if($status==0){ $cgdinfo=Db::name("purchease_order")->where(['cgdNo'=>$info['cgdNo'],"is_del"=>0])->find(); if(empty($cgdinfo)){ Db::rollback(); return error_show(1002,"未找到采购单数据"); } $order = ["order_code"=>$info['cgdNo'],"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"]; $cgdinfo['wsend_num']+=$info['send_num']; $cgdinfo['send_num']-=$info['send_num']; $cgdinfo['send_status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2); $cgdinfo['status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2); $cgdinfo['updatetime']=date("Y-m-d H:i:s"); $up=Db::name("purchease_order")->save($cgdinfo); if($up){ ActionLog::logAdd($this->post['token'],$order,"cgd", $cgdinfo['status'],$cgdinfo); Db::commit(); return app_show(0,'取消成功'); }else{ Db::rollback(); return error_show(1002,"取消失败"); } } if($status==1){ $cgdinfo=Db::name("purchease_order")->where(['cgdNo'=>$info['cgdNo'],"is_del"=>0])->find(); if(empty($cgdinfo)){ Db::rollback(); return error_show(1002,"未找到采购单数据"); } $order = ["order_code"=>$info['cgdNo'],"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"]; $cgdinfo['wsend_num']-=$info['send_num']; $cgdinfo['send_num']+=$info['send_num']; $cgdinfo['send_status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2); $cgdinfo['status']=$cgdinfo['wsend_num']==0 ? 3:($cgdinfo['send_num']==0 ?1:2); $cgdinfo['updatetime']=date("Y-m-d H:i:s"); $up=Db::name("purchease_order")->save($cgdinfo); if($up){ ActionLog::logAdd($this->post['token'],$order,"cgd", $cgdinfo['status'],$cgdinfo); Db::commit(); return app_show(0,'发货成功'); }else{ Db::rollback(); return error_show(1002,"发货失败"); } } if($status==4){ $cgdinfo=Db::name("purchease_order")->where(['cgdNo'=>$info['cgdNo'],"is_del"=>0])->find(); if(empty($cgdinfo)){ Db::rollback(); return error_show(1002,"未找到采购单数据"); } $good = Db::name("good_stock")->where(["wsm_code"=>$info['wsm_code'],"good_type_code"=>$cgdinfo['good_type_code'],"is_del"=>0])->find(); if(empty($good)) { $good=[ "good_type_code"=>$cgdinfo['good_type_code'], "wsm_code"=>$info['wsm_code'], "usable_stock"=>0, "wait_out_stock"=>0, "total_stock"=>0, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s"), ]; $order = ["order_code"=>$good['good_type_code'],"status"=>1,"action_remark"=>'',"action_type"=>"create"]; }else{ $order = ["order_code"=>$good['good_type_code'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"]; } $good['usable_stock']+=$info['wsm_num']; $good['total_stock']=$good['usable_stock']+$good['wait_out_stock']; $good['updatetime'] = date("Y-m-d H:i:s"); $upd= Db::name("good_stock")->save($good); if($upd){ ActionLog::logAdd($this->post['token'],$order,"gst", 1,$info ); Db::commit(); return app_show(0,'商品入库成功'); }else{ Db::rollback(); return error_show(1002,"商品入库失败"); } } Db::commit(); return app_show(0,"状态修改完成"); } Db::rollback(); return error_show(1002,"状态修改失败"); }catch (\Exception $e){ Db::rollback(); return error_show(1002,"状态修改失败"); } } /** * @return \think\response\Json|void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function ReturnAdd(){ $incode = isset($this->post['wsm_in_code'])&&$this->post['wsm_in_code']!="" ? trim($this->post['wsm_in_code']) :""; if($incode==""){ return error_show(1004,"参数wsm_in_code 不为空"); } $info = Db::name("purchease_in")->where(['wsm_in_code'=>$incode,"is_del"=>0])->find(); if(empty($info)){ return error_show(1004,"未找到数据"); } $wsm_num = isset($this->post['wsm_num']) &&$this->post['wsm_num']!=="" ? intval($this->post['wsm_num']):"" ; if($wsm_num===""){ return error_show(1004,"参数wsm_num 不为空"); } $reissue_num = isset($this->post['reissue_num']) &&$this->post['reissue_num']!=="" ? intval($this->post['reissue_num']):"0" ; $return_num = isset($this->post['return_num']) &&$this->post['return_num']!=="" ? intval($this->post['return_num']):"0" ; $contactor = isset($this->post['contactor']) &&$this->post['contactor']!=="" ? trim($this->post['contactor']):"" ; if($contactor==""){ return error_show(1004,"参数contactor 不为空"); } $addr = isset($this->post['addr']) &&$this->post['addr']!=="" ? trim($this->post['addr']):"" ; if($addr==""){ return error_show(1004,"参数addr 不为空"); } $mobile = isset($this->post['mobile']) &&$this->post['mobile']!=="" ? trim($this->post['mobile']):"" ; if($mobile==""){ return error_show(1004,"参数mobile 不为空"); } $error_remark = isset($this->post['error_remark']) &&$this->post['error_remark']!=="" ? trim($this->post['error_remark']):"" ; $remark = isset($this->post['remark']) &&$this->post['remark']!=="" ? trim($this->post['remark']):"" ; $result = GetUserInfo($this->post['token']); if((!empty($result) && $result['code']!=0) ||empty($result) ){ return error_show($result['code'],$result['message']); } $userinfo = $result['data']; Db::startTrans(); try{ $info['status'] =3; $info['updatetime'] = date("Y-m-d H:i:s"); $up= Db::name("purchease_in")->save($info); if($up){ $data=[ "wsm_in_code"=>$incode, "wsm_num"=>$wsm_num, "reissue_num"=>$reissue_num, "return_num"=>$return_num, "return_contactor"=>$contactor, "return_addr"=>$addr, "return_mobile"=>$mobile, "error_remark"=>$error_remark, "post_code"=>"", "post_company"=>"", "remark"=>$remark , "apply_id"=>$userinfo['id'], "apply_name"=>$userinfo['nickname'], "status"=>$return_num>0?0:1, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; $res = Db::name("purchease_return")->insert($data); if($res){ Db::commit(); return app_show(0,"验货审核完成"); }else{ Db::rollback(); return error_show(1002,"验货审核失败"); } } }catch (\Exception $e){ Db::rollback(); return error_show(1002,$e->getMessage()); } } public function ReturnSend(){ $incode = isset($this->post['wsm_in_code'])&&$this->post['wsm_in_code']!="" ? trim($this->post['wsm_in_code']) :""; if($incode==""){ return error_show(1004,"参数wsm_in_code 不为空"); } $info = Db::name("purchease_in")->where(['wsm_in_code'=>$incode,"is_del"=>0])->find(); if(empty($info)){ return error_show(1004,"未找到发货单数据"); } $return = Db::name("purchease_return")->where(['wsm_in_code'=>$incode,"is_del"=>0])->find(); if(empty($return)){ return error_show(1004,"未找到退货单数据"); } $post_code = isset($this->post['post_code']) &&$this->post['post_code']!=="" ? trim($this->post['post_code']):"" ; if($post_code==""){ return error_show(1004,"参数 post_code 不能为空"); } $post_company = isset($this->post['post_company']) &&$this->post['post_company']!=="" ? trim($this->post['post_company']):"" ; if($post_company==""){ return error_show(1004,"参数 post_company 不能为空"); } $remark = isset($this->post['remark']) &&$this->post['remark']!=="" ? trim($this->post['remark']):"" ; $data=[ "post_code"=>$post_code, "post_company"=>$post_company, "remark"=>$remark, "status"=>1, "updatetime"=>date("Y-m-d H:i:s") ]; $up =Db::name("purchease_return")->where($return)->save($data); if($up){ return app_show(0,"退货发货完成"); }else{ return error_show(0,"退货发货失败"); } } }