Compare commits

..

6 Commits
master ... main

Author SHA1 Message Date
jilhanhaura
80afea9699 update 2023-09-22 09:08:19 +07:00
5f01f0d124 Tambahan dan perubahan table transaksi 2023-09-21 18:57:16 +07:00
ce8b355248 Transaksi ke midtrans 2023-09-21 14:39:32 +07:00
6c18bb1a52 Tambah transaksi 2023-09-18 18:28:52 +07:00
1af5e8a7da Perubahan login dan register 2023-09-12 19:35:08 +07:00
jilhanhaura
0d547ab4c3 Admin 2023-08-21 11:00:49 +07:00
63 changed files with 21808 additions and 3890 deletions

View File

@ -4,14 +4,33 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\Models\Transactions;
use App\Models\Transaction;
use App\Models\Refund;
use Illuminate\Support\Facades\Auth;
class AdminDashboardController extends Controller
{
public function index(){
$sumSettlement = 0;
$sumCancelled = 0;
$sumRefund = 0;
$currentYear = Carbon::now()->year;
$dataChartTransaction = [];
$dataChartRefund = [];
for($bulan = 1; $bulan <= 12; $bulan++){
$transaction = Transaction::whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total_bayar');
// $transaction = Transaction::where('status','finished')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total_bayar');
// $refund = Refund::whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total');
// $refund = Refund::where('status','Partial Refund')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total');
$dataChartTransaction[] = intval($transaction);
// $dataChartRefund[] = intval($refund);
}
return view('admin.index',[
"transaction"=>Transactions::allTransactions()
"transaction"=>Transactions::allTransactions(),
"dataChartTransaction" => $dataChartTransaction,
// "dataChartRefund" => $dataChartRefund
]);
}

View File

@ -3,10 +3,12 @@
namespace App\Http\Controllers\Login;
use App\Http\Controllers\Controller;
use App\Mail\verificationMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Storage;
use thiagoalessio\TesseractOCR\TesseractOCR;
@ -32,10 +34,6 @@ class LoginController extends Controller
public function login()
{
$provinces = Province::all();
$cities = City::all();
$districts = District::all();
$villages = Village::all();
return view('index');
}
@ -47,10 +45,18 @@ class LoginController extends Controller
public function authenticate(Request $request)
{
// dd($request);
$credentials = $request->validate([
'email' => ['required', 'email'],
'password' => ['required', 'min:8'],
]);
$credentials = $request->validate(
[
'email' => ['required', 'email'],
'password' => ['required', 'min:8'],
],
[
'email.required' => 'Alamat email wajib diisi.',
'email.email' => 'Alamat email harus berformat valid.',
'password.required' => 'Password wajib diisi.',
'password.min' => 'Password harus memiliki panjang minimal 8 karakter.',
]
);
if (Auth::attempt($credentials)) {
if (Auth::user()->status == 'Finished') {
@ -61,17 +67,22 @@ class LoginController extends Controller
} else {
return redirect()->intended('user');
}
} else if(Auth::user()->status == 'Rejected'){
Session::flash('message', 'Akun ditolak karena tidak memenuhi persyaratan');
return redirect()->back();
} else {
Session::flash('message', 'Akun tidak ditemukan atau sedang dalam pengajuan');
return redirect()->back();
}
}
// $error = $credentials->errors();
// ->withInput($request->except('key'))
// ->withErrors($validator)
return redirect()
->back()
->withErrors([
'email' => 'Email dengan' . $credentials['email'] . ' tidak tersedia.',
])
->withErrors($credentials)
->onlyInput('email');
}
@ -93,7 +104,6 @@ class LoginController extends Controller
public function register(Request $request)
{
// input
$nama_depan = $request->get('nama-depan');
$nama_belakang = $request->get('nama-belakang');
$tanggal_lahir = $request->get('tanggal-lahir');
@ -134,7 +144,7 @@ class LoginController extends Controller
$image->greyscale(); // Convert to grayscale
$image->contrast(10); // Increase contrast, adjust the value as needed
$preprocessedfotoKTP = storage_path('preprocessed_image.jpg');
$preprocessedfotoKTP = public_path('storage/preprocessed/preprocessed_image.jpg');
$image->save($preprocessedfotoKTP);
$result = (new TesseractOCR($preprocessedfotoKTP))->run();
@ -142,9 +152,10 @@ class LoginController extends Controller
// (5) Normalize
$lines = explode("\n", $result);
$namaOCR = '';
$nikOCR = '';
$nikInputan = $nik;
$namaInputan = $nama_depan.' '.$nama_belakang;
$namaInputan = $nama_depan . ' ' . $nama_belakang;
foreach ($lines as $line) {
// Mencari NIK
@ -160,7 +171,7 @@ class LoginController extends Controller
//Selesai
$persentase_kemiripan = (similar_text($nikInputan, $nikOCR, $percent) + similar_text($namaOCR, $namaOCR, $percent))/2;
$persentase_kemiripan = (similar_text($nikInputan, $nikOCR, $percent) + similar_text($namaOCR, $namaOCR, $percent)) / 2;
// $status = 'Progress';
// if (similar_text($nikInputan, $nikOCR, $percent) >= 70 && similar_text($namaOCR, $namaOCR, $percent) >= 70) {
@ -168,7 +179,6 @@ class LoginController extends Controller
// } else {
// $status = 'Progress';
// }
} catch (\Exception $e) {
// $status = 'Progress';
}
@ -178,11 +188,6 @@ class LoginController extends Controller
$password = Hash::make($new_password);
// return response()->json([
// 'status' => true,
// 'message' => Uuid::uuid4(),
// ]);
$result = User::create([
'id' => Uuid::uuid4(),
'nama_depan' => $nama_depan,
@ -265,4 +270,83 @@ class LoginController extends Controller
return response()->json($data);
}
public function kirimKodeVerifikasi(Request $request)
{
$email = $request->get('email');
$code = $request->get('code');
$verificationEmail = [
'code' => $code,
'email' => $email,
];
try {
Mail::to($email)->send(new verificationMail($verificationEmail));
return response()->json([
'message' => 'Kode verifikasi berhasil dikirim ke email. Silahkan cek di email anda.',
'status' => true,
]);
} catch (\Exception $e) {
return response()->json([
'message' => 'Kode verifikasi gagal dikirim ke email. ' . $e,
'status' => false,
]);
}
}
public function getOcr()
{
//OCR
// dd(phpinfo());
try {
$fotoKTP = public_path('storage/foto-ktp/ktp.jpg');
$image = Image::make($fotoKTP);
$image->greyscale(); // Convert to grayscale
$image->contrast(10); // Increase contrast, adjust the value as needed
$preprocessedfotoKTP = public_path('storage/preprocessed/preprocessed_image.jpg');
$image->save($preprocessedfotoKTP);
$result = (new TesseractOCR($preprocessedfotoKTP))->run();
// (5) Normalize
$lines = explode("\n", $result);
$nikOCR = '';
$namaOCR = '';
$nikInputan = '3471140209790001';
$namaInputan = 'RIYANTO. SE';
foreach ($lines as $line) {
// Mencari NIK
if (strpos($line, $nikInputan) !== false) {
$nikOCR = preg_replace('/[^0-9]/', '', $line);
}
// Mencari nama
if (strpos($line, $namaInputan) !== false) {
$namaOCR = trim(substr($line, strpos($line, ':') + 1));
}
}
//Selesai
$persentase_kemiripan = (similar_text($nikInputan, $nikOCR, $percent) + similar_text($namaOCR, $namaOCR, $percent)) / 2;
// $status = 'Progress';
dd([$persentase_kemiripan, $lines]);
// if (similar_text($nikInputan, $nikOCR, $percent) >= 70 && similar_text($namaOCR, $namaOCR, $percent) >= 70) {
// $status = 'Progress';
// } else {
// $status = 'Progress';
// }
} catch (\Exception $e) {
// $status = 'Progress';
dd($e);
}
//OCR
}
}

View File

@ -7,6 +7,7 @@ use App\Models\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class UserContactController extends Controller
{
@ -20,6 +21,16 @@ class UserContactController extends Controller
// dd($contacts);
}
public function getContact()
{
$data = DB::table('contacts')
->select('contacts.relasi_kontak', 'users.nama_depan', 'users.nama_belakang')
->join('users', 'contacts.relasi_kontak', '=', 'users.email')
->where('contacts.pemilik_kontak','=',Auth::user()->email)
->paginate(10);
return response()->json($data);
}
/**
* Show the form for creating a new resource.
*/
@ -34,23 +45,23 @@ class UserContactController extends Controller
public function store(Request $request)
{
$email_relasi = $request->input('email');
if($email_relasi == Auth::user()->email){
if ($email_relasi == Auth::user()->email) {
return response()->json([
'status' => false,
'message' => 'Kontak yang ingin didaftarkan tidak boleh sama',
]);
}else{
} else {
$result = Contact::create([
'pemilik_kontak' => Auth::user()->email,
'relasi_kontak' => $request->input('email'),
]);
if($result){
if ($result) {
return response()->json([
'status' => true,
'message' => 'Akun berhasil masuk ke kontak',
]);
}else{
} else {
return response()->json([
'status' => false,
'message' => 'Akun gagal masuk ke kontak',
@ -64,7 +75,6 @@ class UserContactController extends Controller
*/
public function show(Contact $contact)
{
}
/**
@ -90,14 +100,14 @@ class UserContactController extends Controller
{
try {
$result = Contact::destroy($id);
if($result){
if ($result) {
return response()->json([
'message' => 'Berhasil hapus data',
'status' => true,
]);
}else{
} else {
return response()->json([
'message' => 'Gagal hapus data karena '.$result,
'message' => 'Gagal hapus data karena ' . $result,
'status' => false,
]);
}
@ -112,13 +122,13 @@ class UserContactController extends Controller
public function cekEmail($email)
{
$result = User::where('email', $email)->get();
if ($result->isNotEmpty() && $result[0]->role == 'User') {
if($result[0]->status == 'Finished'){
if ($result->isNotEmpty() && $result[0]->role == 'User' && $result[0]->status != 'Rejected') {
if ($result[0]->status == 'Finished') {
return response()->json([
'status' => true,
'message' => $result,
]);
}else{
} else {
return response()->json([
'status' => false,
'message' => 'Akun dengen email ' . $email . ' tersedia dan belum diverifikasi',
@ -127,7 +137,7 @@ class UserContactController extends Controller
} else {
return response()->json([
'status' => false,
'message' => 'Akun dengen email ' . $email . ' tidak tersedia',
'message' => 'Akun dengen email ' . $email . ' tidak tersedia atau ditolak',
]);
}
}

View File

@ -3,21 +3,34 @@
namespace App\Http\Controllers\User;
use App\Models\Transaction;
use App\Models\TransactionDescription;
use App\Http\Controllers\Controller;
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 Ramsey\Uuid\Uuid;
use Midtrans\Config;
use Midtrans\Snap;
use Midtrans\Transaction as Trans;
class UserTransactionController extends Controller
{
/**
* Display a listing of the resource.
*/
public function indexPembeli()
{
return view('user.transaction.pembeli.transaction-pembeli',[
'name'=>'npannisa',
'TransactionUser'=>TransactionUser::HistoryTransaction()
return view('user.transaction.pembeli.index', [
'transactions' => Transaction::where('pembeli', Auth::user()->email)
->latest()
->get(),
]);
// dd(Transaction::where('pembeli',Auth::user()->email)->get());
}
/**
@ -25,17 +38,19 @@ class UserTransactionController extends Controller
*/
public function indexPenjual()
{
return view('user.transaction.penjual.transaction-penjual',[
'name'=>'npannisa',
"TransactionUser"=>TransactionUser::HistoryTransaction()
return view('user.transaction.penjual.index', [
'transactions' => Transaction::where('penjual', Auth::user()->email)->get(),
]);
}
public function detailTransaction($id){
return view('user.transaction.pembeli.detail-transaction',[
'name'=>'npannisa',
"TransactionUser"=>TransactionUser::HistoryTransaction()
public function detailTransaction($id)
{
return view('user.transaction.pembeli.detail-transaction', [
'transaction' => Transaction::findOrFail($id),
'trackings' => TransactionDescription::where('order_id', $id)->get(),
]);
// dd(Transaction::findOrFail($id));
}
/**
@ -43,10 +58,7 @@ class UserTransactionController extends Controller
*/
public function createTransaction(Request $request)
{
return view('user.transaction.pembeli.new-transaction',[
'name'=>'npannisa',
"TransactionUser"=>TransactionUser::HistoryTransaction()
]);
return view('user.transaction.pembeli.new-transaction');
}
/**
@ -54,12 +66,186 @@ class UserTransactionController extends Controller
*/
public function invoiceTransaction($id)
{
return view('user.transaction.pembeli.invoice-transaction',[
'name'=>'npannisa',
"TransactionUser"=>TransactionUser::HistoryTransaction()
return view('user.transaction.pembeli.invoice-transaction', [
'name' => 'npannisa',
'TransactionUser' => TransactionUser::HistoryTransaction(),
]);
}
public function storeTransaction(Request $request)
{
$pembeli = Auth::user()->email;
$penjual = $request->get('email_penjual');
$nama_barang = $request->get('nama_barang');
$satuan_barang = $request->get('satuan_barang');
$deskripsi_transaksi = $request->get('deskripsi');
$harga_barang = $request->get('harga_barang');
$jumlah_barang = $request->get('jumlah_barang');
$nama_depan_pembeli = Auth::user()->nama_depan;
$nama_belakang_pembeli = Auth::user()->nama_belakang;
$nohp_pembeli = Auth::user()->nohp;
$nama_penjual = User::where('email', $penjual)->value('nama_depan');
$alamat = ucwords(strtolower(Auth::user()->alamat));
$id = Uuid::uuid4();
$now = Carbon::now()->tz('Asia/Jakarta');
$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');
$total_harga = $request->get('total_harga');
$total_keuntungan = $request->get('total_keuntungan');
$total_bayar = $request->get('total_bayar');
$batas_pembayaran = $now->addDays(1)->toDateTimeString();
$batas_pengiriman_barang_awal = $now->addDays(2)->toDateTimeString();
$batas_pengiriman_barang_akhir = $now->addDays(5)->toDateTimeString();
$params = [
'transaction_details' => [
'order_id' => $id,
'gross_amount' => $total_bayar,
],
'item_details' => [
[
'id' => $nama_barang . time(),
'price' => $harga_barang,
'quantity' => $jumlah_barang,
'name' => $nama_barang,
],
[
'id' => 'BA01',
'price' => $total_keuntungan,
'quantity' => 1,
'name' => 'Biaya Admin',
],
],
'customer_details' => [
'firts_name' => $nama_depan_pembeli,
'last_name' => $nama_belakang_pembeli,
'email' => $pembeli,
'phone' => $nohp_pembeli,
'billing' => [
'first_name' => $nama_depan_pembeli,
'last_name' => $nama_belakang_pembeli,
'email' => $pembeli,
'phone' => $nohp_pembeli,
'address' => Auth::user()->alamat,
'city' => Auth::user()->village->district->city->name,
'country_code' => 'IDN',
],
],
'callbacks' => [
'finish' => 'http://127.0.0.1:8000/user/user-transaction-pembeli/',
],
'expiry' => [
'start_time' => $now->format('Y-m-d H:i:s P'),
'unit' => 'hours',
'duration' => 24,
],
];
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);
$token = $snap_token;
$status = 'pending';
$query = Transaction::create([
'id' => $id,
'pembeli' => $pembeli,
'penjual' => $penjual,
'nama_barang' => $nama_barang,
'deskripsi_transaksi' => $deskripsi_transaksi,
'satuan_barang' => $satuan_barang,
'harga_barang' => $harga_barang,
'jumlah_barang' => $jumlah_barang,
'persentase_keuntungan' => $persentase_keuntungan,
'total_keuntungan' => $total_keuntungan,
'total_harga' => $total_harga,
'total_bayar' => $total_bayar,
'token' => $token,
'status' => $status,
'batas_pembayaran' => $batas_pembayaran,
'batas_pengiriman_barang_awal' => $batas_pengiriman_barang_awal,
'batas_pengiriman_barang_akhir' => $batas_pengiriman_barang_akhir,
]);
if ($query) {
TransactionDescription::create([
'order_id' => $id,
'status' => $status,
'user' => $pembeli,
'judul' => 'fa fa-plus',
'background' => 'bg-buyer',
'deskripsi' => $nama_depan_pembeli . ' telah membuat transaksi baru dengan ' . $nama_penjual,
]);
return response()->json([
'status' => true,
'message' => 'Berhasil menambahkan transaksi. Silahkan lakukan pembayaran.',
]);
} else {
return response()->json([
'status' => false,
'message' => 'Gagal menambahkan transaksi.',
]);
}
}
public function updateStatusTransaction(Request $request)
{
}
public function acceptTransaction(Request $request)
{
}
public function paymentTransaction(Request $request, $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);
$result = json_decode(json_encode($payment), true);
$query = Transaction::where('id', $id)->update([
'acquire' => $result['acquirer'],
'currency' => $result['currency'],
'fraud_status' => $result['fraud_status'],
'issuer' => $result['issuer'],
'merchant_id' => $result['merchant_id'],
'metode_pembayaran' => $result['payment_type'],
'tanggal_pembayaran' => $result['settlement_time'],
'signature_key' => $result['signature_key'],
'status' => $result['transaction_status'],
'tipe_transaction' => $result['transaction_type'],
'status_code' => $result['status_code'],
]);
if ($query) {
return response()->json([
'status' => true,
'message' => 'Pembayaran sukses. Proses akan dilanjutkan ke penjual',
]);
} else {
return response()->json([
'status' => false,
'message' => 'Pembayaran gagal',
]);
}
}
/**
* Display the specified resource.
*/

View File

@ -0,0 +1,59 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class verificationMail extends Mailable
{
use Queueable, SerializesModels;
public $verificationEmail;
/**
* Create a new message instance.
*/
public function __construct($verificationEmail)
{
$this->verificationEmail = $verificationEmail;
}
/**
* Get the message envelope.
*/
// public function envelope(): Envelope
// {
// return new Envelope(
// subject: 'Verification Mail',
// );
// }
/**
* Get the message content definition.
*/
// public function content(): Content
// {
// return new Content(
// view: 'view.name',
// );
// }
/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
// public function attachments(): array
// {
// return [];
// }
public function build(){
return $this->subject('Kode Verifikasi')->view('email.verification-email');
}
}

View File

@ -23,7 +23,7 @@ class Refund extends Model
//Relasi
public function orders(){
return $this->belongsTo(Transaction::class, 'order_id', 'order_id');
return $this->belongsTo(Transaction::class, 'id', 'order_id');
}
//Relasi
}

View File

@ -18,12 +18,14 @@ class TransactionDescription extends Model
'order_id',
'user',
'judul',
'status',
'background',
'deskripsi'
];
//Relasi
public function order(){
return $this->belongsTo(Transaction::class, 'order_id', 'order_id');
return $this->belongsTo(Transaction::class, 'id', 'order_id');
}
public function user(){

View File

@ -15,20 +15,23 @@ class Transaction extends Model
* @var array<int, string>
*/
protected $fillable = [
'id',
'pembeli',
'penjual',
'judul_transaksi',
'deskripsi transaksi',
'nama_barang',
'deskripsi_transaksi',
'satuan_barang',
'harga_barang',
'jumlah_barang',
'persentase_keuntungan',
'total_keuntungan',
'harga',
'biaya_admin',
'total_harga',
'signature_key',
'metode_pembayaran',
'total_bayar',
'token',
'status',
'batas_pembayaran',
'batas_pengiriman_barang',
'batas_pengiriman_barang_awal',
'batas_pengiriman_barang_akhir',
];
/**
@ -39,20 +42,20 @@ class Transaction extends Model
protected $casts = [
'batas_pembayaran' => 'datetime',
'batas_pengiriman_barang' => 'datetime',
'order_id' => 'string',
'id' => 'string',
];
//Relasi
public function pembeli(){
return $this->belongsTo(User::class, 'email', 'pembeli');
public function data_pembeli(){
return $this->belongsTo(User::class, 'pembeli', 'email');
}
public function penjual(){
return $this->belongsTo(User::class, 'email', 'penjual');
public function data_penjual(){
return $this->belongsTo(User::class, 'penjual', 'email');
}
public function refunds(){
return $this->hasMany(Refund::class, 'order_id', 'order_id');
return $this->hasMany(Refund::class, 'order_id', 'id');
}
//Relasi
}

View File

@ -15,6 +15,7 @@
"laravel/sanctum": "^3.2",
"laravel/tinker": "^2.8",
"laravolt/indonesia": "^0.34.0",
"midtrans/midtrans-php": "^2.5",
"nesbot/carbon": "^2.69",
"pusher/pusher-php-server": "^7.2",
"ramsey/uuid": "^4.7",

162
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "eb6424bf82942b6b939788b88ee6586b",
"content-hash": "4dd1066d585142b363e4e114601be8ce",
"packages": [
{
"name": "brick/math",
@ -1056,16 +1056,16 @@
},
{
"name": "laravel/framework",
"version": "v10.22.0",
"version": "v10.21.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "9234388a895206d4e1df37342b61adc67e5c5d31"
"reference": "96b15c7ac382a9adb4a56d40c640e782d669a112"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/9234388a895206d4e1df37342b61adc67e5c5d31",
"reference": "9234388a895206d4e1df37342b61adc67e5c5d31",
"url": "https://api.github.com/repos/laravel/framework/zipball/96b15c7ac382a9adb4a56d40c640e782d669a112",
"reference": "96b15c7ac382a9adb4a56d40c640e782d669a112",
"shasum": ""
},
"require": {
@ -1252,7 +1252,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2023-09-05T13:20:01+00:00"
"time": "2023-08-29T13:55:56+00:00"
},
{
"name": "laravel/prompts",
@ -1304,16 +1304,16 @@
},
{
"name": "laravel/sanctum",
"version": "v3.3.0",
"version": "v3.2.6",
"source": {
"type": "git",
"url": "https://github.com/laravel/sanctum.git",
"reference": "95a0181900019e2d79acbd3e2ee7d57e3d0a086b"
"reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/sanctum/zipball/95a0181900019e2d79acbd3e2ee7d57e3d0a086b",
"reference": "95a0181900019e2d79acbd3e2ee7d57e3d0a086b",
"url": "https://api.github.com/repos/laravel/sanctum/zipball/217e8a2bc5aa6a827ced97fcb76504029d3115d7",
"reference": "217e8a2bc5aa6a827ced97fcb76504029d3115d7",
"shasum": ""
},
"require": {
@ -1366,7 +1366,7 @@
"issues": "https://github.com/laravel/sanctum/issues",
"source": "https://github.com/laravel/sanctum"
},
"time": "2023-09-04T14:26:54+00:00"
"time": "2023-08-22T13:21:11+00:00"
},
{
"name": "laravel/serializable-closure",
@ -1909,16 +1909,16 @@
},
{
"name": "league/flysystem",
"version": "3.16.0",
"version": "3.15.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729"
"reference": "a141d430414fcb8bf797a18716b09f759a385bed"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4fdf372ca6b63c6e281b1c01a624349ccb757729",
"reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed",
"reference": "a141d430414fcb8bf797a18716b09f759a385bed",
"shasum": ""
},
"require": {
@ -1927,8 +1927,6 @@
"php": "^8.0.2"
},
"conflict": {
"async-aws/core": "<1.19.0",
"async-aws/s3": "<1.14.0",
"aws/aws-sdk-php": "3.209.31 || 3.210.0",
"guzzlehttp/guzzle": "<7.0",
"guzzlehttp/ringphp": "<1.1.1",
@ -1948,7 +1946,7 @@
"microsoft/azure-storage-blob": "^1.1",
"phpseclib/phpseclib": "^3.0.14",
"phpstan/phpstan": "^0.12.26",
"phpunit/phpunit": "^9.5.11|^10.0",
"phpunit/phpunit": "^9.5.11",
"sabre/dav": "^4.3.1"
},
"type": "library",
@ -1983,7 +1981,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.16.0"
"source": "https://github.com/thephpleague/flysystem/tree/3.15.1"
},
"funding": [
{
@ -1995,20 +1993,20 @@
"type": "github"
}
],
"time": "2023-09-07T19:22:17+00:00"
"time": "2023-05-04T09:04:26+00:00"
},
{
"name": "league/flysystem-local",
"version": "3.16.0",
"version": "3.15.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
"reference": "ec7383f25642e6fd4bb0c9554fc2311245391781"
"reference": "543f64c397fefdf9cfeac443ffb6beff602796b3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ec7383f25642e6fd4bb0c9554fc2311245391781",
"reference": "ec7383f25642e6fd4bb0c9554fc2311245391781",
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3",
"reference": "543f64c397fefdf9cfeac443ffb6beff602796b3",
"shasum": ""
},
"require": {
@ -2043,7 +2041,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem-local/issues",
"source": "https://github.com/thephpleague/flysystem-local/tree/3.16.0"
"source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0"
},
"funding": [
{
@ -2055,7 +2053,7 @@
"type": "github"
}
],
"time": "2023-08-30T10:23:59+00:00"
"time": "2023-05-02T20:02:14+00:00"
},
{
"name": "league/mime-type-detection",
@ -2113,6 +2111,61 @@
],
"time": "2023-08-05T12:09:49+00:00"
},
{
"name": "midtrans/midtrans-php",
"version": "2.5.2",
"source": {
"type": "git",
"url": "https://github.com/Midtrans/midtrans-php.git",
"reference": "a1ad0c824449ca8c68c4cf11b3417ad518311d2b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Midtrans/midtrans-php/zipball/a1ad0c824449ca8c68c4cf11b3417ad518311d2b",
"reference": "a1ad0c824449ca8c68c4cf11b3417ad518311d2b",
"shasum": ""
},
"require": {
"ext-curl": "*",
"ext-json": "*",
"php": ">=5.4"
},
"require-dev": {
"phpunit/phpunit": "5.7.*",
"psy/psysh": "0.4.*"
},
"type": "library",
"autoload": {
"psr-4": {
"Midtrans\\": "Midtrans/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Andri Setiawan",
"email": "andri.setiawan@veritrans.co.id"
},
{
"name": "Alvin Litani",
"email": "alvin.litani@veritrans.co.id"
},
{
"name": "Ismail Faruqi",
"email": "ismail.faruqi@veritrans.co.id"
}
],
"description": "PHP Wrapper for Midtrans Payment API.",
"homepage": "https://midtrans.com",
"support": {
"issues": "https://github.com/Midtrans/midtrans-php/issues",
"source": "https://github.com/Midtrans/midtrans-php/tree/2.5.2"
},
"time": "2021-08-23T08:52:05+00:00"
},
{
"name": "monolog/monolog",
"version": "3.4.0",
@ -2216,16 +2269,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.70.0",
"version": "2.69.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "d3298b38ea8612e5f77d38d1a99438e42f70341d"
"reference": "4308217830e4ca445583a37d1bf4aff4153fa81c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3298b38ea8612e5f77d38d1a99438e42f70341d",
"reference": "d3298b38ea8612e5f77d38d1a99438e42f70341d",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4308217830e4ca445583a37d1bf4aff4153fa81c",
"reference": "4308217830e4ca445583a37d1bf4aff4153fa81c",
"shasum": ""
},
"require": {
@ -2318,7 +2371,7 @@
"type": "tidelift"
}
],
"time": "2023-09-07T16:43:50+00:00"
"time": "2023-08-03T09:00:52+00:00"
},
{
"name": "nette/schema",
@ -6490,16 +6543,16 @@
},
{
"name": "laravel/pint",
"version": "v1.13.1",
"version": "v1.12.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "22f204242d68095b3ba7dab5d3ef0240454a4652"
"reference": "08bcf51e520a5e5aea458fc600ac4869f6934a66"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/22f204242d68095b3ba7dab5d3ef0240454a4652",
"reference": "22f204242d68095b3ba7dab5d3ef0240454a4652",
"url": "https://api.github.com/repos/laravel/pint/zipball/08bcf51e520a5e5aea458fc600ac4869f6934a66",
"reference": "08bcf51e520a5e5aea458fc600ac4869f6934a66",
"shasum": ""
},
"require": {
@ -6552,20 +6605,20 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2023-09-06T11:03:34+00:00"
"time": "2023-08-30T07:53:32+00:00"
},
{
"name": "laravel/sail",
"version": "v1.24.1",
"version": "v1.24.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
"reference": "3a373bb2845623aed2017c672dc61c84ae974890"
"reference": "c8a621d7b69ab2e568d97a20f837ca733a224006"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/sail/zipball/3a373bb2845623aed2017c672dc61c84ae974890",
"reference": "3a373bb2845623aed2017c672dc61c84ae974890",
"url": "https://api.github.com/repos/laravel/sail/zipball/c8a621d7b69ab2e568d97a20f837ca733a224006",
"reference": "c8a621d7b69ab2e568d97a20f837ca733a224006",
"shasum": ""
},
"require": {
@ -6617,7 +6670,7 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
"time": "2023-09-01T14:05:17+00:00"
"time": "2023-08-27T14:26:11+00:00"
},
{
"name": "mockery/mockery",
@ -7290,16 +7343,16 @@
},
{
"name": "phpunit/phpunit",
"version": "10.3.3",
"version": "10.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "241ed4dd0db1c096984e62d414c4e1ac8d5dbff4"
"reference": "0dafb1175c366dd274eaa9a625e914451506bcd1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/241ed4dd0db1c096984e62d414c4e1ac8d5dbff4",
"reference": "241ed4dd0db1c096984e62d414c4e1ac8d5dbff4",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0dafb1175c366dd274eaa9a625e914451506bcd1",
"reference": "0dafb1175c366dd274eaa9a625e914451506bcd1",
"shasum": ""
},
"require": {
@ -7371,7 +7424,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.3"
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.3.2"
},
"funding": [
{
@ -7387,7 +7440,7 @@
"type": "tidelift"
}
],
"time": "2023-09-05T04:34:51+00:00"
"time": "2023-08-15T05:34:23+00:00"
},
{
"name": "sebastian/cli-parser",
@ -7824,16 +7877,16 @@
},
{
"name": "sebastian/exporter",
"version": "5.0.1",
"version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "32ff03d078fed1279c4ec9a407d08c5e9febb480"
"reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/32ff03d078fed1279c4ec9a407d08c5e9febb480",
"reference": "32ff03d078fed1279c4ec9a407d08c5e9febb480",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
"reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
"shasum": ""
},
"require": {
@ -7889,8 +7942,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
"source": "https://github.com/sebastianbergmann/exporter/tree/5.0.1"
"source": "https://github.com/sebastianbergmann/exporter/tree/5.0.0"
},
"funding": [
{
@ -7898,7 +7950,7 @@
"type": "github"
}
],
"time": "2023-09-08T04:46:58+00:00"
"time": "2023-02-03T07:06:49+00:00"
},
{
"name": "sebastian/global-state",
@ -8743,5 +8795,5 @@
"php": "^8.1"
},
"platform-dev": [],
"plugin-api-version": "2.6.0"
"plugin-api-version": "2.3.0"
}

View File

@ -12,21 +12,33 @@ return new class extends Migration
public function up(): void
{
Schema::create('transactions', function (Blueprint $table) {
$table->uuid('order_id')->primary(); //order_id
$table->uuid('id')->primary(); //order_id
$table->string('pembeli'); // untuk customer_details
$table->string('penjual'); //merchant_name
$table->string('judul_transaksi'); // item_details -> item_name
$table->string('deskripsi_transaksi');
$table->string('nama_barang'); // item_details -> item_name
$table->string('deskripsi_transaksi')->nullable();
$table->string('satuan_barang');
$table->double('harga_barang'); // harga sebelum penambahan
$table->double('jumlah_barang');
$table->double('persentase_keuntungan'); // persentase keuntungan
$table->double('total_keuntungan'); // perolehan keuntungan
$table->double('harga'); // harga sebelum penambahan
$table->double('biaya_admin'); // biaya tambahan
$table->double('total_harga'); // gross amount
$table->string('signature_key');
$table->string('metode_pembayaran');
$table->enum('status',['Settlement','Capture','Pending','Cancel','Refund','Expire','Failure','Progress','Failed'])->default('Pending'); // transaction_status
$table->double('total_bayar');
$table->string('signature_key')->nullable();
$table->string('token');
$table->string('metode_pembayaran')->nullable();
$table->string('acquire')->nullable();
$table->string('issuer')->nullable();
$table->char('currency',3)->nullable();
$table->string('fraud_status')->nullable();
$table->string('merchant_id')->nullable();
$table->string('status_code')->nullable();
$table->string('tipe_transaction')->nullable();
$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_pengiriman_barang');
$table->timestamp('batas_pengiriman_barang_awal');
$table->timestamp('batas_pengiriman_barang_akhir');
$table->timestamp('tanggal_pembayaran')->nullable();
$table->timestamps();
$table->foreign('pembeli')->on('users')->references('email');
$table->foreign('penjual')->on('users')->references('email');

View File

@ -16,9 +16,9 @@ return new class extends Migration
$table->foreignUuid('order_id');
$table->double('total',10);
$table->timestamp('due_date');
$table->enum('status',['Partial Refund','Deny','Pending'])->default('Pending');
$table->foreign('order_id')->on('transactions')->references('order_id');
$table->enum('status',['partial refund','deny','pending'])->default('Pending');
$table->timestamps();
$table->foreign('order_id')->on('transactions')->references('id');
});
}

View File

@ -15,8 +15,8 @@ return new class extends Migration
$table->id();
$table->string('bulan',20);
$table->string('tahun',5);
$table->string('persentase',5);
$table->string('status',15);
$table->integer('persentase');
$table->enum('status',['Active', 'Nonactive']);
$table->timestamps();
});
}

View File

@ -16,11 +16,12 @@ return new class extends Migration
$table->foreignUuid('order_id');
$table->string('status',15);
$table->string('user');
$table->string('background');
$table->string('judul');
$table->string('deskripsi');
$table->timestamps();
$table->foreign('order_id')->on('transactions')->references('order_id');
$table->foreign('order_id')->on('transactions')->references('id');
$table->foreign('user')->on('users')->references('email');
});
}

View File

@ -5,6 +5,8 @@ namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\User;
use Carbon\Carbon;
use App\Models\Setting;
use Illuminate\Support\Str;
use Faker\Factory as FakerFactory;
use Faker\Provider\id_ID\Person as Person;
@ -28,27 +30,31 @@ class DatabaseSeeder extends Seeder
'nama_depan' => $faker->firstName,
'nama_belakang' => $faker->lastName,
'tanggal_lahir' => $faker->date($format = 'Y-m-d', $max = 'now'),
'email' => fake()->unique()->safeEmail(),
'email' => 'admin@example.net',
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
'role' => 'Admin',
'nik' => $faker->nik($faker->randomElement(['male','female']), $faker->dateTimeBetween('-65 years', '-18 years')),
'alamat'=> $faker->address,
'nohp'=> $faker->phoneNumber(),
'status'=> 'Finished',
'nik' => $faker->nik($faker->randomElement(['male', 'female']), $faker->dateTimeBetween('-65 years', '-18 years')),
'alamat' => $faker->address,
'nohp' => $faker->phoneNumber(),
'status' => 'Finished',
'persentase_kemiripan' => '100%',
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
'kode_kelurahan' => '1101012002',
]);
User::factory(20)->create();
$this->call([
ProvincesSeeder::class,
CitiesSeeder::class,
DistrictsSeeder::class,
VillagesSeeder::class,
$now = Carbon::now()->tz('Asia/Jakarta');
$bulan = $now->format('F');
$tahun = $now->year;
Setting::create([
'bulan' => $bulan,
'tahun' => $tahun,
'persentase' => 5,
'status' => 'Active'
]);
$this->call([ProvincesSeeder::class, CitiesSeeder::class, DistrictsSeeder::class, VillagesSeeder::class]);
}
}

17
package-lock.json generated
View File

@ -5,8 +5,7 @@
"packages": {
"": {
"dependencies": {
"datatables.net-dt": "^1.13.6",
"sweetalert2": "^11.7.27"
"datatables.net-dt": "^1.13.6"
},
"devDependencies": {
"axios": "^1.1.2",
@ -643,15 +642,6 @@
"node": ">=0.10.0"
}
},
"node_modules/sweetalert2": {
"version": "11.7.27",
"resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.7.27.tgz",
"integrity": "sha512-QbRXGQn1sb7HEhzA/K2xtWIwQHh/qkSbb1w6jYcTql2xy17876lTREEt1D4X6Q0x2wHtfUjKJ+Cb8IVkRoq7DQ==",
"funding": {
"type": "individual",
"url": "https://github.com/sponsors/limonte"
}
},
"node_modules/vite": {
"version": "4.4.9",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz",
@ -1059,11 +1049,6 @@
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true
},
"sweetalert2": {
"version": "11.7.27",
"resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.7.27.tgz",
"integrity": "sha512-QbRXGQn1sb7HEhzA/K2xtWIwQHh/qkSbb1w6jYcTql2xy17876lTREEt1D4X6Q0x2wHtfUjKJ+Cb8IVkRoq7DQ=="
},
"vite": {
"version": "4.4.9",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz",

View File

@ -11,7 +11,6 @@
"vite": "^4.0.0"
},
"dependencies": {
"datatables.net-dt": "^1.13.6",
"sweetalert2": "^11.7.27"
"datatables.net-dt": "^1.13.6"
}
}

View File

@ -846,8 +846,9 @@ tr:first-child > td > .fc-day-grid-event {
border-top: 1px solid #f2f2f2;
}
}
/* 1.18 Select2 */
.select2-container--default
/* 1.18 Select2
/* .select2-container--default
.select2-search--dropdown
.select2-search__field:focus {
outline: none;
@ -949,6 +950,7 @@ tr:first-child > td > .fc-day-grid-event {
.select2-results__option {
padding-right: 10px 15px;
}
*/
/* 1.19 Selectric */
.selectric {

File diff suppressed because one or more lines are too long

View File

@ -58,6 +58,13 @@ video {
z-index: 3;
}
.flex-input-btn {
width: 100%;
display: flex;
align-items: center;
margin-top: 3%;
}
form.sign-up-form {
display: flex;
align-items: start;
@ -103,8 +110,8 @@ form p {
.input-field-signup-flex {
width: 100%;
height: 55px;
margin-top: 2%;
background-color: #f0f0f0;
margin-top: 10px;
border-radius: 1rem;
display: grid;
grid-template-columns: 15% 85%;
@ -113,6 +120,41 @@ form p {
position: relative;
}
.input {
width: 100%;
height: 55px;
background-color: #f0f0f0;
border-radius: 1rem;
display: grid;
grid-template-columns: 15% 85%;
display: flex;
align-items: center;
position: relative;
}
.input input {
width: 110%;
height: 100%;
background: none;
outline: none;
border: none;
border-radius: 1rem;
line-height: 1;
font-weight: 600;
margin-right: 1rem;
font-size: 0.8rem;
color: #333;
}
.input i {
padding: 0 1.5rem;
color: #acacac;
transition: 0.5s;
}
.up {
margin-top: 3%;
}
.input-field-signin-flex input,
.input-field-signup-flex input {
width: 82%;
@ -233,6 +275,14 @@ form p {
transform: translateY(-0.252m);
}
.btn-otp:disabled {
cursor: not-allowed; /* Mengganti cursor menjadi "not-allowed" saat tombol dinonaktifkan */
opacity: 0.6; /* Mengurangi opasitas tombol saat dinonaktifkan */
border-color: #ccc; /* Mengganti warna border saat dinonaktifkan */
color: #ccc; /* Mengganti warna teks saat dinonaktifkan */
pointer-events: none; /* Mencegah interaksi dengan tombol saat dinonaktifkan */
}
.panels-container {
position: absolute;
height: 100%;

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -114,13 +114,6 @@ form_4_back_btn.addEventListener("click", function () {
form_4_progessbar.classList.remove("active");
});
// btn_done.addEventListener("click", function () {
// modal_wrapper.classList.add("active");
// });
// shadow.addEventListener("click", function () {
// modal_wrapper.classList.remove("active");
// });
/******************************************
* MULTIPLE FORM END
******************************************/
@ -250,7 +243,7 @@ document.addEventListener("DOMContentLoaded", function () {
clearPhoto(fotoInputKtp, document.getElementById("foto-preview-ktp"));
if (ktpStream) {
// Matikan kamera jika sedang aktif
turnOffCamera(ktpStream, videoElementKtp, startButtonKtp);
ktpStream = null;
}

View File

@ -2,27 +2,37 @@
$("[data-checkboxes]").each(function () {
var me = $(this),
group = me.data('checkboxes'),
role = me.data('checkbox-role');
group = me.data("checkboxes"),
role = me.data("checkbox-role");
me.change(function () {
var all = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"])'),
checked = $('[data-checkboxes="' + group + '"]:not([data-checkbox-role="dad"]):checked'),
dad = $('[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'),
var all = $(
'[data-checkboxes="' +
group +
'"]:not([data-checkbox-role="dad"])'
),
checked = $(
'[data-checkboxes="' +
group +
'"]:not([data-checkbox-role="dad"]):checked'
),
dad = $(
'[data-checkboxes="' + group + '"][data-checkbox-role="dad"]'
),
total = all.length,
checked_length = checked.length;
if (role == 'dad') {
if (me.is(':checked')) {
all.prop('checked', true);
if (role == "dad") {
if (me.is(":checked")) {
all.prop("checked", true);
} else {
all.prop('checked', false);
all.prop("checked", false);
}
} else {
if (checked_length >= total) {
dad.prop('checked', true);
dad.prop("checked", true);
} else {
dad.prop('checked', false);
dad.prop("checked", false);
}
}
});
@ -30,14 +40,18 @@ $("[data-checkboxes]").each(function () {
// User
$("#table-1").dataTable({
"columnDefs": [
{ "sortable": false, "targets": [2] }
]
columnDefs: [{ sortable: false, targets: [2, 7] }],
searchable: true,
});
// Refund, Setting, Transaction
$("#table-2").dataTable({
"columnDefs": [
{ "sortable": false, "targets": [0, 2, 3] }
]
ordering: true,
searchable: true,
});
// Transaksi pembeli
$("#table-3").dataTable({
columnDefs: [{ sortable: false, targets: [5] }],
searchable: true,
});

View File

@ -1,62 +1,62 @@
"use strict";
$("#swal-1").click(function () {
swal('Hello');
$("#swal-1").click(function() {
swal('Hello');
});
$("#swal-2").click(function () {
swal('Tambah data setting', 'Berhasil', 'success');
$("#swal-2").click(function() {
swal('Good Job', 'You clicked the button!', 'success');
});
$("#swal-3").click(function () {
swal('Good Job', 'You clicked the button!', 'warning');
$("#swal-3").click(function() {
swal('Good Job', 'You clicked the button!', 'warning');
});
$("#swal-4").click(function () {
swal('Good Job', 'You clicked the button!', 'info');
$("#swal-4").click(function() {
swal('Good Job', 'You clicked the button!', 'info');
});
$("#swal-5").click(function () {
swal('Good Job', 'You clicked the button!', 'error');
$("#swal-5").click(function() {
swal('Good Job', 'You clicked the button!', 'error');
});
$("#swal-6").click(function () {
swal({
title: 'Are you sure?',
text: 'Once deleted, you will not be able to recover this imaginary file!',
icon: 'warning',
buttons: true,
dangerMode: true,
$("#swal-6").click(function() {
swal({
title: 'Are you sure?',
text: 'Once deleted, you will not be able to recover this imaginary file!',
icon: 'warning',
buttons: true,
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
swal('Poof! Your imaginary file has been deleted!', {
icon: 'success',
});
} else {
swal('Your imaginary file is safe!');
}
});
});
$("#swal-7").click(function () {
swal({
title: 'What is your name?',
content: {
element: 'input',
attributes: {
placeholder: 'Type your name',
type: 'text',
},
},
}).then((data) => {
swal('Hello, ' + data + '!');
.then((willDelete) => {
if (willDelete) {
swal('Poof! Your imaginary file has been deleted!', {
icon: 'success',
});
} else {
swal('Your imaginary file is safe!');
}
});
});
$("#swal-8").click(function () {
swal('This modal will disappear soon!', {
buttons: false,
timer: 3000,
});
$("#swal-7").click(function() {
swal({
title: 'What is your name?',
content: {
element: 'input',
attributes: {
placeholder: 'Type your name',
type: 'text',
},
},
}).then((data) => {
swal('Hello, ' + data + '!');
});
});
$("#swal-8").click(function() {
swal('This modal will disappear soon!', {
buttons: false,
timer: 3000,
});
});

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

View File

@ -8,7 +8,7 @@
<div class="card card-statistic-2">
<div class="card-stats">
<div class="card-stats-title">List Transaction -
<div class="dropdown d-inline">
{{-- <div class="dropdown d-inline">
<a class="font-weight-600 dropdown-toggle" data-toggle="dropdown" href="#"
id="orders-month">August</a>
<ul class="dropdown-menu dropdown-menu-sm">
@ -26,7 +26,7 @@
<li><a href="#" class="dropdown-item">November</a></li>
<li><a href="#" class="dropdown-item">December</a></li>
</ul>
</div>
</div> --}}
</div>
<div class="card-stats-items">
<div class="card-stats-item">
@ -41,6 +41,10 @@
<div class="card-stats-item-count">23</div>
<div class="card-stats-item-label">Canceled</div>
</div>
<div class="card-stats-item">
<div class="card-stats-item-count">23</div>
<div class="card-stats-item-label">Refund</div>
</div>
</div>
</div>
<div class="card-icon shadow-primary bg-primary">
@ -170,8 +174,7 @@
<div class="card-header">
<h4>Top 5 Users</h4>
<div class="card-header-action dropdown">
<a href="#" data-toggle="dropdown"
class="btn btn-primary dropdown-toggle">Month</a>
<a href="#" data-toggle="dropdown" class="btn btn-primary dropdown-toggle">Month</a>
<ul class="dropdown-menu dropdown-menu-sm dropdown-menu-right">
<li class="dropdown-title">Select Period</li>
<li><a href="#" class="dropdown-item">Today</a></li>
@ -184,8 +187,8 @@
<div class="card-body" id="top-5-scroll">
<ul class="list-unstyled list-unstyled-border">
<li class="media">
<img class="mr-3 rounded" width="55" src="{{asset('assets/img/avatar/avatar-6.png')}}"
alt="product">
<img class="mr-3 rounded" width="55"
src="{{ asset('assets/img/avatar/avatar-6.png') }}" alt="product">
<div class="media-body">
<div class="float-right">
<div class="font-weight-600 text-muted text-small">86 Sales</div>
@ -204,8 +207,8 @@
</div>
</li>
<li class="media">
<img class="mr-3 rounded" width="55" src="{{asset('assets/img/avatar/avatar-1.png')}}"
alt="product">
<img class="mr-3 rounded" width="55"
src="{{ asset('assets/img/avatar/avatar-1.png') }}" alt="product">
<div class="media-body">
<div class="float-right">
<div class="font-weight-600 text-muted text-small">67 Sales</div>
@ -224,8 +227,8 @@
</div>
</li>
<li class="media">
<img class="mr-3 rounded" width="55" src="{{asset('assets/img/avatar/avatar-2.png')}}"
alt="product">
<img class="mr-3 rounded" width="55"
src="{{ asset('assets/img/avatar/avatar-2.png') }}" alt="product">
<div class="media-body">
<div class="float-right">
<div class="font-weight-600 text-muted text-small">63 Sales</div>
@ -244,8 +247,8 @@
</div>
</li>
<li class="media">
<img class="mr-3 rounded" width="55" src="{{asset('assets/img/avatar/avatar-3.png')}}"
alt="product">
<img class="mr-3 rounded" width="55"
src="{{ asset('assets/img/avatar/avatar-3.png') }}" alt="product">
<div class="media-body">
<div class="float-right">
<div class="font-weight-600 text-muted text-small">28 Sales</div>
@ -264,8 +267,8 @@
</div>
</li>
<li class="media">
<img class="mr-3 rounded" width="55" src="{{asset('assets/img/avatar/avatar-4.png')}}"
alt="product">
<img class="mr-3 rounded" width="55"
src="{{ asset('assets/img/avatar/avatar-4.png') }}" alt="product">
<div class="media-body">
<div class="float-right">
<div class="font-weight-600 text-muted text-small">19 Sales</div>
@ -373,6 +376,48 @@
</div>
@include('admin.transaction.modal-tracking')
<script>
// Date picker range
$(document).ready(function() {
let searchParams = new URLSearchParams(window.location.search);
let dateInterval = searchParams.get('from-to');
let start = moment().subtract(29, 'days');
let end = moment();
if (dateInterval) {
dateInterval = dateInterval.split(' - ');
start = moment(dateInterval[0]);
end = moment(dateInterval[1]);
}
$('#date-range').daterangepicker({
"showDropdowns": true,
"showWeekNumbers": true,
"alwaysShowCalendars": true,
startDate: start,
endDate: end,
locale: {
format: 'YYYY-MM-DD',
firstDay: 1,
},
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1,
'month').endOf(
'month')],
'This Year': [moment().startOf('year'), moment().endOf('year')],
'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year')
.endOf(
'year')
],
'All time': [moment().subtract(30, 'year').startOf('month'), moment().endOf('month')],
}
});
});
// Set new default font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = 'Nunito',
'-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
@ -382,10 +427,12 @@
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "Oktober", "November", "December"],
labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September",
"Oktober", "November", "December"
],
datasets: [{
label: 'Transaction',
data: [3200, 18009, 4305, 3022, 6310, 5120, 5880, 6154, 0],
data: {{json_encode($dataChartTransaction)}},
borderWidth: 2,
backgroundColor: 'rgba(63,82,227,.8)',
borderWidth: 0,
@ -410,12 +457,12 @@
]
},
options: {
layout:{
layout: {
padding: 20,
},
legend: {
display: true,
labels:{
labels: {
padding: 20,
}
},
@ -428,7 +475,7 @@
},
ticks: {
beginAtZero: true,
stepSize: 15000,
stepSize: 15000000,
callback: function(value, index, values) {
// return 'Rp.' + value;
return new Intl.NumberFormat('id-ID', {

View File

@ -1,6 +1,6 @@
<footer class="main-footer">
<div class="footer-left">
Copyright &copy; 2020 <div class="bullet"></div> Design By <a href="#">Template</a>
Copysright &copy; 2020 <div class="bullet"></div> Design By <a href="#">Template</a>
</div>
<div class="footer-right">

View File

@ -19,7 +19,8 @@
<div class="dropdown-list-content dropdown-list-message">
<a href="#" class="dropdown-item dropdown-item-unread">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-1.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-1.png') }}"
class="rounded-circle">
<div class="is-online"></div>
</div>
<div class="dropdown-item-desc">
@ -30,7 +31,8 @@
</a>
<a href="#" class="dropdown-item dropdown-item-unread">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-2.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-2.png') }}"
class="rounded-circle">
</div>
<div class="dropdown-item-desc">
<b>Dedik Sugiharto</b>
@ -40,7 +42,8 @@
</a>
<a href="#" class="dropdown-item dropdown-item-unread">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-3.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-3.png') }}"
class="rounded-circle">
<div class="is-online"></div>
</div>
<div class="dropdown-item-desc">
@ -51,7 +54,8 @@
</a>
<a href="#" class="dropdown-item">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-4.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-4.png') }}"
class="rounded-circle">
</div>
<div class="dropdown-item-desc">
<b>Ardian Rahardiansyah</b>
@ -61,7 +65,8 @@
</a>
<a href="#" class="dropdown-item">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-5.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-5.png') }}"
class="rounded-circle">
</div>
<div class="dropdown-item-desc">
<b>Alfa Zulkarnain</b>
@ -137,7 +142,7 @@
</li>
<li class="dropdown"><a href="#" data-toggle="dropdown"
class="nav-link dropdown-toggle nav-link-lg nav-link-user">
<img alt="image" src="{{asset('assets/img/avatar/ok.jpg')}}" class="rounded-circle mr-1">
<img alt="image" src="{{ asset('assets/img/avatar/ok.jpg') }}" class="rounded-circle mr-1">
<div class="d-sm-none d-lg-inline-block">Hi, {{ Auth::user()->nama_depan }}</div>
</a>
<div class="dropdown-menu dropdown-menu-right">
@ -152,7 +157,7 @@
<i class="fas fa-cog"></i> Settings
</a> --}}
<div class="dropdown-divider"></div>
<a href="{{route('logout')}}" class="dropdown-item has-icon text-danger">
<a href="{{ route('logout') }}" class="dropdown-item has-icon text-danger">
<i class="fas fa-sign-out-alt"></i> Logout
</a>
</div>

View File

@ -31,6 +31,29 @@
font-style: italic;
}
</style>
<<<<<<< HEAD
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport">
<title>REKBER</title>
<!-- General CSS Files -->
<link rel="stylesheet" href="assets/modules/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/modules/fontawesome/css/all.min.css">
<!-- CSS Libraries -->
<link rel="stylesheet" href="assets/modules/jqvmap/dist/jqvmap.min.css">
<link rel="stylesheet" href="assets/modules/summernote/summernote-bs4.css">
<link rel="stylesheet" href="assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css">
<link rel="stylesheet" href="assets/modules/owlcarousel2/dist/assets/owl.theme.default.min.css">
<!-- Template CSS -->
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="assets/css/components.css">
<!-- Start GA -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
=======
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport">
<meta name="csrf-token" content="{{ csrf_token() }}">
@ -56,6 +79,7 @@
<link rel="stylesheet" href="{{ asset('assets/modules/datatables/Select-1.2.4/css/select.bootstrap4.min.css') }}">
<!-- Start GA -->
{{-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
<script>
window.dataLayer = window.dataLayer || [];
@ -67,21 +91,56 @@
gtag('config', 'UA-94034622-3');
<<<<<<< HEAD
</script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- /END GA -->
=======
</script> --}}
<!-- /END GA -->
{{-- JS --}}
>>>>>>> c6e7e74f2a6981b808e6ad8dc9499362fdf9f043
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="{{ asset('assets/modules/chart.min.js') }}"></script>
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
</head>
<body>
<header class="header-area header-sticky">
<<<<<<< HEAD
@include('Admin.layout.header')
</header>
<!-- ***** Main Banner Area Start ***** -->
<main id="main" style="min-height: 100vh;">
@include('Admin.layout.sidebar')
@yield('content')
</main>
<!-- End #main -->
<footer id="footer">
@include('Admin.layout.footer')
</footer>
<!-- General JS Scripts -->
<script src="assets/modules/jquery.min.js"></script>
<script src="assets/modules/popper.js"></script>
<script src="assets/modules/tooltip.js"></script>
<script src="assets/modules/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/modules/nicescroll/jquery.nicescroll.min.js"></script>
<script src="assets/modules/moment.min.js"></script>
<script src="assets/js/stisla.js"></script>
<!-- JS Libraies -->
<script src="assets/modules/jquery.sparkline.min.js"></script>
<script src="assets/modules/chart.min.js"></script>
<script src="assets/modules/owlcarousel2/dist/owl.carousel.min.js"></script>
<script src="assets/modules/summernote/summernote-bs4.js"></script>
<script src="assets/modules/chocolat/dist/js/jquery.chocolat.min.js"></script>
<!-- Page Specific JS File -->
<script src="assets/js/page/index.js"></script>
<!-- Template JS File -->
<script src="assets/js/scripts.js"></script>
<script src="assets/js/custom.js"></script>
=======
@include('admin.layout.header')
</header>
@ -96,48 +155,6 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script>
$(document).ready(function() {
let searchParams = new URLSearchParams(window.location.search);
let dateInterval = searchParams.get('from-to');
let start = moment().subtract(29, 'days');
let end = moment();
if (dateInterval) {
dateInterval = dateInterval.split(' - ');
start = moment(dateInterval[0]);
end = moment(dateInterval[1]);
}
$('#date-range').daterangepicker({
"showDropdowns": true,
"showWeekNumbers": true,
"alwaysShowCalendars": true,
startDate: start,
endDate: end,
locale: {
format: 'YYYY-MM-DD',
firstDay: 1,
},
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1,
'month').endOf(
'month')],
'This Year': [moment().startOf('year'), moment().endOf('year')],
'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year')
.endOf(
'year')
],
'All time': [moment().subtract(30, 'year').startOf('month'), moment().endOf('month')],
}
});
});
</script>
<!-- General JS Scripts -->
<script src="{{ asset('assets/modules/jquery.min.js') }}"></script>
@ -184,71 +201,8 @@
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const toggleSwitches = document.querySelectorAll('.switch input[type="checkbox"]');
toggleSwitches.forEach(toggleSwitch => {
toggleSwitch.addEventListener('change', function() {
const parentRow = toggleSwitch.closest('tr');
const statusBadge = parentRow.querySelector('.badge');
const onText = toggleSwitch.nextElementSibling.getAttribute('data-on-text');
const offText = toggleSwitch.nextElementSibling.getAttribute('data-off-text');
if (toggleSwitch.checked) {
statusBadge.textContent = onText === 'Yes' ? 'Active' : 'Non Active';
statusBadge.classList.remove('badge-danger');
statusBadge.classList.add('badge-success');
} else {
statusBadge.textContent = offText === 'No' ? 'Non Active' : 'Active';
statusBadge.classList.remove('badge-success');
statusBadge.classList.add('badge-danger');
}
});
});
});
</script>
<script src="/assets/modules/sweetalert/sweetalert.min.js"></script>
<!-- Page Specific JS File -->
<script src="/assets/js/page/modules-sweetalert.js"></script>
{{-- <script>
document.addEventListener('DOMContentLoaded', function() {
const swalWithBootstrapButtons = Swal.mixin({
customClass: {
confirmButton: 'btn btn-success',
cancelButton: 'btn btn-danger'
},
buttonsStyling: false
});
const swalButton = document.getElementById('Swal');
swalButton.addEventListener('click', function() {
swalWithBootstrapButtons.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Yes, delete it!',
cancelButtonText: 'No, cancel!',
reverseButtons: true
}).then((result) => {
if (result.isConfirmed) {
swalWithBootstrapButtons.fire(
'Deleted!',
'Your file has been deleted.',
'success'
);
} else if (
result.dismiss === Swal.DismissReason.cancel
) {
swalWithBootstrapButtons.fire(
'Cancelled',
'Your imaginary file is safe :)',
'error'
);
}
});
});
});
</script> --}}
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
</body>
</html>

View File

@ -1,24 +1,37 @@
<div class="main-sidebar sidebar-style-2">
<aside id="sidebar-wrapper">
<div class="sidebar-brand">
<a href="{{ route('admin.index') }}">REKBER</a>
<a href="index.html">REKBER</a>
</div>
<div class="sidebar-brand sidebar-brand-sm">
<a href="{{ route('admin.index') }}">RK</a>
<a href="index.html">RK</a>
</div>
<ul class="sidebar-menu">
<li class="menu-header">Dashboard</li>
<li><a class="nav-link active" href="{{ route('admin.index') }}"><i class="fas fa-fire"></i>
<span>Dashboard</span></a></li>
<li><a class="nav-link active" href="/"><i class="fas fa-fire"></i> <span>Dashboard</span></a></li>
<li class="menu-header">Starter</li>
<li><a class="nav-link" href="{{ route('admin-user.index') }}"><i class="far fa-user"></i>
<span>User</span></a></li>
<li><a class="nav-link" href="{{ route('admin-transaction.index') }}"><i
<li><a class="nav-link" href="/list_user"><i class="far fa-user"></i> <span>User</span></a></li>
<li><a class="nav-link" href="/history_transaction"><i
class="fas fa-columns"></i><span>Transaction</span></a></li>
<li><a class="nav-link" href="{{ route('admin-refund.index') }}"><i class="far fa-square"></i> <span>List
Refund</span></a>
{{-- <li class="dropdown">
<a href="#" class="nav-link has-dropdown" data-toggle="dropdown"><i class="fas fa-columns"></i>
<span>Transaction</span></a>
<ul class="dropdown-menu">
<li><a class="nav-link" href="/list_transaction">List Transaction</a></li>
<li><a class="nav-link" href="/history_transaction">History Transaction</a></li>
</ul>
</li> --}}
<li><a class="nav-link" href="/history_refund"><i class="far fa-square"></i> <span>List Refund</span></a>
</li>
<li><a class="nav-link" href="/setting"><i class="fas fa-cog"></i> <span>Setting</span></a></li>
</ul>
{{-- <div class="mt-4 mb-4 p-3 hide-sidebar-mini">
<a href="https://getstisla.com/docs" class="btn btn-primary btn-lg btn-block btn-icon-split">
<i class="fas fa-rocket"></i> Documentation
</a>
</div> --}}
</aside>
</div>

View File

@ -1,160 +1,110 @@
@extends('admin.layout.main')
@extends('Admin.layout.main')
@section('content')
<div class="main-content">
<section class="section">
<div class="section-header">
<h1>Profile</h1>
</div>
<div class="col-12">
<div class="card">
<div class="card-head">
<img id="card_head" src="/assets/images/sampul.jpg"></img>
<div class="section profile">
<div class="row">
<div class="col-xl-4">
<div class="card">
<div class="card-body profile-card pt-4 d-flex flex-column align-items-center">
<img src="/assets/img/avatar/avatar-6.png" alt="Profile"
class="rounded-circle profile-img-preview shadow"
style="max-width: 150px; max-height: 150px;">
{{-- <h2>{{ Auth::user()->get_name() }}</h2> --}}
<h3>Super-Admin</h3>
<div class="card-footer text-center">
<a href="#" class="btn btn-social-icon btn-facebook mr-1">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="btn btn-social-icon btn-twitter mr-1">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="btn btn-social-icon btn-github mr-1">
<i class="fab fa-github"></i>
</a>
<a href="#" class="btn btn-social-icon btn-instagram">
<i class="fab fa-instagram"></i>
</a>
</div>
</div>
</div>
</div>
<div class="image-crop">
<img id="avatar" src="/assets/images/dashboard/img_1.jpg"></img>
</div><br>
<div class="row">
<div class="col-lg-12">
<div class="row">
<div class="col-md-6">
<div>
<strong style="font-size: 30px; color: black;"><b>Tsalsabila Jilhan
Haura</b></strong><br>
Super Admin<br>
</div>
</div>
<div class="col-md my-3">
<div>
<div class="row justify-content-end row-divider">
<div class="col-1"><i class="fas fa-id-card" style="font-size: 20px;"></i>
</div>
<div class="col-lg-9 col-md-8" style="font-size: 15px;">94894893848</div>
</div>
<div class="row justify-content-end row-divider">
<div class="col-1"><i class="fas fa-user" style="font-size:20px"></i></div>
<div class="col-lg-9 col-md-8" style="font-size: 15px">jilhan Haura</div>
</div>
<div class="row justify-content-end row-divider">
<div class="col-1"><i class="fas fa-user-tag" style="font-size:20px"></i>
</div>
<div class="col-lg-9 col-md-8" style="font-size: 15px">Super Admin</div>
</div>
<div class="row justify-content-end row-divider">
<div class="col-1"><i class="fas fa-map-marker-alt" style="font-size:20px"></i>
</div>
<div class="col-lg-9 col-md-8" style="font-size: 15px">Jl simpang komplek
polda
</div>
</div>
<div class="row justify-content-end row-divider">
<div class="col-1"><i class="fas fa-phone" style="font-size:20px"></i>
</div>
<div class="col-lg-9 col-md-8" style="font-size: 15px">+62 1209 0120 02
</div>
</div>
<div class="row justify-content-end row-divider">
<div class="col-1"><i class="fas fa-envelope" style="font-size:20px"></i>
</div>
<div class="col-lg-9 col-md-8" style="font-size: 15px">jilhan@gmail.com
</div>
</div>
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">Save Changes</button>
</div>
</form><!-- End settings Form -->
<div class="col-xl-8">
<div class="card">
<div class="card-body pt-3">
<!-- Bordered Tabs -->
<ul class="nav nav-tabs nav-tabs-bordered">
<li class="nav-item">
<button class="nav-link active" data-bs-toggle="tab"
data-bs-target="#profile-overview">Overview</button>
</li>
</ul>
<div class="tab-content pt-2">
<div class="tab-pane fade show active profile-overview" id="profile-overview">
<h5 class="card-title">About</h5>
<p class="font-weight-italic justified-text">Lorem, ipsum dolor sit amet consectetur
adipisicing
elit. Ipsum
aspernatur recusandae sapiente praesentium laboriosam reiciendis unde, tempora,
veniam
asperiores vel omnis ratione corrupti consequatur officia laudantium commodi
enim, eum
officiis. In earum non vero facere, obcaecati, repudiandae eaque dignissimos ut
iure
tempora libero ea. Omnis eius sit neque aliquam, sequi corrupti soluta itaque
laborum
non qui nisi nobis dicta, aperiam corporis voluptates! Ad dolore ipsam quo
molestias
neque consectetur at ipsa perspiciatis. Unde non possimus voluptas a, minus
voluptatem
iure inventore fugiat officia iste vitae beatae odit architecto laborum amet
voluptates
dolorum ut perspiciatis nulla nihil odio! Consequuntur, neque delectus!</p>
<h5 class="card-title">Profile Details</h5>
<div class="row">
<div class="col-lg-3 col-md-4 label ">ID Number</div>
<div class="col-lg-9 col-md-8">94894893848</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label ">Full Name</div>
<div class="col-lg-9 col-md-8">JIlhan Haura</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Role</div>
<div class="col-lg-9 col-md-8">
Super-Admin
</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Address</div>
<div class="col-lg-9 col-md-8">Jl simpang komplek polda</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Phone</div>
<div class="col-lg-9 col-md-8">0345893853</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Email</div>
<div class="col-lg-9 col-md-8">jilhanhaura07@gmail.com</div>
</div>
</div>
</div><!-- End Bordered Tabs -->
</div>
<div class="tab-pane fade pt-3" id="profile-change-password">
<!-- Change Password Form -->
<form>
<div class="row mb-3">
<label for="currentPassword" class="col-md-4 col-lg-3 col-form-label">Current
Password</label>
<div class="col-md-8 col-lg-9">
<input name="password" type="password" class="form-control"
id="currentPassword">
</div>
</div>
<div class="row mb-3">
<label for="newPassword" class="col-md-4 col-lg-3 col-form-label">New
Password</label>
<div class="col-md-8 col-lg-9">
<input name="newpassword" type="password" class="form-control" id="newPassword">
</div>
</div>
<div class="row mb-3">
<label for="renewPassword" class="col-md-4 col-lg-3 col-form-label">Re-enter New
Password</label>
<div class="col-md-8 col-lg-9">
<input name="renewpassword" type="password" class="form-control"
id="renewPassword">
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">Change Password</button>
</div>
</form><!-- End Change Password Form -->
</div>
</div><!-- End Bordered Tabs -->
</div>
</div>
</div>
</section>
</div>
{{-- profile --}}
<script>
document.addEventListener("DOMContentLoaded", function() {
// Mendapatkan elemen-elemen tombol tab
const editProfileTab = document.querySelector('[data-bs-target="#profile-edit"]');
const settingsTab = document.querySelector('[data-bs-target="#profile-settings"]');
const changePasswordTab = document.querySelector('[data-bs-target="#profile-change-password"]');
const overviewTab = document.querySelector('[data-bs-target="#profile-overview"]');
// Menambahkan event listener untuk mengubah tab saat tombol diklik
editProfileTab.addEventListener("click", function() {
activateTabAndContent(editProfileTab, "#profile-edit");
});
settingsTab.addEventListener("click", function() {
activateTabAndContent(settingsTab, "#profile-settings");
});
changePasswordTab.addEventListener("click", function() {
activateTabAndContent(changePasswordTab, "#profile-change-password");
});
// Menambahkan event listener untuk kembali ke tab "Overview"
overviewTab.addEventListener("click", function() {
activateTabAndContent(overviewTab, "#profile-overview");
});
// Fungsi untuk mengaktifkan tab dan konten
function activateTabAndContent(tabButton, tabContentId) {
// Nonaktifkan tab aktif saat ini
const activeTabButton = document.querySelector(".nav-link.active");
const activeTabContent = document.querySelector(".tab-pane.active");
activeTabButton.classList.remove("active");
activeTabContent.classList.remove("show", "active");
// Aktifkan tab yang dipilih
tabButton.classList.add("active");
// Tampilkan konten tab yang dipilih
const selectedTabContent = document.querySelector(tabContentId);
selectedTabContent.classList.add("show", "active");
}
});
</script>
{{-- profile --}}
@endsection
</div>
@endsection

View File

@ -1,5 +1,4 @@
@extends('admin.layout.main')
@extends('Admin.layout.main')
@section('content')
<div class="main-content">
<section class="section">
@ -14,53 +13,38 @@
</div>
<div class="col-md-12">
<div class="card">
{{-- <div class="card-header">
<h2>Detail Refund</h2>
</div> --}}
@foreach ($detail_refund as $DetailRefund)
<div class="card-body p-0">
<div class="container">
<p><strong>Image/Video</strong></p>
<p><strong>Image/Video: </strong></p>
<img src="assets/images/dashboard/img_2.jpg" alt="Return Image" width="300">
<img src="assets/images/dashboard/img_3.jpg" alt="Return Image" width="300">
<img src="assets/images/dashboard/img_4.jpg" alt="Return Image" width="300">
<br><br>
<div class="row">
<div class="col-2"><strong>ID Order</strong></div>
<div class="col">: {{ $DetailRefund['orderId'] }}</div>
</div><br>
<div class="row">
<div class="col-2"><strong>Customer Name</strong></div>
<div class="col">: {{ $DetailRefund['customer'] }}</div>
</div><br>
<div class="row">
<div class="col-2"><strong>Seller Name</strong></div>
<div class="col">: {{ $DetailRefund['seller'] }}</div>
</div><br>
<div class="row">
<div class="col-2"><strong>Total</strong></div>
<div class="col">: {{ $DetailRefund['total'] }}</div>
</div><br>
<div class="row">
<div class="col-2"><strong>Due Date</strong></div>
<div class="col">: {{ $DetailRefund['date'] }}</div>
</div><br>
<div class="row">
<div class="col-2"><strong>Reason Complaint</strong></div>
<div class="col justified-text">: {{ $DetailRefund['complaint'] }}</div>
</div>
<img src="assets/images/dashboard/img_4.jpg" alt="Return Image" width="300"><br><br>
<p><strong>ID Order:</strong> {{ $DetailRefund['orderId'] }}</p>
<p><strong>Customer Name:</strong> {{ $DetailRefund['customer'] }}</p>
<p><strong>Seller Name:</strong> {{ $DetailRefund['seller'] }}</p>
<p><strong>Total:</strong> {{ $DetailRefund['total'] }}</p>
<p><strong>Due Date:</strong> {{ $DetailRefund['date'] }}</p>
<p class="justified-text"><strong>Reason Complaint:</strong>
{{ $DetailRefund['complaint'] }}</p>
<div class="d-flex justify-content-center mt-3">
<div class="d-flex justify-content-center">
<a href="#" data-toggle="modal" data-target="#ModalRefund"
class="btn btn-primary mx-1">Accept</a>
<a href="/history_refund" class="btn btn-danger mx-1">Decline</a>
</div>
</div>
<br>
</div><br>
</div>
@endforeach
</div>
</div>
</section>
</div>
@include('admin.refund.modal-next-detail-refund')
@include('Admin.refund.next-detail-refund')
@endsection

View File

@ -0,0 +1,105 @@
@extends('Admin.layout.main')
@section('content')
<div class="main-content">
<section class="section">
<div class="section-header">
<h1>History Refund</h1>
<div class="section-header-breadcrumb">
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
<div class="breadcrumb-item">Refund</div>
<div class="breadcrumb-item">History</div>
</div>
</div>
<div class="col-md-12">
<div class="card">
{{-- <div class="card-header">
<h2>History Refund</h2>
</div> --}}
<div class="d-flex justify-content-between align-items-center p-4">
<div class="d-flex align-items-center">
<span class="mb-0 ml-2">Show:</span>
<select class="form-select ml-2">
<option>10</option>
<option>25</option>
<option>50</option>
<option>100</option>
</select>
<span class="ml-2">entries</span>
</div>
<div class="float-right">
<form>
<div class="input-group">
<input type="text" class="form-control" placeholder="Search">
<div class="input-group-append">
<button class="btn btn-primary"><i class="fas fa-search"></i></button>
</div>
</div>
</form>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-md">
<tr>
<th>Order ID</th>
<th>Customer</th>
<th>Seller</th>
<th>Total</th>
<th>Due Date</th>
<th>Status</th>
<th>Action</th>
</tr>
@foreach ($history_refund as $HistoryRefund)
<tr>
<td class="font-weight-600">{{ $HistoryRefund['orderId'] }}</a></td>
<td class="font-weight-600">{{ $HistoryRefund['customer'] }}</td>
<td class="font-weight-600">{{ $HistoryRefund['seller'] }}</td>
<td class="font-weight-600">{{ $HistoryRefund['total'] }}</td>
<td>{{ $HistoryRefund['date'] }}</td>
<td>
<div class="badge badge-danger">{{ $HistoryRefund['status'] }}</div>
</td>
<td>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Action
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/detail_refund">Details</a>
<a class="dropdown-item" href="#">Edit</a>
<a class="dropdown-item" href="#">Delete</a>
</div>
</div>
</td>
</tr>
@endforeach
</table>
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-end">
<nav aria-label="paginate">
<ul class="pagination">
<li class="page-item disabled">
<a class="page-link" href="#" tabindex="-1">Previous</a>
</li>
<li class="page-item active"><a class="page-link" href="#">1</a></li>
<li class="page-item ">
<a class="page-link" href="#">2 <span
class="sr-only">(current)</span></a>
</li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@ -49,7 +49,7 @@
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/detail_refund">Details</a>
<a class="dropdown-item" href="#" id="Swal">Delete</a>
<a class="dropdown-item" href="#">Delete</a>
</div>
</div>
</td>

View File

@ -0,0 +1,30 @@
<!-- Modal -->
<div class="modal fade" id="ModalRefund" 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">
<h5 class="modal-title" id="exampleModalLongTitle">Refund Confirmation</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<h6> Apakah kamu yakin untuk menerima pengembalian dana? </h6>
<h7><b>Jumlah Pengembalian Dana: </b></h7>
<p>Rp. 15000</p>
<input type="radio" id="yes" name="fav_language" value="yes">
<label for="yes">Ya! Terima pengembalian dana </label> <br>
<input type="radio" id="no" name="fav_language" value="no">
<label for="no">Tidak! Pengembalian dana tidak bisa dilanjutkan</label>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button>
<a href="{{route('refund.index')}}" class="btn btn-primary mx-1">Accept Refund</a>
</div>
</div>
</div>
</div>

View File

@ -27,15 +27,8 @@
<input type="number" class="form-control" name="persentase" required>
</div>
</div>
<<<<<<< HEAD:resources/views/Admin/setting/add-Data.blade.php
<div class="card">
<div class="card-body text-center">
<button class="btn btn-primary" id="swal-2">Submit</button>
</div>
=======
<div class="card-footer text-right">
<button class="btn btn-primary" id="simpan" type="submit">Simpan</button>
>>>>>>> c6e7e74f2a6981b808e6ad8dc9499362fdf9f043:resources/views/Admin/setting/modal-add-setting.blade.php
</div>
</form>
</div>

View File

@ -0,0 +1,178 @@
<!-- Modal -->
<div class="modal fade" id="ModalTransaction" 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 class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-comment-alt"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">2 min ago</span>
<span class="bullet"></span>
<a class="text-job" href="#">View</a>
<div class="float-right dropdown">
<a href="#" data-toggle="dropdown"><i
class="fas fa-ellipsis-h"></i></a>
<div class="dropdown-menu">
<div class="dropdown-title">Options</div>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-eye"></i> View</a>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-list"></i> Detail</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item has-icon text-danger"
data-confirm="Wait, wait, wait...|This action can't be undone. Want to take risks?"
data-confirm-text-yes="Yes, IDC"><i
class="fas fa-trash-alt"></i> Archive</a>
</div>
</div>
</div>
<p>Have commented on the task of "<a href="#">Responsive
design</a>".</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-arrows-alt"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job">1 hour ago</span>
<span class="bullet"></span>
<a class="text-job" href="#">View</a>
<div class="float-right dropdown">
<a href="#" data-toggle="dropdown"><i
class="fas fa-ellipsis-h"></i></a>
<div class="dropdown-menu">
<div class="dropdown-title">Options</div>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-eye"></i> View</a>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-list"></i> Detail</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item has-icon text-danger"
data-confirm="Wait, wait, wait...|This action can't be undone. Want to take risks?"
data-confirm-text-yes="Yes, IDC"><i
class="fas fa-trash-alt"></i> Archive</a>
</div>
</div>
</div>
<p>Moved the task "<a href="#">Fix some features that are bugs in
the master module</a>" from Progress to Finish.</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-unlock"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job">4 hour ago</span>
<span class="bullet"></span>
<a class="text-job" href="#">View</a>
<div class="float-right dropdown">
<a href="#" data-toggle="dropdown"><i
class="fas fa-ellipsis-h"></i></a>
<div class="dropdown-menu">
<div class="dropdown-title">Options</div>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-eye"></i> View</a>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-list"></i> Detail</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item has-icon text-danger"
data-confirm="Wait, wait, wait...|This action can't be undone. Want to take risks?"
data-confirm-text-yes="Yes, IDC"><i
class="fas fa-trash-alt"></i> Archive</a>
</div>
</div>
</div>
<p>Login to the system with ujang@maman.com email and location in Bogor.
</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-trash"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job">Yesterday</span>
<span class="bullet"></span>
<a class="text-job" href="#">View</a>
<div class="float-right dropdown">
<a href="#" data-toggle="dropdown"><i
class="fas fa-ellipsis-h"></i></a>
<div class="dropdown-menu">
<div class="dropdown-title">Options</div>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-eye"></i> View</a>
<a href="#" class="dropdown-item has-icon"><i
class="fas fa-list"></i> Detail</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item has-icon text-danger"
data-confirm="Wait, wait, wait...|This action can't be undone. Want to take risks?"
data-confirm-text-yes="Yes, IDC"><i
class="fas fa-trash-alt"></i> Archive</a>
</div>
</div>
</div>
<p>Assign the task of "<a href="#">Redesigning website header and
make it responsive AF</a>" to <a href="#">Syahdan
Ubaidilah</a>.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<a href="/history_transaction" class="btn btn-primary mx-1">Back</a>
</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

@ -0,0 +1,104 @@
@extends('Admin.layout.main')
@section('content')
<div class="main-content">
<section class="section">
<div class="section-header">
<h1>History Transaction</h1>
<div class="section-header-breadcrumb">
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
<div class="breadcrumb-item">Transaction</div>
<div class="breadcrumb-item">History</div>
</div>
</div>
<div class="col-md-12">
<div class="card">
<div class="d-flex justify-content-between align-items-center p-4">
<div class="d-flex align-items-center">
<span class="mb-0 ml-2">Show:</span>
<select class="form-select ml-2">
<option>10</option>
<option>25</option>
<option>50</option>
<option>100</option>
</select>
<span class="ml-2">entries</span>
</div>
<div class="float-right">
<form>
<div class="input-group">
<input type="text" class="form-control" placeholder="Search">
<div class="input-group-append">
<button class="btn btn-primary"><i class="fas fa-search"></i></button>
</div>
</div>
</form>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-md">
<tr>
<th>Order ID</th>
<th>Customer</th>
<th>Seller</th>
<th>Total</th>
<th>Due Date</th>
<th>Status</th>
<th>Action</th>
</tr>
@foreach ($transaction as $transactions)
<tr>
<td><a href="#">{{ $transactions['orderId'] }}</a></td>
<td class="font-weight-600">{{ $transactions['customer'] }}</td>
<td class="font-weight-600">{{ $transactions['seller'] }}</td>
<td class="font-weight-600">{{ $transactions['total'] }}</td>
<td>{{ $transactions['date'] }}</td>
<td>
<div class="badge badge-success">{{ $transactions['status'] }}</div>
</td>
<td>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Action
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/detail_transaction">Details</a>
<a class="dropdown-item" href="#" data-toggle="modal"
data-target="#ModalTransaction">Tracking</a>
<a class="dropdown-item" href="#">Delete</a>
</div>
</div>
</td>
</tr>
@endforeach
</table>
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-end">
<nav aria-label="paginate">
<ul class="pagination">
<li class="page-item disabled">
<a class="page-link" href="#" tabindex="-1">Previous</a>
</li>
<li class="page-item active"><a class="page-link" href="#">1</a></li>
<li class="page-item ">
<a class="page-link" href="#">2 <span
class="sr-only">(current)</span></a>
</li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@include('Admin.transaction.Tracking')
@endsection

View File

@ -0,0 +1,111 @@
<!-- Modal -->
<div class="modal fade" id="ModalTransaction" 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 class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-comment-alt"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 21, 2023, 8:30:15 am</span>
</div>
<p>User Created Trade</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-arrows-alt"></i>
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 22, 2023, 8:30:15 am</span>
</div>
<p>System Notified Admin</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-unlock"></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"></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-comment-alt"></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>
</div>
</div>
</div>
<div class="modal-footer">
<a href="{{ route('admin-transaction.index') }}" class="btn btn-primary mx-1">Back</a>
</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

@ -61,7 +61,7 @@
<a class="dropdown-item" href="{{route('transaction.detail')}}">Details</a>
<a class="dropdown-item" href="#" data-toggle="modal"
data-target="#ModalTransaction">Tracking</a>
<a class="dropdown-item" href="#" id="Swal">Delete</a>
<a class="dropdown-item" href="#">Delete</a>
</div>
</div>
</td>

View File

@ -5,45 +5,38 @@
<div class="section-header">
<h1>Detail Users</h1>
<div class="section-header-breadcrumb">
<div class="breadcrumb-item active"><a href="{{ route('admin.index') }}">Dashboard</a></div>
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
<div class="breadcrumb-item">Users</div>
<div class="breadcrumb-item">Details</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-md-9">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between align-items-center">
<div class="card-title pb-2 m-0">User Id<br /><span>#{{ $user->id }}</span>
<div class="card-title pb-2 m-0">User Id<br /><span>#324525</span>
</div>
</div>
<div class="d-flex flex-column">
@if ($user->foto_profil == null)
<img src="{{ asset('assets/img/avatar/avatar-6.png') }}"
class="rounded-circle shadow align-self-center"style="max-width: 130px;"
alt="" srcset="">
@else
<img src="{{ asset('storage/foto-profil/' . $user->foto_profil) }}"
class="rounded-circle shadow align-self-center" style="max-width: 130px;"
alt="" srcset="">
@endif
<h4 class="align-self-center mt-3">Status :
{{ $user->status == 'Finished' ? 'Selesai diverifikasi' : ($user->status == 'Progress' ? 'Sedang diverifikasi' : 'Tolak') }}
</h4>
<img src="/assets/img/avatar/avatar-6.png" class="rounded-circle shadow align-self-center"
style="max-width: 130px;" alt="" srcset="">
<hr class="border border-1 opacity-75 w-100">
<div class="data-field">
<span class="fw-bold text-start">NIK</span>
<span class="text-muted ">{{ $user->nik }}</span>
<span class="fw-bold text-start">Name</span>
<span class="text-muted ">jilhan haura</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Nama</span>
<span
class="text-muted ">{{ ucwords(strtolower($user->nama_depan . ' ' . $user->nama_belakang)) }}</span>
<span class="fw-bold text-start">Gender</span>
<span class="text-muted ">female</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Jenis Kelamin</span>
<span class="text-muted ">{{ $user->gender }}</span>
<span class="fw-bold text-start">Religion</span>
<span class="text-muted ">muslim</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Blood Type</span>
<span class="text-muted ">ab</span>
</div>
</div>
<hr class="border border-1 opacity-75 w-100">
@ -55,214 +48,41 @@
<div class="data-field">
<span class="fw-bold text-start">Email</span>
<span class="text-muted ">{{ $user->email }}</span>
<span class="text-muted ">jilhanhaura07@gmail.com</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Nomor HP</span>
<span class="text-muted ">{{ $user->nohp }}</span>
<span class="fw-bold text-start">Phone Number</span>
<span class="text-muted ">929382044824</span>
</div>
<hr class="border border-1 opacity-75 w-100">
<div class="d-flex justify-content-between align-items-center">
<div class="card-title pb-2 m-0">
<h4>Alamat</h4>
<h4>Address</h4>
</div>
</div>
<div class="data-field">
<span class="fw-bold text-start">Provinsi</span>
<span class="text-muted ">{{ ucwords(strtolower($user->getProvinceName())) }}</span>
<span class="fw-bold text-start">Province</span>
<span class="text-muted ">sumbar</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Kota/Kabupaten</span>
<span class="text-muted ">{{ ucwords(strtolower($user->getCityName())) }}</span>
<span class="fw-bold text-start">City</span>
<span class="text-muted ">padang</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Kecamatan</span>
<span class="text-muted ">{{ ucwords(strtolower($user->getDistrictName())) }}</span>
<span class="fw-bold text-start">District</span>
<span class="text-muted ">asadcas</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Kelurahan</span>
<span class="text-muted ">{{ ucwords(strtolower($user->getVillageName())) }}</span>
<span class="fw-bold text-start">Village</span>
<span class="text-muted ">balaibaru</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Alamat</span>
<span class="text-muted ">{{ $user->alamat }}</span>
<span class="fw-bold text-start">Detail</span>
<span class="text-muted ">fafaafadad</span>
</div>
<hr class="border border-1 opacity-75 w-100">
<div class="d-flex justify-content-between align-items-center">
<div class="card-title pb-2 m-0">
<h4>Foto KTP dan Wajah</h4>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-6 col-sm-12 text-center">
<!-- Kolom pertama, col-md-6 untuk layar medium dan col-sm-12 untuk layar kecil -->
@if ($user->foto_ktp == null)
<a href="#" id="tampilKTP">
<img id="fotoKTP" src="/assets/images/foto-ktp.jpg" alt="Foto KTP"
class="align-self-center img-fluid" style="max-width: 350px;">
</a>
@else
<a href="#" id="tampilKTP">
<img id="fotoKTP" src="/assets/images/foto-ktp.jpg" alt="Foto Wajah"
class="align-self-center img-fluid" style="max-width: 350px;">
</a>
@endif
</div>
<div class="col-md-6 col-sm-12 text-center">
<!-- Kolom kedua, col-md-6 untuk layar medium dan col-sm-12 untuk layar kecil -->
@if ($user->foto_wajah == null)
<a href="#" id="tampilWajah">
<img id="fotoWajah" src="/assets/images/foto-ktp.jpg" alt="Foto KTP"
class="align-self-center img-fluid" style="max-width: 350px;">
</a>
@else
<a href="#" id="tampilWajah">
<img id="fotoWajah" src="/assets/images/foto-ktp.jpg" alt="Foto Wajah"
class="align-self-center img-fluid" style="max-width: 350px;">
</a>
@endif
</div>
</div>
</div>
<div class="data-field mt-4">
<span class="fw-bold text-start">Persentase Kemiripan</span>
<span class="text-muted ">{{ $user->persentase_kemiripan }}</span>
</div>
@if ($user->status == 'Progress')
<div class="d-flex justify-content-between align-items-center">
<div class="card-title pb-2 m-0">
<h4>Setujui pembuatan akun ini?</h4>
</div>
</div>
<a class="btn btn-primary text-white" id="approveUser"
data-id="{{ $user->id }}">Setujui</a>
<a class="btn btn-danger text-white" id="denyUser"
data-id="{{ $user->id }}">Tolak</a>
@endif
</div>
</div>
</div>
</div>
</section>
</div>
<script>
$(document).ready(function() {
$('#tampilKTP').on('click', function() {
let fotoKTP = document.getElementById('fotoKTP').src;
console.log(fotoKTP);
Swal.fire({
title: 'Foto KTP',
imageUrl: fotoKTP,
imageWidth: 600,
// imageHeight: 1500,
imageAlt: 'Foto KTP'
});
});
$('#tampilWajah').on('click', function() {
let fotoWajah = document.getElementById('fotoWajah').src;
Swal.fire({
title: 'Foto Wajah',
imageUrl: fotoWajah,
imageWidth: 600,
imageAlt: 'Foto Wajah'
});
});
$('#approveUser').on('click', function() {
let id = $(this).data('id');
const csrfToken = $('meta[name="csrf-token"]').attr('content');
Swal.fire({
title: 'Status Akun',
text: 'Apakah anda yakin menyetujui akun ini?',
icon: 'info',
confirmButtonText: 'Ya, setuju!',
showCancelButton: true,
cancelButtonText: 'Tidak'
}).then((result) => {
if (result.isConfirmed) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': csrfToken
}
});
$.ajax({
url: "{{ route('admin-user.approve', ':id') }}".replace(
':id', id),
type: 'PUT',
success: function(response) {
Swal.fire({
title: response.status ? 'Berhasil!' :
'Gagal!',
text: response.message,
icon: response.status ? 'success' : 'error',
confirmButtonText: 'OK'
}).then(function() {
location.reload();
});
},
error: function(error) {
Swal.fire({
title: 'Gagal!',
text: 'Tidak ada data yang dihapus, karena ' +
error,
icon: 'error'
}).then(function() {
location.reload();
});
}
});
}
});
});
$('#denyUser').on('click', function() {
let id = $(this).data('id');
const csrfToken = $('meta[name="csrf-token"]').attr('content');
Swal.fire({
title: 'Status Akun',
text: 'Apakah anda yakin menolak akun ini?',
icon: 'info',
confirmButtonText: 'Ya, setuju!',
showCancelButton: true,
cancelButtonText: 'Tidak'
}).then((result) => {
if (result.isConfirmed) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': csrfToken
}
});
$.ajax({
url: "{{ route('admin-user.deny', ':id') }}".replace(
':id', id),
type: 'PUT',
success: function(response) {
Swal.fire({
title: response.status ? 'Berhasil!' :
'Gagal!',
text: response.message,
icon: response.status ? 'success' : 'error',
confirmButtonText: 'OK'
}).then(function() {
location.reload();
});
},
error: function(error) {
Swal.fire({
title: 'Gagal!',
text: 'Gagal mengubah status akun, karena ' +
error,
icon: 'info'
});
}
});
}
});
});
});
</script>
@endsection

View File

@ -21,7 +21,6 @@
<th>Foto Profil</th>
<th>Nama Panjang</th>
<th>Email</th>
{{-- <th>Gender</th> --}}
<th>Tanggal Daftar</th>
<th>Status</th>
<th>Aksi</th>
@ -34,11 +33,10 @@
<td>{{ $user->id }}</td>
<td>
<figure class="avatar mr-2 avatar-xl">
<img src="{{ $user->foto_profil != null ? asset('storage') : asset('assets/img/avatar/avatar-6.png') }}"
alt="...">
<img src="{{ $user->foto_profil != null ? asset('storage') : asset('assets/img/avatar/avatar-6.png') }}" alt="...">
</figure>
</td>
<td>{{ $user->nama_depan }}</td>
<td>{{ $user->nama_depan.' '.$user->nama_belakang }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->created_at }}</td>
<td>

View File

@ -9,65 +9,101 @@
<div class="breadcrumb-item">User</div>
</div>
</div>
<div class="col-12">
<div class="col-md-12">
<div class="card">
{{-- <div class="card-header">
<h2 class="mb-4">List Users</h2>
</div> --}}
<div class="d-flex justify-content-between align-items-center p-4">
<div class="d-flex align-items-center">
<span class="mb-0 ml-2">Show:</span>
<select class="form-select ml-2">
<option>10</option>
<option>25</option>
<option>50</option>
<option>100</option>
</select>
<span class="ml-2">entries</span>
</div>
<div class="float-right">
<form>
<div class="input-group">
<input type="text" class="form-control" placeholder="Search">
<div class="input-group-append">
<button class="btn btn-primary"><i class="fas fa-search"></i></button>
</div>
</div>
</form>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-striped" id="table-1">
<thead>
<table class="table table-bordered table-md">
<tr>
<th>User Id</th>
<th>Avatar</th>
<th>NIK</th>
<th>FullName</th>
<th>Email</th>
{{-- <th>Gender</th> --}}
<th>Date</th>
<th>Status</th>
<th>Action</th>
</tr>
@foreach ($list_users as $list_user)
<tr>
<th class="text-center">#</th>
<th>User Id</th>
<th>Avatar</th>
<th>Fullname</th>
<th>Email</th>
<th>Gender</th>
<th>Due Date</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($list_users as $list_user)
<tr>
<td>{{ $list_user['no'] }}</td>
<td>{{ $list_user['userId'] }}</td>
<td>
<figure class="avatar mr-2 avatar-xl">
<img src="assets/img/avatar/avatar-6.png" alt="...">
</figure>
</td>
<td>{{ $list_user['fullname'] }}</td>
<td>{{ $list_user['email'] }}</td>
<td>{{ $list_user['gender'] }}</td>
<td>{{ $list_user['date'] }}</td>
<td>
@php
$statusClass = '';
if ($list_user['status'] === 'Finished') {
$statusClass = 'badge-success';
} elseif ($list_user['status'] === 'Progress') {
$statusClass = 'badge-danger';
}
@endphp
<div class="badge {{ $statusClass }}">{{ $list_user['status'] }}</div>
</td>
<td>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Action
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/detail-user">Details</a>
<a class="dropdown-item" href="#" id="Swal">Delete</a>
</div>
<td class="font-weight-600"> {{ $list_user['userId'] }}</td>
<td>
<figure class="avatar mr-2 avatar-xl">
<img src="assets/img/avatar/avatar-6.png" alt="...">
</figure>
</td>
<td class="font-weight-600">{{ $list_user['nik'] }}</td>
<td class="font-weight-600">{{ $list_user['fullname'] }}</td>
<td class="font-weight-600">{{ $list_user['email'] }}</td>
{{-- <td class="font-weight-600">{{ $list_user['gender'] }}</td> --}}
<td>{{ $list_user['date'] }}</td>
<td>
<div class="badge badge-success">{{ $list_user['status'] }}</div>
</td>
<td>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Action
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/detail-user">Details</a>
<a class="dropdown-item" href="#">Edit</a>
<a class="dropdown-item" href="#">Delete</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</div>
</td>
</tr>
@endforeach
</table>
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-end">
<nav aria-label="paginate">
<ul class="pagination">
<li class="page-item disabled">
<a class="page-link" href="#" tabindex="-1">Previous</a>
</li>
<li class="page-item active"><a class="page-link" href="#">1</a></li>
<li class="page-item ">
<a class="page-link" href="#">2 <span
class="sr-only">(current)</span></a>
</li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#">Next</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -1,4 +1,8 @@
<<<<<<< HEAD
@extends('User.layout.main')
=======
@extends('user.layout.main')
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
@section('content')
<!-- Main Content -->
<div class="main-content">
@ -69,7 +73,11 @@
<h4>Total Refund</h4>
</div>
<div class="card-body">
<<<<<<< HEAD
100
=======
190
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
</div>
</div>
</div>
@ -84,10 +92,17 @@
</div>
<div class="card-wrap">
<div class="card-header">
<<<<<<< HEAD
<h4>Total user</h4>
</div>
<div class="card-body">
100 </div>
=======
<h4>Total Transaction </h4>
</div>
<div class="card-body">
109 </div>
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
</div>
</div>
</div>
@ -104,6 +119,38 @@
</div>
</div>
<<<<<<< HEAD
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h2>History Transaction</h2>
</div>
<div class="d-flex justify-content-between align-items-center p-4">
<div class="d-flex align-items-center">
<span class="mb-0 ml-2">Show:</span>
<select class="form-select ml-2">
<option>10</option>
<option>25</option>
<option>50</option>
<option>100</option>
</select>
<span class="ml-2">entries</span>
</div>
<div class="float-right">
<form>
<div class="input-group">
<input type="text" class="form-control" placeholder="Search">
<div class="input-group-append">
<button class="btn btn-primary"><i class="fas fa-search"></i></button>
</div>
</div>
</form>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-md">
=======
<div class="col-md-12">
<div class="card">
@ -113,6 +160,7 @@
<div class="card-body p-0">
<div class="table-responsive table-invoice">
<table class="table table-striped">
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
<tr>
<th>Order ID</th>
<th>Customer</th>
@ -120,6 +168,35 @@
<th>Total</th>
<th>Due Date</th>
<th>Status</th>
<<<<<<< HEAD
<th>Action</th>
</tr>
@foreach ($transaction as $transactions)
<tr>
<td><a href="#">{{ $transactions['orderId'] }}</a></td>
<td class="font-weight-600">{{ $transactions['customer'] }}</td>
<td class="font-weight-600">{{ $transactions['seller'] }}</td>
<td class="font-weight-600">{{ $transactions['total'] }}</td>
<td>{{ $transactions['date'] }}</td>
<td>
<div class="badge badge-success">{{ $transactions['status'] }}</div>
</td>
<td>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Action
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/detail_transaction">Details</a>
<a class="dropdown-item" href="#" data-toggle="modal"
data-target="#ModalTransaction">Tracking</a>
<a class="dropdown-item" href="#">Delete</a>
</div>
</div>
</td>
=======
<th>Image</th>
</tr>
@foreach ($refundUserss as $HistoryRefundUser)
@ -141,6 +218,7 @@
{{ $HistoryRefundUser['uploadBukti'] }}</td>
<td>
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
</tr>
@endforeach
</table>
@ -148,6 +226,12 @@
</div>
</div>
</div>
<<<<<<< HEAD
</div>
</section>
</div>
@include('Admin.transaction.Tracking')
=======
</div>
</section>
@ -351,4 +435,5 @@
}
});
</script>
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
@endsection

View File

@ -84,7 +84,8 @@
<div class="dropdown-list-content dropdown-list-message">
<a href="#" class="dropdown-item dropdown-item-unread">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-1.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-1.png') }}"
class="rounded-circle">
<div class="is-online"></div>
</div>
<div class="dropdown-item-desc">
@ -95,7 +96,8 @@
</a>
<a href="#" class="dropdown-item dropdown-item-unread">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-2.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-2.png') }}"
class="rounded-circle">
</div>
<div class="dropdown-item-desc">
<b>Dedik Sugiharto</b>
@ -105,7 +107,8 @@
</a>
<a href="#" class="dropdown-item dropdown-item-unread">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-3.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-3.png') }}"
class="rounded-circle">
<div class="is-online"></div>
</div>
<div class="dropdown-item-desc">
@ -116,7 +119,8 @@
</a>
<a href="#" class="dropdown-item">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-4.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-4.png') }}"
class="rounded-circle">
</div>
<div class="dropdown-item-desc">
<b>Ardian Rahardiansyah</b>
@ -126,7 +130,8 @@
</a>
<a href="#" class="dropdown-item">
<div class="dropdown-item-avatar">
<img alt="image" src="{{asset('assets/img/avatar/avatar-5.png')}}" class="rounded-circle">
<img alt="image" src="{{ asset('assets/img/avatar/avatar-5.png') }}"
class="rounded-circle">
</div>
<div class="dropdown-item-desc">
<b>Alfa Zulkarnain</b>
@ -202,25 +207,43 @@
</li>
<li class="dropdown"><a href="#" data-toggle="dropdown"
class="nav-link dropdown-toggle nav-link-lg nav-link-user">
<img alt="image" src="{{asset('assets/img/avatar/avatar-1.png')}}" class="rounded-circle mr-1">
<div class="d-sm-none d-lg-inline-block">Hi, {{ Auth::user()->nama_depan }}</div>
<<<<<<< HEAD <img alt="image" src="assets/img/avatar/avatar-1.png" class="rounded-circle mr-1">
<div class="d-sm-none d-lg-inline-block">Hi, {{ $name }}</div>
</a>
<div class="dropdown-menu dropdown-menu-right">
<div class="dropdown-title">Logged in 5 min ago</div>
<a href="{{route('user.profile')}}" class="dropdown-item has-icon">
<a href="#" class="dropdown-item has-icon">
<i class="far fa-user"></i> Profile
</a>
{{-- <a href="features-activities.html" class="dropdown-item has-icon">
<a href="features-activities.html" class="dropdown-item has-icon">
=======
<img alt="image" src="{{ asset('assets/img/avatar/avatar-1.png') }}"
class="rounded-circle mr-1">
<div class="d-sm-none d-lg-inline-block">Hi, {{ Auth::user()->nama_depan }}</div>
</a>
<div class="dropdown-menu dropdown-menu-right">
<div class="dropdown-title">Logged in 5 min ago</div>
<a href="{{ route('user.profile') }}" class="dropdown-item has-icon">
<i class="far fa-user"></i> Profile
</a>
{{-- <a href="features-activities.html" class="dropdown-item has-icon">
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
<i class="fas fa-bolt"></i> Activities
</a>
<a href="features-settings.html" class="dropdown-item has-icon">
<i class="fas fa-cog"></i> Settings
</a> --}}
<div class="dropdown-divider"></div>
<a href="{{route('logout')}}" class="dropdown-item has-icon text-danger">
<i class="fas fa-sign-out-alt"></i> Logout
<<<<<<< HEAD
</a>
</div>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item has-icon text-danger">
=======
</a> --}}
<div class="dropdown-divider"></div>
<a href="{{ route('logout') }}" class="dropdown-item has-icon text-danger">
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
<i class="fas fa-sign-out-alt"></i> Logout
</a>
</div>
</li>
</ul>
</nav>

View File

@ -34,29 +34,25 @@
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>REKBER</title>
<!-- General CSS Files -->
<link rel="stylesheet" href="{{ asset('assets/modules/bootstrap/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/modules/fontawesome/css/all.min.css') }}">
<link rel="stylesheet" href="https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css">
<link rel="stylesheet" href="{{ asset('assets/modules/jqvmap/dist/jqvmap.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/modules/summernote/summernote-bs4.css') }}">
<link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.theme.default.min.css') }}">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.css" />
<link rel="stylesheet" href="assets/modules/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/modules/fontawesome/css/all.min.css">
<!-- CSS Libraries -->
<link rel="stylesheet" href="assets/modules/jqvmap/dist/jqvmap.min.css">
<link rel="stylesheet" href="assets/modules/summernote/summernote-bs4.css">
<link rel="stylesheet" href="assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css">
<link rel="stylesheet" href="assets/modules/owlcarousel2/dist/assets/owl.theme.default.min.css">
<link rel="stylesheet" href="{{ asset('assets/modules/datatables/datatables.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/modules/datatables/DataTables-1.10.16/css/dataTables.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/modules/datatables/Select-1.2.4/css/select.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/main.css') }}">
<!-- Template CSS -->
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/components.css') }}">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="assets/css/components.css">
<!-- Start GA -->
{{-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script> --}}
{{-- <script>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
@ -65,129 +61,46 @@
gtag('js', new Date());
gtag('config', 'UA-94034622-3');
</script> --}}
</script>
<!-- /END GA -->
{{-- JS --}}
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="{{ asset('assets/modules/chart.min.js') }}"></script>
</head>
<body>
<header class="header-area header-sticky">
@include('user.layout.header')
@include('User.layout.header')
</header>
<!-- ***** Main Banner Area Start ***** -->
<main id="main" style="min-height: 100vh;">
@include('user.layout.sidebar')
@include('User.layout.sidebar')
@yield('content')
</main>
<!-- End #main -->
<footer id="footer">
@include('user.layout.footer')
@include('User.layout.footer')
</footer>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script>
$(document).ready(function() {
let searchParams = new URLSearchParams(window.location.search);
let dateInterval = searchParams.get('from-to');
let start = moment().subtract(29, 'days');
let end = moment();
if (dateInterval) {
dateInterval = dateInterval.split(' - ');
start = moment(dateInterval[0]);
end = moment(dateInterval[1]);
}
$('#date-range').daterangepicker({
"showDropdowns": true,
"showWeekNumbers": true,
"alwaysShowCalendars": true,
startDate: start,
endDate: end,
locale: {
format: 'YYYY-MM-DD',
firstDay: 1,
},
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1,
'month').endOf(
'month')],
'This Year': [moment().startOf('year'), moment().endOf('year')],
'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year')
.endOf(
'year')
],
'All time': [moment().subtract(30, 'year').startOf('month'), moment().endOf('month')],
}
});
});
</script>
<!-- General JS Scripts -->
<script src="{{ asset('assets/modules/jquery.min.js') }}"></script>
<script src="{{ asset('assets/modules/popper.js') }}"></script>i
<script src="{{ asset('assets/modules/tooltip.js') }}"></script>
<script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script>
<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script>
<script src="{{ asset('assets/modules/moment.min.js') }}"></script>
<script src="{{ asset('assets/js/stisla.js') }}"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="assets/modules/jquery.min.js"></script>
<script src="assets/modules/popper.js"></script>
<script src="assets/modules/tooltip.js"></script>
<script src="assets/modules/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/modules/nicescroll/jquery.nicescroll.min.js"></script>
<script src="assets/modules/moment.min.js"></script>
<script src="assets/js/stisla.js"></script>
<!-- JS Libraies -->
<script src="{{ asset('assets/modules/jquery.sparkline.min.js') }}"></script>
<script src="{{ asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js') }}"></script>
<script src="{{ asset('assets/modules/summernote/summernote-bs4.js') }}"></script>
<script src="{{ asset('assets/modules/chocolat/dist/js/jquery.chocolat.min.js') }}"></script>
<!-- JS Libraies -->
<script src="{{ asset('assets/modules/datatables/datatables.min.js') }}"></script>
<script src="{{ asset('assets/modules/datatables/DataTables-1.10.16/js/dataTables.bootstrap4.min.js') }}"></script>
<script src="{{ asset('assets/modules/datatables/Select-1.2.4/js/dataTables.select.min.js') }}"></script>
<script src="{{ asset('assets/modules/jquery-ui/jquery-ui.min.js') }}"></script>
{{-- <script type="text/javascript">
$(function() {
$(document).on('click', '#payment', function(e) {
e.preventDefault();
var link = $(this).attr("href");
Swal.fire({
position: 'top-end',
icon: 'Success Payment!',
title: 'Your work has been saved',
showConfirmButton: false,
timer: 1500
})
});
});
</script> --}}
<script src="assets/modules/jquery.sparkline.min.js"></script>
<script src="assets/modules/chart.min.js"></script>
<script src="assets/modules/owlcarousel2/dist/owl.carousel.min.js"></script>
<script src="assets/modules/summernote/summernote-bs4.js"></script>
<script src="assets/modules/chocolat/dist/js/jquery.chocolat.min.js"></script>
<!-- Page Specific JS File -->
<script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script>
<!-- Page Specific JS File -->
{{-- <script src="{{ asset('assets/js/page/index.js') }}"></script> --}}
<script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script>i
{{-- <script src="{{ asset('assets/js/page/index-0.js') }}"></script> --}}
<script src="assets/js/page/index.js"></script>
<!-- Template JS File -->
<script src="{{ asset('assets/js/scripts.js') }}"></script>
<script src="{{ asset('assets/js/custom.js') }}"></script>
{{-- <script src="{{ asset('assets/js/main.js') }}"></script> --}}
<script src="assets/js/scripts.js"></script>
<script src="assets/js/custom.js"></script>
</body>
</html>

View File

@ -1,32 +1,34 @@
<div class="main-sidebar sidebar-style-2">
<aside id="sidebar-wrapper">
<div class="sidebar-brand">
<a href="{{route('user.index')}}">REKBER</a>
<a href="{{ route('user.index') }}">REKBER</a>
</div>
<div class="sidebar-brand sidebar-brand-sm">
<a href="{{route('user.index')}}">RK</a>
<a href="{{ route('user.index') }}">RK</a>
</div>
<ul class="sidebar-menu">
<li class="menu-header">Dashboard</li>
<li><a class="nav-link active" href="{{route('user.index')}}"><i class="fas fa-fire"></i> <span>Dashboard</span></a></li>
<li><a class="nav-link active" href="{{ route('user.index') }}"><i class="fas fa-fire"></i>
<span>Dashboard</span></a></li>
<li class="menu-header">Starter</li>
<li class="drop-down ">
<a class="nav-link" data-toggle="collapse" href="#submenuTransaction" aria-expanded="false" aria-controls="submenuTransaction">
<a class="nav-link" data-toggle="collapse" href="#submenuTransaction" aria-expanded="false"
aria-controls="submenuTransaction">
<i class="fas fa-columns"></i><span>Transaksi</span> <i class="fas fa-caret-down"></i>
</a>
<div id="submenuTransaction" class="collapse">
<ul class="nav flex-column sub-menu">
<li class="nav-item">
<a class="nav-link" href="{{route('user-transaction.index.pembeli')}}">
<a class="nav-link" href="{{ route('user-transaction.index.pembeli') }}">
<i class="fas fa-users"></i> Pembeli
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{route('user-transaction.index.penjual')}}">
<a class="nav-link" href="{{ route('user-transaction.index.penjual') }}">
<i class="fas fa-user"></i> Penjual
</a>
</li>
@ -34,14 +36,14 @@
</div>
</li>
<li>
<a class="nav-link active" href="{{route('user-contact.index')}}">
<a class="nav-link active" href="{{ route('user-contact.index') }}">
<i class="fas fa-address-book"></i> <span>Kontak</span>
</a>
</li>
<li>
<a class="nav-link active" href="{{route('user-refund.index')}}">
<a class="nav-link active" href="{{ route('user-refund.index') }}">
<i class="fas fa-money-check-alt"></i> <span>Refund</span>
</a>
</li>
@ -55,3 +57,4 @@
</div> --}}
</aside>
</div>
<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script>

View File

@ -12,7 +12,12 @@
</div>
</div>
<div class="section-body">
<h2 class="section-title">npannisa</h2>
<h2 class="section-title">
Admin</h2>
<h2 class="section-buyer">
{{ $transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->nama_belakang }}</h2>
<h2 class="section-seller">
{{ $transaction->data_penjual->nama_depan . ' ' . $transaction->data_penjual->nama_belakang }}</h2>
<div class="d-flex justify-content-between align-items-center">
<div class="card-title pb-2 m-0">
<h4>Timeline</h4>
@ -23,66 +28,37 @@
<div class="row">
<div class="col-12">
<div class="activities">
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-clipboard-list" style="font-size: 36px;"></i>
<!-- Mengganti ikon dengan ikon clipboard-list dan mengatur ukuran ikon -->
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 21, 2023, 8:30:15 am</span>
{{-- Awal --}}
@forelse ($trackings as $tracking)
<div class="activity">
<div
class="activity-icon {{ $tracking->background }} text-white shadow-primary">
<i class="{{ $tracking->judul }}" style="font-size: 30px;"
aria-hidden="true"></i>
<!-- Mengganti ikon dengan ikon clipboard-list dan mengatur ukuran ikon -->
</div>
<p>User Created Trade</p>
</div>
</div>
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-bell" style="font-size: 36px;"></i>
<!-- Mengganti ikon dengan ikon bell dan mengatur ukuran ikon -->
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 22, 2023, 8:30:15 am</span>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">{{ $tracking->created_at }}</span>
</div>
<p>{{ $tracking->deskripsi }}</p>
</div>
<p>System Notified Admin</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>
<!-- Mengganti ikon dengan ikon check-circle dan mengatur ukuran ikon -->
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 23, 2023, 8:30:15 am</span>
@empty
<div class="activity">
<div class="activity-icon bg-primary text-white shadow-primary">
<i class="fas fa-ban" style="font-size: 36px;"></i>
<!-- Mengganti ikon dengan ikon clipboard-list dan mengatur ukuran ikon -->
</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>
<!-- Mengganti ikon dengan ikon trash-alt dan mengatur ukuran ikon -->
</div>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">August 24, 2023, 8:30:15 am</span>
<div class="activity-detail">
<div class="mb-2">
<span class="text-job text-primary">--</span>
</div>
<p>Tidak ada histori</p>
</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-comment-alt" style="font-size: 36px;"></i>
<!-- Mengganti ikon dengan ikon comment-alt dan mengatur ukuran ikon -->
</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>
@endforelse
{{-- Akhir --}}
</div>
</div>
</div>
@ -90,41 +66,50 @@
<div class="section-body">
<div class="invoice">
<div class="invoice-print">
<h2 style="margin-bottom: -1em">REKBER</h2>
<div class="row">
<div class="col-lg-12">
<hr>
<div class="section-title">Keterangan</div>
<div class="row">
<div class="col-md-6">
<address>
<strong>Billed To:</strong><br>
npannisa<br>
1234 Main<br>
Apt. 4B<br>
Depok City, Indonesia
<strong>Pembeli:</strong><br>
{{ ucwords(strtolower($transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->nama_belakang)) }}<br>
{{ ucwords(strtolower($transaction->data_pembeli->alamat)) }}<br>
{{ ucwords(strtolower($transaction->data_pembeli->getVillageName() . ', ' . $transaction->data_pembeli->getDistrictName())) }}<br>
{{ ucwords(strtolower($transaction->data_pembeli->getCityName() . ', ' . $transaction->data_pembeli->getProvinceName())) }}
</address>
</div>
<div class="col-md-6 text-md-right">
<address>
<strong>Shipped To:</strong><br>
Jilhan Haura<br>
12345 Main<br>
Apt. 5B<br>
Bogor Barat, Indonesia
<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 class="row">
<div class="col-md-12 text-md-left">
<address>
<strong>Tanggal Transaksi:</strong><br>
{{ $transaction->created_at }}<br><br>
</address>
</div>
<div class="col-md-6">
<address>
<strong>Payment Method:</strong><br>
<strong>Metode Pembayaran:</strong><br>
Visa ending **** 4242<br>
npannisa@gmail.com
</address>
</div>
<div class="col-md-6 text-md-right">
<address>
<strong>Order Date:</strong><br>
September 19, 2023<br><br>
<strong>Tanggal Pembayaran:</strong><br>
{{ $transaction->updated_at }}<br><br>
{{-- {{$transaction->tanggal_pembayaran}}<br><br> --}}
</address>
</div>
</div>
@ -133,53 +118,54 @@
<div class="row mt-4">
<div class="col-md-12">
<div class="section-title">Order Summary</div>
<p class="section-lead">All items here cannot be deleted.</p>
<div class="section-title">Rangkuman Transaksi</div>
<p class="section-lead">Semua barang yang didaftarkan dalam transaksi.</p>
<div class="table-responsive">
<table class="table table-striped table-hover table-md">
<tr>
<th data-width="40">#</th>
<th>Item</th>
<th class="text-center">Price</th>
<th class="text-center">Quantity</th>
<th class="text-right">Totals</th>
<th>Nama Barang</th>
<th class="text-center">Harga</th>
<th class="text-center">Jumlah</th>
<th class="text-right">Total</th>
</tr>
<tr>
<td>1</td>
<td>Ayam Warna Warni</td>
<td class="text-center">Rp. 50.000.000</td>
<td class="text-center">1</td>
<td class="text-right">Rp. 50.000.000</td>
<td>{{ $transaction->nama_barang }}</td>
<td class="text-center">{{ $transaction->harga_barang }}</td>
<td class="text-center">{{ $transaction->jumlah_barang }}</td>
<td class="text-right">
{{ $transaction->harga_barang * $transaction->jumlah_barang }}</td>
</tr>
</table>
</div>
<div class="row mt-4">
<div class="col-lg-8">
<div class="section-title">Payment Method</div>
<p class="section-lead">The payment method that we provide
is to make it easier for
you to pay invoices.</p>
<p class="section-lead">{{$transaction->metode_pembayaran}}</p>
<div class="images">
<img src="assets/img/visa.png" alt="visa">
<img src="assets/img/jcb.png" alt="jcb">
<img src="assets/img/mastercard.png" alt="mastercard">
<img src="assets/img/paypal.png" alt="paypal">
<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 class="col-lg-4 text-right">
<div class="invoice-detail-item">
<div class="invoice-detail-name">Subtotal</div>
<div class="invoice-detail-value">Rp.670.000.000</div>
<div class="invoice-detail-value">Rp {{ number_format($transaction->total_harga, 2, ',', '.') }}</div>
</div>
<div class="invoice-detail-item">
<div class="invoice-detail-name">Shipping</div>
<div class="invoice-detail-value">Rp.15.000</div>
<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.6.715.000.000</div>
Rp {{ number_format($transaction->total_bayar, 2, ',', '.') }}</div>
</div>
</div>
</div>
@ -191,99 +177,6 @@
</div>
</div>
</div>
@endsection
{{-- <div class="col-12 col-md-12 col-lg-7">
<div class="card">
<div class="card-body">
@foreach ($TransactionUser as $HistoryTransaction) --}}
{{-- <div class="d-flex flex-column">
<div class="data-fieldr">
<span class="fw-bold text-start">Order Details</span>
</div>
<hr class="border border-1 opacity-75 w-100">
<div class="data-field">
<span class="fw-bold text-start">Oder ID</span>
<span class="text-muted ">{{ $HistoryTransaction['orderId'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Customer</span>
<span class="text-muted ">{{ $HistoryTransaction['Customer'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Seller</span>
<span class="text-muted ">{{ $HistoryTransaction['seller'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Total</span>
<span class="text-muted ">{{ $HistoryTransaction['total'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Due Date</span>
<span class="text-muted ">{{ $HistoryTransaction['dueDate'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Status</span>
<span class="text-muted ">{{ $HistoryTransaction['status'] }}</span>
</div>
</div> --}}
{{-- @endforeach --}}
{{-- Pindahan modal --}}
{{-- awal modal transaksi --}}
{{-- <div class="modal fade" id="detailtransaksi" 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">
<h1 class="modal-title fs-5" id="staticBackdropLabel">Detail Transaksi</h1>
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
</div>
<div class="modal-body">
@foreach ($TransactionUser as $HistoryTransaction)
<div class="d-flex flex-column">
<div class="data-fieldr">
<span class="fw-bold text-start">Order Details</span>
</div>
<hr class="border border-1 opacity-75 w-100">
<div class="data-field">
<span class="fw-bold text-start">Oder ID</span>
<span class="text-muted ">{{ $HistoryTransaction['orderId'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Customer</span>
<span class="text-muted ">{{ $HistoryTransaction['Customer'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Seller</span>
<span class="text-muted ">{{ $HistoryTransaction['seller'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Total</span>
<span class="text-muted ">{{ $HistoryTransaction['total'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Due Date</span>
<span class="text-muted ">{{ $HistoryTransaction['dueDate'] }}</span>
</div>
<div class="data-field">
<span class="fw-bold text-start">Status</span>
<span class="text-muted ">{{ $HistoryTransaction['status'] }}</span>
</div>
</div>
@endforeach
</div>
<div class="modal-footer">
<a href="/transaction" type="button" class="btn btn-primary">OK!</a>
</div>
</div>
</section>
</div>
</div> --}}
@endsection

View File

@ -3,8 +3,6 @@
<div class="main-content">
<section class="section">
<div class="section-header">
<div class="section-header-breadcrumb">
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
<div class="breadcrumb-item"><a href="#"> Transaction</a></div>
@ -17,44 +15,44 @@
<div class="col-12 mb-4">
<div class="hero bg-primary text-white">
<div class="hero-inner">
<h1>Welcome! npannisa</h1>
<p class="lead">How Are You Today?</p>
<h1>Welcome! {{ Auth::user()->nama_depan }}</h1>
<p class="lead">Mau belanja apa hari ini?</p>
</div>
</div>
</div>
<div class="col-md-12">
<div class="card">
<div class="d-grid gap-2 d-md-flex justify-content-md-end" style="margin-bottom: 20px">
<a class="nav-link active" href="new-transaction">
<a class="nav-link active" href="{{ route('tambah-transaction.pembeli') }}">
<button class="btn btn-primary btn-lg">Lakukan Transaksi Baru</button>
</a>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-striped" id="table-1">
<table class="table table-striped" id="table-3">
<thead>
<tr>
<th>User ID</th>
<th>No</th>
<th>Order ID</th>
<th>Customer</th>
<th>Seller</th>
<th>Penjual</th>
<th>Total</th>
<th>Due Date</th>
<th>Tanggal Pembuatan</th>
<th>Tanggal Update</th>
<th>Status</th>
<th>Action</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@foreach ($TransactionUser as $HistoryTransaction)
@foreach ($transactions as $transaction)
<tr>
<td>{{ $HistoryTransaction['userId'] }}</td>
<td>{{ $HistoryTransaction['orderId'] }}</td>
<td>{{ $HistoryTransaction['Customer'] }}</td>
<td>{{ $HistoryTransaction['seller'] }}</td>
<td>{{ $HistoryTransaction['total'] }}</td>
<td>{{ $HistoryTransaction['dueDate'] }}</td>
<td>{{ $HistoryTransaction['status'] }}</td>
<td>{{ $loop->iteration }}</td>
<td>{{ $transaction->id }}</td>
<td>{{ $transaction->data_penjual->nama_depan.' '.$transaction->data_penjual->nama_belakang }}</td>
<td>Rp {{number_format($transaction->total_bayar,2, ',', '.') }}</td>
<td>{{ $transaction->created_at }}</td>
<td>{{ $transaction->updated_at }}</td>
<td>{{ ($transaction->status == 'pending' ? 'Menunggu Pembayaran' : 'Selesai') }}</td>
<td>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle"
@ -64,16 +62,24 @@
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item"
href="/detail-transaction">Detail</a></li>
<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"
href="/refund-transaction">Refund</a></li>
{{-- <li><a class="dropdown-item"
href="/invoice-transaction">Bayar</a></li> --}}
<li><a class="dropdown-item" data-toggle="modal"
data-target="#bayar">Bayar</a></li>
<li><a class="dropdown-item" data-toggle="modal"
data-target="#selesai">Selesai</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>
<li><a class="dropdown-item" id="selesai"
data-id="{{ $transaction->id }}">Selesai</a>
{{-- data-id="{{ $transaction }}">Selesai</a> --}}
</li>
</ul>
</div>
</td>
@ -87,7 +93,90 @@
</div>
</div>
</section>
</div>
@extends('user.transaction.pembeli.modal-bayar-transaction')
@extends('user.transaction.pembeli.modal-end-transaction')
<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
$('#table-3').on('click', '#bayar', function() {
const id = $(this).data('id');
const token =$(this).data('token');
const csrfToken = $('meta[name="csrf-token"]').attr('content');
@extends('user.transaction.pembeli.modal-bayar-transaction')
@extends('user.transaction.pembeli.modal-end-transaction')
@endsection
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) {
/* You may add your own implementation here */
// alert("wating your payment!");
Swal.fire({
title: 'Ditunda',
text: 'Pemabayaran ditunda. Silahkan tunggu sebentar ' + result,
icon: 'info'
});
console.log(result);
},
onError: function(result) {
/* You may add your own implementation here */
Swal.fire({
title : 'Gagal',
text: 'Terjadi kesalahan ' + result,
icon: 'error'
});
console.log(result);
},
onClose: function(error) {
/* You may add your own implementation here */
Swal.fire({
title: 'Ditunda',
text: 'Kamu menutup halaman pembayaran. Silahkan masuk lagi untuk melakukan pembayaran',
icon: 'warning'
});
console.log(error);
}
});
});
$('#table-3').on('click', '#selesai', function() {
const id = $(this).data('id');
console.log(id);
});
});
</script>
@endsection

View File

@ -1,5 +1,7 @@
@extends('user.layout.main')
@section('content')
{{-- <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /> --}}
<link rel="stylesheet" href="{{ asset('assets/modules/select2/dist/css/select2.min.css') }}">
<div class="main-content">
<section class="section">
<div class="container">
@ -14,123 +16,383 @@
<div class="card-body">
<div class="form-row">
<div class="form-group col-md-12">
<label for="inputpembeli">Nama Pembeli</label>
<input type="email" class="form-control" id="inputpembeli"
placeholder="Masukkan nama pembeli">
</div>
</div>
<div class="form-group">
<label for="inputpenjual">Nama Penjual</label>
<input type="text" class="form-control" id="inputpenjual"
placeholder="Masukkan nama penjual">
</div>
<div class="form-group">
<label for="harga">Harga</label>
<input type="text" class="form-control" id="harga" placeholder="Rp.1000.000">
</div>
<div class="form-group">
<label for="inputjenis">Jenis Barang</label>
<input type="text" class="form-control" id="inputjenis" placeholder="">
</div>
<div class="form-group">
<label>Due Date</label>
<input type="date" class="form-control">
</div>
<div class="form-group">
<label for="inputdeskripsi">Deskripsi</label>
<textarea class="form-control resizable" id="deskripsi"
placeholder="Deskripsikan jenis apa transaksi yang anda lakukan"></textarea>
</div>
<div class="form-group mb-0">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="gridCheck">
<label class="form-check-label" for="gridCheck">
Check me out
<label for="inputpembeli">
<h5>Nama Pembeli</h5>
</label>
<input type="email" class="form-control" id="inputpembeli"
placeholder="Masukkan nama pembeli"
value="{{ Auth::user()->nama_depan . ' ' . Auth::user()->nama_belakang }}"
disabled>
</div>
</div>
</div>
<div class="card-footer d-flex justify-content-center">
<a href="/pembeli" class="btn btn-primary">Submit</a>
<div class="form-group">
<label for="inputpenjual">
<h5>Penjual</h5>
</label>
<h6>Pilih dari kontak</h6>
<div class="input-group">
<select class="form-control" id="selectContact" name="select_penjual">
</select>
<button class="btn btn-danger" type="button" id="deleteOption">Hapus</button>
</div>
</div>
<div class="form-group">
<h6>atau dari email</h6>
<div class="input-group">
<input type="email" class="form-control" id="inputPenjual"
name="input_penjual" placeholder="Masukkan email penjual">
<button class="btn btn-danger" type="button" id="checkButton">Check</button>
</div>
</div>
<div class="form-group">
<label for="inputBarang">
<h5>Nama Barang/Jasa</h5>
</label>
<input type="text" class="form-control" id="inputBarang"
placeholder="Sepeda Motor" name="nama_barang">
</div>
<div class="form-group">
<label for="hargaBarang">
<h5>Harga Satuan</h5>
</label>
<input type="number" class="form-control" name="harga_barang" id="hargaBarang"
placeholder="Rp. 1000.000">
</div>
<div class="form-group">
<label for="hargaBarang">
<h5>Satuan</h5>
</label>
<input type="text" class="form-control" name="satuan_barang" id="satuanBarang"
placeholder="Buah/Kg/Karung dll.">
</div>
<div class="form-group">
<label for="jumlahBarang">
<h5>Jumlah Satuan</h5>
</label>
<input type="number" class="form-control" name="jumlah_barang" id="jumlahBarang"
placeholder="Jumlah satuan">
</div>
{{-- <div class="form-group">
<label for="batasPengiriman">
<h5>Batas Pengiriman Barang</h5>
</label>
<input type="date" class="form-control" name="batas_pengiriman"
id="batasPengiriman" nama="batas_pengiriman">
</div> --}}
<div class="form-group">
<label for="inputDeskripsi">
<h5>Deskripsi</h5>
</label>
<textarea class="form-control resizable" name="deskripsi" id="inputDeskripsi" placeholder="Deskripsikan transaksi anda"></textarea>
</div>
<div class="dashed-line"></div>
<div class="form-row">
<label style="margin-right: 200px;" id="jumlah">Nominal</label>
<div style="display: inline-block;" id="totalBiaya">Rp 0,00</div>
</div>
<div class="form-row">
<label style="margin-right: 200px;" id="biayaAdmin" data-admin="">Biaya Admin
(0.1%)</label>
<div style="display: inline-block;" id="totalBiayaAdmin">Rp 0,00</div>
</div>
<div class="form-row">
<h6 style="margin-right: 200px;">Total Biaya</h6>
<div style="display: inline-block;">
<h6 id="totalBayar">Rp 0,00</h6>
</div>
</div>
<div class="dashed-line"></div>
<div class="card-footer d-flex justify-content-center">
<button type="button" class="btn btn-primary" id="save">Buat</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
let totalHarga = 0;
let biayaAdmin = 0.1;
let totalBiayaAdmin = 0;
let totalBayar = 0;
function tampilTotalHarga(harga) {
let tampilTotalNominal = document.getElementById('totalBiaya');
let tampilTotalBiaya = document.getElementById('totalBayar');
let tampilTotalBiayaAdmin = document.getElementById('totalBiayaAdmin');
totalBiayaAdmin = harga * biayaAdmin / 100
totalBayar = totalBiayaAdmin + harga
tampilTotalNominal.innerHTML = harga.toLocaleString('id-ID', {
style: 'currency',
currency: 'IDR'
});
tampilTotalBiaya.innerHTML = totalBayar.toLocaleString('id-ID', {
style: 'currency',
currency: 'IDR'
});;
tampilTotalBiayaAdmin.innerHTML = totalBiayaAdmin.toLocaleString('id-ID', {
style: 'currency',
currency: 'IDR'
});
}
$("#selectContact").select2({
placeholder: "Pilih Kontak",
ajax: {
url: "{{ route('user-contact.get') }}",
processResults: function({
data
}) {
return {
results: $.map(data, function(item) {
return {
id: item.relasi_kontak,
text: item.nama_depan + " " + item.nama_belakang,
};
}),
};
},
},
});
$('#hargaBarang').change(function() {
let harga = $(this).val();
let jumlah = $('#jumlahBarang').val();
let biaya = document.getElementById('totalBiaya');
if (harga.trim() != '') {
if (jumlah.trim() != '') {
totalHarga = harga * jumlah;
} else {
totalHarga = harga * 0;
}
tampilTotalHarga(totalHarga);
}
});
$('#jumlahBarang').change(function() {
let jumlah = $(this).val();
let harga = $('#hargaBarang').val();
let nominal = document.getElementById('jumlah');
if (jumlah.trim() != '') {
if (jumlah == 0) {
nominal.innerHTML = 'Nominal';
} else {
nominal.innerHTML = 'Nominal (x' + jumlah + ')';
}
if (harga.trim() != '') {
totalHarga = harga * jumlah;
} else {
totalHarga = 0 * jumlah;
}
tampilTotalHarga(totalHarga);
}
})
$('#selectContact').change(function() {
let email = $('#selectContact').val();
if (email === null) {
$('#inputPenjual').prop('disabled', false);
$('#checkButton').prop('disabled', false);
$('#deleteOption').prop('disabled', false);
} else {
$('#inputPenjual').prop('disabled', true);
$('#deleteOption').prop('disabled', false);
$('#checkButton').prop('disabled', true);
}
});
{{-- form transaksi --}}
{{-- <div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<form>
<div class="mb-3">
<label for="orderid" class="form-label">Order Id</label>
<input type="text" class="form-control" id="orderId" name="order" required>
</div>
$('#deleteOption').click(function() {
$('#selectContact').val(null).trigger("change");
});
<div class="mb-3">
<label for="customer" class="form-label">Customer</label>
<input type="text" class="form-control" id="customer" name="customer" required>
</div>
$('#inputPenjual').on('input', function() {
let emailInput = $('#inputPenjual').val();
if (emailInput.trim() == '') {
$('#selectContact').prop('disabled', false);
$('#deleteOption').prop('disabled', false);
} else {
$('#selectContact').prop('disabled', true);
$('#deleteOption').prop('disabled', true);
}
});
<div class="mb-3">
<label for="seller" class="form-label">Norek Asal</label>
<input type="text" class="form-control" id="norekasal" name="norekasal" pattern="[0-9]+" required>
<div class="invalid-feedback">
Harap masukkan hanya angka</div>
</div>
$('#checkButton').click(function() {
let email = document.querySelector('[name="input_penjual"]').value;
const csrfToken = $('meta[name="csrf-token"]').attr('content');
<div class="mb-3">
<label for="seller" class="form-label">Seller</label>
<input type="text" class="form-control" id="seller" name="seller" required>
</div>
if (email.trim() == '') {
Swal.fire({
title: 'Gagal',
text: 'Email tidak boleh kosong',
icon: 'error'
});
} else {
if (email != "{{ Auth::user()->email }}") {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': csrfToken
}
});
<div class="mb-3">
<label for="seller" class="form-label">Norek Tujuan</label>
<input type="text" class="form-control" id="norektujuan" name="norektujuan" pattern="[0-9]+" required>
<div class="invalid-feedback">
Harap masukkan hanya angka.
</div>
</div>
$.ajax({
url: "{{ route('user-contact.email', ':email') }}".replace(':email',
email),
type: 'GET',
success: function(response) {
if (response.status) {
Swal.fire({
title: 'Berhasil',
text: 'Akun tersedia',
icon: 'success'
});
} else {
Swal.fire({
title: 'Gagal',
text: response.message,
icon: 'error'
});
}
},
error: function(error) {
Swal.fire({
title: 'Gagal',
text: 'Terjadi error karena, ' + error,
icon: 'error'
});
}
});
} else {
Swal.fire({
title: 'Gagal',
text: 'Email penjual tidak boleh sama denggan email pembeli',
icon: 'error',
});
}
}
});
$('#save').on('click', function() {
let opsiKontak = document.querySelector('[name="select_penjual"]').value;
let inputKontak = document.querySelector('[name="input_penjual"]').value;
let namaBarang = document.querySelector('[name="nama_barang"]').value;
let hargaBarang = document.querySelector('[name="harga_barang"]').value;
let satuanBarang = document.querySelector('[name="satuan_barang"]').value;
let jumlahBarang = document.querySelector('[name="jumlah_barang"]').value;
let deskripsi = document.querySelector('[name="deskripsi"]').value;
<div class="mb-3">
<label for="total" class="form-label">Total</label>
<input type="text" class="form-control" id="total" name="total">
</div>
let emptyInput = [];
<div class="mb-3">
<label for="seller" class="form-label">Due Date</label>
<input type="calendar" class="form-control" id="duedate" name="duedate" required>
</div>
let penjual = '';
if (opsiKontak != "" && inputKontak != "") {
penjual = opsiKontak;
} else if (opsiKontak == "" && inputKontak != "") {
penjual = inputKontak;
} else if (inputKontak == "" && opsiKontak != "") {
penjual = opsiKontak;
} else {
console.log('Kosong');
emptyInput.push("Kolom penjual tidak boleh kosong");
}
<div class="mb-3">
<label for="textareadesc" class="form-label">Deskripsi</label>
<textarea class="form-control" id="textareadesc" rows="3"></textarea>
</div>
if (penjual == "{{ Auth::user()->email }}") {
emptyInput.push("Email penjual tidak boleh sama dengan email pembeli");
}
if (namaBarang == "") {
emptyInput.push("Nama barang tidak boleh kosong");
}
{{-- <div class="d-flex justify-content-center">
<button class="btn btn-info open-detail-modal" data-toggle="modal fade"
data-target="#confirmtransaction">Transaksi Sudah Benar</button>
</div> --}}
if (hargaBarang == "") {
emptyInput.push("Harga barang tidak boleh kosong");
}
<div class="d-flex justiffy-content-center">
<a href="/pembeli" type="button" class="btn btn-primary" data-bs-dismiss="modal">Transaksi Sudah
Benar</a>
</div>
</form>
</div>
</div>
</div>
</div>
{{-- </div> --}}
</div>
if (satuanBarang == "") {
emptyInput.push("Satuan barang tidak boleh kosong");
}
if (jumlahBarang == "") {
emptyInput.push("Jumlah barang tidak boleh kosong");
}
// if (batasPengiriman == "") {
// emptyInput.push("Batas pengiriman tidak boleh kosong");
// }
if (emptyInput.length > 0) {
const emptyInputError = emptyInput.join(', ');
Swal.fire({
title: 'Gagal',
text: emptyInputError,
icon: 'error',
confirmButtonText: 'OK',
});
} else {
const csrfToken = $('meta[name="csrf-token"]').attr('content');
const formData = new FormData();
formData.append('email_penjual', penjual);
formData.append('nama_barang', namaBarang);
formData.append('satuan_barang', satuanBarang);
formData.append('harga_barang', hargaBarang);
formData.append('jumlah_barang', jumlahBarang);
// formData.append('batas_pengiriman', batasPengiriman);
formData.append('deskripsi', deskripsi);
formData.append('persentase_keuntungan', 0.1);
formData.append('total_keuntungan', totalBiayaAdmin);
formData.append('total_harga', totalHarga);
formData.append('total_bayar', totalBayar);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': csrfToken
}
});
$.ajax({
url: "{{ route('store-transaction.pembeli') }}",
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function(response) {
Swal.fire({
title: response.status ? 'Berhasil' : 'Gagal',
text: response.message,
icon: response.status ? 'success' : 'error',
confirmButtonText: 'OK'
}).then(function() {
location.href =
"{{ route('user-transaction.index.pembeli') }}"
});
console.log(response);
},
error: function(error) {
Swal.fire({
title: 'Gagal',
text: 'Gagal mengirimkan data karena ' + error,
icon: 'error'
});
console.log(error);
}
});
}
});
});
</script>
@endsection

View File

@ -18,7 +18,7 @@
<div class="hero bg-primary text-white">
<div class="hero-inner">
<h1>Welcome to the Rekber Aplication</h1>
<p class="lead">Selamat Datang npannisa!</p>
<p class="lead">Selamat Datang {{ Auth::user()->nama_depan }}!</p>
</div>
</div>
</div>
@ -30,27 +30,26 @@
<thead>
<tr>
<th>#</th>
<th>User ID</th>
<th>Order ID</th>
<th>Customer</th>
<th>Seller</th>
<th>Pembeli</th>
<th>Total</th>
<th>Due Date</th>
<th>Batas Pengiriman Barang</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($TransactionUser as $key => $HistoryTransaction)
@foreach ($transactions as $transaction)
<tr>
<td>{{ ++$key }}</td>
<td class="font-weight-600">{{ $HistoryTransaction['userId'] }}</td>
<td class="font-weight-600">{{ $HistoryTransaction['orderId'] }}</td>
<td class="font-weight-600">{{ $HistoryTransaction['Customer'] }}</td>
<td class="font-weight-600">{{ $HistoryTransaction['seller'] }}</td>
<td class="font-weight-600">{{ $HistoryTransaction['total'] }}</td>
<td>{{ $HistoryTransaction['dueDate'] }}</td>
<td class="font-weight-600">{{ $HistoryTransaction['status'] }}</td>
<td>{{ $loop->iteration }}</td>
<td class="font-weight-600">{{ $transaction->id }}</td>
<td class="font-weight-600">
{{ ucwords(strtolower($transaction->data_pembeli->nama_depan . ' ' . $transaction->data_pembeli->nama_belakang)) }}
</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>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle"
@ -60,7 +59,8 @@
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item"
href="/detail-transaction">Detail</a></li>
href="{{ route('user-transaction.detail.pembeli', $transaction->id) }}">Detail</a>
</li>
<li><a class="dropdown-item" data-toggle="modal"
data-target="#tracking">Tracking</a></li>
{{-- <li><a class="dropdown-item" href="/tracking">Tracking</a></li> --}}
@ -76,5 +76,8 @@
</div>
</div>
</div>
@extends('user.transaction.Penjual.tracking')
@endsection
</div>
</section>
</div>
@extends('user.transaction.penjual.modal-tracking')
@endsection

View File

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport">
<title>Verifikasi Email Pemulihan</title>
<link rel="stylesheet" href="{{ asset('assets/modules/bootstrap/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
</head>
<body>
<div id="app">
<section class="section">
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-10">
<div class="card">
<div class="card-header d-flex justify-content-center bg-primary text-white">
<img class="mr-3 rounded" width="150"
src="{{ asset('assets/images/google-removebg-preview.png') }}">
</div>
<div class="d-flex justify-content-center bg-primary text-white">
<h2 class="mb-0">Verifikasi Email</h2>
</div>
<div class="card-body">
<p>Rekber mengirimkan kode verifikasi ke</p>
<p><b>{{ $verificationEmail['email'] }}</b></p>
<p class="mt-4">Gunakan kode ini untuk menyelesaikan syarat pendaftaran akun:</p>
<div class="d-flex justify-content-center">
<h1 class="verification-code">{{ $verificationEmail['code'] }}</h1>
</div>
<div class="text-center">
<p><b>Masa berlaku kode ini akan berakhir dalam 2 menit.</b> </p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</body>
</html>

View File

@ -1,3 +1,60 @@
<<<<<<< HEAD
@extends('Admin.layout.main')
@section('content')
<!-- Main Content -->
<div class="main-content">
<section class="section">
<div class="row">
<div class="col-lg-4 col-md-4 col-sm-12">
<div class="card card-statistic-2">
<div class="card-stats">
<div class="card-stats-title">List Transaction -
<div class="dropdown d-inline">
<a class="font-weight-600 dropdown-toggle" data-toggle="dropdown" href="#"
id="orders-month">August</a>
<ul class="dropdown-menu dropdown-menu-sm">
<li class="dropdown-title">Select Month</li>
<li><a href="#" class="dropdown-item">January</a></li>
<li><a href="#" class="dropdown-item">February</a></li>
<li><a href="#" class="dropdown-item">March</a></li>
<li><a href="#" class="dropdown-item">April</a></li>
<li><a href="#" class="dropdown-item">May</a></li>
<li><a href="#" class="dropdown-item">June</a></li>
<li><a href="#" class="dropdown-item">July</a></li>
<li><a href="#" class="dropdown-item active">August</a></li>
<li><a href="#" class="dropdown-item">September</a></li>
<li><a href="#" class="dropdown-item">October</a></li>
<li><a href="#" class="dropdown-item">November</a></li>
<li><a href="#" class="dropdown-item">December</a></li>
</ul>
</div>
</div>
<div class="card-stats-items">
<div class="card-stats-item">
<div class="card-stats-item-count">114</div>
<div class="card-stats-item-label">Success</div>
</div>
<div class="card-stats-item">
<div class="card-stats-item-count">12</div>
<div class="card-stats-item-label">Pending</div>
</div>
<div class="card-stats-item">
<div class="card-stats-item-count">23</div>
<div class="card-stats-item-label">Canceled</div>
</div>
</div>
</div>
<div class="card-icon shadow-primary bg-primary">
<i class="fas fa-archive"></i>
</div>
<div class="card-wrap">
<div class="card-header">
<h4>Total Transaction</h4>
</div>
<div class="card-body">
159
</div>
=======
<!DOCTYPE html>
<html lang="en">
@ -87,7 +144,7 @@
</div> --}}
<!-- ======= MODAL ======= -->
<div class="container">
<div class="container mt-5">
<div class="forms-container">
<div class="signin-signup">
@ -102,8 +159,8 @@
<div style="width: 100%; display: flex; align-items: center;">
<div class="input-field-signin-flex">
<i class="fas fa-envelope" aria-hidden="true"></i>
{{-- <input type="text" class="telp-input-signin" maxlength="13" oninput="this.value = this.value.replace(/[^0-9]/g, '').substring(0, 13);" placeholder="Nomer Telepon"> --}}
<input type="email" class="telp-input-signin" placeholder="Email" name="email" required>
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab
</div>
<button type="button" class="btn-otp solid" id="cekAkun">Cek Akun</button>
@ -161,7 +218,7 @@
<div class="input-field-signup-flex">
<i class="fas fa-user"></i>
<input type="text" placeholder="Nama Depan" class="first-name-input"
name="nama_depan" />
name="nama_depan" required />
</div>
<div class="input-field-signup-flex" style="margin-left: 3%">
<i class="fas fa-user"></i>
@ -175,11 +232,21 @@
maxlength="16"
oninput="this.value = this.value.replace(/[^0-9]/g, '').substring(0, 16);" />
</div>
<div class="input-field up">
<i class="fa fa-envelope" aria-hidden="true"></i>
<input type="email" placeholder="Email" class="email-input" name="new_email" />
<div class="flex-input-btn">
<div class="input">
<i class="fa fa-envelope" aria-hidden="true"></i>
<input type="email" placeholder="Email" class="email-input" name="new_email"
id="newEmail" />
</div>
<button id="verifikasiEmail" class="btn-otp" type="button"
disabled=true>Verifikasi</button>
</div>
<div class="input-field up">
<i class="fa fa-ellipsis-h" aria-hidden="true"></i>
<input type="text" class="telp-input-signup"
oninput="this.value = this.value.replace(/[^0-9]/g, '').substring(0, 6);"
placeholder="Kode Verifikasi Email" name="email_verification">
</div>
<div class="input-field up">
<i class="fa fa-phone" aria-hidden="true"></i>
<input type="text" class="telp-input-signup" maxlength="13"
@ -368,7 +435,7 @@
<button class="btn transparent" id="sign-up-btn">
Sign up
</button>
<p><a href="/">kembali</a></p>
<p><a href="{{ route('login') }}">kembali</a></p>
</div>
<img src="{{ asset('assets/img/login_register/Payment Information-pana.svg') }}" class="image"
alt="" />
@ -389,7 +456,12 @@
</div>
</div>
</div>
{{-- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> --}}
<<<<<<< HEAD
@include('Admin.transaction.Tracking')
@endsection
=======
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"
integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
@ -400,9 +472,44 @@
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="{{ asset('assets/js/login_register/app.js') }}"></script>
<script src="{{ asset('assets/js/login_register/script.js') }}"></script>
@if (Session::has('message'))
<script>
Swal.fire({
icon: 'error',
title: 'Gagal',
text: "{{ Session::get('message') }}",
});
</script>
@endif
@if ($errors->any())
<script>
Swal.fire({
icon: 'error',
title: 'Kesalahan',
text: @json($errors->all()).join(' '),
});
console.log(@json($errors->all()));
</script>
@endif
<script>
$(document).ready(function() {
let verificationStatus = false;
let verificationCode = '';
let waktuSekarangDetik = 0;
// Generate Kode Verifikasi
function generateVerificationCode() {
const codeLength = 6;
let code = '';
for (let i = 0; i < codeLength; i++) {
code += Math.floor(Math.random() * 10); // Menghasilkan digit acak dari 0 hingga 9
}
return code;
}
// Login Awal
$('#cekAkun').on('click', function() {
let email = document.querySelector('[name="email"]').value;
const csrfToken = $('meta[name="csrf-token"]').attr('content');
@ -469,6 +576,114 @@
}
}
});
// Login Akhir
// Register Awal
$('#newEmail').on('input', function() {
const newEmail = $(this);
clearTimeout(newEmail.timer); // Menghapus timeout yang ada
const verificationButton = document.getElementById('verifikasiEmail');
verificationButton.disabled = true;
const email = newEmail.val().trim(); // Menghapus spasi di awal dan akhir
if (email != '') {
// Menunggu 5 detik sebelum menghasilkan kode verifikasi
newEmail.timer = setTimeout(function() {
if (waktuSekarangDetik == 0) {
verificationStatus = false;
verificationButton.disabled = false;
verificationButton.innerHTML = 'Verifikasi';
}
}, 1000);
}
});
function isValidEmail(email) {
// Ekspresi reguler untuk memeriksa validitas alamat email
var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
// Menggunakan test() untuk memeriksa apakah email sesuai dengan ekspresi reguler
return emailRegex.test(email);
}
$('#verifikasiEmail').on('click', function() {
const newEmail = $(this);
const email = document.querySelector('[name="new_email"]').value;
const csrfToken = $('meta[name="csrf-token"]').attr('content');
verificationCode = generateVerificationCode();
verificationStatus = false
if (isValidEmail(email)) {
const formData = new FormData();
formData.append('email', email);
formData.append('code', verificationCode);
// Menonaktifkan tombol verifikasi
newEmail.prop('disabled', true);
// Mengatur waktu dalam detik (misalnya, 2 menit = 120 detik)
const waktuTotalDetik = 120;
waktuSekarangDetik = waktuTotalDetik;
// Mengupdate teks tombol dengan format menit:detik
function updateButtonText() {
const menit = Math.floor(waktuSekarangDetik / 60);
const detik = waktuSekarangDetik % 60 < 10 ? '0' + (waktuSekarangDetik % 60) :
waktuSekarangDetik % 60;
newEmail.text(`${menit}:${detik}`);
}
// Memulai timer dan mengupdate teks tombol setiap detik
const timerInterval = setInterval(function() {
if (waktuSekarangDetik > 0) {
waktuSekarangDetik--;
updateButtonText();
} else {
clearInterval(timerInterval);
newEmail.text("Verifikasi"); // Mengembalikan teks awal tombol
newEmail.prop('disabled', false); // Mengaktifkan kembali tombol
}
}, 1000); // Setiap 1 detik
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': csrfToken
}
});
$.ajax({
url: "{{ route('kirim.kode') }}",
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',
});
verificationStatus = true;
},
error: function(error) {
Swal.fire({
title: 'Gagal',
text: 'Gagal karena kesalahan inputan atau jaringan',
icon: 'error',
});
console.log(error);
},
});
} else {
Swal.fire({
title: 'Kesalahan',
text: 'Inputan yang anda masukan bukan alamat email. Silahkan masukan alamat email yang benar.',
icon: 'error'
});
}
});
$('#signUp').on('click', function() {
let emptyInput = [];
@ -479,6 +694,7 @@
let email = document.querySelector('[name="new_email"]').value;
let nohp = document.querySelector('[name="nohp"]').value;
let gender = document.querySelector('[name="gender"]').value;
let emailVerification = document.querySelector('[name="email_verification"]').value;
// Tanggal lahir
let tanggalLahir = document.querySelector('[name="tanggal_lahir"]').value;
@ -504,7 +720,7 @@
let confirmPassword = document.querySelector('[name="confirm_password"]').value;
// Pengecekan inputan yang kosong
if (namaDepan.trim() === "" || namaBelakang.trim() === "") {
if (namaDepan.trim() === "" && namaBelakang.trim() === "") {
emptyInput.push("Nama depan dan nama belakang tidak boleh kosong");
}
@ -515,6 +731,15 @@
if (email.trim() === "") {
emptyInput.push("Email tidak boleh kosong");
}
if (!verificationStatus) {
emptyInput.push("Verifikasi email terlebih dahulu");
}
if (emailVerification.trim() === "") {
emptyInput.push("Kode verifikasi harus diisi");
}
if (emailVerification != verificationCode) {
emptyInput.push('Kode verifikasi harus sama dengan kode yang dikirim ke email');
}
if (nohp.trim() === "") {
emptyInput.push("nomor HP tidak boleh kosong");
@ -543,7 +768,7 @@
emptyInput.push("Silahkan ambil foto KTP anda");
}
if (newPassword.trim() === "" || confirmPassword === "") {
if (newPassword.trim() === "" && confirmPassword === "") {
emptyInput.push("Password tidak boleh kosong");
} else if (newPassword.trim() != confirmPassword) {
emptyInput.push("Password baru harus sama dengan password yang dikonfirmasi");
@ -609,8 +834,10 @@
});
}
});
// Register Akhir
});
</script>
</body>
</html>
>>>>>>> 5f01f0d124f30816c3c08e664df3a9b62a2847ab

View File

@ -93,29 +93,23 @@ Route::get('/next_detail_refund',function() {
// --------------------------------------------------------------------------------------------
// Route::get('/Ini', function () {
// return view('user/index',[
// 'name'=>'Jilhan Haura',
// "transaction"=>Transactions::allTransactions()
// ]);
// });
// Route::resource('/login',LoginController::class);
//Index
// Login, logout dan register
Route::controller(LoginController::class)->group(function(){
Route::get('/','login')->name('login');
Route::get('/login','login')->name('login');
Route::get('/logout','logout')->name('logout');
Route::post('/','authenticate')->name('authenticate');
Route::post('/authenticate','authenticate')->name('authenticate');
Route::post('/register','register')->name('register');
Route::get('/cek-email/{email}','statusAkun')->name('status.akun');
Route::get('/cari-provinsi','cariProvinsi')->name('cari.provinsi');
Route::get('/cari-kota/{code}','cariKota')->name('cari.kota');
Route::get('/cari-kecamatan/{code}','cariKecamatan')->name('cari.kecamatan');
Route::get('/cari-kelurahan/{code}','cariKelurahan')->name('cari.kelurahan');
Route::post('/kode-verifikasi','kirimKodeVerifikasi')->name('kirim.kode');
Route::get('ocr','getOcr');
});
// admin dan user
@ -157,12 +151,19 @@ Route::middleware(['auth'])->group(function(){
Route::get('cek-contact/{email}','cekEmail')->name('user-contact.email');
Route::post('user-contact','store')->name('user-contact.store');
Route::delete('user-contact/{id}','destroy')->name('user-contact.delete');
Route::get('get-user-contact','getContact')->name('user-contact.get');
});
// Tampilan transaksi, bayar, update status pengiriman dan refund
Route::controller(UserTransactionController::class)->group(function(){
// Pembeli
Route::get('user-transaction-pembeli','indexPembeli')->name('user-transaction.index.pembeli');
Route::get('detail-user-transaction-pembeli/{id}','detailTransaction')->name('user-transaction.detail.pembeli');
Route::get('tambah-transaction','createTransaction')->name('tambah-transaction.pembeli');
Route::post('store-transaction','storeTransaction')->name('store-transaction.pembeli');
Route::post('payment-transaction/{id}','paymentTransaction')->name('payment-transaction.pembeli');
//Penjual
Route::get('user-transaction-penjual','indexPenjual')->name('user-transaction.index.penjual');
//bayar
});
// Tampilan refund
@ -171,4 +172,4 @@ Route::middleware(['auth'])->group(function(){
});
});
});
});
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB