|
|
@@ -8,9 +8,6 @@ use App\Services\common\BatchUpdateService;
|
|
|
use App\Services\common\DataHandlerService;
|
|
|
use App\Store;
|
|
|
use App\StoreItems;
|
|
|
-use Carbon\Carbon;
|
|
|
-use Doctrine\DBAL\Query\QueryBuilder;
|
|
|
-use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
Class StoreItemService
|
|
|
{
|
|
|
@@ -69,10 +66,9 @@ Class StoreItemService
|
|
|
// });
|
|
|
return $asnDetails;
|
|
|
}
|
|
|
- //TODO
|
|
|
+
|
|
|
public function createStoreItem($asnDetails)
|
|
|
{
|
|
|
-
|
|
|
if ($asnDetails->isEmpty()) return null;
|
|
|
ini_set('memory_limit', '512M');
|
|
|
$stores = Store::query()->whereIn('asn_code', array_unique(data_get($asnDetails, '*.asnno')))->get();
|
|
|
@@ -91,10 +87,12 @@ Class StoreItemService
|
|
|
/**
|
|
|
* @var DataHandlerService $dataHandlerService
|
|
|
* @var CommodityService $commodityService
|
|
|
+ * @var OwnerService $ownerService
|
|
|
*/
|
|
|
$dataHandlerService = app(DataHandlerService::class);
|
|
|
$commodityService = app(CommodityService::class);
|
|
|
- $owners = Owner::query()->whereIn('code', array_unique(data_get($asnDetails,'*.customerid')))->get();
|
|
|
+ $ownerService = app(OwnerService::class);
|
|
|
+ $owners = $ownerService->getOwnerByCodes(array_unique(data_get($asnDetails,'*.customerid')));
|
|
|
$owner_map=[];
|
|
|
foreach ($owners as $owner){
|
|
|
$owner_map[$owner->code]=$owner->id;
|
|
|
@@ -129,7 +127,7 @@ Class StoreItemService
|
|
|
'name' => $asnDetail->skudescrc,
|
|
|
'sku' => $asnDetail->sku,
|
|
|
'amount' => $asnDetail->receivedqty ?? 0,
|
|
|
- 'quality' => $asnDetail->qualityStatus ?$asnDetail->qualityStatus->codename_c :' ',
|
|
|
+ 'quality' => $asnDetail->qualityStatus ? $asnDetail->qualityStatus->codename_c :'',
|
|
|
'status' => $status ? $status : $asnDetail->lineStatus->codename_c,
|
|
|
'created_at' => $asnDetail->addtime ?? null,
|
|
|
'updated_at' => $asnDetail->edittime ?? null,
|
|
|
@@ -152,19 +150,19 @@ Class StoreItemService
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //TODO
|
|
|
+
|
|
|
public function updateStoreItem($asnDetails)
|
|
|
{
|
|
|
- if (!$asnDetails || $asnDetails->count() == 0) {
|
|
|
- return null;
|
|
|
- }
|
|
|
+ if (!$asnDetails || $asnDetails->count() == 0) return null;
|
|
|
/**
|
|
|
* @var DataHandlerService $dataHandlerService
|
|
|
* @var CommodityService $commodityService
|
|
|
+ * @var OwnerService $ownerService
|
|
|
*/
|
|
|
$dataHandlerService = app(DataHandlerService::class);
|
|
|
$commodityService = app(CommodityService::class);
|
|
|
- $owners = Owner::query()->whereIn('code', array_unique(data_get($asnDetails,'*.customerid')))->get();
|
|
|
+ $ownerService = app(OwnerService::class);
|
|
|
+ $owners = $ownerService->getOwnerByCodes(array_unique(data_get($asnDetails,'*.customerid')));
|
|
|
$owner_map=[];
|
|
|
foreach ($owners as $owner){
|
|
|
$owner_map[$owner->id]=$owner->code;
|
|
|
@@ -186,7 +184,7 @@ Class StoreItemService
|
|
|
]];
|
|
|
$delete_storeItems = [];
|
|
|
foreach ($storeItems as $storeItem) {
|
|
|
- $commodity=$dataHandlerService->getKeyValue(['id'=>$storeItem->commodity_id],$commodities_map);if (!$commodity)continue;
|
|
|
+ $commodity= $dataHandlerService->getKeyValue(['id'=>$storeItem->commodity_id],$commodities_map);if (!$commodity) continue;
|
|
|
$asnDetail = $dataHandlerService
|
|
|
->getKeyValue(['asnno' => $storeItem->store_asn_code, 'asnlineno' => $storeItem->asn_line_code,'customerid'=>$owner_map[$commodity->owner_id],'sku' => $commodity->sku], $asnDetails_map);
|
|
|
if (!$asnDetail) {
|
|
|
@@ -194,20 +192,21 @@ Class StoreItemService
|
|
|
continue;
|
|
|
}
|
|
|
$status = null;
|
|
|
- if ($asnDetail->lineStatus && $asnDetail->lineStatus->codename_c == '完全收货') $status = '已入库';
|
|
|
- if ($asnDetail->lineStatus && $asnDetail->lineStatus->codename_c == '订单创建') $status = '未入库';
|
|
|
- if ($storeItem->updated_at != $asnDetail->edittime) {
|
|
|
+ if ($asnDetail['lineStatus'] && $asnDetail['lineStatus']['codename_c'] == '完全收货') $status = '已入库';
|
|
|
+ if ($asnDetail['lineStatus'] && $asnDetail['lineStatus']['codename_c'] == '订单创建') $status = '未入库';
|
|
|
+ if ($storeItem->updated_at != $asnDetail['edittime']) {
|
|
|
$updateParams[] = [
|
|
|
'id' => $storeItem->id,
|
|
|
'store_id' => $storeItem->store->id,
|
|
|
- 'asn_line_code' => (string)$asnDetail->asnlineno,
|
|
|
- 'name' => $asnDetail->skudescrc,
|
|
|
- 'sku' => $asnDetail->sku,
|
|
|
- 'amount' => $asnDetail->receivedqty ?? 0,
|
|
|
- 'quality' => $asnDetail->qualityStatus ?$asnDetail->qualityStatus->codename_c :' ',
|
|
|
- 'status' => $status ? $status : $asnDetail->lineStatus->codename_c,
|
|
|
- 'created_at' => $asnDetail->addtime ?? null,
|
|
|
- 'updated_at' => $asnDetail->edittime ?? null,
|
|
|
+ 'asn_line_code' => (string)$asnDetail['asnlineno'],
|
|
|
+ 'name' => $asnDetail['skudescrc'],
|
|
|
+ 'sku' => $asnDetail['sku'],
|
|
|
+ 'barcode' => $asnDetail['basSku'] ? $asnDetail['basSku']['alternate_sku1'] : '',
|
|
|
+ 'amount' => $asnDetail['receivedqty'] ?? 0,
|
|
|
+ 'quality' => $asnDetail['qualityStatus'] ? $asnDetail['qualityStatus']['codename_c'] : '',
|
|
|
+ 'status' => $status ? $status : $asnDetail['lineStatus']['codename_c'],
|
|
|
+ 'created_at' => $asnDetail['addtime'] ?? null,
|
|
|
+ 'updated_at' => $asnDetail['edittime'],
|
|
|
];
|
|
|
}
|
|
|
}
|