update replica packages logic and over weight price announcement

This commit is contained in:
omair saleh
2022-01-21 16:46:27 +08:00
parent d4f1184779
commit 611adf96e7
2 changed files with 18 additions and 7 deletions
+16 -2
View File
@@ -2,24 +2,28 @@
namespace App\Models;
use App\Classes\General\Interfaces\Packable;
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
{
use SoftDeletes;
use HasTableAlias;
use HasRelationships;
use SoftDeletes;
protected $table = 'packing_lists';
@@ -54,6 +58,15 @@ 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
*/
@@ -122,4 +135,5 @@ class PackingList extends AbstractModel implements Transportable, Steppable, Pac
return $transport->where('transport_arrangements.status', ApprovalStatus::COMPLETED);
});
}
}