Penambahan Controller User dan Admin
This commit is contained in:
parent
9119c40d1d
commit
cf16994497
127
app/Http/Controllers/API/LoginApiController.php
Normal file
127
app/Http/Controllers/API/LoginApiController.php
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\API;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class LoginApiController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new AuthController instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth:api', ['except' => ['login', 'register', 'hai']]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a JWT via given credentials.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
// $request->validate([
|
||||||
|
// 'email' => 'required|string|email',
|
||||||
|
// 'password' => 'required',
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
$credentials = request(['email', 'password']);
|
||||||
|
|
||||||
|
if (!($token = auth()->attempt($credentials))) {
|
||||||
|
return response()->json(['error' => 'Unauthorized'], 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->respondWithToken($token);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the authenticated User.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function me()
|
||||||
|
{
|
||||||
|
return response()->json(Auth::user());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function hai()
|
||||||
|
{
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Hello from API',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log the user out (Invalidate the token).
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function logout()
|
||||||
|
{
|
||||||
|
auth()->logout();
|
||||||
|
|
||||||
|
return response()->json(['message' => 'Successfully logged out']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh a token.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function refresh()
|
||||||
|
{
|
||||||
|
return $this->respondWithToken(Auth::refresh());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the token array structure.
|
||||||
|
*
|
||||||
|
* @param string $token
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
protected function respondWithToken($token)
|
||||||
|
{
|
||||||
|
return response()->json([
|
||||||
|
'user' => auth()->user(),
|
||||||
|
'access_token' => $token,
|
||||||
|
'token_type' => 'bearer',
|
||||||
|
'expires_in' => Auth::factory()->getTTL() * 60,
|
||||||
|
// 'status' => auth()->check(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function register(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required|string|max:255',
|
||||||
|
'email' => 'required|string|email|unique:users',
|
||||||
|
'password' => 'required|string|min:8',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'User created successfully',
|
||||||
|
'user' => $user,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// public function check()
|
||||||
|
// {
|
||||||
|
// return response()->json([
|
||||||
|
// 'status' => auth()->check(),
|
||||||
|
// ]);
|
||||||
|
// }
|
||||||
|
}
|
209
app/Http/Controllers/Login/LoginController.php
Normal file
209
app/Http/Controllers/Login/LoginController.php
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Login;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use thiagoalessio\TesseractOCR\TesseractOCR;
|
||||||
|
use Intervention\Image\ImageManagerStatic as Image;
|
||||||
|
use Illuminate\Support\Facades\Session;
|
||||||
|
|
||||||
|
class LoginController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new AuthController instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth:api', ['except' => ['login', 'authenticate', 'register', 'hai']]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('index');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a JWT via given credentials.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function authenticate(Request $request)
|
||||||
|
{
|
||||||
|
$credentials = $request->validate([
|
||||||
|
'email' => ['required', 'email'],
|
||||||
|
'password' => ['required', 'min:8'],
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (Auth::attempt($credentials)) {
|
||||||
|
if (Auth::user()->status == 'Finished') {
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (ucwords(Auth::user()->role) == 'Admin') {
|
||||||
|
return redirect()->intended('/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect()->intended('/');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Session::flash('message', 'Akun Tidak Ditemukan');
|
||||||
|
return redirect()->back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->back()
|
||||||
|
->withErrors([
|
||||||
|
'email' => 'Email dengan'.$credentials['email'].' tidak tersedia.',
|
||||||
|
])
|
||||||
|
->onlyInput('email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function hai()
|
||||||
|
{
|
||||||
|
echo 'sukses';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log the user out (Invalidate the token).
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect()->route('login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function registerStore(Request $request)
|
||||||
|
{
|
||||||
|
$validatedData = $request->validate([
|
||||||
|
'nama' => 'required|max:255',
|
||||||
|
'email' => 'required|string|email|unique:users',
|
||||||
|
'password' => 'required|string|min:8',
|
||||||
|
'nohp' => 'required',
|
||||||
|
'nik' => 'required',
|
||||||
|
'alamat' => 'required',
|
||||||
|
'foto_ktp' => 'required|image|mimes:jpeg,svg,png,jpg',
|
||||||
|
'foto_wajah' => 'required|image|mimes:jpeg,svg,png,jpg',
|
||||||
|
'foto_profil' => 'image|mimes:jpeg,svg,png,jpg',
|
||||||
|
'gender' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// $validatedData['email_verified_at'] = now();
|
||||||
|
|
||||||
|
$fotoKTP = '';
|
||||||
|
$fotoWajah = '';
|
||||||
|
$fotoProfil ='';
|
||||||
|
if ($request->hasFile('foto_ktp') && $request->hasFile('foto_wajah')) {
|
||||||
|
// $namaGambarOri = $request->file('foto-gambar')->getClientOriginalName();
|
||||||
|
// $namaGambar = round(microtime(true) * 1000) . '-' . str_replace(' ', '-', $namaGambarOri);
|
||||||
|
$tipeFotoKtp = $request->file('foto_ktp')->getClientMimeType();
|
||||||
|
$tipeFotoWajah = $request->file('foto_wajah')->getClientMimeType();
|
||||||
|
$fotoKTP = 'Foto-KTP-' . $request->nama . '.' . $tipeFotoKtp;
|
||||||
|
$fotoWajah = 'Foto-Wajah' . $request->nama . '.' . $tipeFotoWajah;
|
||||||
|
// Simpan foto
|
||||||
|
$request->file('foto-ktp')->storeAs('public/foto-ktp', $fotoKTP);
|
||||||
|
$request->file('foto-wajah')->storeAs('public/foto-wajah', $fotoWajah);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($request->hasFile('foto_profil')){
|
||||||
|
$tipeFotoProfil = $request->file('foto_profil')->getClientMimeType();
|
||||||
|
$fotoProfil = 'Foto-Profil-' . $request->nama . '.' . $tipeFotoProfil;
|
||||||
|
// Simpan foto
|
||||||
|
$request->file('foto-profil')->storeAs('public/foto-profil', $fotoProfil);
|
||||||
|
}
|
||||||
|
|
||||||
|
//OCR
|
||||||
|
try {
|
||||||
|
$imagePath = storage_path('foto-ktp/' . $validatedData['foto-ktp']);
|
||||||
|
|
||||||
|
$image = Image::make($imagePath);
|
||||||
|
|
||||||
|
$image->greyscale(); // Convert to grayscale
|
||||||
|
$image->contrast(10); // Increase contrast, adjust the value as needed
|
||||||
|
|
||||||
|
$preprocessedImagePath = storage_path('preprocessed_image.jpg');
|
||||||
|
$image->save($preprocessedImagePath);
|
||||||
|
|
||||||
|
$result = (new TesseractOCR($preprocessedImagePath))->run();
|
||||||
|
|
||||||
|
// (5) Normalize
|
||||||
|
|
||||||
|
$lines = explode("\n", $result);
|
||||||
|
$nikOCR = '';
|
||||||
|
$nikInputan = $request->nik;
|
||||||
|
$namaInputan = $request->nama;
|
||||||
|
|
||||||
|
foreach ($lines as $line) {
|
||||||
|
// normalize NIK
|
||||||
|
if (strpos($line, 'NIK') !== false) {
|
||||||
|
$nikOCR = preg_replace('/[^0-9]/', '', $line);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mencari nama
|
||||||
|
if (strpos($line, $namaInputan) !== false) {
|
||||||
|
$namaOCR = trim(substr($line, strpos($line, ':') + 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Selesai
|
||||||
|
|
||||||
|
$percent = 0.0;
|
||||||
|
|
||||||
|
if (similar_text($nikInputan, $nikOCR, $percent) >= 70 && similar_text($namaOCR, $namaOCR, $percent) >= 70) {
|
||||||
|
$validatedData['status'] = 'Progress';
|
||||||
|
} else {
|
||||||
|
$validatedData['status'] = 'Pending';
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$validatedData['status'] = 'Pending';
|
||||||
|
}
|
||||||
|
//OCR
|
||||||
|
|
||||||
|
//Deteksi wajah belum
|
||||||
|
|
||||||
|
$validatedData['remember_token'] = Str::random(10);
|
||||||
|
$validatedData['password'] = Hash::make($request->password);
|
||||||
|
User::create([
|
||||||
|
'id' => Str::uuid(),
|
||||||
|
'nama' => $validatedData['nama'],
|
||||||
|
'email' => $validatedData['email'],
|
||||||
|
'email_verified_at' => null,
|
||||||
|
'password' => $validatedData['password'],
|
||||||
|
'role' => 'User',
|
||||||
|
'nohp' => $validatedData['nohp'],
|
||||||
|
'nik' => $validatedData['nik'],
|
||||||
|
'alamat' => $validatedData['alamat'],
|
||||||
|
'foto_ktp' => $fotoKTP,
|
||||||
|
'foto_wajah' => $fotoWajah,
|
||||||
|
'status' => $validatedData['status'],
|
||||||
|
'gender' => $validatedData['gender'],
|
||||||
|
'remember_token' => Str::random(10),
|
||||||
|
]);
|
||||||
|
return redirect('/login')->with('daftar', 'Daftar berhasil, silahkan login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function approveUser(Request $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deniedUser(Request $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
65
app/Http/Controllers/RefundDescriptionController.php
Normal file
65
app/Http/Controllers/RefundDescriptionController.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\RefundDescription;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class RefundDescriptionController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*/
|
||||||
|
public function show(RefundDescription $refundDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*/
|
||||||
|
public function edit(RefundDescription $refundDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*/
|
||||||
|
public function update(Request $request, RefundDescription $refundDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*/
|
||||||
|
public function destroy(RefundDescription $refundDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
65
app/Http/Controllers/TransactionDescriptionController.php
Normal file
65
app/Http/Controllers/TransactionDescriptionController.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\TransactionDescription;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class TransactionDescriptionController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*/
|
||||||
|
public function show(TransactionDescription $transactionDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*/
|
||||||
|
public function edit(TransactionDescription $transactionDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*/
|
||||||
|
public function update(Request $request, TransactionDescription $transactionDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*/
|
||||||
|
public function destroy(TransactionDescription $transactionDescription)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
65
app/Http/Controllers/User/UserTransaction.php
Normal file
65
app/Http/Controllers/User/UserTransaction.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\Transaction;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class UserTransaction extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*/
|
||||||
|
public function show(Transaction $transaction)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*/
|
||||||
|
public function edit(Transaction $transaction)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*/
|
||||||
|
public function update(Request $request, Transaction $transaction)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*/
|
||||||
|
public function destroy(Transaction $transaction)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
@ -8,4 +8,24 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
class Contact extends Model
|
class Contact extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array<int, string>
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'pemilik_kontak',
|
||||||
|
'relasi_kontak',
|
||||||
|
];
|
||||||
|
|
||||||
|
//Relasi
|
||||||
|
public function pemilik_kontak(){
|
||||||
|
return $this->belongsTo(User::class, 'email', 'pemilik_kontak');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function relasi_kontak(){
|
||||||
|
return $this->belongsTo(User::class, 'email', 'relasi_kontak');
|
||||||
|
}
|
||||||
|
//Relasi
|
||||||
}
|
}
|
||||||
|
@ -8,4 +8,22 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
class Refund extends Model
|
class Refund extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array<int, string>
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'order_id',
|
||||||
|
'total',
|
||||||
|
'due_date',
|
||||||
|
'status',
|
||||||
|
];
|
||||||
|
|
||||||
|
//Relasi
|
||||||
|
public function orders(){
|
||||||
|
return $this->belongsTo(Transaction::class, 'order_id', 'order_id');
|
||||||
|
}
|
||||||
|
//Relasi
|
||||||
}
|
}
|
||||||
|
28
app/Models/RefundDescription.php
Normal file
28
app/Models/RefundDescription.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class RefundDescription extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array<int, string>
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'refund_id',
|
||||||
|
'filename',
|
||||||
|
'type',
|
||||||
|
];
|
||||||
|
|
||||||
|
//Relasi
|
||||||
|
public function refunds(){
|
||||||
|
return $this->belongsTo(Refund::class, 'refund_id', 'id');
|
||||||
|
}
|
||||||
|
//Relasi
|
||||||
|
}
|
@ -8,4 +8,16 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
class Setting extends Model
|
class Setting extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array<int, string>
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'bulan',
|
||||||
|
'tahun',
|
||||||
|
'diskon',
|
||||||
|
'status',
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
33
app/Models/TransactionDescription.php
Normal file
33
app/Models/TransactionDescription.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class TransactionDescription extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array<int, string>
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'order_id',
|
||||||
|
'user',
|
||||||
|
'judul',
|
||||||
|
'deskripsi'
|
||||||
|
];
|
||||||
|
|
||||||
|
//Relasi
|
||||||
|
public function order(){
|
||||||
|
return $this->belongsTo(Transaction::class, 'order_id', 'order_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function user(){
|
||||||
|
return $this->belongsTo(User::class, 'email', 'user');
|
||||||
|
}
|
||||||
|
//Relasi
|
||||||
|
}
|
@ -26,6 +26,7 @@ class User extends Authenticatable
|
|||||||
'role_id',
|
'role_id',
|
||||||
'alamat',
|
'alamat',
|
||||||
'foto_ktp',
|
'foto_ktp',
|
||||||
|
'foto_wajah',
|
||||||
'nohp',
|
'nohp',
|
||||||
'nik',
|
'nik',
|
||||||
'gender',
|
'gender',
|
||||||
@ -77,6 +78,7 @@ class User extends Authenticatable
|
|||||||
|
|
||||||
//JWT
|
//JWT
|
||||||
|
|
||||||
|
|
||||||
//Relasi
|
//Relasi
|
||||||
public function pemilik_kontak(){
|
public function pemilik_kontak(){
|
||||||
return $this->hasMany(Contact::class, 'email', 'pemilik_kontak');
|
return $this->hasMany(Contact::class, 'email', 'pemilik_kontak');
|
||||||
@ -85,5 +87,14 @@ class User extends Authenticatable
|
|||||||
public function relasi_kontak(){
|
public function relasi_kontak(){
|
||||||
return $this->hasMany(Contact::class, 'email', 'relasi_kontak');
|
return $this->hasMany(Contact::class, 'email', 'relasi_kontak');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function pembeli(){
|
||||||
|
return $this->hasMany(Transaction::class, 'email', 'pembeli');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function penjual(){
|
||||||
|
return $this->hasMany(Transaction::class, 'email', 'penjual');
|
||||||
|
}
|
||||||
//Relasi
|
//Relasi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,4 +8,51 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
class Transaction extends Model
|
class Transaction extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array<int, string>
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'pembeli',
|
||||||
|
'penjual',
|
||||||
|
'judul_transaksi',
|
||||||
|
'deskripsi transaksi',
|
||||||
|
'persentase_keuntungan',
|
||||||
|
'total_keuntungan',
|
||||||
|
'harga',
|
||||||
|
'biaya_admin',
|
||||||
|
'total_harga',
|
||||||
|
'signature_key',
|
||||||
|
'metode_pembayaran',
|
||||||
|
'status',
|
||||||
|
'batas_pembayaran',
|
||||||
|
'batas_pengiriman_barang',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that should be cast.
|
||||||
|
*
|
||||||
|
* @var array<string, string>
|
||||||
|
*/
|
||||||
|
protected $casts = [
|
||||||
|
'batas_pembayaran' => 'datetime',
|
||||||
|
'batas_pengiriman_barang' => 'datetime',
|
||||||
|
'order_id' => 'string',
|
||||||
|
];
|
||||||
|
|
||||||
|
//Relasi
|
||||||
|
public function pembeli(){
|
||||||
|
return $this->belongsTo(User::class, 'email', 'pembeli');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function penjual(){
|
||||||
|
return $this->belongsTo(User::class, 'email', 'penjual');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function refunds(){
|
||||||
|
return $this->hasMany(Refund::class, 'order_id', 'order_id');
|
||||||
|
}
|
||||||
|
//Relasi
|
||||||
}
|
}
|
||||||
|
@ -24,8 +24,8 @@ class UserFactory extends Factory
|
|||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
|
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
|
||||||
'remember_token' => Str::random(10),
|
'remember_token' => Str::random(10),
|
||||||
'role' => $this->faker->randomElement(['Admin','User']),
|
'role' => 'User',
|
||||||
'nik' => $this->faker->nik,
|
'nik' => $this->faker->nik($this->faker->randomElement(['male', 'female']),$this->faker->dateTimeBetween('-65 years', '-18 years')),
|
||||||
'alamat'=> $this->faker->address,
|
'alamat'=> $this->faker->address,
|
||||||
'nohp'=> $this->faker->phoneNumber(),
|
'nohp'=> $this->faker->phoneNumber(),
|
||||||
'status'=> $this->faker->randomElement(['Progress', 'Finished']),
|
'status'=> $this->faker->randomElement(['Progress', 'Finished']),
|
||||||
|
@ -17,13 +17,15 @@ return new class extends Migration
|
|||||||
$table->string('email',50)->unique();
|
$table->string('email',50)->unique();
|
||||||
$table->timestamp('email_verified_at')->nullable();
|
$table->timestamp('email_verified_at')->nullable();
|
||||||
$table->string('password');
|
$table->string('password');
|
||||||
$table->string('role');
|
$table->string('role',10);
|
||||||
$table->string('nohp',20);
|
$table->string('nohp',20);
|
||||||
$table->string('nik',20);
|
$table->string('nik',20);
|
||||||
$table->string('alamat',255);
|
$table->string('alamat',255);
|
||||||
$table->string('foto_ktp')->nullable();
|
$table->string('foto_ktp')->nullable();
|
||||||
|
$table->string('foto_wajah')->nullable();
|
||||||
|
$table->string('foto_profil')->nullable();
|
||||||
$table->string('status',10);
|
$table->string('status',10);
|
||||||
$table->string('gender');
|
$table->string('gender',15);
|
||||||
$table->rememberToken();
|
$table->rememberToken();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('transactions', function (Blueprint $table) {
|
||||||
|
$table->uuid('order_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->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->string('status'); // transaction_status
|
||||||
|
$table->timestamp('batas_pembayaran');
|
||||||
|
$table->timestamp('batas_pengiriman_barang');
|
||||||
|
$table->timestamps();
|
||||||
|
$table->foreign('pembeli')->on('users')->references('email');
|
||||||
|
$table->foreign('penjual')->on('users')->references('email');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('transactions');
|
||||||
|
}
|
||||||
|
};
|
@ -13,12 +13,12 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('refunds', function (Blueprint $table) {
|
Schema::create('refunds', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->integer('orderId');
|
$table->foreignUuid('order_id');
|
||||||
$table->string('customerName');
|
$table->double('total',10);
|
||||||
$table->string('sellerName');
|
$table->timestamp('due_date');
|
||||||
$table->string('total');
|
$table->string('status',20);
|
||||||
$table->timestamp('dueDate');
|
|
||||||
$table->string('status');
|
$table->foreign('order_id')->on('transactions')->references('order_id');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,10 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('settings', function (Blueprint $table) {
|
Schema::create('settings', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
|
$table->string('bulan',20);
|
||||||
|
$table->string('tahun',5);
|
||||||
|
$table->double('diskon',5);
|
||||||
|
$table->string('status',15);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('transaction_descriptions', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->foreignUuid('order_id');
|
||||||
|
$table->string('user');
|
||||||
|
$table->string('judul');
|
||||||
|
$table->string('deskripsi');
|
||||||
|
$table->timestamps();
|
||||||
|
|
||||||
|
$table->foreign('order_id')->on('transactions')->references('order_id');
|
||||||
|
$table->foreign('user')->on('users')->references('email');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('transaction_descriptions');
|
||||||
|
}
|
||||||
|
};
|
@ -11,9 +11,14 @@ return new class extends Migration
|
|||||||
*/
|
*/
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::create('transactions', function (Blueprint $table) {
|
Schema::create('refund_descriptions', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
|
$table->foreignId('refund_id');
|
||||||
|
$table->string('filename');
|
||||||
|
$table->string('type');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
|
$table->foreign('refund_id')->on('refunds')->references('id');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,6 +27,6 @@ return new class extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::dropIfExists('transactions');
|
Schema::dropIfExists('refund_descriptions');
|
||||||
}
|
}
|
||||||
};
|
};
|
@ -5,6 +5,9 @@ namespace Database\Seeders;
|
|||||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Faker\Factory as FakerFactory;
|
||||||
|
use Faker\Provider\id_ID\Person as Person;
|
||||||
|
|
||||||
class DatabaseSeeder extends Seeder
|
class DatabaseSeeder extends Seeder
|
||||||
{
|
{
|
||||||
@ -13,11 +16,24 @@ class DatabaseSeeder extends Seeder
|
|||||||
*/
|
*/
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
|
$faker = FakerFactory::create();
|
||||||
|
$faker->addProvider(new Person($faker));
|
||||||
|
|
||||||
|
User::factory()->create([
|
||||||
|
'id' => Str::uuid(),
|
||||||
|
'nama' => $faker->name,
|
||||||
|
'email' => fake()->unique()->safeEmail(),
|
||||||
|
'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'=> $faker->randomElement(['Progress', 'Finished']),
|
||||||
|
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
|
||||||
|
]);
|
||||||
User::factory(100)->create();
|
User::factory(100)->create();
|
||||||
|
|
||||||
// \App\Models\User::factory()->create([
|
|
||||||
// 'name' => 'Test User',
|
|
||||||
// 'email' => 'test@example.com',
|
|
||||||
// ]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
54
public/assets/css/main.css
Normal file
54
public/assets/css/main.css
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
# Profie Page
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
.profile .profile-card img {
|
||||||
|
max-width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-card h2 {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #2c384e;
|
||||||
|
margin: 10px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-card h3 {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-card .social-links a {
|
||||||
|
font-size: 20px;
|
||||||
|
display: inline-block;
|
||||||
|
color: rgba(1, 41, 112, 0.5);
|
||||||
|
line-height: 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
transition: 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-card .social-links a:hover {
|
||||||
|
color: #012970;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-overview .row {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-overview .card-title {
|
||||||
|
color: #012970;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-overview .label {
|
||||||
|
font-weight: 600;
|
||||||
|
color: rgba(1, 41, 112, 0.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-edit label {
|
||||||
|
font-weight: 600;
|
||||||
|
color: rgba(1, 41, 112, 0.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile-edit img {
|
||||||
|
max-width: 120px;
|
||||||
|
}
|
321
public/assets/js/main.js
Normal file
321
public/assets/js/main.js
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
/**
|
||||||
|
* Template Name: NiceAdmin
|
||||||
|
* Updated: Aug 30 2023 with Bootstrap v5.3.1
|
||||||
|
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||||
|
* Author: BootstrapMade.com
|
||||||
|
* License: https://bootstrapmade.com/license/
|
||||||
|
*/
|
||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy selector helper function
|
||||||
|
*/
|
||||||
|
const select = (el, all = false) => {
|
||||||
|
el = el.trim()
|
||||||
|
if (all) {
|
||||||
|
return [...document.querySelectorAll(el)]
|
||||||
|
} else {
|
||||||
|
return document.querySelector(el)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy event listener function
|
||||||
|
*/
|
||||||
|
const on = (type, el, listener, all = false) => {
|
||||||
|
if (all) {
|
||||||
|
select(el, all).forEach(e => e.addEventListener(type, listener))
|
||||||
|
} else {
|
||||||
|
select(el, all).addEventListener(type, listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy on scroll event listener
|
||||||
|
*/
|
||||||
|
const onscroll = (el, listener) => {
|
||||||
|
el.addEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sidebar toggle
|
||||||
|
*/
|
||||||
|
if (select('.toggle-sidebar-btn')) {
|
||||||
|
on('click', '.toggle-sidebar-btn', function(e) {
|
||||||
|
select('body').classList.toggle('toggle-sidebar')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search bar toggle
|
||||||
|
*/
|
||||||
|
if (select('.search-bar-toggle')) {
|
||||||
|
on('click', '.search-bar-toggle', function(e) {
|
||||||
|
select('.search-bar').classList.toggle('search-bar-show')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Navbar links active state on scroll
|
||||||
|
*/
|
||||||
|
let navbarlinks = select('#navbar .scrollto', true)
|
||||||
|
const navbarlinksActive = () => {
|
||||||
|
let position = window.scrollY + 200
|
||||||
|
navbarlinks.forEach(navbarlink => {
|
||||||
|
if (!navbarlink.hash) return
|
||||||
|
let section = select(navbarlink.hash)
|
||||||
|
if (!section) return
|
||||||
|
if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) {
|
||||||
|
navbarlink.classList.add('active')
|
||||||
|
} else {
|
||||||
|
navbarlink.classList.remove('active')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
window.addEventListener('load', navbarlinksActive)
|
||||||
|
onscroll(document, navbarlinksActive)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle .header-scrolled class to #header when page is scrolled
|
||||||
|
*/
|
||||||
|
let selectHeader = select('#header')
|
||||||
|
if (selectHeader) {
|
||||||
|
const headerScrolled = () => {
|
||||||
|
if (window.scrollY > 100) {
|
||||||
|
selectHeader.classList.add('header-scrolled')
|
||||||
|
} else {
|
||||||
|
selectHeader.classList.remove('header-scrolled')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.addEventListener('load', headerScrolled)
|
||||||
|
onscroll(document, headerScrolled)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Back to top button
|
||||||
|
*/
|
||||||
|
let backtotop = select('.back-to-top')
|
||||||
|
if (backtotop) {
|
||||||
|
const toggleBacktotop = () => {
|
||||||
|
if (window.scrollY > 100) {
|
||||||
|
backtotop.classList.add('active')
|
||||||
|
} else {
|
||||||
|
backtotop.classList.remove('active')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.addEventListener('load', toggleBacktotop)
|
||||||
|
onscroll(document, toggleBacktotop)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiate tooltips
|
||||||
|
*/
|
||||||
|
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
||||||
|
var tooltipList = tooltipTriggerList.map(function(tooltipTriggerEl) {
|
||||||
|
return new bootstrap.Tooltip(tooltipTriggerEl)
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiate quill editors
|
||||||
|
*/
|
||||||
|
if (select('.quill-editor-default')) {
|
||||||
|
new Quill('.quill-editor-default', {
|
||||||
|
theme: 'snow'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (select('.quill-editor-bubble')) {
|
||||||
|
new Quill('.quill-editor-bubble', {
|
||||||
|
theme: 'bubble'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (select('.quill-editor-full')) {
|
||||||
|
new Quill(".quill-editor-full", {
|
||||||
|
modules: {
|
||||||
|
toolbar: [
|
||||||
|
[{
|
||||||
|
font: []
|
||||||
|
}, {
|
||||||
|
size: []
|
||||||
|
}],
|
||||||
|
["bold", "italic", "underline", "strike"],
|
||||||
|
[{
|
||||||
|
color: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
background: []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[{
|
||||||
|
script: "super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
script: "sub"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[{
|
||||||
|
list: "ordered"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
list: "bullet"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
indent: "-1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
indent: "+1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
["direction", {
|
||||||
|
align: []
|
||||||
|
}],
|
||||||
|
["link", "image", "video"],
|
||||||
|
["clean"]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
theme: "snow"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiate TinyMCE Editor
|
||||||
|
*/
|
||||||
|
const useDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||||
|
const isSmallScreen = window.matchMedia('(max-width: 1023.5px)').matches;
|
||||||
|
|
||||||
|
tinymce.init({
|
||||||
|
selector: 'textarea.tinymce-editor',
|
||||||
|
plugins: 'preview importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help charmap quickbars emoticons',
|
||||||
|
editimage_cors_hosts: ['picsum.photos'],
|
||||||
|
menubar: 'file edit view insert format tools table help',
|
||||||
|
toolbar: 'undo redo | bold italic underline strikethrough | fontfamily fontsize blocks | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | ltr rtl',
|
||||||
|
toolbar_sticky: true,
|
||||||
|
toolbar_sticky_offset: isSmallScreen ? 102 : 108,
|
||||||
|
autosave_ask_before_unload: true,
|
||||||
|
autosave_interval: '30s',
|
||||||
|
autosave_prefix: '{path}{query}-{id}-',
|
||||||
|
autosave_restore_when_empty: false,
|
||||||
|
autosave_retention: '2m',
|
||||||
|
image_advtab: true,
|
||||||
|
link_list: [{
|
||||||
|
title: 'My page 1',
|
||||||
|
value: 'https://www.tiny.cloud'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'My page 2',
|
||||||
|
value: 'http://www.moxiecode.com'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
image_list: [{
|
||||||
|
title: 'My page 1',
|
||||||
|
value: 'https://www.tiny.cloud'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'My page 2',
|
||||||
|
value: 'http://www.moxiecode.com'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
image_class_list: [{
|
||||||
|
title: 'None',
|
||||||
|
value: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Some class',
|
||||||
|
value: 'class-name'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
importcss_append: true,
|
||||||
|
file_picker_callback: (callback, value, meta) => {
|
||||||
|
/* Provide file and text for the link dialog */
|
||||||
|
if (meta.filetype === 'file') {
|
||||||
|
callback('https://www.google.com/logos/google.jpg', {
|
||||||
|
text: 'My text'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Provide image and alt text for the image dialog */
|
||||||
|
if (meta.filetype === 'image') {
|
||||||
|
callback('https://www.google.com/logos/google.jpg', {
|
||||||
|
alt: 'My alt text'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Provide alternative source and posted for the media dialog */
|
||||||
|
if (meta.filetype === 'media') {
|
||||||
|
callback('movie.mp4', {
|
||||||
|
source2: 'alt.ogg',
|
||||||
|
poster: 'https://www.google.com/logos/google.jpg'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
templates: [{
|
||||||
|
title: 'New Table',
|
||||||
|
description: 'creates a new table',
|
||||||
|
content: '<div class="mceTmpl"><table width="98%%" border="0" cellspacing="0" cellpadding="0"><tr><th scope="col"> </th><th scope="col"> </th></tr><tr><td> </td><td> </td></tr></table></div>'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Starting my story',
|
||||||
|
description: 'A cure for writers block',
|
||||||
|
content: 'Once upon a time...'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'New list with dates',
|
||||||
|
description: 'New List with dates',
|
||||||
|
content: '<div class="mceTmpl"><span class="cdate">cdate</span><br><span class="mdate">mdate</span><h2>My List</h2><ul><li></li><li></li></ul></div>'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
template_cdate_format: '[Date Created (CDATE): %m/%d/%Y : %H:%M:%S]',
|
||||||
|
template_mdate_format: '[Date Modified (MDATE): %m/%d/%Y : %H:%M:%S]',
|
||||||
|
height: 600,
|
||||||
|
image_caption: true,
|
||||||
|
quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',
|
||||||
|
noneditable_class: 'mceNonEditable',
|
||||||
|
toolbar_mode: 'sliding',
|
||||||
|
contextmenu: 'link image table',
|
||||||
|
skin: useDarkMode ? 'oxide-dark' : 'oxide',
|
||||||
|
content_css: useDarkMode ? 'dark' : 'default',
|
||||||
|
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:16px }'
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiate Bootstrap validation check
|
||||||
|
*/
|
||||||
|
var needsValidation = document.querySelectorAll('.needs-validation')
|
||||||
|
|
||||||
|
Array.prototype.slice.call(needsValidation)
|
||||||
|
.forEach(function(form) {
|
||||||
|
form.addEventListener('submit', function(event) {
|
||||||
|
if (!form.checkValidity()) {
|
||||||
|
event.preventDefault()
|
||||||
|
event.stopPropagation()
|
||||||
|
}
|
||||||
|
|
||||||
|
form.classList.add('was-validated')
|
||||||
|
}, false)
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiate Datatables
|
||||||
|
*/
|
||||||
|
const datatables = select('.datatable', true)
|
||||||
|
datatables.forEach(datatable => {
|
||||||
|
new simpleDatatables.DataTable(datatable);
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autoresize echart charts
|
||||||
|
*/
|
||||||
|
const mainContainer = select('#main');
|
||||||
|
if (mainContainer) {
|
||||||
|
setTimeout(() => {
|
||||||
|
new ResizeObserver(function() {
|
||||||
|
select('.echart', true).forEach(getEchart => {
|
||||||
|
echarts.getInstanceByDom(getEchart).resize();
|
||||||
|
})
|
||||||
|
}).observe(mainContainer);
|
||||||
|
}, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
})();
|
@ -136,7 +136,7 @@
|
|||||||
<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.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/modules/moment.min.js') }}"></script>
|
||||||
<script src="{{ asset('assets/js/stisla.js') }}"></script>
|
<script src="{{ asset('assets/js/stisla.js') }}"></script>
|
||||||
<script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script>
|
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
|
|
||||||
<!-- JS Libraies -->
|
<!-- JS Libraies -->
|
||||||
<script src="{{ asset('assets/modules/jquery.sparkline.min.js') }}"></script>
|
<script src="{{ asset('assets/modules/jquery.sparkline.min.js') }}"></script>
|
||||||
|
45
resources/views/User/contact/add-contact.blade.php
Normal file
45
resources/views/User/contact/add-contact.blade.php
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<div class="modal fade" id="modalForm" role="dialog">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<!-- Modal Header -->
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
<span class="sr-only">Close</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h4 class="modal-title" id="myModalLabel">Contact Form</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Modal Body -->
|
||||||
|
<div class="modal-body">
|
||||||
|
<p class="statusMsg"></p>
|
||||||
|
<form role="form"
|
||||||
|
>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputemail">Email</label>
|
||||||
|
<input type="text" class="form-control" id="inputemail"
|
||||||
|
placeholder="Enter your email" />
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button type="button" class="btn btn-primary" id="checkButton">Check</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="exampleFormControlTextarea1" class="form-label">Hasil</label>
|
||||||
|
<textarea class="form-control" id="hasil" rows="5" readonly></textarea>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Modal Footer -->
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||||
|
<a href="/contact" type="button" class="btn btn-primary submitBtn"
|
||||||
|
onclick="submitContactForm()">Tambahkan
|
||||||
|
Data</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
63
resources/views/User/contact/contact.blade.php
Normal file
63
resources/views/User/contact/contact.blade.php
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
|
||||||
|
<div class="section-header">
|
||||||
|
<h1>Manajemen Contact</h1>
|
||||||
|
<div class="section-header-breadcrumb">
|
||||||
|
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
|
||||||
|
<div class="breadcrumb-item"><a href="#"> Transaction</a></div>
|
||||||
|
<div class="breadcrumb-item">Manajemen Kontak</div>
|
||||||
|
<div class="breadcrumb-item">Halaman Refund</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- tabel list kontak --}}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<div class="d-flex justify-content-end">
|
||||||
|
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#modalForm">Open Contact Form</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped" id="table-1">
|
||||||
|
<thead>
|
||||||
|
<tr class="text-center">
|
||||||
|
<th>#</th>
|
||||||
|
<th>Email</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Phone</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach ($contacts as $key => $contact)
|
||||||
|
<tr>
|
||||||
|
<td>{{ ++$key }}</td>
|
||||||
|
<td class="font-weight-600">{{ $contact['email'] }}</td>
|
||||||
|
<td class="text-center font-weight-600">{{ $contact['name'] }}</td>
|
||||||
|
<td class="text-center font-weight-600">{{ $contact['phone'] }}</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<button class="btn btn-info open-detail-modal" data-toggle="modal" data-target="#modaldetail">Detail</button>
|
||||||
|
{{-- <a href="/detail-contact" type="button" class="btn btn-primary">Detail</a> --}}
|
||||||
|
<button class="btn btn-danger open-detail-modal" data-toggle="modal" data-target="#modaldelete">Delete</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@extends('user.contact.detail-contact')
|
||||||
|
@extends('user.contact.delete-contact')
|
||||||
|
@extends('user.contact.add-contact')
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
38
resources/views/User/contact/delete-contact.blade.php
Normal file
38
resources/views/User/contact/delete-contact.blade.php
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<div class="modal fade" id="modaldelete" aria-hidden="true" aria-labelledby="myModalLabel"
|
||||||
|
tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="myModalLabel">Yakin Hapus Contact?</h5>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Apakah Anda yakin ingin menghapus kontak ini?
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" href="/contact" class="btn btn-secondary"
|
||||||
|
data-dismiss="modal">Batal</button>
|
||||||
|
<button type="button" class="btn btn-danger" data-bs-toggle="modal"
|
||||||
|
data-bs-target="#modaldeleteconfirm">Ya, Hapus Contact!</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal fade" id="modaldeleteconfirm" aria-hidden="true" aria-labelledby="myModalLabel"
|
||||||
|
tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="myModalLabel">Kontak Telah Dihapus</h5>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal"
|
||||||
|
aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Kontak telah berhasil dihapus.
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">Tutup</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
62
resources/views/User/contact/detail-contact.blade.php
Normal file
62
resources/views/User/contact/detail-contact.blade.php
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
{{-- @extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section"> --}}
|
||||||
|
{{-- <div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Detail Contact</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-0">
|
||||||
|
<div class="container">
|
||||||
|
@foreach ($detail_contact as $detail)
|
||||||
|
<p><strong>Name:</strong> {{ $detail_contact->inputNama }}</p>
|
||||||
|
<p><strong>No HP:</strong> {{ $detail_contact->inputNoHP }}</p>
|
||||||
|
<p><strong>Email:</strong> {{ $detail_contact->inputEmail }}</p>
|
||||||
|
<p><strong>Alamat:</strong> {{ $detail_contact->inputAlamat }}</p>
|
||||||
|
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> --}}
|
||||||
|
{{-- </section>
|
||||||
|
</div>
|
||||||
|
@endsection --}}
|
||||||
|
|
||||||
|
<div class="modal fade" id="modaldetail" tabindex="-1" role="dialog" aria-labelledby="modalcontact" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title mx-auto" style="margin-right: auto; margin-left: auto; font-size: 1.2em;" id="modalcontact">Detail
|
||||||
|
Contact
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="alert alert-primary" role="alert">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputNama" style="color: white; font-size: 1.1em;">Nama</label>
|
||||||
|
<p class="form-control-static" id="inputNama">Nurul Prima</p>
|
||||||
|
</div>
|
||||||
|
<hr style="border-top: 1px solid #fff;">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputNoHP" style="color: white; font-size: 1.1em;">No HP</label>
|
||||||
|
<p class="form-control-static" id="inputNoHP">+6282284964524</p>
|
||||||
|
</div>
|
||||||
|
<hr style="border-top: 1px solid #fff;">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputEmail" style="color: white; font-size: 1.1em;">Email</label>
|
||||||
|
<p class="form-control-static" id="inputEmail">npannisa@gmail.com</p>
|
||||||
|
</div>
|
||||||
|
<hr style="border-top: 1px solid #fff;">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputAlamat" style="color: white; font-size: 1.1em;">Alamat</label>
|
||||||
|
<p class="form-control-static" id="inputAlamat">Depok City</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -1,4 +1,4 @@
|
|||||||
@extends('User.layout.main')
|
@extends('user.layout.main')
|
||||||
@section('content')
|
@section('content')
|
||||||
<!-- Main Content -->
|
<!-- Main Content -->
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
@ -69,7 +69,7 @@
|
|||||||
<h4>Total Refund</h4>
|
<h4>Total Refund</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
100
|
190
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -84,147 +84,72 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-wrap">
|
<div class="card-wrap">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h4>Total user</h4>
|
<h4>Total Transaction </h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
100 </div>
|
109 </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="x_panel">
|
<div class="card">
|
||||||
<div class="x_title">
|
<div class="card-header">
|
||||||
<h2>Transaction Summary <small>Weekly progress</small></h2>
|
<h4>INCOME</h4>
|
||||||
<div class="filter">
|
|
||||||
<div id="reportrange" class="pull-right"
|
|
||||||
style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc">
|
|
||||||
<i class="glyphicon glyphicon-calendar fa fa-calendar"></i>
|
|
||||||
<span>December 30, 2014 - January 28, 2015</span> <b class="caret"></b>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<canvas id="myChart" height="158"></canvas>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix"></div>
|
|
||||||
</div>
|
|
||||||
<div class="x_content">
|
|
||||||
<div class="col-md-9 col-sm-12 ">
|
|
||||||
<div class="demo-container" style="height:280px">
|
|
||||||
<div id="chart_plot_02" class="demo-placeholder"></div>
|
|
||||||
</div>
|
|
||||||
<div class="tiles">
|
|
||||||
<div class="col-md-4 tile">
|
|
||||||
<span>Total Sessions</span>
|
|
||||||
<h2>231,809</h2>
|
|
||||||
<span class="sparkline11 graph" style="height: 160px;">
|
|
||||||
<canvas width="200" height="60"
|
|
||||||
style="display: inline-block; vertical-align: top; width: 94px; height: 30px;"></canvas>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4 tile">
|
|
||||||
<span>Total Revenue</span>
|
|
||||||
<h2>$231,809</h2>
|
|
||||||
<span class="sparkline22 graph" style="height: 160px;">
|
|
||||||
<canvas width="200" height="60"
|
|
||||||
style="display: inline-block; vertical-align: top; width: 94px; height: 30px;"></canvas>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4 tile">
|
|
||||||
<span>Total Sessions</span>
|
|
||||||
<h2>231,809</h2>
|
|
||||||
<span class="sparkline11 graph" style="height: 160px;">
|
|
||||||
<canvas width="200" height="60"
|
|
||||||
style="display: inline-block; vertical-align: top; width: 94px; height: 30px;"></canvas>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3 col-sm-12 ">
|
<div class="col-md-12">
|
||||||
<div>
|
<div class="card">
|
||||||
<div class="x_title">
|
<div class="card-header">
|
||||||
<h2>Top Profiles</h2>
|
<h2>Transaction</h2>
|
||||||
<ul class="nav navbar-right panel_toolbox">
|
|
||||||
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
|
|
||||||
</li>
|
|
||||||
<li class="dropdown">
|
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
|
|
||||||
role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
|
|
||||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
|
||||||
<a class="dropdown-item" href="#">Settings 1</a>
|
|
||||||
<a class="dropdown-item" href="#">Settings 2</a>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
<div class="card-body p-0">
|
||||||
<li><a class="close-link"><i class="fa fa-close"></i></a>
|
<div class="table-responsive table-invoice">
|
||||||
</li>
|
<table class="table table-striped">
|
||||||
</ul>
|
<tr>
|
||||||
<div class="clearfix"></div>
|
<th>Order ID</th>
|
||||||
|
<th>Customer</th>
|
||||||
|
<th>Seller</th>
|
||||||
|
<th>Total</th>
|
||||||
|
<th>Due Date</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Image</th>
|
||||||
|
</tr>
|
||||||
|
@foreach ($refundUserss as $HistoryRefundUser)
|
||||||
|
<tr>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['orderId'] }}</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['Customer'] }}</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['seller'] }}</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['Total'] }}</td>
|
||||||
|
<td>{{ $HistoryRefundUser['dueDate'] }}</td>
|
||||||
|
<td>
|
||||||
|
<div class="badge badge-success" data-status="diterima"
|
||||||
|
onclick="setStatus('diterima')">Diterima</div>
|
||||||
|
</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['uploadBukti'] }}</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<ul class="list-unstyled top_profiles scroll-view">
|
|
||||||
<li class="media event">
|
|
||||||
<a class="pull-left border-aero profile_thumb">
|
|
||||||
<i class="fa fa-user aero"></i>
|
|
||||||
</a>
|
|
||||||
<div class="media-body">
|
|
||||||
<a class="title" href="#">Ms. Mary Jane</a>
|
|
||||||
<p><strong>$2300. </strong> Agent Avarage Sales </p>
|
|
||||||
<p> <small>12 Sales Today</small>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
<li class="media event">
|
|
||||||
<a class="pull-left border-green profile_thumb">
|
|
||||||
<i class="fa fa-user green"></i>
|
|
||||||
</a>
|
|
||||||
<div class="media-body">
|
|
||||||
<a class="title" href="#">Ms. Mary Jane</a>
|
|
||||||
<p><strong>$2300. </strong> Agent Avarage Sales </p>
|
|
||||||
<p> <small>12 Sales Today</small>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="media event">
|
|
||||||
<a class="pull-left border-blue profile_thumb">
|
|
||||||
<i class="fa fa-user blue"></i>
|
|
||||||
</a>
|
|
||||||
<div class="media-body">
|
|
||||||
<a class="title" href="#">Ms. Mary Jane</a>
|
|
||||||
<p><strong>$2300. </strong> Agent Avarage Sales </p>
|
|
||||||
<p> <small>12 Sales Today</small>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="media event">
|
|
||||||
<a class="pull-left border-aero profile_thumb">
|
|
||||||
<i class="fa fa-user aero"></i>
|
|
||||||
</a>
|
|
||||||
<div class="media-body">
|
|
||||||
<a class="title" href="#">Ms. Mary Jane</a>
|
|
||||||
<p><strong>$2300. </strong> Agent Avarage Sales </p>
|
|
||||||
<p> <small>12 Sales Today</small>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="media event">
|
|
||||||
<a class="pull-left border-green profile_thumb">
|
|
||||||
<i class="fa fa-user green"></i>
|
|
||||||
</a>
|
|
||||||
<div class="media-body">
|
|
||||||
<a class="title" href="#">Ms. Mary Jane</a>
|
|
||||||
<p><strong>$2300. </strong> Agent Avarage Sales </p>
|
|
||||||
<p> <small>12 Sales Today</small>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
@include('Admin.transaction.Tracking')
|
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -207,15 +207,15 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right">
|
<div class="dropdown-menu dropdown-menu-right">
|
||||||
<div class="dropdown-title">Logged in 5 min ago</div>
|
<div class="dropdown-title">Logged in 5 min ago</div>
|
||||||
<a href="#" class="dropdown-item has-icon">
|
<a href="/profile" class="dropdown-item has-icon">
|
||||||
<i class="far fa-user"></i> Profile
|
<i class="far fa-user"></i> Profile
|
||||||
</a>
|
</a>
|
||||||
<a href="features-activities.html" class="dropdown-item has-icon">
|
{{-- <a href="features-activities.html" class="dropdown-item has-icon">
|
||||||
<i class="fas fa-bolt"></i> Activities
|
<i class="fas fa-bolt"></i> Activities
|
||||||
</a>
|
</a>
|
||||||
<a href="features-settings.html" class="dropdown-item has-icon">
|
<a href="features-settings.html" class="dropdown-item has-icon">
|
||||||
<i class="fas fa-cog"></i> Settings
|
<i class="fas fa-cog"></i> Settings
|
||||||
</a>
|
</a> --}}
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a href="#" class="dropdown-item has-icon text-danger">
|
<a href="#" class="dropdown-item has-icon text-danger">
|
||||||
<i class="fas fa-sign-out-alt"></i> Logout
|
<i class="fas fa-sign-out-alt"></i> Logout
|
||||||
|
@ -2,64 +2,33 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<style>
|
|
||||||
.data-field {
|
|
||||||
display: flex;
|
|
||||||
width: 100%;
|
|
||||||
justify-content: space-between;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.data-field:not(:last-child) {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.data-field span {
|
|
||||||
text-align: end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-title span a {
|
|
||||||
color: #899bbd;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.justified-text {
|
|
||||||
text-align: justify;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-weight-italic {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport">
|
<meta content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no" name="viewport">
|
||||||
<title>REKBER</title>
|
<title>REKBER</title>
|
||||||
<!-- Bootstrap -->
|
|
||||||
<link href="../vendors/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
||||||
<!-- Font Awesome -->
|
|
||||||
<link href="../vendors/font-awesome/css/font-awesome.min.css" rel="stylesheet">
|
|
||||||
<!-- NProgress -->
|
|
||||||
<link href="../vendors/nprogress/nprogress.css" rel="stylesheet">
|
|
||||||
<!-- bootstrap-daterangepicker -->
|
|
||||||
<link href="../vendors/bootstrap-daterangepicker/daterangepicker.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Custom Theme Style -->
|
|
||||||
<link href="../build/css/custom.min.css" rel="stylesheet">
|
|
||||||
<!-- General CSS Files -->
|
<!-- General CSS Files -->
|
||||||
<link rel="stylesheet" href="assets/modules/bootstrap/css/bootstrap.min.css">
|
<link rel="stylesheet" href="{{ asset('assets/modules/bootstrap/css/bootstrap.min.css') }}">
|
||||||
<link rel="stylesheet" href="assets/modules/fontawesome/css/all.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">
|
||||||
|
|
||||||
<!-- CSS Libraries -->
|
<!-- CSS Libraries -->
|
||||||
<link rel="stylesheet" href="assets/modules/jqvmap/dist/jqvmap.min.css">
|
<link rel="stylesheet" href="{{asset('assets/modules/jqvmap/dist/jqvmap.min.css')}}">
|
||||||
<link rel="stylesheet" href="assets/modules/summernote/summernote-bs4.css">
|
<link rel="stylesheet" href="{{asset('assets/modules/summernote/summernote-bs4.css')}}">
|
||||||
<link rel="stylesheet" href="assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css">
|
<link rel="stylesheet" href="{{asset('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/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 -->
|
<!-- Template CSS -->
|
||||||
<link rel="stylesheet" href="assets/css/style.css">
|
<link rel="stylesheet" href="{{asset('assets/css/style.css')}}">
|
||||||
<link rel="stylesheet" href="assets/css/components.css">
|
<link rel="stylesheet" href="{{asset('assets/css/components.css')}}">
|
||||||
<!-- Start GA -->
|
<!-- Start GA -->
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
|
||||||
<script>
|
<script>
|
||||||
@ -78,69 +47,80 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<header class="header-area header-sticky">
|
<header class="header-area header-sticky">
|
||||||
@include('User.layout.header')
|
@include('user.layout.header')
|
||||||
</header>
|
</header>
|
||||||
<!-- ***** Main Banner Area Start ***** -->
|
<!-- ***** Main Banner Area Start ***** -->
|
||||||
<main id="main" style="min-height: 100vh;">
|
<main id="main" style="min-height: 100vh;">
|
||||||
@include('User.layout.sidebar')
|
@include('user.layout.sidebar')
|
||||||
@yield('content')
|
@yield('content')
|
||||||
</main>
|
</main>
|
||||||
<!-- End #main -->
|
<!-- End #main -->
|
||||||
<footer id="footer">
|
<footer id="footer">
|
||||||
@include('User.layout.footer')
|
@include('user.layout.footer')
|
||||||
</footer>
|
</footer>
|
||||||
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
|
||||||
|
|
||||||
<!-- General JS Scripts -->
|
<!-- General JS Scripts -->
|
||||||
<script src="assets/modules/jquery.min.js"></script>
|
<script src="{{asset('assets/modules/jquery.min.js')}}"></script>
|
||||||
<script src="assets/modules/popper.js"></script>
|
<script src="{{asset('assets/modules/popper.js')}}"></script>i
|
||||||
<script src="assets/modules/tooltip.js"></script>
|
<script src="{{asset('assets/modules/tooltip.js')}}"></script>
|
||||||
<script src="assets/modules/bootstrap/js/bootstrap.min.js"></script>
|
<script src="{{asset('assets/modules/bootstrap/js/bootstrap.min.js')}}"></script>
|
||||||
<script src="assets/modules/nicescroll/jquery.nicescroll.min.js"></script>
|
<script src="{{asset('assets/modules/nicescroll/jquery.nicescroll.min.js')}}"></script>
|
||||||
<script src="assets/modules/moment.min.js"></script>
|
<script src="{{asset('assets/modules/moment.min.js')}}"></script>
|
||||||
<script src="assets/js/stisla.js"></script>
|
<script src="{{asset('assets/js/stisla.js')}}"></script>
|
||||||
|
|
||||||
<!-- JS Libraies -->
|
<!-- JS Libraies -->
|
||||||
<script src="assets/modules/jquery.sparkline.min.js"></script>
|
<script src="{{asset('assets/modules/jquery.sparkline.min.js')}}"></script>
|
||||||
<script src="assets/modules/chart.min.js"></script>
|
<script src="{{asset('assets/modules/chart.min.js')}}"></script>
|
||||||
<script src="assets/modules/owlcarousel2/dist/owl.carousel.min.js"></script>
|
<script src="{{asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js')}}"></script>
|
||||||
<script src="assets/modules/summernote/summernote-bs4.js"></script>
|
<script src="{{asset('assets/modules/summernote/summernote-bs4.js')}}"></script>
|
||||||
<script src="assets/modules/chocolat/dist/js/jquery.chocolat.min.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 src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></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> --}}
|
||||||
|
|
||||||
|
|
||||||
<!-- Page Specific JS File -->
|
<!-- Page Specific JS File -->
|
||||||
<script src="assets/js/page/index.js"></script>
|
<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>
|
||||||
|
|
||||||
<!-- Template JS File -->
|
<!-- Template JS File -->
|
||||||
<script src="assets/js/scripts.js"></script>
|
<script src="{{asset('assets/js/scripts.js')}}"></script>
|
||||||
<script src="assets/js/custom.js"></script>
|
<script src="{{asset('assets/js/custom.js')}}"></script>
|
||||||
<!-- jQuery -->
|
|
||||||
<script src="../vendors/jquery/dist/jquery.min.js"></script>
|
|
||||||
<!-- Bootstrap -->
|
|
||||||
<script src="../vendors/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
|
||||||
<!-- FastClick -->
|
|
||||||
<script src="../vendors/fastclick/lib/fastclick.js"></script>
|
|
||||||
<!-- NProgress -->
|
|
||||||
<script src="../vendors/nprogress/nprogress.js"></script>
|
|
||||||
<!-- Chart.js -->
|
|
||||||
<script src="../vendors/Chart.js/dist/Chart.min.js"></script>
|
|
||||||
<!-- jQuery Sparklines -->
|
|
||||||
<script src="../vendors/jquery-sparkline/dist/jquery.sparkline.min.js"></script>
|
|
||||||
<!-- Flot -->
|
|
||||||
<script src="../vendors/Flot/jquery.flot.js"></script>
|
|
||||||
<script src="../vendors/Flot/jquery.flot.pie.js"></script>
|
|
||||||
<script src="../vendors/Flot/jquery.flot.time.js"></script>
|
|
||||||
<script src="../vendors/Flot/jquery.flot.stack.js"></script>
|
|
||||||
<script src="../vendors/Flot/jquery.flot.resize.js"></script>
|
|
||||||
<!-- Flot plugins -->
|
|
||||||
<script src="../vendors/flot.orderbars/js/jquery.flot.orderBars.js"></script>
|
|
||||||
<script src="../vendors/flot-spline/js/jquery.flot.spline.min.js"></script>
|
|
||||||
<script src="../vendors/flot.curvedlines/curvedLines.js"></script>
|
|
||||||
<!-- DateJS -->
|
|
||||||
<script src="../vendors/DateJS/build/date.js"></script>
|
|
||||||
<!-- bootstrap-daterangepicker -->
|
|
||||||
<script src="../vendors/moment/min/moment.min.js"></script>
|
|
||||||
<script src="../vendors/bootstrap-daterangepicker/daterangepicker.js"></script>
|
|
||||||
|
|
||||||
<!-- Custom Theme Scripts -->
|
<script src="{{ asset('assets/js/main.js') }}"></script>
|
||||||
<script src="../build/js/custom.min.js"></script>
|
|
||||||
|
{{-- refund --}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{-- @include('sweetalert::alert') --}}
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -9,22 +9,44 @@
|
|||||||
<ul class="sidebar-menu">
|
<ul class="sidebar-menu">
|
||||||
<li class="menu-header">Dashboard</li>
|
<li class="menu-header">Dashboard</li>
|
||||||
|
|
||||||
<li><a class="nav-link active" href="/User"><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 class="menu-header">Starter</li>
|
||||||
<li><a class="nav-link" href="#"><i class="far fa-user"></i> <span>User</span></a></li>
|
|
||||||
<li><a class="nav-link" href="#"><i class="fas fa-columns"></i><span>Transaction</span></a></li>
|
|
||||||
{{-- <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 class="drop-down ">
|
||||||
</li> --}}
|
<a class="nav-link" data-toggle="collapse" href="#submenuTransaction" aria-expanded="false" aria-controls="submenuTransaction">
|
||||||
<li><a class="nav-link" href="#"><i class="far fa-square"></i> <span>List Refund</span></a>
|
<i class="fas fa-columns"></i><span>Transaction</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="/penjual">
|
||||||
|
<i class="fas fa-user"></i> Penjual
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/pembeli">
|
||||||
|
<i class="fas fa-users"></i> Pembeli
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="nav-link active" href="/contact">
|
||||||
|
<i class="fas fa-address-book"></i> <span>Manajemen Contact</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="nav-link active" href="/refund">
|
||||||
|
<i class="fas fa-money-check-alt"></i> <span>Halaman Refund</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{-- <div class="mt-4 mb-4 p-3 hide-sidebar-mini">
|
{{-- <div class="mt-4 mb-4 p-3 hide-sidebar-mini">
|
||||||
|
377
resources/views/User/profile/index.blade.php
Normal file
377
resources/views/User/profile/index.blade.php
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
<div class="section-header">
|
||||||
|
<h1>Profile</h1>
|
||||||
|
</div>
|
||||||
|
<div class="card-body profile-card py-2 d-flex flex-column align-items-center text-center"
|
||||||
|
style="border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); position: relative; background: linear-gradient(45deg, #f3f3f3, #e0e0e0);">
|
||||||
|
|
||||||
|
<i class="bi bi-arrow-right" style="position: absolute; top: 10px; right: 10px; font-size: 24px;"></i>
|
||||||
|
<img src="assets/img/avatar/ok.jpg" alt="Profile" class="rounded-circle" style="width: 150px; height: 150px;">
|
||||||
|
<h2 class="mt-3">Nurul Prima Annisa</h2>
|
||||||
|
<h5 class="mb-0">@npannisa</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-edit">Edit
|
||||||
|
Profile</button>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<button class="nav-link" data-bs-toggle="tab"
|
||||||
|
data-bs-target="#profile-settings">Settings</button>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-change-password">Change
|
||||||
|
Password</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="small fst-italic">Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul
|
||||||
|
prima
|
||||||
|
annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima annisa Nurul prima
|
||||||
|
annisa Nurul prima annisa
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h5 class="card-title">Profile Details</h5>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label ">Full Name</div>
|
||||||
|
<div class="col-lg-9 col-md-8">Nurul Prima Annisa</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Company</div>
|
||||||
|
<div class="col-lg-9 col-md-8">Ya apa yak</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Job</div>
|
||||||
|
<div class="col-lg-9 col-md-8">Frontend Web </div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Country</div>
|
||||||
|
<div class="col-lg-9 col-md-8">Indonesia</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Address</div>
|
||||||
|
<div class="col-lg-9 col-md-8">Depok city broww</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Phone</div>
|
||||||
|
<div class="col-lg-9 col-md-8">(+62) 486-3538 29071</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Email</div>
|
||||||
|
<div class="col-lg-9 col-md-8">npannisa23@gmail.com</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane fade profile-edit pt-3" id="profile-edit">
|
||||||
|
|
||||||
|
<!-- Profile Edit Form -->
|
||||||
|
<form>
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="profileImage" class="col-md-4 col-lg-3 col-form-label">Profile Image</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<img id="profileImagePreview" src="assets/img/avatar/ok.jpg" alt="Profile"
|
||||||
|
style="max-width: 100%; max-height: 150px;">
|
||||||
|
<div class="d-flex justify-content-between align-items-center mt-2">
|
||||||
|
<label for="profileImageInput" class="btn btn-primary btn-sm"
|
||||||
|
title="Upload new profile image">
|
||||||
|
<i class="bi bi-upload"></i> Upload
|
||||||
|
<input type="file" id="profileImageInput" accept="image/*"
|
||||||
|
style="display: none;">
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Full Name</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="fullName" type="text" class="form-control" id="fullName"
|
||||||
|
value="Nurul Prima Annisa">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="about" class="col-md-4 col-lg-3 col-form-label">About</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<textarea name="about" class="form-control" id="about" style="height: 100px">
|
||||||
|
|
||||||
|
</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="company" class="col-md-4 col-lg-3 col-form-label">Company</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="company" type="text" class="form-control" id="company"
|
||||||
|
value="Abbauf Mulia Konsultan Teknologi">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Job" class="col-md-4 col-lg-3 col-form-label">Job</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="job" type="text" class="form-control" id="Job"
|
||||||
|
value="Frontend Web">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Country" class="col-md-4 col-lg-3 col-form-label">Country</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="country" type="text" class="form-control" id="Country"
|
||||||
|
value="Indonesia">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Address" class="col-md-4 col-lg-3 col-form-label">Address</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="address" type="text" class="form-control" id="Address"
|
||||||
|
value="Depok city broww">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Phone" class="col-md-4 col-lg-3 col-form-label">Phone</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="phone" type="text" class="form-control" id="Phone"
|
||||||
|
value="(+62) 486-3538 29071">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Email" class="col-md-4 col-lg-3 col-form-label">Email</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="email" type="email" class="form-control" id="Email"
|
||||||
|
value="npannisa23@gmail.com">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- <div class="row mb-3">
|
||||||
|
<label for="Twitter" class="col-md-4 col-lg-3 col-form-label">Twitter Profile</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="twitter" type="text" class="form-control" id="Twitter"
|
||||||
|
value="https://twitter.com/#">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Facebook" class="col-md-4 col-lg-3 col-form-label">Facebook
|
||||||
|
Profile</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="facebook" type="text" class="form-control" id="Facebook"
|
||||||
|
value="https://facebook.com/#">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Instagram" class="col-md-4 col-lg-3 col-form-label">Instagram
|
||||||
|
Profile</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="instagram" type="text" class="form-control" id="Instagram"
|
||||||
|
value="https://instagram.com/npannisa_?utm_source=qr&igshid=MzNlNGNkZWQ4Mg%3D%3D#">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="Linkedin" class="col-md-4 col-lg-3 col-form-label">Linkedin
|
||||||
|
Profile</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<input name="linkedin" type="text" class="form-control" id="Linkedin"
|
||||||
|
value="https://github.com/npannisa#">
|
||||||
|
</div>
|
||||||
|
</div> --}}
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<a href="profile" type="submit" class="btn btn-primary">Save Changes</a>
|
||||||
|
</div>
|
||||||
|
</form><!-- End Profile Edit Form -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane fade pt-3" id="profile-settings">
|
||||||
|
|
||||||
|
<!-- Settings Form -->
|
||||||
|
<form>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Email
|
||||||
|
Notifications</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="changesMade" checked>
|
||||||
|
<label class="form-check-label" for="changesMade">
|
||||||
|
Changes made to your account
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="newProducts" checked>
|
||||||
|
<label class="form-check-label" for="newProducts">
|
||||||
|
Information on new products and services
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="proOffers">
|
||||||
|
<label class="form-check-label" for="proOffers">
|
||||||
|
Marketing and promo offers
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="securityNotify" checked
|
||||||
|
disabled>
|
||||||
|
<label class="form-check-label" for="securityNotify">
|
||||||
|
Security alerts
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<button type="submit" class="btn btn-primary">Save Changes</button>
|
||||||
|
</div>
|
||||||
|
</form><!-- End settings Form -->
|
||||||
|
|
||||||
|
</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>
|
||||||
|
</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
|
56
resources/views/User/refund/detail-refund.blade.php
Normal file
56
resources/views/User/refund/detail-refund.blade.php
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<div class="modal fade" id="awaldetailrefund" role="dialog">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
<span class="sr-only">Close</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<h4 class="modal-title" id="myModalLabel">Detail Refund</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p class="statusMsg"></p>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputOrderId">Order ID</label>
|
||||||
|
<p class="form-control-static" id="orderid">1452667</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputCustomer">Customer</label>
|
||||||
|
<p class="form-control-static" id="customer">Nurul Prima</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputEmail">Email Customer</label>
|
||||||
|
<p class="form-control-static" id="inputEmail">npannisa@gmail.com</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputSeller">Seller Name</label>
|
||||||
|
<p class="form-control-static" id="sellername">Zakiaa</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputDueDate">Due Date</label>
|
||||||
|
<p class="form-control-static" id="duedate">29 Januari 2002</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputComplaint">Reason Complaint</label>
|
||||||
|
<p class="form-control-static" id="reasoncomplaint">Pengembalian product dikarenakan tidak
|
||||||
|
sesuai dengan aslinya</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputBukti">Bukti</label>
|
||||||
|
<p class="form-control-static" id="inputbukti"></p>
|
||||||
|
<img class="mr-3 rounded" width="200" src="assets/img/avatar/rusak.jpeg">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
53
resources/views/User/refund/history-refund.blade.php
Normal file
53
resources/views/User/refund/history-refund.blade.php
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>History Refund</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-0">
|
||||||
|
<div class="table-responsive table-invoice">
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tr>
|
||||||
|
<th>Order ID</th>
|
||||||
|
<th>Customer</th>
|
||||||
|
<th>Seller</th>
|
||||||
|
<th>Total</th>
|
||||||
|
<th>Due Date</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Upload Bukti</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 class="font-weight-600">{{ $HistoryRefund['dueDate'] }}</td>
|
||||||
|
<td>{{ $HistoryRefund['date'] }}</td>
|
||||||
|
<td>
|
||||||
|
<div class="badge badge-danger">{{ $HistoryRefund['status'] }}</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="/detail_refund" class="btn btn-primary">Detail</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<!-- Input field for uploading an image or video -->
|
||||||
|
<div class="col-md-12 d-flex align-items-center">
|
||||||
|
<label class="form-label me-3"
|
||||||
|
for="uploadFile{{ $HistoryRefund['orderId'] }}">Upload File</label>
|
||||||
|
<input class="form-control" type="file"
|
||||||
|
id="uploadFile{{ $HistoryRefund['orderId'] }}" name="uploadedFiles[]">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
74
resources/views/User/refund/refund.blade.php
Normal file
74
resources/views/User/refund/refund.blade.php
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
<div class="section-header">
|
||||||
|
<h1>Halaman Refund</h1>
|
||||||
|
<div class="section-header-breadcrumb">
|
||||||
|
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
|
||||||
|
<div class="breadcrumb-item"><a href="#"> Transaction</a></div>
|
||||||
|
<div class="breadcrumb-item">Manajemen Kontak</div>
|
||||||
|
<div class="breadcrumb-item">Halaman Refund</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped" id="table-1">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">
|
||||||
|
#
|
||||||
|
</th>
|
||||||
|
<th>Order Id</th>
|
||||||
|
<th>Customer</th>
|
||||||
|
<th>Seller</th>
|
||||||
|
<th>total</th>
|
||||||
|
<th>Due Date</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>upload Bukti</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach ($refundUserss as $key => $HistoryRefundUser)
|
||||||
|
<tr>
|
||||||
|
<td> {{ ++$key }}</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['orderId'] }}</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['Customer'] }}</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['seller'] }}</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['Total'] }}</td>
|
||||||
|
<td>{{ $HistoryRefundUser['dueDate'] }}</td>
|
||||||
|
|
||||||
|
<td class="font-weight-600">
|
||||||
|
<div class="badge badge-danger" data-status="ditolak"
|
||||||
|
onclick="setStatus('ditolak')">Ditolak</div>
|
||||||
|
{{-- {{ $HistoryRefundUser['status'] }} --}}
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="font-weight-600">
|
||||||
|
{{ $HistoryRefundUser['uploadBukti'] }}</td>
|
||||||
|
<td>
|
||||||
|
<button class="btn btn-info open-detail-modal" data-toggle="modal"
|
||||||
|
data-target="#awaldetailrefund">Detail</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@extends('user.refund.detail-refund')
|
||||||
|
@endsection
|
@ -0,0 +1,33 @@
|
|||||||
|
<div class="modal fade" id="bayar" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"
|
||||||
|
aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header d-flex justify-content-center">
|
||||||
|
<h3 class="modal-title fs-5" id="staticBackdropLabel">Lakukan Pembayaran</h3>
|
||||||
|
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form action="#" method="post">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="nominal" class="form-label">Nominal</label>
|
||||||
|
<input type="text" class="form-control" name="nominal" id="nominal" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="tujuan" class="form-label">Tujuan</label>
|
||||||
|
<input type="text" class="form-control" name="tujuan" id="tujuan" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="textare" class="form-label">Deskripsi</label>
|
||||||
|
<textarea class="form-control" id="deskripsi" rows="3"></textarea>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="/invoice-transaction" type="button" class="btn btn-primary">Selesai</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -0,0 +1,289 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
<div class="col-lg-12 grid-margin stretch-card">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<h2 class="mb-4"> Informasi Pesanan</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="section-body">
|
||||||
|
<h2 class="section-title">npannisa</h2>
|
||||||
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
<div class="card-title pb-2 m-0">
|
||||||
|
<h4>Timeline</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mt-sm-4">
|
||||||
|
<div class="col-12 col-md-12 col-lg-5">
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="section-body">
|
||||||
|
<div class="invoice">
|
||||||
|
<div class="invoice-print">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<hr>
|
||||||
|
<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
|
||||||
|
</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
|
||||||
|
</address>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<address>
|
||||||
|
<strong>Payment Method:</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>
|
||||||
|
</address>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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="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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
<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">
|
||||||
|
</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>
|
||||||
|
<div class="invoice-detail-item">
|
||||||
|
<div class="invoice-detail-name">Shipping</div>
|
||||||
|
<div class="invoice-detail-value">Rp.15.000</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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
</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>
|
||||||
|
</div>
|
||||||
|
</div> --}}
|
@ -0,0 +1,16 @@
|
|||||||
|
<div class="modal fade" id="selesai" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"
|
||||||
|
aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<!-- Menggunakan class modal-dialog-centered untuk memusatkan modal -->
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header d-flex justify-content-center">
|
||||||
|
<h2 class="modal-title fs-5" id="staticBackdropLabel">Konfirmasi Pesanan</h2>
|
||||||
|
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer d-flex justify-content-center">
|
||||||
|
<a href="/pembeli" type="button" class="btn btn-danger">Pesanan Belum diterima</a>
|
||||||
|
<a href="/pembeli" type="button" class="btn btn-primary">Pesanan diterima</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -0,0 +1,129 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
<div class="section-header">
|
||||||
|
<h1>Invoice</h1>
|
||||||
|
<div class="section-header-breadcrumb">
|
||||||
|
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
|
||||||
|
<div class="breadcrumb-item"><a href="#"> Transaction</a></div>
|
||||||
|
<div class="breadcrumb-item">Manajemen Kontak</div>
|
||||||
|
<div class="breadcrumb-item">Halaman Refund</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="section-body">
|
||||||
|
<div class="invoice">
|
||||||
|
<div class="invoice-print">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="invoice-title">
|
||||||
|
<h2>Invoice</h2>
|
||||||
|
<div class="invoice-number">Order #NVI-1234</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<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
|
||||||
|
</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
|
||||||
|
</address>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<address>
|
||||||
|
<strong>Payment Method:</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>
|
||||||
|
</address>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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="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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
<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">
|
||||||
|
</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>
|
||||||
|
<div class="invoice-detail-item">
|
||||||
|
<div class="invoice-detail-name">Shipping</div>
|
||||||
|
<div class="invoice-detail-value">Rp.15.000</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.6715.000.000</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="text-md-right">
|
||||||
|
<div class="float-lg-left mb-lg-0 mb-3">
|
||||||
|
<a href="/pembeli" class="btn btn-primary btn-icon icon-left"><i class="fas fa-credit-card" id="payment"></i> Process
|
||||||
|
Payment</a>
|
||||||
|
<a href="/pembeli" class="btn btn-danger btn-icon icon-left"><i class="fas fa-times"></i> Cancel</a>
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-warning btn-icon icon-left"><i class="fas fa-print"></i> Print</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
@endsection
|
@ -0,0 +1,133 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card"
|
||||||
|
style="border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); position: relative; background: linear-gradient(45deg, #f3f3f3, #e0e0e0);">
|
||||||
|
<div class="card-header d-flex justify-content-center">
|
||||||
|
<h2>Form Transaksi</h2>
|
||||||
|
</div>
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-footer d-flex justify-content-center">
|
||||||
|
<a href="/pembeli" class="btn btn-primary">Submit</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{-- 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>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="customer" class="form-label">Customer</label>
|
||||||
|
<input type="text" class="form-control" id="customer" name="customer" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="seller" class="form-label">Seller</label>
|
||||||
|
<input type="text" class="form-control" id="seller" name="seller" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="total" class="form-label">Total</label>
|
||||||
|
<input type="text" class="form-control" id="total" name="total">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="textareadesc" class="form-label">Deskripsi</label>
|
||||||
|
<textarea class="form-control" id="textareadesc" rows="3"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{-- <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> --}}
|
||||||
|
|
||||||
|
<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>
|
||||||
|
@endsection
|
@ -0,0 +1,66 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<div class="main-content">
|
||||||
|
<section class="section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card"
|
||||||
|
style="border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); position: relative; background: linear-gradient(45deg, #f3f3f3, #e0e0e0);">
|
||||||
|
<div class="card-header d-flex justify-content-center">
|
||||||
|
<h2>Form Refund Pesanan</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="section-title mt-0">Reason Complaint</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<label for="inputReasonComplaint" class="form-label">Berikan Alasan Mengapa
|
||||||
|
Melakukan Pengembalian</label>
|
||||||
|
<textarea class="form-control" aria-label="With textarea"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="section-title">Upload Image / Video</div>
|
||||||
|
<div class="custom-file">
|
||||||
|
<label for="uploadBukti" class="form-label">Sertakan bukti seperti Foto
|
||||||
|
Pesanan</label>
|
||||||
|
<input type="file" class="form-control" name="transfer_proof" id="bukti"
|
||||||
|
accept="image/*" required multiple>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<button class="btn btn-info open-detail-modal" data-toggle="modal"
|
||||||
|
data-target="#confirmtransaction">Ajukan Pengembalian</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- awal modal konfirmasi --}}
|
||||||
|
<div class="modal fade" id="confirmtransaction" aria-hidden="true" aria-labelledby="myModalLabel" tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
<span class="sr-only">Close</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-header d-flex justify-content-center">
|
||||||
|
<h5 class="modal-title" id="transaksiberhasil">Transaksi Berhasil Dilakukan!</h5>
|
||||||
|
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="/refund" type="button" class="btn btn-primary" data-bs-dismiss="modal">OK!</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{-- akhir modal konfirmasi --}}
|
||||||
|
@endsection
|
@ -0,0 +1,93 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<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>
|
||||||
|
<div class="breadcrumb-item">Manajemen Kontak</div>
|
||||||
|
<div class="breadcrumb-item">Halaman Refund</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<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>
|
||||||
|
</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">
|
||||||
|
<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">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>User ID</th>
|
||||||
|
<th>Order ID</th>
|
||||||
|
<th>Customer</th>
|
||||||
|
<th>Seller</th>
|
||||||
|
<th>Total</th>
|
||||||
|
<th>Due Date</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach ($TransactionUser as $HistoryTransaction)
|
||||||
|
<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>
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-primary dropdown-toggle"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true"
|
||||||
|
aria-expanded="false">
|
||||||
|
Action
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a class="dropdown-item"
|
||||||
|
href="/detail-transaction">Detail</a></li>
|
||||||
|
<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>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
@extends('user.transaction.Pembeli.bayar-transaction')
|
||||||
|
@extends('user.transaction.Pembeli.end-transaction')
|
||||||
|
@endsection
|
116
resources/views/User/transaction/Penjual/tracking.blade.php
Normal file
116
resources/views/User/transaction/Penjual/tracking.blade.php
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="tracking" 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">×</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-clipboard-list" style="font-size: 36px;"></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-bell" style="font-size: 36px;"></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-check-circle" style="font-size: 36px;"></i>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="activity-detail">
|
||||||
|
<div class="mb-2">
|
||||||
|
<span class="text-job text-primary">August 23, 2023, 8:30:15 am</span>
|
||||||
|
</div>
|
||||||
|
<p>Admin Accepted Trade</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="activity">
|
||||||
|
<div class="activity-icon bg-primary text-white shadow-primary">
|
||||||
|
<i class="fas fa-trash-alt" style="font-size: 36px;"></i>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="activity-detail">
|
||||||
|
<div class="mb-2">
|
||||||
|
<span class="text-job text-primary">August 24, 2023, 8:30:15 am</span>
|
||||||
|
</div>
|
||||||
|
<p>Trade in system</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="activity">
|
||||||
|
<div class="activity-icon bg-primary text-white shadow-primary">
|
||||||
|
<i class="fas fa-clipboard-check" style="font-size: 36px;"></i>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="activity-detail">
|
||||||
|
<div class="mb-2">
|
||||||
|
<span class="text-job text-primary">August 24, 2023, 8:30:15 am</span>
|
||||||
|
</div>
|
||||||
|
<p>Transaction Success</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="#" 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 --}}
|
@ -0,0 +1,80 @@
|
|||||||
|
@extends('user.layout.main')
|
||||||
|
@section('content')
|
||||||
|
<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>
|
||||||
|
<div class="breadcrumb-item">Manajemen Kontak</div>
|
||||||
|
<div class="breadcrumb-item">Halaman Refund</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 mb-4">
|
||||||
|
<div class="col-12 mb-4">
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped" id="table-1">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>User ID</th>
|
||||||
|
<th>Order ID</th>
|
||||||
|
<th>Customer</th>
|
||||||
|
<th>Seller</th>
|
||||||
|
<th>Total</th>
|
||||||
|
<th>Due Date</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach ($TransactionUser as $key => $HistoryTransaction)
|
||||||
|
<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>
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-primary dropdown-toggle"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true"
|
||||||
|
aria-expanded="false">
|
||||||
|
Action
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a class="dropdown-item"
|
||||||
|
href="/detail-transaction">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> --}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@extends('user.transaction.Penjual.tracking')
|
||||||
|
@endsection
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
use App\Http\Controllers\API\LoginApiController;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -17,3 +18,19 @@ use Illuminate\Support\Facades\Route;
|
|||||||
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
||||||
return $request->user();
|
return $request->user();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::group(
|
||||||
|
[
|
||||||
|
'middleware' => 'api',
|
||||||
|
'prefix' => 'auth',
|
||||||
|
],
|
||||||
|
function ($router) {
|
||||||
|
Route::post('login', [LoginApiController::class,'login']);
|
||||||
|
Route::post('logout', [LoginApiController::class,'logout']);
|
||||||
|
Route::post('refresh', [LoginApiController::class,'refresh']);
|
||||||
|
Route::post('me', [LoginApiController::class,'me']);
|
||||||
|
Route::post('register',[LoginApiController::class,'register']);
|
||||||
|
Route::post('hai',[LoginApiController::class,'hai']);
|
||||||
|
// Route::post('status',[LoginApiController::class,'check']);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
@ -12,6 +12,7 @@ use App\Models\User;
|
|||||||
use App\Http\Controllers\Admin\UserController;
|
use App\Http\Controllers\Admin\UserController;
|
||||||
use App\Http\Controllers\Admin\SettingController;
|
use App\Http\Controllers\Admin\SettingController;
|
||||||
use App\Http\Controllers\Admin\TransactionController;
|
use App\Http\Controllers\Admin\TransactionController;
|
||||||
|
use App\Http\Controllers\Login\LoginController;
|
||||||
|
|
||||||
// use Illuminate\Foundation\Auth\User;
|
// use Illuminate\Foundation\Auth\User;
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ Route::get('/welcome', function () {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
Route::get('/', function () {
|
Route::get('/', function () {
|
||||||
return view('index',[
|
return view('admin.index',[
|
||||||
'name'=>'Jilhan Haura',
|
'name'=>'Jilhan Haura',
|
||||||
"transaction"=>Transactions::allTransactions()
|
"transaction"=>Transactions::allTransactions()
|
||||||
]);
|
]);
|
||||||
@ -101,10 +102,32 @@ Route::get('/profile',function() {
|
|||||||
// ]);
|
// ]);
|
||||||
// });
|
// });
|
||||||
|
|
||||||
Route::resource('user', UserController::class);
|
|
||||||
|
|
||||||
Route::resource('transaction', TransactionController::class);
|
Route::resource('/',LoginController::class);
|
||||||
|
|
||||||
Route::resource('setting',SettingController::class);
|
|
||||||
|
|
||||||
Route::resource('refund',RefundController::class);
|
|
||||||
|
// Login, logout dan register
|
||||||
|
|
||||||
|
|
||||||
|
// admin dan user
|
||||||
|
Route::middleware(['auth'])->group(function(){
|
||||||
|
Route::prefix('admin')->group(function(){
|
||||||
|
// Tampilan dashboard admin beserta perhitungan
|
||||||
|
// Tampilan, aprove atau deny dan hapus user
|
||||||
|
Route::resource('user', UserController::class);
|
||||||
|
// Tampilan transaksi
|
||||||
|
Route::resource('transaction', TransactionController::class);
|
||||||
|
// Tampilan, approve atau deny dan hapus refund
|
||||||
|
Route::resource('refund',RefundController::class);
|
||||||
|
// Tampilan, tambah, ubah dan hapus kebijakan persentase perusahaan
|
||||||
|
Route::resource('setting',SettingController::class);
|
||||||
|
});
|
||||||
|
Route::prefix('user')->group(function(){
|
||||||
|
// Tampilan dashboard user beserta perhitungan
|
||||||
|
// Tampilan, tambah dan hapus kontak
|
||||||
|
// Tampilan transaksi, bayar, update status pengiriman dan refund
|
||||||
|
// Tampilan refund
|
||||||
|
// Tampilan
|
||||||
|
});
|
||||||
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user