<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use App\Traits\NextKey; class Payment extends Model { use NextKey; const CREATED_AT = 'date_orig'; const UPDATED_AT = 'date_last'; const RECORD_ID = 'payment'; public $incrementing = FALSE; protected $table = 'ab_payment'; protected $dates = ['date_payment']; protected $dateFormat = 'U'; protected $with = ['account.country.currency','items']; protected $appends = [ 'date_paid', 'payment_id_url', 'total', ]; protected $visible = [ 'date_paid', 'id', 'payment_id_url', 'total', ]; public function account() { return $this->belongsTo(Account::class); } public function items() { return $this->hasMany(PaymentItem::class); } public function getDatePaidAttribute() { return $this->date_payment->format('Y-m-d'); } public function getPaymentIdAttribute() { return sprintf('%02s-%04s+%05s',$this->site_id,$this->account_id,$this->id); } public function getPaymentIdUrlAttribute() { return sprintf('<a href="/u/payment/view/%s">%s</a>',$this->id,$this->payment_id); } public function getTotalAttribute() { return sprintf('%3.'.$this->currency()->rounding.'f',$this->total_amt); } public function currency() { return $this->account->country->currency; } }