Recipient Bank Details to follow payment overriding the default attached to Booking

This commit is contained in:
Dillon Ngo
2024-08-07 06:46:17 +08:00
parent e80ad9a6ec
commit 3bd708ed0e
36 changed files with 1193 additions and 116 deletions
+23 -1
View File
@@ -3,6 +3,7 @@
namespace App\Models;
use App\Classes\General\Interfaces\Documentable;
use App\Classes\General\Interfaces\KeyValueInterface;
use App\Classes\General\Interfaces\Remarkable;
use App\Classes\General\Interfaces\Transactionable;
use App\Classes\General\Interfaces\Voucherifiable;
@@ -22,7 +23,7 @@ use Staudenmeir\EloquentHasManyDeep\HasTableAlias;
use App\Models\StatementTransactionOwner;
class Transaction extends AbstractModel implements Documentable, Transactionable, Voucherifiable, Remarkable
class Transaction extends AbstractModel implements Documentable, Transactionable, Voucherifiable, Remarkable, KeyValueInterface
{
use HasTableAlias;
use SoftDeletes;
@@ -268,4 +269,25 @@ class Transaction extends AbstractModel implements Documentable, Transactionable
return $this->morphMany(Remark::class, 'owner');
}
/**
* @return MorphMany
*/
public function attributes(): MorphMany
{
return $this->morphMany(KeyValuePair::class, 'owner');
}
/**
*
* @return Model|null
*/
public function getBankAttribute()
{
$keyValuePairs = $this->attributes()->where('key', 'App\Models\Bank')->latest()->first();
if($keyValuePairs){
$bank = Bank::where('id', $keyValuePairs->value)->first();
return $bank;
}
return null;
}
}