Samson Mutunga 2 天之前
父节点
当前提交
01dbda1bfd

+ 24 - 0
app/Models/LedgerTransaction.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use App\Models\BaseModel;
+
+class LedgerTransaction extends BaseModel
+{
+    use HasFactory;
+
+    protected $table = 'ledger_transaction';
+
+    public function user()
+    {
+        return $this->hasOne(User::class, 'id', 'user_id');
+    }
+
+    public function storeOrder()
+    {
+        return $this->hasMany(StoreOrder::class, 'id', 'store_order_id');
+    }
+}

+ 16 - 0
app/Models/StoreOrder.php

@@ -31,6 +31,22 @@ class StoreOrder extends BaseModel
         return $orders;
     }
 
+    public function ledgerTransactions()
+    {
+        return $this->hasMany(LedgerTransaction::class, 'store_order_id', 'id');
+    }
+
+    public function amountDeductedFromAccountBalance(){
+        $ledgerTransactions = $this->ledgerTransactions;
+        $total = 0;
+        foreach($ledgerTransactions as $trx){
+            if($trx->system_memo === 'ORDER: USING BALANCE' && $trx->plus_or_minus === 'MINUS'){
+                $total = $total + floatval($trx->amount);
+            }
+        }
+        return $total;
+    }
+
 
     public function paymentMethod(){
         return $this->hasOne(PaymentMethod::class, 'id', 'payment_method_id');

+ 37 - 0
resources/views/app/my-account/admin/orders/partials/financial-transactions.blade.php

@@ -0,0 +1,37 @@
+<h6 class="fw-bold">Financial Transactions</h6>
+<table class="table table-sm table-hover table-striped table-bordered mb-0">
+    <thead class="bg-warning bg-opacity-10">
+        <tr>
+            <th>Date</th>
+            <th>Charge/Refund</th>
+            <th>Amount</th>
+            <th>Payment Method</th>
+            <th></th>
+        </tr>
+    </thead>
+    <tbody>
+        @foreach ($order->financialTransactions as $transaction)
+            <tr>
+                <td>{{ friendly_date($transaction->created_at) }}</td>
+                <td>{{ $transaction->charge_or_refund }}
+                    @if ($transaction->requires_stripe_confirmation)
+                        @if ($transaction->is_stripe_confirmation_done)
+                            <span class="text-success">Completed</span>
+                        @else
+                            <span class="text-danger">Pending</span>
+                        @endif
+                    @else
+                        <span class="text-success">Completed</span>
+                    @endif
+                </td>
+                <td>${{ $transaction->amount }}</td>
+                <td>{!! $transaction->paymentMethod->displayName() !!}</td>
+                <td>
+                    @if ($transaction->charge_or_refund == 'CHARGE')
+                        @include('app.my-account.admin.orders.forms.create-refund')
+                    @endif
+                </td>
+            </tr>
+        @endforeach
+    </tbody>
+</table>

+ 21 - 0
resources/views/app/my-account/admin/orders/partials/ledger-transactions.blade.php

@@ -0,0 +1,21 @@
+<h6 class="fw-bold">Ledger Transactions</h6>
+<table class="table table-sm table-hover table-striped table-bordered mb-0">
+    <thead class="bg-warning bg-opacity-10">
+        <tr>
+            <th>Date</th>
+            <th>Plus/Minus</th>
+            <th>Amount</th>
+            <th>Memo</th>
+        </tr>
+    </thead>
+    <tbody>
+        @foreach ($order->ledgerTransactions as $transaction)
+            <tr>
+                <td>{{ friendly_date($transaction->created_at) }}</td>
+                <td>{{ $transaction->plus_or_minus }}</td>
+                <td>${{ $transaction->amount }}</td>
+                <td>{{ $transaction->system_memo }}</td>
+            </tr>
+        @endforeach
+    </tbody>
+</table>

+ 12 - 1
resources/views/app/my-account/admin/orders/partials/table.blade.php

@@ -51,7 +51,18 @@
                     </td>
                     <td class="text-nowrap" style="width:1px">{{ $order->user->displayName() }}</td>
                     <td class="text-nowrap" style="width:1px">{{ friendly_date_time($order->created_at) }}</td>
-                    <td style="width:1px">{{ displayAmount('$', $order->total()) }}</td>
+                    <td style="width:1px">
+                        <?php 
+                            $amountFromClientBalance = $order->amountDeductedFromAccountBalance();
+                        ?>
+                        {{ displayAmount('$', $order->total()) }}
+                        @if($amountFromClientBalance)
+                            <div>
+                                <span><i class="fas fa-info-circle"></i> Deduction from client balance: <b>{{ displayAmount('$', $amountFromClientBalance) }}</b></span>
+                            </div>
+                        @endif
+
+                    </td>
                     
                     <td>
                         @if($selectedLab)

+ 13 - 37
resources/views/app/my-account/admin/users/sub/info/templates/parent-store-order.blade.php

@@ -30,48 +30,24 @@
                         <td><a href="{{ route('admin.orders.view.dashboard', $order) }}">{{ $order->orderNumber() }}</a>
                         </td>
                         <td>{{ friendly_date($order->created_at) }}</td>
-                        <td>{{ displayAmount('$', $order->order_total) }}</td>
+                        <td>
+                            <?php 
+                                $amountFromClientBalance = $order->amountDeductedFromAccountBalance();
+                            ?>
+                            {{ displayAmount('$', $order->order_total) }}
+                            @if($amountFromClientBalance)
+                                <div>
+                                    <span><i class="fas fa-info-circle"></i> Deduction from client balance: <b>{{ displayAmount('$', $amountFromClientBalance) }}</b></span>
+                                </div>
+                            @endif
+                        </td>
                         <td>
                             <div>
                                 @include('app.my-account.admin.orders.forms.create-charge')
                             </div>
                             <div>
-                                <table class="table table-sm table-hover table-striped table-bordered mb-0">
-                                    <thead class="bg-warning bg-opacity-10">
-                                        <tr>
-                                            <th>Date</th>
-                                            <th>Charge/Refund</th>
-                                            <th>Amount</th>
-                                            <th>Payment Method</th>
-                                            <th></th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        @foreach ($order->financialTransactions as $transaction)
-                                            <tr>
-                                                <td>{{ friendly_date($transaction->created_at) }}</td>
-                                                <td>{{ $transaction->charge_or_refund }}
-                                                    @if($transaction->requires_stripe_confirmation)
-                                                        @if($transaction->is_stripe_confirmation_done)
-                                                            <span class="text-success">Completed</span>
-                                                        @else
-                                                            <span class="text-danger">Pending</span>
-                                                        @endif
-                                                    @else
-                                                        <span class="text-success">Completed</span>
-                                                    @endif
-                                                </td>
-                                                <td>${{ $transaction->amount }}</td>
-                                                <td>{!! $transaction->paymentMethod->displayName() !!}</td>
-                                                <td>
-                                                    @if ($transaction->charge_or_refund == 'CHARGE')
-                                                        @include('app.my-account.admin.orders.forms.create-refund')
-                                                    @endif
-                                                </td>
-                                            </tr>
-                                        @endforeach
-                                    </tbody>
-                                </table>
+                                @include('app.my-account.admin.orders.partials.financial-transactions')
+                                @include('app.my-account.admin.orders.partials.ledger-transactions')
                             </div>
                         </td>
                     </tr>

+ 13 - 37
resources/views/app/my-account/admin/users/sub/orders.blade.php

@@ -26,7 +26,17 @@
                             <td><a href="{{ route('admin.orders.view.dashboard', $order) }}">{{ $order->orderNumber() }}</a>
                             </td>
                             <td>{{ friendly_date($order->created_at) }}</td>
-                            <td>{{ displayAmount('$', $order->order_total) }}</td>
+                            <td>
+                                <?php 
+                                    $amountFromClientBalance = $order->amountDeductedFromAccountBalance();
+                                ?>
+                                {{ displayAmount('$', $order->order_total) }}
+                                @if($amountFromClientBalance)
+                                    <div>
+                                        <span><i class="fas fa-info-circle"></i> Deduction from client balance: <b>{{ displayAmount('$', $amountFromClientBalance) }}</b></span>
+                                    </div>
+                                @endif
+                            </td>
                             <td>
                                 @include('app.my-account.admin.orders.partials.order-tests-summary')
                             </td>
@@ -35,42 +45,8 @@
                                     @include('app.my-account.admin.orders.forms.create-charge')
                                 </div>
                                 <div>
-                                    <table class="table table-sm table-hover table-striped table-bordered mb-0">
-                                        <thead>
-                                            <tr>
-                                                <th>Date</th>
-                                                <th>Charge/Refund</th>
-                                                <th>Amount</th>
-                                                <th>Payment Method</th>
-                                                <th></th>
-                                            </tr>
-                                        </thead>
-                                        <tbody>
-                                            @foreach ($order->financialTransactions as $transaction)
-                                                <tr>
-                                                    <td>{{ friendly_date($transaction->created_at) }}</td>
-                                                    <td>{{ $transaction->charge_or_refund }}
-                                                        @if($transaction->requires_stripe_confirmation)
-                                                            @if($transaction->is_stripe_confirmation_done)
-                                                                <span class="text-success">Completed</span>
-                                                            @else
-                                                                <span class="text-danger">Pending</span>
-                                                            @endif
-                                                        @else
-                                                            <span class="text-success">Completed</span>
-                                                        @endif
-                                                    </td>
-                                                    <td>${{ $transaction->amount }}</td>
-                                                    <td>{!! $transaction->paymentMethod->displayName() !!}</td>
-                                                    <td>
-                                                        @if ($transaction->charge_or_refund == 'CHARGE')
-                                                            @include('app.my-account.admin.orders.forms.create-refund')
-                                                        @endif
-                                                    </td>
-                                                </tr>
-                                            @endforeach
-                                        </tbody>
-                                    </table>
+                                    @include('app.my-account.admin.orders.partials.financial-transactions')
+                                    @include('app.my-account.admin.orders.partials.ledger-transactions')
                                 </div>
                             </td>
                         </tr>