post=$this->request->post(); } public function create(){ $token = isset($this->post['token']) && $this->post['token'] !=="" ?trim($this->post['token']):""; $orderCode=makeNo("CX"); $good_code = $this->post['good_code'] && $this->post['good_code'] !=="" ? trim($this->post['good_code']) :""; if($good_code==""){ return error_show(1002,"商品code不能为空"); } $customer_code= $this->post['customer_code'] && $this->post['customer_code'] !=="" ? trim($this->post['customer_code']) :""; if($customer_code==""){ return error_show(1002,"客户code不能为空"); } $apply_id =GetUserInfo($token); if(empty($apply_id)||$apply_id['code']!=0){ return error_show(1002,"申请人数据不存在"); } $rm= isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : ""; $ri= isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : ""; $good_name=isset($this->post['good_name']) && $this->post['good_name'] !=="" ? trim($this->post['good_name']) :""; $good_num=isset($this->post['good_num']) && $this->post['good_num'] !=="" ? intval($this->post['good_num']) :""; $origin_price = isset($this->post['origin_price']) && $this->post['origin_price'] !=="" ? intval($this->post['origin_price']) :""; $sale_price=isset($this->post['sale_price']) && $this->post['sale_price'] !=="" ? trim($this->post['sale_price']) :""; $total_price=isset($this->post['total_price']) && $this->post['total_price'] !=="" ? trim($this->post['total_price']) :""; $post_fee=isset($this->post['post_fee']) && $this->post['post_fee'] !=="" ? trim($this->post['post_fee']) :""; $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :""; $va= isset($this->post['order_addr']) && $this->post['order_addr'] !=="" ? $this->post['order_addr']:""; if($va==""){ return error_show(1002,"参数order_addr不能为空"); } $vi= isset($this->post['good_stock']) && $this->post['good_stock'] !=="" ? $this->post['good_stock']:""; if($vi==""){ return error_show(1002,"参数good_stock不能为空"); } Db::startTrans(); try { $data=[ "orderCode"=>$orderCode, "good_code"=>$good_code, "customer_code"=>$customer_code, "good_name"=>$good_name, "good_num"=>$good_num, "apply_id"=>$rm, "apply_name"=>$ri, "origin_price"=>$origin_price, "sale_price"=>$sale_price, "total_price"=>$total_price, "post_fee"=>$post_fee, "status"=>$status, "is_del"=>0, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; $datainfo = Db::name('sale')->insert($data,true); $vat=[]; $inn=[]; if($datainfo>0){ foreach ($vi as $ion){ $iten=[]; $iten['orderCode']=$orderCode; $iten['wsm_code']=$ion['wsm_code']; $iten['stock_id']=""; $iten['num']=$ion['num']; $iten['status']=0; $iten['sale_price']=$sale_price; $iten['addtime'] =date("Y-m-d H:i:s"); $iten['updatetime'] =date("Y-m-d H:i:s"); $inn[]=$iten; } // if($vi['usable_stock']<$iten['num']){ // Db::rollback(); // return error_show(1002,"超出库存数量"); // } $vp= Db::name('sale_info')->insertAll($inn); if($vp==""){ Db::rollback(); return error_show(1002,"添加失败"); } foreach ($va as $value){ $temp=[]; $temp['orderCode']=$orderCode; $temp['contactor']=$value['contactor']; $temp['mobile'] = $value['mobile']; $temp['addr'] = $value['addr']; $temp['addr_code']=isset($value['addr_code']) && $value['addr_code']!==""? $value['addr_code']:""; $temp['customer_code'] =$customer_code; $temp['receipt_quantity']=$value['receipt_quantity']; $temp['post_fee'] =0; $temp['is_del'] =0; $temp['addtime'] =date("Y-m-d H:i:s"); $temp['updatetime'] =date("Y-m-d H:i:s"); $temp['arrive_time']=date("Y-m-d H:i:s"); $vat[]=$temp; } $vmp = Db::name('order_addr')->insertAll($vat); if($vmp){ Db::commit(); return error_show(0,"销售订单创建成功"); } } Db::rollback(); return error_show(1002,"销售订单创建失败"); }catch(\Exception $e){ Db::rollback(); return error_show(1005,$e->getMessage()); } } public function list(){ $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']):"1"; $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']) :"10"; $where[] = ['is_del',"=",0]; $orderCode=isset($this->post['orderCode']) && $this->post['orderCode'] !=="" ? intval($this->post['orderCode']):""; if($orderCode !==""){ $where[]=['orderCode',"=",$orderCode]; } $status=isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']):""; if($status !==""){ $where[]=['orderCode',"=",$status]; } $addtime = isset($this->post['addtime']) && $this->post['addtime'] !=="" ? $this->post['addtime'] :""; if($addtime !=""){ $where[]= ["addtime",'<=',$addtime]; } $count = Db::name('sale')->where($where)->count(); $total = ceil($count/$size); $page = $page >= $total ? $total : $page; $list= Db::name('sale')->where($where)->order("addtime desc")->page($page,$size)->select(); return app_show(0,"获取成功",['list'=>$list,'count'=>$count]); } public function edit(){ $token = isset($this->post['token']) && $this->post['token'] !=="" ? trim($this->post['token']) :""; $id = isset($this->post['id']) && $this->post['id'] !=="" ? trim($this->post['id']) :""; if($id==""){ return error_show(1002,"参数id不能为空"); } $etid = Db::name("sale")->where(["id"=>$id,"is_del"=>0])->find(); if(empty($etid)){ return error_show(1002,"未找到数据"); } // $orderCode=isset($this->post['orderCode']) && $this->post['orderCode'] !=="" ? trim($this->post['orderCode']) :""; // if($orderCode==""){ // return error_show(1002,"销售单code不能为空"); // } $good_code = isset($this->post['good_code']) && $this->post['good_code'] !=="" ? trim($this->post['good_code']) :""; if($good_code==""){ return error_show(1002,"商品code不能为空"); } $customer_code=isset($this->post['customer_code']) && $this->post['customer_code'] !=="" ? intval($this->post['customer_code']):""; if($customer_code==""){ return error_show(1002,"客户code不能为空"); } $apply_id =GetUserInfo($token); if(empty($apply_id)||$apply_id['code']!=0){ return error_show(1002,"申请人数据不存在"); } $rm= isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : ""; $ri= isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : ""; $good_name=isset($this->post['good_name']) && $this->post['good_name'] !=="" ? trim($this->post['good_name']) :""; $good_num=isset($this->post['good_num']) && $this->post['good_num'] !=="" ? intval($this->post['good_num']) :""; $origin_price = isset($this->post['origin_price']) && $this->post['origin_price'] !=="" ? intval($this->post['origin_price']) :""; $sale_price=isset($this->post['sale_price']) && $this->post['sale_price'] !=="" ? trim($this->post['sale_price']) :""; $total_price=isset($this->post['total_price']) && $this->post['total_price'] !=="" ? trim($this->post['total_price']) :""; $post_fee=isset($this->post['post_fee']) && $this->post['post_fee'] !=="" ? trim($this->post['post_fee']) :""; $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :""; $vr= isset($this->post['order_addr']) && $this->post['order_addr'] !=="" ? $this->post['order_addr']:""; if($vr==""){ return error_show(1002,"参数order_addr不能为空"); } $vi= isset($this->post['good_stock']) && $this->post['good_stock'] !=="" ? $this->post['good_stock']:""; if($vi==""){ return error_show(1002,"参数good_stock不能为空"); } Db::startTrans(); try { $datn=[ "id"=>$id, "good_code"=>$good_code, "customer_code"=>$customer_code, "good_name"=>$good_name, "good_num"=>$good_num, "apply_id"=>$rm, "apply_name"=>$ri, "origin_price"=>$origin_price, "sale_price"=>$sale_price, "total_price"=>$total_price, "post_fee"=>$post_fee, "status"=>$status, "is_del"=>0, "updatetime"=>date("Y-m-d H:i:s") ]; $datninfo = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->save($datn); //$vat=[]; if($datninfo>0){ foreach ($vi as $ion){ $iten=[]; isset($ion['id'])&&$ion['id']!=="" ? $iten['id'] = $ion['id']:''; $iten['orderCode']=$etid['orderCode']; $iten['wsm_code']=$ion['wsm_code']; $iten['stock_id']=$ion['stock_id']; $iten['num']=$ion['num']; $iten['status']=$ion['status']; $iten['sale_price']=$ion['sale_price']; isset($ion['id'])&&$ion['id']!=="" ? '' : $iten['addtime'] =date("Y-m-d H:i:s"); $iten['updatetime'] =date("Y-m-d H:i:s"); //$inn[]=$iten; $vp= Db::name('sale_info')->save($iten); } foreach ($vr as $value){ $temp=[]; isset($value['id'])&&$value['id']!=="" ? $temp['id'] = $value['id']:''; $temp['orderCode']=$etid['orderCode']; $temp['contactor']=$value['contactor']; $temp['mobile'] = $value['mobile']; $temp['addr'] = $value['addr']; $temp['addr_code'] =$value['addr_code']; $temp['customer_code'] =$customer_code; $temp['receipt_quantity']=$value['receipt_quantity']; $temp['post_fee'] =0; $temp['is_del'] =$value['is_del']; isset($value['id'])&&$value['id']!=="" ? '' : $temp['addtime'] =date("Y-m-d H:i:s"); $temp['updatetime'] =date("Y-m-d H:i:s"); $temp['arrive_time']=date("Y-m-d H:i:s"); $dat = Db::name('order_addr')->save($temp); if($dat==false){ Db::rollback(); return error_show(1002,"更新失败"); } } Db::commit(); return error_show(0,"更新成功"); } Db::rollback(); return error_show(1002,"更新失败"); }catch(\Exception $e){ Db::rollback(); return error_show(1005,$e->getMessage()); } } public function info(){ $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']):""; if($id==""){ return error_show(1002,"参数id不能为空"); } //->field('good_code,good_name,good_num,customer_code,orderCode') $einfo = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->find(); if(empty($einfo)){ return error_show(1002,"未找到销售订单数据"); } $in= Db::name('customer_info')->where(['companyNo'=>$einfo['customer_code']])->field('companyName')->find(); // ->field('addr,contactor,mobile,receipt_quantity,arrive_time') $fo = Db::name('order_addr')->where(['orderCode'=>$einfo['orderCode'],'is_del'=>0])->select(); $addrs=[]; foreach ($fo as $value){ $value['addr_info']=""; if($value['addr_code']!=""){ $addr=GetAddr($value['addr_code']); $value['addr_info'] = $addr.$value['addr']; } $addrs[]=$value; } //->field('num,sale_price,wsm_code,stock_id') $st = Db::name('sale_info')->where(['orderCode'=>$einfo['orderCode']])->select(); $data=[]; foreach ($st as $value){ $value['wsm_name']=""; $value['wsm_supplier']=""; $value['wsm_supplierNo']=""; $value['usable_stock']=0; if($value['wsm_code']!=""){ $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code") ->where(["a.wsm_code"=>$value['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find(); $value['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:""; $value['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:""; $value['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:""; $dn = Db::name('good_stock')->where(['wsm_code'=>$value['wsm_code'],'good_type_code'=>$einfo['good_code']])->find(); $value['usable_stock'] =isset($dn['usable_stock']) ?$dn['usable_stock']:"0"; } $data[]=$value; } $einfo['info']=$data; $einfo['companyName']=isset($in['companyName']) ? $in['companyName']:""; $einfo['addrs']=$addrs; if(empty($einfo)){ return error_show(1002,"未找到销售订单数据"); }else{ return app_show(0,"获取成功",$einfo); } } public function del(){ $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :""; if($id===""){ return error_show(1002,"参数id不能为空"); } $ed = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->find(); if(empty($ed)){ return error_show(1002,"未找到销售订单数据"); } $str =Db::name('sale')->update(['id'=>$id,'is_del'=>1,'updatetime'=>date("Y-m-d H:i:s")]); if($str){ return error_show(0,"删除成功"); }else{ return error_show(1002,"删除失败"); } } //$stock['usable_stock']-=$value['allot_num']; //$stock['wait_out_stock']+=$value['allot_num']; //$stock['total_stock']=$stock['wait_out_stock']+$stock['usable_stock']; //$stock['updatetime']= date('Y-m-d H:i:s'); public function status(){ $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :""; if($id==""){ return error_show(1002,"参数id不能为空"); } $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :""; if($status==""){ return error_show(1002,"订单状态不能为空"); } $dio = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->find(); if(empty($dio)){ return error_show(1002,"销售单信息未找到"); } $dio['status']=$status; $dio['updatetime']=date("Y-m-d H:i:s"); $st = Db::name('sale')->save($dio); if($status==3){ } return error_show(0,"订单状态更新成功"); } public function fee(){ $id = isset($this->post['id']) && $this->post['id'] !=="" ? trim($this->post['id']) :""; if($id==""){ return error_show(1002,"参数id不能为空"); } $etid = Db::name("sale")->where(["id"=>$id,"is_del"=>0])->find(); if(empty($etid)){ return error_show(1002,"未找到数据"); } $vr= isset($this->post['order_addr']) && $this->post['order_addr'] !=="" ? $this->post['order_addr']:""; if($vr==""){ return error_show(1002,"参数order_addr不能为空"); } Db::startTrans(); try { $data=[ "id"=>$id, "status"=>2, "is_del"=>0, "updatetime"=>date("Y-m-d H:i:s") ]; $datainfo = Db::name('sale')->where(['id'=>$id,'is_del'=>0])->save($data); if($datainfo){ foreach ($vr as $value){ $tm=[]; $tm['id'] = $value['id']; $tm['orderCode']=$etid['orderCode']; $tm['post_fee']=$value['post_fee']; $tm['updatetime']=date("Y-m-d H:i:s"); $dn = Db::name('order_addr')->save($tm); if($dn==false){ Db::rollback(); return error_show(1002,"更新失败"); } } Db::commit(); return error_show(0,"更新成功"); } Db::rollback(); return error_show(1003,"更新失败"); }catch(\Exception $e){ Db::rollback(); return error_show(1005,$e->getMessage()); } } public function out(){ $token= isset($this->post['token']) && $this->post['token'] !=="" ? trim($this->post['token']) :""; $outCode=makeNo("CK"); $orderCode = isset($this->post['orderCode']) && $this->post['orderCode'] !=="" ? trim($this->post['orderCode']) :""; if($orderCode==""){ return error_show(1002,"参数orderCode不能为空"); } $post_name= isset($this->post['post_name']) && $this->post['post_name'] !=="" ? trim($this->post['post_name']) :""; if($post_name==""){ return error_show(1002,"物流公司不能为空"); } $post_code = isset($this->post['post_code']) && $this->post['post_code'] !=="" ? trim($this->post['post_code']) :""; if($post_code==""){ return error_show(1002,"物流单号不能为空"); } $post_fee = isset($this->post['post_fee']) && $this->post['post_fee'] !=="" ? intval($this->post['post_fee']) :""; if($post_fee==""){ return error_show(1002,"物流费不能为空"); } $send_num = isset($this->post['send_num']) && $this->post['send_num'] !=="" ? $this->post['send_num'] :""; if($send_num==""){ return error_show(1002,"发货数量不能为空"); } $apply_id =GetUserInfo($token); if(empty($apply_id)||$apply_id['code']!=0){ return error_show(1002,"申请人数据不存在"); } $rm= isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : ""; $ri= isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : ""; $addrid = isset($this->post['addrid']) && $this->post['addrid'] !=="" ? intval($this->post['addrid']) :""; $dr = Db::name('order_addr')->where(['id'=>$addrid,'is_del'=>0])->find(); if(empty($dr)){ return error_show(1003,"收货人信息未找到"); } if($dr['orderCode']!== $orderCode){ return error_show(1002,"订单code不存在"); } $sendtime = isset($this->post['sendtime']) && $this->post['sendtime'] !=="" ? $this->post['sendtime']:date("Y-m-d H:i:s"); // $check_num = isset($this->post['check_num']) && $this->post['check_num'] !=="" ? $this->post['check_num'] :""; // $error_num = isset($this->post['error_num']) && $this->post['error_num'] !=="" ? $this->post['error_num'] :""; $status = isset($this->post['status']) && $this->post['status'] !=="" ? $this->post['status'] :"0"; $data=[ "orderCode"=>$orderCode, "outCode"=>$outCode, "apply_id"=>$rm, "apply_name"=>$ri, "addrid"=>$dr['id'], "post_name"=>$post_name, "post_code"=>$post_code, "post_fee"=>$post_fee, "sendtime"=>$sendtime, "send_num"=>$send_num, "check_num"=>0, "error_num"=>0, "status"=>$status, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; $datainfo = Db::name('order_out')->insert($data); if($datainfo){ return error_show(0,"创建成功"); }else{ return error_show(1003,"创建失败"); } } public function customer(){ $outCode= isset($this->post['outCode']) && $this->post['outCode'] !=="" ? trim($this->post['outCode']) :""; if(empty($outCode)){ return error_show(1002,"销售订单编号不能为空"); } $status = isset($this->post['status']) && $this->post['status'] !== "" ? $this->post['status'] :""; if($status==""){ return error_show(10002,"状态不能为空"); } $codeinfo = Db::name('order_out')->where(['outCode'=>$outCode])->find(); if($codeinfo==""){ return error_show(1003,"未找到订单数据"); } $codeinfo['status']=$status; $codeinfo['updatetime']=date("Y-m-d H:i:s"); $cust = Db::name('order_out')->save($codeinfo); if($cust){ return error_show(0,"出库订单更新成功"); }else{ return error_show(1003,"出库订单更新失败"); } } }