Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
62.50% covered (warning)
62.50%
5 / 8
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
StockIOProductSkipProductService
62.50% covered (warning)
62.50%
5 / 8
0.00% covered (danger)
0.00%
0 / 1
2.21
0.00% covered (danger)
0.00%
0 / 1
 skip
62.50% covered (warning)
62.50%
5 / 8
0.00% covered (danger)
0.00%
0 / 1
2.21
1<?php
2
3namespace Domain\StockIO\Services;
4
5use App\Events\ServiceProcessed;
6use App\Models\StockIO\StockIOProduct;
7use App\Models\User;
8
9use Domain\PickingOrder\Services\PickingOrderStartService;
10use Domain\PickingOrder\Enums\PickingOrderStatusEnum;
11
12readonly class StockIOProductSkipProductService
13{
14    public function skip(StockIOProduct $stockOutputProduct, User $user): void
15    {
16        $pickingOrder = $stockOutputProduct->pickingOrderProduct->pickingOrder;
17
18        if ($pickingOrder->isPaused()) {
19            (new PickingOrderStartService())->resumeCurrentPause($pickingOrder);
20            $pickingOrder->status = PickingOrderStatusEnum::STARTED;
21            $pickingOrder->save();
22        }
23
24        $stockOutputProduct->setAttribute('skipped', true);
25        $stockOutputProduct->touch();
26
27        ServiceProcessed::dispatch(self::class, $user);
28    }
29}