Perubahan fungsi pembayaran

This commit is contained in:
Muhammad Raihan Surya 2023-09-26 10:08:11 +07:00
parent 5f01f0d124
commit 2fe079984d
22 changed files with 759 additions and 320 deletions

View File

@ -16,7 +16,7 @@ class UserRefundController extends Controller
]); ]);
} }
public function createRefund(Request $request) public function create(Request $request)
{ {
return view('user.refund.new-refund'); return view('user.refund.new-refund');
} }

View File

@ -16,6 +16,7 @@ use Ramsey\Uuid\Uuid;
use Midtrans\Config; use Midtrans\Config;
use Midtrans\Snap; use Midtrans\Snap;
use Midtrans\Transaction as Trans; use Midtrans\Transaction as Trans;
use Stichoza\GoogleTranslate\GoogleTranslate;
class UserTransactionController extends Controller class UserTransactionController extends Controller
{ {
@ -23,14 +24,24 @@ class UserTransactionController extends Controller
* Display a listing of the resource. * Display a listing of the resource.
*/ */
public function __construct()
{
Config::$serverKey = 'SB-Mid-server-8rydZAwKoWuoQ6g_3ot0-K7p';
Config::$isProduction = false;
// Set sanitization on (default)
Config::$isSanitized = true;
// Set 3DS transaction for credit card to true
Config::$is3ds = true;
}
public function indexPembeli() public function indexPembeli()
{ {
return view('user.transaction.pembeli.index', [ return view('user.transaction.pembeli.index', [
'transactions' => Transaction::where('pembeli', Auth::user()->email) 'transactions' => Transaction::where('pembeli', Auth::user()->email)
// ->orderByRaw("CASE WHEN status = 'pending' THEN 1 WHEN status = 'Finished' THEN 2 WHEN status = 'Rejected' THEN 3 ELSE 4 END ASC")
->latest() ->latest()
->get(), ->get(),
]); ]);
// dd(Transaction::where('pembeli',Auth::user()->email)->get());
} }
/** /**
@ -39,7 +50,10 @@ class UserTransactionController extends Controller
public function indexPenjual() public function indexPenjual()
{ {
return view('user.transaction.penjual.index', [ return view('user.transaction.penjual.index', [
'transactions' => Transaction::where('penjual', Auth::user()->email)->get(), 'transactions' => Transaction::where('penjual', Auth::user()->email)
// ->orderByRaw("CASE WHEN status = 'Progress' THEN 1 WHEN status = 'Finished' THEN 2 WHEN status = 'Rejected' THEN 3 ELSE 4 END ASC")
->latest()
->get(),
]); ]);
} }
@ -50,15 +64,33 @@ class UserTransactionController extends Controller
'trackings' => TransactionDescription::where('order_id', $id)->get(), 'trackings' => TransactionDescription::where('order_id', $id)->get(),
]); ]);
// $transaction = Transaction::findOrFail($id);
// var_dump($transaction->metode_pembayaran == 'qris');
// dd(Transaction::findOrFail($id)); // dd(Transaction::findOrFail($id));
} }
/** /**
* Show the form for creating a new resource. * Show the form for creating a new resource.
*/ */
public function createTransaction(Request $request) public function createTransaction()
{ {
return view('user.transaction.pembeli.new-transaction'); $now = Carbon::now();
$bulan = $now->format('F');
$tahun = $now->year;
$persentase_keuntungan = Setting::where('status', 'Active')
->where('bulan', '=', $bulan)
->where('tahun', '=', $tahun)
->value('persentase');
if (is_null($persentase_keuntungan)) {
$persentase_keuntungan = Setting::where('status', 'Active')
->latest()
->value('persentase');
}
return view('user.transaction.pembeli.new-transaction', [
'persentase_keuntungan' => $persentase_keuntungan,
]);
} }
/** /**
@ -89,13 +121,8 @@ class UserTransactionController extends Controller
$alamat = ucwords(strtolower(Auth::user()->alamat)); $alamat = ucwords(strtolower(Auth::user()->alamat));
$id = Uuid::uuid4(); $id = Uuid::uuid4();
$now = Carbon::now()->tz('Asia/Jakarta'); $now = Carbon::now();
$bulan = $now->format('F');
$tahun = $now->year;
// $persentase_keuntungan = Setting::where('status','Active')
// ->where('bulan','=',$bulan)
// ->where('tahun','=',$tahun)->get();
$persentase_keuntungan = $request->get('persentase_keuntungan'); $persentase_keuntungan = $request->get('persentase_keuntungan');
$total_harga = $request->get('total_harga'); $total_harga = $request->get('total_harga');
@ -135,7 +162,7 @@ class UserTransactionController extends Controller
'last_name' => $nama_belakang_pembeli, 'last_name' => $nama_belakang_pembeli,
'email' => $pembeli, 'email' => $pembeli,
'phone' => $nohp_pembeli, 'phone' => $nohp_pembeli,
'address' => Auth::user()->alamat, 'address' => $alamat,
'city' => Auth::user()->village->district->city->name, 'city' => Auth::user()->village->district->city->name,
'country_code' => 'IDN', 'country_code' => 'IDN',
], ],
@ -150,13 +177,6 @@ class UserTransactionController extends Controller
], ],
]; ];
Config::$serverKey = 'SB-Mid-server-8rydZAwKoWuoQ6g_3ot0-K7p';
Config::$isProduction = false;
// Set sanitization on (default)
Config::$isSanitized = true;
// Set 3DS transaction for credit card to true
Config::$is3ds = true;
$snap_token = Snap::getSnapToken($params); $snap_token = Snap::getSnapToken($params);
$token = $snap_token; $token = $snap_token;
$status = 'pending'; $status = 'pending';
@ -209,31 +229,48 @@ class UserTransactionController extends Controller
{ {
} }
public function paymentTransaction(Request $request, $id) public function paymentTransaction($id)
{ {
Config::$serverKey = 'SB-Mid-server-8rydZAwKoWuoQ6g_3ot0-K7p'; // Membuat objek Google Translate
Config::$isProduction = false; $translator = new GoogleTranslate();
// Set sanitization on (default)
Config::$isSanitized = true; // Mengatur bahasa sumber (Inggris) dan bahasa target (Indonesia)
// Set 3DS transaction for credit card to true $translator->setSource('en');
Config::$is3ds = true; $translator->setTarget('id');
// Config::$serverKey = 'SB-Mid-server-8rydZAwKoWuoQ6g_3ot0-K7p';
// Config::$isProduction = false;
// // Set sanitization on (default)
// Config::$isSanitized = true;
// // Set 3DS transaction for credit card to true
// Config::$is3ds = true;
$payment = Trans::status($id); $payment = Trans::status($id);
$result = json_decode(json_encode($payment), true); $result = json_decode(json_encode($payment), true);
return response()->json([
'status' => true,
'message' => $result,
]);
$query = Transaction::where('id', $id)->update([ $query = Transaction::where('id', $id)->update([
'acquire' => $result['acquirer'],
'currency' => $result['currency'], 'currency' => $result['currency'],
'fraud_status' => $result['fraud_status'],
'issuer' => $result['issuer'],
'merchant_id' => $result['merchant_id'], 'merchant_id' => $result['merchant_id'],
'metode_pembayaran' => $result['payment_type'], 'metode_pembayaran' => $result['payment_type'],
'tanggal_pembayaran' => $result['settlement_time'], 'tanggal_transaksi' => $result['transaction_time'],
'signature_key' => $result['signature_key'], 'signature_key' => $result['signature_key'],
'status' => $result['transaction_status'], 'status' => $result['transaction_status'],
'tipe_transaction' => $result['transaction_type'],
'status_code' => $result['status_code'], 'status_code' => $result['status_code'],
'status_message' => $result['status_message'],
'fraud_status' => $result['fraud_status'],
]); ]);
if ($query) { if ($query) {
TransactionDescription::create([
'order_id' => $id,
'status' => $result['transaction_status'],
'user' => Auth::user()->email,
'judul' => 'fa fa-plus',
'background' => 'bg-buyer',
'deskripsi' => Auth::user()->nama_depan . ' telah membayar menggunakan ' . $result['payment_type'] . ' ' . $result['acquirer'].'. '.$translator->translate($result['status_message']),
]);
return response()->json([ return response()->json([
'status' => true, 'status' => true,
'message' => 'Pembayaran sukses. Proses akan dilanjutkan ke penjual', 'message' => 'Pembayaran sukses. Proses akan dilanjutkan ke penjual',
@ -277,4 +314,25 @@ class UserTransactionController extends Controller
{ {
// //
} }
public function cancelTransaction(){
$cancel = \Midtrans\Transaction::cancel('005d662f-eaf2-45aa-8789-b5da82a8948d');
var_dump($cancel); // Hasilnya 200 atau kode
}
public function translate()
{
// Membuat objek Google Translate
$translator = new GoogleTranslate();
// Mengatur bahasa sumber (Inggris) dan bahasa target (Indonesia)
$translator->setSource('en');
$translator->setTarget('id');
// Menerjemahkan teks
$translatedText = $translator->translate('Hello, world!');
// Output hasil terjemahan
echo $translatedText;
}
} }

View File

@ -25,7 +25,7 @@ class TransactionDescription extends Model
//Relasi //Relasi
public function order(){ public function order(){
return $this->belongsTo(Transaction::class, 'id', 'order_id'); return $this->belongsTo(Transaction::class, 'order_id', 'id');
} }
public function user(){ public function user(){

View File

@ -57,5 +57,9 @@ class Transaction extends Model
public function refunds(){ public function refunds(){
return $this->hasMany(Refund::class, 'order_id', 'id'); return $this->hasMany(Refund::class, 'order_id', 'id');
} }
public function transactionDescription(){
return $this->hasMany(TransactionDescription::class, 'order_id', 'id');
}
//Relasi //Relasi
} }

View File

@ -19,6 +19,7 @@
"nesbot/carbon": "^2.69", "nesbot/carbon": "^2.69",
"pusher/pusher-php-server": "^7.2", "pusher/pusher-php-server": "^7.2",
"ramsey/uuid": "^4.7", "ramsey/uuid": "^4.7",
"stichoza/google-translate-php": "^5.1",
"thiagoalessio/tesseract_ocr": "^2.12", "thiagoalessio/tesseract_ocr": "^2.12",
"tymon/jwt-auth": "^2.0" "tymon/jwt-auth": "^2.0"
}, },

82
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "4dd1066d585142b363e4e114601be8ce", "content-hash": "7c67133036db6b4f4df2682df682403c",
"packages": [ "packages": [
{ {
"name": "brick/math", "name": "brick/math",
@ -3696,6 +3696,86 @@
}, },
"time": "2022-11-25T16:15:06+00:00" "time": "2022-11-25T16:15:06+00:00"
}, },
{
"name": "stichoza/google-translate-php",
"version": "v5.1.2",
"source": {
"type": "git",
"url": "https://github.com/Stichoza/google-translate-php.git",
"reference": "e43089e0c6fcc366027e8bf593060bb4e9c2c839"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Stichoza/google-translate-php/zipball/e43089e0c6fcc366027e8bf593060bb4e9c2c839",
"reference": "e43089e0c6fcc366027e8bf593060bb4e9c2c839",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-mbstring": "*",
"guzzlehttp/guzzle": "^7.0",
"php": "^8.0"
},
"require-dev": {
"phpunit/phpunit": "^9.5.10"
},
"type": "library",
"autoload": {
"psr-4": {
"Stichoza\\GoogleTranslate\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Levan Velijanashvili",
"email": "me@stichoza.com"
}
],
"description": "Free Google Translate API PHP Package",
"homepage": "https://github.com/Stichoza/google-translate-php",
"keywords": [
"google",
"php",
"translate",
"translating",
"translator"
],
"support": {
"issues": "https://github.com/Stichoza/google-translate-php/issues",
"source": "https://github.com/Stichoza/google-translate-php/tree/v5.1.2"
},
"funding": [
{
"url": "https://btc.com/bc1qc25j4x7yahghm8nnn6lypnw59nptylsw32nkfl",
"type": "custom"
},
{
"url": "https://www.paypal.me/stichoza",
"type": "custom"
},
{
"url": "https://ko-fi.com/stichoza",
"type": "ko_fi"
},
{
"url": "https://liberapay.com/stichoza",
"type": "liberapay"
},
{
"url": "https://opencollective.com/stichoza",
"type": "open_collective"
},
{
"url": "https://www.patreon.com/stichoza",
"type": "patreon"
}
],
"time": "2023-08-04T01:11:03+00:00"
},
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v6.3.4", "version": "v6.3.4",

View File

@ -70,7 +70,7 @@ return [
| |
*/ */
'timezone' => 'UTC', 'timezone' => 'Asia/Jakarta',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -27,18 +27,16 @@ return new class extends Migration
$table->string('signature_key')->nullable(); $table->string('signature_key')->nullable();
$table->string('token'); $table->string('token');
$table->string('metode_pembayaran')->nullable(); $table->string('metode_pembayaran')->nullable();
$table->string('acquire')->nullable();
$table->string('issuer')->nullable();
$table->char('currency',3)->nullable(); $table->char('currency',3)->nullable();
$table->string('fraud_status')->nullable(); $table->string('fraud_status')->nullable();
$table->string('merchant_id')->nullable(); $table->string('merchant_id')->nullable();
$table->string('status_code')->nullable(); $table->string('status_code')->nullable();
$table->string('tipe_transaction')->nullable(); $table->string('status_message')->nullable();
$table->enum('status',['settlement','capture','pending','cancel','refund','expire','failure','progress','failed','sending','sended','finished'])->default('pending'); // transaction_status $table->enum('status',['settlement','capture','pending','cancel','refund','expire','failure','progress','failed','sending','sended','finished'])->default('pending'); // transaction_status
$table->timestamp('batas_pembayaran'); $table->timestamp('batas_pembayaran');
$table->timestamp('batas_pengiriman_barang_awal'); $table->timestamp('batas_pengiriman_barang_awal');
$table->timestamp('batas_pengiriman_barang_akhir'); $table->timestamp('batas_pengiriman_barang_akhir');
$table->timestamp('tanggal_pembayaran')->nullable(); $table->timestamp('tanggal_transaksi')->nullable();
$table->timestamps(); $table->timestamps();
$table->foreign('pembeli')->on('users')->references('email'); $table->foreign('pembeli')->on('users')->references('email');
$table->foreign('penjual')->on('users')->references('email'); $table->foreign('penjual')->on('users')->references('email');

View File

@ -246,7 +246,7 @@ select.form-control:not([size]):not([multiple]),
} }
textarea.form-control { textarea.form-control {
height: 64px !important; min-height: 200px !important;
} }
.custom-control { .custom-control {

View File

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

View File

@ -55,8 +55,8 @@
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}"> <link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/components.css') }}"> <link rel="stylesheet" href="{{ asset('assets/css/components.css') }}">
<!-- Start GA --> <!-- Start GA -->
{{-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script> --}} {{-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
{{-- <script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
function gtag() { function gtag() {

View File

@ -24,7 +24,7 @@
</div> </div>
</div> </div>
<div class="row mt-sm-4"> <div class="row mt-sm-4">
<div class="col-12 col-md-12 col-lg-5"> <div class="col-sm-12 col-md-12 col-lg-5">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="activities"> <div class="activities">
@ -35,11 +35,11 @@
class="activity-icon {{ $tracking->background }} text-white shadow-primary"> class="activity-icon {{ $tracking->background }} text-white shadow-primary">
<i class="{{ $tracking->judul }}" style="font-size: 30px;" <i class="{{ $tracking->judul }}" style="font-size: 30px;"
aria-hidden="true"></i> aria-hidden="true"></i>
<!-- Mengganti ikon dengan ikon clipboard-list dan mengatur ukuran ikon -->
</div> </div>
<div class="activity-detail"> <div class="activity-detail">
<div class="mb-2"> <div class="mb-2">
<span class="text-job text-primary">{{ $tracking->created_at }}</span> <span
class="text-job text-primary">{{ date('F j, Y, g:i:s a', strtotime($tracking->created_at)) }}</span>
</div> </div>
<p>{{ $tracking->deskripsi }}</p> <p>{{ $tracking->deskripsi }}</p>
</div> </div>
@ -48,7 +48,6 @@
<div class="activity"> <div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary"> <div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-ban" style="font-size: 36px;"></i> <i class="fas fa-ban" style="font-size: 36px;"></i>
<!-- Mengganti ikon dengan ikon clipboard-list dan mengatur ukuran ikon -->
</div> </div>
<div class="activity-detail"> <div class="activity-detail">
<div class="mb-2"> <div class="mb-2">
@ -63,120 +62,224 @@
</div> </div>
</div> </div>
</div> </div>
<div class="section-body"> <div class="col-lg-7 col-sm-12">
<div class="invoice"> <div class="section-body">
<div class="invoice-print"> <div class="invoice">
<h2 style="margin-bottom: -1em">REKBER</h2> <div class="invoice-print">
<div class="row"> <h2 style="margin-bottom: -1em">REKBER</h2>
<div class="col-lg-12"> <div class="row">
<hr> <div class="col-lg-12">
<div class="section-title">Keterangan</div> <hr>
<div class="row"> <div class="section-title">Keterangan</div>
<div class="col-md-6"> <div class="row">
<address> <div class="col-md-6">
<strong>Pembeli:</strong><br> <address>
{{ ucwords(strtolower($transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->nama_belakang)) }}<br> <strong>Pembeli:</strong><br>
{{ ucwords(strtolower($transaction->data_pembeli->alamat)) }}<br> {{ ucwords(strtolower($transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->nama_belakang)) }}<br>
{{ ucwords(strtolower($transaction->data_pembeli->getVillageName() . ', ' . $transaction->data_pembeli->getDistrictName())) }}<br> {{ ucwords(strtolower($transaction->data_pembeli->alamat)) }}<br>
{{ ucwords(strtolower($transaction->data_pembeli->getCityName() . ', ' . $transaction->data_pembeli->getProvinceName())) }} {{ ucwords(strtolower($transaction->data_pembeli->getVillageName() . ', ' . $transaction->data_pembeli->getDistrictName())) }}<br>
</address> {{ ucwords(strtolower($transaction->data_pembeli->getCityName() . ', ' . $transaction->data_pembeli->getProvinceName())) }}
</address>
</div>
<div class="col-md-6 text-md-right">
<address>
<strong>Penjual:</strong><br>
{{ ucwords(strtolower($transaction->data_penjual->nama_depan . ' ' . $transaction->data_penjual->nama_belakang)) }}<br>
{{ ucwords(strtolower($transaction->data_penjual->alamat)) }}<br>
{{ ucwords(strtolower($transaction->data_penjual->getVillageName() . ', ' . $transaction->data_penjual->getDistrictName())) }}<br>
{{ ucwords(strtolower($transaction->data_penjual->getCityName() . ', ' . $transaction->data_penjual->getProvinceName())) }}
</address>
</div>
</div> </div>
<div class="col-md-6 text-md-right"> <div class="row">
<address> <div class="col-md-12 text-md-left">
<strong>Penjual:</strong><br> <address>
{{ ucwords(strtolower($transaction->data_penjual->nama_depan . ' ' . $transaction->data_penjual->nama_belakang)) }}<br> <strong>Tanggal Transaksi:</strong><br>
{{ ucwords(strtolower($transaction->data_penjual->alamat)) }}<br> {{ $transaction->created_at }}<br><br>
{{ ucwords(strtolower($transaction->data_penjual->getVillageName() . ', ' . $transaction->data_penjual->getDistrictName())) }}<br> </address>
{{ ucwords(strtolower($transaction->data_penjual->getCityName() . ', ' . $transaction->data_penjual->getProvinceName())) }} </div>
</address> <div class="col-md-6">
</div> <address>
</div> <strong>Metode Pembayaran:</strong><br>
<div class="row"> Visa ending **** 4242<br>
<div class="col-md-12 text-md-left"> npannisa@gmail.com
<address> </address>
<strong>Tanggal Transaksi:</strong><br> </div>
{{ $transaction->created_at }}<br><br> <div class="col-md-6 text-md-right">
</address> <address>
</div> <strong>Tanggal Pembayaran:</strong><br>
<div class="col-md-6"> {{ $transaction->updated_at }}<br><br>
<address> {{-- {{$transaction->tanggal_pembayaran}}<br><br> --}}
<strong>Metode Pembayaran:</strong><br> </address>
Visa ending **** 4242<br> </div>
npannisa@gmail.com
</address>
</div>
<div class="col-md-6 text-md-right">
<address>
<strong>Tanggal Pembayaran:</strong><br>
{{ $transaction->updated_at }}<br><br>
{{-- {{$transaction->tanggal_pembayaran}}<br><br> --}}
</address>
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="row mt-4"> <div class="row mt-4">
<div class="col-md-12"> <div class="col-md-12">
<div class="section-title">Rangkuman Transaksi</div> <div class="section-title">Rangkuman Transaksi</div>
<p class="section-lead">Semua barang yang didaftarkan dalam transaksi.</p> <p class="section-lead">Semua barang yang didaftarkan dalam transaksi.</p>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped table-hover table-md"> <table class="table table-striped table-hover table-md">
<tr> <tr>
<th data-width="40">#</th> <th data-width="40">#</th>
<th>Nama Barang</th> <th>Nama Barang</th>
<th class="text-center">Harga</th> <th class="text-center">Harga</th>
<th class="text-center">Jumlah</th> <th class="text-center">Jumlah</th>
<th class="text-right">Total</th> <th class="text-right">Total</th>
</tr> </tr>
<tr> <tr>
<td>1</td> <td>1</td>
<td>{{ $transaction->nama_barang }}</td> <td>{{ $transaction->nama_barang }}</td>
<td class="text-center">{{ $transaction->harga_barang }}</td> <td class="text-center">{{ $transaction->harga_barang }}</td>
<td class="text-center">{{ $transaction->jumlah_barang }}</td> <td class="text-center">{{ $transaction->jumlah_barang }}</td>
<td class="text-right"> <td class="text-right">
{{ $transaction->harga_barang * $transaction->jumlah_barang }}</td> {{ $transaction->harga_barang * $transaction->jumlah_barang }}</td>
</tr> </tr>
</table> </table>
</div>
<div class="row mt-4">
<div class="col-lg-8">
<div class="section-title">Payment Method</div>
<p class="section-lead">{{$transaction->metode_pembayaran}}</p>
<div class="images">
<img src="{{ asset('assets/img/visa.png') }}" alt="visa">
<img src="{{ asset('assets/img/jcb.png') }}" alt="jcb">
<img src="{{ asset('assets/img/mastercard.png') }}" alt="mastercard">
<img src="{{ asset('assets/img/paypal.png') }}" alt="paypal">
</div>
</div> </div>
<div class="col-lg-4 text-right"> <div class="row mt-4">
<div class="invoice-detail-item"> <div class="col-lg-8">
<div class="invoice-detail-name">Subtotal</div> <div class="section-title">Payment Method</div>
<div class="invoice-detail-value">Rp {{ number_format($transaction->total_harga, 2, ',', '.') }}</div> <p class="section-lead">{{ $transaction->metode_pembayaran }}</p>
</div> <div class="images">
<div class="invoice-detail-item"> <img src="{{ asset('assets/img/visa.png') }}" alt="visa">
<div class="invoice-detail-name">Biaya Admin</div> <img src="{{ asset('assets/img/jcb.png') }}" alt="jcb">
<div class="invoice-detail-value"> <img src="{{ asset('assets/img/mastercard.png') }}" alt="mastercard">
Rp {{ number_format($transaction->total_keuntungan, 2, ',', '.') }} <img src="{{ asset('assets/img/paypal.png') }}" alt="paypal">
</div> </div>
</div> </div>
<hr class="mt-2 mb-2"> <div class="col-lg-4 text-right">
<div class="invoice-detail-item"> <div class="invoice-detail-item">
<div class="invoice-detail-name">Total</div> <div class="invoice-detail-name">Subtotal</div>
<div class="invoice-detail-value invoice-detail-value-lg"> <div class="invoice-detail-value">Rp
Rp {{ number_format($transaction->total_bayar, 2, ',', '.') }}</div> {{ number_format($transaction->total_harga, 2, ',', '.') }}</div>
</div>
<div class="invoice-detail-item">
<div class="invoice-detail-name">Biaya Admin</div>
<div class="invoice-detail-value">
Rp {{ number_format($transaction->total_keuntungan, 2, ',', '.') }}
</div>
</div>
<hr class="mt-2 mb-2">
<div class="invoice-detail-item">
<div class="invoice-detail-name">Total</div>
<div class="invoice-detail-value invoice-detail-value-lg">
Rp {{ number_format($transaction->total_bayar, 2, ',', '.') }}
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<hr>
{{-- <div class="text-right">
@if ($transaction->metode_pembayaran == "qris")
<button class="btn btn-danger" style="min-width: 100px; min-height: 60px; font-size: 16px" id="bayar">Bayar</button>
@endif
<button class="btn btn-outline-danger" style="min-width: 80px; min-height: 60px; font-size: 12px">Batal {{$transaction->metode_pembayaran}}</button>
</div> --}}
</div> </div>
<hr>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
{{-- <script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js"
data-client-key="SB-Mid-client-rk6kY5XbPLChy3Lg"></script>
<script>
$(document).ready(function() {
// Bayar
$('#bayar').on('click', function() {
const id = $(this).data('id');
const token = $(this).data('token');
const csrfToken = $('meta[name="csrf-token"]').attr('content');
snap.pay(token, {
onSuccess: function(result) {
const formData = new FormData();
formData.append('status', result.transaction_status);
formData.append('tanggal_pembayaran', result.transaction_time);
formData.append('metode_pembayaran', result.payment_type);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': csrfToken
}
});
$.ajax({
url: "{{ route('payment-transaction.pembeli', ':id') }}"
.replace(':id', id),
type: "POST",
data: formData,
contentType: false,
processData: false,
success: function(response) {
Swal.fire({
title: response.status ? 'Berhasil' :
'Gagal',
text: response.message,
icon: response.status ? 'success' :
'error',
confirmButtonText: 'OK'
});
console.log(response);
},
error: function(error) {
Swal.fire({
title: 'Gagal',
text: 'Gagal mengupdate pembayaran ke database',
icon: 'error'
});
}
});
console.log(result);
},
onPending: function(result) {
Swal.fire({
title: 'Ditunda',
text: 'Pemabayaran ditunda. Silahkan lakukan pembayaran nanti',
icon: 'info'
});
console.log(result);
},
onError: function(result) {
Swal.fire({
title: 'Gagal',
text: 'Terjadi kesalahan karena ' + result,
icon: 'error'
});
console.log(result);
},
onClose: function(error) {
Swal.fire({
title: 'Ditunda',
text: 'Kamu menutup halaman pembayaran. Silahkan lakukan pembayaran nanti',
icon: 'info'
});
console.log(error);
}
});
});
$('table-3').on('click', '#orderHasNotReceived', function() {
const id = $(this).data('id');
console.log(id);
});
$('#table-3').on('click', '#orderHasReceived', function() {
const id = $(this).data('id');
console.log(id);
});
$('#table-3').on('click', '#refund', function() {
const id = $(this).data('id');
console.log(id);
});
});
</script> --}}
@endsection @endsection

View File

@ -5,9 +5,8 @@
<div class="section-header"> <div class="section-header">
<div class="section-header-breadcrumb"> <div class="section-header-breadcrumb">
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div> <div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
<div class="breadcrumb-item"><a href="#"> Transaction</a></div> <div class="breadcrumb-item"><a href="{{ route('user-transaction.index.pembeli') }}">Transaksi Pembeli</a>
<div class="breadcrumb-item">Manajemen Kontak</div> </div>
<div class="breadcrumb-item">Halaman Refund</div>
</div> </div>
</div> </div>
@ -44,15 +43,18 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach ($transactions as $transaction) @forelse ($transactions as $transaction)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $loop->iteration }}</td>
<td>{{ $transaction->id }}</td> <td>{{ $transaction->id }}</td>
<td>{{ $transaction->data_penjual->nama_depan.' '.$transaction->data_penjual->nama_belakang }}</td> <td>{{ $transaction->data_penjual->nama_depan . ' ' . $transaction->data_penjual->nama_belakang }}
<td>Rp {{number_format($transaction->total_bayar,2, ',', '.') }}</td> </td>
<td>Rp {{ number_format($transaction->total_bayar, 2, ',', '.') }}</td>
<td>{{ $transaction->created_at }}</td> <td>{{ $transaction->created_at }}</td>
<td>{{ $transaction->updated_at }}</td> <td>{{ $transaction->updated_at }}</td>
<td>{{ ($transaction->status == 'pending' ? 'Menunggu Pembayaran' : 'Selesai') }}</td> <td><a href="#" data-toggle="modal"
data-target="#modalKeteranganStatus">{{ ucwords($transaction->status) }}</a>
</td>
<td> <td>
<div class="btn-group"> <div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle" <button type="button" class="btn btn-primary dropdown-toggle"
@ -62,29 +64,38 @@
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a class="dropdown-item" href="{{route('user-transaction.detail.pembeli',$transaction->id)}}">Detail</a></li>
{{-- @if ($transaction->status == 'Pending')
@endif --}}
<li><a class="dropdown-item" <li><a class="dropdown-item"
href="/refund-transaction">Refund</a></li> href="{{ route('user-transaction.detail.pembeli', $transaction->id) }}">Detail</a>
{{-- <li><a class="dropdown-item" </li>
href="/invoice-transaction">Bayar</a></li> --}}
<li><a class="dropdown-item" id="bayar"
data-id="{{ $transaction->id }}"
data-token="{{$transaction->token}}">Bayar</a>
{{-- data-id="{{ $transaction }}">Bayar</a> --}}
</li> @if ($transaction->status == 'sended')
<li><a class="dropdown-item" id="selesai" <li><a class="dropdown-item" data-toggle="modal"
data-id="{{ $transaction->id }}">Selesai</a> data-target="#modalFinish" id="tracking"
{{-- data-id="{{ $transaction }}">Selesai</a> --}} data-id="{{ $transaction->id }}"
</li> href="#">Selesaikan</a>
</li>
@endif
@if ($transaction->status == 'pending')
<li><a class="dropdown-item" id="bayar"
data-id="{{ $transaction->id }}"
data-token="{{ $transaction->token }}"
href="#">Bayar</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> </ul>
</div> </div>
</td> </td>
</tr> </tr>
@endforeach @empty
@endforelse
</tbody> </tbody>
</table> </table>
</div> </div>
@ -94,8 +105,10 @@
</div> </div>
</section> </section>
</div> </div>
@extends('user.transaction.pembeli.modal-bayar-transaction')
@extends('user.transaction.pembeli.modal-end-transaction') @extends('user.transaction.pembeli.modal-end-transaction')
@extends('user.transaction.pembeli.modal-tracking')
@extends('user.transaction.pembeli.modal-keterangan-status')
<script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js" <script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js"
data-client-key="SB-Mid-client-rk6kY5XbPLChy3Lg"></script> data-client-key="SB-Mid-client-rk6kY5XbPLChy3Lg"></script>
<script> <script>
@ -103,7 +116,7 @@
// Bayar // Bayar
$('#table-3').on('click', '#bayar', function() { $('#table-3').on('click', '#bayar', function() {
const id = $(this).data('id'); const id = $(this).data('id');
const token =$(this).data('token'); const token = $(this).data('token');
const csrfToken = $('meta[name="csrf-token"]').attr('content'); const csrfToken = $('meta[name="csrf-token"]').attr('content');
snap.pay(token, { snap.pay(token, {
@ -114,25 +127,29 @@
formData.append('metode_pembayaran', result.payment_type); formData.append('metode_pembayaran', result.payment_type);
$.ajaxSetup({ $.ajaxSetup({
headers:{ headers: {
'X-CSRF-TOKEN': csrfToken 'X-CSRF-TOKEN': csrfToken
} }
}); });
$.ajax({ $.ajax({
url:"{{route('payment-transaction.pembeli',':id')}}".replace(':id',id), url: "{{ route('payment-transaction.pembeli', ':id') }}"
type:"POST", .replace(':id', id),
type: "POST",
data: formData, data: formData,
contentType: false, contentType: false,
processData: false, processData: false,
success:function(response){ success: function(response) {
Swal.fire({ Swal.fire({
title: response.status ? 'Berhasil' : 'Gagal', title: response.status ? 'Berhasil' :
'Gagal',
text: response.message, text: response.message,
icon: response.status ? 'success' : 'error', icon: response.status ? 'success' :
'error',
confirmButtonText: 'OK' confirmButtonText: 'OK'
}); });
console.log(response); console.log(response);
},error:function(error){ },
error: function(error) {
Swal.fire({ Swal.fire({
title: 'Gagal', title: 'Gagal',
text: 'Gagal mengupdate pembayaran ke database', text: 'Gagal mengupdate pembayaran ke database',
@ -143,40 +160,119 @@
console.log(result); console.log(result);
}, },
onPending: function(result) { onPending: function(result) {
/* You may add your own implementation here */
// alert("wating your payment!");
Swal.fire({ Swal.fire({
title: 'Ditunda', title: 'Ditunda',
text: 'Pemabayaran ditunda. Silahkan tunggu sebentar ' + result, text: 'Pemabayaran ditunda. Silahkan lakukan pembayaran nanti',
icon: 'info' icon: 'info'
}); });
console.log(result); console.log(result);
}, },
onError: function(result) { onError: function(result) {
/* You may add your own implementation here */
Swal.fire({ Swal.fire({
title : 'Gagal', title: 'Gagal',
text: 'Terjadi kesalahan ' + result, text: 'Terjadi kesalahan karena ' + result,
icon: 'error' icon: 'error'
}); });
console.log(result); console.log(result);
}, },
onClose: function(error) { onClose: function(error) {
/* You may add your own implementation here */
Swal.fire({ Swal.fire({
title: 'Ditunda', title: 'Ditunda',
text: 'Kamu menutup halaman pembayaran. Silahkan masuk lagi untuk melakukan pembayaran', text: 'Kamu menutup halaman pembayaran. Silahkan lakukan pembayaran nanti',
icon: 'warning' icon: 'info'
}); });
console.log(error); console.log(error);
} }
}); });
}); });
});
</script>
$('#table-3').on('click', '#selesai', function() { {{-- Modal --}}
const id = $(this).data('id'); <script>
$(document).ready(function() {
$('#modalTracking').on('show.bs.modal', function(event) {
var triggerLink = $(event.relatedTarget); // Tombol yang memicu modal
var transactionDatas = triggerLink.data('transaction'); // Ambil data dari tombol
// Buat variabel untuk menyimpan HTML aktivitas
transactionDatas = transactionDatas.reverse();
var activitiesHtml = '';
// Periksa apakah ada data transaksi
if (transactionDatas && transactionDatas.length > 0) {
// Iterasi melalui data transaksi dan tambahkan ke activitiesHtml
$.each(transactionDatas, function(index, transactionDescription) {
activitiesHtml += `
<div class="activity">
<div class="activity-icon ${transactionDescription.background} text-white shadow-primary">
<i class="${transactionDescription.judul}" style="font-size: 36px;"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">${new Date(transactionDescription.created_at).toLocaleString()}</span>
</div>
<p>${transactionDescription.deskripsi}</p>
</div>
</div>
`;
});
} else {
// Tidak ada data transaksi, tambahkan pesan kosong
activitiesHtml += `
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-ban" style="font-size: 36px;"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">--, --:--:-- --</span>
</div>
<p>Kosong</p>
</div>
</div>
`;
}
// Menampilkan data dalam modal
var modal = $(this);
modal.find('.activities').html(activitiesHtml);
});
$('#modalFinish').on('show.bs.modal', function(event) {
var triggerLink = $(event.relatedTarget);
var id = triggerLink.data('id');
var activitiesHtml = '';
var modal = $(this);
activitiesHtml += `
<a href="#" type="button" class="btn btn-warning" data-id="${id}" id="orderHasNotReceived">Pesanan Belum diterima</a>
<a href="#" type="button" class="btn btn-primary" data-id="${id}" id="orderHasReceived">Pesanan diterima</a>
<a href="#" type="button" class="btn btn-danger" data-id="${id}" id="refund">Refund</a>
`;
modal.find('.modal-footer').html(activitiesHtml);
console.log(id); console.log(id);
}); });
//pesanan belum datang
$('#modalFinish').on('click', '#orderHasNotReceived', function() {
var id = $(this).data('id');
console.log(id);
});
//selesai
$('#modalFinish').on('click', '#orderHasReceived', function() {
var id = $(this).data('id');
console.log(id);
});
// refund
$('#modalFinish').on('click', '#refund', function() {
var id = $(this).data('id');
console.log(id);
});
}); });
</script> </script>
@endsection @endsection

View File

@ -1,33 +0,0 @@
<div class="modal fade" id="bayar" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"
aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header d-flex justify-content-center">
<h3 class="modal-title fs-5" id="staticBackdropLabel">Lakukan Pembayaran</h3>
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
</div>
<div class="modal-body">
<form action="#" method="post">
<div class="mb-3">
<label for="nominal" class="form-label">Nominal</label>
<input type="text" class="form-control" name="nominal" id="nominal" required>
</div>
<div class="mb-3">
<label for="tujuan" class="form-label">Tujuan</label>
<input type="text" class="form-control" name="tujuan" id="tujuan" required>
</div>
<div class="mb-3">
<label for="textare" class="form-label">Deskripsi</label>
<textarea class="form-control" id="deskripsi" rows="3"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<a href="/invoice-transaction" type="button" class="btn btn-primary">Selesai</a>
</div>
</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
<div class="modal fade" id="selesai" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" <div class="modal fade" id="modalFinish" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"
aria-labelledby="staticBackdropLabel" aria-hidden="true"> aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered"> <div class="modal-dialog modal-dialog-centered">
<!-- Menggunakan class modal-dialog-centered untuk memusatkan modal --> <!-- Menggunakan class modal-dialog-centered untuk memusatkan modal -->
@ -8,8 +8,7 @@
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a> <a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
</div> </div>
<div class="modal-footer d-flex justify-content-center"> <div class="modal-footer d-flex justify-content-center">
<a href="/pembeli" type="button" class="btn btn-danger">Pesanan Belum diterima</a>
<a href="/pembeli" type="button" class="btn btn-primary">Pesanan diterima</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,72 @@
<div class="modal fade" id="modalKeteranganStatus" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"
aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header d-flex justify-content-center">
<h3 class="modal-title fs-5" id="staticBackdropLabel">Keterangan Status Transaksi</h3>
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
</div>
<div class="modal-body">
<div class="mb-3">
<label class="form-label">Pending</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Capture</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Settlement</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Cancel</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Expire</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Progress</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Sending</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Sended</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Finished</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Failure</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Failed</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Refund</label>
<p class="form-control">asdas</p>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,25 @@
<!-- Modal -->
<div class="modal fade" id="modalTracking" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle"
aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h2 class="modal-title" id="exampleModalLongTitle">Tracking Information</h2>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="section-body">
<div class="row">
<div class="col-12">
<div class="activities">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -99,7 +99,7 @@
<div class="form-row"> <div class="form-row">
<label style="margin-right: 200px;" id="biayaAdmin" data-admin="">Biaya Admin <label style="margin-right: 200px;" id="biayaAdmin" data-admin="">Biaya Admin
(0.1%)</label> ({{$persentase_keuntungan}}%)</label>
<div style="display: inline-block;" id="totalBiayaAdmin">Rp 0,00</div> <div style="display: inline-block;" id="totalBiayaAdmin">Rp 0,00</div>
</div> </div>
@ -127,7 +127,7 @@
<script> <script>
$(document).ready(function() { $(document).ready(function() {
let totalHarga = 0; let totalHarga = 0;
let biayaAdmin = 0.1; let biayaAdmin = {{$persentase_keuntungan}};
let totalBiayaAdmin = 0; let totalBiayaAdmin = 0;
let totalBayar = 0; let totalBayar = 0;
@ -295,7 +295,7 @@
let hargaBarang = document.querySelector('[name="harga_barang"]').value; let hargaBarang = document.querySelector('[name="harga_barang"]').value;
let satuanBarang = document.querySelector('[name="satuan_barang"]').value; let satuanBarang = document.querySelector('[name="satuan_barang"]').value;
let jumlahBarang = document.querySelector('[name="jumlah_barang"]').value; let jumlahBarang = document.querySelector('[name="jumlah_barang"]').value;
let deskripsi = document.querySelector('[name="deskripsi"]').value; let deskripsi = document.querySelector('textarea[name="deskripsi"]').value;
let emptyInput = []; let emptyInput = [];
@ -353,7 +353,7 @@
formData.append('jumlah_barang', jumlahBarang); formData.append('jumlah_barang', jumlahBarang);
// formData.append('batas_pengiriman', batasPengiriman); // formData.append('batas_pengiriman', batasPengiriman);
formData.append('deskripsi', deskripsi); formData.append('deskripsi', deskripsi);
formData.append('persentase_keuntungan', 0.1); formData.append('persentase_keuntungan', biayaAdmin);
formData.append('total_keuntungan', totalBiayaAdmin); formData.append('total_keuntungan', totalBiayaAdmin);
formData.append('total_harga', totalHarga); formData.append('total_harga', totalHarga);
formData.append('total_bayar', totalBayar); formData.append('total_bayar', totalBayar);

View File

@ -26,30 +26,32 @@
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped" id="table-1"> <table class="table table-striped" id="table-3">
<thead> <thead>
<tr> <tr>
<th>#</th> <th>No</th>
<th>Order ID</th> <th>Order ID</th>
<th>Pembeli</th> <th>Pembeli</th>
<th>Total</th> <th>Total</th>
<th>Batas Pengiriman Barang</th> <th>Tanggal Pembuatan</th>
<th>Tanggal Update</th>
<th>Status</th> <th>Status</th>
<th>Action</th> <th>Aksi</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach ($transactions as $transaction) @forelse ($transactions as $transaction)
<tr> <tr>
<td>{{ $loop->iteration }}</td> <td>{{ $loop->iteration }}</td>
<td class="font-weight-600">{{ $transaction->id }}</td> <td>{{ $transaction->id }}</td>
<td class="font-weight-600"> <td>{{ $transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->nama_belakang }}
{{ ucwords(strtolower($transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->nama_belakang)) }} </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">{{ ucwords($transaction->status) }}</a>
</td> </td>
<td class="font-weight-600">{{ $transaction->total_bayar }}</td>
{{-- <td class="font-weight-600">{{ $transaction->batas_pengiriman_barang }}</td> --}}
<td>{{ $transaction->batas_pengiriman_barang }}</td>
<td class="font-weight-600">{{ $transaction->status }}</td>
<td> <td>
<div class="btn-group"> <div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle" <button type="button" class="btn btn-primary dropdown-toggle"
@ -62,13 +64,32 @@
href="{{ route('user-transaction.detail.pembeli', $transaction->id) }}">Detail</a> href="{{ route('user-transaction.detail.pembeli', $transaction->id) }}">Detail</a>
</li> </li>
<li><a class="dropdown-item" data-toggle="modal" <li><a class="dropdown-item" data-toggle="modal"
data-target="#tracking">Tracking</a></li> data-target="#tracking" id="tracking"
{{-- <li><a class="dropdown-item" href="/tracking">Tracking</a></li> --}} data-tracking="{{ $transaction->transactionDescription }}"
href="#">Tracking</a>
</li>
{{-- Setelah dibayar --}}
@if ($transaction->status == 'settlement')
<li><a class="dropdown-item" href="#">Process</a>
</li>
@endif
{{-- Pengiriman barang --}}
@if ($transaction->status == 'progress')
<li><a class="dropdown-item" href="#">Kirim
Barang</a>
</li>
@endif
@if ($transaction->status == 'sending')
<li><a class="dropdown-item" href="#">Barang sudah
sampai</a>
</li>
@endif
</ul> </ul>
</div> </div>
</td> </td>
</tr> </tr>
@endforeach @empty
@endforelse
</tbody> </tbody>
</table> </table>
</div> </div>
@ -80,4 +101,13 @@
</section> </section>
</div> </div>
@extends('user.transaction.penjual.modal-tracking') @extends('user.transaction.penjual.modal-tracking')
@extends('user.transaction.penjual.modal-keterangan-status')
<script>
$(document).ready(function() {
$('#table-3').on('click', '#tracking', function() {
const transactionTracking = $(this).data('tracking');
console.log(transactionTracking);
});
});
</script>
@endsection @endsection

View File

@ -0,0 +1,72 @@
<div class="modal fade" id="modalKeteranganStatus" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"
aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header d-flex justify-content-center">
<h3 class="modal-title fs-5" id="staticBackdropLabel">Keterangan Status Transaksi</h3>
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
</div>
<div class="modal-body">
<div class="mb-3">
<label class="form-label">Pending</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Capture</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Settlement</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Cancel</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Expire</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Progress</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Sending</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Sended</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Finished</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Failure</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Failed</label>
<p class="form-control">asdas</p>
</div>
<div class="mb-3">
<label class="form-label">Refund</label>
<p class="form-control">asdas</p>
</div>
</div>
</div>
</div>
</div>

View File

@ -14,103 +14,36 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="activities"> <div class="activities">
{{-- @forelse ($transaction->transactionDescription as $transactionDescription)
<div class="activity"> <div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary"> <div class="activity-icon {{$transactionDescription->background}} text-white shadow-primary">
<i class="fas fa-clipboard-list" style="font-size: 36px;"></i> <i class="{{$transactionDescription->judul}}" style="font-size: 36px;"></i>
</div> </div>
<div class="activity-detail"> <div class="activity-detail">
<div class="mb-2"> <div class="mb-2">
<span class="text-job text-primary">August 21, 2023, 8:30:15 am</span> <span class="text-job text-primary">{{date("F j, Y, g:i:s a", strtotime($transactionDescription->created_at))}}</span>
</div> </div>
<p>User Created Trade</p> <p>{{$transactionDescription->deskripsi}}</p>
</div> </div>
</div> </div>
@empty
<div class="activity"> <div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary"> <div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-bell" style="font-size: 36px;"></i> <i class="fas fa-ban" style="font-size: 36px;"></i>
</div> </div>
<div class="activity-detail"> <div class="activity-detail">
<div class="mb-2"> <div class="mb-2">
<span class="text-job text-primary">August 22, 2023, 8:30:15 am</span> <span class="text-job text-primary">--, --:--:-- --</span>
</div> </div>
<p>System Notified Admin</p> <p>Kosong</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-check-circle" style="font-size: 36px;"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 23, 2023, 8:30:15 am</span>
</div>
<p>Admin Accepted Trade</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-trash-alt" style="font-size: 36px;"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 24, 2023, 8:30:15 am</span>
</div>
<p>Trade in system</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-clipboard-check" style="font-size: 36px;"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 24, 2023, 8:30:15 am</span>
</div>
<p>Transaction Success</p>
</div> </div>
</div> </div>
@endforelse --}}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer">
<a href="#" class="btn btn-primary mx-1">Back</a>
</div>
</div> </div>
</div> </div>
</div> </div>
{{-- @extends('layout.main')
@section('content')
@foreach ($detail_transaction as $detail_transactions)
<div class="main-content">
<section class="section">
<div class="tracking-container">
<h2>Tracking Information</h2>
<div class="tracking-info">
<p>Tracking Number: <span
class="tracking-status">{{ $detail_transactions['tracking_number'] }}</span></p>
<p>Order ID: <span class="tracking-status">{{ $detail_transactions['orderId'] }}</span></p>
<p>Status: <span class="tracking-status">{{ $detail_transactions['status'] }}</span></p>
<p>Estimated: {{ $detail_transactions['estimated'] }}</p>
</div>
<h2>Tracking Details</h2>
<ul>
<li>{{ $detail_transactions['tracking_detail1'] }}</li>
<li>{{ $detail_transactions['tracking_detail2'] }}</li>
<li>{{ $detail_transactions['tracking_detail3'] }}</li>
</ul>
</div>
</section>
</div>
@endforeach
@endsection --}}

View File

@ -161,14 +161,15 @@ Route::middleware(['auth'])->group(function(){
Route::get('tambah-transaction','createTransaction')->name('tambah-transaction.pembeli'); Route::get('tambah-transaction','createTransaction')->name('tambah-transaction.pembeli');
Route::post('store-transaction','storeTransaction')->name('store-transaction.pembeli'); Route::post('store-transaction','storeTransaction')->name('store-transaction.pembeli');
Route::post('payment-transaction/{id}','paymentTransaction')->name('payment-transaction.pembeli'); Route::post('payment-transaction/{id}','paymentTransaction')->name('payment-transaction.pembeli');
Route::get('status','status');
//Penjual //Penjual
Route::get('user-transaction-penjual','indexPenjual')->name('user-transaction.index.penjual'); Route::get('user-transaction-penjual','indexPenjual')->name('user-transaction.index.penjual');
Route::get('translate','cancelTransaction');
}); });
// Tampilan refund // Tampilan refund
Route::controller(UserRefundController::class)->group(function(){ Route::controller(UserRefundController::class)->group(function(){
Route::get('user-refund','index')->name('user-refund.index'); Route::get('user-refund','index')->name('user-refund.index');
Route::get('user-refund-create','create')->name('user-refund.create');
}); });
}); });
}); });