Skip to content

Commit

Permalink
Merge pull request #958 from bakaphp/warehouse-type-update
Browse files Browse the repository at this point in the history
[Update] Total Products
  • Loading branch information
arfenis committed Feb 19, 2024
2 parents 6917205 + 46be135 commit 48fcf7f
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
6 changes: 6 additions & 0 deletions src/Domains/Inventory/Variants/Models/VariantsWarehouses.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,10 @@ public function getStatusHistory(): array

return $statusHistories;
}

public function getTotalProducts()
{
$total = VariantsWarehouses::where('is_deleted', 0)->sum('quantity');
return $total;
}
}
7 changes: 5 additions & 2 deletions src/Domains/Inventory/Warehouses/Models/Warehouses.php
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,12 @@ public function isVariantPublished(): ?Attribute
public function getTotalProducts(): int
{
if (! $totalProducts = $this->get('total_products')) {
$this->set('total_products', $this->variantsWarehouses()->count());
$this->set(
'total_products',
$this->variantsWarehouses()->first()->getTotalProducts()
);
return $this->get('total_products');
}
return $totalProducts;
return (int) $totalProducts;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,26 @@ public function saved(VariantsWarehouses $variantWarehouse): void
))->execute();
}

if ($variantWarehouse->wasChanged('quantity')) {
$variantWarehouse->warehouse->set(
'total_products',
$variantWarehouse->getTotalProducts()
);
}

if ($variantWarehouse->wasChanged('status_id')) {
(new CreateStatusHistoryAction(
StatusRepository::getById($variantWarehouse->status_id),
$variantWarehouse
))->execute();
}
}

public function created(VariantsWarehouses $variantWarehouse): void
{
$variantWarehouse->warehouse->set(
'total_products',
$variantWarehouse->getTotalProducts()
);
}
}

0 comments on commit 48fcf7f

Please sign in to comment.