mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-09-01 10:54:31 +00:00
86 lines
2.6 KiB
PHP
86 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Classes\Modules\Exports\Services;
|
|
|
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
use App\Models\PackingList;
|
|
use Maatwebsite\Excel\Concerns\Exportable;
|
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
|
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
|
|
{
|
|
|
|
use Exportable;
|
|
|
|
public function headings(): array
|
|
{
|
|
return [
|
|
'ORDER NUMBER',
|
|
'Marking',
|
|
'Warehouse',
|
|
'Cbm',
|
|
'Description',
|
|
'quantity',
|
|
'Received Date',
|
|
'Remarks'
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @return \Illuminate\Support\Collection|mixed
|
|
*/
|
|
public function collection()
|
|
{
|
|
$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;
|
|
}
|
|
|
|
/**
|
|
* @param ReturnArray $returnArray
|
|
*
|
|
* @return array
|
|
*/
|
|
public function map($package): array
|
|
{
|
|
$packingList = $package->packingList;
|
|
$order = $packingList->owner;
|
|
|
|
$connection = $order->companyModule()->first()->inviters()->withPivot('invitee_reference')->first();
|
|
$marking = $connection ? $connection->pivot->invitee_reference:'';
|
|
|
|
$warehouse = $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee;
|
|
|
|
$cbm = (($package->width / 100) * ($package->height / 100) * ($package->length / 100)) * $package->quantity;
|
|
|
|
$arrival_date = $packingList->transports()->first()->drop_date->format('d-m-Y');
|
|
|
|
return [
|
|
$packingList->owner->reference,
|
|
$marking,
|
|
$warehouse->reference,
|
|
$cbm,
|
|
$package->description,
|
|
$package->quantity,
|
|
$arrival_date,
|
|
''
|
|
];
|
|
}
|
|
} |