Files
shipping-portal/app/Models/TransactionDetail.php
T

78 lines
2.8 KiB
PHP

<?php
namespace App\Models;
use Eloquent;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use Spatie\Activitylog\Models\Activity;
/**
* App\Models\TransactionDetail
*
* @property int $id
* @property int $transaction_id
* @property string $reference
* @property string $name
* @property string $quantity
* @property string $price
* @property string $amount
* @property string|null $deleted_at
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
* @property-read Collection|Activity[] $activities
* @property-read int|null $activities_count
* @property-read Model|Eloquent $causer
* @property-read Model|Eloquent $subject
* @property-read Model|Eloquent $target
* @property-read Transaction $transaction
* @method static Builder|TransactionDetail newModelQuery()
* @method static Builder|TransactionDetail newQuery()
* @method static Builder|TransactionDetail query()
* @method static Builder|TransactionDetail whereAmount($value)
* @method static Builder|TransactionDetail whereCreatedAt($value)
* @method static Builder|TransactionDetail whereDeletedAt($value)
* @method static Builder|TransactionDetail whereId($value)
* @method static Builder|TransactionDetail whereName($value)
* @method static Builder|TransactionDetail wherePrice($value)
* @method static Builder|TransactionDetail whereQuantity($value)
* @method static Builder|TransactionDetail whereReference($value)
* @method static Builder|TransactionDetail whereTransactionId($value)
* @method static Builder|TransactionDetail whereUpdatedAt($value)
* @mixin Eloquent
*/
class TransactionDetail extends AbstractModel
{
protected $table = 'transaction_details';
/**
* @return BelongsTo
*/
public function transaction(): BelongsTo
{
return $this->BelongsTo( Transaction::class, 'transaction_id', 'id');
}
public function convert_original_price()
{
if($this->transaction()->first()->booking()->first()->fix_currency_id !== 1) {
$currency_rate = $this->transaction()->first()->currency()->first()->rates()->where('payment_method_type', $this->transaction()->first()->payment_method)->first();
return number_format($this->price / $currency_rate->selling, 2);
}
return $this->price;
}
public function convert_original_amount()
{
if($this->transaction()->first()->booking()->first()->fix_currency_id !== 1) {
$currency_rate = $this->transaction()->first()->currency()->first()->rates()->where('payment_method_type', $this->transaction()->first()->payment_method)->first();
return number_format($this->amount / $currency_rate->selling, 2);
}
return $this->amount;
}
}