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();