Menambahkan Kontroller setting dan update user
@ -12,29 +12,28 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
|
|
||||||
class AdminDashboardController extends Controller
|
class AdminDashboardController extends Controller
|
||||||
{
|
{
|
||||||
public function index(){
|
public function index()
|
||||||
|
{
|
||||||
$sumSettlement = 0;
|
$sumSettlement = 0;
|
||||||
$sumCancelled = 0;
|
$sumCancelled = 0;
|
||||||
$sumRefund = 0;
|
$sumRefund = 0;
|
||||||
$currentYear = Carbon::now()->year;
|
$currentYear = Carbon::now()->year;
|
||||||
$dataChartTransaction = [];
|
$dataChartTransaction = [];
|
||||||
$dataChartRefund = [];
|
$dataChartRefund = [];
|
||||||
for($bulan = 1; $bulan <= 12; $bulan++){
|
for ($bulan = 1; $bulan <= 12; $bulan++) {
|
||||||
$transaction = Transaction::whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total_bayar');
|
$transaction = Transaction::whereMonth('created_at', $bulan)
|
||||||
|
->whereYear('created_at', $currentYear)
|
||||||
|
->sum('total_bayar');
|
||||||
// $transaction = Transaction::where('status','finished')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total_bayar');
|
// $transaction = Transaction::where('status','finished')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total_bayar');
|
||||||
// $refund = Refund::whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total');
|
// $refund = Refund::whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total');
|
||||||
// $refund = Refund::where('status','Partial Refund')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total');
|
// $refund = Refund::where('status','Partial Refund')->whereMonth('created_at',$bulan)->whereYear('created_at', $currentYear)->sum('total');
|
||||||
$dataChartTransaction[] = intval($transaction);
|
$dataChartTransaction[] = intval($transaction);
|
||||||
// $dataChartRefund[] = intval($refund);
|
// $dataChartRefund[] = intval($refund);
|
||||||
}
|
}
|
||||||
return view('admin.index',[
|
return view('admin.index', [
|
||||||
"transaction"=>Transactions::allTransactions(),
|
'transaction' => Transactions::allTransactions(),
|
||||||
"dataChartTransaction" => $dataChartTransaction,
|
'dataChartTransaction' => $dataChartTransaction,
|
||||||
// "dataChartRefund" => $dataChartRefund
|
// "dataChartRefund" => $dataChartRefund
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function profile(){
|
|
||||||
return view('admin.profile.index');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin;
|
|||||||
use App\Models\Refund;
|
use App\Models\Refund;
|
||||||
use App\Models\Refunds;
|
use App\Models\Refunds;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\RefundDescription;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class AdminRefundController extends Controller
|
class AdminRefundController extends Controller
|
||||||
@ -14,60 +15,33 @@ class AdminRefundController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
// $refundData = Refund::all();
|
|
||||||
// return view('Admin.refund.history-refund', ['history_refund' => $refundData]);
|
|
||||||
return view('admin.refund.index',[
|
return view('admin.refund.index',[
|
||||||
"refunds" => Refunds::HistoryRefund()
|
"refunds" => Refund::latest()->get()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
* Display the specified resource.
|
||||||
*/
|
*/
|
||||||
public function show(Refund $refund)
|
public function show($id)
|
||||||
{
|
{
|
||||||
|
$refund = Refund::find($id);
|
||||||
|
$refundDescription = RefundDescription::where($id)->get();
|
||||||
return view('admin.refund.detail-refund',[
|
return view('admin.refund.detail-refund',[
|
||||||
"detail_refund"=> Refunds::DetailRefund()
|
"refund"=> $refund,
|
||||||
|
'descriptions' => $refundDescription
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function aprroveRefund($id){
|
||||||
* Show the form for editing the specified resource.
|
$query = Refund::where('id',$id)->update([
|
||||||
*/
|
|
||||||
public function edit(Refund $refund)
|
]);
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function denyRefund($id){
|
||||||
* Update the specified resource in storage.
|
$query = Refund::where('id',$id)->update([
|
||||||
*/
|
|
||||||
public function update(Request $request, Refund $refund)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
]);
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(Refund $refund)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,9 @@ namespace App\Http\Controllers\Admin;
|
|||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Throwable;
|
||||||
|
|
||||||
class AdminSettingController extends Controller
|
class AdminSettingController extends Controller
|
||||||
{
|
{
|
||||||
@ -24,39 +27,31 @@ class AdminSettingController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
// dd($request->persentase);
|
try{
|
||||||
[$tahun, $bulan] = explode('-', $request->bulan_tahun);
|
DB::beginTransaction();
|
||||||
Setting::create([
|
Setting::updateOrCreate(
|
||||||
'bulan' => $bulan,
|
['bulan' => $request->bulan, 'tahun' => $request->tahun],
|
||||||
'tahun' => $tahun,
|
['persentase' => $request->persentase]
|
||||||
'persentase' => $request->persentase,
|
);
|
||||||
'status' => 'Active',
|
DB::commit();
|
||||||
]);
|
|
||||||
return redirect()->route('admin-setting.index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
return response()->json(['status' => true, 'message' => 'Berhasil menambah']);
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
}catch(Throwable $e){
|
||||||
public function show(Setting $setting)
|
DB::rollBack();
|
||||||
{
|
|
||||||
//
|
Log::error($e->getMessage());
|
||||||
}
|
|
||||||
|
return response()->json(['status' => false, 'message' => 'Terjadi Kesalahan pada sisi server']);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit(Setting $setting)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, $id)
|
public function activeSetting($id)
|
||||||
{
|
{
|
||||||
// dd($setting['status'] );
|
|
||||||
$setting = Setting::findOrFail($id);
|
$setting = Setting::findOrFail($id);
|
||||||
if ($setting->status == 'Active') {
|
if ($setting->status == 'Active') {
|
||||||
$setting->status = 'Nonactive';
|
$setting->status = 'Nonactive';
|
||||||
@ -87,15 +82,5 @@ class AdminSettingController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return response()->json($id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(Setting $setting)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
namespace App\Http\Controllers\Admin;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
use App\Models\Transaction;
|
use App\Models\Transaction;
|
||||||
use App\Models\Transactions;
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@ -19,53 +18,13 @@ class AdminTransactionController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
* Display the specified resource.
|
||||||
*/
|
*/
|
||||||
public function show(transaction $transaction)
|
public function show(Transaction $transaction)
|
||||||
{
|
{
|
||||||
return view('admin.transaction.detail-transaction',[
|
return view('admin.transaction.detail-transaction',[
|
||||||
'detail_transaction' => Transactions::allDetailTransactions()
|
'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)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -13,10 +13,6 @@ class AdminUserController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
// $users = User::where('role', 'User')
|
|
||||||
// ->orderByRaw("FIELD(status, 'Progress', 'Finished', 'Rejected') ASC")
|
|
||||||
// ->latest()
|
|
||||||
// ->get();
|
|
||||||
$users = User::where('role', 'User')
|
$users = User::where('role', 'User')
|
||||||
->orderByRaw("CASE WHEN status = 'Progress' THEN 1 WHEN status = 'Finished' THEN 2 WHEN status = 'Rejected' THEN 3 ELSE 4 END ASC")
|
->orderByRaw("CASE WHEN status = 'Progress' THEN 1 WHEN status = 'Finished' THEN 2 WHEN status = 'Rejected' THEN 3 ELSE 4 END ASC")
|
||||||
->latest()
|
->latest()
|
||||||
@ -24,22 +20,6 @@ class AdminUserController extends Controller
|
|||||||
return view('admin.users.index', ['users' => $users]);
|
return view('admin.users.index', ['users' => $users]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
* Display the specified resource.
|
||||||
*/
|
*/
|
||||||
@ -49,25 +29,6 @@ class AdminUserController extends Controller
|
|||||||
return view('admin.users.detail-user', ['user' => $user]);
|
return view('admin.users.detail-user', ['user' => $user]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit(User $user)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
return response()->json([
|
|
||||||
'user' => $request,
|
|
||||||
'id' => $id,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*/
|
*/
|
||||||
|
@ -22,16 +22,6 @@ use Ramsey\Uuid\Uuid;
|
|||||||
|
|
||||||
class LoginController extends Controller
|
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()
|
public function login()
|
||||||
{
|
{
|
||||||
return view('index');
|
return view('index');
|
||||||
@ -44,7 +34,6 @@ class LoginController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function authenticate(Request $request)
|
public function authenticate(Request $request)
|
||||||
{
|
{
|
||||||
// dd($request);
|
|
||||||
$credentials = $request->validate(
|
$credentials = $request->validate(
|
||||||
[
|
[
|
||||||
'email' => ['required', 'email'],
|
'email' => ['required', 'email'],
|
||||||
@ -62,7 +51,6 @@ class LoginController extends Controller
|
|||||||
if (Auth::user()->status == 'Finished') {
|
if (Auth::user()->status == 'Finished') {
|
||||||
$request->session()->regenerate();
|
$request->session()->regenerate();
|
||||||
if (ucwords(Auth::user()->role) == 'Admin') {
|
if (ucwords(Auth::user()->role) == 'Admin') {
|
||||||
// return redirect()->route('admin.index');
|
|
||||||
return redirect()->intended('admin');
|
return redirect()->intended('admin');
|
||||||
} else {
|
} else {
|
||||||
return redirect()->intended('user');
|
return redirect()->intended('user');
|
||||||
@ -74,16 +62,12 @@ class LoginController extends Controller
|
|||||||
Session::flash('message', 'Akun tidak ditemukan atau sedang dalam pengajuan');
|
Session::flash('message', 'Akun tidak ditemukan atau sedang dalam pengajuan');
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
}
|
}else{
|
||||||
|
return redirect()
|
||||||
// $error = $credentials->errors();
|
|
||||||
// ->withInput($request->except('key'))
|
|
||||||
// ->withErrors($validator)
|
|
||||||
|
|
||||||
return redirect()
|
|
||||||
->back()
|
->back()
|
||||||
->withErrors($credentials)
|
->withErrors($credentials)
|
||||||
->onlyInput('email');
|
->onlyInput('email');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -221,7 +205,7 @@ class LoginController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function statusAkun($email)
|
public function accountStatus($email)
|
||||||
{
|
{
|
||||||
$result = User::where('email', $email)->get();
|
$result = User::where('email', $email)->get();
|
||||||
if ($result->isNotEmpty()) {
|
if ($result->isNotEmpty()) {
|
||||||
@ -237,14 +221,14 @@ class LoginController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function cariProvinsi()
|
public function searchProvince()
|
||||||
{
|
{
|
||||||
$data = Province::where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')->paginate(10);
|
$data = Province::where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')->paginate(10);
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function cariKota($code)
|
public function searchCity($code)
|
||||||
{
|
{
|
||||||
$data = City::where('province_code', $code)
|
$data = City::where('province_code', $code)
|
||||||
->where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')
|
->where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')
|
||||||
@ -253,7 +237,7 @@ class LoginController extends Controller
|
|||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function cariKecamatan($code)
|
public function searchDistrict($code)
|
||||||
{
|
{
|
||||||
$data = District::where('city_code', $code)
|
$data = District::where('city_code', $code)
|
||||||
->where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')
|
->where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')
|
||||||
@ -262,7 +246,7 @@ class LoginController extends Controller
|
|||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function cariKelurahan($code)
|
public function searchVillage($code)
|
||||||
{
|
{
|
||||||
$data = Village::where('district_code', $code)
|
$data = Village::where('district_code', $code)
|
||||||
->where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')
|
->where('name', 'LIKE', '%' . strtoupper(request('q')) . '%')
|
||||||
@ -271,7 +255,7 @@ class LoginController extends Controller
|
|||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function kirimKodeVerifikasi(Request $request)
|
public function sendVerificationCode(Request $request)
|
||||||
{
|
{
|
||||||
$email = $request->get('email');
|
$email = $request->get('email');
|
||||||
$code = $request->get('code');
|
$code = $request->get('code');
|
||||||
|
59
app/Http/Controllers/Profile/ProfileController.php
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Profile;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Throwable;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class ProfileController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function profile(){
|
||||||
|
return view('user.profile.index', ['user' => Auth::user()]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request){
|
||||||
|
$nama_depan = $request->nama_depan;
|
||||||
|
$nama_belakang = $request->nama_belakang;
|
||||||
|
$nohp = $request->nohp;
|
||||||
|
$kode_kelurahan = $request->kelurahan;
|
||||||
|
$alamat = $request->alamat;
|
||||||
|
$nama_bank = $request->nama_bank;
|
||||||
|
$no_rek = $request->no_rek;
|
||||||
|
$foto_profile = '';
|
||||||
|
if($request->hasFile('foto_profile')){
|
||||||
|
$file = $request->file('foto_profile');
|
||||||
|
$extension = $file->getClientOriginalExtension();
|
||||||
|
$foto_profile = 'Foto-Profil-'.$nama_depan.' '.$nama_belakang.'.'.$extension;
|
||||||
|
$file->storeAs('storage/foto-profile/'.$foto_profile);
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
DB::beginTransaction();
|
||||||
|
|
||||||
|
User::where('id', Auth::user()->id)->update([
|
||||||
|
'nama_depan' => $nama_depan,
|
||||||
|
'nama_belakang' => $nama_belakang,
|
||||||
|
'nohp' => $nohp,
|
||||||
|
'kode_kelurahan' => $kode_kelurahan,
|
||||||
|
'alamat' => $alamat,
|
||||||
|
'nama_bank' => $nama_bank,
|
||||||
|
'no_rek' => $no_rek,
|
||||||
|
'foto_profile' => $foto_profile,
|
||||||
|
]);
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
}catch(Throwable $e){
|
||||||
|
DB::rollBack();
|
||||||
|
|
||||||
|
Log::error($e->getMessage());
|
||||||
|
|
||||||
|
return response()->json(['status' => false, 'message' => 'Terjadi Kesalahan pada sisi server']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -18,7 +18,6 @@ class UserContactController extends Controller
|
|||||||
{
|
{
|
||||||
$contacts = Contact::where('pemilik_kontak', Auth::user()->email)->get();
|
$contacts = Contact::where('pemilik_kontak', Auth::user()->email)->get();
|
||||||
return view('user.contact.index', ['contacts' => $contacts]);
|
return view('user.contact.index', ['contacts' => $contacts]);
|
||||||
// dd($contacts);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getContact()
|
public function getContact()
|
||||||
@ -31,14 +30,6 @@ class UserContactController extends Controller
|
|||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store a newly created resource in storage.
|
* Store a newly created resource in storage.
|
||||||
*/
|
*/
|
||||||
@ -70,33 +61,10 @@ class UserContactController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Contact $contact)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit(Contact $contact)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(Request $request, Contact $contact)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*/
|
*/
|
||||||
public function destroy(Contact $contact, $id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$result = Contact::destroy($id);
|
$result = Contact::destroy($id);
|
||||||
@ -121,7 +89,7 @@ class UserContactController extends Controller
|
|||||||
|
|
||||||
public function cekEmail($email)
|
public function cekEmail($email)
|
||||||
{
|
{
|
||||||
$result = User::where('email', $email)->get();
|
$result = User::where('email', $email)->first();
|
||||||
if ($result->isNotEmpty() && $result[0]->role == 'User' && $result[0]->status != 'Rejected') {
|
if ($result->isNotEmpty() && $result[0]->role == 'User' && $result[0]->status != 'Rejected') {
|
||||||
if ($result[0]->status == 'Finished') {
|
if ($result[0]->status == 'Finished') {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
|
@ -5,16 +5,16 @@ namespace App\Http\Controllers\User;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\RefundUser;
|
use App\Models\RefundUser;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Throwable;
|
||||||
|
|
||||||
class UserDashboardController extends Controller
|
class UserDashboardController extends Controller
|
||||||
{
|
{
|
||||||
public function index(){
|
public function index(){
|
||||||
return view('user.index',[
|
return view('user.index',[
|
||||||
"refundUserss"=>RefundUser::HistoryRefundUser()
|
"refundUserss"=>RefundUser::HistoryRefundUser(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function profile(){
|
|
||||||
return view('user.profile.index');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -5,26 +5,83 @@ namespace App\Http\Controllers\User;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\RefundUser;
|
use App\Models\RefundUser;
|
||||||
|
use App\Models\Refund;
|
||||||
|
use App\Models\RefundDescription;
|
||||||
|
use App\Models\Transaction;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Throwable;
|
||||||
|
|
||||||
class UserRefundController extends Controller
|
class UserRefundController extends Controller
|
||||||
{
|
{
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
return view('user.refund.index', [
|
return view('user.refund.index', [
|
||||||
'name' => 'npannisa',
|
'refunds' => Refund::where()
|
||||||
'refundUserss' => RefundUser::HistoryRefundUser(),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create(Request $request)
|
public function create($id)
|
||||||
{
|
{
|
||||||
return view('user.refund.new-refund');
|
return view('user.refund.new-refund',['id' => $id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function historyRefund($id){
|
public function store(Request $request, $id){
|
||||||
return view('user.transaction.pembeli.history-refund',[
|
try{
|
||||||
'name'=>'npannisa',
|
DB::beginTransaction();
|
||||||
"refundUserss"=>RefundUser::HistoryRefundUser()
|
|
||||||
|
$transaction = Transaction::where('id',$id)->first();
|
||||||
|
|
||||||
|
$refund = Refund::create([
|
||||||
|
'transaction_id' => $id,
|
||||||
|
'total' => $transaction->harga,
|
||||||
|
'due_date' => $transaction,
|
||||||
|
'complain' => $request->complain
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($request->hasFile('files')) {
|
||||||
|
$files = $request->file('files');
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$filename = $file->getClientOriginalName();
|
||||||
|
$mime = $file->getClientMimeType();
|
||||||
|
if (strpos($mime, 'image') !== false) {
|
||||||
|
$type = 'Image';
|
||||||
|
$file->storeAs('public/refund-image/', $filename);
|
||||||
|
} elseif (strpos($mime, 'video') !== false) {
|
||||||
|
$type = 'Video';
|
||||||
|
$file->storeAs('public/refund-video/', $filename);
|
||||||
|
} else {
|
||||||
|
$type = 'Other';
|
||||||
|
}
|
||||||
|
|
||||||
|
RefundDescription::create([
|
||||||
|
'refund_id' => $refund->id,
|
||||||
|
'filename' => $filename,
|
||||||
|
'type' => $type
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
}catch(Throwable $e){
|
||||||
|
DB::rollback();
|
||||||
|
|
||||||
|
Log::error($e->getMessage());
|
||||||
|
|
||||||
|
return response()->json(['success' => false, 'message' => 'Terjadi Kesalahan pada sisi server']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show($id){
|
||||||
|
$refund = Refund::find($id);
|
||||||
|
$refundDescription = RefundDescription::where($id)->get();
|
||||||
|
return view('admin.refund.detail-refund',[
|
||||||
|
"refund"=> $refund,
|
||||||
|
'descriptions' => $refundDescription
|
||||||
|
]);
|
||||||
|
return view('user.refund.history-refund',[
|
||||||
|
'refund' => $refund,
|
||||||
|
'descriptions' => $refundDescription
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,9 @@ namespace App\Http\Controllers\User;
|
|||||||
use App\Models\Transaction;
|
use App\Models\Transaction;
|
||||||
use App\Models\TransactionDescription;
|
use App\Models\TransactionDescription;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Contact;
|
||||||
|
use App\Models\Refund;
|
||||||
|
use App\Models\RefundDescription;
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\TransactionUser;
|
use App\Models\TransactionUser;
|
||||||
@ -57,24 +60,20 @@ class UserTransactionController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function detailTransaction($id)
|
public function show($id)
|
||||||
{
|
{
|
||||||
return view('user.transaction.pembeli.detail-transaction', [
|
return view('user.transaction.pembeli.detail-transaction', [
|
||||||
'transaction' => Transaction::findOrFail($id),
|
'transaction' => Transaction::findOrFail($id),
|
||||||
'trackings' => TransactionDescription::where('order_id', $id)->get(),
|
'trackings' => TransactionDescription::where('order_id', $id)
|
||||||
|
->latest()
|
||||||
|
->get(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// $transaction = Transaction::findOrFail($id);
|
|
||||||
|
|
||||||
// var_dump($transaction->metode_pembayaran == 'qris');
|
|
||||||
|
|
||||||
// dd(Transaction::findOrFail($id));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for creating a new resource.
|
* Show the form for creating a new resource.
|
||||||
*/
|
*/
|
||||||
public function createTransaction()
|
public function create()
|
||||||
{
|
{
|
||||||
$now = Carbon::now();
|
$now = Carbon::now();
|
||||||
$bulan = $now->format('F');
|
$bulan = $now->format('F');
|
||||||
@ -99,12 +98,11 @@ class UserTransactionController extends Controller
|
|||||||
public function invoiceTransaction($id)
|
public function invoiceTransaction($id)
|
||||||
{
|
{
|
||||||
return view('user.transaction.pembeli.invoice-transaction', [
|
return view('user.transaction.pembeli.invoice-transaction', [
|
||||||
'name' => 'npannisa',
|
|
||||||
'TransactionUser' => TransactionUser::HistoryTransaction(),
|
'TransactionUser' => TransactionUser::HistoryTransaction(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function storeTransaction(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$pembeli = Auth::user()->email;
|
$pembeli = Auth::user()->email;
|
||||||
$penjual = $request->get('email_penjual');
|
$penjual = $request->get('email_penjual');
|
||||||
@ -131,7 +129,7 @@ class UserTransactionController extends Controller
|
|||||||
|
|
||||||
$batas_pembayaran = $now->addDays(1)->toDateTimeString();
|
$batas_pembayaran = $now->addDays(1)->toDateTimeString();
|
||||||
$batas_pengiriman_barang_awal = $now->addDays(2)->toDateTimeString();
|
$batas_pengiriman_barang_awal = $now->addDays(2)->toDateTimeString();
|
||||||
$batas_pengiriman_barang_akhir = $now->addDays(5)->toDateTimeString();
|
$batas_pengiriman_barang_akhir = $now->addDays(4)->toDateTimeString();
|
||||||
|
|
||||||
$params = [
|
$params = [
|
||||||
'transaction_details' => [
|
'transaction_details' => [
|
||||||
@ -168,18 +166,21 @@ class UserTransactionController extends Controller
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
'callbacks' => [
|
'callbacks' => [
|
||||||
'finish' => 'http://127.0.0.1:8000/user/user-transaction-pembeli/',
|
'finish' => route('user-transaction.index.pembeli'),
|
||||||
|
],
|
||||||
|
'enabled_payments' => [
|
||||||
|
'credit_card', 'gopay', 'shopeepay'
|
||||||
],
|
],
|
||||||
'expiry' => [
|
'expiry' => [
|
||||||
'start_time' => $now->format('Y-m-d H:i:s P'),
|
'start_time' => $now->format('Y-m-d H:i:s P'),
|
||||||
'unit' => 'hours',
|
'unit' => 'days',
|
||||||
'duration' => 24,
|
'duration' => 1,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
$snap_token = Snap::getSnapToken($params);
|
$snap_token = Snap::getSnapToken($params);
|
||||||
$token = $snap_token;
|
$token = $snap_token;
|
||||||
$status = 'pending';
|
$status = 'created';
|
||||||
$query = Transaction::create([
|
$query = Transaction::create([
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'pembeli' => $pembeli,
|
'pembeli' => $pembeli,
|
||||||
@ -201,8 +202,18 @@ class UserTransactionController extends Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
if ($query) {
|
if ($query) {
|
||||||
|
$contact = Contact::where('pemilik_kontak', $pembeli)
|
||||||
|
->where('relasi_kontak', $penjual)
|
||||||
|
->count();
|
||||||
|
if ($contact == 0) {
|
||||||
|
Contact::create([
|
||||||
|
'pemilik_kontak' => $pembeli,
|
||||||
|
'relasi_kontak' => $penjual,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
TransactionDescription::create([
|
TransactionDescription::create([
|
||||||
'order_id' => $id,
|
'transaction_id' => $id,
|
||||||
'status' => $status,
|
'status' => $status,
|
||||||
'user' => $pembeli,
|
'user' => $pembeli,
|
||||||
'judul' => 'fa fa-plus',
|
'judul' => 'fa fa-plus',
|
||||||
@ -221,106 +232,115 @@ class UserTransactionController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateStatusTransaction(Request $request)
|
public function acceptTransaction($id)
|
||||||
{
|
{
|
||||||
}
|
|
||||||
|
|
||||||
public function acceptTransaction(Request $request)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function paymentTransaction($id)
|
|
||||||
{
|
|
||||||
// Membuat objek Google Translate
|
|
||||||
$translator = new GoogleTranslate();
|
|
||||||
|
|
||||||
// Mengatur bahasa sumber (Inggris) dan bahasa target (Indonesia)
|
|
||||||
$translator->setSource('en');
|
|
||||||
$translator->setTarget('id');
|
|
||||||
|
|
||||||
// Config::$serverKey = 'SB-Mid-server-8rydZAwKoWuoQ6g_3ot0-K7p';
|
|
||||||
// Config::$isProduction = false;
|
|
||||||
// // Set sanitization on (default)
|
|
||||||
// Config::$isSanitized = true;
|
|
||||||
// // Set 3DS transaction for credit card to true
|
|
||||||
// Config::$is3ds = true;
|
|
||||||
|
|
||||||
$payment = Trans::status($id);
|
|
||||||
$result = json_decode(json_encode($payment), true);
|
|
||||||
return response()->json([
|
|
||||||
'status' => true,
|
|
||||||
'message' => $result,
|
|
||||||
]);
|
|
||||||
$query = Transaction::where('id', $id)->update([
|
$query = Transaction::where('id', $id)->update([
|
||||||
'currency' => $result['currency'],
|
'status' => 'process',
|
||||||
'merchant_id' => $result['merchant_id'],
|
|
||||||
'metode_pembayaran' => $result['payment_type'],
|
|
||||||
'tanggal_transaksi' => $result['transaction_time'],
|
|
||||||
'signature_key' => $result['signature_key'],
|
|
||||||
'status' => $result['transaction_status'],
|
|
||||||
'status_code' => $result['status_code'],
|
|
||||||
'status_message' => $result['status_message'],
|
|
||||||
'fraud_status' => $result['fraud_status'],
|
|
||||||
]);
|
]);
|
||||||
if ($query) {
|
if ($query) {
|
||||||
TransactionDescription::create([
|
TransactionDescription::create([
|
||||||
'order_id' => $id,
|
'transaction_id' => $id,
|
||||||
'status' => $result['transaction_status'],
|
'status' => 'process',
|
||||||
|
'background' => 'bg-seller',
|
||||||
'user' => Auth::user()->email,
|
'user' => Auth::user()->email,
|
||||||
'judul' => 'fa fa-plus',
|
'judul' => 'fas fa-handshake',
|
||||||
'background' => 'bg-buyer',
|
'deskripsi' => 'Transaksi telah diterima oleh ' . Auth::user()->nama_depan,
|
||||||
'deskripsi' => Auth::user()->nama_depan . ' telah membayar menggunakan ' . $result['payment_type'] . ' ' . $result['acquirer'].'. '.$translator->translate($result['status_message']),
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => true,
|
'status' => true,
|
||||||
'message' => 'Pembayaran sukses. Proses akan dilanjutkan ke penjual',
|
'message' => 'Transaksi telah diterima. Siapkan pesanan untuk dikirim ke penjual.',
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => false,
|
'status' => false,
|
||||||
'message' => 'Pembayaran gagal',
|
'message' => 'Gagal update status karena kesalahan server.',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function sendingOrder($id)
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(Transaction $transaction)
|
|
||||||
{
|
{
|
||||||
//
|
$query = Transaction::where('id', $id)->update([
|
||||||
|
'status' => 'sending',
|
||||||
|
]);
|
||||||
|
if ($query) {
|
||||||
|
TransactionDescription::create([
|
||||||
|
'transaction_id' => $id,
|
||||||
|
'status' => 'sending',
|
||||||
|
'background' => 'bg-seller',
|
||||||
|
'user' => Auth::user()->email,
|
||||||
|
'judul' => 'fas fa-truck-moving',
|
||||||
|
'deskripsi' => 'Pesanan telah dikirim oleh ' . Auth::user()->nama_depan . ' dan sedang dalam perjalanan menuju pembeli.',
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Pesanan sedang dikirim dan menuju pembeli.',
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Gagal update status karena kesalahan server.',
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function sentOrder($id)
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit(Transaction $transaction)
|
|
||||||
{
|
{
|
||||||
//
|
$query = Transaction::where('id', $id)->update([
|
||||||
|
'status' => 'sended',
|
||||||
|
]);
|
||||||
|
if ($query) {
|
||||||
|
TransactionDescription::create([
|
||||||
|
'transaction_id' => $id,
|
||||||
|
'status' => 'sended',
|
||||||
|
'background' => 'bg-seller',
|
||||||
|
'user' => Auth::user()->email,
|
||||||
|
'judul' => 'fas fa-check',
|
||||||
|
'deskripsi' => 'Pesanan telah sampai di tempat pembeli.',
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Pesanan telah sampai di tempat pembeli.',
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Gagal update status karena kesalahan server.',
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function finishTransaction($id)
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(Request $request, Transaction $transaction)
|
|
||||||
{
|
{
|
||||||
//
|
$query = Transaction::where('id', $id)->update([
|
||||||
|
'status' => 'finished',
|
||||||
|
]);
|
||||||
|
if ($query) {
|
||||||
|
TransactionDescription::create([
|
||||||
|
'transaction_id' => $id,
|
||||||
|
'status' => 'sended',
|
||||||
|
'background' => 'bg-buyer',
|
||||||
|
'user' => Auth::user()->email,
|
||||||
|
'judul' => 'fas fa-check',
|
||||||
|
'deskripsi' => 'Pesanan telah sampai di tempat pembeli.',
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Pesanan telah sampai di tempat pembeli.',
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Gagal update status karena kesalahan server.',
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function payTransaction($id)
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(Transaction $transaction)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
public function cancelTransaction(){
|
|
||||||
$cancel = \Midtrans\Transaction::cancel('005d662f-eaf2-45aa-8789-b5da82a8948d');
|
|
||||||
var_dump($cancel); // Hasilnya 200 atau kode
|
|
||||||
}
|
|
||||||
|
|
||||||
public function translate()
|
|
||||||
{
|
{
|
||||||
// Membuat objek Google Translate
|
// Membuat objek Google Translate
|
||||||
$translator = new GoogleTranslate();
|
$translator = new GoogleTranslate();
|
||||||
@ -329,10 +349,140 @@ class UserTransactionController extends Controller
|
|||||||
$translator->setSource('en');
|
$translator->setSource('en');
|
||||||
$translator->setTarget('id');
|
$translator->setTarget('id');
|
||||||
|
|
||||||
// Menerjemahkan teks
|
$payment = Trans::status($id);
|
||||||
$translatedText = $translator->translate('Hello, world!');
|
$result = json_decode(json_encode($payment), true);
|
||||||
|
if (in_array($result['status_code'], ['200', '201', '202'])) {
|
||||||
|
$query = Transaction::where('id', $id)->update([
|
||||||
|
'currency' => $result['currency'],
|
||||||
|
'merchant_id' => $result['merchant_id'],
|
||||||
|
'metode_pembayaran' => $result['payment_type'],
|
||||||
|
'tanggal_transaksi' => $result['transaction_time'],
|
||||||
|
'signature_key' => $result['signature_key'],
|
||||||
|
'status' => $result['transaction_status'],
|
||||||
|
'fraud_status' => $result['fraud_status'],
|
||||||
|
]);
|
||||||
|
if ($query) {
|
||||||
|
if ($result['transaction_status'] == 'pending') {
|
||||||
|
TransactionDescription::create([
|
||||||
|
'transaction_id' => $id,
|
||||||
|
'status' => $result['transaction_status'],
|
||||||
|
'user' => Auth::user()->email,
|
||||||
|
'judul' => 'fas fa-clock',
|
||||||
|
'status_code' => $result['status_code'],
|
||||||
|
'background' => 'bg-buyer',
|
||||||
|
'deskripsi' => 'Pembayaran ditunda.',
|
||||||
|
]);
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Transaksi ditunda. Silahkan bayar nanti selama dalam waktu batas pembayaran.',
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
TransactionDescription::create([
|
||||||
|
'transaction_id' => $id,
|
||||||
|
'status' => $result['transaction_status'],
|
||||||
|
'user' => Auth::user()->email,
|
||||||
|
'judul' => 'fas fa-plus',
|
||||||
|
'status_code' => $result['status_code'],
|
||||||
|
'background' => 'bg-buyer',
|
||||||
|
'deskripsi' => Auth::user()->nama_depan . ' telah sukses melakukan pembayaran. Transaksi diteruskan ke penjual.',
|
||||||
|
]);
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Pembayaran sukses.',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Transaksi pembayaran gagal.',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
} elseif (in_array($result['status_code'], ['400', '401', '402', '403', '404', '405', '406', '407', '408', '409', '410', '411', '412', '413'])) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Terjadi kesalahan di server.',
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Transaksi pembayaran gagal',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Output hasil terjemahan
|
public function cancelTransaction($id)
|
||||||
echo $translatedText;
|
{
|
||||||
|
// Membuat objek Google Translate
|
||||||
|
$translator = new GoogleTranslate();
|
||||||
|
|
||||||
|
// Mengatur bahasa sumber (Inggris) dan bahasa target (Indonesia)
|
||||||
|
$translator->setSource('en');
|
||||||
|
$translator->setTarget('id');
|
||||||
|
|
||||||
|
$transaction = Transaction::where('id', $id)->first();
|
||||||
|
|
||||||
|
if ($transaction->status == 'created') {
|
||||||
|
$query = Transaction::where('id', $id)->update([
|
||||||
|
'status' => 'cancel',
|
||||||
|
]);
|
||||||
|
if ($query) {
|
||||||
|
TransactionDescription::create([
|
||||||
|
'transcation_id' => $id,
|
||||||
|
'status' => 'cancel',
|
||||||
|
'user' => Auth::user()->email,
|
||||||
|
'judul' => 'fas fa-exclamation',
|
||||||
|
'background' => 'bg-buyer',
|
||||||
|
'deskripsi' => 'Transaksi dibatalkan',
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Transaksi berhasil dibatal',
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Transaksi gagal dibatalkan',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$cancel = json_decode(json_encode(Trans::cancel($id)), true);
|
||||||
|
if ($cancel['status_code'] == '200') {
|
||||||
|
$query = Transaction::where('id', $id)->update([
|
||||||
|
'status' => $cancel['transaction_status'],
|
||||||
|
]);
|
||||||
|
if ($query) {
|
||||||
|
TransactionDescription::create([
|
||||||
|
'transaction_id' => $id,
|
||||||
|
'status' => $cancel['transaction_status'],
|
||||||
|
'user' => Auth::user()->email,
|
||||||
|
'judul' => 'fas fa-exclamation',
|
||||||
|
'status_code' => $cancel['status_code'],
|
||||||
|
'background' => 'bg-buyer',
|
||||||
|
'deskripsi' => $translator->translate($cancel['status_message']),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => $translator->translate($cancel['status_message']),
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => $translator->translate($cancel['status_message']),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
} elseif ($cancel['status_code'] == '412') {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => $translator->translate($cancel['status_message']),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function complainTransaction($id)
|
||||||
|
{
|
||||||
|
return view('user.refund.new-refund', compact('id'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,15 +15,15 @@ class Refund extends Model
|
|||||||
* @var array<int, string>
|
* @var array<int, string>
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'order_id',
|
'transaction_id',
|
||||||
'total',
|
'total',
|
||||||
'due_date',
|
'due_date',
|
||||||
'status',
|
'status',
|
||||||
];
|
];
|
||||||
|
|
||||||
//Relasi
|
//Relasi
|
||||||
public function orders(){
|
public function transaction(){
|
||||||
return $this->belongsTo(Transaction::class, 'id', 'order_id');
|
return $this->belongsTo(Transaction::class, 'id', 'transaction_id');
|
||||||
}
|
}
|
||||||
//Relasi
|
//Relasi
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,5 @@ class Setting extends Model
|
|||||||
'bulan',
|
'bulan',
|
||||||
'tahun',
|
'tahun',
|
||||||
'persentase',
|
'persentase',
|
||||||
'status',
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ class TransactionDescription extends Model
|
|||||||
'user',
|
'user',
|
||||||
'judul',
|
'judul',
|
||||||
'status',
|
'status',
|
||||||
|
'status_code',
|
||||||
'background',
|
'background',
|
||||||
'deskripsi'
|
'deskripsi'
|
||||||
];
|
];
|
||||||
|
@ -55,11 +55,11 @@ class Transaction extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function refunds(){
|
public function refunds(){
|
||||||
return $this->hasMany(Refund::class, 'order_id', 'id');
|
return $this->hasMany(Refund::class, 'transaction_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function transactionDescription(){
|
public function transactionDescription(){
|
||||||
return $this->hasMany(TransactionDescription::class, 'order_id', 'id');
|
return $this->hasMany(TransactionDescription::class, 'transaction_id', 'id');
|
||||||
}
|
}
|
||||||
//Relasi
|
//Relasi
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ class UserFactory extends Factory
|
|||||||
'nik' => $this->faker->nik($this->faker->randomElement(['male', 'female']),$this->faker->dateTimeBetween('-65 years', '-18 years')),
|
'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(),
|
||||||
'persentase_kemiripan' => random_int(0, 100).'%',
|
'persentase_kemiripan' => random_int(0, 100),
|
||||||
'status'=> $this->faker->randomElement(['Progress', 'Finished', 'Rejected']),
|
'status'=> $this->faker->randomElement(['Progress', 'Finished', 'Rejected']),
|
||||||
'gender' => $this->faker->randomElement(['Laki-laki', 'Perempuan']),
|
'gender' => $this->faker->randomElement(['Laki-laki', 'Perempuan']),
|
||||||
'kode_kelurahan' => '1101012002',
|
'kode_kelurahan' => '1101012002',
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
return new class extends Migration
|
return new class extends Migration
|
||||||
{
|
{
|
||||||
@ -12,7 +13,7 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::create('users', function (Blueprint $table) {
|
Schema::create('users', function (Blueprint $table) {
|
||||||
$table->uuid('id')->primary;
|
$table->uuid('id')->default(DB::raw('uuid_generate_v4()'))->primary();
|
||||||
$table->string('nama_depan',255);
|
$table->string('nama_depan',255);
|
||||||
$table->string('nama_belakang',255);
|
$table->string('nama_belakang',255);
|
||||||
$table->date('tanggal_lahir');
|
$table->date('tanggal_lahir');
|
||||||
@ -21,19 +22,22 @@ return new class extends Migration
|
|||||||
$table->string('password');
|
$table->string('password');
|
||||||
$table->enum('role',['Admin','User'])->default('User');
|
$table->enum('role',['Admin','User'])->default('User');
|
||||||
$table->string('nohp',20);
|
$table->string('nohp',20);
|
||||||
$table->string('nik',20);
|
$table->string('nik',20)->unique();
|
||||||
$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_wajah')->nullable();
|
||||||
$table->string('foto_profil')->nullable();
|
$table->string('foto_profil')->nullable();
|
||||||
$table->string('persentase_kemiripan')->nullable();
|
$table->integer('persentase_kemiripan')->nullable();
|
||||||
$table->enum('status',['Finished','Progress','Rejected'])->default('Progress');
|
$table->enum('status',['Finished','Progress','Rejected'])->default('Progress');
|
||||||
$table->string('gender',15);
|
$table->string('gender',15);
|
||||||
$table->char('kode_kelurahan',10);
|
$table->char('kode_kelurahan',10);
|
||||||
|
$table->string('no_rek')->nullable();
|
||||||
|
$table->string('nama_bank')->nullable();
|
||||||
$table->rememberToken();
|
$table->rememberToken();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
// $table->foreign('kode_kelurahan')->on('villages')->references('code');
|
$table->index('status');
|
||||||
|
$table->index('kode_kelurahan');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,9 @@ class CreateProvincesTable extends Migration
|
|||||||
$table->string('name', 255);
|
$table->string('name', 255);
|
||||||
$table->text('meta')->nullable();
|
$table->text('meta')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
|
$table->index('code');
|
||||||
|
$table->index('id');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,9 @@ class CreateCitiesTable extends Migration
|
|||||||
->references('code')
|
->references('code')
|
||||||
->on(config('laravolt.indonesia.table_prefix').'provinces')
|
->on(config('laravolt.indonesia.table_prefix').'provinces')
|
||||||
->onUpdate('cascade')->onDelete('restrict');
|
->onUpdate('cascade')->onDelete('restrict');
|
||||||
|
$table->index('id');
|
||||||
|
$table->index('code');
|
||||||
|
$table->index('province_code');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ class CreateDistrictsTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::create(config('laravolt.indonesia.table_prefix').'districts', function (Blueprint $table) {
|
Schema::create(config('laravolt.indonesia.table_prefix') . 'districts', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->char('code', 7)->unique();
|
$table->char('code', 7)->unique();
|
||||||
$table->char('city_code', 4);
|
$table->char('city_code', 4);
|
||||||
@ -21,10 +21,15 @@ class CreateDistrictsTable extends Migration
|
|||||||
$table->text('meta')->nullable();
|
$table->text('meta')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->foreign('city_code')
|
$table
|
||||||
|
->foreign('city_code')
|
||||||
->references('code')
|
->references('code')
|
||||||
->on(config('laravolt.indonesia.table_prefix').'cities')
|
->on(config('laravolt.indonesia.table_prefix') . 'cities')
|
||||||
->onUpdate('cascade')->onDelete('restrict');
|
->onUpdate('cascade')
|
||||||
|
->onDelete('restrict');
|
||||||
|
$table->index('id');
|
||||||
|
$table->index('code');
|
||||||
|
$table->index('city_code');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,6 +40,6 @@ class CreateDistrictsTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down()
|
public function down()
|
||||||
{
|
{
|
||||||
Schema::drop(config('laravolt.indonesia.table_prefix').'districts');
|
Schema::drop(config('laravolt.indonesia.table_prefix') . 'districts');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ class CreateVillagesTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::create(config('laravolt.indonesia.table_prefix').'villages', function (Blueprint $table) {
|
Schema::create(config('laravolt.indonesia.table_prefix') . 'villages', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->char('code', 10)->unique();
|
$table->char('code', 10)->unique();
|
||||||
$table->char('district_code', 7);
|
$table->char('district_code', 7);
|
||||||
@ -21,10 +21,15 @@ class CreateVillagesTable extends Migration
|
|||||||
$table->text('meta')->nullable();
|
$table->text('meta')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->foreign('district_code')
|
$table
|
||||||
|
->foreign('district_code')
|
||||||
->references('code')
|
->references('code')
|
||||||
->on(config('laravolt.indonesia.table_prefix').'districts')
|
->on(config('laravolt.indonesia.table_prefix') . 'districts')
|
||||||
->onUpdate('cascade')->onDelete('restrict');
|
->onUpdate('cascade')
|
||||||
|
->onDelete('restrict');
|
||||||
|
$table->index('id');
|
||||||
|
$table->index('code');
|
||||||
|
$table->index('district_code');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,6 +40,6 @@ class CreateVillagesTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down()
|
public function down()
|
||||||
{
|
{
|
||||||
Schema::drop(config('laravolt.indonesia.table_prefix').'villages');
|
Schema::drop(config('laravolt.indonesia.table_prefix') . 'villages');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,16 +30,19 @@ return new class extends Migration
|
|||||||
$table->char('currency',3)->nullable();
|
$table->char('currency',3)->nullable();
|
||||||
$table->string('fraud_status')->nullable();
|
$table->string('fraud_status')->nullable();
|
||||||
$table->string('merchant_id')->nullable();
|
$table->string('merchant_id')->nullable();
|
||||||
$table->string('status_code')->nullable();
|
$table->enum('status',['settlement','capture','pending','cancel','refund', 'expire','failure','process','sending','sended','finished','created'])->default('created'); // transaction_status
|
||||||
$table->string('status_message')->nullable();
|
|
||||||
$table->enum('status',['settlement','capture','pending','cancel','refund','expire','failure','progress','failed','sending','sended','finished'])->default('pending'); // transaction_status
|
|
||||||
$table->timestamp('batas_pembayaran');
|
$table->timestamp('batas_pembayaran');
|
||||||
$table->timestamp('batas_pengiriman_barang_awal');
|
$table->timestamp('batas_pengiriman_barang_awal');
|
||||||
$table->timestamp('batas_pengiriman_barang_akhir');
|
$table->timestamp('batas_pengiriman_barang_akhir');
|
||||||
$table->timestamp('tanggal_transaksi')->nullable();
|
$table->timestamp('tanggal_transaksi')->nullable();
|
||||||
|
$table->string('nama_bank_penjual');
|
||||||
|
$table->string('no_rek_penjual');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->foreign('pembeli')->on('users')->references('email');
|
$table->foreign('pembeli')->on('users')->references('email');
|
||||||
$table->foreign('penjual')->on('users')->references('email');
|
$table->foreign('penjual')->on('users')->references('email');
|
||||||
|
|
||||||
|
$table->index('id');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,13 +12,14 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::create('refunds', function (Blueprint $table) {
|
Schema::create('refunds', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->uuid('id')->primary();
|
||||||
$table->foreignUuid('order_id');
|
$table->foreignUuid('transaction_id');
|
||||||
$table->double('total',10);
|
$table->double('total',10);
|
||||||
$table->timestamp('due_date');
|
$table->timestamp('due_date');
|
||||||
$table->enum('status',['partial refund','deny','pending'])->default('Pending');
|
$table->enum('status',['partial refund','deny','pending'])->default('pending');
|
||||||
|
$table->text('complaint');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->foreign('order_id')->on('transactions')->references('id');
|
$table->foreign('transaction_id')->on('transactions')->references('id');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,11 +12,12 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::create('settings', function (Blueprint $table) {
|
Schema::create('settings', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->uuid('id')->primary();
|
||||||
$table->string('bulan',20);
|
$table->string('bulan',5);
|
||||||
$table->string('tahun',5);
|
$table->string('tahun',5);
|
||||||
$table->integer('persentase');
|
$table->float('persentase');
|
||||||
$table->enum('status',['Active', 'Nonactive']);
|
$table->enum('status',['Active', 'Nonactive'])->default('Active');
|
||||||
|
$table->unique(['bulan','tahun']);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::create('contacts', function (Blueprint $table) {
|
Schema::create('contacts', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->uuid('id')->primary();
|
||||||
$table->string('pemilik_kontak');
|
$table->string('pemilik_kontak');
|
||||||
$table->string('relasi_kontak');
|
$table->string('relasi_kontak');
|
||||||
$table->foreign('pemilik_kontak')->on('users')->references('email');
|
$table->foreign('pemilik_kontak')->on('users')->references('email');
|
||||||
|
@ -13,15 +13,17 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('transaction_descriptions', function (Blueprint $table) {
|
Schema::create('transaction_descriptions', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->foreignUuid('order_id');
|
$table->foreignUuid('transaction_id');
|
||||||
$table->string('status',15);
|
$table->string('status',15);
|
||||||
$table->string('user');
|
$table->string('user');
|
||||||
$table->string('background');
|
$table->string('background');
|
||||||
$table->string('judul');
|
$table->string('judul');
|
||||||
$table->string('deskripsi');
|
$table->string('deskripsi');
|
||||||
|
$table->string('status_code')->nullable();
|
||||||
|
$table->string('bukti_foto')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->foreign('order_id')->on('transactions')->references('id');
|
$table->foreign('transaction_id')->on('transactions')->references('id');
|
||||||
$table->foreign('user')->on('users')->references('email');
|
$table->foreign('user')->on('users')->references('email');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('refund_descriptions', function (Blueprint $table) {
|
Schema::create('refund_descriptions', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->foreignId('refund_id');
|
$table->foreignUuid('refund_id');
|
||||||
$table->string('filename');
|
$table->string('filename');
|
||||||
$table->string('type');
|
$table->string('type');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
@ -39,16 +39,17 @@ class DatabaseSeeder extends Seeder
|
|||||||
'alamat' => $faker->address,
|
'alamat' => $faker->address,
|
||||||
'nohp' => $faker->phoneNumber(),
|
'nohp' => $faker->phoneNumber(),
|
||||||
'status' => 'Finished',
|
'status' => 'Finished',
|
||||||
'persentase_kemiripan' => '100%',
|
'persentase_kemiripan' => 100,
|
||||||
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
|
'gender' => $faker->randomElement(['Laki-laki', 'Perempuan']),
|
||||||
'kode_kelurahan' => '1101012002',
|
'kode_kelurahan' => '1101012002',
|
||||||
]);
|
]);
|
||||||
User::factory(20)->create();
|
User::factory(20)->create();
|
||||||
|
|
||||||
$now = Carbon::now()->tz('Asia/Jakarta');
|
$now = Carbon::now()->tz('Asia/Jakarta');
|
||||||
$bulan = $now->format('F');
|
$bulan = $now->format('n');
|
||||||
$tahun = $now->year;
|
$tahun = $now->year;
|
||||||
Setting::create([
|
Setting::create([
|
||||||
|
'id' => Str::uuid(),
|
||||||
'bulan' => $bulan,
|
'bulan' => $bulan,
|
||||||
'tahun' => $tahun,
|
'tahun' => $tahun,
|
||||||
'persentase' => 5,
|
'persentase' => 5,
|
||||||
|
BIN
public/assets/audio/Renai Saiban_[Uwamono].mp3
Normal file
@ -242,7 +242,7 @@ select.form-control:not([size]):not([multiple]),
|
|||||||
.form-control:not(.form-control-sm):not(.form-control-lg) {
|
.form-control:not(.form-control-sm):not(.form-control-lg) {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
height: 42px;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
textarea.form-control {
|
textarea.form-control {
|
||||||
|
BIN
public/assets/img/metode_pembayaran/alfamart.png
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
public/assets/img/metode_pembayaran/bank_transfer.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
public/assets/img/metode_pembayaran/bca.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
public/assets/img/metode_pembayaran/bri.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
public/assets/img/metode_pembayaran/bri_epay.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
public/assets/img/metode_pembayaran/gopay.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
public/assets/img/metode_pembayaran/indomaret.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
public/assets/img/metode_pembayaran/mandiri.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
public/assets/img/metode_pembayaran/qris.png
Normal file
After Width: | Height: | Size: 27 KiB |
@ -55,3 +55,9 @@ $("#table-3").dataTable({
|
|||||||
columnDefs: [{ sortable: false, targets: [7] }],
|
columnDefs: [{ sortable: false, targets: [7] }],
|
||||||
searchable: true,
|
searchable: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Refund Admin
|
||||||
|
$("#table-4").dataTable({
|
||||||
|
columnDefs: [{ sortable: false, targets: [8] }],
|
||||||
|
searchable: true,
|
||||||
|
});
|
||||||
|
9
public/assets/js/progress_bar/progress_bar.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
var modal = document.getElementById("modalProgressBar");
|
||||||
|
|
||||||
|
function showLoading() {
|
||||||
|
$(modal).modal("show");
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideLoading() {
|
||||||
|
$(modal).modal("hide");
|
||||||
|
}
|
287
public/assets/js/user/new-transaction.js
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
$(document).ready(function () {
|
||||||
|
let totalHarga = 0;
|
||||||
|
let biayaAdmin = persentaseKeuntungan;
|
||||||
|
let totalBiayaAdmin = 0;
|
||||||
|
let totalBayar = 0;
|
||||||
|
|
||||||
|
function tampilTotalHarga(harga) {
|
||||||
|
let tampilTotalNominal = document.getElementById("totalBiaya");
|
||||||
|
let tampilTotalBiaya = document.getElementById("totalBayar");
|
||||||
|
let tampilTotalBiayaAdmin = document.getElementById("totalBiayaAdmin");
|
||||||
|
totalBiayaAdmin = (harga * biayaAdmin) / 100;
|
||||||
|
totalBayar = totalBiayaAdmin + harga;
|
||||||
|
tampilTotalNominal.innerHTML = harga.toLocaleString("id-ID", {
|
||||||
|
style: "currency",
|
||||||
|
currency: "IDR",
|
||||||
|
});
|
||||||
|
tampilTotalBiaya.innerHTML = totalBayar.toLocaleString("id-ID", {
|
||||||
|
style: "currency",
|
||||||
|
currency: "IDR",
|
||||||
|
});
|
||||||
|
tampilTotalBiayaAdmin.innerHTML = totalBiayaAdmin.toLocaleString(
|
||||||
|
"id-ID",
|
||||||
|
{
|
||||||
|
style: "currency",
|
||||||
|
currency: "IDR",
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#selectContact").select2({
|
||||||
|
placeholder: "Pilih Kontak",
|
||||||
|
ajax: {
|
||||||
|
url: "{{ route('user-contact.get') }}",
|
||||||
|
processResults: function ({ data }) {
|
||||||
|
return {
|
||||||
|
results: $.map(data, function (item) {
|
||||||
|
return {
|
||||||
|
id: item.relasi_kontak,
|
||||||
|
text: item.nama_depan + " " + item.nama_belakang,
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#hargaBarang").change(function () {
|
||||||
|
let harga = $(this).val();
|
||||||
|
let jumlah = $("#jumlahBarang").val();
|
||||||
|
let biaya = document.getElementById("totalBiaya");
|
||||||
|
if (harga.trim() != "") {
|
||||||
|
if (jumlah.trim() != "") {
|
||||||
|
totalHarga = harga * jumlah;
|
||||||
|
} else {
|
||||||
|
totalHarga = harga * 0;
|
||||||
|
}
|
||||||
|
tampilTotalHarga(totalHarga);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#jumlahBarang").change(function () {
|
||||||
|
let jumlah = $(this).val();
|
||||||
|
let harga = $("#hargaBarang").val();
|
||||||
|
let nominal = document.getElementById("jumlah");
|
||||||
|
if (jumlah.trim() != "") {
|
||||||
|
if (jumlah == 0) {
|
||||||
|
nominal.innerHTML = "Nominal";
|
||||||
|
} else {
|
||||||
|
nominal.innerHTML = "Nominal (x" + jumlah + ")";
|
||||||
|
}
|
||||||
|
if (harga.trim() != "") {
|
||||||
|
totalHarga = harga * jumlah;
|
||||||
|
} else {
|
||||||
|
totalHarga = 0 * jumlah;
|
||||||
|
}
|
||||||
|
tampilTotalHarga(totalHarga);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#selectContact").change(function () {
|
||||||
|
let email = $("#selectContact").val();
|
||||||
|
if (email === null) {
|
||||||
|
$("#inputPenjual").prop("disabled", false);
|
||||||
|
$("#checkButton").prop("disabled", false);
|
||||||
|
$("#deleteOption").prop("disabled", false);
|
||||||
|
} else {
|
||||||
|
$("#inputPenjual").prop("disabled", true);
|
||||||
|
$("#deleteOption").prop("disabled", false);
|
||||||
|
$("#checkButton").prop("disabled", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#deleteOption").click(function () {
|
||||||
|
$("#selectContact").val(null).trigger("change");
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#inputPenjual").on("input", function () {
|
||||||
|
let emailInput = $("#inputPenjual").val();
|
||||||
|
if (emailInput.trim() == "") {
|
||||||
|
$("#selectContact").prop("disabled", false);
|
||||||
|
$("#deleteOption").prop("disabled", false);
|
||||||
|
} else {
|
||||||
|
$("#selectContact").prop("disabled", true);
|
||||||
|
$("#deleteOption").prop("disabled", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#checkButton").click(function () {
|
||||||
|
let email = document.querySelector('[name="input_penjual"]').value;
|
||||||
|
const csrfToken = $('meta[name="csrf-token"]').attr("content");
|
||||||
|
|
||||||
|
if (email.trim() == "") {
|
||||||
|
Swal.fire({
|
||||||
|
title: "Gagal",
|
||||||
|
text: "Email tidak boleh kosong",
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (email != "{{ Auth::user()->email }}") {
|
||||||
|
$.ajaxSetup({
|
||||||
|
headers: {
|
||||||
|
"X-CSRF-TOKEN": csrfToken,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('user-contact.email', ':email') }}".replace(
|
||||||
|
":email",
|
||||||
|
email
|
||||||
|
),
|
||||||
|
type: "GET",
|
||||||
|
success: function (response) {
|
||||||
|
if (
|
||||||
|
response.status &&
|
||||||
|
(response.message.nama_bank == null ||
|
||||||
|
response.message.nama_bank == "") &&
|
||||||
|
(response.message.no_rek == null ||
|
||||||
|
response.message.no_rek == "")
|
||||||
|
) {
|
||||||
|
Swal.fire({
|
||||||
|
title: "Berhasil",
|
||||||
|
text: "Akun tersedia",
|
||||||
|
icon: "success",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
title: "Gagal",
|
||||||
|
text: response.message,
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (error) {
|
||||||
|
Swal.fire({
|
||||||
|
title: "Gagal",
|
||||||
|
text: "Terjadi error karena, " + error,
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
title: "Gagal",
|
||||||
|
text: "Email penjual tidak boleh sama denggan email pembeli",
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#save").on("click", function () {
|
||||||
|
let opsiKontak = document.querySelector(
|
||||||
|
'[name="select_penjual"]'
|
||||||
|
).value;
|
||||||
|
let inputKontak = document.querySelector(
|
||||||
|
'[name="input_penjual"]'
|
||||||
|
).value;
|
||||||
|
let namaBarang = document.querySelector('[name="nama_barang"]').value;
|
||||||
|
let hargaBarang = document.querySelector('[name="harga_barang"]').value;
|
||||||
|
let satuanBarang = document.querySelector(
|
||||||
|
'[name="satuan_barang"]'
|
||||||
|
).value;
|
||||||
|
let jumlahBarang = document.querySelector(
|
||||||
|
'[name="jumlah_barang"]'
|
||||||
|
).value;
|
||||||
|
let deskripsi = document.querySelector(
|
||||||
|
'textarea[name="deskripsi"]'
|
||||||
|
).value;
|
||||||
|
|
||||||
|
let emptyInput = [];
|
||||||
|
|
||||||
|
let penjual = "";
|
||||||
|
if (opsiKontak != "" && inputKontak != "") {
|
||||||
|
penjual = opsiKontak;
|
||||||
|
} else if (opsiKontak == "" && inputKontak != "") {
|
||||||
|
penjual = inputKontak;
|
||||||
|
} else if (inputKontak == "" && opsiKontak != "") {
|
||||||
|
penjual = opsiKontak;
|
||||||
|
} else {
|
||||||
|
emptyInput.push("Kolom penjual tidak boleh kosong");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (penjual == "{{ Auth::user()->email }}") {
|
||||||
|
emptyInput.push(
|
||||||
|
"Email penjual tidak boleh sama dengan email pembeli"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (namaBarang == "") {
|
||||||
|
emptyInput.push("Nama barang tidak boleh kosong");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hargaBarang == "") {
|
||||||
|
emptyInput.push("Harga barang tidak boleh kosong");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (satuanBarang == "") {
|
||||||
|
emptyInput.push("Satuan barang tidak boleh kosong");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (jumlahBarang == "") {
|
||||||
|
emptyInput.push("Jumlah barang tidak boleh kosong");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (emptyInput.length > 0) {
|
||||||
|
const emptyInputError = emptyInput.join(", ");
|
||||||
|
Swal.fire({
|
||||||
|
title: "Gagal",
|
||||||
|
text: emptyInputError,
|
||||||
|
icon: "error",
|
||||||
|
confirmButtonText: "OK",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
const csrfToken = $('meta[name="csrf-token"]').attr("content");
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("email_penjual", penjual);
|
||||||
|
formData.append("nama_barang", namaBarang);
|
||||||
|
formData.append("satuan_barang", satuanBarang);
|
||||||
|
formData.append("harga_barang", hargaBarang);
|
||||||
|
formData.append("jumlah_barang", jumlahBarang);
|
||||||
|
// formData.append('batas_pengiriman', batasPengiriman);
|
||||||
|
formData.append("deskripsi", deskripsi);
|
||||||
|
formData.append("persentase_keuntungan", biayaAdmin);
|
||||||
|
formData.append("total_keuntungan", totalBiayaAdmin);
|
||||||
|
formData.append("total_harga", totalHarga);
|
||||||
|
formData.append("total_bayar", totalBayar);
|
||||||
|
|
||||||
|
$(modal).modal("show");
|
||||||
|
|
||||||
|
$.ajaxSetup({
|
||||||
|
headers: {
|
||||||
|
"X-CSRF-TOKEN": csrfToken,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('store-transaction.pembeli') }}",
|
||||||
|
type: "POST",
|
||||||
|
data: formData,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
success: function (response) {
|
||||||
|
$(modal).modal("hide");
|
||||||
|
Swal.fire({
|
||||||
|
title: response.status ? "Berhasil" : "Gagal",
|
||||||
|
text: response.message,
|
||||||
|
icon: response.status ? "success" : "error",
|
||||||
|
confirmButtonText: "OK",
|
||||||
|
}).then(function () {
|
||||||
|
location.href =
|
||||||
|
"{{ route('user-transaction.index.pembeli') }}";
|
||||||
|
});
|
||||||
|
console.log(response);
|
||||||
|
},
|
||||||
|
error: function (error) {
|
||||||
|
$(modal).modal("hide");
|
||||||
|
Swal.fire({
|
||||||
|
title: "Gagal",
|
||||||
|
text: "Gagal mengirimkan data karena " + error,
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
console.log(error);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
@ -3,11 +3,10 @@
|
|||||||
<form class="form-inline mr-auto">
|
<form class="form-inline mr-auto">
|
||||||
<ul class="navbar-nav mr-3">
|
<ul class="navbar-nav mr-3">
|
||||||
<li><a href="#" data-toggle="sidebar" class="nav-link nav-link-lg"><i class="fas fa-bars"></i></a></li>
|
<li><a href="#" data-toggle="sidebar" class="nav-link nav-link-lg"><i class="fas fa-bars"></i></a></li>
|
||||||
<li><a href="#" data-toggle="search" class="nav-link nav-link-lg d-sm-none"><i
|
|
||||||
class="fas fa-search"></i></a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</form>
|
</form>
|
||||||
<ul class="navbar-nav navbar-right">
|
<ul class="navbar-nav navbar-right">
|
||||||
|
{{-- Message --}}
|
||||||
<li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown"
|
<li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown"
|
||||||
class="nav-link nav-link-lg message-toggle beep"><i class="far fa-envelope"></i></a>
|
class="nav-link nav-link-lg message-toggle beep"><i class="far fa-envelope"></i></a>
|
||||||
<div class="dropdown-menu dropdown-list dropdown-menu-right">
|
<div class="dropdown-menu dropdown-list dropdown-menu-right">
|
||||||
@ -19,7 +18,8 @@
|
|||||||
<div class="dropdown-list-content dropdown-list-message">
|
<div class="dropdown-list-content dropdown-list-message">
|
||||||
<a href="#" class="dropdown-item dropdown-item-unread">
|
<a href="#" class="dropdown-item dropdown-item-unread">
|
||||||
<div class="dropdown-item-avatar">
|
<div class="dropdown-item-avatar">
|
||||||
<img alt="image" src="{{asset('assets/img/avatar/avatar-1.png')}}" class="rounded-circle">
|
<img alt="image" src="{{ asset('assets/img/avatar/avatar-1.png') }}"
|
||||||
|
class="rounded-circle">
|
||||||
<div class="is-online"></div>
|
<div class="is-online"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-item-desc">
|
<div class="dropdown-item-desc">
|
||||||
@ -30,7 +30,8 @@
|
|||||||
</a>
|
</a>
|
||||||
<a href="#" class="dropdown-item dropdown-item-unread">
|
<a href="#" class="dropdown-item dropdown-item-unread">
|
||||||
<div class="dropdown-item-avatar">
|
<div class="dropdown-item-avatar">
|
||||||
<img alt="image" src="{{asset('assets/img/avatar/avatar-2.png')}}" class="rounded-circle">
|
<img alt="image" src="{{ asset('assets/img/avatar/avatar-2.png') }}"
|
||||||
|
class="rounded-circle">
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-item-desc">
|
<div class="dropdown-item-desc">
|
||||||
<b>Dedik Sugiharto</b>
|
<b>Dedik Sugiharto</b>
|
||||||
@ -40,7 +41,8 @@
|
|||||||
</a>
|
</a>
|
||||||
<a href="#" class="dropdown-item dropdown-item-unread">
|
<a href="#" class="dropdown-item dropdown-item-unread">
|
||||||
<div class="dropdown-item-avatar">
|
<div class="dropdown-item-avatar">
|
||||||
<img alt="image" src="{{asset('assets/img/avatar/avatar-3.png')}}" class="rounded-circle">
|
<img alt="image" src="{{ asset('assets/img/avatar/avatar-3.png') }}"
|
||||||
|
class="rounded-circle">
|
||||||
<div class="is-online"></div>
|
<div class="is-online"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-item-desc">
|
<div class="dropdown-item-desc">
|
||||||
@ -51,7 +53,8 @@
|
|||||||
</a>
|
</a>
|
||||||
<a href="#" class="dropdown-item">
|
<a href="#" class="dropdown-item">
|
||||||
<div class="dropdown-item-avatar">
|
<div class="dropdown-item-avatar">
|
||||||
<img alt="image" src="{{asset('assets/img/avatar/avatar-4.png')}}" class="rounded-circle">
|
<img alt="image" src="{{ asset('assets/img/avatar/avatar-4.png') }}"
|
||||||
|
class="rounded-circle">
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-item-desc">
|
<div class="dropdown-item-desc">
|
||||||
<b>Ardian Rahardiansyah</b>
|
<b>Ardian Rahardiansyah</b>
|
||||||
@ -61,7 +64,8 @@
|
|||||||
</a>
|
</a>
|
||||||
<a href="#" class="dropdown-item">
|
<a href="#" class="dropdown-item">
|
||||||
<div class="dropdown-item-avatar">
|
<div class="dropdown-item-avatar">
|
||||||
<img alt="image" src="{{asset('assets/img/avatar/avatar-5.png')}}" class="rounded-circle">
|
<img alt="image" src="{{ asset('assets/img/avatar/avatar-5.png') }}"
|
||||||
|
class="rounded-circle">
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-item-desc">
|
<div class="dropdown-item-desc">
|
||||||
<b>Alfa Zulkarnain</b>
|
<b>Alfa Zulkarnain</b>
|
||||||
@ -75,6 +79,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
{{-- Message --}}
|
||||||
|
|
||||||
|
{{-- Notifikasi --}}
|
||||||
<li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown"
|
<li class="dropdown dropdown-list-toggle"><a href="#" data-toggle="dropdown"
|
||||||
class="nav-link notification-toggle nav-link-lg beep"><i class="far fa-bell"></i></a>
|
class="nav-link notification-toggle nav-link-lg beep"><i class="far fa-bell"></i></a>
|
||||||
<div class="dropdown-menu dropdown-list dropdown-menu-right">
|
<div class="dropdown-menu dropdown-list dropdown-menu-right">
|
||||||
@ -135,24 +142,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
{{-- Notifikasi --}}
|
||||||
<li class="dropdown"><a href="#" data-toggle="dropdown"
|
<li class="dropdown"><a href="#" data-toggle="dropdown"
|
||||||
class="nav-link dropdown-toggle nav-link-lg nav-link-user">
|
class="nav-link dropdown-toggle nav-link-lg nav-link-user">
|
||||||
<img alt="image" src="{{asset('assets/img/avatar/ok.jpg')}}" class="rounded-circle mr-1">
|
<img alt="image" src="{{ asset('assets/img/avatar/ok.jpg') }}" class="rounded-circle mr-1">
|
||||||
<div class="d-sm-none d-lg-inline-block">Hi, {{ Auth::user()->nama_depan }}</div>
|
<div class="d-sm-none d-lg-inline-block">Hi, {{ Auth::user()->nama_depan }}</div>
|
||||||
</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="/profile" class="dropdown-item has-icon">
|
<a href="{{route('admin.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">
|
|
||||||
<i class="fas fa-bolt"></i> Activities
|
|
||||||
</a>
|
|
||||||
<a href="features-settings.html" class="dropdown-item has-icon">
|
|
||||||
<i class="fas fa-cog"></i> Settings
|
|
||||||
</a> --}}
|
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a href="{{route('logout')}}" class="dropdown-item has-icon text-danger">
|
<a href="{{ route('logout') }}" class="dropdown-item has-icon text-danger">
|
||||||
<i class="fas fa-sign-out-alt"></i> Logout
|
<i class="fas fa-sign-out-alt"></i> Logout
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
</style>
|
</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">
|
||||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
@ -46,31 +47,26 @@
|
|||||||
<link rel="stylesheet" href="{{ asset('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" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.css" />
|
href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.css" />
|
||||||
|
<link rel="stylesheet" href="{{ asset('assets/modules/select2/dist/css/select2.min.css') }}">
|
||||||
|
|
||||||
<!-- Template CSS -->
|
<!-- Template CSS -->
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/components.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/css/components.css') }}">
|
||||||
<!-- CSS Libraries -->
|
|
||||||
|
{{-- CSS Libraries --}}
|
||||||
<link rel="stylesheet" href="{{ asset('assets/modules/datatables/datatables.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/modules/datatables/datatables.min.css') }}">
|
||||||
<link rel="stylesheet"
|
<link rel="stylesheet"
|
||||||
href="{{ asset('assets/modules/datatables/DataTables-1.10.16/css/dataTables.bootstrap4.min.css') }}">
|
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/modules/datatables/Select-1.2.4/css/select.bootstrap4.min.css') }}">
|
||||||
<!-- Start GA -->
|
<link rel="stylesheet" href="{{ asset('assets/css/main.css') }}">
|
||||||
{{-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
|
|
||||||
function gtag() {
|
|
||||||
dataLayer.push(arguments);
|
|
||||||
}
|
|
||||||
gtag('js', new Date());
|
|
||||||
|
|
||||||
gtag('config', 'UA-94034622-3');
|
|
||||||
</script> --}}
|
|
||||||
|
|
||||||
<!-- /END GA -->
|
|
||||||
|
|
||||||
{{-- JS --}}
|
{{-- JS --}}
|
||||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"
|
||||||
|
integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA=="
|
||||||
|
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous">
|
||||||
|
</script>
|
||||||
<script src="{{ asset('assets/modules/chart.min.js') }}"></script>
|
<script src="{{ asset('assets/modules/chart.min.js') }}"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -89,30 +85,24 @@
|
|||||||
@include('admin.layout.footer')
|
@include('admin.layout.footer')
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.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="{{ asset('assets/modules/jquery.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/modules/popper.js') }}"></script>
|
<script src="{{ asset('assets/modules/popper.js') }}"></script>
|
||||||
<script src="{{ asset('assets/modules/tooltip.js') }}"></script>
|
<script src="{{ asset('assets/modules/tooltip.js') }}"></script>
|
||||||
<script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script>
|
<script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script>
|
||||||
<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/modules/moment.min.js') }}"></script>
|
<script src="{{ asset('assets/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@11"></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/owlcarousel2/dist/owl.carousel.min.js') }}"></script>
|
<script src="{{ asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js') }}"></script>
|
||||||
<script src="{{ asset('assets/modules/summernote/summernote-bs4.js') }}"></script>
|
<script src="{{ asset('assets/modules/summernote/summernote-bs4.js') }}"></script>
|
||||||
<script src="{{ asset('assets/modules/chocolat/dist/js/jquery.chocolat.min.js') }}"></script>
|
|
||||||
|
|
||||||
<!-- JS Libraies -->
|
<!-- JS Libraies -->
|
||||||
<script src="{{ asset('assets/modules/datatables/datatables.min.js') }}"></script>
|
<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/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/datatables/Select-1.2.4/js/dataTables.select.min.js') }}"></script>
|
||||||
<script src="{{ asset('assets/modules/jquery-ui/jquery-ui.min.js') }}"></script>
|
|
||||||
|
|
||||||
<!-- Page Specific JS File -->
|
<!-- Page Specific JS File -->
|
||||||
<script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script>
|
<script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script>
|
||||||
@ -121,23 +111,6 @@
|
|||||||
<script src="{{ asset('assets/js/scripts.js') }}"></script>
|
<script src="{{ asset('assets/js/scripts.js') }}"></script>
|
||||||
<script src="{{ asset('assets/js/custom.js') }}"></script>
|
<script src="{{ asset('assets/js/custom.js') }}"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script>
|
||||||
<script src="{{ asset('assets/js/tablesort.js') }}"></script>
|
|
||||||
{{-- <script src="{{ asset('assets/js/main.js') }}"></script> --}}
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const alertCloseButtons = document.querySelectorAll('.alert .btn-close');
|
|
||||||
|
|
||||||
alertCloseButtons.forEach(function(button) {
|
|
||||||
button.addEventListener('click', function() {
|
|
||||||
const alert = this.closest('.alert');
|
|
||||||
if (alert) {
|
|
||||||
alert.remove();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -19,3 +19,4 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
|
<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script>
|
||||||
|
@ -9,9 +9,10 @@
|
|||||||
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);">
|
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>
|
<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;">
|
<img src="{{ Auth::user()->foto_profil == null ? asset('assets/img/avatar/avatar-1.png') : asset('storage/foto_profil/' . Auth::user()->foto_profil) }}"
|
||||||
<h2 class="mt-3">Nurul Prima Annisa</h2>
|
alt="{{ Auth::user()->nama_depan }}" class="rounded-circle" style="width: 150px; height: 150px;">
|
||||||
<h5 class="mb-0">#1238dsbias0-30832bjs</h5>
|
<h2 class="mt-3">{{ Auth::user()->nama_depan . ' ' . Auth::user()->nama_belakang }}</h2>
|
||||||
|
<h5 class="mb-0">#{{ Auth::user()->id }}</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@ -20,114 +21,104 @@
|
|||||||
<ul class="nav nav-tabs nav-tabs-bordered">
|
<ul class="nav nav-tabs nav-tabs-bordered">
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<button class="nav-link active" data-bs-toggle="tab"
|
<button class="nav-link active" data-bs-toggle="tab" data-bs-target="#profile-overview">Data
|
||||||
data-bs-target="#profile-overview">Overview</button>
|
Diri</button>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-edit">Edit
|
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-edit">Ubah
|
||||||
Profile</button>
|
Profile</button>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<button class="nav-link" data-bs-toggle="tab"
|
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-change-password">Ubah
|
||||||
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>
|
Password</button>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content pt-2">
|
<div class="tab-content pt-2">
|
||||||
|
|
||||||
<div class="tab-pane fade show active profile-overview" id="profile-overview">
|
{{-- Detail Profil --}}
|
||||||
<h5 class="card-title">About</h5>
|
<div class="tab-pane active show profile-overview" id="profile-overview">
|
||||||
<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>
|
<h5 class="card-title">Detail Profil</h5>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3 col-md-4 label ">Full Name</div>
|
<div class="col-lg-3 col-md-4 label ">Nama Lengkap</div>
|
||||||
<div class="col-lg-9 col-md-8">Nurul Prima Annisa</div>
|
<div class="col-lg-9 col-md-8">
|
||||||
</div>
|
{{ Auth::user()->nama_depan . ' ' . Auth::user()->nama_belakang }}</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>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3 col-md-4 label">Email</div>
|
<div class="col-lg-3 col-md-4 label">Email</div>
|
||||||
<div class="col-lg-9 col-md-8">npannisa23@gmail.com</div>
|
<div class="col-lg-9 col-md-8">{{ Auth::user()->email }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">No. HP</div>
|
||||||
|
<div class="col-lg-9 col-md-8">{{ Auth::user()->nohp }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Negara</div>
|
||||||
|
<div class="col-lg-9 col-md-8">Indonesia</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Provinsi</div>
|
||||||
|
<div class="col-lg-9 col-md-8">{{ Auth::user()->getProvinceName() }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Kota/Kabupaten</div>
|
||||||
|
<div class="col-lg-9 col-md-8">{{ Auth::user()->getCityName() }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Kecamatan</div>
|
||||||
|
<div class="col-lg-9 col-md-8">{{ Auth::user()->getDistrictName() }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Kelurahan</div>
|
||||||
|
<div class="col-lg-9 col-md-8">{{ Auth::user()->getVillageName() }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Alamat</div>
|
||||||
|
<div class="col-lg-9 col-md-8">{{ Auth::user()->alamat }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Nama Bank/e-Wallet Tujuan</div>
|
||||||
|
<div class="col-lg-9 col-md-8">Dana</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3 col-md-4 label">Nomor Rekening/e-Wallet Tujuan</div>
|
||||||
|
<div class="col-lg-9 col-md-8">088376473</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{-- Edit Profile --}}
|
||||||
<div class="tab-pane fade profile-edit pt-3" id="profile-edit">
|
<div class="tab-pane fade profile-edit pt-3" id="profile-edit">
|
||||||
|
<form id="formEditProfile" action="javascript:void(0);">
|
||||||
<!-- Profile Edit Form -->
|
@csrf
|
||||||
<form>
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="profileImage" class="col-md-4 col-lg-3 col-form-label">Profile Image</label>
|
<label for="profileImage" class="col-md-4 col-lg-3 col-form-label">Foto Profil</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<img id="profileImagePreview" src="assets/img/avatar/ok.jpg" alt="Profile"
|
<img id="profileImagePreview"
|
||||||
style="max-width: 100%; max-height: 150px;">
|
src="{{ Auth::user()->foto_profil == null ? asset('assets/img/avatar/avatar-1.png') : asset('storage/foto_profil/' . Auth::user()->foto_profil) }}"
|
||||||
|
alt="Profile" style="max-width: 100%; max-height: 150px;">
|
||||||
<div class="d-flex justify-content-between align-items-center mt-2">
|
<div class="d-flex justify-content-between align-items-center mt-2">
|
||||||
<label for="profileImageInput" class="btn btn-primary btn-sm"
|
<label for="profileImageInput" class="btn btn-primary btn-sm"
|
||||||
title="Upload new profile image">
|
title="Upload new profile image">
|
||||||
<i class="bi bi-upload"></i> Upload
|
<i class="bi bi-upload"></i> Unggah
|
||||||
<input type="file" id="profileImageInput" accept="image/*"
|
<input type="file" id="profileImageInput" accept="image/*"
|
||||||
style="display: none;">
|
style="display: none;" name="foto_profile">
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -136,163 +127,164 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Full Name</label>
|
<label for="firstName" class="col-md-4 col-lg-3 col-form-label">Nama Lengkap</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-4 col-lg-4">
|
||||||
<input name="fullName" type="text" class="form-control" id="fullName"
|
<input name="nama_depan" type="text" class="form-control" id="firstName"
|
||||||
value="Nurul Prima Annisa">
|
placeholder="Nama depan" value="{{ Auth::user()->nama_depan }}" required>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 col-lg-5">
|
||||||
|
<input name="nama_belakang" type="text" class="form-control" id="lastName"
|
||||||
|
placeholder="Nama belakang" value="{{ Auth::user()->nama_belakang }}"
|
||||||
|
required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="about" class="col-md-4 col-lg-3 col-form-label">About</label>
|
<label for="Phone" class="col-md-4 col-lg-3 col-form-label">No. HP</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<textarea name="about" class="form-control" id="about" style="height: 100px">
|
<input name="nohp" type="text" class="form-control" id="Phone"
|
||||||
|
value="{{ Auth::user()->nohp }}"
|
||||||
|
oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*?)\..*/g, '$1');"
|
||||||
|
required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</textarea>
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="selectProvince" class="col-md-4 col-lg-3 col-form-label">Provinsi</label>
|
||||||
|
<div class="col-md-8 col-lg-9">
|
||||||
|
<select style="width: 100%;" name="provinsi" id="selectProvince">
|
||||||
|
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="company" class="col-md-4 col-lg-3 col-form-label">Company</label>
|
<label for="selectCity"
|
||||||
|
class="col-md-4 col-lg-3 col-form-label">Kabupaten/Kota</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<input name="company" type="text" class="form-control" id="company"
|
<select style="width: 100%;" name="kota" id="selectCity">
|
||||||
value="Abbauf Mulia Konsultan Teknologi">
|
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="Job" class="col-md-4 col-lg-3 col-form-label">Job</label>
|
<label for="selectDistrict" class="col-md-4 col-lg-3 col-form-label">Kecamatan</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<input name="job" type="text" class="form-control" id="Job"
|
<select style="width: 100%;" name="kecamatan" id="selectDistrict">
|
||||||
value="Frontend Web">
|
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="Country" class="col-md-4 col-lg-3 col-form-label">Country</label>
|
<label for="selectVillage" class="col-md-4 col-lg-3 col-form-label">Kelurahan</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<input name="country" type="text" class="form-control" id="Country"
|
<select style="width: 100%;" name="kelurahan" id="selectVillage" required>
|
||||||
value="Indonesia">
|
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="Address" class="col-md-4 col-lg-3 col-form-label">Address</label>
|
<label for="Address" class="col-md-4 col-lg-3 col-form-label">Alamat</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<input name="address" type="text" class="form-control" id="Address"
|
<input name="alamat" type="text" class="form-control" id="Address"
|
||||||
value="Depok city broww">
|
value="{{ Auth::user()->alamat }}" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="Phone" class="col-md-4 col-lg-3 col-form-label">Phone</label>
|
<label for="namaBank" class="col-md-4 col-lg-3 col-form-label">Bank/e-Wallet
|
||||||
<div class="col-md-8 col-lg-9">
|
Tujuan</label>
|
||||||
<input name="phone" type="text" class="form-control" id="Phone"
|
<div class="col-md-4 col-lg-4">
|
||||||
value="(+62) 486-3538 29071">
|
<select style="width: 100%;" name="nama_bank" id="namaBank" required>
|
||||||
|
<option selected disabled>Silahkan Pilih Bank/e-Wallet</option>
|
||||||
|
<option disabled>Bank</option>
|
||||||
|
<option value="bca"
|
||||||
|
{{ Auth::user()->nama_bank == 'bca' ? 'selected' : '' }}>BCA</option>
|
||||||
|
<option value="mandiri"
|
||||||
|
{{ Auth::user()->nama_bank == 'mandiri' ? 'selected' : '' }}>Mandiri
|
||||||
|
</option>
|
||||||
|
<option value="bni"
|
||||||
|
{{ Auth::user()->nama_bank == 'bni' ? 'selected' : '' }}>BNI</option>
|
||||||
|
<option value="bri"
|
||||||
|
{{ Auth::user()->nama_bank == 'bri' ? 'selected' : '' }}>BRI</option>
|
||||||
|
<option value="bsm"
|
||||||
|
{{ Auth::user()->nama_bank == 'bsm' ? 'selected' : '' }}>BSI (Bank Syariah
|
||||||
|
Indonesia)</option>
|
||||||
|
<option value="danamon"
|
||||||
|
{{ Auth::user()->nama_bank == 'danamon' ? 'selected' : '' }}>
|
||||||
|
Danamoon/Danamon Syariah</option>
|
||||||
|
<option value="permata"
|
||||||
|
{{ Auth::user()->nama_bank == 'permata' ? 'selected' : '' }}>Bank Permata
|
||||||
|
</option>
|
||||||
|
<option value="mega"
|
||||||
|
{{ Auth::user()->nama_bank == 'mega' ? 'selected' : '' }}>Bank Mega
|
||||||
|
</option>
|
||||||
|
<option value="btn"
|
||||||
|
{{ Auth::user()->nama_bank == 'btn' ? 'selected' : '' }}>BTN/BTN Syariah
|
||||||
|
</option>
|
||||||
|
<option value="cimb"
|
||||||
|
{{ Auth::user()->nama_bank == 'cimb' ? 'selected' : '' }}>CIMB Niaga/CIMB
|
||||||
|
Niaga Syariah</option>
|
||||||
|
<option value="hsbc"
|
||||||
|
{{ Auth::user()->nama_bank == 'hsbc' ? 'selected' : '' }}>HSBC Indonesia
|
||||||
|
</option>
|
||||||
|
<option value="uob"
|
||||||
|
{{ Auth::user()->nama_bank == 'uob' ? 'selected' : '' }}>TMRW/UOB</option>
|
||||||
|
<option value="panin"
|
||||||
|
{{ Auth::user()->nama_bank == 'panin' ? 'selected' : '' }}>Panin Bank
|
||||||
|
</option>
|
||||||
|
<option value="bii"
|
||||||
|
{{ Auth::user()->nama_bank == 'bii' ? 'selected' : '' }}>Maybank Indonesia
|
||||||
|
</option>
|
||||||
|
<option value="ocbc"
|
||||||
|
{{ Auth::user()->nama_bank == 'ocbc' ? 'selected' : '' }}>OCBC NISP
|
||||||
|
</option>
|
||||||
|
<option value="sinarmas"
|
||||||
|
{{ Auth::user()->nama_bank == 'sinarmas' ? 'selected' : '' }}>Bank Sinarmas
|
||||||
|
</option>
|
||||||
|
<option value="dbs"
|
||||||
|
{{ Auth::user()->nama_bank == 'dbs' ? 'selected' : '' }}>DBS Bank Indonesia
|
||||||
|
</option>
|
||||||
|
<option disabled>e-Wallet</option>
|
||||||
|
<option value="ovo"
|
||||||
|
{{ Auth::user()->nama_bank == 'ovo' ? 'selected' : '' }}>OVO</option>
|
||||||
|
<option value="dana"
|
||||||
|
{{ Auth::user()->nama_bank == 'dana' ? 'selected' : '' }}>DANA</option>
|
||||||
|
<option value="linkaja"
|
||||||
|
{{ Auth::user()->nama_bank == 'linkaja' ? 'selected' : '' }}>LinkAja
|
||||||
|
</option>
|
||||||
|
<option value="gopay"
|
||||||
|
{{ Auth::user()->nama_bank == 'gopay' ? 'selected' : '' }}>GoPay</option>
|
||||||
|
<option value="shopeepay"
|
||||||
|
{{ Auth::user()->nama_bank == 'shopeepay' ? 'selected' : '' }}>ShopeePay
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-md-4 col-lg-5">
|
||||||
|
<input name="no_rek" type="text" class="form-control" id="noRek"
|
||||||
<div class="row mb-3">
|
value="{{ Auth::user()->no_rek }}"
|
||||||
<label for="Email" class="col-md-4 col-lg-3 col-form-label">Email</label>
|
oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*?)\..*/g, '$1');"
|
||||||
<div class="col-md-8 col-lg-9">
|
required>
|
||||||
<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>
|
</div>
|
||||||
|
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<button type="submit" class="btn btn-primary">Save Changes</button>
|
<a href="profile" type="submit" class="btn btn-primary">Simpan</a>
|
||||||
</div>
|
</div>
|
||||||
</form><!-- End settings Form -->
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
{{-- Edit Profil --}}
|
||||||
|
|
||||||
|
{{-- Change Password --}}
|
||||||
<div class="tab-pane fade pt-3" id="profile-change-password">
|
<div class="tab-pane fade pt-3" id="profile-change-password">
|
||||||
<!-- Change Password Form -->
|
|
||||||
<form>
|
<form>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="currentPassword" class="col-md-4 col-lg-3 col-form-label">Current
|
<label for="currentPassword" class="col-md-4 col-lg-3 col-form-label">Password
|
||||||
Password</label>
|
Sekarang</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<input name="password" type="password" class="form-control"
|
<input name="password" type="password" class="form-control"
|
||||||
id="currentPassword">
|
id="currentPassword">
|
||||||
@ -300,15 +292,16 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="newPassword" class="col-md-4 col-lg-3 col-form-label">New Password</label>
|
<label for="newPassword" class="col-md-4 col-lg-3 col-form-label">Password
|
||||||
|
Baru</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<input name="newpassword" type="password" class="form-control" id="newPassword">
|
<input name="newpassword" type="password" class="form-control" id="newPassword">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="renewPassword" class="col-md-4 col-lg-3 col-form-label">Re-enter New
|
<label for="renewPassword" class="col-md-4 col-lg-3 col-form-label">Ketik Ulang
|
||||||
Password</label>
|
Password Baru</label>
|
||||||
<div class="col-md-8 col-lg-9">
|
<div class="col-md-8 col-lg-9">
|
||||||
<input name="renewpassword" type="password" class="form-control"
|
<input name="renewpassword" type="password" class="form-control"
|
||||||
id="renewPassword">
|
id="renewPassword">
|
||||||
@ -316,24 +309,23 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<button type="submit" class="btn btn-primary">Change Password</button>
|
<button type="submit" class="btn btn-primary">Ganti Password</button>
|
||||||
</div>
|
</div>
|
||||||
</form><!-- End Change Password Form -->
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
{{-- Change Password --}}
|
||||||
|
|
||||||
</div><!-- End Bordered Tabs -->
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- profile --}}
|
{{-- profile --}}
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
// Mendapatkan elemen-elemen tombol tab
|
|
||||||
const editProfileTab = document.querySelector('[data-bs-target="#profile-edit"]');
|
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 changePasswordTab = document.querySelector('[data-bs-target="#profile-change-password"]');
|
||||||
const overviewTab = document.querySelector('[data-bs-target="#profile-overview"]');
|
const overviewTab = document.querySelector('[data-bs-target="#profile-overview"]');
|
||||||
|
|
||||||
@ -342,10 +334,6 @@
|
|||||||
activateTabAndContent(editProfileTab, "#profile-edit");
|
activateTabAndContent(editProfileTab, "#profile-edit");
|
||||||
});
|
});
|
||||||
|
|
||||||
settingsTab.addEventListener("click", function() {
|
|
||||||
activateTabAndContent(settingsTab, "#profile-settings");
|
|
||||||
});
|
|
||||||
|
|
||||||
changePasswordTab.addEventListener("click", function() {
|
changePasswordTab.addEventListener("click", function() {
|
||||||
activateTabAndContent(changePasswordTab, "#profile-change-password");
|
activateTabAndContent(changePasswordTab, "#profile-change-password");
|
||||||
});
|
});
|
||||||
@ -372,6 +360,246 @@
|
|||||||
selectedTabContent.classList.add("show", "active");
|
selectedTabContent.classList.add("show", "active");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
|
||||||
|
var selectedVillage = "{{ Auth::user()->kode_kelurahan }}";
|
||||||
|
var selectedDistrict = "{{ Auth::user()->village->district->code }}";
|
||||||
|
var selectedCity = "{{ Auth::user()->village->district->city->code }}";
|
||||||
|
var selectedProvince = "{{ Auth::user()->village->district->city->province->code }}";
|
||||||
|
|
||||||
|
$("#selectProvince").val(selectedProvince).trigger('change');
|
||||||
|
$("#selectCity").val(selectedCity).trigger('change');
|
||||||
|
$("#selectDistrict").val(selectedDistrict).trigger('change');
|
||||||
|
$("#selectVillage").val(selectedVillage).trigger('change');
|
||||||
|
|
||||||
|
function ucwords(str) {
|
||||||
|
return str.toLowerCase().replace(/\b\w/g, function(l) {
|
||||||
|
return l.toUpperCase();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Select
|
||||||
|
$("#selectProvince").select2({
|
||||||
|
placeholder: "Pilih Provinsi",
|
||||||
|
ajax: {
|
||||||
|
url: "{{ route('cari-provinsi') }}",
|
||||||
|
processResults: function({
|
||||||
|
data
|
||||||
|
}) {
|
||||||
|
return {
|
||||||
|
results: $.map(data, function(item) {
|
||||||
|
return {
|
||||||
|
id: item.code,
|
||||||
|
text: ucwords(item.name),
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#selectCity').select2({
|
||||||
|
placeholder: "Pilih Kabupaten/Kota"
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$('#selectDistrict').select2({
|
||||||
|
placeholder: "Pilih Kecamatan"
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#selectVillage').select2({
|
||||||
|
placeholder: "Pilih Kelurahan"
|
||||||
|
});
|
||||||
|
|
||||||
|
// Event Listener untuk selectProvince
|
||||||
|
$("#selectProvince").change(function() {
|
||||||
|
let code = $("#selectProvince").val();
|
||||||
|
|
||||||
|
// Mengosongkan pilihan di selectCity dan selectDistrict dan selectVillage
|
||||||
|
$("#selectCity", "#selectDistrict", "#selectVillage").empty();
|
||||||
|
|
||||||
|
// Menghapus properti 'disabled' pada selectCity dan selectDistrict dan selectVillage
|
||||||
|
$("#selectCity", "#selectDistrict", "#selectVillage").prop(
|
||||||
|
"disable",
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
// Muat ulang data berdasarkan provinsi yang baru dipilih di selectProvince
|
||||||
|
$("#selectCity").select2({
|
||||||
|
placeholder: "Pilih Kabupaten/Kota",
|
||||||
|
ajax: {
|
||||||
|
url: "/cari-kota/" + code,
|
||||||
|
processResults: function({
|
||||||
|
data
|
||||||
|
}) {
|
||||||
|
return {
|
||||||
|
results: $.map(data, function(item) {
|
||||||
|
return {
|
||||||
|
id: item.code,
|
||||||
|
text: ucwords(item.name),
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Event Listener untuk perubahan pada selectCity
|
||||||
|
$("#selectCity").change(function() {
|
||||||
|
let code = $("#selectCity").val();
|
||||||
|
|
||||||
|
// Mengosongkan pilihan di selectDistrict dan selectVillage
|
||||||
|
$("#selectDristrict", "#selectVillage").empty();
|
||||||
|
|
||||||
|
// Menghapus properti 'disable' pada selectDistrict dan selectVillage
|
||||||
|
$("#selectDistrict", "#selectVillage").prop("disabled", false);
|
||||||
|
|
||||||
|
// Memuat ulang data berdasarkan wilayah yang baru dipilih di selectCity
|
||||||
|
$("#selectDistrict").select2({
|
||||||
|
placeholder: "Pilih Kecamatan",
|
||||||
|
ajax: {
|
||||||
|
url: "/cari-kecamatan/" + code, // Isi dengan URL yang sesuai
|
||||||
|
processResults: function({
|
||||||
|
data
|
||||||
|
}) {
|
||||||
|
return {
|
||||||
|
results: $.map(data, function(item) {
|
||||||
|
return {
|
||||||
|
id: item.code,
|
||||||
|
text: ucwords(item.name),
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Event Listener untuk selectDistrict
|
||||||
|
$("#selectDistrict").change(function() {
|
||||||
|
let code = $("#selectDistrict").val();
|
||||||
|
|
||||||
|
// Mengosongkan pilihan di selectVillage
|
||||||
|
$("#selectVillage").empty();
|
||||||
|
|
||||||
|
// Menghapus properti 'disabled' pada selectVillage
|
||||||
|
$("#selectVillage").prop("disabled", false);
|
||||||
|
|
||||||
|
// Memuat ulang data berdasarkan wilayah yang baru dipilih di selectDistrict
|
||||||
|
$("#selectVillage").select2({
|
||||||
|
placeholder: "Pilih Kelurahan",
|
||||||
|
ajax: {
|
||||||
|
url: "/cari-kelurahan/" + code, // Isi dengan URL yang sesuai
|
||||||
|
processResults: function({
|
||||||
|
data
|
||||||
|
}) {
|
||||||
|
return {
|
||||||
|
results: $.map(data, function(item) {
|
||||||
|
return {
|
||||||
|
id: item.code,
|
||||||
|
text: ucwords(item.name),
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#namaBank').select2();
|
||||||
|
|
||||||
|
//file input
|
||||||
|
$('#profileImageInput').change(function() {
|
||||||
|
var file = this.files[0];
|
||||||
|
if (file.type.startsWith('image/')) {
|
||||||
|
const reader = new FileReader();
|
||||||
|
|
||||||
|
reader.onload = function(e) {
|
||||||
|
// Mengganti src gambar dengan data URL dari berkas yang dipilih
|
||||||
|
document.getElementById('profileImagePreview').src = e.target.result;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Membaca berkas sebagai data URL
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Salah Input',
|
||||||
|
text: 'File yang anda upload bukan foto/gambar',
|
||||||
|
icon: 'error',
|
||||||
|
});
|
||||||
|
$('#profileImageInput').val('');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// edit profile
|
||||||
|
$('#formEditProfile').on('submit', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
let form = this;
|
||||||
|
|
||||||
|
if (!form.checkValidity()) {
|
||||||
|
form.reportValidity();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let formData = new FormData(this);
|
||||||
|
|
||||||
|
Swal.fire({
|
||||||
|
html: '<div class="mt-3"><lord-icon src="https://cdn.lordicon.com/etwtznjn.json" trigger="loop" colors="primary:#0ab39c,secondary:#405189" style="width:120px;height:120px"></lord-icon><div class="mt-4 pt-2 fs-15"><h4>Form Anda sedang diproses!</h4><p class="text-muted mx-4 mb-0">Mohon tunggu...</p></div></div>',
|
||||||
|
allowEscapeKey: false,
|
||||||
|
allowOutsideClick: false,
|
||||||
|
didOpen: () => {
|
||||||
|
Swal.showLoading()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: 'PUT',
|
||||||
|
url: `{{ route('user.update', ':id') }}`.replace(':id', ),
|
||||||
|
data: formData,
|
||||||
|
proccessData: false,
|
||||||
|
contentType: false,
|
||||||
|
success: function(response) {
|
||||||
|
Swal.fire({
|
||||||
|
title: response.status ? 'Berhasil!' : 'Gagal!',
|
||||||
|
text: response.message,
|
||||||
|
icon: response.status ? 'success' : 'error',
|
||||||
|
confirmButtonText: 'OK',
|
||||||
|
position: 'center',
|
||||||
|
}).then(function() {
|
||||||
|
// location.reload();
|
||||||
|
Swal.close();
|
||||||
|
if (response.status) {
|
||||||
|
$('#table-2').DataTable().draw();
|
||||||
|
form.reset();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function(error) {
|
||||||
|
console.log(error.responseText)
|
||||||
|
|
||||||
|
var response = JSON.parse(error.responseText);
|
||||||
|
|
||||||
|
var errorMessage = '';
|
||||||
|
|
||||||
|
for (var key in response.errors) {
|
||||||
|
if (response.errors.hasOwnProperty(key)) {
|
||||||
|
errorMessage += response.errors[key][0] + '<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Swal.fire({
|
||||||
|
position: 'center',
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Terjadi Kesalahan',
|
||||||
|
html: errorMessage,
|
||||||
|
showConfirmButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
{{-- profile --}}
|
{{-- profile --}}
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -6,60 +6,69 @@
|
|||||||
<div class="section-header">
|
<div class="section-header">
|
||||||
<h1>Detail</h1>
|
<h1>Detail</h1>
|
||||||
<div class="section-header-breadcrumb">
|
<div class="section-header-breadcrumb">
|
||||||
<div class="breadcrumb-item active"><a href="#">Dashboard</a></div>
|
<div class="breadcrumb-item active"><a href="{{ route('admin.index') }}">Dashboard</a></div>
|
||||||
<div class="breadcrumb-item">Refund</div>
|
<div class="breadcrumb-item"><a href="{{ route('admin-refund.index') }}">Refund</a></div>
|
||||||
<div class="breadcrumb-item">History</div>
|
|
||||||
<div class="breadcrumb-item">Detail</div>
|
<div class="breadcrumb-item">Detail</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@foreach ($detail_refund as $DetailRefund)
|
<div class="card-body p-0">
|
||||||
<div class="card-body p-0">
|
<div class="container">
|
||||||
<div class="container">
|
<p><strong>Image/Video</strong></p>
|
||||||
<p><strong>Image/Video</strong></p>
|
@foreach ($descriptions as $description)
|
||||||
<img src="assets/images/dashboard/img_2.jpg" alt="Return Image" width="300">
|
@if ($description->type == 'image')
|
||||||
<img src="assets/images/dashboard/img_3.jpg" alt="Return Image" width="300">
|
<img src="{{ asset('storage/refund-image/' . $description->filename) }}"
|
||||||
<img src="assets/images/dashboard/img_4.jpg" alt="Return Image" width="300">
|
alt="Return Image" width="300">
|
||||||
<br><br>
|
@endif
|
||||||
<div class="row">
|
@if ($description->type == 'videos')
|
||||||
<div class="col-2"><strong>ID Order</strong></div>
|
<video src="{{ asset('storage/refund-video/' . $description->filename) }}"
|
||||||
<div class="col">{{ $DetailRefund['orderId'] }}</div>
|
alt="Return Image" width="300">
|
||||||
</div><br>
|
@endif
|
||||||
<div class="row">
|
@endforeach
|
||||||
<div class="col-2"><strong>Customer Name</strong></div>
|
<br><br>
|
||||||
<div class="col">{{ $DetailRefund['customer'] }}</div>
|
<div class="row">
|
||||||
</div><br>
|
<div class="col-2"><strong>ID Order</strong></div>
|
||||||
<div class="row">
|
<div class="col">{{ $refund->order_id }}</div>
|
||||||
<div class="col-2"><strong>Seller Name</strong></div>
|
</div><br>
|
||||||
<div class="col">{{ $DetailRefund['seller'] }}</div>
|
<div class="row">
|
||||||
</div><br>
|
<div class="col-2"><strong>Customer Name</strong></div>
|
||||||
<div class="row">
|
<div class="col">
|
||||||
<div class="col-2"><strong>Total</strong></div>
|
{{ $refund->transaction->data_pembeli->nama_depan . ' ' . $refund->transaction->data_pembeli->nama_belakang }}
|
||||||
<div class="col">{{ $DetailRefund['total'] }}</div>
|
|
||||||
</div><br>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-2"><strong>Due Date</strong></div>
|
|
||||||
<div class="col">{{ $DetailRefund['date'] }}</div>
|
|
||||||
</div><br>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-2"><strong>Reason Complaint</strong></div>
|
|
||||||
<div class="col justified-text">{{ $DetailRefund['complaint'] }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div><br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2"><strong>Seller Name</strong></div>
|
||||||
|
<div class="col">
|
||||||
|
{{ $refund->transaction->data_penjual->nama_depan . ' ' . $refund->transaction->data_penjual->nama_belakang }}
|
||||||
|
</div>
|
||||||
|
</div><br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2"><strong>Total</strong></div>
|
||||||
|
<div class="col">{{ $refund->total }}</div>
|
||||||
|
</div><br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2"><strong>Batas Pengajuan Refund</strong></div>
|
||||||
|
<div class="col">{{ $refund->due_date }}</div>
|
||||||
|
</div><br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2"><strong>Alasan Komplain</strong></div>
|
||||||
|
<div class="col justified-text">{{ $refund->complain }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if ($refund)
|
||||||
<div class="d-flex justify-content-center mt-3">
|
<div class="d-flex justify-content-center mt-3">
|
||||||
<a href="#" data-toggle="modal" data-target="#ModalRefund"
|
<a href="#" data-toggle="modal" data-target="#ModalRefund"
|
||||||
class="btn btn-primary mx-1">Accept</a>
|
class="btn btn-primary mx-1">Accept</a>
|
||||||
<a href="/history_refund" class="btn btn-danger mx-1">Decline</a>
|
<a href="/history_refund" class="btn btn-danger mx-1">Decline</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
@endif
|
||||||
<br>
|
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
<br>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
@include('admin.refund.modal-next-detail-refund')
|
@include('admin.refund.modal-next-detail-refund')
|
||||||
|
@ -5,28 +5,29 @@
|
|||||||
<div class="section-header">
|
<div class="section-header">
|
||||||
<h1>History Refund</h1>
|
<h1>History Refund</h1>
|
||||||
<div class="section-header-breadcrumb">
|
<div class="section-header-breadcrumb">
|
||||||
<div class="breadcrumb-item active"><a href="{{route('index')}}">Dashboard</a></div>
|
<div class="breadcrumb-item active"><a href="{{route('admin.index')}}">Dashboard</a></div>
|
||||||
<div class="breadcrumb-item">Refund</div>
|
<div class="breadcrumb-item">Refund</div>
|
||||||
<div class="breadcrumb-item">History</div>
|
{{-- <div class="breadcrumb-item">History</div> --}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped" id="table-2">
|
<table class="table table-striped" id="table-4">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-center">
|
<th class="text-center">
|
||||||
#
|
#
|
||||||
</th>
|
</th>
|
||||||
<th>Order ID</th>
|
<th>Order ID</th>
|
||||||
<th>Customer</th>
|
<th>Pembeli</th>
|
||||||
<th>Seller</th>
|
<th>Penjual</th>
|
||||||
<th>Total</th>
|
<th>Total</th>
|
||||||
<th>Due Date</th>
|
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th>Action</th>
|
<th>Tanggal Pengajuan</th>
|
||||||
|
<th>Batas Konfirmasi</th>
|
||||||
|
<th>Aksi</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -34,22 +35,22 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>{{ $loop->iteration }}</td>
|
<td>{{ $loop->iteration }}</td>
|
||||||
<td class="font-weight-600">{{ $refund->orderId }}</a></td>
|
<td class="font-weight-600">{{ $refund->orderId }}</a></td>
|
||||||
<td class="font-weight-600">{{ $refund['customer'] }}</td>
|
<td class="font-weight-600">{{ $refund->orders->pembeli }}</td>
|
||||||
<td class="font-weight-600">{{ $refund['seller'] }}</td>
|
<td class="font-weight-600">{{ $refund->orders->penjual }}</td>
|
||||||
<td class="font-weight-600">{{ $refund['total'] }}</td>
|
<td class="font-weight-600">{{ $refund->total }}</td>
|
||||||
<td>{{ $refund['date'] }}</td>
|
|
||||||
<td>
|
<td>
|
||||||
<div class="badge {{ $refund->status == 'Partial Refund' ? 'badge-succes' : ($refund->status == 'Pending' ? 'badge-info' : 'badge-warning') }}">{{ $refund->status }}</div>
|
<div class="badge {{ $refund->status == 'Partial Refund' ? 'badge-succes' : ($refund->status == 'Pending' ? 'badge-info' : 'badge-warning') }}">{{ $refund->status }}</div>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="font-weight-600">{{ $refund->created_at }}</td>
|
||||||
|
<td class="font-weight-600">{{ $refund->due_date }}</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-primary dropdown-toggle"
|
<button type="button" class="btn btn-primary dropdown-toggle"
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
Action
|
Aksi
|
||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu">
|
<div class="dropdown-menu">
|
||||||
<a class="dropdown-item" href="/detail_refund">Details</a>
|
<a class="dropdown-item" href="/detail_refund">Details</a>
|
||||||
<a class="dropdown-item" href="#">Delete</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div class="section-header">
|
<div class="section-header">
|
||||||
<h1>Setting</h1>
|
<h1>Kebijakan Keuntungan</h1>
|
||||||
<div class="section-header-breadcrumb">
|
<div class="section-header-breadcrumb">
|
||||||
<div class="breadcrumb-item active"><a href="{{ route('index') }}">Dashboard</a></div>
|
<div class="breadcrumb-item active"><a href="{{ route('index') }}">Dashboard</a></div>
|
||||||
<div class="breadcrumb-item">Setting</div>
|
<div class="breadcrumb-item">Kebijakan Keuntungan</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
@ -14,7 +14,7 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="d-flex justify-content-end mb-3">
|
<div class="d-flex justify-content-end mb-3">
|
||||||
<a class="btn btn-success active" href="#" data-toggle="modal"
|
<a class="btn btn-success active" href="#" data-toggle="modal"
|
||||||
data-target="#ModalSetting">Add Data</a>
|
data-target="#ModalSetting">Tambah Data Kebijakan</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped" id="table-2">
|
<table class="table table-striped" id="table-2">
|
||||||
@ -32,10 +32,9 @@
|
|||||||
@foreach ($settings as $setting)
|
@foreach ($settings as $setting)
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ $loop->iteration }}</td>
|
<td>{{ $loop->iteration }}</td>
|
||||||
<td>{{ DateTime::createFromFormat('!m', $setting->bulan)->format('F') }}</td>
|
<td>{{ DateTime::createFromFormat('n', $setting->bulan)->format('F') }}</td>
|
||||||
<td>{{ $setting->tahun }}</td>
|
<td>{{ $setting->tahun }}</td>
|
||||||
<td>{{ $setting->persentase }}</td>
|
<td>{{ $setting->persentase }}</td>
|
||||||
{{-- <td hidden>{{$setting->id}}</td> --}}
|
|
||||||
<td>
|
<td>
|
||||||
<div
|
<div
|
||||||
class="badge {{ $setting->status == 'Active' ? 'badge-success' : 'badge-danger' }}">
|
class="badge {{ $setting->status == 'Active' ? 'badge-success' : 'badge-danger' }}">
|
||||||
@ -76,7 +75,8 @@
|
|||||||
const rowData = table.row(parentRow).data(); // Dapatkan data baris dari DataTable
|
const rowData = table.row(parentRow).data(); // Dapatkan data baris dari DataTable
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{{ route('admin-setting.update', ':admin_setting') }}".replace(':admin_setting', dataId),
|
url: "{{ route('admin-setting.update', ':admin_setting') }}".replace(
|
||||||
|
':admin_setting', dataId),
|
||||||
type: 'PUT',
|
type: 'PUT',
|
||||||
data: {
|
data: {
|
||||||
_token: csrfToken,
|
_token: csrfToken,
|
||||||
@ -104,10 +104,78 @@
|
|||||||
},
|
},
|
||||||
error: function(error) {
|
error: function(error) {
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title:'Error!',
|
title: 'Error!',
|
||||||
text:'Terjadi error, '+error,
|
text: 'Terjadi error, ' + error,
|
||||||
icon:'error',
|
icon: 'error',
|
||||||
confirmButtonText : 'OK'
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#bulan").select2();
|
||||||
|
|
||||||
|
$('#formTambahSetting').on('submit', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
let form = this;
|
||||||
|
|
||||||
|
if (!form.checkValidity()) {
|
||||||
|
form.reportValidity();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let formData = new FormData(this);
|
||||||
|
|
||||||
|
Swal.fire({
|
||||||
|
html: '<div class="mt-3"><lord-icon src="https://cdn.lordicon.com/etwtznjn.json" trigger="loop" colors="primary:#0ab39c,secondary:#405189" style="width:120px;height:120px"></lord-icon><div class="mt-4 pt-2 fs-15"><h4>Form Anda sedang diproses!</h4><p class="text-muted mx-4 mb-0">Mohon tunggu...</p></div></div>',
|
||||||
|
allowEscapeKey: false,
|
||||||
|
allowOutsideClick: false,
|
||||||
|
didOpen: () => {
|
||||||
|
Swal.showLoading()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: `{{ route('admin-setting.store') }}`,
|
||||||
|
data: formData,
|
||||||
|
proccessData: false,
|
||||||
|
contentType: false,
|
||||||
|
success: function(response) {
|
||||||
|
Swal.fire({
|
||||||
|
title: response.status ? 'Berhasil!' : 'Gagal!',
|
||||||
|
text: response.message,
|
||||||
|
icon: response.status ? 'success' : 'error',
|
||||||
|
confirmButtonText: 'OK',
|
||||||
|
position: 'center',
|
||||||
|
}).then(function() {
|
||||||
|
// location.reload();
|
||||||
|
Swal.close();
|
||||||
|
if (response.status) {
|
||||||
|
$('#table-2').DataTable().draw();
|
||||||
|
form.reset();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function(error) {
|
||||||
|
console.log(error.responseText)
|
||||||
|
|
||||||
|
var response = JSON.parse(error.responseText);
|
||||||
|
|
||||||
|
var errorMessage = '';
|
||||||
|
|
||||||
|
for (var key in response.errors) {
|
||||||
|
if (response.errors.hasOwnProperty(key)) {
|
||||||
|
errorMessage += response.errors[key][0] + '<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Swal.fire({
|
||||||
|
position: 'center',
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Terjadi Kesalahan',
|
||||||
|
html: errorMessage,
|
||||||
|
showConfirmButton: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2,17 +2,17 @@
|
|||||||
aria-hidden="true">
|
aria-hidden="true">
|
||||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
{{-- <div class="modal-header">
|
<div class="modal-header">
|
||||||
<h2 class="modal-title" id="exampleModalLongTitle">Tracking Information</h2>
|
<h2 class="modal-title" id="exampleModalLongTitle">Tambah Kebijakan</h2>
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</button>
|
||||||
</div> --}}
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="section-body">
|
<div class="section-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<form action="{{ route('admin-setting.store') }}" method="POST">
|
<form action="javascript:void(0);" id="formTambahSetting">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h4>Tambah data kebijakan persentase keuntungan</h4>
|
<h4>Tambah data kebijakan persentase keuntungan</h4>
|
||||||
@ -20,11 +20,33 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Bulan</label>
|
<label>Bulan</label>
|
||||||
<input type="month" class="form-control" name="bulan_tahun" required>
|
<select class="form-control" id="bulan" name="bulan" required>
|
||||||
|
<option selected disabled>Pilih bulan</option>
|
||||||
|
<option value="1">Januari</option>
|
||||||
|
<option value="2">Februari</option>
|
||||||
|
<option value="3">Maret</option>
|
||||||
|
<option value="4">April</option>
|
||||||
|
<option value="5">May</option>
|
||||||
|
<option value="6">Juni</option>
|
||||||
|
<option value="7">Juli</option>
|
||||||
|
<option value="8">Agustus</option>
|
||||||
|
<option value="9">September</option>
|
||||||
|
<option value="10">Oktober</option>
|
||||||
|
<option value="11">November</option>
|
||||||
|
<option value="12">Desember</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Persentase</label>
|
<label>Tahun</label>
|
||||||
<input type="number" class="form-control" name="persentase" required>
|
<input type="text" class="form-control" name="tahun" id="tahun"
|
||||||
|
oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/(\..*?)\..*/g, '$1');"
|
||||||
|
required placeholder="Masukan tahun">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Persentase (%)</label>
|
||||||
|
<input type="number" class="form-control" name="persentase" id="persentase"
|
||||||
|
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1');"
|
||||||
|
required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer text-right">
|
<div class="card-footer text-right">
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<div class="section-header">
|
<div class="section-header">
|
||||||
<h1>Detail Transaction</h1>
|
<h1>Detail Transaction</h1>
|
||||||
<div class="section-header-breadcrumb">
|
<div class="section-header-breadcrumb">
|
||||||
<div class="breadcrumb-item active"><a href="/">Dashboard</a></div>
|
<div class="breadcrumb-item active"><a href="{{route('admin.index')}}">Dashboard</a></div>
|
||||||
<div class="breadcrumb-item">Transaction</div>
|
<div class="breadcrumb-item">Transaction</div>
|
||||||
<div class="breadcrumb-item">Details</div>
|
<div class="breadcrumb-item">Details</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -33,10 +33,11 @@
|
|||||||
<td>{{ $user->id }}</td>
|
<td>{{ $user->id }}</td>
|
||||||
<td>
|
<td>
|
||||||
<figure class="avatar mr-2 avatar-xl">
|
<figure class="avatar mr-2 avatar-xl">
|
||||||
<img src="{{ $user->foto_profil != null ? asset('storage') : asset('assets/img/avatar/avatar-6.png') }}" alt="...">
|
<img src="{{ $user->foto_profil != null ? asset('storage') : asset('assets/img/avatar/avatar-6.png') }}"
|
||||||
|
alt="...">
|
||||||
</figure>
|
</figure>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ $user->nama_depan.' '.$user->nama_belakang }}</td>
|
<td>{{ $user->nama_depan . ' ' . $user->nama_belakang }}</td>
|
||||||
<td>{{ $user->email }}</td>
|
<td>{{ $user->email }}</td>
|
||||||
<td>{{ $user->created_at }}</td>
|
<td>{{ $user->created_at }}</td>
|
||||||
<td>
|
<td>
|
||||||
@ -106,8 +107,7 @@
|
|||||||
icon: response.status ? 'success' : 'error',
|
icon: response.status ? 'success' : 'error',
|
||||||
confirmButtonText: 'OK'
|
confirmButtonText: 'OK'
|
||||||
}).then(function() {
|
}).then(function() {
|
||||||
// location.reload();
|
location.reload();
|
||||||
console.log(response);
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
error: function(error) {
|
error: function(error) {
|
||||||
|
@ -54,8 +54,7 @@
|
|||||||
data-city="{{ $contact->relasiKontak->getCityName() }}"
|
data-city="{{ $contact->relasiKontak->getCityName() }}"
|
||||||
data-district="{{ $contact->relasiKontak->getDistrictName() }}"
|
data-district="{{ $contact->relasiKontak->getDistrictName() }}"
|
||||||
data-village="{{ $contact->relasiKontak->getVillageName() }}">Detail</button>
|
data-village="{{ $contact->relasiKontak->getVillageName() }}">Detail</button>
|
||||||
<button class="btn btn-danger open-detail-modal" data-toggle="modal"
|
<button class="btn btn-danger open-detail-modal" id="deleteContact"
|
||||||
data-target="#modaldelete" id="deleteContact"
|
|
||||||
data-id="{{ $contact->id }}">Delete</button>
|
data-id="{{ $contact->id }}">Delete</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -45,31 +45,21 @@
|
|||||||
<link rel="stylesheet" href="{{ asset('assets/modules/summernote/summernote-bs4.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/modules/summernote/summernote-bs4.css') }}">
|
||||||
<link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/modules/owlcarousel2/dist/assets/owl.carousel.min.css') }}">
|
||||||
<link rel="stylesheet" href="{{ asset('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" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.css" />
|
<link rel="stylesheet" type="text/css"
|
||||||
|
href="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.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="{{ asset('assets/css/style.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
|
||||||
<link rel="stylesheet" href="{{ asset('assets/css/components.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/css/components.css') }}">
|
||||||
<!-- Start GA -->
|
|
||||||
{{-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-94034622-3"></script>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
|
|
||||||
function gtag() {
|
{{-- CSS Libraries --}}
|
||||||
dataLayer.push(arguments);
|
<link rel="stylesheet" href="{{ asset('assets/modules/datatables/datatables.min.css') }}">
|
||||||
}
|
<link rel="stylesheet"
|
||||||
gtag('js', new Date());
|
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') }}">
|
||||||
gtag('config', 'UA-94034622-3');
|
<link rel="stylesheet" href="{{ asset('assets/css/main.css') }}">
|
||||||
</script> --}}
|
|
||||||
<!-- /END GA -->
|
|
||||||
|
|
||||||
{{-- JS --}}
|
{{-- JS --}}
|
||||||
{{-- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> --}}
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"
|
||||||
integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA=="
|
integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA=="
|
||||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
@ -93,9 +83,34 @@
|
|||||||
@include('user.layout.footer')
|
@include('user.layout.footer')
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
|
||||||
|
|
||||||
|
<!-- General JS Scripts -->
|
||||||
|
<script src="{{ asset('assets/modules/popper.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/modules/tooltip.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/modules/moment.min.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/js/stisla.js') }}"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
|
|
||||||
|
<!-- JS Libraies -->
|
||||||
|
<script src="{{ asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/modules/summernote/summernote-bs4.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>
|
||||||
|
|
||||||
|
<!-- Page Specific JS File -->
|
||||||
|
<script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script>
|
||||||
|
|
||||||
|
<!-- Page Specific JS File -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script>i
|
||||||
|
|
||||||
|
<!-- Template JS File -->
|
||||||
|
<script src="{{ asset('assets/js/scripts.js') }}"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
let searchParams = new URLSearchParams(window.location.search);
|
let searchParams = new URLSearchParams(window.location.search);
|
||||||
@ -138,54 +153,6 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- General JS Scripts -->
|
|
||||||
<script src="{{ asset('assets/modules/popper.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/modules/tooltip.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/modules/bootstrap/js/bootstrap.min.js') }}"></script>
|
|
||||||
|
|
||||||
<script src="{{ asset('assets/modules/moment.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/js/stisla.js') }}"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
|
||||||
|
|
||||||
<!-- JS Libraies -->
|
|
||||||
{{-- <script src="{{ asset('assets/modules/jquery.sparkline.min.js') }}"></script> --}}
|
|
||||||
<script src="{{ asset('assets/modules/owlcarousel2/dist/owl.carousel.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/modules/summernote/summernote-bs4.js') }}"></script>
|
|
||||||
{{-- <script src="{{ asset('assets/modules/chocolat/dist/js/jquery.chocolat.min.js') }}"></script> --}}
|
|
||||||
|
|
||||||
<!-- JS Libraies -->
|
|
||||||
<script src="{{ asset('assets/modules/datatables/datatables.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/modules/datatables/DataTables-1.10.16/js/dataTables.bootstrap4.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('assets/modules/datatables/Select-1.2.4/js/dataTables.select.min.js') }}"></script>
|
|
||||||
{{-- <script src="{{ asset('assets/modules/jquery-ui/jquery-ui.min.js') }}"></script> --}}
|
|
||||||
|
|
||||||
{{-- <script type="text/javascript">
|
|
||||||
$(function() {
|
|
||||||
$(document).on('click', '#payment', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
var link = $(this).attr("href");
|
|
||||||
Swal.fire({
|
|
||||||
position: 'top-end',
|
|
||||||
icon: 'Success Payment!',
|
|
||||||
title: 'Your work has been saved',
|
|
||||||
showConfirmButton: false,
|
|
||||||
timer: 1500
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
</script> --}}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Page Specific JS File -->
|
|
||||||
<script src="{{ asset('assets/js/page/modules-datatables.js') }}"></script>
|
|
||||||
|
|
||||||
<!-- Page Specific JS File -->
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/daterangepicker@3.1.0/daterangepicker.min.js"></script>i
|
|
||||||
|
|
||||||
<!-- Template JS File -->
|
|
||||||
<script src="{{ asset('assets/js/scripts.js') }}"></script>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
15
resources/views/User/layout/progress-bar.blade.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<div class="modal fade " id="modalProgressBar" data-backdrop="static" data-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">Sedang Memuat</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label class="form-label d-flex justify-content-center">Tunggu Sejenak...</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -47,12 +47,6 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{-- <div class="mt-4 mb-4 p-3 hide-sidebar-mini">
|
|
||||||
<a href="https://getstisla.com/docs" class="btn btn-primary btn-lg btn-block btn-icon-split">
|
|
||||||
<i class="fas fa-rocket"></i> Documentation
|
|
||||||
</a>
|
|
||||||
</div> --}}
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script>
|
<script src="{{ asset('assets/modules/nicescroll/jquery.nicescroll.min.js') }}"></script>
|
||||||
|
@ -7,33 +7,39 @@
|
|||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="card"
|
<form action="javascript:void(0);" id="formPengajuan" enctype="multipart/form-data">
|
||||||
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);">
|
@csrf
|
||||||
<div class="card-header d-flex justify-content-center">
|
<div class="card"
|
||||||
<h2>Form Refund Pesanan</h2>
|
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>
|
<div class="card-header d-flex justify-content-center">
|
||||||
<div class="card-body">
|
<h2>Form Refund Pesanan</h2>
|
||||||
<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>
|
||||||
|
<input type="hidden" name="id" value="{{ $id }}">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="section-title mt-0">Reason Complaint</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<label for="complaint" class="form-label">Berikan Alasan Mengapa
|
||||||
|
Melakukan Pengembalian</label>
|
||||||
|
<textarea class="form-control" aria-label="With textarea" required id="complaint" name='complaint'></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="section-title">Upload Image / Video</div>
|
<div class="section-title">Upload Image / Video</div>
|
||||||
<div class="custom-file">
|
<div class="custom-file">
|
||||||
<label for="uploadBukti" class="form-label">Sertakan bukti seperti Foto
|
<label for="uploadBukti" class="form-label">Sertakan bukti seperti Foto
|
||||||
Pesanan</label>
|
Pesanan</label>
|
||||||
<input type="file" class="form-control" name="transfer_proof" id="bukti"
|
<input type="file" class="form-control" name="bukti[]" id="fileInput"
|
||||||
accept="image/*" required multiple>
|
accept="image/*,video/*" required multiple>
|
||||||
|
<div id="previewContainer">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<button class="btn btn-info open-detail-modal" data-toggle="modal"
|
<button class="btn btn-info open-detail-modal" type="submit">Ajukan
|
||||||
data-target="#confirmtransaction">Ajukan Pengembalian</button>
|
Pengembalian</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -57,10 +63,80 @@
|
|||||||
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
|
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<a href="/refund" type="button" class="btn btn-primary" data-bs-dismiss="modal">OK!</a>
|
<a type="button" class="btn btn-primary" data-bs-dismiss="modal">OK!</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{-- akhir modal konfirmasi --}}
|
{{-- akhir modal konfirmasi --}}
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#formPengajuan').on('submit', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
let form = this;
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
const fileInput = document.getElementById('fileInput');
|
||||||
|
const previewContainer = document.getElementById('previewContainer');
|
||||||
|
|
||||||
|
fileInput.addEventListener('change', function() {
|
||||||
|
previewContainer.innerHTML = ''; // Hapus pratinjau sebelumnya
|
||||||
|
|
||||||
|
const files = fileInput.files;
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const file = files[i];
|
||||||
|
const reader = new FileReader();
|
||||||
|
|
||||||
|
reader.onload = function(e) {
|
||||||
|
const preview = document.createElement('div');
|
||||||
|
preview.classList.add('preview-item');
|
||||||
|
|
||||||
|
if (file.type.startsWith('image/')) {
|
||||||
|
preview.innerHTML =
|
||||||
|
`<img src="${e.target.result}" alt="${file.name}" class="preview-img">`;
|
||||||
|
} else if (file.type.startsWith('video/')) {
|
||||||
|
var video = document.createElement('video');
|
||||||
|
var videoUrl = URL.createObjectURL(file);
|
||||||
|
|
||||||
|
video.src = videoUrl;
|
||||||
|
video.onloadedmetadata = function() {
|
||||||
|
var duration = video.duration;
|
||||||
|
|
||||||
|
if (duration > 60) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Salah Inputan',
|
||||||
|
text: 'Inputan anda bukan foto atau video',
|
||||||
|
icon: 'error',
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
preview.innerHTML = `
|
||||||
|
<video controls class="preview-video">
|
||||||
|
<source src="${e.target.result}" type="${file.type}">
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
previewContainer.appendChild(preview);
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Salah Inputan',
|
||||||
|
text: 'Inputan anda bukan foto atau video',
|
||||||
|
icon: 'error',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -91,28 +91,6 @@
|
|||||||
</address>
|
</address>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12 text-md-left">
|
|
||||||
<address>
|
|
||||||
<strong>Tanggal Transaksi:</strong><br>
|
|
||||||
{{ $transaction->created_at }}<br><br>
|
|
||||||
</address>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<address>
|
|
||||||
<strong>Metode Pembayaran:</strong><br>
|
|
||||||
Visa ending **** 4242<br>
|
|
||||||
npannisa@gmail.com
|
|
||||||
</address>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6 text-md-right">
|
|
||||||
<address>
|
|
||||||
<strong>Tanggal Pembayaran:</strong><br>
|
|
||||||
{{ $transaction->updated_at }}<br><br>
|
|
||||||
{{-- {{$transaction->tanggal_pembayaran}}<br><br> --}}
|
|
||||||
</address>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -142,12 +120,10 @@
|
|||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-8">
|
||||||
<div class="section-title">Payment Method</div>
|
<div class="section-title">Payment Method</div>
|
||||||
<p class="section-lead">{{ $transaction->metode_pembayaran }}</p>
|
|
||||||
<div class="images">
|
<div class="images">
|
||||||
<img src="{{ asset('assets/img/visa.png') }}" alt="visa">
|
@if ($transaction->metode_pembayaran != null)
|
||||||
<img src="{{ asset('assets/img/jcb.png') }}" alt="jcb">
|
<img style="width: 20%; height: 20%;" src="{{ asset('assets/img/metode_pembayaran/'.$transaction->metode_pembayaran.'.png') }}" alt="{{$transaction->metode_pembayaran}}">
|
||||||
<img src="{{ asset('assets/img/mastercard.png') }}" alt="mastercard">
|
@endif
|
||||||
<img src="{{ asset('assets/img/paypal.png') }}" alt="paypal">
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-4 text-right">
|
<div class="col-lg-4 text-right">
|
||||||
@ -175,13 +151,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
{{-- <div class="text-right">
|
|
||||||
@if ($transaction->metode_pembayaran == "qris")
|
|
||||||
|
|
||||||
<button class="btn btn-danger" style="min-width: 100px; min-height: 60px; font-size: 16px" id="bayar">Bayar</button>
|
|
||||||
@endif
|
|
||||||
<button class="btn btn-outline-danger" style="min-width: 80px; min-height: 60px; font-size: 12px">Batal {{$transaction->metode_pembayaran}}</button>
|
|
||||||
</div> --}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -189,97 +158,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
{{-- <script type="text/javascript" src="https://app.sandbox.midtrans.com/snap/snap.js"
|
|
||||||
data-client-key="SB-Mid-client-rk6kY5XbPLChy3Lg"></script>
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
// Bayar
|
|
||||||
$('#bayar').on('click', function() {
|
|
||||||
const id = $(this).data('id');
|
|
||||||
const token = $(this).data('token');
|
|
||||||
const csrfToken = $('meta[name="csrf-token"]').attr('content');
|
|
||||||
|
|
||||||
snap.pay(token, {
|
|
||||||
onSuccess: function(result) {
|
|
||||||
const formData = new FormData();
|
|
||||||
formData.append('status', result.transaction_status);
|
|
||||||
formData.append('tanggal_pembayaran', result.transaction_time);
|
|
||||||
formData.append('metode_pembayaran', result.payment_type);
|
|
||||||
|
|
||||||
$.ajaxSetup({
|
|
||||||
headers: {
|
|
||||||
'X-CSRF-TOKEN': csrfToken
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$.ajax({
|
|
||||||
url: "{{ route('payment-transaction.pembeli', ':id') }}"
|
|
||||||
.replace(':id', id),
|
|
||||||
type: "POST",
|
|
||||||
data: formData,
|
|
||||||
contentType: false,
|
|
||||||
processData: false,
|
|
||||||
success: function(response) {
|
|
||||||
Swal.fire({
|
|
||||||
title: response.status ? 'Berhasil' :
|
|
||||||
'Gagal',
|
|
||||||
text: response.message,
|
|
||||||
icon: response.status ? 'success' :
|
|
||||||
'error',
|
|
||||||
confirmButtonText: 'OK'
|
|
||||||
});
|
|
||||||
console.log(response);
|
|
||||||
},
|
|
||||||
error: function(error) {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: 'Gagal mengupdate pembayaran ke database',
|
|
||||||
icon: 'error'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
console.log(result);
|
|
||||||
},
|
|
||||||
onPending: function(result) {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Ditunda',
|
|
||||||
text: 'Pemabayaran ditunda. Silahkan lakukan pembayaran nanti',
|
|
||||||
icon: 'info'
|
|
||||||
});
|
|
||||||
console.log(result);
|
|
||||||
},
|
|
||||||
onError: function(result) {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: 'Terjadi kesalahan karena ' + result,
|
|
||||||
icon: 'error'
|
|
||||||
});
|
|
||||||
console.log(result);
|
|
||||||
},
|
|
||||||
onClose: function(error) {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Ditunda',
|
|
||||||
text: 'Kamu menutup halaman pembayaran. Silahkan lakukan pembayaran nanti',
|
|
||||||
icon: 'info'
|
|
||||||
});
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$('table-3').on('click', '#orderHasNotReceived', function() {
|
|
||||||
const id = $(this).data('id');
|
|
||||||
console.log(id);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#table-3').on('click', '#orderHasReceived', function() {
|
|
||||||
const id = $(this).data('id');
|
|
||||||
console.log(id);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#table-3').on('click', '#refund', function() {
|
|
||||||
const id = $(this).data('id');
|
|
||||||
console.log(id);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script> --}}
|
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -68,6 +68,7 @@
|
|||||||
href="{{ route('user-transaction.detail.pembeli', $transaction->id) }}">Detail</a>
|
href="{{ route('user-transaction.detail.pembeli', $transaction->id) }}">Detail</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
{{-- di midtrans statusnya settlement --}}
|
||||||
@if ($transaction->status == 'sended')
|
@if ($transaction->status == 'sended')
|
||||||
<li><a class="dropdown-item" data-toggle="modal"
|
<li><a class="dropdown-item" data-toggle="modal"
|
||||||
data-target="#modalFinish" id="tracking"
|
data-target="#modalFinish" id="tracking"
|
||||||
@ -76,7 +77,7 @@
|
|||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if ($transaction->status == 'pending')
|
@if (in_array($transaction->status, ['pending', 'created']))
|
||||||
<li><a class="dropdown-item" id="bayar"
|
<li><a class="dropdown-item" id="bayar"
|
||||||
data-id="{{ $transaction->id }}"
|
data-id="{{ $transaction->id }}"
|
||||||
data-token="{{ $transaction->token }}"
|
data-token="{{ $transaction->token }}"
|
||||||
@ -84,6 +85,11 @@
|
|||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@if (in_array($transaction->status, ['pending', 'authorize', 'capture', 'created']))
|
||||||
|
<li><a href="#" data-id="{{ $transaction->id }}"
|
||||||
|
id="cancel" class="dropdown-item">Batal</a></li>
|
||||||
|
@endif
|
||||||
|
|
||||||
@if (!$transaction->transactionDescription->isEmpty())
|
@if (!$transaction->transactionDescription->isEmpty())
|
||||||
<li><a class="dropdown-item" data-toggle="modal"
|
<li><a class="dropdown-item" data-toggle="modal"
|
||||||
data-target="#modalTracking"
|
data-target="#modalTracking"
|
||||||
@ -105,6 +111,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Tambahkan elemen progress bar ke tampilan Anda (dengan awalnya disembunyikan) -->
|
||||||
|
<div class="progress" style="display: none;">
|
||||||
|
<div class="progress-bar" role="progressbar" style="width: 0%;" aria-valuenow="0" aria-valuemin="0"
|
||||||
|
aria-valuemax="100"></div>
|
||||||
|
</div>
|
||||||
@extends('user.transaction.pembeli.modal-end-transaction')
|
@extends('user.transaction.pembeli.modal-end-transaction')
|
||||||
@extends('user.transaction.pembeli.modal-tracking')
|
@extends('user.transaction.pembeli.modal-tracking')
|
||||||
@extends('user.transaction.pembeli.modal-keterangan-status')
|
@extends('user.transaction.pembeli.modal-keterangan-status')
|
||||||
@ -121,21 +132,17 @@
|
|||||||
|
|
||||||
snap.pay(token, {
|
snap.pay(token, {
|
||||||
onSuccess: function(result) {
|
onSuccess: function(result) {
|
||||||
const formData = new FormData();
|
|
||||||
formData.append('status', result.transaction_status);
|
|
||||||
formData.append('tanggal_pembayaran', result.transaction_time);
|
|
||||||
formData.append('metode_pembayaran', result.payment_type);
|
|
||||||
|
|
||||||
$.ajaxSetup({
|
$.ajaxSetup({
|
||||||
headers: {
|
headers: {
|
||||||
'X-CSRF-TOKEN': csrfToken
|
'X-CSRF-TOKEN': csrfToken
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{{ route('payment-transaction.pembeli', ':id') }}"
|
url: "{{ route('payment-transaction.pembeli', ':id') }}"
|
||||||
.replace(':id', id),
|
.replace(':id', id),
|
||||||
type: "POST",
|
type: "POST",
|
||||||
data: formData,
|
|
||||||
contentType: false,
|
contentType: false,
|
||||||
processData: false,
|
processData: false,
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
@ -146,6 +153,8 @@
|
|||||||
icon: response.status ? 'success' :
|
icon: response.status ? 'success' :
|
||||||
'error',
|
'error',
|
||||||
confirmButtonText: 'OK'
|
confirmButtonText: 'OK'
|
||||||
|
}).then(function() {
|
||||||
|
location.reload();
|
||||||
});
|
});
|
||||||
console.log(response);
|
console.log(response);
|
||||||
},
|
},
|
||||||
@ -155,19 +164,74 @@
|
|||||||
text: 'Gagal mengupdate pembayaran ke database',
|
text: 'Gagal mengupdate pembayaran ke database',
|
||||||
icon: 'error'
|
icon: 'error'
|
||||||
});
|
});
|
||||||
|
console.log(result);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
console.log(result);
|
console.log(result);
|
||||||
},
|
},
|
||||||
onPending: function(result) {
|
onPending: function(result) {
|
||||||
Swal.fire({
|
$.ajaxSetup({
|
||||||
title: 'Ditunda',
|
headers: {
|
||||||
text: 'Pemabayaran ditunda. Silahkan lakukan pembayaran nanti',
|
'X-CSRF-TOKEN': csrfToken
|
||||||
icon: 'info'
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('payment-transaction.pembeli', ':id') }}"
|
||||||
|
.replace(':id', id),
|
||||||
|
type: "POST",
|
||||||
|
contentType: false,
|
||||||
|
processData: false,
|
||||||
|
success: function(response) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Berhasil',
|
||||||
|
text: response.message,
|
||||||
|
icon: 'info',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
console.log(response);
|
||||||
|
},
|
||||||
|
error: function(error) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Gagal',
|
||||||
|
text: 'Gagal mengupdate pembayaran ke database',
|
||||||
|
icon: 'error'
|
||||||
|
});
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
console.log(result);
|
console.log(result);
|
||||||
},
|
},
|
||||||
onError: function(result) {
|
onError: function(result) {
|
||||||
|
$.ajaxSetup({
|
||||||
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': csrfToken
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('payment-transaction.pembeli', ':id') }}"
|
||||||
|
.replace(':id', id),
|
||||||
|
type: "POST",
|
||||||
|
contentType: false,
|
||||||
|
processData: false,
|
||||||
|
success: function(response) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Gagal',
|
||||||
|
text: response.message,
|
||||||
|
icon: 'error',
|
||||||
|
});
|
||||||
|
console.log(response);
|
||||||
|
},
|
||||||
|
error: function(error) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Gagal',
|
||||||
|
text: 'Gagal mengupdate pembayaran ke database',
|
||||||
|
icon: 'error'
|
||||||
|
});
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
});
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title: 'Gagal',
|
title: 'Gagal',
|
||||||
text: 'Terjadi kesalahan karena ' + result,
|
text: 'Terjadi kesalahan karena ' + result,
|
||||||
@ -185,6 +249,55 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#table-3').on('click', '#cancel', function() {
|
||||||
|
const id = $(this).data('id');
|
||||||
|
const csrfToken = $('meta[name="csrf-token"]').attr('content');
|
||||||
|
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Batal Transaksi?',
|
||||||
|
text: 'Apakah anda yakin batal transaksi?',
|
||||||
|
icon: 'info',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'Ya, batal',
|
||||||
|
cancelButtonText: 'Tidak',
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
$.ajaxSetup({
|
||||||
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': csrfToken
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('cancel-transaction.pembeli', ':id') }}"
|
||||||
|
.replace(':id', id),
|
||||||
|
type: "POST",
|
||||||
|
contentType: false,
|
||||||
|
processData: false,
|
||||||
|
success: function(response) {
|
||||||
|
Swal.fire({
|
||||||
|
title: response.status ? 'Berhasil' :
|
||||||
|
'Gagal',
|
||||||
|
text: response.message,
|
||||||
|
icon: response.status ? 'success' : 'error'
|
||||||
|
}).then(function() {
|
||||||
|
location.reload();
|
||||||
|
});
|
||||||
|
console.log(response);
|
||||||
|
},
|
||||||
|
error: function(error) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Gagal',
|
||||||
|
text: response.message,
|
||||||
|
icon: 'error'
|
||||||
|
});
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -246,28 +359,21 @@
|
|||||||
|
|
||||||
var modal = $(this);
|
var modal = $(this);
|
||||||
activitiesHtml += `
|
activitiesHtml += `
|
||||||
<a href="#" type="button" class="btn btn-warning" data-id="${id}" id="orderHasNotReceived">Pesanan Belum diterima</a>
|
<a href="#" type="button" class="btn btn-primary" data-id="${id}" id="finishTransaction">Selesaikan Transaksi</a>
|
||||||
<a href="#" type="button" class="btn btn-primary" data-id="${id}" id="orderHasReceived">Pesanan diterima</a>
|
<a href="#" type="button" class="btn btn-danger" data-id="${id}" id="complain">Ajukan Komplain</a>
|
||||||
<a href="#" type="button" class="btn btn-danger" data-id="${id}" id="refund">Refund</a>
|
|
||||||
`;
|
`;
|
||||||
modal.find('.modal-footer').html(activitiesHtml);
|
modal.find('.modal-footer').html(activitiesHtml);
|
||||||
console.log(id);
|
console.log(id);
|
||||||
});
|
});
|
||||||
|
|
||||||
//pesanan belum datang
|
// selesai
|
||||||
$('#modalFinish').on('click', '#orderHasNotReceived', function() {
|
$('#modalFinish').on('click', '#finishTransaction', function() {
|
||||||
var id = $(this).data('id');
|
var id = $(this).data('id');
|
||||||
console.log(id);
|
console.log(id);
|
||||||
});
|
});
|
||||||
|
|
||||||
//selesai
|
// complain
|
||||||
$('#modalFinish').on('click', '#orderHasReceived', function() {
|
$('#modalFinish').on('click', '#complain', function() {
|
||||||
var id = $(this).data('id');
|
|
||||||
console.log(id);
|
|
||||||
});
|
|
||||||
|
|
||||||
// refund
|
|
||||||
$('#modalFinish').on('click', '#refund', function() {
|
|
||||||
var id = $(this).data('id');
|
var id = $(this).data('id');
|
||||||
console.log(id);
|
console.log(id);
|
||||||
});
|
});
|
||||||
|
@ -1,70 +1,70 @@
|
|||||||
<div class="modal fade" id="modalKeteranganStatus" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"
|
<div class="modal fade" id="modalKeteranganStatus" tabindex="-1"
|
||||||
aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header d-flex justify-content-center">
|
<div class="modal-header d-flex justify-content-center">
|
||||||
<h3 class="modal-title fs-5" id="staticBackdropLabel">Keterangan Status Transaksi</h3>
|
<h3 class="modal-title fs-5" id="staticBackdropLabel">Keterangan Status Transaksi</h3>
|
||||||
<a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></a>
|
{{-- <a type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">×</a> --}}
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label class="form-label">Created</label>
|
||||||
|
<p class="form-control">Transaksi baru telah dibuat.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Pending</label>
|
<label class="form-label">Pending</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi menunggu pembayaran.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Capture</label>
|
<label class="form-label">Capture</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi berhasil dan saldo kartu berhasil diambil. Jika Anda tidak mengambil tindakan apa pun, transaksi akan berhasil diselesaikan dalam waktu 24 jam atau dalam waktu penyelesaian yang disepakati dengan bank mitra Anda dan status transaksi anda akan berubah menjadi settlement. Sehingga aman untuk mengasumsikan pembayaran berhasil.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Settlement</label>
|
<label class="form-label">Settlement</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi berhasil diselesaikan. Dana telah dikreditkan ke Rekber.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Cancel</label>
|
<label class="form-label">Cancel</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi dibatalkan. Hal ini bisa dipicu oleh Midtrans, bank partner atau pembeli.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Expire</label>
|
<label class="form-label">Expire</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi tidak dapat diproses karena pembayaran tertunda atau melebihi batas pembayaran.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Progress</label>
|
<label class="form-label">Process</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi/pesanan pembeli sedang diproses oleh penjual.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Sending</label>
|
<label class="form-label">Sending</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Pesanan sedang dikirim oleh penjual.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Sended</label>
|
<label class="form-label">Sended</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Pesanan sudah sampai ditujuan pembeli.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Finished</label>
|
<label class="form-label">Finished</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi telah selesai dan diselesaikan oleh pembeli.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Failure</label>
|
<label class="form-label">Failure</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Terjadi kesalahan tak terduga selama pemrosesan transaksi.</p>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mb-3">
|
|
||||||
<label class="form-label">Failed</label>
|
|
||||||
<p class="form-control">asdas</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Refund</label>
|
<label class="form-label">Refund</label>
|
||||||
<p class="form-control">asdas</p>
|
<p class="form-control">Transaksi ditandai untuk dikembalikan. Status pengembalian dana dipicu oleh pembeli.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
@extends('user.layout.main')
|
@extends('user.layout.main')
|
||||||
@section('content')
|
@section('content')
|
||||||
{{-- <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /> --}}
|
|
||||||
<link rel="stylesheet" href="{{ asset('assets/modules/select2/dist/css/select2.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/modules/select2/dist/css/select2.min.css') }}">
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<section class="section">
|
<section class="section">
|
||||||
@ -76,13 +75,7 @@
|
|||||||
<input type="number" class="form-control" name="jumlah_barang" id="jumlahBarang"
|
<input type="number" class="form-control" name="jumlah_barang" id="jumlahBarang"
|
||||||
placeholder="Jumlah satuan">
|
placeholder="Jumlah satuan">
|
||||||
</div>
|
</div>
|
||||||
{{-- <div class="form-group">
|
|
||||||
<label for="batasPengiriman">
|
|
||||||
<h5>Batas Pengiriman Barang</h5>
|
|
||||||
</label>
|
|
||||||
<input type="date" class="form-control" name="batas_pengiriman"
|
|
||||||
id="batasPengiriman" nama="batas_pengiriman">
|
|
||||||
</div> --}}
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputDeskripsi">
|
<label for="inputDeskripsi">
|
||||||
<h5>Deskripsi</h5>
|
<h5>Deskripsi</h5>
|
||||||
@ -99,7 +92,7 @@
|
|||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label style="margin-right: 200px;" id="biayaAdmin" data-admin="">Biaya Admin
|
<label style="margin-right: 200px;" id="biayaAdmin" data-admin="">Biaya Admin
|
||||||
({{$persentase_keuntungan}}%)</label>
|
({{ $persentase_keuntungan }}%)</label>
|
||||||
<div style="display: inline-block;" id="totalBiayaAdmin">Rp 0,00</div>
|
<div style="display: inline-block;" id="totalBiayaAdmin">Rp 0,00</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -123,276 +116,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
@extends('user.layout.progress-bar')
|
||||||
|
@extends('user.transaction.pembeli.modal-keterangan-status')
|
||||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
var persentaseKeuntungan = {{ $persentase_keuntungan }};
|
||||||
let totalHarga = 0;
|
|
||||||
let biayaAdmin = {{$persentase_keuntungan}};
|
|
||||||
let totalBiayaAdmin = 0;
|
|
||||||
let totalBayar = 0;
|
|
||||||
|
|
||||||
function tampilTotalHarga(harga) {
|
|
||||||
let tampilTotalNominal = document.getElementById('totalBiaya');
|
|
||||||
let tampilTotalBiaya = document.getElementById('totalBayar');
|
|
||||||
let tampilTotalBiayaAdmin = document.getElementById('totalBiayaAdmin');
|
|
||||||
totalBiayaAdmin = harga * biayaAdmin / 100
|
|
||||||
totalBayar = totalBiayaAdmin + harga
|
|
||||||
tampilTotalNominal.innerHTML = harga.toLocaleString('id-ID', {
|
|
||||||
style: 'currency',
|
|
||||||
currency: 'IDR'
|
|
||||||
});
|
|
||||||
tampilTotalBiaya.innerHTML = totalBayar.toLocaleString('id-ID', {
|
|
||||||
style: 'currency',
|
|
||||||
currency: 'IDR'
|
|
||||||
});;
|
|
||||||
tampilTotalBiayaAdmin.innerHTML = totalBiayaAdmin.toLocaleString('id-ID', {
|
|
||||||
style: 'currency',
|
|
||||||
currency: 'IDR'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#selectContact").select2({
|
|
||||||
placeholder: "Pilih Kontak",
|
|
||||||
ajax: {
|
|
||||||
url: "{{ route('user-contact.get') }}",
|
|
||||||
processResults: function({
|
|
||||||
data
|
|
||||||
}) {
|
|
||||||
return {
|
|
||||||
results: $.map(data, function(item) {
|
|
||||||
return {
|
|
||||||
id: item.relasi_kontak,
|
|
||||||
text: item.nama_depan + " " + item.nama_belakang,
|
|
||||||
};
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#hargaBarang').change(function() {
|
|
||||||
let harga = $(this).val();
|
|
||||||
let jumlah = $('#jumlahBarang').val();
|
|
||||||
let biaya = document.getElementById('totalBiaya');
|
|
||||||
if (harga.trim() != '') {
|
|
||||||
if (jumlah.trim() != '') {
|
|
||||||
totalHarga = harga * jumlah;
|
|
||||||
} else {
|
|
||||||
totalHarga = harga * 0;
|
|
||||||
}
|
|
||||||
tampilTotalHarga(totalHarga);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#jumlahBarang').change(function() {
|
|
||||||
let jumlah = $(this).val();
|
|
||||||
let harga = $('#hargaBarang').val();
|
|
||||||
let nominal = document.getElementById('jumlah');
|
|
||||||
if (jumlah.trim() != '') {
|
|
||||||
if (jumlah == 0) {
|
|
||||||
nominal.innerHTML = 'Nominal';
|
|
||||||
} else {
|
|
||||||
nominal.innerHTML = 'Nominal (x' + jumlah + ')';
|
|
||||||
}
|
|
||||||
if (harga.trim() != '') {
|
|
||||||
totalHarga = harga * jumlah;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
totalHarga = 0 * jumlah;
|
|
||||||
}
|
|
||||||
tampilTotalHarga(totalHarga);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
$('#selectContact').change(function() {
|
|
||||||
let email = $('#selectContact').val();
|
|
||||||
if (email === null) {
|
|
||||||
$('#inputPenjual').prop('disabled', false);
|
|
||||||
$('#checkButton').prop('disabled', false);
|
|
||||||
$('#deleteOption').prop('disabled', false);
|
|
||||||
} else {
|
|
||||||
$('#inputPenjual').prop('disabled', true);
|
|
||||||
$('#deleteOption').prop('disabled', false);
|
|
||||||
$('#checkButton').prop('disabled', true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#deleteOption').click(function() {
|
|
||||||
$('#selectContact').val(null).trigger("change");
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#inputPenjual').on('input', function() {
|
|
||||||
let emailInput = $('#inputPenjual').val();
|
|
||||||
if (emailInput.trim() == '') {
|
|
||||||
$('#selectContact').prop('disabled', false);
|
|
||||||
$('#deleteOption').prop('disabled', false);
|
|
||||||
} else {
|
|
||||||
$('#selectContact').prop('disabled', true);
|
|
||||||
$('#deleteOption').prop('disabled', true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#checkButton').click(function() {
|
|
||||||
let email = document.querySelector('[name="input_penjual"]').value;
|
|
||||||
const csrfToken = $('meta[name="csrf-token"]').attr('content');
|
|
||||||
|
|
||||||
if (email.trim() == '') {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: 'Email tidak boleh kosong',
|
|
||||||
icon: 'error'
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if (email != "{{ Auth::user()->email }}") {
|
|
||||||
$.ajaxSetup({
|
|
||||||
headers: {
|
|
||||||
'X-CSRF-TOKEN': csrfToken
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: "{{ route('user-contact.email', ':email') }}".replace(':email',
|
|
||||||
email),
|
|
||||||
type: 'GET',
|
|
||||||
success: function(response) {
|
|
||||||
if (response.status) {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Berhasil',
|
|
||||||
text: 'Akun tersedia',
|
|
||||||
icon: 'success'
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: response.message,
|
|
||||||
icon: 'error'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function(error) {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: 'Terjadi error karena, ' + error,
|
|
||||||
icon: 'error'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: 'Email penjual tidak boleh sama denggan email pembeli',
|
|
||||||
icon: 'error',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#save').on('click', function() {
|
|
||||||
let opsiKontak = document.querySelector('[name="select_penjual"]').value;
|
|
||||||
let inputKontak = document.querySelector('[name="input_penjual"]').value;
|
|
||||||
let namaBarang = document.querySelector('[name="nama_barang"]').value;
|
|
||||||
let hargaBarang = document.querySelector('[name="harga_barang"]').value;
|
|
||||||
let satuanBarang = document.querySelector('[name="satuan_barang"]').value;
|
|
||||||
let jumlahBarang = document.querySelector('[name="jumlah_barang"]').value;
|
|
||||||
let deskripsi = document.querySelector('textarea[name="deskripsi"]').value;
|
|
||||||
|
|
||||||
let emptyInput = [];
|
|
||||||
|
|
||||||
let penjual = '';
|
|
||||||
if (opsiKontak != "" && inputKontak != "") {
|
|
||||||
penjual = opsiKontak;
|
|
||||||
} else if (opsiKontak == "" && inputKontak != "") {
|
|
||||||
penjual = inputKontak;
|
|
||||||
} else if (inputKontak == "" && opsiKontak != "") {
|
|
||||||
penjual = opsiKontak;
|
|
||||||
} else {
|
|
||||||
console.log('Kosong');
|
|
||||||
emptyInput.push("Kolom penjual tidak boleh kosong");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (penjual == "{{ Auth::user()->email }}") {
|
|
||||||
emptyInput.push("Email penjual tidak boleh sama dengan email pembeli");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (namaBarang == "") {
|
|
||||||
emptyInput.push("Nama barang tidak boleh kosong");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hargaBarang == "") {
|
|
||||||
emptyInput.push("Harga barang tidak boleh kosong");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (satuanBarang == "") {
|
|
||||||
emptyInput.push("Satuan barang tidak boleh kosong");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (jumlahBarang == "") {
|
|
||||||
emptyInput.push("Jumlah barang tidak boleh kosong");
|
|
||||||
}
|
|
||||||
|
|
||||||
// if (batasPengiriman == "") {
|
|
||||||
// emptyInput.push("Batas pengiriman tidak boleh kosong");
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (emptyInput.length > 0) {
|
|
||||||
const emptyInputError = emptyInput.join(', ');
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: emptyInputError,
|
|
||||||
icon: 'error',
|
|
||||||
confirmButtonText: 'OK',
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const csrfToken = $('meta[name="csrf-token"]').attr('content');
|
|
||||||
const formData = new FormData();
|
|
||||||
formData.append('email_penjual', penjual);
|
|
||||||
formData.append('nama_barang', namaBarang);
|
|
||||||
formData.append('satuan_barang', satuanBarang);
|
|
||||||
formData.append('harga_barang', hargaBarang);
|
|
||||||
formData.append('jumlah_barang', jumlahBarang);
|
|
||||||
// formData.append('batas_pengiriman', batasPengiriman);
|
|
||||||
formData.append('deskripsi', deskripsi);
|
|
||||||
formData.append('persentase_keuntungan', biayaAdmin);
|
|
||||||
formData.append('total_keuntungan', totalBiayaAdmin);
|
|
||||||
formData.append('total_harga', totalHarga);
|
|
||||||
formData.append('total_bayar', totalBayar);
|
|
||||||
|
|
||||||
$.ajaxSetup({
|
|
||||||
headers: {
|
|
||||||
'X-CSRF-TOKEN': csrfToken
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: "{{ route('store-transaction.pembeli') }}",
|
|
||||||
type: "POST",
|
|
||||||
data: formData,
|
|
||||||
processData: false,
|
|
||||||
contentType: false,
|
|
||||||
success: function(response) {
|
|
||||||
Swal.fire({
|
|
||||||
title: response.status ? 'Berhasil' : 'Gagal',
|
|
||||||
text: response.message,
|
|
||||||
icon: response.status ? 'success' : 'error',
|
|
||||||
confirmButtonText: 'OK'
|
|
||||||
}).then(function() {
|
|
||||||
location.href =
|
|
||||||
"{{ route('user-transaction.index.pembeli') }}"
|
|
||||||
});
|
|
||||||
console.log(response);
|
|
||||||
},
|
|
||||||
error: function(error) {
|
|
||||||
Swal.fire({
|
|
||||||
title: 'Gagal',
|
|
||||||
text: 'Gagal mengirimkan data karena ' + error,
|
|
||||||
icon: 'error'
|
|
||||||
});
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
<script src="{{ asset('assets/js/progress_bar/progress_bar.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/js/user/new-transaction.js') }}"></script>
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -68,31 +68,12 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<!-- ======= PRELOADER ======= -->
|
|
||||||
{{-- <div id="preloader">
|
|
||||||
<div id="status">
|
|
||||||
<div class="preloader" aria-busy="true" aria-label="Loading, please wait." role="progressbar">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> --}}
|
|
||||||
<!-- ======= END PRELOADER ======= -->
|
|
||||||
|
|
||||||
<!-- ======= MODAL ======= -->
|
|
||||||
{{-- <div class="modal_wrapper">
|
|
||||||
<div class="shadow"></div>
|
|
||||||
<div class="success_wrap">
|
|
||||||
<span class="modal_icon"><ion-icon name="checkmark-sharp"></ion-icon></span>
|
|
||||||
<p>You have successfully completed the process.</p>
|
|
||||||
</div>
|
|
||||||
</div> --}}
|
|
||||||
<!-- ======= MODAL ======= -->
|
|
||||||
|
|
||||||
<div class="container mt-5">
|
<div class="container mt-5">
|
||||||
<div class="forms-container">
|
<div class="forms-container">
|
||||||
<div class="signin-signup">
|
<div class="signin-signup">
|
||||||
|
|
||||||
<!-- ======= SIGN IN FORM ======= -->
|
<!-- ======= SIGN IN FORM ======= -->
|
||||||
<form action="{{ route('authenticate') }}" class="sign-in-form" method="POST"
|
<form action="{{ route('autentikasi') }}" class="sign-in-form" method="POST"
|
||||||
enctype="multipart/form-data">
|
enctype="multipart/form-data">
|
||||||
@csrf
|
@csrf
|
||||||
<h2 class="title">Sign In</h2>
|
<h2 class="title">Sign In</h2>
|
||||||
@ -116,8 +97,7 @@
|
|||||||
<!-- ======= END SIGN IN FORM ======= -->
|
<!-- ======= END SIGN IN FORM ======= -->
|
||||||
|
|
||||||
<!-- ======= SIGN UP FORM ======= -->
|
<!-- ======= SIGN UP FORM ======= -->
|
||||||
<form action="{{ route('register') }}" class="sign-up-form" id="msform" enctype="multipart/form-data"
|
<form action="#" class="sign-up-form" id="msform" enctype="multipart/form-data" method="POST">
|
||||||
method="POST">
|
|
||||||
@csrf
|
@csrf
|
||||||
<h2 class="title">Sign Up</h2>
|
<h2 class="title">Sign Up</h2>
|
||||||
<p style="width: 90%">
|
<p style="width: 90%">
|
||||||
@ -217,7 +197,7 @@
|
|||||||
<!-- ======= FORM ADDRESS ======= -->
|
<!-- ======= FORM ADDRESS ======= -->
|
||||||
<div class="form_2 data_info" style="display: none;">
|
<div class="form_2 data_info" style="display: none;">
|
||||||
<div class="input-field" style="width: 190%; padding: 0rem 1rem;">
|
<div class="input-field" style="width: 190%; padding: 0rem 1rem;">
|
||||||
<select id="selectProvince" data-url="{{ route('cari.provinsi') }}"
|
<select id="selectProvince" data-url="{{ route('cari-provinsi') }}"
|
||||||
style="width: 100%; border: 1px solid transparent; " class="input-field"
|
style="width: 100%; border: 1px solid transparent; " class="input-field"
|
||||||
aria-label="Default select example">
|
aria-label="Default select example">
|
||||||
|
|
||||||
@ -467,7 +447,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{{ route('status.akun', ':email') }}".replace(':email', email),
|
url: "{{ route('status-akun', ':email') }}".replace(':email', email),
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
let status = response.message[0].status
|
let status = response.message[0].status
|
||||||
@ -590,7 +570,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{{ route('kirim.kode') }}",
|
url: "{{ route('kirim-kode') }}",
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: formData,
|
data: formData,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use App\Http\Controllers\Admin\AdminRefundController;
|
||||||
|
use App\Http\Controllers\Admin\AdminSettingController;
|
||||||
|
use App\Http\Controllers\Admin\AdminUserController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use App\Http\Controllers\API\LoginApiController;
|
use App\Http\Controllers\API\LoginApiController;
|
||||||
|
use App\Http\Controllers\Profile\ProfileController;
|
||||||
|
use App\Http\Controllers\User\UserContactController;
|
||||||
|
use App\Http\Controllers\User\UserDashboardController;
|
||||||
|
use App\Http\Controllers\User\UserRefundController;
|
||||||
|
use App\Http\Controllers\User\UserTransactionController;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -15,22 +22,86 @@ use App\Http\Controllers\API\LoginApiController;
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
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(
|
Route::group(
|
||||||
[
|
[
|
||||||
'middleware' => 'api',
|
'middleware' => 'api',
|
||||||
'prefix' => 'auth',
|
'prefix' => 'auth',
|
||||||
],
|
],
|
||||||
function ($router) {
|
function () {
|
||||||
Route::post('login', [LoginApiController::class,'login']);
|
Route::post('login', [LoginApiController::class,'login']);
|
||||||
Route::post('logout', [LoginApiController::class,'logout']);
|
Route::post('logout', [LoginApiController::class,'logout']);
|
||||||
Route::post('refresh', [LoginApiController::class,'refresh']);
|
Route::post('refresh', [LoginApiController::class,'refresh']);
|
||||||
Route::post('me', [LoginApiController::class,'me']);
|
Route::post('me', [LoginApiController::class,'me']);
|
||||||
Route::post('register',[LoginApiController::class,'register']);
|
Route::post('register',[LoginApiController::class,'register']);
|
||||||
Route::post('hai',[LoginApiController::class,'hai']);
|
Route::post('hai',[LoginApiController::class,'hai']);
|
||||||
// Route::post('status',[LoginApiController::class,'check']);
|
Route::post('status',[LoginApiController::class,'check']);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Route::middleware(['auth'])->group(function(){
|
||||||
|
Route::middleware(['admin'])->group(function(){
|
||||||
|
Route::prefix('admin')->group(function(){
|
||||||
|
// aprove atau deny dan hapus user
|
||||||
|
Route::controller(AdminUserController::class)->group(function(){
|
||||||
|
Route::delete('admin-user/{id}','delete')->name('admin-user.destroy');
|
||||||
|
Route::put('admin-user/approve-user/{id}', 'approveUser')->name('admin-user.approve');
|
||||||
|
Route::put('admin-user/deny-user/{id}', 'denyUser')->name('admin-user.deny');
|
||||||
|
});
|
||||||
|
|
||||||
|
// approve atau deny dan hapus refund
|
||||||
|
Route::controller(AdminRefundController::class)->group(function(){
|
||||||
|
Route::put('admin-refund/approve-refund/{id}','approveRefund')->name('admin-refund.approve');
|
||||||
|
Route::put('admin-refund/deny-refund/{id}','denyRefund')->name('admin-refund.deny');
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::controller(AdminSettingController::class)->group(function(){
|
||||||
|
Route::post('admin-setting/store','store')->name('admin-setting.store');
|
||||||
|
Route::put('admin-setting/active/{id}','activeSetting')->name('admin-setting.active-setting');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::prefix('profile')->group(function(){
|
||||||
|
Route::controller(ProfileController::class)->group(function(){
|
||||||
|
Route::put('update','update')->name('profile.update');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::middleware(['user'])->group(function(){
|
||||||
|
Route::prefix('user')->group(function(){
|
||||||
|
Route::controller(UserDashboardController::class)->group(function(){
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::controller(UserContactController::class)->group(function(){
|
||||||
|
Route::post('user-contact','store')->name('user-contact.store');
|
||||||
|
Route::delete('user-contact/delete/{id}','destroy')->name('user-contact.destroy');
|
||||||
|
Route::get('user-contact/get-user-contact','getContact')->name('user-contact.get');
|
||||||
|
Route::get('user-contact/cek-contact/{email}','checkEmail')->name('user-contact.email');
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::controller(UserTransactionController::class)->group(function(){
|
||||||
|
// Pembeli
|
||||||
|
Route::post('user-pembeli','store')->name('user-pembeli.store');
|
||||||
|
Route::put('user-pembeli/bayar-transaksi/{id}','payTransaction')->name('user-pembeli.pay');
|
||||||
|
Route::put('user-pembeli/batal-transaksi/{id}','cancelTransaction')->name('user-pembeli.cancel');
|
||||||
|
Route::put('user-pembeli/transaksi-selesai/{id}','finishTransaction')->name('user-pembeli.finish');
|
||||||
|
Route::put('user-pembeli/transaksi-komplain/{id}','complainTransaction')->name('user-pembeli.complain');
|
||||||
|
|
||||||
|
// Penjual
|
||||||
|
Route::put('user-penjual/terima-transaksi/{id}','acceptTransaction')->name('user-penjual.accept');
|
||||||
|
Route::put('user-penjual/kirim-pesanan/{id}','sendingOrder')->name('user-penjual.sending');
|
||||||
|
Route::put('user-penjual/selesai-kirim-pesanan/{id}','sentOrder')->name('user-penjual.sent');
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::controller(UserRefundController::class)->group(function(){
|
||||||
|
Route::post('user-refund','store')->name('user-refund.store');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
@ -11,6 +11,7 @@ use App\Http\Controllers\Admin\AdminTransactionController;
|
|||||||
use App\Http\Controllers\Admin\AdminDashboardController;
|
use App\Http\Controllers\Admin\AdminDashboardController;
|
||||||
//Login
|
//Login
|
||||||
use App\Http\Controllers\Login\LoginController;
|
use App\Http\Controllers\Login\LoginController;
|
||||||
|
use App\Http\Controllers\Profile\ProfileController;
|
||||||
//User
|
//User
|
||||||
use App\Http\Controllers\User\UserDashboardController;
|
use App\Http\Controllers\User\UserDashboardController;
|
||||||
use App\Http\Controllers\User\UserContactController;
|
use App\Http\Controllers\User\UserContactController;
|
||||||
@ -29,7 +30,7 @@ use App\Http\Controllers\User\UserRefundController;
|
|||||||
| be assigned to the "web" middleware group. Make something great!
|
| be assigned to the "web" middleware group. Make something great!
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
Route::get('/welcome', function () {
|
Route::get('/', function () {
|
||||||
return view('welcome'
|
return view('welcome'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -99,16 +100,16 @@ Route::get('/next_detail_refund',function() {
|
|||||||
|
|
||||||
// Login, logout dan register
|
// Login, logout dan register
|
||||||
Route::controller(LoginController::class)->group(function(){
|
Route::controller(LoginController::class)->group(function(){
|
||||||
Route::get('/login','login')->name('login');
|
Route::get('login','login')->name('login');
|
||||||
Route::get('/logout','logout')->name('logout');
|
Route::get('logout','logout')->name('logout');
|
||||||
Route::post('/authenticate','authenticate')->name('authenticate');
|
Route::post('authenticate','authenticate')->name('autentikasi');
|
||||||
Route::post('/register','register')->name('register');
|
Route::post('register','register')->name('register');
|
||||||
Route::get('/cek-email/{email}','statusAkun')->name('status.akun');
|
Route::get('cek-email/{email}','accountStatus')->name('status-akun');
|
||||||
Route::get('/cari-provinsi','cariProvinsi')->name('cari.provinsi');
|
Route::get('cari-provinsi','searchProvince')->name('cari-provinsi');
|
||||||
Route::get('/cari-kota/{code}','cariKota')->name('cari.kota');
|
Route::get('cari-kota/{code}','searchCity')->name('cari-kota');
|
||||||
Route::get('/cari-kecamatan/{code}','cariKecamatan')->name('cari.kecamatan');
|
Route::get('cari-kecamatan/{code}','searchDistrict')->name('cari-kecamatan');
|
||||||
Route::get('/cari-kelurahan/{code}','cariKelurahan')->name('cari.kelurahan');
|
Route::get('cari-kelurahan/{code}','searchVillage')->name('cari-kelurahan');
|
||||||
Route::post('/kode-verifikasi','kirimKodeVerifikasi')->name('kirim.kode');
|
Route::post('kode-verifikasi','sendVerificationCode')->name('kirim-kode');
|
||||||
Route::get('ocr','getOcr');
|
Route::get('ocr','getOcr');
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -116,60 +117,76 @@ Route::controller(LoginController::class)->group(function(){
|
|||||||
Route::middleware(['auth'])->group(function(){
|
Route::middleware(['auth'])->group(function(){
|
||||||
Route::middleware(['admin'])->group(function(){
|
Route::middleware(['admin'])->group(function(){
|
||||||
Route::prefix('admin')->group(function(){
|
Route::prefix('admin')->group(function(){
|
||||||
|
|
||||||
// Tampilan dashboard admin beserta perhitungan
|
// Tampilan dashboard admin beserta perhitungan
|
||||||
Route::controller(AdminDashboardController::class)->group(function(){
|
Route::controller(AdminDashboardController::class)->group(function(){
|
||||||
Route::get('/','index')->name('admin.index');
|
Route::get('/','index')->name('admin.index');
|
||||||
Route::get('/profile','profile')->name('admin.profile');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Tampilan, aprove atau deny dan hapus user
|
// Tampilan, aprove atau deny dan hapus user
|
||||||
// Route::resource('admin-user', AdminUserController::class);
|
|
||||||
Route::controller(AdminUserController::class)->group(function(){
|
Route::controller(AdminUserController::class)->group(function(){
|
||||||
Route::get('admin-user','index')->name('admin-user.index');
|
Route::get('admin-user','index')->name('admin-user.index');
|
||||||
Route::get('admin-user/{id}','show')->name('admin-user.show');
|
Route::get('admin-user/{id}','show')->name('admin-user.show');
|
||||||
Route::delete('admin-user/{id}','delete')->name('admin-user.destroy');
|
|
||||||
Route::put('admin-user/approve-user/{id}', 'approveUser')->name('admin-user.approve');
|
|
||||||
Route::put('admin-user/deny-user/{id}', 'denyUser')->name('admin-user.deny');
|
|
||||||
});
|
});
|
||||||
// Tampilan transaksi
|
|
||||||
Route::resource('admin-transaction', AdminTransactionController::class);
|
// Tampilan transaksi (Sudah)
|
||||||
|
Route::controller(AdminTransactionController::class)->group(function(){
|
||||||
|
Route::get('admin-transaction','index')->name('admin-transaction.index');
|
||||||
|
Route::get('admin-transaction/detail/{id}','show')->name('admin-transaction.show');
|
||||||
|
});
|
||||||
|
|
||||||
// Tampilan, approve atau deny dan hapus refund
|
// Tampilan, approve atau deny dan hapus refund
|
||||||
Route::resource('admin-refund',AdminRefundController::class);
|
Route::controller(AdminRefundController::class)->group(function(){
|
||||||
|
Route::get('admin-refund','index')->name('admin-refund.index');
|
||||||
|
Route::get('admin-refund/{id}','show')->name('admin-refund.show');
|
||||||
|
});
|
||||||
|
|
||||||
// Tampilan, tambah, ubah dan hapus kebijakan persentase perusahaan
|
// Tampilan, tambah, ubah dan hapus kebijakan persentase perusahaan
|
||||||
Route::resource('admin-setting',AdminSettingController::class);
|
Route::controller(AdminSettingController::class)->group(function(){
|
||||||
|
Route::get('admin-setting','index')->name('admin-setting.index');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::prefix('profile')->group(function(){
|
||||||
|
Route::controller(ProfileController::class)->group(function(){
|
||||||
|
Route::get('/','index')->name('profile.index');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
Route::middleware(['user'])->group(function(){
|
Route::middleware(['user'])->group(function(){
|
||||||
Route::prefix('user')->group(function(){
|
Route::prefix('user')->group(function(){
|
||||||
|
|
||||||
// Tampilan dashboard user beserta perhitungan
|
// Tampilan dashboard user beserta perhitungan
|
||||||
Route::controller(UserDashboardController::class)->group(function(){
|
Route::controller(UserDashboardController::class)->group(function(){
|
||||||
Route::get('/','index')->name('user.index');
|
Route::get('/','index')->name('user.index');
|
||||||
Route::get('/profile','profile')->name('user.profile');
|
//
|
||||||
});
|
});
|
||||||
|
|
||||||
// Tampilan, tambah dan hapus kontak
|
// Tampilan, tambah dan hapus kontak
|
||||||
Route::controller(UserContactController::class)->group(function(){
|
Route::controller(UserContactController::class)->group(function(){
|
||||||
Route::get('user-contact','index')->name('user-contact.index');
|
Route::get('user-contact','index')->name('user-contact.index');
|
||||||
Route::get('cek-contact/{email}','cekEmail')->name('user-contact.email');
|
|
||||||
Route::post('user-contact','store')->name('user-contact.store');
|
|
||||||
Route::delete('user-contact/{id}','destroy')->name('user-contact.delete');
|
|
||||||
Route::get('get-user-contact','getContact')->name('user-contact.get');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Tampilan transaksi, bayar, update status pengiriman dan refund
|
// Tampilan transaksi, bayar, update status pengiriman dan refund
|
||||||
Route::controller(UserTransactionController::class)->group(function(){
|
Route::controller(UserTransactionController::class)->group(function(){
|
||||||
// Pembeli
|
// Pembeli
|
||||||
Route::get('user-transaction-pembeli','indexPembeli')->name('user-transaction.index.pembeli');
|
Route::get('user-pembeli','indexPembeli')->name('user-pembeli.index');
|
||||||
Route::get('detail-user-transaction-pembeli/{id}','detailTransaction')->name('user-transaction.detail.pembeli');
|
Route::get('user-pembeli/detail-transaksi/{id}','show')->name('user-pembeli.show');
|
||||||
Route::get('tambah-transaction','createTransaction')->name('tambah-transaction.pembeli');
|
Route::get('user-pembeli/tambah-transaksi','create')->name('user-pembeli.create');
|
||||||
Route::post('store-transaction','storeTransaction')->name('store-transaction.pembeli');
|
Route::get('user-pembeli/invoice/{id}','invoice')->name('user-pembeli.invoice');
|
||||||
Route::post('payment-transaction/{id}','paymentTransaction')->name('payment-transaction.pembeli');
|
|
||||||
Route::get('status','status');
|
|
||||||
//Penjual
|
//Penjual
|
||||||
Route::get('user-transaction-penjual','indexPenjual')->name('user-transaction.index.penjual');
|
Route::get('user-penjual','indexPenjual')->name('user-penjual.index');
|
||||||
Route::get('translate','cancelTransaction');
|
Route::get('user-penjual/detail-transaksi/{id}','show')->name('user-penjual.show');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Tampilan refund
|
// Tampilan refund
|
||||||
Route::controller(UserRefundController::class)->group(function(){
|
Route::controller(UserRefundController::class)->group(function(){
|
||||||
Route::get('user-refund','index')->name('user-refund.index');
|
Route::get('user-refund','index')->name('user-refund.index');
|
||||||
Route::get('user-refund-create','create')->name('user-refund.create');
|
Route::get('user-refund/ajukan-komplain/{id}','create')->name('user-refund.create');
|
||||||
|
Route::get('user-refund/detail-refund/{id}','show')->name('user-refund.show');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|