feat: update variant and price deletion logic to preserve media collections in ProductService and RawMaterialService
This commit is contained in:
parent
50ece97933
commit
8ea9378c78
@ -234,12 +234,11 @@ public function update(Product $product, array $data): Product
|
|||||||
->filter()
|
->filter()
|
||||||
->toArray();
|
->toArray();
|
||||||
|
|
||||||
// Delete removed variants (cascade prices + media)
|
// Delete removed variants (cascade prices only, preserve media)
|
||||||
$product->productVariants()
|
$product->productVariants()
|
||||||
->whereNotIn('id', $existingVariantIds)
|
->whereNotIn('id', $existingVariantIds)
|
||||||
->each(function (ProductVariant $variant) {
|
->each(function (ProductVariant $variant) {
|
||||||
$variant->productPrices()->delete();
|
$variant->productPrices()->delete();
|
||||||
$variant->clearMediaCollection('images');
|
|
||||||
$variant->delete();
|
$variant->delete();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -185,7 +185,6 @@ public function update(RawMaterial $rawMaterial, array $data): RawMaterial
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$price->clearMediaCollection('images');
|
|
||||||
$price->delete();
|
$price->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -280,7 +279,6 @@ public function destroy(RawMaterial $rawMaterial): bool
|
|||||||
|
|
||||||
$result = DB::transaction(function () use ($rawMaterial) {
|
$result = DB::transaction(function () use ($rawMaterial) {
|
||||||
$rawMaterial->rawMaterialPrices->each(function (RawMaterialPrice $price) {
|
$rawMaterial->rawMaterialPrices->each(function (RawMaterialPrice $price) {
|
||||||
$price->clearMediaCollection('images');
|
|
||||||
$price->delete();
|
$price->delete();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user