|
|
@@ -39,14 +39,23 @@ class HandInStorageService
|
|
|
public function getAsnQty($asnno)
|
|
|
{
|
|
|
$asnQty=OracleDOCASNDetail::query()
|
|
|
- ->select('expectedqty','receivedqty')
|
|
|
+ ->select('expectedqty','receivedqty','receivedqty_each','expectedqty_each')
|
|
|
->where('asnno',$asnno)
|
|
|
->get();
|
|
|
$expectedqty=0;
|
|
|
$receivedqty=0;
|
|
|
foreach ($asnQty as $qty){
|
|
|
- $expectedqty+=$qty->expectedqty;
|
|
|
- $receivedqty+=$qty->receivedqty;
|
|
|
+ if ($qty->expectedqty) {
|
|
|
+ $expectedqty+=$qty->expectedqty;
|
|
|
+ }else{
|
|
|
+ $expectedqty+=$qty->expectedqty_each??0;
|
|
|
+ }
|
|
|
+ if ($qty->receivedqty){
|
|
|
+ $receivedqty+=$qty->receivedqty;
|
|
|
+ }else{
|
|
|
+ $receivedqty+=$qty->receivedqty_each??0;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
return (object)array('expectedqty'=>$expectedqty,'receivedqty'=>$receivedqty);
|
|
|
}
|
|
|
@@ -342,7 +351,7 @@ sql;
|
|
|
public function getTsk($trackNumber,$barCode): array
|
|
|
{
|
|
|
$sql = <<<sql
|
|
|
-select t.*, DOC_ASN_DETAILS.RECEIVEDQTY
|
|
|
+select t.*, DOC_ASN_DETAILS.RECEIVEDQTY,DOC_ASN_DETAILS.ReceivedQty_Each
|
|
|
from (select TSK_TASKLISTS.CustomerID,
|
|
|
TSK_TASKLISTS.DOCNO,
|
|
|
TSK_TASKLISTS.Sku,
|
|
|
@@ -350,6 +359,12 @@ from (select TSK_TASKLISTS.CustomerID,
|
|
|
TSK_TASKLISTS.PlanToID,
|
|
|
DOC_ASN_DETAILS.SKUDESCRC,
|
|
|
TSK_TASKLISTS.DOCLINENO,
|
|
|
+ TSK_TASKLISTS.LOTATT01,
|
|
|
+ TSK_TASKLISTS.LOTATT02,
|
|
|
+ TSK_TASKLISTS.LOTATT03,
|
|
|
+ TSK_TASKLISTS.LOTATT04,
|
|
|
+ TSK_TASKLISTS.LOTATT05,
|
|
|
+ TSK_TASKLISTS.LOTATT08,
|
|
|
sum(TSK_TASKLISTS.PlanToQty) as qty
|
|
|
from TSK_TASKLISTS
|
|
|
LEFT JOIN DOC_ASN_DETAILS ON DOC_ASN_DETAILS.ASNNO = TSK_TASKLISTS.DOCNO AND
|
|
|
@@ -391,8 +406,8 @@ sql;
|
|
|
select SKU from BAS_SKU where ALTERNATE_SKU3='".$barCode."' union
|
|
|
select SKU from BAS_SKU where SKU='".$barCode."' )";
|
|
|
|
|
|
- $sql.=' group by TSK_TASKLISTS.CustomerID, TSK_TASKLISTS.DOCNO, TSK_TASKLISTS.Sku, TSK_TASKLISTS.PlanToLotNum,
|
|
|
- TSK_TASKLISTS.PlanToID, DOC_ASN_DETAILS.SKUDESCRC, TSK_TASKLISTS.DOCLINENO) t
|
|
|
+ $sql.=' group by TSK_TASKLISTS.CustomerID, TSK_TASKLISTS.DOCNO, TSK_TASKLISTS.Sku, TSK_TASKLISTS.PlanToLotNum, TSK_TASKLISTS.PlanToID, DOC_ASN_DETAILS.SKUDESCRC,
|
|
|
+ TSK_TASKLISTS.DOCLINENO, TSK_TASKLISTS.LOTATT01, TSK_TASKLISTS.LOTATT02, TSK_TASKLISTS.LOTATT03, TSK_TASKLISTS.LOTATT04, TSK_TASKLISTS.LOTATT05, TSK_TASKLISTS.LOTATT08) t
|
|
|
left join DOC_ASN_DETAILS on t.DOCLINENO = DOC_ASN_DETAILS.ASNLINENO and t.DOCNO = DOC_ASN_DETAILS.ASNNO';
|
|
|
if ($trackNumber){
|
|
|
if ($this->checkUserOwnerAuth($trackNumber))$tasks = DB::connection("oracle")->select(DB::raw($sql), [strtoupper($trackNumber)]);
|
|
|
@@ -578,7 +593,8 @@ sql;
|
|
|
[$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 receivedqty=receivedqty+?,receivedqty_each=receivedqty_each+?,linestatus = '40',
|
|
|
+ $db->update(DB::raw("UPDATE DOC_ASN_DETAILS SET receivedqty=receivedqty+?,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 = ? and asnlineno = ?"),
|
|
|
[(int)$info['amount'], (int)$info['amount'], $time, $time, $who, $invlotatt['lotatt01'], $invlotatt['lotatt02'], $invlotatt['lotatt03'], $invlotatt['lotatt04'],
|