Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
PurchaseOrderUpdateItemService
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 update
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Domain\PurchaseOrder\Services;
4
5use App\Events\ServiceProcessed;
6use App\Models\Integration\Integration;
7use App\Models\PurchaseOrder\PurchaseOrderItem;
8use App\Models\User;
9use Domain\Integration\Services\IntegrationUpdateService;
10use Domain\PurchaseOrder\DTOs\UpdatePurchaseOrderItemDTO;
11
12readonly class PurchaseOrderUpdateItemService
13{
14    public function update(UpdatePurchaseOrderItemDTO $updatePurchaseOrderItemDTO, PurchaseOrderItem $purchaseOrderItem, User $user): PurchaseOrderItem
15    {
16        $purchaseOrderItem->fill($updatePurchaseOrderItemDTO->toArray());
17        $purchaseOrderItem->save();
18
19        $integration = Integration::query()
20            ->where('integrable_type', PurchaseOrderItem::class)
21            ->where('integrable_id', $purchaseOrderItem->getKey())
22            ->first();
23
24        (new IntegrationUpdateService())->update($updatePurchaseOrderItemDTO->integration, $integration, $user);
25
26        ServiceProcessed::dispatch(self::class, $user);
27        return $purchaseOrderItem;
28    }
29}