diff --git a/app/Models/PackingList.php b/app/Models/PackingList.php index 4f61c4e4..fc775ba2 100644 --- a/app/Models/PackingList.php +++ b/app/Models/PackingList.php @@ -4,25 +4,15 @@ namespace App\Models; use App\Classes\General\Interfaces\Steppable; use App\Classes\General\Interfaces\Transportable; -use App\Classes\General\Interfaces\Packable; -use App\Classes\ValueObjects\Constants\ApprovalStatus; -use App\Classes\ValueObjects\Constants\RoleTypes; -use Carbon\Carbon; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; -use Illuminate\Database\Eloquent\Relations\HasManyThrough; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\SoftDeletes; -use Staudenmeir\EloquentHasManyDeep\HasManyDeep; -use Staudenmeir\EloquentHasManyDeep\HasRelationships; -use Staudenmeir\EloquentHasManyDeep\HasTableAlias; -class PackingList extends AbstractModel implements Transportable, Steppable, Packable +class PackingList extends AbstractModel implements Transportable, Steppable { - use HasTableAlias; - use HasRelationships; use SoftDeletes; protected $table = 'packing_lists'; @@ -58,15 +48,6 @@ class PackingList extends AbstractModel implements Transportable, Steppable, Pac return $this->hasMany(Package::class, 'packing_list_id'); } - /** - * @return HasManyDeep - */ - public function replicatedPackages(): HasManyDeep - { -// return $this->hasManyDeep(Package::class, [PackingList::class.' as replica', PackingList::class], [['owner_type', 'owner_id'], ['owner_type', 'owner_id'], 'packing_list_id'], [null, null, 'id']); - return $this->hasManyDeepFromRelations($this->packingLists(), (new PackingList)->setAlias('replica')->packages()); - } - /** * @return morphMany */ @@ -90,50 +71,4 @@ class PackingList extends AbstractModel implements Transportable, Steppable, Pac { return $this->BelongsToMany(PackingList::class, 'packing_list_owner', 'owner_packing_list_id', 'packing_list_id'); } - - /** - * @return MorphMany - */ - public function packingLists(): morphMany - { - return $this->morphMany(PackingList::class, 'owner'); - } - - /** - * @return hasManyDeep - */ - public function shippingTransports(): hasManyDeep - { - return $this->hasManyDeep(Transport::class, [ContainerPackingList::class, Container::class], ['packing_list_id', 'id', ['owner_type', 'owner_id']], ['id', 'container_id', null]); - } - - /** - * @return hasManyDeep - */ - public function shippingSchedules(): hasManyDeep - { - return $this->hasManyDeep(Schedule::class, [ContainerPackingList::class, Container::class, Transport::class], ['packing_list_id', 'id', ['owner_type', 'owner_id'], ['owner_type', 'owner_id']], ['id', 'container_id', null, null]); - } - - - /** - * @return hasManyDeep - */ - public function deliverySchedules(): hasManyDeep - { - return $this->hasManyDeep(Schedule::class, [Transport::class], [['owner_type', 'owner_id'], ['owner_type', 'owner_id']], [null, null]); - } - - /** - * @param $query - * @return mixed - */ - public function scopeShipping($query){ - return $query->whereHas('shippingSchedules', function($schedule){ - return $schedule->where('etd', '<', Carbon::now())->where('schedules.status', ApprovalStatus::APPROVED); - })->whereDoesntHave('shippingTransports', function($transport){ - return $transport->where('transport_arrangements.status', ApprovalStatus::COMPLETED); - }); - } - }