|
|
@@ -162,14 +162,29 @@ class WaveController extends Controller
|
|
|
public function split()
|
|
|
{
|
|
|
$codes = \request("codes",[]);
|
|
|
- $splitSize = \request("splitSize");
|
|
|
- if (!$codes || !$splitSize)$this->error("无记录");
|
|
|
- if (!is_numeric($splitSize) || !is_int((int)$splitSize))$this->error("非法输入");
|
|
|
- $size = Batch::query()->whereIn("code",$codes)->whereNull("split_size")->count();
|
|
|
- if ($size!=count($codes))$this->error("波次不全或不允许二次分割");
|
|
|
- Batch::query()->whereIn("code",$codes)->whereNull("split_size")->update([
|
|
|
- "split_size" => $splitSize
|
|
|
- ]);
|
|
|
+ $splitSize = \request("split");
|
|
|
+ $splitNumber = \request("number");
|
|
|
+ if (!$codes || (!$splitSize && !$splitNumber))$this->error("无记录");
|
|
|
+ if ((!is_numeric($splitSize) || !is_int((int)$splitSize)) && !is_numeric($splitNumber) || !is_int((int)$splitNumber))$this->error("非法输入");
|
|
|
+ if ($splitSize){
|
|
|
+ $size = Batch::query()->whereIn("code",$codes)->whereNull("split_size")->count();
|
|
|
+ if ($size!=count($codes))$this->error("波次不全或不允许二次分割");
|
|
|
+ Batch::query()->whereIn("code",$codes)->whereNull("split_size")->update([
|
|
|
+ "split_size" => $splitSize
|
|
|
+ ]);
|
|
|
+ }else{
|
|
|
+ $no = "";
|
|
|
+ foreach ($codes as $code){
|
|
|
+ $no .= "'".$code."',";
|
|
|
+ }
|
|
|
+ $no = rtrim($no,',');
|
|
|
+ $sql = <<<SQL
|
|
|
+SELECT WAVENO,COUNT(*) count from DOC_WAVE_DETAILS WHERE WAVENO IN ({$no}) GROUP BY WAVENO
|
|
|
+SQL;
|
|
|
+ foreach (DB::connection("oracle")->select(DB::raw($sql)) as $wave){
|
|
|
+ Batch::query()->where("code",$wave->waveno)->update(["split_size" => (int)ceil($wave->count/$splitNumber)]);
|
|
|
+ };
|
|
|
+ }
|
|
|
$this->success();
|
|
|
}
|
|
|
|
|
|
@@ -195,13 +210,13 @@ class WaveController extends Controller
|
|
|
{
|
|
|
$code = \request("code");
|
|
|
$batch = null;
|
|
|
- if (!$code || !$batch = Batch::query()->select("id")->where("code",$code)->first())$this->error("无记录");
|
|
|
+ if (!$code || !$batch = Batch::query()->select("id","split_size")->where("code",$code)->first())$this->error("无记录");
|
|
|
$sql = <<<SQL
|
|
|
SELECT a.ORDERNO,a.QTY,s.ALTERNATE_SKU1 FROM ACT_ALLOCATION_DETAILS a
|
|
|
LEFT JOIN DOC_ORDER_HEADER o ON a.ORDERNO = o.ORDERNO
|
|
|
LEFT JOIN DOC_WAVE_DETAILS w ON o.ORDERNO = w.ORDERNO
|
|
|
LEFT JOIN BAS_SKU s ON a.SKU = s.SKU
|
|
|
-WHERE w.WAVENO = '{$code}' ORDER BY w.SEQNO;
|
|
|
+WHERE w.WAVENO = '{$code}' ORDER BY w.SEQNO
|
|
|
SQL;
|
|
|
$orders = DB::connection("oracle")->select(DB::raw($sql));
|
|
|
$result = [];
|