|
|
@@ -125,7 +125,7 @@ class StorageService
|
|
|
DB::beginTransaction();
|
|
|
try{
|
|
|
//get flux
|
|
|
- $asns = app("StorageService")->getFluxTask($task->doc_code,$task->bar_code,$task->amount);
|
|
|
+ $asns = $this->getFluxTask($task->doc_code,$task->bar_code,$task->amount);
|
|
|
if (!$asns)return false;
|
|
|
$ide = $task->materialBox->code;
|
|
|
DB::connection("oracle")->beginTransaction();
|
|
|
@@ -277,7 +277,7 @@ sql;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * flux上架
|
|
|
+ * 将任务在flux上架
|
|
|
*
|
|
|
* @param $asn
|
|
|
* @param $ide
|
|
|
@@ -290,19 +290,19 @@ sql;
|
|
|
if (!$asn->taskid)return false;//ASN单无此入库信息,禁止上架
|
|
|
|
|
|
$sql = <<<sql
|
|
|
-SELECT * FROM inv_lot_loc_id WHERE lotnum = ? AND traceid = ? AND customerid= ? and sku = ?
|
|
|
+SELECT * FROM inv_lot_loc_id WHERE lotnum = ? AND traceid = ? AND customerid= ? and sku = ? and qty = {$amount}
|
|
|
sql;
|
|
|
- $inv = DB::connection("oracle")->select(DB::raw($sql),[$asn->fmlotnum,$asn->plantoid,$asn->customerid,$asn->sku]);
|
|
|
- if (count($inv)==0)return false;//余量与入库不符
|
|
|
+ $inv = DB::connection("oracle")->selectOne(DB::raw($sql),[$asn->fmlotnum,$asn->plantoid,$asn->customerid,$asn->sku]);
|
|
|
+ if (!$inv)return false;//余量与入库不符
|
|
|
DB::connection("oracle")->transaction(function ()use($inv,$amount,$ide,$asn,&$who){
|
|
|
$db = DB::connection("oracle");
|
|
|
- $qty = $amount;
|
|
|
+ /*$qty = $amount;
|
|
|
foreach ($inv as $in){
|
|
|
if ($qty==0)break;
|
|
|
if ($in->qty > $qty){
|
|
|
$db->update(DB::raw("update inv_lot_loc_id set qty = qty-?,qtymvout = qty-? where lotnum = ? and locationid = ? and traceid = ?"),[
|
|
|
$qty,$qty,$in->lotnum,$in->locationid,$in->traceid
|
|
|
- ]);//TODO 遗留问题:对应生成分配库位上架数量未被变更
|
|
|
+ ]);
|
|
|
$in->qty = $in->qty-$qty;
|
|
|
$qty = 0;
|
|
|
}else{
|
|
|
@@ -311,19 +311,19 @@ sql;
|
|
|
]);
|
|
|
$qty = $qty-$in->qty;
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
$db->delete(DB::raw("DELETE FROM inv_lot_loc_id WHERE lotnum = ? AND traceid = ? AND traceid != '*' AND qty = 0"),[
|
|
|
- $inv[0]->lotnum,$inv[0]->traceid
|
|
|
+ $inv->lotnum,$inv->traceid
|
|
|
]);
|
|
|
$invHistory = $db->selectOne(DB::raw("SELECT * FROM inv_lot_loc_id WHERE lotnum = ? AND locationid = ? AND customerid = ? AND sku = ? AND traceid = '*' FOR UPDATE"),[
|
|
|
- $inv[0]->lotnum,$ide,$inv[0]->customerid,$inv[0]->sku
|
|
|
+ $inv->lotnum,$ide,$inv->customerid,$inv->sku
|
|
|
]);
|
|
|
$who = 'WAS'.(Auth::user() ? '-'.Auth::user()["name"] : '');
|
|
|
if ($invHistory)$db->update(DB::raw("UPDATE inv_lot_loc_id SET qty = qty+? WHERE lotnum = ? AND locationid = ? AND traceid = '*'"),[
|
|
|
- (int)$amount,$inv[0]->lotnum,$ide
|
|
|
+ (int)$amount,$inv->lotnum,$ide
|
|
|
]);
|
|
|
else $db->insert(DB::raw("INSERT INTO inv_lot_loc_id VALUES(?,?,'*',?,?,?,0,0,0,0,0,0,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?,0,0,0,0,0,'*',0,null)"),[
|
|
|
- $inv[0]->lotnum,$ide,$inv[0]->customerid,$inv[0]->sku,$amount,date("Y-m-d H:i:s"),$who,
|
|
|
+ $inv->lotnum,$ide,$inv->customerid,$inv->sku,$amount,date("Y-m-d H:i:s"),$who,
|
|
|
date("Y-m-d H:i:s"),$who
|
|
|
]);
|
|
|
$sql = <<<sql
|
|
|
@@ -334,8 +334,8 @@ sql;
|
|
|
list($trid,$max) = $this->getTrNumber();
|
|
|
$db->insert(DB::raw($sql),[
|
|
|
$trid,$asn->customerid,$asn->sku,
|
|
|
- $asn->asnno,$asn->asnlineno,$inv[0]->lotnum,$asn->fmlocation,$asn->plantoid,$asn->packid,$asn->uom,$amount,$amount,'99',date("Y-m-d H:i:s"),$who,
|
|
|
- date("Y-m-d H:i:s"),$who,date("Y-m-d H:i:s"),$asn->customerid,$asn->sku,$ide,$who,$asn->packid,$asn->uom,$amount,$amount,$inv[0]->lotnum,
|
|
|
+ $asn->asnno,$asn->asnlineno,$inv->lotnum,$asn->fmlocation,$asn->plantoid,$asn->packid,$asn->uom,$amount,$amount,'99',date("Y-m-d H:i:s"),$who,
|
|
|
+ date("Y-m-d H:i:s"),$who,date("Y-m-d H:i:s"),$asn->customerid,$asn->sku,$ide,$who,$asn->packid,$asn->uom,$amount,$amount,$inv->lotnum,
|
|
|
'*','0','N','*',$asn->taskid_sequence,$asn->warehouseid,$asn->userdefine1,$asn->userdefine2,
|
|
|
$asn->userdefine3,$asn->userdefine4,$asn->userdefine5,'O'
|
|
|
]);
|