From 98fc236be24eab024ec795a99e88ef2f85d798da Mon Sep 17 00:00:00 2001
From: oktaviaramadani <ramadanioktavia@gmail.com>
Date: Fri, 10 Nov 2023 11:21:13 +0700
Subject: [PATCH 1/3] perubahan datatable part 2

---
 .../Controllers/User/UserRefundController.php | 14 ++++-----
 resources/views/User/contact/index.blade.php  | 31 -------------------
 2 files changed, 7 insertions(+), 38 deletions(-)

diff --git a/app/Http/Controllers/User/UserRefundController.php b/app/Http/Controllers/User/UserRefundController.php
index 31175a8..fc99a73 100644
--- a/app/Http/Controllers/User/UserRefundController.php
+++ b/app/Http/Controllers/User/UserRefundController.php
@@ -111,17 +111,17 @@ class UserRefundController extends Controller
 
     public function listRefund(Request $request)
     {
-        $subQuery = Refund::with('transaction')
-        ->select('*');
+        $subQuery = Refund::join('transactions', 'refunds.transaction_id', '=', 'transactions.id')
+        ->select('refunds.id as id', 'refunds.total as total', 'refunds.due_date as tanggal_pengajuan', 'refunds.status as status','transactions.nama_barang as nama_barang', 'transactions.penjual as penjual', 'transactions.batas_konfirmasi_transaksi as batas_konfirmasi');
 
-        if ($request->has('search') && !empty($request->search['value'])) {
+        if($request->has('search') && !empty($request->search['value'])){
             $searchRefund = $request->search['value'];
-            $subQuery->where(function ($a) use ($searchRefund) {
-                $a->whereRaw('pembeli LIKE ?', ['%' . $searchRefund . '%'])
-                    ->orWhereRaw('nama_barang LIKE ?', ['%' . $searchRefund . '%'])
-                    ->orWhereRaw('penjual LIKE ?', ['%' . $searchRefund . '%']);
+            $subQuery->where(function($a) use ($searchRefund){
+                $a->whereRaw('LOWER(transactions.nama_barang) LIKE ?',['%'.strtolower($searchRefund).'%'])
+                ->orWhereRaw('LOWER(transactions.penjual) LIKE ?',['%'.strtolower($searchRefund).'%']);
             });
         }
+
         $queryRefund = Refund::from(DB::raw("({$subQuery->toSql()}) as tmp"))
         ->mergeBindings($subQuery->getQuery()) // Menggabungkan binding parameters
         ->select('*')
diff --git a/resources/views/User/contact/index.blade.php b/resources/views/User/contact/index.blade.php
index f9f410b..8261df7 100644
--- a/resources/views/User/contact/index.blade.php
+++ b/resources/views/User/contact/index.blade.php
@@ -45,37 +45,6 @@
     @include('user.contact.modal-add-contact')
     <script>
         $(document).ready(function() {
-            let listContact = $('#table-contact').DataTable({
-                processing: true,
-                serverSide: true,
-                ajax: `{{ route('user-contact.list-contact') }}`,
-                columns: [{
-                    data: 'DT_RowIndex',
-                    name: 'DT_RowIndex',
-                    orderable: false,
-                    searchable: true,
-                },
-                {
-                    data: 'id',
-                    name: 'id',
-                    orderable: false,
-                    searchable: true,
-                },
-                {
-                    data: 'nama',
-                    name: 'nama'
-                },
-                {
-                    data: 'action',
-                    name: 'action',
-                    orderable: false,
-                    searchable: false
-                },
-                ]
-            })
-            console.log("Setelah inisialisasi DataTables");
-
-
             let check = false;
             var teksArea = document.getElementById('resultArea');
             var teksNama = document.getElementById('teksNama');

From ad36cc126ff7879caa4cb4f158d49e4e321a6b06 Mon Sep 17 00:00:00 2001
From: oktaviaramadani <ramadanioktavia@gmail.com>
Date: Fri, 10 Nov 2023 14:07:23 +0700
Subject: [PATCH 2/3] perubahan datatable part 3

---
 .../User/UserTransactionController.php        |  72 ++++++--
 .../User/transaction/Pembeli/index.blade.php  | 157 +++++++++---------
 2 files changed, 140 insertions(+), 89 deletions(-)

diff --git a/app/Http/Controllers/User/UserTransactionController.php b/app/Http/Controllers/User/UserTransactionController.php
index d453b7e..7a50e28 100644
--- a/app/Http/Controllers/User/UserTransactionController.php
+++ b/app/Http/Controllers/User/UserTransactionController.php
@@ -2,24 +2,25 @@
 
 namespace App\Http\Controllers\User;
 
-use App\Models\Transaction;
-use App\Models\TransactionDescription;
-use App\Http\Controllers\Controller;
-use App\Models\Contact;
-use App\Models\Setting;
-use Illuminate\Http\Request;
-use App\Models\TransactionUser;
-use App\Models\User;
+use Throwable;
 use Carbon\Carbon;
-use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Http;
-use Illuminate\Support\Facades\Log;
-use Illuminate\Support\Facades\Storage;
+use App\Models\User;
 use Ramsey\Uuid\Uuid;
 use GuzzleHttp\Client;
+use App\Models\Contact;
+use App\Models\Setting;
+use App\Models\Transaction;
+use Illuminate\Http\Request;
+use App\Models\TransactionUser;
+use Yajra\DataTables\DataTables;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Log;
+use App\Http\Controllers\Controller;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Http;
+use App\Models\TransactionDescription;
+use Illuminate\Support\Facades\Storage;
 use Stichoza\GoogleTranslate\GoogleTranslate;
-use Throwable;
 
 class UserTransactionController extends Controller
 {
@@ -822,7 +823,48 @@ class UserTransactionController extends Controller
         }
     }
 
-    public function listTransaction(Request $request){
+    public function listPembeli(Request $request)
+    {
+        $subQuery = transaction::join('transactions', 'refunds.total', '=', 'transactions.id')
+        ->select('transactions.id', 'transactions.penjual as penjual', 'transactions.nama_barang as nama_barang', 'refunds.total as total', 'transactions.tanggal_transaksi', 'refunds.due_date as date', 'transactions.status_transaksi as status');
 
+        if($request->has('search') && !empty($request->search['value'])){
+            $searchPembeli = $request->search['value'];
+            $subQuery->where(function($a) use ($searchPembeli){
+                $a->whereRaw('LOWER(transactions.penjual) LIKE ?',['%'.strtolower($searchPembeli).'%'])
+                ->orWhereRaw('LOWER(transactions.nama_barang) LIKE ?',['%'.strtolower($searchPembeli).'%']);
+            });
+        }
+
+        $queryPembeli = Contact::from(DB::raw("({$subQuery->toSql()}) as tmp"))
+        ->mergeBindings($subQuery->getQuery()) // Menggabungkan binding parameters
+        ->select('*')
+        ->get();
+
+        if ($request->ajax()) {
+            return DataTables::of($queryPembeli)
+                ->addIndexColumn()
+                ->addColumn('aksi', function ($row) {
+                    $url = route('user-pembeli.show', ['id' => $row->id]);
+                    $html_code = '
+                    <div class="btn-group">
+                        <button type="button" class="btn btn-primary dropdown-toggle"
+                            data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                            ....
+                        </button>
+    
+                        <ul class="dropdown-menu">
+                            <li><a class="dropdown-item"
+                                    href="'.$url.'">Detail</a>
+                            </li>
+                        </ul>
+                    </div>';
+                    return $html_code;
+                })
+                ->rawColumns(['aksi'])
+                ->make(true);
+            }
     }
+
+
 }
diff --git a/resources/views/User/transaction/Pembeli/index.blade.php b/resources/views/User/transaction/Pembeli/index.blade.php
index aeb3f1b..1d50d7f 100644
--- a/resources/views/User/transaction/Pembeli/index.blade.php
+++ b/resources/views/User/transaction/Pembeli/index.blade.php
@@ -30,7 +30,7 @@
                         </div>
                         <div class="card-body">
                             <div class="table-responsive">
-                                <table class="table table-striped" id="table-3">
+                                <table class="table table-striped" id="table-pembeli">
                                     <thead>
                                         <tr>
                                             <th class="text-center">
@@ -45,78 +45,6 @@
                                             <th>Aksi</th>
                                         </tr>
                                     </thead>
-                                    <tbody>
-                                        @forelse ($transactions as $transaction)
-                                            <tr>
-                                                <td>{{ $loop->iteration }}</td>
-                                                <td>{{ $transaction->data_penjual->nama_depan . ' ' . $transaction->data_penjual->nama_belakang }}
-                                                </td>
-                                                <td>{{ $transaction->nama_barang }}</td>
-                                                <td>Rp {{ number_format($transaction->total_bayar, 2, ',', '.') }}</td>
-                                                <td>{{ $transaction->created_at }}</td>
-                                                <td>{{ $transaction->updated_at }}</td>
-                                                <td><a href="#" data-toggle="modal"
-                                                        data-target="#modalKeteranganStatus"
-                                                        class="badge {{ in_array($transaction->status_transaksi, ['created'])
-                                                            ? 'badge-light'
-                                                            : (in_array($transaction->status_transaksi, ['success', 'challenge'])
-                                                                ? 'badge-info'
-                                                                : (in_array($transaction->status_transaksi, ['process', 'sending', 'sent'])
-                                                                    ? 'badge-warning'
-                                                                    : (in_array($transaction->status_transaksi, ['cancel', 'failure', 'refund'])
-                                                                        ? 'badge-danger'
-                                                                        : ($transaction->status_transaksi == 'finished'
-                                                                            ? 'badge-success'
-                                                                            : 'badge-dark')))) }}">{{ ucwords($transaction->status_transaksi) }}</a>
-                                                </td>
-                                                <td>
-                                                    <div class="btn-group">
-                                                        <button type="button" class="btn btn-primary dropdown-toggle"
-                                                            data-toggle="dropdown" aria-haspopup="true"
-                                                            aria-expanded="false">
-                                                            ...
-                                                        </button>
-
-                                                        <ul class="dropdown-menu">
-                                                            <li><a class="dropdown-item"
-                                                                    href="{{ route('user-pembeli.show', $transaction->id) }}">Detail</a>
-                                                            </li>
-
-                                                            {{-- di midtrans statusnya settlement --}}
-                                                            @if ($transaction->status_transaksi == 'sent')
-                                                                <li><a class="dropdown-item" data-toggle="modal"
-                                                                        data-target="#modalFinish" id="tracking"
-                                                                        data-id="{{ $transaction->id }}"
-                                                                        href="#">Selesaikan</a>
-                                                                </li>
-                                                            @endif
-
-                                                            @if ($transaction->status_transaksi == 'created')
-                                                                <li><a class="dropdown-item" id="bayar"
-                                                                        data-id="{{ $transaction->id }}"
-                                                                        data-token="{{ $transaction->token }}"
-                                                                        href="#">Bayar</a>
-                                                                </li>
-                                                            @endif
-
-                                                            @if (in_array($transaction->status_transaksi, ['created', 'challenge']))
-                                                                <li><a href="#" data-id="{{ $transaction->id }}"
-                                                                        id="cancel" class="dropdown-item">Batal</a></li>
-                                                            @endif
-
-                                                            @if (!$transaction->transactionDescription->isEmpty())
-                                                                <li><a class="dropdown-item" data-toggle="modal"
-                                                                        data-target="#modalTracking"
-                                                                        data-transaction="{{ $transaction->transactionDescription }}">Tracking</a>
-                                                                </li>
-                                                            @endif
-                                                        </ul>
-                                                    </div>
-                                                </td>
-                                            </tr>
-                                        @empty
-                                        @endforelse
-                                    </tbody>
                                 </table>
                             </div>
                         </div>
@@ -134,7 +62,88 @@
         data-client-key="SB-Mid-client-lEMALcmIPviksRRe"></script>
     <script>
         $(document).ready(function() {
-            let listPembeli = $('#table-pembeli').DataTable({});
+            let listPembeli = $('#table-pembeli').DataTable({
+                processing: true,
+                serverSide: true,
+                ajax: "{{ route('user-pembeli.list-pembeli') }}",
+                columns: [{
+                    data: 'DT_RowIndex',
+                    name: 'DT_RowIndex',
+                    orderable: false,
+                    searchable: false,
+                    className: 'text-center'
+                },
+                {
+                    data: 'id',
+                    name: 'id',
+                    orderable: false,
+                    searchable: true,
+                },
+                {
+                    data: 'penjual',
+                    name: 'penjual',
+                },
+                {
+                    data: 'nama_barang',
+                    name: 'nama_barang'
+                },
+                {
+                    data: 'total',
+                    name: 'total'
+                }, 
+                {
+                    data: 'tanggal_transaksi',
+                    name: 'tanggal_transaksi',
+                    render: function(data, type, row) {
+                        if (type == 'display') {
+                            var date = new Date(data);
+                            var formattedDate = date.toLocaleDateString('en-US', {
+                                year: '2-digit',
+                                month: '2-digit',
+                                day: '2-digit'
+                            });
+                            return formattedDate;
+                        }
+                        return data;
+                    }
+                },
+                {
+                    data: 'tanggal_update',
+                    name: 'tanggal_update',
+                    render: function(data, type, row) {
+                        if (type == 'display') {
+                            var date = new Date(data);
+                            var formattedDate = date.toLocaleDateString('en-US', {
+                                year: '2-digit',
+                                month: '2-digit',
+                                day: '2-digit'
+                            });
+                            return formattedDate;
+                        }
+                        return data;
+                    }
+                },
+                {
+                    data: null,
+                    render: function(data, type, row) {
+                        if (row.status == 'partial refund') {
+                            return `<a href="#" data-toggle="modal" data-target="#modalKeteranganStatus" class="badge badge-success">${row.status}</a>`;
+                        }else if (row.status == 'pending') {
+                            return `<a href="#" data-toggle="modal" data-target="#modalKeteranganStatus" class="badge badge-warning">${row.status}</a>`;
+                        }else {
+                            return `<a href="#" data-toggle="modal" data-target="#modalKeteranganStatus" class="badge badge-danger">${row.status}</a>`;
+                        }
+                    },
+                    orderable: true,
+                    searchable: true
+                },
+                {
+                    data: 'aksi',
+                    name: 'aksi',
+                    orderable: false,
+                    searchable: false
+                }],
+            });
 
             // Bayar
             $('#table-3').on('click', '#bayar', function() {

From 0b4139c92cd0819cd27e92c912c50a9f587c202c Mon Sep 17 00:00:00 2001
From: oktaviaramadani <ramadanioktavia@gmail.com>
Date: Fri, 10 Nov 2023 14:22:21 +0700
Subject: [PATCH 3/3] perubahan datatable part 4

---
 app/Http/Controllers/User/UserTransactionController.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/Http/Controllers/User/UserTransactionController.php b/app/Http/Controllers/User/UserTransactionController.php
index 7a50e28..0479348 100644
--- a/app/Http/Controllers/User/UserTransactionController.php
+++ b/app/Http/Controllers/User/UserTransactionController.php
@@ -836,7 +836,7 @@ class UserTransactionController extends Controller
             });
         }
 
-        $queryPembeli = Contact::from(DB::raw("({$subQuery->toSql()}) as tmp"))
+        $queryPembeli = transaction::from(DB::raw("({$subQuery->toSql()}) as tmp"))
         ->mergeBindings($subQuery->getQuery()) // Menggabungkan binding parameters
         ->select('*')
         ->get();