Skip to content

Commit

Permalink
Merge pull request #745 from bakaphp/refact-import-channel-sync
Browse files Browse the repository at this point in the history
Merge pull request #740 from bakaphp/refact-search-default-price
  • Loading branch information
kaioken authored Dec 22, 2023
2 parents 464a0c2 + 5db5666 commit fb5d4f0
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 15 deletions.
4 changes: 3 additions & 1 deletion app/GraphQL/Inventory/Mutations/Variants/Variants.php
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,9 @@ public function addToWarehouse(mixed $root, array $req): VariantModel
}
$variantWarehouses = VariantsWarehouses::viaRequest($req['input']);

return (new AddToWarehouse($variant, $warehouse, $variantWarehouses))->execute();
(new AddToWarehouse($variant, $warehouse, $variantWarehouses))->execute();

return $variant;
}

/**
Expand Down
31 changes: 20 additions & 11 deletions src/Domains/Inventory/Importer/Actions/ProductImporterAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
use Kanvas\Inventory\Variants\DataTransferObject\VariantsWarehouses;
use Kanvas\Inventory\Variants\Models\Variants as VariantsModel;
use Kanvas\Inventory\Variants\Models\VariantsWarehouses as ModelsVariantsWarehouses;
use Kanvas\Inventory\Variants\Services\VariantService;
use Kanvas\Inventory\Warehouses\Actions\CreateWarehouseAction;
use Kanvas\Inventory\Warehouses\DataTransferObject\Warehouses;
use Throwable;
Expand Down Expand Up @@ -371,7 +372,7 @@ public function addVariantsToLocation(VariantsModel $variantModel): void

if (! empty($matchingVariantInfo)) {
// Since array_filter preserves keys, use array_values to reset them
$variantData = $matchingVariantInfo[0];
$variantData = current($matchingVariantInfo);

if (! empty($variantData['warehouse'])) {
$variantData = [
Expand All @@ -394,19 +395,27 @@ public function addVariantsToLocation(VariantsModel $variantModel): void
'is_published' => $this->importedProduct->isPublished,
]);

(new AddToWarehouseAction(
$variantModel,
$warehouse,
VariantsWarehouses::from([
$variantWarehouses = ModelsVariantsWarehouses::where('products_variants_id', $variantModel->getId())
->where('warehouses_id', $warehouse->getId())
->first();

if (! $variantWarehouses) {
$variantWarehouses = (new AddToWarehouseAction(
$variantModel,
$warehouse,
VariantsWarehouses::from([
'quantity' => $variantData['quantity'] ?? 1,
'price' => $variantData['price'],
'sku' => $variantModel->sku,
]),
))->execute();
} else {
VariantService::updateWarehouseVariant($variantModel, $warehouse, [
'quantity' => $variantData['quantity'] ?? 1,
'price' => $variantData['price'],
'sku' => $variantModel->sku,
]),
))->execute();

$variantWarehouses = ModelsVariantsWarehouses::where('products_variants_id', $variantModel->getId())
->where('warehouses_id', $warehouse->getId())
->firstOrFail();
]);
}

(new AddVariantToChannelAction(
$variantWarehouses,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ public function __construct(
* execute.
* @psalm-suppress ArgumentTypeCoercion
*/
public function execute(): Variants
public function execute(): VariantsWarehouses
{
$search = [
'products_variants_id' => $this->variants->getId(),
'warehouses_id' => $this->warehouses->getId(),
];

$variantsWarehouses = VariantsWarehouses::updateOrCreate(
$variantsWarehouses = VariantsWarehouses::firstOrCreate(
$search,
[
'quantity' => $this->variantsWarehousesDto->quantity ?? 0,
Expand All @@ -63,6 +63,6 @@ public function execute(): Variants
))->execute();
}

return $this->variants;
return $variantsWarehouses;
}
}

0 comments on commit fb5d4f0

Please sign in to comment.