diff --git a/app/Classes/Modules/Exports/Services/ExportsArrivedParcel.php b/app/Classes/Modules/Exports/Services/ExportsArrivedParcel.php index 66934840..72725cfb 100644 --- a/app/Classes/Modules/Exports/Services/ExportsArrivedParcel.php +++ b/app/Classes/Modules/Exports/Services/ExportsArrivedParcel.php @@ -2,19 +2,17 @@ namespace App\Classes\Modules\Exports\Services; -use App\Classes\ValueObjects\Constants\ApprovalStatus; +use App\Models\Order; use App\Models\PackingList; use Maatwebsite\Excel\Concerns\Exportable; -use Maatwebsite\Excel\Concerns\FromCollection; +use Maatwebsite\Excel\Concerns\FromQuery; use Maatwebsite\Excel\Concerns\WithHeadingRow; use Maatwebsite\Excel\Concerns\WithMapping; use Maatwebsite\Excel\Concerns\WithHeadings; use Maatwebsite\Excel\Concerns\ShouldAutoSize; -use Carbon\Carbon; use App\Classes\ValueObjects\Constants\OrderRoleTypes; -use App\Classes\ValueObjects\Constants\RoleTypes; -class ExportsArrivedParcel implements WithHeadings, WithHeadingRow, WithMapping, ShouldAutoSize, FromCollection +class ExportsArrivedParcel implements WithHeadings, WithHeadingRow, WithMapping, ShouldAutoSize, FromQuery { use Exportable; @@ -36,31 +34,17 @@ class ExportsArrivedParcel implements WithHeadings, WithHeadingRow, WithMapping, /** * @return \Illuminate\Support\Collection|mixed */ - public function collection() + public function query() { - $returnArray = collect(); - - $packingLists = PackingList::where('type', '=', 1)->where('status', '=', 2)->get(); - $exceptionUsers = in_array(Auth()->user()->type, [RoleTypes::SHADOW_ADMIN, RoleTypes::SUPER_ADMIN]); - - foreach($packingLists as $packingList){ - $packages = !$packingList->packingLists()->exists() || $exceptionUsers ? $packingList->packages : $packingList->packingLists->first()->packages; - foreach ($packages as $package) { - $returnArray->push($package); - } - } - - return $returnArray; + return PackingList::where('type', '=', 1)->where('status', '=', 2)->where('owner_type', Order::class); } /** - * @param ReturnArray $returnArray - * + * @param $packingList * @return array */ - public function map($package): array + public function map($packingList): array { - $packingList = $package->packingList; $order = $packingList->owner; $connection = $order->companyModule()->first()->inviters()->withPivot('invitee_reference')->first(); @@ -68,7 +52,9 @@ class ExportsArrivedParcel implements WithHeadings, WithHeadingRow, WithMapping, $warehouse = $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee; - $cbm = (($package->width / 100) * ($package->height / 100) * ($package->length / 100)) * $package->quantity; + $cbm = $packingList->packages->sum(function($package){ + return (($package->width / 100) * ($package->height / 100) * ($package->length / 100)) * $package->quantity; + }); $arrival_date = $packingList->transports()->first()->drop_date->format('d-m-Y'); @@ -77,8 +63,8 @@ class ExportsArrivedParcel implements WithHeadings, WithHeadingRow, WithMapping, $marking, $warehouse->reference, $cbm, - $package->description, - $package->quantity, + $packingList->packages->implode('description', ', '), + $packingList->packages->sum('quantity'), $arrival_date, '' ];