Revisi kontroller transaksi

This commit is contained in:
Muhammad Raihan Surya 2023-11-01 11:31:58 +07:00
parent 1a3a6234ad
commit ebd309e471
5 changed files with 135 additions and 167 deletions

View File

@ -6,14 +6,11 @@ use App\Models\Transaction;
use App\Models\TransactionDescription;
use App\Http\Controllers\Controller;
use App\Models\Contact;
use App\Models\Refund;
use App\Models\RefundDescription;
use App\Models\Setting;
use Illuminate\Http\Request;
use App\Models\TransactionUser;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
@ -169,9 +166,7 @@ class UserTransactionController extends Controller
'callbacks' => [
'finish' => route('user-transaction.index.pembeli'),
],
'enabled_payments' => [
'credit_card', 'gopay', 'shopeepay'
],
'enabled_payments' => ['credit_card', 'gopay', 'shopeepay'],
'expiry' => [
'start_time' => $now->format('Y-m-d H:i:s P'),
'unit' => 'days',
@ -183,7 +178,7 @@ class UserTransactionController extends Controller
$token = $snap_token;
$status = 'created';
try{
try {
DB::beginTransaction();
$query = Transaction::create([
@ -231,7 +226,7 @@ class UserTransactionController extends Controller
'status' => true,
'message' => 'Berhasil menambahkan transaksi. Silahkan lakukan pembayaran.',
]);
}catch(Throwable $e){
} catch (Throwable $e) {
DB::rollBack();
Log::error($e->getMessage());
@ -245,10 +240,13 @@ class UserTransactionController extends Controller
public function acceptTransaction($id)
{
$query = Transaction::where('id', $id)->update([
try {
DB::beginTransaction();
Transaction::where('id', $id)->update([
'status' => 'process',
]);
if ($query) {
TransactionDescription::create([
'transaction_id' => $id,
'status' => 'process',
@ -258,11 +256,17 @@ class UserTransactionController extends Controller
'deskripsi' => 'Transaksi telah diterima oleh ' . Auth::user()->nama_depan,
]);
DB::commit();
return response()->json([
'status' => true,
'message' => 'Transaksi telah diterima. Siapkan pesanan untuk dikirim ke penjual.',
]);
} else {
} catch (Throwable $e) {
DB::rollBack();
Log::error($e->getMessage());
return response()->json([
'status' => false,
'message' => 'Gagal update status karena kesalahan server.',
@ -272,10 +276,13 @@ class UserTransactionController extends Controller
public function sendingOrder($id)
{
$query = Transaction::where('id', $id)->update([
try {
DB::beginTransaction();
Transaction::where('id', $id)->update([
'status' => 'sending',
]);
if ($query) {
TransactionDescription::create([
'transaction_id' => $id,
'status' => 'sending',
@ -285,11 +292,17 @@ class UserTransactionController extends Controller
'deskripsi' => 'Pesanan telah dikirim oleh ' . Auth::user()->nama_depan . ' dan sedang dalam perjalanan menuju pembeli.',
]);
DB::commit();
return response()->json([
'status' => true,
'message' => 'Pesanan sedang dikirim dan menuju pembeli.',
]);
} else {
} catch (Throwable $e) {
DB::rollBack();
Log::error($e->getMessage());
return response()->json([
'status' => false,
'message' => 'Gagal update status karena kesalahan server.',
@ -299,10 +312,13 @@ class UserTransactionController extends Controller
public function sentOrder($id)
{
$query = Transaction::where('id', $id)->update([
try {
DB::beginTransaction();
Transaction::where('id', $id)->update([
'status' => 'sended',
]);
if ($query) {
TransactionDescription::create([
'transaction_id' => $id,
'status' => 'sended',
@ -312,11 +328,17 @@ class UserTransactionController extends Controller
'deskripsi' => 'Pesanan telah sampai di tempat pembeli.',
]);
DB::commit();
return response()->json([
'status' => true,
'message' => 'Pesanan telah sampai di tempat pembeli.',
]);
} else {
} catch (Throwable $e) {
DB::rollBack();
Log::error($e->getMessage());
return response()->json([
'status' => false,
'message' => 'Gagal update status karena kesalahan server.',
@ -326,24 +348,33 @@ class UserTransactionController extends Controller
public function finishTransaction($id)
{
$query = Transaction::where('id', $id)->update([
try {
DB::beginTransaction();
Transaction::where('id', $id)->update([
'status' => 'finished',
]);
if ($query) {
TransactionDescription::create([
'transaction_id' => $id,
'status' => 'sended',
'status' => 'finished',
'background' => 'bg-buyer',
'user' => Auth::user()->email,
'judul' => 'fas fa-check',
'deskripsi' => 'Pesanan telah sampai di tempat pembeli.',
'deskripsi' => 'Pesanan telah diselesaikan oleh '.auth()->user()->nama_depan.'.',
]);
DB::commit();
return response()->json([
'status' => true,
'message' => 'Pesanan telah sampai di tempat pembeli.',
'message' => 'Pesanan telah diselesaikan oleh '.auth()->user()->nama_depan.'.',
]);
} else {
} catch (Throwable $e) {
DB::rollBack();
Log::error($e->getMessage());
return response()->json([
'status' => false,
'message' => 'Gagal update status karena kesalahan server.',
@ -362,8 +393,11 @@ class UserTransactionController extends Controller
$payment = Trans::status($id);
$result = json_decode(json_encode($payment), true);
if (in_array($result['status_code'], ['200', '201', '202'])) {
$query = Transaction::where('id', $id)->update([
if ($result['status_code'] == '200') {
try {
DB::beginTransaction();
Transaction::where('id', $id)->update([
'currency' => $result['currency'],
'merchant_id' => $result['merchant_id'],
'metode_pembayaran' => $result['payment_type'],
@ -372,47 +406,33 @@ class UserTransactionController extends Controller
'status' => $result['transaction_status'],
'fraud_status' => $result['fraud_status'],
]);
if ($query) {
if ($result['transaction_status'] == 'pending') {
TransactionDescription::create([
'transaction_id' => $id,
'status' => $result['transaction_status'],
'user' => Auth::user()->email,
'judul' => 'fas fa-clock',
'status_code' => $result['status_code'],
'background' => 'bg-buyer',
'deskripsi' => 'Pembayaran ditunda.',
]);
return response()->json([
'status' => true,
'message' => 'Transaksi ditunda. Silahkan bayar nanti selama dalam waktu batas pembayaran.',
]);
} else {
TransactionDescription::create([
'transaction_id' => $id,
'status' => $result['transaction_status'],
'user' => Auth::user()->email,
'judul' => 'fas fa-plus',
'judul' => 'fas fa-check',
'status_code' => $result['status_code'],
'background' => 'bg-buyer',
'deskripsi' => Auth::user()->nama_depan . ' telah sukses melakukan pembayaran. Transaksi diteruskan ke penjual.',
]);
DB::rollBack();
return response()->json([
'status' => true,
'message' => 'Pembayaran sukses.',
]);
}
} else {
} catch (Throwable $e) {
DB::rollBack();
Log::error($e->getMessage());
return response()->json([
'status' => false,
'message' => 'Transaksi pembayaran gagal.',
]);
}
} elseif (in_array($result['status_code'], ['400', '401', '402', '403', '404', '405', '406', '407', '408', '409', '410', '411', '412', '413'])) {
return response()->json([
'status' => false,
'message' => 'Terjadi kesalahan di server.',
]);
} else {
return response()->json([
'status' => false,
@ -426,17 +446,18 @@ class UserTransactionController extends Controller
// Membuat objek Google Translate
$translator = new GoogleTranslate();
// Mengatur bahasa sumber (Inggris) dan bahasa target (Indonesia)
$translator->setSource('en');
$translator->setTarget('id');
$transaction = Transaction::where('id', $id)->first();
$cancel = json_decode(json_encode(Trans::cancel($id)), true);
if ($cancel['status_code'] == '200') {
try {
DB::beginTransaction();
if ($transaction->status == 'created') {
$query = Transaction::where('id', $id)->update([
Transaction::where('id', $id)->update([
'status' => 'cancel',
]);
if ($query) {
TransactionDescription::create([
'transcation_id' => $id,
'status' => 'cancel',
@ -446,53 +467,31 @@ class UserTransactionController extends Controller
'deskripsi' => 'Transaksi dibatalkan',
]);
DB::commit();
return response()->json([
'status' => true,
'message' => 'Transaksi berhasil dibatal',
]);
} else {
} catch (Throwable $e) {
DB::rollBack();
Log::error($e->getMessage());
return response()->json([
'status' => false,
'message' => 'Transaksi gagal dibatalkan',
]);
}
} else {
$cancel = json_decode(json_encode(Trans::cancel($id)), true);
if ($cancel['status_code'] == '200') {
$query = Transaction::where('id', $id)->update([
'status' => $cancel['transaction_status'],
]);
if ($query) {
TransactionDescription::create([
'transaction_id' => $id,
'status' => $cancel['transaction_status'],
'user' => Auth::user()->email,
'judul' => 'fas fa-exclamation',
'status_code' => $cancel['status_code'],
'background' => 'bg-buyer',
'deskripsi' => $translator->translate($cancel['status_message']),
]);
return response()->json([
'status' => true,
'message' => $translator->translate($cancel['status_message']),
]);
} else {
return response()->json([
'status' => false,
'message' => $translator->translate($cancel['status_message']),
]);
}
} elseif ($cancel['status_code'] == '412') {
return response()->json([
'status' => false,
'message' => $translator->translate($cancel['status_message']),
]);
}
}
}
public function complainTransaction($id)
public function complaintTransaction($id)
{
return view('user.refund.new-refund', compact('id'));
}

View File

@ -52,7 +52,7 @@ $("#table-2").dataTable({
// Transaksi pembeli
$("#table-3").dataTable({
columnDefs: [{ sortable: false, targets: [6] }],
columnDefs: [{ sortable: false, targets: [7] }],
searchable: true,
});

View File

@ -37,6 +37,7 @@
#
</th>
<th>Penjual</th>
<th>Nama Barang</th>
<th>Total</th>
<th>Tanggal Transaksi</th>
<th>Tanggal Update</th>
@ -50,6 +51,7 @@
<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>
@ -72,7 +74,7 @@
<button type="button" class="btn btn-primary dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Action
...
</button>
<ul class="dropdown-menu">
@ -97,7 +99,7 @@
</li>
@endif
@if (in_array($transaction->status, ['pending', 'authorize', 'capture', 'created']))
@if (in_array($transaction->status, ['pending', 'capture', 'created']))
<li><a href="#" data-id="{{ $transaction->id }}"
id="cancel" class="dropdown-item">Batal</a></li>
@endif

View File

@ -30,8 +30,8 @@
<th class="text-center">
#
</th>
<th>Order ID</th>
<th>Pembeli</th>
<th>Nama Barang</th>
<th>Total</th>
<th>Tanggal Pembuatan</th>
<th>Tanggal Update</th>
@ -43,9 +43,9 @@
@forelse ($transactions as $transaction)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $transaction->id }}</td>
<td>{{ $transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->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>
@ -68,7 +68,7 @@
<button type="button" class="btn btn-primary dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Action
...
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item"
@ -81,12 +81,13 @@
</li>
@endif
{{-- Setelah dibayar --}}
@if ($transaction->status == 'settlement')
<li><a class="dropdown-item" href="#">Process</a>
@if (in_array($transaction->status, ['settlement', 'capture']))
<li><a class="dropdown-item" href="#">Proses
Transaksi</a>
</li>
@endif
{{-- Pengiriman barang --}}
@if ($transaction->status == 'progress')
@if ($transaction->status == 'process')
<li><a class="dropdown-item" href="#">Kirim
Barang</a>
</li>
@ -96,6 +97,11 @@
sampai</a>
</li>
@endif
@if ($transaction->status == 'finished')
<li><a class="dropdown-item" href="#">Transaksi
Selesai</a>
</li>
@endif
</ul>
</div>
</td>

View File

@ -42,20 +42,6 @@ Route::get('/detail_transaction', function () {
'detail_transaction' => Transactions::allDetailTransactions()
]);
})->name('transaction.detail');
// Route::get('/history_transaction', function () {
// return view('admin/transaction/History_Transaction',[
// 'name'=>'Jilhan Haura',
// "transaction"=> Transactions::allTransactions()
// ]);
// });
// Route::get('/history_refund', function () {
// return view('admin/refund/history-refund',[
// 'name'=>'Jilhan Haura',
// "history_refund" => Refunds::HistoryRefund()
// ]);
// });
Route::get('/detail_refund',function() {
return view('admin/refund/detail-refund',[
@ -68,31 +54,6 @@ Route::get('/next_detail_refund',function() {
'name'=>"Jilhan Haura"
]);
});
// Route::get('/list_user',function() {
// return view('Admin/users/list-user',[
// 'name'=>"Jilhan Haura",
// "list_users" => Users::listUsers()
// ]);
// });
// Route::get('/detail-user',function() {
// return view('Admin/users/detail-user',[
// 'name'=>"Jilhan Haura",
// "detail_user" => Users::detailUser()
// ]);
// });
// Route::get('/profile',function() {
// return view('admin/profile/index',[
// 'name'=>"Jilhan Haura",
// ]);
// });
// Route::get('/setting',function() {
// return view('admin/setting/index',[
// 'name'=>"Jilhan Haura",
// "setting" => Settings:: HistorySetting()
// ]);
// });
// --------------------------------------------------------------------------------------------
//Index
@ -195,7 +156,7 @@ Route::middleware(['auth'])->group(function(){
Route::put('user-pembeli/bayar-transaksi/{id}','payTransaction')->name('user-pembeli.pay');
Route::put('user-pembeli/batal-transaksi/{id}','cancelTransaction')->name('user-pembeli.cancel');
Route::put('user-pembeli/transaksi-selesai/{id}','finishTransaction')->name('user-pembeli.finish');
Route::put('user-pembeli/transaksi-komplain/{id}','complainTransaction')->name('user-pembeli.complain');
Route::put('user-pembeli/transaksi-komplain/{id}','complaintTransaction')->name('user-pembeli.complain');
//Penjual
Route::get('user-penjual','indexPenjual')->name('user-penjual.index');