|
|
@@ -450,7 +450,7 @@ sql;
|
|
|
$sql = <<<sql
|
|
|
INSERT INTO ACT_TRANSACTION_LOG VALUES(?,'PA',?,?,?,?,'ASN',?,?,?,?,?,?,?,?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?,
|
|
|
TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?,0,0,0,0,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?,?,null,null,null,'*',?,?,?,?,?,?,?,
|
|
|
-?,?,?,?,?,'N',null,?,?,?,?,null,null,null,?,null)
|
|
|
+?,?,?,?,?,'N',null,?,?,?,?,null,null,?,null,null)
|
|
|
sql;
|
|
|
list($trid,$max) = $this->getTrNumber();
|
|
|
$db->insert(DB::raw($sql),[
|
|
|
@@ -462,13 +462,13 @@ sql;
|
|
|
]);
|
|
|
$this->setTrNumber($max);
|
|
|
$sql = <<<sql
|
|
|
-update TSK_TASKLISTS set TASKPROCESS = '99',REASONCODE = 'OK',PLANTOLOCATION = ?,PLANLOGICALTOSEQUENCE = ?,FMID = '*'
|
|
|
+update TSK_TASKLISTS set TASKPROCESS = '99',REASONCODE = 'OK',PLANTOLOCATION = ?,PLANLOGICALTOSEQUENCE = ?,FMID = '*',
|
|
|
COMPLETED_TRANSACTIONID = ?,OPENWHO = ?,OPENTIME = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),
|
|
|
CLOSEWHO = ?,CLOSETIME = ?,EDITTIME = ?,EDITWHO = ?
|
|
|
where taskid = ? AND TASKID_SEQUENCE = ?
|
|
|
sql;
|
|
|
$db->update(DB::raw($sql),[
|
|
|
- $ide,'0',$trid,$who,date("Y-m-d H:i:s"),$who,date("Y-m-d H:i:s"),date("Y-m-d H:i:s"),$who,$asn->taskid,$asn->taskid_sequence
|
|
|
+ $ide,'0',$trid,$who,date("Y-m-d H:i:s"),$who,date("Y-m-d H:i:s"),date("Y-m-d H:i:s"),$who,$task->taskid,$task->taskid_sequence
|
|
|
]);
|
|
|
$task->who = $who;
|
|
|
$this->checkAsn($task);
|
|
|
@@ -644,27 +644,24 @@ SQL;
|
|
|
*/
|
|
|
public function getHalfBoxLocation(CommodityMaterialBoxModel $model,StoreItem $item,?string $asn = null,array $blacklist = []):?Storage
|
|
|
{
|
|
|
- if (!$asn){
|
|
|
- $item->loadMissing("store");
|
|
|
- $asn = $item->store->asn_code;
|
|
|
- }
|
|
|
- $stationCodes = '';//拼接库位编码
|
|
|
+ if (!$asn){$item->loadMissing("store");$asn = $item->store->asn_code;}
|
|
|
+ $boxCodes = '';//拼接料箱编码
|
|
|
$map = [];//库位与库存映射
|
|
|
//查询填充
|
|
|
- $query = Storage::query()->with("station")->whereHas("materialBox",function (Builder $query)use($model){
|
|
|
+ $query = Storage::query()->with("materialBox")->whereHas("materialBox",function (Builder $query)use($model){
|
|
|
$query->where("material_box_model_id",$model->material_box_model_id);
|
|
|
})->where("commodity_id",$model->commodity_id)->where("amount","<",$model->maximum)
|
|
|
->where("status",0)->where(DB::raw("{$model->maximum}-amount"),">",0);
|
|
|
if ($blacklist)$query->whereHas("materialBox",function (Builder $query)use($blacklist){
|
|
|
$query->whereNotIn("id",$blacklist);
|
|
|
});
|
|
|
- $query->get()->each(function ($storage)use(&$stationCodes,&$map){
|
|
|
- $stationCodes .= "'".$storage->station->code."',";
|
|
|
- $map[$storage->station->code] = $storage;
|
|
|
+ $query->get()->each(function ($storage)use(&$boxCodes,&$map){
|
|
|
+ $boxCodes .= "'".$storage->materialBox->code."',";
|
|
|
+ $map[$storage->materialBox->code] = $storage;
|
|
|
});
|
|
|
//不存在跳出
|
|
|
- if (!$stationCodes)return null;
|
|
|
- $stationCodes = mb_substr($stationCodes,0,-1);
|
|
|
+ if (!$boxCodes)return null;
|
|
|
+ $boxCodes = mb_substr($boxCodes,0,-1);
|
|
|
//查询对应asn detail
|
|
|
$detail = DB::connection("oracle")->selectOne(DB::raw("SELECT * FROM DOC_ASN_DETAILS WHERE ASNNO = ? AND ASNLINENO = ?"),[
|
|
|
$asn,$item->asn_line_code
|
|
|
@@ -689,7 +686,7 @@ sql;
|
|
|
$sql .= " AND LOTATT0{$i} = $val";
|
|
|
}
|
|
|
}
|
|
|
- $sql .= ") AND LOCATIONID IN ({$stationCodes}) AND TRACEID = '*' AND {$model->maximum}-QTY > 0 ORDER BY {$model->maximum}-QTY";
|
|
|
+ $sql .= ") AND LOCATIONID IN ({$boxCodes}) AND TRACEID = '*' AND {$model->maximum}-QTY > 0 ORDER BY {$model->maximum}-QTY";
|
|
|
$res = DB::connection("oracle")->selectOne(DB::raw($sql),[
|
|
|
$detail["customerid"],$detail["sku"]
|
|
|
]);
|