|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace App\Services;
|
|
|
|
|
|
+use App\OracleDOCASNHeader;
|
|
|
use App\OracleDOCOrderHeader;
|
|
|
use App\OrderIssue;
|
|
|
use App\RejectedBill;
|
|
|
@@ -75,9 +76,10 @@ Class RejectedBillService
|
|
|
{
|
|
|
$updateParams=$this->getNeedUpdateLoadedStatusByWms($asnHerders);
|
|
|
if (!$updateParams)return;
|
|
|
- if (count($updateParams) > 1) {
|
|
|
- $this->batchUpdate($updateParams);
|
|
|
- }
|
|
|
+ if (count($updateParams) > 1) $this->batchUpdate($updateParams);
|
|
|
+ $updates=$this->getNeedUpdateCheckedStatusByWms($asnHerders);
|
|
|
+ if (!$updates)return;
|
|
|
+ if (count($updates) > 1) $this->batchUpdate($updates);
|
|
|
}
|
|
|
|
|
|
public function getNeedUpdateLoadedStatusByWms($asnHerders)
|
|
|
@@ -99,7 +101,6 @@ Class RejectedBillService
|
|
|
if (!$data->asnreference3 && !$data->notes) {
|
|
|
continue;
|
|
|
}
|
|
|
- $result = [];
|
|
|
if ($data->asnreference3) {
|
|
|
$rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $data->asnreference3], $rejectedBills_map);
|
|
|
if ($rejectedBill && $rejectedBill->is_loaded != 1) $updateParams[] = [
|
|
|
@@ -108,6 +109,7 @@ Class RejectedBillService
|
|
|
'updated_at' => $updated_at,
|
|
|
];
|
|
|
} else {
|
|
|
+ $result = [];
|
|
|
preg_match("/[a-zA-Z]{0,5}\d{6,20}/", $data->notes, $result);
|
|
|
if (count($result)<1) continue;
|
|
|
$rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $result[0]], $rejectedBills_map);
|
|
|
@@ -116,7 +118,7 @@ Class RejectedBillService
|
|
|
'is_loaded' => 1,
|
|
|
'updated_at' => $updated_at,
|
|
|
];
|
|
|
- $result = [];
|
|
|
+ unset($result);
|
|
|
}
|
|
|
}
|
|
|
return $updateParams;
|
|
|
@@ -141,13 +143,13 @@ Class RejectedBillService
|
|
|
if (!$data->asnreference3 && !$data->notes) {
|
|
|
continue;
|
|
|
}
|
|
|
- $result = [];
|
|
|
if ($data->asnreference3) {
|
|
|
array_push($logisticNumberReturn, $data->asnreference3);
|
|
|
} else {
|
|
|
+ $result = [];
|
|
|
preg_match("/[a-zA-Z]{0,5}\d{6,20}/", $data->notes, $result);
|
|
|
if (count($result) > 0) array_push($logisticNumberReturn, $result[0]);
|
|
|
- $result = [];
|
|
|
+ unset($result);
|
|
|
}
|
|
|
}
|
|
|
return $logisticNumberReturn;
|
|
|
@@ -160,9 +162,66 @@ Class RejectedBillService
|
|
|
|
|
|
public function getRejectedBills(array $logisticNumberReturn)
|
|
|
{
|
|
|
- if (count($logisticNumberReturn) < 1) {
|
|
|
- return null;
|
|
|
- }
|
|
|
+ if (count($logisticNumberReturn) < 1) return null;
|
|
|
return RejectedBill::query()->whereIn('logistic_number_return', $logisticNumberReturn)->get();
|
|
|
}
|
|
|
+
|
|
|
+ public function getNeedUpdateCheckedStatusByWms($asnHerders)
|
|
|
+ {
|
|
|
+ if ($asnHerders->isEmpty()) return null;
|
|
|
+ $logisticNumberReturn = $this->getLogisticNumberReturn($asnHerders);
|
|
|
+ $rejectedBills = $this->getRejectedBills($logisticNumberReturn);
|
|
|
+ if (!$rejectedBills) return null;
|
|
|
+ $updateParams = [[
|
|
|
+ 'logistic_number_return', 'is_checked','checked_numbers','updated_at'
|
|
|
+ ]];
|
|
|
+ $updated_at = Carbon::now()->toDateTimeString();
|
|
|
+ /** @var DataHandlerService $dataHandlerService */
|
|
|
+ $dataHandlerService = app(DataHandlerService::class);
|
|
|
+ $rejectedBills_map = $dataHandlerService->dataHeader(['logistic_number_return'], $rejectedBills);
|
|
|
+ foreach ($asnHerders as $data) {
|
|
|
+ if (!$data->asnreference3 && !$data->notes) continue;
|
|
|
+ if ($data->asnreference3) {
|
|
|
+ $rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $data->asnreference3], $rejectedBills_map);
|
|
|
+ if ($rejectedBill && $rejectedBill->is_checked != 1) $updateParams[] = [
|
|
|
+ 'logistic_number_return' => $data->asnreference3,
|
|
|
+ 'is_checked' => 1,
|
|
|
+ 'checked_numbers' => $rejectedBill->makeCheckedNumbers(),
|
|
|
+ 'updated_at' => $updated_at,
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
+ $result = [];
|
|
|
+ preg_match("/[a-zA-Z]{0,5}\d{6,20}/", $data->notes, $result);
|
|
|
+ if (count($result)<1) continue;
|
|
|
+ $rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $result[0]], $rejectedBills_map);
|
|
|
+ if ($rejectedBill && $rejectedBill->is_checked != 1) $updateParams[] = [
|
|
|
+ 'logistic_number_return' => $result[0],
|
|
|
+ 'is_checked' => 1,
|
|
|
+ 'checked_numbers' => $rejectedBill->makeCheckedNumbers(),
|
|
|
+ 'updated_at' => $updated_at,
|
|
|
+ ];
|
|
|
+ unset($result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $updateParams;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function updateCheckedStatusByWms($logistic_number_return)
|
|
|
+ {
|
|
|
+ $asnHeader=OracleDOCASNHeader::query()
|
|
|
+ ->select('asnno','customerid','notes','warehouseid','asnreference3')
|
|
|
+ ->where('asnreference3',$logistic_number_return)
|
|
|
+ ->orWhere('notes','like','%'.$logistic_number_return.'%')
|
|
|
+ ->first();
|
|
|
+ if ($asnHeader){
|
|
|
+ $rejectBill=RejectedBill::query()->where('logistic_number_return',$logistic_number_return)->first();
|
|
|
+ if ($rejectBill->is_checked==1)return null;
|
|
|
+ $rejectBill->update([
|
|
|
+ 'is_checked'=>1,
|
|
|
+ 'checked_numbers' => $rejectBill->makeCheckedNumbers(),
|
|
|
+ ]);
|
|
|
+ return $rejectBill;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|