transaction bill

This commit is contained in:
glovetleong
2022-01-13 22:49:02 +08:00
parent 70adbae1d4
commit f56369d707
6 changed files with 63 additions and 9 deletions
@@ -91,6 +91,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
public function logic(Request $request) : JsonResponse
{
$supplier = $this->fetchesCompany->execute(['id' => $request->route('id')]);
$rate = $request->input('rate');
@@ -111,7 +112,7 @@ class CreateSupplierTransactionLogic extends AbstractControllerLogic
$payment->original_amount * (1 / $rate), $payment->original_amount, 1, $payment->original_currency_id,
$rate, 0, 0, null, ApprovalStatus::PENDING_VERIFICATION);
$transactions[] = $this->createsTransaction->execute($payment->booking, $object);
$transactions[] = $this->createsTransaction->execute($payment, $object);
}
if(!count($transactions)) return $this->response([]);
+1 -1
View File
@@ -35,7 +35,7 @@ class TransactionResource extends JsonResource
'status' => (int) $this->status,
'details' => TransactionDetailResource::collection($this->transactionDetails),
'documents' => new DocumentResource($this->documents()->first()),
'customer_booking' => new TransactionResource($this->when((int) $this->type === TransactionType::BILL, $this->booking->transactions()->payments()->complete()->where('original_amount', '=', $this->original_amount)->where('id', '<', $this->id)->orderByDesc('id')->first())),
'customer_booking' => new TransactionResource($this->when((int) $this->type === TransactionType::BILL, $this->owner)),
'expires_on' => Carbon::parse($this->expires_on)->format('d-m-Y h:i:s A'),
'updated_at' => Carbon::parse($this->updated_at)->format('d-m-Y h:i:s A')
];
+4 -2
View File
@@ -96,8 +96,10 @@ class Booking extends AbstractModel implements Documentable, Transactionable
protected static function booted()
{
if (auth()->user()->type === RoleTypes::USER) {
static::addGlobalScope(new CustomerBookingsScope);
if (auth()->user()) {
if (auth()->user()->type === RoleTypes::USER) {
static::addGlobalScope(new CustomerBookingsScope);
}
}
}
+10 -1
View File
@@ -3,6 +3,7 @@
namespace App\Models;
use App\Classes\General\Interfaces\Documentable;
use App\Classes\General\Interfaces\Transactionable;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\TransactionType;
use Carbon\Carbon;
@@ -16,7 +17,7 @@ use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
class Transaction extends AbstractModel implements Documentable
class Transaction extends AbstractModel implements Documentable, Transactionable
{
use SoftDeletes;
@@ -51,6 +52,14 @@ class Transaction extends AbstractModel implements Documentable
return $this->BelongsTo(Wallet::class, 'owner_id', 'id');
}
/**
* @return MorphMany
*/
public function transactions(): MorphMany
{
return $this->MorphMany(Transaction::class, 'owner');
}
/**
* @return BelongsTo
*/
@@ -0,0 +1,42 @@
<?php
use App\Models\Transaction;
use App\Classes\ValueObjects\Constants\TransactionType;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class UpdateTransactionBillOwnerSeeder extends Seeder
{
/**
* StatesTableSeeder constructor.
* @param FetchesCountry $fetchesCountry
*/
public function __construct()
{
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::beginTransaction();
$transaction = Transaction::where('type', TransactionType::BILL)->get();
foreach ($transaction as $key => $row) {
$booking = $row->booking()->first();
$payment_trsanction = $row->booking()->first()->transactions()->payments()->complete()->where('original_amount', '=', $row->original_amount)->where('id', '<', $row->id)->orderByDesc('id')->first();
$row->owner_type = 'App\Models\Transaction';
$row->owner_id = $payment_trsanction->id;
$row->update();
}
DB::commit();
}
}
@@ -33,12 +33,12 @@
</tr>
@foreach($transactions as $transaction)
<tr style="margin-bottom: 10px;">
<td>{{$transaction->booking->marking}}</td>
<td>{{$transaction->booking->company->reference}}</td>
<td>{{$transaction->owner()->first()->booking->marking}}</td>
<td>{{$transaction->owner()->first()->booking->company->reference}}</td>
<td>{{$transaction->currency_rate}}</td>
<td>{{$transaction->currency->short_code}} {{number_format((float)$transaction->amount, 2, '.', '')}}</td>
<td>Account Holder Name: {{$transaction->booking->bank->holder_name}}<br>{{$transaction->booking->bank->bank_name}}: {{$transaction->booking->bank->account_no}}
<br>Branch: {{$transaction->booking->bank->bank_branch}}<br>Bank in Amount: {{$transaction->original_currency->short_code}} {{$transaction->original_amount}}</td>
<td>Account Holder Name: {{$transaction->owner()->first()->booking->bank->holder_name}}<br>{{$transaction->owner()->first()->booking->bank->bank_name}}: {{$transaction->owner()->first()->booking->bank->account_no}}
<br>Branch: {{$transaction->owner()->first()->booking->bank->bank_branch}}<br>Bank in Amount: {{$transaction->original_currency->short_code}} {{$transaction->original_amount}}</td>
</tr>
@endforeach
</tbody>