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不能为空"); } $ct = Db::name('good')->alias('a')->join('good_type b','b.good_code=a.good_code','left') ->where(['b.type_code'=>$good_code])->find(); if($ct==""){ return error_show(1002,"未找到商品数据"); } $customer_code= $this->post['customer_code'] && $this->post['customer_code'] !=="" ? trim($this->post['customer_code']) :""; if($customer_code==""){ return error_show(1002,"客户code不能为空"); } $customer=Db::name("customer_info")->where(["companyNo"=>$customer_code])->find(); if($customer==false){ return error_show(1004,"未找到客户数据"); } $supplierNo= $this->post['supplierNo'] && $this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']) :""; if($supplierNo==""){ return error_show(1002,"参数supplierNo不能为空"); } $supplier=Db::name("supplier")->where(["code"=>$supplierNo])->find(); if($supplier==false){ return error_show(1004,"未找到平台供应商数据"); } $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']) :""; // if($good_num==""){ // return error_show(1002,"参数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']) :""; // $send_num = isset($this->post['send_num']) && $this->post['send_num'] !=="" ? intval($this->post['send_num']) :""; // $wsend_num = isset($this->post['wsend_num']) && $this->post['wsend_num'] !=="" ? intval($this->post['wsend_num']) :""; // $send_status = isset($this->post['send_status']) && $this->post['send_status'] !=="" ? intval($this->post['send_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不能为空"); } $good_num = intval(array_sum(array_column($vi,"num"))); Db::startTrans(); try { $data=[ "orderCode"=>$orderCode, "good_code"=>$good_code, "customer_code"=>$customer_code, "good_name"=>$ct['good_name'], "good_num"=>$good_num, "apply_id"=>$rm, "apply_name"=>$ri, "origin_price"=>$ct['original_price'], "sale_price"=>$ct['original_price'], "post_fee"=>$post_fee, "status"=>$status, "supplierNo"=>$supplierNo, "send_num"=>0, "wsend_num"=>$good_num, "send_status"=>1, "is_del"=>0, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s"), 'total_price'=>$ct['original_price']*$good_num, ]; $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']=$ct['original_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=[]; $addrs=[]; if($value['addr_code']!==''&&is_array($value['addr_code'])){ $addrs['provice_code'] = $value['addr_code'][0]; $addrs['city_code'] = $value['addr_code'][1]; $addrs['area_code'] = $value['addr_code'][2]; $addr = json_encode($addrs); }else{ $addr = isset($value['addr_code'])?$value['addr_code']:''; } $temp['orderCode']=$orderCode; $temp['contactor']=$value['contactor']; $temp['mobile'] = $value['mobile']; $temp['addr'] = $value['addr']; $temp['addr_code']=$addr; $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'] !=="" ? trim($this->post['orderCode']):""; if($orderCode !==""){ $where[]=['orderCode',"=",$orderCode]; } $apply_name=isset($this->post['apply_name']) && $this->post['apply_name'] !=="" ? trim($this->post['apply_name']) :""; if($apply_name !==""){ $where[]=['apply_name',"like","%$apply_name%"]; } $good_name=isset($this->post['good_name']) && $this->post['good_name'] !=="" ? trim($this->post['good_name']) :""; if($good_name !==""){ $where[]=['good_name',"like","%$good_name%"]; } $good_code=isset($this->post['good_code']) && $this->post['good_code'] !=="" ? trim($this->post['good_code']):""; if($good_code !==""){ $where[]=['good_code',"like","%$good_code%"]; } $customer_code=isset($this->post['customer_code']) && $this->post['customer_code'] !=="" ? trim($this->post['customer_code']):""; if($customer_code !==""){ $where[]=['customer_code',"like","%$customer_code%"]; } $supplierNo=isset($this->post['supplierNo']) && $this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']):""; if($supplierNo !==""){ $where[]=['supplierNo',"like","%$supplierNo%"]; } $ordertype=isset($this->post['order_type']) && $this->post['order_type'] !=="" ? intval($this->post['order_type']) :""; if($ordertype !==""){ $where[]=['order_type',"=",$ordertype]; } $status=isset($this->post['status']) && $this->post['status'] !=="" ? trim($this->post['status']):""; if($status !==""){ $where[]=['status',"=",$status]; } $start = isset($this->post['start']) && $this->post['start'] !=="" ? $this->post['start'] :""; if($start !=""){ $where[]= ["addtime",'>=',$start]; } $end = isset($this->post['end']) && $this->post['end'] !=="" ? $this->post['end'] :""; if($end !=""){ $where[]= ["addtime",'<=',$end]; } $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(); $data=[]; foreach ($list as $value){ $var = Db::name('good_type')->alias('b')->join("good a","a.good_code=b.good_code","left") ->where(['b.type_code'=>$value['good_code'],'a.is_del'=>0])->field('a.good_code,a.good_name,a.cat_id')->find();; $value['can']= isset($var['cat_id']) && $var['cat_id'] !=0 ? made($var['cat_id']):[]; $value['supplierName']=''; if($value['supplierNo']!=""){ $supplier=Db::name("supplier")->where(["code"=>$value['supplierNo']])->find(); $value['supplierName']=isset($supplier['name']) ? $supplier['name']:""; } $value['customerName']=''; if($value['customer_code']!=""){ $supplier=Db::name("customer_info")->where(["companyNo"=>$value['customer_code']])->find(); $value['customerName']=isset($supplier['companyName']) ? $supplier['companyName']:""; } $data[]=$value; } return app_show(0,"获取成功",['list'=>$data,'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'] !=="" ? 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']) :""; $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); 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); if ($vp == false) { Db::rollback(); return error_show(1002, "更新失败"); } } 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,"未找到销售订单数据"); } $goon = Db::name('good')->alias('b')->join("good_type a","a.good_code=b.good_code","left") ->where(['a.type_code'=> $einfo['good_code']])->find(); if(empty($goon)){ return error_show(1003,"未找到商品数据"); } $int= isset($goon['cat_id']) && $goon['cat_id'] !=0 ? made($goon['cat_id']):[]; $in= Db::name('customer_info')->where(['companyNo'=>$einfo['customer_code']])->field('companyName')->find(); // ->field('addr,contactor,mobile,receipt_quantity,arrive_time') $einfo['supplierName']=''; if($einfo['supplierNo']!=""){ $supplier=Db::name("supplier")->where(["code"=>$einfo['supplierNo']])->find(); $einfo['supplierName']=isset($supplier['name']) ? $supplier['name']:""; } $fo = Db::name('order_addr')->where(['orderCode'=>$einfo['orderCode'],'is_del'=>0])->select(); $bum = Db::name('order_out')->where(['orderCode'=>$einfo['orderCode']])->select(); $ins=[]; if(!empty($bum)){ foreach ($bum as $stn){ $so = Db::name('order_addr')->where(['id'=>$stn['addrid']])->find(); $addr = GetAddr($so['addr_code']); $stn['addr_info']=$addr; $stn['add_code']=json_decode($so['addr_code'],true); $stn['addr']=$so['addr']; $stn['contact']=$so['contactor']; $stn['mobile']=$so['mobile']; $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b", "a.supplierNo=b.code") ->where(["a.wsm_code" => $stn['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find(); $stn['wsm_name'] = isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name'] : ""; $stn['wsm_supplier'] = isset($wsmcode['name']) ? $wsmcode['name'] : ""; $stn['wsm_supplierNo'] = isset($wsmcode['code']) ? $wsmcode['code'] : ""; $ins[]=$stn; } } $addrs=[]; if(!empty($fo)){ foreach ($fo as $value){ $value['addr_info']=""; $value['send_num']=0; if($value['addr_code']!=""){ $addr=GetAddr($value['addr_code']); $value['addr_info'] = $addr; $value['addr_code'] = json_decode($value['addr_code'],true); $send = Db::name("order_out")->where(['addrid'=>$value['id'],'orderCode' => $einfo['orderCode']])->sum("send_num"); $value['send_num'] = $send ?? 0; } $value['wsend_num']=$value['receipt_quantity']-$value['send_num']; $addrs[]=$value; } } //->field('num,sale_price,wsm_code,stock_id') $st = Db::name('sale_info')->where(['orderCode'=>$einfo['orderCode']])->select(); $data=[]; if(!empty($fo)) { foreach ($st as $value) { $value['wsm_name'] = ""; $value['wsm_supplier'] = ""; $value['wsm_supplierNo'] = ""; $value['usable_stock'] = 0; $value['send_num'] = 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"; $send = Db::name("order_out")->where(["wsm_code" => $value['wsm_code'], 'orderCode' => $einfo['orderCode']])->sum("send_num"); $value['send_num'] = $send ?? 0; } $value['wsend_num'] = $value['num'] - $value['send_num']; $data[] = $value; } } $einfo['info']=$data; $einfo['companyName']=isset($in['companyName']) ? $in['companyName']:""; $einfo['addrs']=$addrs; $einfo['bum']=$ins; $einfo['can']=$int; 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,"删除失败"); } } 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,"销售单信息未找到"); } if($status==1 && $dio['order_type']==2) { $zxinfo = Db::name("consult")->where(["zxNo" => $dio['zxNo'], "is_del" => 0])->find(); if ($zxinfo == false) { return error_show(1004, "未找到咨询单数据"); } if ($zxinfo['zx_type'] == 2) { if ($zxinfo['metals'] == "") { return error_show(1004, "未找到咨询单贵金属类型数据"); } $metals = $zxinfo['metals'] == '18K' ? 1 : ($zxinfo['metals'] == '24K' ? 2 : 3); $gold = Db::name("gold_price")->where(["type" => $metals])->order("addtime desc")->find(); if (empty($gold)) { return error_show(1004, "未找到咨询单贵金属类型数据"); } } $wsm = Db::name("warehouse_info")->where(["supplierNo" => $zxinfo['gysNo'], "wsm_type" => 2])->find(); if (empty($wsm)) { return error_show(1002, "供应商仓库未找到"); } $dio['gold_price']=$gold['gold_price']; } Db::startTrans(); try { $dio['status']=$status; $dio['updatetime']=date("Y-m-d H:i:s"); $st = Db::name('sale')->save($dio); if($st) { if($status==3){ $dn = Db::name('sale_info')->where(['orderCode' => $st['orderCode']])->select(); foreach ($dn as $value) { $dm = Db::name('good_stock')->where(['wsm_code' => $value['wsm_code'], 'good_type_code' => $st['good_code']])->find(); if($dm==""){ Db::rollback(); return error_show(1003,"未找到商品数据"); } if($value['num']>$dm['usable_stock']){ Db::rollback(); return error_show(1002,"超出库存数量"); } $dm['usable_stock']-=$value['num']; $dm['wait_out_stock']+=$value['num']; $send =Db::name("order_out")->where(["wsm_code"=>$value['wsm_code']])->sum("send_num"); $value['send_num'] = $send??0; $value['wsend_num']=$value['num']-$value['send_num']; $Db = Db::name('good_stock')->update($dm); $Db['updatetime']= date('Y-m-d H:i:s'); if($Db==false){ Db::rollback(); return error_show(1002,"状态更新失败"); } } } if($status==1 && $dio['order_type']==2){ $cgd =makeNo("CG"); $clll=[ "cgdNo"=>$cgd, "bkcode"=>$dio['orderCode'], "wsm_code"=>$wsm['wsm_code'], "cgder_id"=>"0", "cgder"=>$zxinfo['saler'], "good_code"=>"GD-".$zxinfo['cpNo'], "good_name"=>$zxinfo['cpName'], "good_type_code"=>$zxinfo['cpNo'], "good_num"=>$dio['good_num'], "good_price"=>$zxinfo['total_fee'], "total_fee"=>round($zxinfo['total_fee']*$dio['good_num'],2), "pakge_fee"=>$zxinfo['package_fee'], "cert_fee"=>$zxinfo['cert_fee'], "open_fee"=>$zxinfo['open_fee'], "delivery_fee"=>$zxinfo['delivery_fee'], "mark_fee"=>$zxinfo['mark_fee'], "teach_fee"=>$zxinfo['cost_fee'], "demo_fee"=>$zxinfo['demo_fee'], "nake_fee"=>$zxinfo['bare_fee'], "weight"=>isset($zxinfo['weight'])?$zxinfo['weight']:0, "supplierNo"=>$zxinfo['gysNo'], "supplier_name"=>$zxinfo['gysname'], "gold_price"=>$gold['gold_price'], "send_num"=>0, "wsend_num"=>$dio['good_num'], "remark"=>'', "lasttime"=>date("Y-m-d H:i:s"), "is_del"=>0, "status"=>$dio['send_type']==1?1:0, "order_type"=>2, "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; $cgin = Db::name("purchease_order")->insert($clll); // var_dump(Db::name("purchease_order")->getLastSql(),$clll); if($cgin==false){ Db::rollback(); return error_show(1002,"咨询采购单创建商品失败"); } } } Db::commit(); return error_show(0,"订单状态更新成功"); }catch (\Exception $e) { Db::rollback(); return error_show(1005, $e->getMessage()); } } 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,"参数orderCoder不能为空"); } $der = Db::name('sale')->where(['orderCode'=>$orderCode])->find(); if($der==""){ return error_show(1002,"未找到出库订单单号"); } $wsm_code = isset($this->post['wsm_code']) && $this->post['wsm_code'] !=="" ? trim($this->post['wsm_code']) :""; if($wsm_code==""){ return error_show(1002,"参数wsm_code不能为空"); } $wsm= Db::name('sale_info')->where(['wsm_code'=>$wsm_code,'orderCode'=>$der['orderCode']])->find(); if($wsm==""){ return error_show(1002,"未找到仓库编码"); } $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,"发货数量不能为空"); } if($send_num>$wsm['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'] :"1"; //$dn=Db::name('sale_info')->where(['wsm_code'=>$outCode])->find(); Db::startTrans(); try { $data=[ "wsm_code"=>$wsm_code, "orderCode"=>$orderCode, "outCode"=>$outCode, "order_type"=>$der['order_type'], "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) { if ($status==1) { $var = Db::name('sale_info')->where(['orderCode' =>$orderCode,'wsm_code'=>$wsm_code])->find(); //var_dump(Db::name('sale_info')->getLastSql()); if($var==""){ return error_show(1002,"未找到数据"); } $send =Db::name("order_out")->where(["wsm_code"=>$wsm_code,'orderCode'=>$orderCode])->sum("send_num"); $der['send_num']+= $send; $der['wsend_num']-=$send ;//($der['send_num'])?$der['wsend_num'] =="" ? $der['send'] $der['send_status']=$der['send_num']==0 ? 1 :$der['wsend_num']==0?3:2; $der['status']=$der['send_num']==0 ? 3 :$der['wsend_num']==0?5:4; $der['updatetime'] = date("Y-m-d H:i:s"); $si = Db::name('sale')->save($der); if($si==false){ Db::rollback(); return error_show(1003,"更新失败"); } $str = Db::name('good_stock')->where(['wsm_code' => $var['wsm_code'],'good_type_code'=>$der['good_code']])->find(); if ($str == false) { Db::rollback(); return error_show(1002, "商品数据未找到"); } if ($var['num'] > $str['usable_stock']) { Db::rollback(); return error_show(1002, "超出库存数量"); } $str['wait_out_stock'] -= $var['num']; $str['intra_stock'] += $var['num']; $str['updatetime'] = date("Y-m-d H:i:s"); $stre = Db::name('good_stock')->save($str); if ($stre == false) { Db::rollback(); return error_show(1002, "状态更新失败"); } } Db::commit(); return error_show(0,"创建成功"); }else{ Db::rollback(); return error_show(1003,"创建失败"); } }catch (\Exception $e) { Db::rollback(); return error_show(1005, $e->getMessage()); } } public function customer(){ $outCode= isset($this->post['outCode']) && $this->post['outCode'] !=="" ? trim($this->post['outCode']) :""; if(empty($outCode)){ return error_show(1002,"销售订单编号不能为空"); } $codeinfo = Db::name('order_out')->where(['outCode'=>$outCode])->find(); if($codeinfo==""){ return error_show(1003,"未找到订单数据"); } // $orderCode = isset($this->post['orderCode']) && $this->post['orderCode'] !=="" ? trim($this->post['orderCode']) :""; // if($orderCode==""){ // return error_show(1002,"参数orderCoder不能为空"); // } $dr = Db::name('sale')->where(['orderCode'=>$codeinfo['orderCode']])->find(); if($dr==""){ return error_show(1002,"未找到销售订单"); } $status = isset($this->post['status']) && $this->post['status'] !== "" ? $this->post['status'] :""; if($status==""){ return error_show(10002,"状态不能为空"); } Db::startTrans(); try { $codeinfo['status']=$status; $codeinfo['updatetime']=date("Y-m-d H:i:s"); $cust = Db::name('order_out')->save($codeinfo); if($cust){ if($status==2){ $ct =Db::name('sale_info')->where(['orderCode' => $dr['orderCode'],'wsm_code'=>$codeinfo['wsm_code']])->find(); if($ct==false){ return error_show(1002,"未找到数据"); } $var = Db::name('good_stock')->where(['wsm_code'=>$codeinfo['wsm_code'],'good_type_code'=>$dr['good_code']])->find(); if($var==false){ Db::rollback(); return error_show(1002,"未找到商品数据"); } if($ct['num']>$var['intra_stock']){ Db::rollback(); return error_show(1003,"超出库存数量"); } $var['intra_stock']-=$codeinfo['send_num']; $var['updatetime']=date("Y-m-d H:i:s"); $stre = Db::name('good_stock')->save($var); if ($stre == false) { Db::rollback(); return error_show(1002, "状态更新失败"); } } Db::commit(); return error_show(0,"出库订单更新成功"); }else{ Db::rollback(); return error_show(1003,"出库订单更新失败"); } }catch (\Exception $e) { Db::rollback(); return error_show(1005, $e->getMessage()); } } public function difflist(){ $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 = []; $cgdNo = isset($this->post['orderCode']) && $this->post['orderCode']!="" ? trim($this->post['orderCode']):""; if($cgdNo!=""){ $where[]=['a.orderCode',"like", "%$cgdNo%"]; } $diffNo = isset($this->post['diffCode']) && $this->post['diffCode']!="" ? trim($this->post['diffCode']):""; if($diffNo!=""){ $where[]=['a.diffCode',"like", "%$diffNo%"]; } $status = isset($this->post['status']) && $this->post['status'] !==""? intval($this->post['status']):""; if($status!==""){ $where[]=['a.status',"=",$status]; } $start= isset($this->post['start']) && $this->post['start'] !== "" ? $this->post['start']:""; if ($start !="") { $where[]= ["a.addtime",'>=',$start]; } $end = isset($this->post['end']) && $this->post['end'] !== "" ? $this->post['end'] :""; if($end !=""){ $where[]= ["a.addtime",'<=',$end]; } // $apply_name = isset($this->post['apply_name']) && $this->post['apply_name'] !==""? intval($this->post['apply_name']):""; // if($apply_name!==""){ // $where[]=['a.apply_name',"like","%$apply_name%"]; // } $count = Db::name('sale_diff')->alias('a')->join("good b","b.good_code=a.good_code","left") ->where($where)->count(); $total = ceil($count/$size); $page = $page >= $total ? $total : $page; $list = Db::name('sale_diff')->alias('a')->join("good b","b.good_code=a.good_kode","left") ->where($where)->page($page,$size)->field("a.*,b.cat_id")->order("a.addtime desc")->select(); $data=[]; foreach ($list as $value){ $value['can']= isset($value['cat_id']) && $value['cat_id'] !=0 ? made($value['cat_id']):[]; $data[]=$value; } return app_show(0,"获取成功",['list'=>$data,'count'=>$count]); } /** * @return \think\response\Json|void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function diffcheck(){ $id = isset($this->post['id']) && $this->post['id'] !==""? intval($this->post['id']):""; if($id===""){ return error_show(1004,"参数id不能为空"); } $info = Db::name("sale_diff")->where(["id"=>$id])->find(); if(empty($info)){ return error_show(1004,"订单数据未找到"); } $is_act = isset($this->post['is_act']) && $this->post['is_act'] !==""? intval($this->post['is_act']):""; if($is_act===''){ return error_show(1004,"参数is_act不能为空"); } $customer_remark = isset($this->post['customer_remark']) && $this->post['customer_remark'] !==""? trim($this->post['customer_remark']):""; if($customer_remark===''){ return error_show(1004,"参数customer_remark不能为空"); } $status = isset($this->post['status']) && $this->post['status'] !==""? intval($this->post['status']):"2"; $remark = isset($this->post['remark']) && $this->post['remark'] !==""? trim($this->post['remark']):""; $info['is_act'] =$is_act; $info['customer_remark'] =$customer_remark; $info['status'] =$status; $info['remark'] =$remark; $info['updatetime'] =date("Y-m-d H:i:s"); $up = Db::name("sale_diff")->save($info); if($up){ return app_show(0,"更新成功"); }else{ return error_show(1003,"更新失败"); } } /** * @return \think\response\Json|void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function diffstatus(){ $id = isset($this->post['id']) && $this->post['id'] !==""? intval($this->post['id']):""; if($id===""){ return error_show(1004,"参数id不能为空"); } $info = Db::name("sale_diff")->where(["id"=>$id])->find(); if(empty($info)){ return error_show(1004,"订单数据未找到"); } $status = isset($this->post['status']) && $this->post['status'] !==""? intval($this->post['status']):"3"; $remark = isset($this->post['remark']) && $this->post['remark'] !==""? trim($this->post['remark']):""; $info['status'] =$status; $info['remark'] =$remark; $info['updatetime'] =date("Y-m-d H:i:s"); $up = Db::name("sale_diff")->save($info); if($up){ return app_show(0,"更新成功"); }else{ return error_show(1003,"更新失败"); } } /** * @return \think\response\Json|void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function diffinfo(){ $id = isset($this->post['id']) && $this->post['id'] !==""? intval($this->post['id']):""; if($id===""){ return error_show(1004,"参数id不能为空"); } $info = Db::name('sale_diff')->alias('a')->join("good b","b.good_code=a.good_kode","left")->where (["a.id"=>$id])->field("a.*,b.cat_id")->find(); if(empty($info)){ return error_show(1004,"订单数据未找到"); } $info['can']= isset($info['cat_id']) && $info['cat_id'] !==0 ? made($info['cat_id']):[]; return app_show(0,"获取成功",$info); } }