where(["outCode"=>$outCode,"is_del"=>0])->findOrEmpty(); if(empty($out)) throw new \Exception("发货单信息未找到"); if($out['send_status']!=0) throw new \Exception("发货单拆单状态有误"); $sale = self::name("sale")->where(["orderCode"=>$out['orderCode'],"is_del"=>0])->findOrEmpty(); if(empty($sale)) throw new \Exception("订单信息未找到"); if($sale['wsend_num']<$out['send_num']) throw new \Exception("订单待发货数量不足"); $num= $out['send_num']; $wsmlist = self::name("good_stock")->alias("a") ->leftJoin("warehouse_info b","a.wsm_code=b.wsm_code") ->field("a.id,a.usable_stock,a.wait_out_stock,b.wsm_code,b.supplierNo,b.supplierName") ->where(["spuCode"=>$sale['good_code'],"a.is_del"=>0])->findOrEmpty(); if($wsmlist['usable_stock']<$num) return false; $outinfo = self::name("order_out")->where(["outCode"=>$outCode,"is_del"=>0])->findOrEmpty(); if(empty($outinfo))throw new \Exception("发货单信息未找到"); $child=[ "outChildCode"=>makeNo("TCD"), "outCode"=>$outCode, "orderCode"=>$sale['orderCode'], "companyNo"=>$sale['companyNo'], "companyName"=>$sale['companyName'], "supplierNo"=>$sale['supplierNo'], "supplierName"=>$sale['supplierName'], "cutomer_code"=>$sale['cutomer_code'], "spuCode"=>$sale['good_code'], "skuCode"=>$sale['skuCode'], "good_name"=>$sale['good_name'], "order_type"=>$sale['order_type'], "order_source"=>$sale['order_source'], "total_num"=>$num, "num"=>$num, "wsm_code"=>$wsmlist['wsm_code'], "apply_id"=>$outinfo['apply_id'], "apply_name"=>$outinfo['apply_name'], "addrid"=>$outinfo['addrid'], "addtime"=>date("Y-m-d H:i:s"), "updatetime"=>date("Y-m-d H:i:s") ]; $childout=self::insert($child); if($childout==false)throw new \Exception("分单失败"); $outup=self::name("order_out")->where(["outCode"=>$outCode,"is_del"=>0])->update(["send_status"=>1,"status"=>1,"updatetime"=>date("Y-m-d H:i:s")]); if($outup==false)throw new \Exception("发货单信息更新失败"); $bnadd = GoodStockInfo::ChildAddBn($child['outChildCode'],$wsmlist['id']); if($bnadd==false)throw new \Exception("库存更新失败"); return true; } }