Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
PickedTransferTaskProductStoreService
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 store
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Domain\TransferTask\Services;
4
5use App\Events\ServiceProcessed;
6use App\Models\Item\Item;
7use App\Models\TransferTask\PickedTransferTaskProduct;
8use App\Models\User;
9use Domain\TransferTask\DTOs\TransferTaskPickProductDTO;
10
11class PickedTransferTaskProductStoreService
12{
13    /**
14     * @param TransferTaskPickProductDTO $transferTaskPickProductDTO
15     * @param Item $item
16     * @param User $user
17     * @return PickedTransferTaskProduct
18     */
19    public function store(TransferTaskPickProductDTO $transferTaskPickProductDTO, Item $item, User $user, string $status = 'transfer'): PickedTransferTaskProduct
20    {
21        $pickedTransferTaskProduct = new PickedTransferTaskProduct();
22        $pickedTransferTaskProduct->fill($transferTaskPickProductDTO->toArray());
23        $pickedTransferTaskProduct->item()->associate($item);
24        $pickedTransferTaskProduct->transferTaskProduct()->associate($transferTaskPickProductDTO->transferTaskProduct);
25        $pickedTransferTaskProduct->{$status}();
26        $pickedTransferTaskProduct->save();
27
28        ServiceProcessed::dispatch(self::class, $user);
29        return $pickedTransferTaskProduct;
30    }
31}