refactor: streamline raw material update process by consolidating price handling into payload application, improving code clarity and maintainability
This commit is contained in:
parent
0489badf03
commit
2e578cd976
@ -134,18 +134,7 @@ public function update(RawMaterial $rawMaterial, array $validated, User $user):
|
||||
$this->runInTransaction(
|
||||
function () use ($validated, $rawMaterial): void {
|
||||
$payload = $this->enrichPayload($this->buildPayloadFromValidated($validated));
|
||||
$this->applyPayloadToRawMaterial($rawMaterial, $payload);
|
||||
|
||||
foreach ($validated['prices'] as $index => $priceData) {
|
||||
if (! empty($priceData['id'])) {
|
||||
$price = $rawMaterial->prices()->find($priceData['id']);
|
||||
if ($price) {
|
||||
$this->syncPriceImages($price, $priceData, $index);
|
||||
}
|
||||
} else {
|
||||
$this->createPrice($rawMaterial, $priceData, $index);
|
||||
}
|
||||
}
|
||||
$this->applyPayloadToRawMaterial($rawMaterial, $payload, originalPrices: $validated['prices'] ?? []);
|
||||
},
|
||||
'Gagal memperbarui bahan baku',
|
||||
);
|
||||
@ -316,6 +305,7 @@ private function applyPayloadToRawMaterial(
|
||||
RawMaterial $rawMaterial,
|
||||
array $payload,
|
||||
?OwnerVerificationRequest $verificationRequest = null,
|
||||
array $originalPrices = [],
|
||||
): void {
|
||||
$rawMaterial->update([
|
||||
'name' => $payload['name'],
|
||||
@ -353,6 +343,8 @@ private function applyPayloadToRawMaterial(
|
||||
|
||||
if ($verificationRequest !== null) {
|
||||
$this->applyPriceImageChanges($verificationRequest, $price, $priceData, (int) $index);
|
||||
} elseif (isset($originalPrices[$index])) {
|
||||
$this->syncPriceImages($price, $originalPrices[$index], $index);
|
||||
}
|
||||
|
||||
continue;
|
||||
@ -366,6 +358,8 @@ private function applyPayloadToRawMaterial(
|
||||
|
||||
if ($verificationRequest !== null) {
|
||||
$this->copyRequestPriceImages($verificationRequest, (int) $index, $price);
|
||||
} elseif (isset($originalPrices[$index])) {
|
||||
$this->syncPriceImages($price, $originalPrices[$index], $index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user