|
|
@@ -132,22 +132,20 @@ class HandInStorageService
|
|
|
}
|
|
|
$who= 'WAS'.(Auth::user() ? '-'.Auth::user()["name"] : '');
|
|
|
$time=Carbon::now()->toDateTimeString();
|
|
|
-// return DB::connection("oracle")->transaction(function ()use ($info,$invlotatt,$who,$time){
|
|
|
+ return DB::connection("oracle")->transaction(function ()use ($info,$invlotatt,$who,$time){
|
|
|
//flux 批次号
|
|
|
-// $lotNum=$this->getOrCreateLotNum($info,$invlotatt,$who,$time);
|
|
|
-// if (!$lotNum) return false;
|
|
|
+ $lotNum=$this->getOrCreateLotNum($info,$invlotatt,$who,$time);
|
|
|
+ if (!$lotNum) return false;
|
|
|
//flux 创建入库事务
|
|
|
-// $actTransactionLog=$this->setFluxActTransactionLog($info,$lotNum,$who,$time);
|
|
|
-// if (!$actTransactionLog)return false;
|
|
|
+ $actTransactionLog=$this->setFluxActTransactionLog($info,$lotNum,$who,$time);
|
|
|
+ if (!$actTransactionLog)return false;
|
|
|
//flux 创建上架任务
|
|
|
-// $this->setFluxTskTaskListPA($info,$invlotatt, $actTransactionLog, $who, $time);
|
|
|
+ $this->setFluxTskTaskListPA($info,$invlotatt, $actTransactionLog, $who, $time);
|
|
|
//flux 完善库存余量
|
|
|
-// $this->updateFluxInv($info,$lotNum,$who,$time,$actTransactionLog);
|
|
|
+ $this->updateFluxInv($info,$lotNum,$who,$time,$actTransactionLog);
|
|
|
//flux 更新asn_detail 和 asn_header 状态
|
|
|
- $re=$this->updateFluxAsn($info,$invlotatt,$time,$who);
|
|
|
- dd($re);
|
|
|
-// return true;
|
|
|
-// });
|
|
|
+ return $this->updateFluxAsn($info,$invlotatt,$time,$who);
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -171,21 +169,23 @@ class HandInStorageService
|
|
|
$asnDetail['customerid']==$info['customerid'] &&
|
|
|
$asnDetail['sku']==$info['sku']) $receiveAsn=$asnDetail;
|
|
|
}
|
|
|
- return $db->transaction(function ()use($db,$info,$receiveAsn,$invlotatt,$time,$who){
|
|
|
+ return $db->transaction(function ()use($db,$info,$receiveAsn,$invlotatt,$time,$who,$asn){
|
|
|
if ($receiveAsn && (int)$receiveAsn['receivedqty']+(int)$info['amount']<(int)$receiveAsn['expectedqty']){
|
|
|
//asn_detail 收货数量+已收数量<预期数量
|
|
|
- $db->update(DB::raw("UPDATE DOC_ASN_DETAILS SET linestatus = '30',edittime = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),editwho = ?,
|
|
|
- lotatt01=?,lotatt02=?,lotatt03=?,lotatt04=?,lotatt05=?,lotatt06=?,lotatt07=?,lotatt08=? WHERE asnno = ?"),
|
|
|
- [$time,$who,$invlotatt['lotatt01'],$invlotatt['lotatt02'],$invlotatt['lotatt03'],$invlotatt['lotatt04'],
|
|
|
+ $db->update(DB::raw("UPDATE DOC_ASN_DETAILS SET receivedqty = receivedqty + ?,receivedqty_each = receivedqty_each + ?,linestatus = '30',holdrejectcode ='OK',
|
|
|
+ reserve_flag ='Y',edittime = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),receivedtime = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),editwho = ?,
|
|
|
+ lotatt01 =?,lotatt02 =?,lotatt03 =?,lotatt04 =?,lotatt05 =?,lotatt06 =?,lotatt07 =?,lotatt08=? WHERE asnno = ?"),
|
|
|
+ [(int)$info['amount'],(int)$info['amount'],$time,$time,$who,$invlotatt['lotatt01'],$invlotatt['lotatt02'],$invlotatt['lotatt03'],$invlotatt['lotatt04'],
|
|
|
$invlotatt['lotatt05'],$invlotatt['lotatt06'],$invlotatt['lotatt07'],$invlotatt['lotatt08'],$info['asnno']]);
|
|
|
//asn_header 部分收货状态
|
|
|
$db->update(DB::raw("UPDATE DOC_ASN_HEADER SET asnstatus = '30',edittime = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),editwho = ? WHERE asnno = ?"),
|
|
|
[$time,$who,$info['asnno']]);
|
|
|
}elseif ($receiveAsn && (int)$receiveAsn['receivedqty']+(int)$info['amount']==(int)$receiveAsn['expectedqty']){
|
|
|
//asn_detail 收货数量+已收数量=预期数量
|
|
|
- $db->update(DB::raw("UPDATE DOC_ASN_DETAILS SET linestatus = '40',edittime = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),editwho = ?,
|
|
|
- lotatt01=?,lotatt02=?,lotatt03=?,lotatt04=?,lotatt05=?,lotatt06=?,lotatt07=?,lotatt08=? WHERE asnno = ?"),
|
|
|
- [$time,$who,$invlotatt['lotatt01'],$invlotatt['lotatt02'],$invlotatt['lotatt03'],$invlotatt['lotatt04'],
|
|
|
+ $db->update(DB::raw("UPDATE DOC_ASN_DETAILS SET receivedqty=receivedqty+?,receivedqty_each=receivedqty_each+?,linestatus = '40',
|
|
|
+ edittime = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),receivedtime = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),editwho = ?,holdrejectcode='OK',
|
|
|
+ reserve_flag='Y',lotatt01=?,lotatt02=?,lotatt03=?,lotatt04=?,lotatt05=?,lotatt06=?,lotatt07=?,lotatt08=? WHERE asnno = ?"),
|
|
|
+ [(int)$info['amount'],(int)$info['amount'],$time,$time,$who,$invlotatt['lotatt01'],$invlotatt['lotatt02'],$invlotatt['lotatt03'],$invlotatt['lotatt04'],
|
|
|
$invlotatt['lotatt05'],$invlotatt['lotatt06'],$invlotatt['lotatt07'],$invlotatt['lotatt08'],$info['asnno']]);
|
|
|
//当asn_detail 所有状态都为完全收货是 asn_header 状态修改为 完全收货(asnstatus=40)
|
|
|
if (OracleDOCASNDetail::query()->where('asnno',$info['asnno'])->where('linestatus',40)->count()==$asn->asn_details_count){
|