![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/app/ |
<?php namespace App; use App\Events\TransactionPaymentDeleted; use App\Events\TransactionPaymentUpdated; use Illuminate\Database\Eloquent\Model; class TransactionPayment extends Model { /** * The attributes that aren't mass assignable. * * @var array */ protected $guarded = ['id']; /** * Get the phone record associated with the user. */ public function payment_account() { return $this->belongsTo(\App\Account::class, 'account_id'); } /** * Get the transaction related to this payment. */ public function transaction() { return $this->belongsTo(\App\Transaction::class, 'transaction_id'); } /** * Get the user. */ public function created_user() { return $this->belongsTo(\App\User::class, 'created_by'); } /** * Get child payments */ public function child_payments() { return $this->hasMany(\App\TransactionPayment::class, 'parent_id'); } /** * Retrieves documents path if exists */ public function getDocumentPathAttribute() { $path = ! empty($this->document) ? asset('/uploads/documents/'.$this->document) : null; return $path; } /** * Removes timestamp from document name */ public function getDocumentNameAttribute() { $document_name = ! empty(explode('_', $this->document, 2)[1]) ? explode('_', $this->document, 2)[1] : $this->document; return $document_name; } public static function deletePayment($payment) { //Update parent payment if exists if (! empty($payment->parent_id)) { $parent_payment = TransactionPayment::find($payment->parent_id); $parent_payment->amount -= $payment->amount; if ($parent_payment->amount <= 0) { $parent_payment->delete(); event(new TransactionPaymentDeleted($parent_payment)); } else { $parent_payment->save(); //Add event to update parent payment account transaction event(new TransactionPaymentUpdated($parent_payment, null)); } } $payment->delete(); $transactionUtil = new \App\Utils\TransactionUtil(); if (! empty($payment->transaction_id)) { //update payment status $transaction = $payment->load('transaction')->transaction; $transaction_before = $transaction->replicate(); $payment_status = $transactionUtil->updatePaymentStatus($payment->transaction_id); $transaction->payment_status = $payment_status; $transactionUtil->activityLog($transaction, 'payment_edited', $transaction_before); } $log_properities = [ 'id' => $payment->id, 'ref_no' => $payment->payment_ref_no, ]; $transactionUtil->activityLog($payment, 'payment_deleted', null, $log_properities); //Add event to delete account transaction event(new TransactionPaymentDeleted($payment)); } public function denominations() { return $this->morphMany(\App\CashDenomination::class, 'model'); } }