Penambahan FrontEnd All-New-Manufacture
BIN
app/Http/Controllers/.DS_Store
vendored
Normal file
84
app/Http/Controllers/ApiV1MemberController.php
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class ApiV1MemberController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
111
app/Http/Controllers/Apps/ModifiedTransaksi.php
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Apps;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\JenisMobil;
|
||||||
|
use App\Models\TransaksiParkir;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class ModifiedTransaksi extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
// dd($id);
|
||||||
|
return view ('apps.modified-trans', ['data' => null]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
Log::info(json_encode($id));
|
||||||
|
$vehicle = JenisMobil::all();
|
||||||
|
$data = TransaksiParkir::select('no_pol','waktu_masuk','waktu_keluar','jm.nama as vehicle','id_kendaraan','np.nama as gateIn', 'id_pintu_masuk')
|
||||||
|
->leftJoin('jenis_mobil as jm', 'jm.id', '=', 'transaksi_parkir.id_kendaraan')
|
||||||
|
->leftJoin('nama_pos as np', 'np.id', '=', 'transaksi_parkir.id_pintu_masuk')
|
||||||
|
->where('no_pol', $id)
|
||||||
|
->where('status', 1)
|
||||||
|
->first();
|
||||||
|
Log::info(json_encode($data));
|
||||||
|
return view('apps.modified-trans', [
|
||||||
|
'data' => $data,
|
||||||
|
'vehicle' => $vehicle
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'id_kendaraan_baru' => 'required|exists:jenis_mobils,id', // validasi agar ID ada di database
|
||||||
|
]);
|
||||||
|
|
||||||
|
$no_pol=$id;
|
||||||
|
// Ambil data transaksi berdasarkan ID di URL
|
||||||
|
$transaksi = TransaksiParkir::findOrFail($no_pol);
|
||||||
|
|
||||||
|
// Update jenis kendaraan
|
||||||
|
$transaksi->id_kendaraan = $request->id_kendaraan_baru;
|
||||||
|
$transaksi->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
40
app/Http/Controllers/Auth/ConfirmPasswordController.php
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
|
use Illuminate\Foundation\Auth\ConfirmsPasswords;
|
||||||
|
|
||||||
|
class ConfirmPasswordController extends Controller
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Confirm Password Controller
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This controller is responsible for handling password confirmations and
|
||||||
|
| uses a simple trait to include the behavior. You're free to explore
|
||||||
|
| this trait and override any functions that require customization.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
use ConfirmsPasswords;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Where to redirect users when the intended url fails.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $redirectTo = RouteServiceProvider::HOME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new controller instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth');
|
||||||
|
}
|
||||||
|
}
|
||||||
22
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||||
|
|
||||||
|
class ForgotPasswordController extends Controller
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Password Reset Controller
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This controller is responsible for handling password reset emails and
|
||||||
|
| includes a trait which assists in sending these notifications from
|
||||||
|
| your application to your users. Feel free to explore this trait.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
use SendsPasswordResetEmails;
|
||||||
|
}
|
||||||
59
app/Http/Controllers/Auth/LoginController.php
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
|
||||||
|
class LoginController extends Controller
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Login Controller
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This controller handles authenticating users for the application and
|
||||||
|
| redirecting them to your home screen. The controller uses a trait
|
||||||
|
| to conveniently provide its functionality to your applications.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
use AuthenticatesUsers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Where to redirect users after login.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $redirectTo = RouteServiceProvider::HOME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new controller instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('guest')->except('logout');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function username()
|
||||||
|
{
|
||||||
|
$login = request()->input('login');
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
request()->merge([$field => $login]);
|
||||||
|
return $field;
|
||||||
|
// return 'username';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function credentials (Request $request)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
$this->username() => $request->input('login'),
|
||||||
|
'password' => $request->input('password'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
73
app/Http/Controllers/Auth/RegisterController.bak
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
|
||||||
|
class RegisterController extends Controller
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Register Controller
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This controller handles the registration of new users as well as their
|
||||||
|
| validation and creation. By default this controller uses a trait to
|
||||||
|
| provide this functionality without requiring any additional code.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
use RegistersUsers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Where to redirect users after registration.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $redirectTo = RouteServiceProvider::HOME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new controller instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('guest');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a validator for an incoming registration request.
|
||||||
|
*
|
||||||
|
* @param array $data
|
||||||
|
* @return \Illuminate\Contracts\Validation\Validator
|
||||||
|
*/
|
||||||
|
protected function validator(array $data)
|
||||||
|
{
|
||||||
|
return Validator::make($data, [
|
||||||
|
'name' => ['required', 'string', 'max:255'],
|
||||||
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||||
|
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new user instance after a valid registration.
|
||||||
|
*
|
||||||
|
* @param array $data
|
||||||
|
* @return \App\Models\User
|
||||||
|
*/
|
||||||
|
protected function create(array $data)
|
||||||
|
{
|
||||||
|
return User::create([
|
||||||
|
'name' => $data['name'],
|
||||||
|
'email' => $data['email'],
|
||||||
|
'password' => Hash::make($data['password']),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
93
app/Http/Controllers/Auth/RegisterController.php
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\Pegawai;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
|
||||||
|
class RegisterController extends Controller
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Register Controller
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This controller handles the registration of new users as well as their
|
||||||
|
| validation and creation. By default this controller uses a trait to
|
||||||
|
| provide this functionality without requiring any additional code.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
use RegistersUsers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Where to redirect users after registration.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $redirectTo = RouteServiceProvider::HOME;
|
||||||
|
// protected $redirectTo = '/login';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new controller instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('guest');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a validator for an incoming registration request.
|
||||||
|
*
|
||||||
|
* @param array $data
|
||||||
|
* @return \Illuminate\Contracts\Validation\Validator
|
||||||
|
*/
|
||||||
|
protected function validator(array $data)
|
||||||
|
{
|
||||||
|
return Validator::make($data, [
|
||||||
|
'name' => ['required', 'string', 'max:255'],
|
||||||
|
'username' => ['required', 'string', 'max:8'],
|
||||||
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||||
|
// 'username' => ['requierd', 'string','max:16'],
|
||||||
|
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new user instance after a valid registration.
|
||||||
|
*
|
||||||
|
* @param array $data
|
||||||
|
* @return \App\Models\User
|
||||||
|
*/
|
||||||
|
protected function create(array $data)
|
||||||
|
{
|
||||||
|
$nomer = Pegawai::select('nomer')->orderBy('nomer', 'desc')->first();
|
||||||
|
$level = DB::table('level_user')->orderBy('level_code','desc')->first();
|
||||||
|
$seqNomer = $nomer->nomer + 1;
|
||||||
|
return Pegawai::create([
|
||||||
|
'nomer' => $seqNomer,
|
||||||
|
'nama' => $data['name'],
|
||||||
|
'username' => $data['username'],
|
||||||
|
'email' => $data['email'],
|
||||||
|
'password' => $data['password'],
|
||||||
|
'bisalogin' => 1,
|
||||||
|
'status' => 1,
|
||||||
|
'level_pegawai' => $level->level_code,
|
||||||
|
// 'password' => Hash::make($data['password']),
|
||||||
|
]);
|
||||||
|
|
||||||
|
// return User::create([
|
||||||
|
// 'name' => $data['name'],
|
||||||
|
// 'email' => $data['email'],
|
||||||
|
// 'password' => Hash::make($data['password']),
|
||||||
|
// ]);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
app/Http/Controllers/Auth/ResetPasswordController.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
|
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||||
|
|
||||||
|
class ResetPasswordController extends Controller
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Password Reset Controller
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This controller is responsible for handling password reset requests
|
||||||
|
| and uses a simple trait to include this behavior. You're free to
|
||||||
|
| explore this trait and override any methods you wish to tweak.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
use ResetsPasswords;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Where to redirect users after resetting their password.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $redirectTo = RouteServiceProvider::HOME;
|
||||||
|
}
|
||||||
42
app/Http/Controllers/Auth/VerificationController.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Providers\RouteServiceProvider;
|
||||||
|
use Illuminate\Foundation\Auth\VerifiesEmails;
|
||||||
|
|
||||||
|
class VerificationController extends Controller
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Email Verification Controller
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This controller is responsible for handling email verification for any
|
||||||
|
| user that recently registered with the application. Emails may also
|
||||||
|
| be re-sent if the user didn't receive the original email message.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
use VerifiesEmails;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Where to redirect users after verification.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $redirectTo = RouteServiceProvider::HOME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new controller instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth');
|
||||||
|
$this->middleware('signed')->only('verify');
|
||||||
|
$this->middleware('throttle:6,1')->only('verify', 'resend');
|
||||||
|
}
|
||||||
|
}
|
||||||
13
app/Http/Controllers/Controller 2.php
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||||
|
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||||
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||||
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
|
|
||||||
|
class Controller extends BaseController
|
||||||
|
{
|
||||||
|
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||||
|
}
|
||||||
13
app/Http/Controllers/DashboardController.php
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class DashboardController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
43
app/Http/Controllers/HomeController.php
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\TransaksiParkir;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class HomeController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new controller instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the application dashboard.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Contracts\Support\Renderable
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$dateNow = Carbon::now()->format('Y-m-d');
|
||||||
|
$data = TransaksiParkir::get();
|
||||||
|
|
||||||
|
$VeriTrans = TransaksiParkir::where('veri_check', 2)->whereDate('veri_date', $dateNow)->count();
|
||||||
|
$incidenTrans = TransaksiParkir::where('veri_check', 0)->whereDate('veri_date', $dateNow)->count();
|
||||||
|
$pendingTrans = TransaksiParkir::where('veri_check', 1)->whereDate('veri_date', $dateNow)->count();
|
||||||
|
$inSite = TransaksiParkir::where('status', 1)->count();
|
||||||
|
// $VeriTrans = $data->where('veri_check', 2)->whereDate('veri_date', $dateNow)->count();
|
||||||
|
// $incidenTrans = $data->where('veri_check', 0)->whereDate('veri_date', $dateNow)->count();
|
||||||
|
// $pendingTrans = $data->where('veri_check', 1)->whereDate('veri_date', $dateNow)->count();
|
||||||
|
// $inSite = $data->where('status',1)->count();
|
||||||
|
|
||||||
|
// dd($dateNow, $VeriTrans,$incidenTrans);
|
||||||
|
return view('home', compact('VeriTrans','incidenTrans', 'pendingTrans','inSite'));
|
||||||
|
}
|
||||||
|
}
|
||||||
85
app/Http/Controllers/LostiketController.php
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class LostiketController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
return view ('lostiket');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
84
app/Http/Controllers/MemberProduct.php
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class MemberProduct extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
87
app/Http/Controllers/MemberProductController.php
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\ProdukPrice;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class MemberProductController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$products = ProdukPrice::getProduct();
|
||||||
|
|
||||||
|
return view('register', compact('products'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
311
app/Http/Controllers/MemberStikerController.php
Normal file
@@ -0,0 +1,311 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\MemberCard;
|
||||||
|
use App\Models\StikerTrans;
|
||||||
|
use App\Models\StikerTransDetail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Exception;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Js;
|
||||||
|
use Yajra\DataTables\Facades\DataTables;
|
||||||
|
|
||||||
|
class MemberStikerController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$vehicleSelect = DB::table('jenis_mobil')->get();
|
||||||
|
$departmentSelect = DB::table('stasiunkerja')->get();
|
||||||
|
$memberSelect = DB::table('jenis_langganan')->get();
|
||||||
|
$jenisStiker = DB::table('tarif_stiker')->get();
|
||||||
|
|
||||||
|
return view('member.member', compact([
|
||||||
|
'vehicleSelect',
|
||||||
|
'departmentSelect',
|
||||||
|
'memberSelect',
|
||||||
|
'jenisStiker',
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMember (Request $request)
|
||||||
|
{
|
||||||
|
Log::info(json_encode('nopol : ' .$request->nopol));
|
||||||
|
Log::info(json_encode('veh : ' .$request->vehicle));
|
||||||
|
Log::info(json_encode('dept : ' .$request->depart));
|
||||||
|
Log::info(json_encode('mem : ' .$request->member));
|
||||||
|
Log::info(json_encode('trans : ' .$request->notrans));
|
||||||
|
Log::info(json_encode('isactive : ' .gettype($request->isactive)));
|
||||||
|
if ($request->ajax() ) {
|
||||||
|
|
||||||
|
|
||||||
|
$dataStiker = DB::table('transaksi_stiker as ts')
|
||||||
|
->leftjoin('detail_transaksi_stiker as dts','dts.notrans','=','ts.notrans')
|
||||||
|
->leftJoin('card_member as cm','cm.notrans','=','ts.no_id')
|
||||||
|
->leftJoin('jenis_langganan as jl','jl.id','=','ts.jenis_langganan')
|
||||||
|
->leftJoin('stasiunkerja as sk','sk.kode','=','ts.unit_kerja')
|
||||||
|
->leftJoin('jenis_mobil as jm','jm.id','=','dts.jenis_mobil')
|
||||||
|
->select(DB::raw('
|
||||||
|
ts.notrans as notrans , ts.nama , ts.alamat as alamat , ts.telepon as telepon,
|
||||||
|
ts.awal as awal , ts.akhir as akhir, jl.nama as jmember, sk.nama as dept, dts.nopol,
|
||||||
|
jm.nama vehicle, dts.jenis_member, cm.no_card as no_card'))
|
||||||
|
->distinct();
|
||||||
|
// ->select(DB::raw('ts.notrans as notrans , ts.nama , ts.alamat as alamat , ts.telepon as telepon , ts.awal as awal , ts.akhir as akhir, sk.nama as unit_kerja, jl.nama as jenis_member, ts.no_id'))
|
||||||
|
|
||||||
|
if ($request->nama) {
|
||||||
|
$dataStiker = $dataStiker->where('ts.nama', 'like', '%' . $request->nama . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $request->notrans) {
|
||||||
|
$dataStiker = $dataStiker->where('ts.notrans', 'like', '%' . $request->notrans . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->nopol) {
|
||||||
|
$dataStiker = $dataStiker->where('ts.unit_kerja', 'like', '%' . $request->depart . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->member) {
|
||||||
|
$dataStiker = $dataStiker->where('ts.jenis_langganan', 'like', '%' . $request->member . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->nopol) {
|
||||||
|
$dataStiker = $dataStiker->where('dts.nopol', 'like', '%' . $request->nopol . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->vehicle) {
|
||||||
|
$dataStiker = $dataStiker->where('dts.jenis_mobil', 'like', '%' . $request->vehicle . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->nocard) {
|
||||||
|
$dataStiker = $dataStiker->where('cm.no_card', 'like', '%' . $request->nocard . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->isactive === '1') {
|
||||||
|
$dataStiker = $dataStiker->whereRaw('now() between ts.awal and ts.akhir');
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info($dataStiker->toSql());
|
||||||
|
|
||||||
|
$dataStiker = $dataStiker->get();
|
||||||
|
|
||||||
|
return response()->json($dataStiker);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create(Request $request)
|
||||||
|
{
|
||||||
|
Log::info('Data yang diperpanjang : ' . json_encode($request->all()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function checkField (Request $request)
|
||||||
|
{
|
||||||
|
Log::info('Data yang diterima : ' . json_encode($request->all()));
|
||||||
|
$validate = Validator::make($request->all(),[
|
||||||
|
'nopol' => 'required|string|unique:detail_transaksi_stiker,nopol',
|
||||||
|
// 'nocard' => 'string|exists:card_member,no_card',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$nocard = $request->input('nocard');
|
||||||
|
$nocardExists = DB::table('card_member')
|
||||||
|
->where('no_card', $nocard)
|
||||||
|
->exists();
|
||||||
|
|
||||||
|
if ($validate->fails()) {
|
||||||
|
return response()->json(['response' => false, 'message' => 'Data sudah ada, coba yang lain']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json(['response' => true, 'message' => 'Data sudah ada']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
Log::info('Data yang diterima : ' . json_encode($request->all()));
|
||||||
|
$mountYearNow = Carbon::now()->format('m/Y');
|
||||||
|
|
||||||
|
$dataStiker = $request->input('formData');
|
||||||
|
$dataVehicle = $request->input('nopolData');
|
||||||
|
$dataCard = $request->input('cardNumber');
|
||||||
|
Log::info('Data Stiker : ' . json_encode($dataStiker));
|
||||||
|
Log::info('Data Kendaraan : ' . json_encode($dataVehicle));
|
||||||
|
Log::info('Data kartu : ' . json_encode($dataCard));
|
||||||
|
// $cleanedData = stripslashes(trim($data));
|
||||||
|
// Log::debug('Modified : ' . json_encode($cleanedData));
|
||||||
|
// $dataStiker = json_decode($cleanedData, false);
|
||||||
|
// Log::info('Debuggind data : ' . json_encode($dataStiker));
|
||||||
|
|
||||||
|
// $validate = Validator::make($request->all(),[
|
||||||
|
// 'nama' => 'required|string|unique',
|
||||||
|
// // 'nopol' => 'required|string|unique:detail_transaksi_stiker,nopol',
|
||||||
|
// // 'nocard' => 'string|exists:card_member,no_card',
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
// if ($validate->fails()) {
|
||||||
|
// return response()->json(['response' => false, 'message' => 'pastikan nama, Nomor Polisi, dan data kartu sudah terisi']);
|
||||||
|
// }
|
||||||
|
|
||||||
|
$dateNow = Carbon::now()->format('Y-m-d H:m:s');
|
||||||
|
$seqTrans = DB::table('indexnum')->select('value')->where('nama', 'sticker')->first();
|
||||||
|
$seqId = DB::table('indexnum')->select('value')->where('nama', 'identitas')->first();
|
||||||
|
|
||||||
|
$notrans = $seqTrans->value . "/STK/" . $mountYearNow;
|
||||||
|
$noid = $seqId->value . "/IDT/" . $mountYearNow;
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
$periode = explode(" - ", $dataStiker['daterange']);
|
||||||
|
Log::info('Parcing Periode : ' . json_encode($periode));
|
||||||
|
$awal = Carbon::createFromFormat('d-m-Y H:i', $periode[0]);
|
||||||
|
$akhir = Carbon::createFromFormat('d-m-Y H:i', $periode[1]);
|
||||||
|
Log::info('Awal : ' . $awal . ' Akhir : ' . $akhir);
|
||||||
|
// Log::info($user);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$dataStiker = [
|
||||||
|
'jenis_transaksi' => $dataStiker['jenis_transaksi'], // 0 = transaksi baru , 1 = perpanjangan
|
||||||
|
'notrans' => $notrans,
|
||||||
|
'no_id' => $noid,
|
||||||
|
'nama' => $dataStiker['nama'],
|
||||||
|
'alamat' => $dataStiker['address'] ?? '',
|
||||||
|
'telepon' => $dataStiker['phone'] ?? '',
|
||||||
|
'unit_kerja' => $dataStiker['depart'],
|
||||||
|
'jenis_stiker' => $dataStiker['member'],
|
||||||
|
'awal' => $awal,
|
||||||
|
'akhir' => $akhir,
|
||||||
|
'harga' => $dataStiker['harga'] ?? 0,
|
||||||
|
'keterangan' => $dataStiker['note'] ?? '',
|
||||||
|
'tanggal' => $dateNow,
|
||||||
|
'operator' => $user->nomer,
|
||||||
|
];
|
||||||
|
|
||||||
|
DB::table('transaksi_stiker')->insert($dataStiker);
|
||||||
|
|
||||||
|
if($dataVehicle) {
|
||||||
|
foreach ($dataVehicle as $nopol) {
|
||||||
|
$dataVehicle = [
|
||||||
|
'notrans' => $notrans,
|
||||||
|
'nopol' => $nopol['nopol'],
|
||||||
|
'jenis_mobil' => $nopol['vehicle'],
|
||||||
|
'jenis_member' => $nopol['member'],
|
||||||
|
'merk' => $nopol['merk'],
|
||||||
|
];
|
||||||
|
DB::table('detail_transaksi_stiker')->insert($dataVehicle);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return 0;;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($dataCard) {
|
||||||
|
foreach ($dataCard as $cardNumber) {
|
||||||
|
$dataCard = [
|
||||||
|
'notrans' => $noid,
|
||||||
|
'no_card' => $cardNumber['nocard'],
|
||||||
|
'no_urut' => $cardNumber['nourut'],
|
||||||
|
];
|
||||||
|
|
||||||
|
DB::table('card_member')->insert($dataCard);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::table('indexnum')->where('nama', 'sticker' )->update(['value' => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||||
|
DB::table('indexnum')->where('nama', 'identitas' )->update(['value' => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||||
|
$response = true;
|
||||||
|
$msg = 'Data berhasil di simpan';
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$response = false;
|
||||||
|
$msg = 'Gagal menyimpan data ' . $e->getMessage() . $e->getLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json(['response' => $response, 'pesan' => $msg]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
Log::info('Data yang diterima : ' . json_encode($id));
|
||||||
|
$dataStiker = StikerTrans::with('stiker_details.vehicle', 'memberCard')
|
||||||
|
->select('transaksi_stiker.notrans', 'transaksi_stiker.nama', 'transaksi_stiker.alamat', 'transaksi_stiker.telepon', 'transaksi_stiker.awal', 'transaksi_stiker.akhir', 'transaksi_stiker.jenis_langganan',
|
||||||
|
'transaksi_stiker.unit_kerja', 'transaksi_stiker.no_id', 'jl.nama as jmember', 'sk.nama as dept')
|
||||||
|
->leftJoin('jenis_langganan as jl','jl.id','=','transaksi_stiker.jenis_langganan')
|
||||||
|
->leftJoin('stasiunkerja as sk','sk.kode','=','transaksi_stiker.unit_kerja')
|
||||||
|
->where('notrans', 'like', '%' . $id . '%')
|
||||||
|
->first();
|
||||||
|
// $dataStiker = DB::table('transaksi_stiker as ts')
|
||||||
|
// ->leftjoin('detail_transaksi_stiker as dts','dts.notrans','=','ts.notrans')
|
||||||
|
// ->leftJoin('jenis_langganan as jl','jl.id','=','ts.jenis_langganan')
|
||||||
|
// ->leftJoin('stasiunkerja as sk','sk.kode','=','ts.unit_kerja')
|
||||||
|
// ->leftJoin('jenis_mobil as jm','jm.id','=','dts.jenis_mobil')
|
||||||
|
// ->leftJoin('card_member as cm','cm.notrans','=','ts.no_id')
|
||||||
|
// ->select(DB::raw('
|
||||||
|
// ts.notrans as notrans , ts.nama , ts.alamat as alamat , ts.telepon as telepon,
|
||||||
|
// ts.awal as awal , ts.akhir as akhir, jl.nama as jmember, sk.nama as dept, dts.nopol,
|
||||||
|
// jm.nama vehicle, dts.jenis_member, cm.no_card as no_card')
|
||||||
|
// )->where('ts.notrans', 'like', '%' . $id . '%')
|
||||||
|
// ->get();
|
||||||
|
Log::info('Data Stiker : ' . json_encode($dataStiker));
|
||||||
|
|
||||||
|
return response()->json($dataStiker);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
14
app/Http/Controllers/Report/LaporanStiker.php
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Report;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class LaporanStiker extends Controller
|
||||||
|
{
|
||||||
|
public function laporanStikerHarian()
|
||||||
|
{
|
||||||
|
return view ('report.stiker.stiker-harian');
|
||||||
|
}
|
||||||
|
}
|
||||||
332
app/Http/Controllers/ReportTransaksiController.php
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\TransaksiParkir;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class ReportTransaksiController extends Controller
|
||||||
|
{
|
||||||
|
public function allReport ()
|
||||||
|
{
|
||||||
|
return view ('report.all-report');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function allReportData(Request $request)
|
||||||
|
{
|
||||||
|
Log::info('== allReportData START ==');
|
||||||
|
|
||||||
|
Log::info($request->harian);
|
||||||
|
Log::info($request->tanggal);
|
||||||
|
$selectDate = $request->tanggal;
|
||||||
|
$start = microtime(true);
|
||||||
|
$harian = $request->harian ?? 1;
|
||||||
|
// $dateNow = Carbon::now()->format('Y-m-d');
|
||||||
|
$dateNow = '2026-01-25';
|
||||||
|
// $startDate = Carbon::today()->startOfDay();
|
||||||
|
// $endDate = Carbon::today()->endOfDay();
|
||||||
|
// $startDate = $selectDate . ' 00:00:00';
|
||||||
|
// $endDate = $selectDate . ' 23:59:59';
|
||||||
|
$startDate = $selectDate ? $selectDate : $dateNow;
|
||||||
|
$endDate = $selectDate ? $selectDate : $dateNow;
|
||||||
|
|
||||||
|
Log::info('Tanggal laporan', [
|
||||||
|
'start' => $startDate,
|
||||||
|
'end' => $endDate
|
||||||
|
]);
|
||||||
|
|
||||||
|
// =========================
|
||||||
|
// QUERY UTAMA (LEFT JOIN)
|
||||||
|
// =========================
|
||||||
|
Log::info('Query transaksi dimulai');
|
||||||
|
|
||||||
|
// $dateColumn = $harian == 1
|
||||||
|
// ? 'tp.waktu_keluar'
|
||||||
|
// : 'tp.pklogin';
|
||||||
|
if ($harian == 1) {
|
||||||
|
// $dateColumn = ['tp.waktu_masuk', 'tp.waktu_keluar'];
|
||||||
|
$dateColumn = ['tp.waktu_keluar'];
|
||||||
|
} else {
|
||||||
|
// $dateColumn = ['tp.pmlogin', 'tp.pklogin'];
|
||||||
|
$dateColumn = ['tp.pklogin'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$transactions = DB::table('transaksi_parkir as tp')
|
||||||
|
->leftJoin('jenis_mobil as jm', 'jm.id', '=', 'tp.id_kendaraan')
|
||||||
|
->leftJoin('pegawai as pm', 'pm.nomer', '=', 'tp.id_op_masuk')
|
||||||
|
->leftJoin('pegawai as pk', 'pk.nomer', '=', 'tp.id_op_keluar')
|
||||||
|
->where(function ($q) use ($dateColumn, $startDate, $endDate, $selectDate) {
|
||||||
|
$q->whereBetween($dateColumn[0], [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
|
||||||
|
->orWhereBetween($dateColumn[0], [$startDate . ' 00:00:00', $endDate . ' 23:59:59']);
|
||||||
|
// $q->whereRaw('DATE(tp.waktu_masuk) = ?', [$selectDate])
|
||||||
|
// ->orWhereRaw('DATE(tp.waktu_keluar) = ?', [$selectDate]);
|
||||||
|
})
|
||||||
|
// ->whereRaw("DATE($dateColumn) = ?", [$dateNow])
|
||||||
|
// ->whereBetween($dateColumn, [$startDate, $endDate])
|
||||||
|
->select(
|
||||||
|
'tp.id',
|
||||||
|
'jm.nama as jenis_mobil',
|
||||||
|
'tp.id_kendaraan',
|
||||||
|
|
||||||
|
'pm.nama as kasir_masuk',
|
||||||
|
'pk.nama as kasir_keluar',
|
||||||
|
|
||||||
|
'tp.id_op_masuk',
|
||||||
|
|
||||||
|
'tp.waktu_masuk',
|
||||||
|
'tp.waktu_keluar',
|
||||||
|
'tp.status',
|
||||||
|
'tp.bayar_masuk',
|
||||||
|
'tp.bayar_keluar',
|
||||||
|
'tp.status_transaksi',
|
||||||
|
'tp.cara_bayar',
|
||||||
|
)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
Log::info('Query transaksi selesai', [
|
||||||
|
'rows' => $transactions->count(),
|
||||||
|
'query_time_ms' => round((microtime(true) - $start) * 1000, 2)
|
||||||
|
]);
|
||||||
|
|
||||||
|
// =========================
|
||||||
|
// REKAP PER KENDARAAN
|
||||||
|
// =========================
|
||||||
|
Log::info('Rekap kendaraan dimulai');
|
||||||
|
|
||||||
|
$tunai = $transactions
|
||||||
|
->sortBy('id_kendaraan')
|
||||||
|
->groupBy('id_kendaraan')
|
||||||
|
->map(function ($items, $idKendaraan) {
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// PISAH MASUK & KELUAR
|
||||||
|
// ======================
|
||||||
|
// $masuk = $items->where('status', 1);
|
||||||
|
// $keluar = $items->where('status', 0);
|
||||||
|
$keluar = $items->filter(fn ($r) => (int) $r->status === 0);
|
||||||
|
// $tunai = $keluar->where('cara_bayar', '!=', 3);
|
||||||
|
$tunai = $keluar->filter(fn ($row) =>
|
||||||
|
in_array(data_get($row, 'cara_bayar'), [null, 0, '0'], true)
|
||||||
|
);
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// MASUK
|
||||||
|
// ======================
|
||||||
|
// $masukCasual = $masuk->where('status_transaksi', '0');
|
||||||
|
// $masukMember = $masuk->where('status_transaksi', '3');
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// KELUAR
|
||||||
|
// ======================
|
||||||
|
// $keluarCasual = $tunai->where('status_transaksi', '0');
|
||||||
|
// $keluarMember = $tunai->where('status_transaksi', '3');
|
||||||
|
// $keluarLost = $tunai->where('status_transaksi', '32');
|
||||||
|
$keluarCasual = $tunai->filter(fn ($r) =>
|
||||||
|
(string) data_get($r, 'status_transaksi') === '0'
|
||||||
|
&& data_get($r, 'id_op_masuk') !== null
|
||||||
|
);
|
||||||
|
|
||||||
|
$keluarMember = $tunai->filter(fn ($r) => (string) data_get($r, 'status_transaksi') === '3');
|
||||||
|
|
||||||
|
$keluarLost = $tunai->filter(fn ($r) => (string) data_get($r, 'status_transaksi') === '32');
|
||||||
|
|
||||||
|
$keluarManual = $tunai->filter(fn ($r) => data_get($r, 'id_op_masuk') === null);
|
||||||
|
|
||||||
|
$keluarMasalah = $tunai->filter(fn ($r) => (string) data_get($r, 'status_transaksi') === '-1');
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// PEMBAYARAN (KELUAR)
|
||||||
|
// ======================
|
||||||
|
// $nonTunai = $keluar->where('cara_bayar', 3);
|
||||||
|
// $tunai = $keluar->where('cara_bayar', '!=', 3);
|
||||||
|
$totalCash = $keluarCasual->sum('bayar_keluar') + $keluarLost->sum('bayar_keluar') + $keluarMember->sum('bayar_keluar') + $keluarManual->sum('bayar_keluar');
|
||||||
|
|
||||||
|
|
||||||
|
return [
|
||||||
|
'id_kendaraan' => $idKendaraan,
|
||||||
|
'jenis_mobil' => $items->first()->jenis_mobil,
|
||||||
|
'total' => $items->count(),
|
||||||
|
'tunaiOut' => $tunai->count(),
|
||||||
|
// ========= MASUK =========
|
||||||
|
// 'masuk' => [
|
||||||
|
// 'casual' => [
|
||||||
|
// 'jumlah' => $masukCasual->count(),
|
||||||
|
// 'income' => $masukCasual->sum('bayar_masuk'),
|
||||||
|
// ],
|
||||||
|
// 'member' => [
|
||||||
|
// 'jumlah' => $masukMember->count(),
|
||||||
|
// 'income' => $masukMember->sum('bayar_masuk'),
|
||||||
|
// ],
|
||||||
|
// ],
|
||||||
|
|
||||||
|
// ========= KELUAR =========
|
||||||
|
'keluar' => [
|
||||||
|
'casual' => [
|
||||||
|
'jumlah' => $keluarCasual->count(),
|
||||||
|
'income' => $keluarCasual->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
'lost' => [
|
||||||
|
'jumlah' => $keluarLost->count(),
|
||||||
|
'income' => $keluarLost->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
'member' => [
|
||||||
|
'jumlah' => $keluarMember->count(),
|
||||||
|
'income' => $keluarMember->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
'manual' => [
|
||||||
|
'jumlah' => $keluarManual->count(),
|
||||||
|
'income' => $keluarManual->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
'masalah' => [
|
||||||
|
'jumlah' => $keluarMasalah->count(),
|
||||||
|
'income' => $keluarMasalah->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'totalCash' => $totalCash,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)->values();
|
||||||
|
|
||||||
|
$cashless = $transactions
|
||||||
|
->sortBy('id_kendaraan')
|
||||||
|
->groupBy('id_kendaraan')
|
||||||
|
->map(function ($items, $idKendaraan) {
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// PISAH MASUK & KELUAR
|
||||||
|
// ======================
|
||||||
|
// $masuk = $items->where('status', 1);
|
||||||
|
// $keluar = $items->where('status', 0);
|
||||||
|
// $nonTunai = $keluar->where('cara_bayar', 3);
|
||||||
|
$keluar = $items->filter(fn ($r) => (int) $r->status === 0);
|
||||||
|
// $tunai = $keluar->where('cara_bayar', '!=', 3);
|
||||||
|
$nonTunai = $keluar->filter(fn ($row) =>
|
||||||
|
(string) data_get($row, 'cara_bayar') === '3'
|
||||||
|
);
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// MASUK
|
||||||
|
// ======================
|
||||||
|
// $masukCasual = $masuk->where('status_transaksi', '0');
|
||||||
|
// $masukMember = $masuk->where('status_transaksi', '3');
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// KELUAR
|
||||||
|
// ======================
|
||||||
|
// $keluarCasual = $nonTunai->where('status_transaksi', '0');
|
||||||
|
// $keluarMember = $nonTunai->where('status_transaksi', '3');
|
||||||
|
// $keluarLost = $nonTunai->where('status_transaksi', '32');
|
||||||
|
$keluarCasual = $nonTunai->filter(fn ($r) =>
|
||||||
|
(string) data_get($r, 'status_transaksi') === '0'
|
||||||
|
&& data_get($r, 'id_op_masuk') !== null
|
||||||
|
);
|
||||||
|
$keluarMember = $nonTunai->filter(fn ($r) => (string) data_get($r, 'status_transaksi') === '3');
|
||||||
|
$keluarLost = $nonTunai->filter(fn ($r) => (string) data_get($r, 'status_transaksi') === '32');
|
||||||
|
$keluarManual = $nonTunai->filter(fn ($r) => data_get($r, 'id_op_masuk') === null);
|
||||||
|
|
||||||
|
$totalCashless = $keluarCasual->sum('bayar_keluar') + $keluarLost->sum('bayar_keluar') + $keluarMember->sum('bayar_keluar') + $keluarManual->sum('bayar_keluar');
|
||||||
|
|
||||||
|
// ======================
|
||||||
|
// PEMBAYARAN (KELUAR)
|
||||||
|
// ======================
|
||||||
|
|
||||||
|
return [
|
||||||
|
'id_kendaraan' => $idKendaraan,
|
||||||
|
'jenis_mobil' => $items->first()->jenis_mobil,
|
||||||
|
'total' => $items->count(),
|
||||||
|
'nonTunaiOut' => $nonTunai->count(),
|
||||||
|
|
||||||
|
// ========= MASUK =========
|
||||||
|
// 'masuk' => [
|
||||||
|
// 'casual' => [
|
||||||
|
// 'jumlah' => $masukCasual->count(),
|
||||||
|
// 'income' => $masukCasual->sum('bayar_masuk'),
|
||||||
|
// ],
|
||||||
|
// 'member' => [
|
||||||
|
// 'jumlah' => $masukMember->count(),
|
||||||
|
// 'income' => $masukMember->sum('bayar_masuk'),
|
||||||
|
// ],
|
||||||
|
// ],
|
||||||
|
|
||||||
|
// ========= KELUAR =========
|
||||||
|
'keluar' => [
|
||||||
|
'casual' => [
|
||||||
|
'jumlah' => $keluarCasual->count(),
|
||||||
|
'income' => $keluarCasual->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
'lost' => [
|
||||||
|
'jumlah' => $keluarLost->count(),
|
||||||
|
'income' => $keluarLost->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
'member' => [
|
||||||
|
'jumlah' => $keluarMember->count(),
|
||||||
|
'income' => $keluarMember->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
'manual' => [
|
||||||
|
'jumlah' => $keluarManual->count(),
|
||||||
|
'income' => $keluarManual->sum('bayar_keluar'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'totalCashless' => $totalCashless,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)->values();
|
||||||
|
|
||||||
|
$transactions = DB::table('transaksi_parkir as tp')
|
||||||
|
->leftJoin('jenis_mobil as jm', 'jm.id', '=', 'tp.id_kendaraan')
|
||||||
|
->leftJoin('pegawai as pm', 'pm.nomer', '=', 'tp.id_op_masuk')
|
||||||
|
->leftJoin('pegawai as pk', 'pk.nomer', '=', 'tp.id_op_keluar')
|
||||||
|
->whereDate('waktu_masuk', '<', $dateNow)
|
||||||
|
->select(
|
||||||
|
'tp.id_kendaraan',
|
||||||
|
'jm.nama as jenis_mobil',
|
||||||
|
DB::raw("SUM(CASE WHEN tp.status = 1 THEN 1 ELSE 0 END) as overnight"),
|
||||||
|
DB::raw("SUM(CASE WHEN tp.status = 3 THEN 1 ELSE 0 END) as onexpired")
|
||||||
|
)
|
||||||
|
->groupBy('tp.id_kendaraan', 'jm.nama')
|
||||||
|
->orderBy('tp.id_kendaraan')
|
||||||
|
// dd($transactions->toSql());
|
||||||
|
->get();
|
||||||
|
|
||||||
|
|
||||||
|
$onCheck = $transactions
|
||||||
|
// ->sortBy('id_kendaraan')
|
||||||
|
// ->groupBy('id_kendaraan')
|
||||||
|
->map(function ($items) {
|
||||||
|
|
||||||
|
// $overNight = $items->filter(fn ($r) => (int) $r->status === 1);
|
||||||
|
// $onExpired = $items->filter(fn ($r) => (int) $r->status === 3);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'id_kendaraan' => $items->id_kendaraan,
|
||||||
|
'jenis_mobil' => $items->jenis_mobil,
|
||||||
|
'overNight' => (int) $items->overnight,
|
||||||
|
'onExpired' => (int) $items->onexpired,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)->values();
|
||||||
|
|
||||||
|
Log::info('Rekap kendaraan selesai', [
|
||||||
|
'total_kendaraan' => $tunai->count()
|
||||||
|
]);
|
||||||
|
|
||||||
|
Log::info('== allReportData END ==', [
|
||||||
|
'total_time_ms' => round((microtime(true) - $start) * 1000, 2)
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
// 'date' => $startDate->format('Y-m-d'),÷
|
||||||
|
'date' => $startDate,
|
||||||
|
'tunai' => $tunai,
|
||||||
|
'nontunai' => $cashless,
|
||||||
|
'overNight' => $onCheck
|
||||||
|
// 'transactions' => $transactions->groupBy('id_kendaraan')
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
128
app/Http/Controllers/SetupController.php
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class SetupController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$status = [
|
||||||
|
'pgcrypto' => $this->checkPgcrypto(),
|
||||||
|
'pegawai_columns' => $this->checkPegawaiColumns(),
|
||||||
|
'users_view' => $this->checkUsersView(),
|
||||||
|
'veri_time' => Schema::hasColumn('transaksi_parkir', 'veri_time'),
|
||||||
|
];
|
||||||
|
|
||||||
|
return view('welcome', compact('status'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
DB::beginTransaction();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 1. pgcrypto
|
||||||
|
if (!$this->checkPgcrypto()) {
|
||||||
|
DB::statement('CREATE EXTENSION IF NOT EXISTS pgcrypto');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. Kolom tabel pegawai
|
||||||
|
$this->ensurePegawaiColumn('id', "ALTER TABLE pegawai ADD COLUMN id SERIAL PRIMARY KEY");
|
||||||
|
$this->ensurePegawaiColumn('email', "ALTER TABLE pegawai ADD COLUMN email VARCHAR(64)");
|
||||||
|
$this->ensurePegawaiColumn('email_verified_at', "ALTER TABLE pegawai ADD COLUMN email_verified_at VARCHAR(64)");
|
||||||
|
$this->ensurePegawaiColumn('remember_token', "ALTER TABLE pegawai ADD COLUMN remember_token VARCHAR(64)");
|
||||||
|
|
||||||
|
// 3. View users
|
||||||
|
if (!$this->checkUsersView()) {
|
||||||
|
DB::statement("
|
||||||
|
CREATE OR REPLACE VIEW users AS
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
nomer,
|
||||||
|
nama,
|
||||||
|
username,
|
||||||
|
crypt(password, gen_salt('bf')) AS password,
|
||||||
|
email,
|
||||||
|
email_verified_at,
|
||||||
|
foto,
|
||||||
|
bisalogin,
|
||||||
|
status,
|
||||||
|
statusabsen,
|
||||||
|
level_pegawai,
|
||||||
|
remember_token
|
||||||
|
FROM pegawai
|
||||||
|
");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. Kolom veri_time
|
||||||
|
if (!Schema::hasColumn('transaksi_parkir', 'veri_time')) {
|
||||||
|
Schema::table('transaksi_parkir', function ($table) {
|
||||||
|
$table->timestamp('veri_time')->nullable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
|
||||||
|
// return redirect()->back()->with('success', 'Setup berhasil dijalankan ✅');
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'redirect' => url('/login') // ganti ke /dashboard kalau mau
|
||||||
|
]);
|
||||||
|
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
DB::rollBack();
|
||||||
|
// return redirect()->back()->with('error', $e->getMessage());
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => $e->getMessage()
|
||||||
|
], 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* =========================
|
||||||
|
Helper
|
||||||
|
========================= */
|
||||||
|
|
||||||
|
private function checkPgcrypto()
|
||||||
|
{
|
||||||
|
$result = DB::select("
|
||||||
|
SELECT 1
|
||||||
|
FROM pg_extension
|
||||||
|
WHERE extname = 'pgcrypto'
|
||||||
|
");
|
||||||
|
|
||||||
|
return !empty($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function checkPegawaiColumns()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => Schema::hasColumn('pegawai', 'id'),
|
||||||
|
'email' => Schema::hasColumn('pegawai', 'email'),
|
||||||
|
'email_verified_at' => Schema::hasColumn('pegawai', 'email_verified_at'),
|
||||||
|
'remember_token' => Schema::hasColumn('pegawai', 'remember_token'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function checkUsersView()
|
||||||
|
{
|
||||||
|
$result = DB::select("
|
||||||
|
SELECT 1
|
||||||
|
FROM information_schema.views
|
||||||
|
WHERE table_name = 'users'
|
||||||
|
");
|
||||||
|
|
||||||
|
return !empty($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function ensurePegawaiColumn($column, $sql)
|
||||||
|
{
|
||||||
|
if (!Schema::hasColumn('pegawai', $column)) {
|
||||||
|
DB::statement($sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
97
app/Http/Controllers/StikerController.php
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class StikerController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$vehicleSelect = DB::table('jenis_mobil')->get();
|
||||||
|
$departmentSelect = DB::table('stasiunkerja')->get();
|
||||||
|
$memberSelect = DB::table('jenis_langganan')->get();
|
||||||
|
$jenisStiker = DB::table('tarif_stiker')->get();
|
||||||
|
|
||||||
|
return view('stiker', compact([
|
||||||
|
// return view('member.member', compact([
|
||||||
|
'vehicleSelect',
|
||||||
|
'departmentSelect',
|
||||||
|
'memberSelect',
|
||||||
|
'jenisStiker',
|
||||||
|
]));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
51
app/Http/Controllers/StreamerController.php
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class StreamerController extends Controller
|
||||||
|
{
|
||||||
|
public function index ()
|
||||||
|
{
|
||||||
|
$urlGet = DB::table('config_pos_hardware')
|
||||||
|
->select('video1_conn')
|
||||||
|
->where('id_pos', 'PK1')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
// Log::info(json_encode($$urlStream->video1_conn));
|
||||||
|
$urlStream = $urlGet->video1_conn;
|
||||||
|
|
||||||
|
return view('streaming', compact('urlStream'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function streamSnapshot()
|
||||||
|
{
|
||||||
|
// Ambil URL kamera dan autentikasi
|
||||||
|
// $url = "http://192.168.200.211/ISAPI/streaming/channels/1/picture"; // Contoh hardcoded
|
||||||
|
// $url = "http://192.168.10.61/cgi-bin/snapshot.cgi"; // Contoh hardcoded
|
||||||
|
$url = "http://admin:admin12345@192.168.10.61/cgi-bin/snapshot.cgi"; // Contoh hardcoded
|
||||||
|
$username = "admin"; // Ganti dengan username
|
||||||
|
$password = "metal4RC"; // Ganti dengan password kantor
|
||||||
|
$password = "admin12345"; // Ganti dengan password
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Menggunakan Digest Authentication
|
||||||
|
$response = Http::withDigestAuth($username, $password)->get($url); //Auth Digest
|
||||||
|
$response = Http::get($url); //Auth Basic
|
||||||
|
|
||||||
|
if ($response->successful()) {
|
||||||
|
// Kirimkan gambar langsung ke browser
|
||||||
|
return response($response->body(), 200)
|
||||||
|
->header('Content-Type', 'image/jpeg');
|
||||||
|
} else {
|
||||||
|
return response("Gagal mendapatkan snapshot", 500);
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return response("Error: " . $e->getMessage(), 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
558
app/Http/Controllers/VerifyTransController.php
Normal file
@@ -0,0 +1,558 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\TransaksiParkir;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Yajra\DataTables\Facades\DataTables;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Exception;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
|
||||||
|
class VerifyTransController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function skipMember ()
|
||||||
|
{
|
||||||
|
$transaksi = TransaksiParkir::leftjoin('jenis_mobil as jm','transaksi_parkir.id_kendaraan','=','jm.id')
|
||||||
|
->leftjoin('nama_pos as np_masuk', 'transaksi_parkir.id_pintu_masuk','=','np_masuk.id')
|
||||||
|
->leftjoin('nama_pos as np_keluar', 'transaksi_parkir.veri_kode','=','np_keluar.id')
|
||||||
|
->select('transaksi_parkir.id','transaksi_parkir.no_pol','jm.nama as jenis_mobil','transaksi_parkir.waktu_masuk','transaksi_parkir.status_transaksi',
|
||||||
|
'np_masuk.nama as id_pintu_masuk','np_keluar.nama as veri_kode',
|
||||||
|
'transaksi_parkir.veri_date as waktu_keluar','transaksi_parkir.veri_check')
|
||||||
|
/* --- Production -----*/
|
||||||
|
->where('transaksi_parkir.veri_check','1')
|
||||||
|
// ->whereNotNull('transaksi_parkir.veri_check')
|
||||||
|
->orderbydesc('transaksi_parkir.veri_date')
|
||||||
|
/* --- debuging -----*/
|
||||||
|
// ->where('transaksi_parkir.status','0')
|
||||||
|
// ->where('transaksi_parkir.id_kendaraan', 'Mobil')
|
||||||
|
// ->where('transaksi_parkir.id_pintu_masuk', '01')
|
||||||
|
// ->orderbydesc('transaksi_parkir.waktu_masuk')
|
||||||
|
/* ------------------*/
|
||||||
|
->limit(3)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
Log::info(json_encode($transaksi));
|
||||||
|
|
||||||
|
if ($transaksi->status_transaksi && $transaksi->status_transaksi == 3) {
|
||||||
|
$dateNow = Carbon::now();
|
||||||
|
|
||||||
|
DB::table('transaksi_parkir')
|
||||||
|
->where('no_pol', $transaksi->no_pol )
|
||||||
|
->update(['veri_check' => 2,
|
||||||
|
'veri_date' => $dateNow,
|
||||||
|
'veri_adm' => 'SYSTEM'
|
||||||
|
]);
|
||||||
|
|
||||||
|
// $response = true;
|
||||||
|
// $message = [
|
||||||
|
// 'no_pol' => $RealtimeTrans->no_pol,
|
||||||
|
// 'message' => 'member skipped'
|
||||||
|
// ];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $transaksi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
if ($request->ajax()) {
|
||||||
|
|
||||||
|
$transaksi = TransaksiParkir::leftjoin('jenis_mobil as jm','transaksi_parkir.id_kendaraan','=','jm.id')
|
||||||
|
->leftjoin('nama_pos as np_masuk', 'transaksi_parkir.id_pintu_masuk','=','np_masuk.id')
|
||||||
|
->leftjoin('nama_pos as np_keluar', 'transaksi_parkir.id_pintu_keluar','=','np_keluar.id')
|
||||||
|
->select('transaksi_parkir.id','transaksi_parkir.no_pol','jm.nama','transaksi_parkir.waktu_masuk',
|
||||||
|
'transaksi_parkir.veri_date as waktu_keluar',
|
||||||
|
// 'transaksi_parkir.id_pintu_masuk','transaksi_parkir.id_pintu_keluar',
|
||||||
|
'np_masuk.nama as id_pintu_masuk','np_keluar.nama as id_pintu_keluar',
|
||||||
|
'transaksi_parkir.veri_check','transaksi_parkir.veri_kode','transaksi_parkir.status_transaksi')
|
||||||
|
/* --- Production -----*/
|
||||||
|
->where('transaksi_parkir.veri_check','1')
|
||||||
|
// ->whereNotNull('transaksi_parkir.veri_check')
|
||||||
|
->orderbydesc('transaksi_parkir.veri_date')
|
||||||
|
/* --- debuging -----*/
|
||||||
|
// ->where('transaksi_parkir.status','0')
|
||||||
|
// ->where('transaksi_parkir.id_kendaraan', 'Mobil')
|
||||||
|
// ->where('transaksi_parkir.id_pintu_masuk', '01')
|
||||||
|
// ->orderbydesc('transaksi_parkir.waktu_masuk')
|
||||||
|
/* ------------------*/
|
||||||
|
->limit(3)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
// Log::info($transaksi);
|
||||||
|
|
||||||
|
// $data = [];
|
||||||
|
foreach ($transaksi as $data) {
|
||||||
|
if ($data->status_transaksi && $data->status_transaksi == '3') {
|
||||||
|
$dateNow = Carbon::now();
|
||||||
|
|
||||||
|
$query = DB::table('transaksi_parkir')
|
||||||
|
->where('no_pol', $data->no_pol )
|
||||||
|
->where('status', 1)
|
||||||
|
->update(['veri_check' => 2,
|
||||||
|
'veri_date' => $dateNow,
|
||||||
|
'veri_adm' => 'SYSTEM'
|
||||||
|
]);
|
||||||
|
|
||||||
|
Log::info('Member update ' . $query);
|
||||||
|
|
||||||
|
// $response = true;
|
||||||
|
// $message = [
|
||||||
|
// 'no_pol' => $RealtimeTrans->no_pol,
|
||||||
|
// 'message' => 'member skipped'
|
||||||
|
// ];
|
||||||
|
}
|
||||||
|
// $transaksi = $data;
|
||||||
|
Log::info($transaksi);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = $transaksi;
|
||||||
|
|
||||||
|
// Log::info($transaksi);
|
||||||
|
|
||||||
|
$table = DataTables::of($data)
|
||||||
|
|
||||||
|
->addIndexColumn()
|
||||||
|
|
||||||
|
->addColumn('id', function($row){
|
||||||
|
return $row->id;
|
||||||
|
})
|
||||||
|
|
||||||
|
->addColumn('no_pol', function($row){
|
||||||
|
return $row->no_pol ?? '';
|
||||||
|
})
|
||||||
|
|
||||||
|
->addColumn('jenis_mobil', function($row){
|
||||||
|
return $row->jenis_mobil ?? '';
|
||||||
|
})
|
||||||
|
|
||||||
|
->addColumn('waktu_masuk', function($row){
|
||||||
|
return $row->waktu_masuk ?? '';
|
||||||
|
})
|
||||||
|
|
||||||
|
->addColumn('waktu_keluar', function($row){
|
||||||
|
return $row->waktu_keluar ?? '';
|
||||||
|
})
|
||||||
|
|
||||||
|
->addColumn('id_pintu_masuk', function($row){
|
||||||
|
// return $row->id_pintu_masuk ?? '';
|
||||||
|
return '<span class="badge badge-pill badge-secondary">'.$row->id_pintu_masuk.'</span>' ?? '';
|
||||||
|
})
|
||||||
|
|
||||||
|
->addColumn('out_gate', function($row){
|
||||||
|
// return $row->veri_kode ?? '';
|
||||||
|
return '<span class="badge badge-pill badge-success">'.$row->veri_kode.'</span>' ?? '';
|
||||||
|
})
|
||||||
|
|
||||||
|
->addColumn('status', function($row){
|
||||||
|
return $row->veri_check ?? '';
|
||||||
|
})
|
||||||
|
|
||||||
|
->rawColumns(['id_pintu_masuk','out_gate']);
|
||||||
|
|
||||||
|
return $table->make(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('verify');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
|
||||||
|
// private function getCurlImage ($url)
|
||||||
|
// {
|
||||||
|
// $ch = curl_init();
|
||||||
|
// curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||||
|
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||||
|
|
||||||
|
// $result = curl_exec($ch);
|
||||||
|
|
||||||
|
// if (curl_errno($ch)) {
|
||||||
|
// Log::error('cURL error: ' . curl_error($ch));
|
||||||
|
// $result = false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// curl_close($ch);
|
||||||
|
|
||||||
|
// return $result;
|
||||||
|
// Log::info($result);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// private function getCurlImage($url)
|
||||||
|
// {
|
||||||
|
// // Decode URL to ensure it's correctly formatted
|
||||||
|
// $url = htmlspecialchars_decode($url);
|
||||||
|
// $parsedUrl = parse_url($url);
|
||||||
|
|
||||||
|
// // Mengambil bagian 'user' dan 'pass' dari URL
|
||||||
|
// $user = $parsedUrl['user'] ?? null;
|
||||||
|
// $pass = $parsedUrl['pass'] ?? null;
|
||||||
|
|
||||||
|
// $ch = curl_init();
|
||||||
|
// curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
// curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
|
||||||
|
// curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass); // Username dan password
|
||||||
|
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||||
|
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||||
|
// curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||||
|
// 'Content-Type: image/jpeg', // Ubah sesuai tipe konten yang diharapkan
|
||||||
|
// 'Accept: image/jpeg'
|
||||||
|
// // 'WWW-Authenticate: Digest'
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
// $result = curl_exec($ch);
|
||||||
|
|
||||||
|
// if (curl_errno($ch)) {
|
||||||
|
// Log::error('cURL error: ' . curl_error($ch));
|
||||||
|
// $result = false;
|
||||||
|
// } else {
|
||||||
|
// $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
// if ($http_code != 200) {
|
||||||
|
// Log::error('HTTP error: ' . $http_code);
|
||||||
|
// $result = false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// curl_close($ch);
|
||||||
|
|
||||||
|
// // Log response headers
|
||||||
|
// Log::info('cURL response headers: ' . json_encode(curl_getinfo($ch)));
|
||||||
|
|
||||||
|
// // Optional: Log the response if it's not an image
|
||||||
|
// if ($result !== false && @imagecreatefromstring($result) === false) {
|
||||||
|
// Log::error('Invalid image data received');
|
||||||
|
// $result = false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return $result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
private function getCurlImage($url)
|
||||||
|
{
|
||||||
|
// Decode URL to ensure it's correctly formatted
|
||||||
|
$url = htmlspecialchars_decode($url);
|
||||||
|
$parsedUrl = parse_url($url);
|
||||||
|
|
||||||
|
// Mengambil bagian 'user' dan 'pass' dari URL
|
||||||
|
$user = $parsedUrl['user'] ?? null;
|
||||||
|
$pass = $parsedUrl['pass'] ?? null;
|
||||||
|
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
|
||||||
|
curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass); // Username dan password
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||||
|
'Content-Type: image/jpeg', // Ubah sesuai tipe konten yang diharapkan
|
||||||
|
'Accept: image/jpeg'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
|
||||||
|
if (curl_errno($ch)) {
|
||||||
|
Log::error('cURL error: ' . curl_error($ch));
|
||||||
|
$result = false;
|
||||||
|
} else {
|
||||||
|
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
if ($http_code != 200) {
|
||||||
|
Log::error('HTTP error: ' . $http_code);
|
||||||
|
$result = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
// Log response headers
|
||||||
|
Log::info('cURL response headers: ' . json_encode(curl_getinfo($ch)));
|
||||||
|
|
||||||
|
// Optional: Log the response if it's not an image
|
||||||
|
// if ($result !== false) {
|
||||||
|
// // Check if the result is a valid image
|
||||||
|
// if (@imagecreatefromstring($result) === false) {
|
||||||
|
// Log::error('Invalid image data received');
|
||||||
|
// $result = false;
|
||||||
|
// } else {
|
||||||
|
// Convert the image data to base64
|
||||||
|
$result = base64_encode($result);
|
||||||
|
|
||||||
|
// $path = storage_path('app/public'); // Path direktori
|
||||||
|
// $imagePath = $path . '/image.jpeg';
|
||||||
|
|
||||||
|
// // Buat direktori jika belum ada
|
||||||
|
// if (!file_exists($path)) {
|
||||||
|
// mkdir($path, 0755, true); // Buat direktori dengan izin 0755, dan buat sub-direktori jika diperlukan
|
||||||
|
// }
|
||||||
|
// // Optionally, save the image to a file for testing
|
||||||
|
// // file_put_contents('storage/app/public/image.jpeg', $result); // Adjust path and filename
|
||||||
|
// file_put_contents($imagePath, $result);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function showImages(Request $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$transaksi = TransaksiParkir::where('id', $request->id)
|
||||||
|
->select('id','no_pol','pic_body_masuk','pic_body_keluar','pic_driver_masuk',
|
||||||
|
'pic_driver_keluar','pic_no_pol_masuk','pic_no_pol_keluar','veri_kode')
|
||||||
|
->where('no_pol', $request->no_pol)
|
||||||
|
->firstOrFail();
|
||||||
|
|
||||||
|
Log::info(json_encode($transaksi));
|
||||||
|
|
||||||
|
$getCamera = DB::table('config_pos_hardware')
|
||||||
|
->select('video1_conn as body_cam','video2_conn as drive_cam')
|
||||||
|
->where('id_pos', $transaksi->veri_kode)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
Log::info(json_encode($getCamera));
|
||||||
|
// Log::info($getCamera);
|
||||||
|
/* Body Masuk */
|
||||||
|
if (!empty($transaksi->pic_body_masuk) && is_resource($transaksi->pic_body_masuk)) {
|
||||||
|
$transaksi->pic_body_masuk = base64_encode(stream_get_contents($transaksi->pic_body_masuk)) ?? 'Tidak ada FOTO';
|
||||||
|
} else {
|
||||||
|
$transaksi->pic_body_masuk = 'Tidak ada foto';
|
||||||
|
}
|
||||||
|
|
||||||
|
$baseIn =
|
||||||
|
Log::info(json_encode('foto masuk' .$transaksi->pic_body_masuk));
|
||||||
|
|
||||||
|
/* Driver Masuk */
|
||||||
|
if (!empty($transaksi->pic_driver_masuk) && is_resource($transaksi->pic_driver_masuk)) {
|
||||||
|
$transaksi->pic_driver_masuk = base64_encode(stream_get_contents($transaksi->pic_driver_masuk)) ?? 'Tidak ada FOTO';
|
||||||
|
} else {
|
||||||
|
$transaksi->pic_driver_masuk = 'Tidak ada foto';
|
||||||
|
}
|
||||||
|
Log::info(json_encode($transaksi->pic_driver_masuk));
|
||||||
|
|
||||||
|
$ImgBodyOut = $this->getCurlImage($getCamera->body_cam);
|
||||||
|
$ImgDriveOut = $this->getCurlImage($getCamera->drive_cam);
|
||||||
|
// Log::info([$ImgBodyOut]);
|
||||||
|
// Log untuk memastikan URL benar
|
||||||
|
// Log::info('Body Cam URL: ' . $getCamera->body_cam);
|
||||||
|
// Log::info('Drive Cam URL: ' . $getCamera->drive_cam);
|
||||||
|
|
||||||
|
// $ImgBodyOut = $this->getCurlImage($getCamera->body_cam);
|
||||||
|
// // try {
|
||||||
|
// $ImgBodyOut = Http::accept('image/jpeg')
|
||||||
|
// ->withOptions(['verify' => false,])
|
||||||
|
// ->withHeaders(['Authorization' => 'Digest username="admin", realm="your_realm", nonce="nonce_value", response="response_hash"'])
|
||||||
|
// ->get('http://192.168.200.64/ISAPI/streaming/channels/1/picture');
|
||||||
|
|
||||||
|
// if ($ImgBodyOut->successful()) {
|
||||||
|
// Konversi gambar ke base64
|
||||||
|
// $ImgBodyOut = base64_encode($ImgBodyOut->body());
|
||||||
|
// } else {
|
||||||
|
// Log::error('Failed to get image. Status code: ' . $ImgBodyOut->status());
|
||||||
|
// return 'Tidak ada foto';
|
||||||
|
// }
|
||||||
|
|
||||||
|
// } catch (\Exception $e) {
|
||||||
|
// return response()->json([
|
||||||
|
// 'message' => 'Gagal mengambil gambar',
|
||||||
|
// 'error' => $e->getMessage(),
|
||||||
|
// ], 500);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// ])->get($getCamera->body_cam);
|
||||||
|
// ])->get('http://192.168.200.64/ISAPI/streaming/channels/1/picture&auth=digest&username=admin&password=rootjuga1');
|
||||||
|
// $ImgDriveOut = $this->getCurlImage($getCamera->drive_cam);
|
||||||
|
|
||||||
|
// Log hasil cURL
|
||||||
|
Log::info('ImgBodyOut: ' . ($ImgBodyOut ? 'Image received' : 'Failed to get image'));
|
||||||
|
// Log::info('ImgDriveOut: ' . ($ImgDriveOut ? 'Image received' : 'Failed to get image'));
|
||||||
|
// dd($transaksi);
|
||||||
|
return response()->json([
|
||||||
|
'pic_masuk' => $transaksi->pic_body_masuk,
|
||||||
|
'driver_masuk' => $transaksi->pic_driver_masuk,
|
||||||
|
'pic_keluar' => $ImgBodyOut,
|
||||||
|
'driver_keluar' => $ImgDriveOut,
|
||||||
|
]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Log::error('Error fetching data: ' . $e->getMessage());
|
||||||
|
return response()->json(['error' => 'Data not found or other error'], 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// $transaksi = TransaksiParkir::where('id', $request->id)->where('no_pol', $request->no_pol)->firstOrfail();
|
||||||
|
|
||||||
|
// // $pic_masuk = $transaksi->pic_body_masuk ? base64_encode(stream_get_contents($transaksi->pic_body_masuk)) : null;
|
||||||
|
// $transaksi->pic_body_masuk = base64_encode(stream_get_contents($transaksi->pic_body_masuk));
|
||||||
|
// // } catch (\Exception $e) {
|
||||||
|
// // return response()->json([
|
||||||
|
// // 'message' => 'Gagal mengambil gambar',
|
||||||
|
// // 'error' => $e->getMessage(),
|
||||||
|
// // ], 500);
|
||||||
|
// // }
|
||||||
|
|
||||||
|
// return response()->json([
|
||||||
|
// 'transaksi' => $transaksi,
|
||||||
|
// // 'pic_masuk' => $pic_masuk,
|
||||||
|
// // // 'pic_keluar' => $pic_keluar,
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
|
||||||
|
// public function show($no_pol)
|
||||||
|
// {
|
||||||
|
// $transaksi = TransaksiParkir::where('no_pol', $no_pol)->orderBy('waktu_masuk','desc')->first();
|
||||||
|
|
||||||
|
// // if($transaksi->veri_kode) {
|
||||||
|
// // $paramsBodyKeluar = DB::table('config_pos_hardware')->select('video1_conn')->where('id_pos', $transaksi->veri_kode)->first();
|
||||||
|
// // }
|
||||||
|
// dd($no_pol,json_encode($transaksi));
|
||||||
|
// try {
|
||||||
|
// $pic_masuk = $transaksi->pic_body_masuk ? base64_encode(stream_get_contents($transaksi->pic_body_masuk)) : null;
|
||||||
|
// } catch (\Exception $e) {
|
||||||
|
// return response()->json([
|
||||||
|
// 'message' => 'Gagal mengambil gambar',
|
||||||
|
// 'error' => $e->getMessage(),
|
||||||
|
// ], 500);
|
||||||
|
// }
|
||||||
|
// if($paramsBodyKeluar) {
|
||||||
|
// // $pic_keluar = file_get_contents ($paramsBodyKeluar->video1_conn);
|
||||||
|
// $pic_keluar = $this->getCurlImage($paramsBodyKeluar->video1_conn);
|
||||||
|
// } else {
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// $pic_masuk = '';
|
||||||
|
// if ($transaksi->pic_body_masuk) {
|
||||||
|
// try {
|
||||||
|
// $pic_masuk = base64_encode(stream_get_contents($transaksi->pic_body_masuk));
|
||||||
|
// } catch (\Exception $e) {
|
||||||
|
// // Tangani kesalahan saat mengambil gambar
|
||||||
|
// Log::error('Gagal mengambil gambar masuk: ' . $e->getMessage());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// $pic_keluar = null;
|
||||||
|
// // Mengambil gambar keluar dari koneksi video1_conn jika ada
|
||||||
|
// if ($paramsBodyKeluar && $paramsBodyKeluar->video1_conn) {
|
||||||
|
// try {
|
||||||
|
|
||||||
|
// $pic_keluar = $this->getCurlImage($paramsBodyKeluar->video1_conn);
|
||||||
|
// // $pic_keluar_content = file_get_contents($paramsBodyKeluar->video1_conn);
|
||||||
|
// // if ($pic_keluar_content !== false) {
|
||||||
|
// // $pic_keluar = base64_encode($pic_keluar_content);
|
||||||
|
// // }
|
||||||
|
// } catch (\Exception $e) {
|
||||||
|
// // Tangani kesalahan saat mengambil gambar
|
||||||
|
// $pic_keluar = null;
|
||||||
|
// Log::error('Gagal mengambil gambar keluar: ' . $e->getMessage());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// dd($transaksi);
|
||||||
|
|
||||||
|
// $pic_masuk = base64_encode(stream_get_contents($transaksi->pic_body_masuk));
|
||||||
|
// dd($transaksi,$pic_masuk);
|
||||||
|
// // $pic_keluar = base64_encode(stream_get_contents($transaksi->pic_body_keluar));
|
||||||
|
|
||||||
|
// // $pic_keluar = $transaksi->pic_body_keluar ? base64_encode(stream_get_contents($transaksi->pic_body_keluar)) : null;
|
||||||
|
|
||||||
|
// // Mengembalikan gambar dalam format JSON
|
||||||
|
// return response()->json([
|
||||||
|
// 'pic_masuk' => $pic_masuk,
|
||||||
|
// // 'pic_keluar' => $pic_keluar,
|
||||||
|
// ]);
|
||||||
|
// // return view('verify', [
|
||||||
|
// // 'transaksi' => $transaksi,
|
||||||
|
// // 'pic_masuk' => $pic_masuk,
|
||||||
|
// // 'pic_keluar' => $pic_keluar,
|
||||||
|
// // ]);
|
||||||
|
// // return response()->json($transaksi);
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
Log::info([$id, $request->no_pol]);
|
||||||
|
$no_pol = $request->input('no_pol');
|
||||||
|
$user = Auth::user()->nomer;
|
||||||
|
$dateNow = Carbon::now();
|
||||||
|
$data = TransaksiParkir::where('id',$id)->where('no_pol',$no_pol)->orderBy('waktu_masuk','desc')->first(); // Ganti YourModel dengan nama model Anda
|
||||||
|
// $data->veri_check = 2;
|
||||||
|
$data->veri_check = $request->input('veri_check');
|
||||||
|
$data->veri_adm = $user;
|
||||||
|
$data->veri_time = $dateNow;
|
||||||
|
$data->save();
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Data berhasil diperbarui',
|
||||||
|
]);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Gagal melakukan update',
|
||||||
|
'error' => $e->getMessage(),
|
||||||
|
], 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -37,6 +37,7 @@ class Kernel extends HttpKernel
|
|||||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
|
// \App\Http\Middleware\LocationParameter::class, // Tambahkan di sini
|
||||||
],
|
],
|
||||||
|
|
||||||
'api' => [
|
'api' => [
|
||||||
@@ -63,5 +64,6 @@ class Kernel extends HttpKernel
|
|||||||
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
|
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
|
||||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||||
|
// 'location.param' => \App\Http\Middleware\LocationParameter::class,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
31
app/Http/Middleware/LocationParameter.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use App\Models\Softseting;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Illuminate\Support\Facades\View;
|
||||||
|
|
||||||
|
class LocationParameter
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||||
|
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||||
|
*/
|
||||||
|
public function handle(Request $request, Closure $next)
|
||||||
|
{
|
||||||
|
$location = Softseting::first();
|
||||||
|
|
||||||
|
// Log::info($location);
|
||||||
|
|
||||||
|
if ($location) {
|
||||||
|
View::share('location', $location);
|
||||||
|
}
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
35
app/Jobs/UpdateParkingTransaction.php
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Jobs;
|
||||||
|
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldBeUnique;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
|
class UpdateParkingTransaction implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new job instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
64
app/Jobs/VerificationSkiper.php
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Jobs;
|
||||||
|
|
||||||
|
use App\Models\TransaksiParkir;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldBeUnique;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class VerificationSkiper implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new job instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the job.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$dateNow = Carbon::now();
|
||||||
|
|
||||||
|
$RealtimeTrans = TransaksiParkir::select('no_pol')
|
||||||
|
->where('status', 1)
|
||||||
|
->where('veri_check','1')
|
||||||
|
->where('status_transaksi', '3')
|
||||||
|
->whereDate('veri_date', $dateNow)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
Log::channel('apps')->info('Verification member check : ' . json_encode($RealtimeTrans));
|
||||||
|
|
||||||
|
if ($RealtimeTrans) {
|
||||||
|
DB::table('transaksi_parkir')
|
||||||
|
->where('no_pol', $RealtimeTrans->no_pol )
|
||||||
|
->update(['veri_check' => 2,
|
||||||
|
'veri_date' => $dateNow,
|
||||||
|
'veri_adm' => 'SYSTEM'
|
||||||
|
]);
|
||||||
|
|
||||||
|
// $response = true;
|
||||||
|
$message = [
|
||||||
|
'no_pol' => $RealtimeTrans->no_pol,
|
||||||
|
'message' => 'member skipped'
|
||||||
|
];
|
||||||
|
Log::info('Skip verification ' . $RealtimeTrans->no_pol . ' Succesfully...');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
||||||
|
|
||||||
class CardMember extends Model
|
class CardMember extends Model
|
||||||
{
|
{
|
||||||
@@ -13,11 +12,6 @@ class CardMember extends Model
|
|||||||
protected $table = 'card_member';
|
protected $table = 'card_member';
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'notrans','no_card','no_urut','tanggal','adm','trans_id','harga'
|
'notrans','no_card','no_urut','tanggal','adm','trans_id','harga'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function stiker ()
|
|
||||||
{
|
|
||||||
return $this->BelongsTo(TransaksiStiker::class, 'notrans', 'no_id');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
17
app/Models/ConfigPosHardaware.php
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class ConfigPosHardaware extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'config_pos_hardware';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'id_pos','video1_conn'
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -8,4 +8,16 @@
|
|||||||
class DetailTransaksiStiker extends Model
|
class DetailTransaksiStiker extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'detail_transaksi_stiker';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'notrans','nopol','jenis_mobil','adm','kategori','jenis_member','akses','akses_out','status','merk','tipe','tahun','warna','keterangan'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function transaksi()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(TransaksiStiker::class, 'notrans', 'notrans');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
18
app/Models/JenisMobil.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class JenisMobil extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'jenis_mobil';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'id', 'nama','short_cut'
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
20
app/Models/LevelPegawai.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class LevelPegawai extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'level_user';
|
||||||
|
|
||||||
|
protected $fillable = [ 'level_code', 'level_name' ];
|
||||||
|
|
||||||
|
public function levelPegawai ()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(User::class, 'level_pegawai', 'level_code');
|
||||||
|
}
|
||||||
|
}
|
||||||
22
app/Models/MemberCard.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class MemberCard extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'card_member';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'notrans', 'no_card', 'no_urut', 'tanggal', 'adm'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function memberCard ()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(StikerTrans::class, 'no_id', 'notrans');
|
||||||
|
}
|
||||||
|
}
|
||||||
11
app/Models/MergeTransaksiStikerDetails.php
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class MergeTransaksiStikerDetails extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
}
|
||||||
57
app/Models/Pegawai.php
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class Pegawai extends Model implements AuthenticatableContract
|
||||||
|
{
|
||||||
|
protected $table = 'pegawai'; // Nama tabel
|
||||||
|
protected $primaryKey = 'id'; // Primary key tabel
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'nomer', 'nama', 'alamat', 'tgl_lahir', 'tgl_masuk', 'username', 'password', 'foto', 'bisalogin', 'status', 'jeniskelamin', 'agama', 'telepon', 'alamat_lahir', 'alamat_sekarang', 'nip', 'statusabsen', 'level_pegawai'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function getAuthPassword()
|
||||||
|
{
|
||||||
|
return $this->password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function validateCredentials(array $credentials)
|
||||||
|
{
|
||||||
|
$plain = $credentials['password'];
|
||||||
|
$hashed = $this->getAuthPassword();
|
||||||
|
|
||||||
|
// Lihat apakah password cocok dengan yang tersimpan (tanpa hash)
|
||||||
|
return $plain === $hashed;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Metode-metode dari kontrak Authenticatable
|
||||||
|
public function getAuthIdentifierName()
|
||||||
|
{
|
||||||
|
return 'id'; // Nama kolom yang menjadi identifier
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAuthIdentifier()
|
||||||
|
{
|
||||||
|
return $this->{$this->getAuthIdentifierName()};
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRememberToken()
|
||||||
|
{
|
||||||
|
return null; // Jika tidak menggunakan remember token
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setRememberToken($value)
|
||||||
|
{
|
||||||
|
// Jika tidak menggunakan remember token
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRememberTokenName()
|
||||||
|
{
|
||||||
|
return null; // Jika tidak menggunakan remember token
|
||||||
|
}
|
||||||
|
}
|
||||||
20
app/Models/ProdukPrice.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class ProdukPrice extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
static function getProduct()
|
||||||
|
{
|
||||||
|
return DB::table('produk_stiker as ps')
|
||||||
|
->join('tarif_stiker as ts', 'ps.name', '=', 'ts.jenis_langganan')
|
||||||
|
->join('jenis_mobil as jm', 'ts.id_mobil', '=', 'jm.id')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
}
|
||||||
18
app/Models/Softseting.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Softseting extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'softseting';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'namasoft','versoft','namasystem','versystem','namaperusahaan','alamat','namalokasi',
|
||||||
|
'alamatlokasi','softplatform'
|
||||||
|
];
|
||||||
|
}
|
||||||
32
app/Models/StikerTrans.php
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class StikerTrans extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'transaksi_stiker';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'notrans','nama','alamat', 'telepon', 'jenis_transaksi', 'awal', 'harga', 'keterangan', 'tanggal' , 'operator' ,
|
||||||
|
'akhir' , 'maks' , 'no_id' , 'unit_kerja', 'no_induk' , 'jenis_stiker' , 'hari_ke' ,'jenis_langganan' ,
|
||||||
|
'exit_pass' , 'no_kuitansi', 'tgl_edited', 'tipe_exit_pass', 'seq_code' , 'unitno' , 'area' , 'reserved',
|
||||||
|
'batasan_jam', 'batasan_awal', 'batasan_akhir', 'asuransi'
|
||||||
|
];
|
||||||
|
|
||||||
|
public $with = ['stiker_details', 'memberCard'];
|
||||||
|
|
||||||
|
public function stiker_details ()
|
||||||
|
{
|
||||||
|
return $this->hasMany(StikerTransDetail::class, 'notrans', 'notrans');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function memberCard ()
|
||||||
|
{
|
||||||
|
return $this->hasMany(MemberCard::class, 'notrans', 'no_id');
|
||||||
|
}
|
||||||
|
}
|
||||||
31
app/Models/StikerTransDetail.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class StikerTransDetail extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'detail_transaksi_stiker';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'notrans', 'nopol', 'jenis_mobil', 'adm', 'kategori',
|
||||||
|
'jenis_member', 'akses', 'akses_out', 'status', 'merk',
|
||||||
|
'tipe', 'tahun', 'warna', 'keterangan',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function stiker_details ()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(StikerTrans::class, 'notrans', 'notrans');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Relasi ke tabel jenis_mobil
|
||||||
|
public function vehicle()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(JenisMobil::class, 'id', 'jenis_mobil');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,19 +7,25 @@
|
|||||||
|
|
||||||
class TransaksiParkir extends Model
|
class TransaksiParkir extends Model
|
||||||
{
|
{
|
||||||
|
// protected $connection = 'pgsql_second';
|
||||||
|
// protected $casts = [
|
||||||
|
// 'id' => 'string',
|
||||||
|
// ];
|
||||||
|
// public $timestamps = false;
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
protected $table = 'transaksi_parkir';
|
protected $table = 'transaksi_parkir';
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'id','no_pol','id_kendaraan','status','id_pintu_masuk','id_pintu_keluar','waktu_masuk','waktu_keluar','id_op_masuk','id_op_keluar','id_shift_masuk',
|
'id', 'no_pol', 'id_kendaraaan', 'status', 'id_pintu_masuk', 'id_pintu_keluar', 'waktu_masuk', 'waktu_keluar', 'id_op_masuk', 'id_op_keluar', 'id_shift_masuk',
|
||||||
'id_shift_keluar','kategori','status_transaksi','bayar_masuk','bayar_keluar','jenis_system','tanggal','pic_body_masuk','pic_body_keluar',
|
'id_shift_keluar', 'kategori', 'status_transaksi', 'bayar_masuk', 'bayar_keluar', 'jenis_system', 'tanggal', 'pic_body_masuk', 'pic_body_keluar', 'pic_driver_masuk', 'pic_driver_keluar',
|
||||||
'pic_driver_masuk','pic_driver_keluar','pic_no_pol_masuk','pic_no_pol_keluar','sinkron','adm','alasan','pmlogin','pklogin','upload','manual',
|
'pic_no_pol_masuk', 'pic_no_pol_keluar', 'sinkron', 'adm', 'alasan', 'pmlogin', 'pklogin', 'upload', 'manual', 'veri_kode', 'veri_check', 'veri_adm', 'veri_date', 'denda', 'extra_bayar',
|
||||||
'veri_kode','veri_check','veri_adm','veri_date','denda','extra_bayar','no_barcode','jenis_langganan','post_pay','reff_kode','valet_adm','waktu_valet',
|
'no_barcode', 'jenis_langganan','post_pay', 'reff_kode', 'valet_adm', 'waktu_valet','valet_charge', 'valet_ops', 'valet_nopol', 'login_waktu_valet', 'cara_bayar','unit_member', 'reserved',
|
||||||
'valet_charge','valet_ops','valet_nopol','login_waktu_valet','cara_bayar','unit_member','reserved','no_voucher','seri_voucher','no_access_in',
|
'seri_voucher', 'no_access_in', 'no_access_out', 'inap', 'bigint', 'seq_out', 'rep_has_settle', 'rep_bank', 'no_kartu', 'card_bank', 'tid_bank', 'saldo','balance', 'refference_id_settlement',
|
||||||
'no_access_out','inap','seq_in','seq_out','rep_has_settle','rep_content','rep_bank','no_kartu','card_bank','tid_bank','saldo','balance',
|
'rep_content','mid_bank', 'veri_time'
|
||||||
'refference_id_settlement','reffrence_id_settlement','mid_bank','veri_time','has_update','tgl_update','operator'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
public $timestamps = false;
|
public function vehicle()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(VehicleItem::class, 'jenis_kendaraan', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,4 +8,21 @@
|
|||||||
class TransaksiStiker extends Model
|
class TransaksiStiker extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'transaksi_stiker';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'notrans','nama','alamat','telepon','jenis_transaksi','awal ','harga','keterangan','tanggal','operator','akhir','maks','no_id ','unit_kerja','no_induk',
|
||||||
|
'jenis_stiker','hari_ke','jenis_langganan','exit_pass','no_kuitansi','tgl_edited ','tipe_exit_pass','seq_code','unitno','area','reserved','batasan_jam',
|
||||||
|
'batasan_awal','batasan_akhir','asuransi','kartu','visitor'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function details() {
|
||||||
|
return $this->hasMany(DetailTransaksiStiker::class, 'notrans', 'notrans');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function cardMember()
|
||||||
|
{
|
||||||
|
return $this->hasOne(CardMember::class, 'no_id', 'notrans');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,9 +18,12 @@ class User extends Authenticatable
|
|||||||
* @var array<int, string>
|
* @var array<int, string>
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
|
'nomer',
|
||||||
'name',
|
'name',
|
||||||
|
'username',
|
||||||
'email',
|
'email',
|
||||||
'password',
|
'password',
|
||||||
|
'level_pegawai',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,4 +44,12 @@ class User extends Authenticatable
|
|||||||
protected $casts = [
|
protected $casts = [
|
||||||
'email_verified_at' => 'datetime',
|
'email_verified_at' => 'datetime',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public $with = ['levelPegawai'];
|
||||||
|
|
||||||
|
public function levelPegawai()
|
||||||
|
{
|
||||||
|
return $this->hasOne(LevelPegawai::class, 'level_code', 'level_pegawai');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
18
app/Models/VehicleItem.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class VehicleItem extends Model
|
||||||
|
{
|
||||||
|
protected $connection = 'pgsql_second';
|
||||||
|
protected $table = 'jenis_mobil';
|
||||||
|
public $timestamps = false;
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'id', 'nama', 'tanggal', 'short_cut', 'orang', 'validasi', 'need_access'
|
||||||
|
];
|
||||||
|
}
|
||||||
33
app/Providers/ParametersProvider.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
use App\Models\Softseting;
|
||||||
|
|
||||||
|
class ParametersProvider extends ServiceProvider
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Register services.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bootstrap services.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
view()->composer('*', function ($view) {
|
||||||
|
$Parameter = Softseting::all()->first();
|
||||||
|
$view->with('parameter', $Parameter);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const HOME = '/home';
|
public const HOME = '/dashboard';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The controller namespace for the application.
|
* The controller namespace for the application.
|
||||||
@@ -57,7 +57,7 @@ public function boot()
|
|||||||
protected function configureRateLimiting()
|
protected function configureRateLimiting()
|
||||||
{
|
{
|
||||||
RateLimiter::for('api', function (Request $request) {
|
RateLimiter::for('api', function (Request $request) {
|
||||||
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
|
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
33
app/Providers/ViewServiceProvider.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use App\Models\Softseting;
|
||||||
|
use Illuminate\Support\Facades\View;
|
||||||
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
|
class ViewServiceProvider extends ServiceProvider
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Register services.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bootstrap services.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
View::composer('*', function ($view) {
|
||||||
|
$settings = Softseting::first();
|
||||||
|
$view->with('locationSettings', $settings);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
0
bootstrap/cache/.gitignore
vendored
Normal file → Executable file
@@ -10,7 +10,8 @@
|
|||||||
"guzzlehttp/guzzle": "^7.2",
|
"guzzlehttp/guzzle": "^7.2",
|
||||||
"laravel/framework": "^9.0",
|
"laravel/framework": "^9.0",
|
||||||
"laravel/sanctum": "^2.14",
|
"laravel/sanctum": "^2.14",
|
||||||
"laravel/tinker": "^2.7"
|
"laravel/tinker": "^2.7",
|
||||||
|
"laravel/ui": "^4.6"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.9.1",
|
"fakerphp/faker": "^1.9.1",
|
||||||
|
|||||||
69
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "65e85f9f959c0b087110331754d451cf",
|
"content-hash": "006c4ddfd87627edd18542c501fd181e",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "asm89/stack-cors",
|
"name": "asm89/stack-cors",
|
||||||
@@ -1574,6 +1574,69 @@
|
|||||||
},
|
},
|
||||||
"time": "2025-01-27T14:24:01+00:00"
|
"time": "2025-01-27T14:24:01+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "laravel/ui",
|
||||||
|
"version": "v4.6.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/laravel/ui.git",
|
||||||
|
"reference": "7d6ffa38d79f19c9b3e70a751a9af845e8f41d88"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/laravel/ui/zipball/7d6ffa38d79f19c9b3e70a751a9af845e8f41d88",
|
||||||
|
"reference": "7d6ffa38d79f19c9b3e70a751a9af845e8f41d88",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"illuminate/console": "^9.21|^10.0|^11.0|^12.0",
|
||||||
|
"illuminate/filesystem": "^9.21|^10.0|^11.0|^12.0",
|
||||||
|
"illuminate/support": "^9.21|^10.0|^11.0|^12.0",
|
||||||
|
"illuminate/validation": "^9.21|^10.0|^11.0|^12.0",
|
||||||
|
"php": "^8.0",
|
||||||
|
"symfony/console": "^6.0|^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"orchestra/testbench": "^7.35|^8.15|^9.0|^10.0",
|
||||||
|
"phpunit/phpunit": "^9.3|^10.4|^11.5"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"providers": [
|
||||||
|
"Laravel\\Ui\\UiServiceProvider"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Laravel\\Ui\\": "src/",
|
||||||
|
"Illuminate\\Foundation\\Auth\\": "auth-backend/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Taylor Otwell",
|
||||||
|
"email": "taylor@laravel.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Laravel UI utilities and presets.",
|
||||||
|
"keywords": [
|
||||||
|
"laravel",
|
||||||
|
"ui"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/laravel/ui/tree/v4.6.1"
|
||||||
|
},
|
||||||
|
"time": "2025-01-28T15:15:29+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "league/commonmark",
|
"name": "league/commonmark",
|
||||||
"version": "2.7.1",
|
"version": "2.7.1",
|
||||||
@@ -8263,12 +8326,12 @@
|
|||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"stability-flags": {},
|
"stability-flags": [],
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "^8.0"
|
"php": "^8.0"
|
||||||
},
|
},
|
||||||
"platform-dev": {},
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.6.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,6 +164,7 @@
|
|||||||
Illuminate\Validation\ValidationServiceProvider::class,
|
Illuminate\Validation\ValidationServiceProvider::class,
|
||||||
Illuminate\View\ViewServiceProvider::class,
|
Illuminate\View\ViewServiceProvider::class,
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Package Service Providers...
|
* Package Service Providers...
|
||||||
*/
|
*/
|
||||||
@@ -176,6 +177,7 @@
|
|||||||
// App\Providers\BroadcastServiceProvider::class,
|
// App\Providers\BroadcastServiceProvider::class,
|
||||||
App\Providers\EventServiceProvider::class,
|
App\Providers\EventServiceProvider::class,
|
||||||
App\Providers\RouteServiceProvider::class,
|
App\Providers\RouteServiceProvider::class,
|
||||||
|
App\Providers\ViewServiceProvider::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
BIN
public/.DS_Store
vendored
Normal file
20
public/ajax/featuredcompanies.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<div class="col-xl-6 col-sm-6">
|
||||||
|
<div class="d-flex align-items-center list-item-bx">
|
||||||
|
<div class="icon-img-bx">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="71" height="71" viewBox="0 0 71 71">
|
||||||
|
<g transform="translate(-457 -443)">
|
||||||
|
<rect width="71" height="71" rx="12" transform="translate(457 443)" fill="#c5c5c5"/>
|
||||||
|
<g transform="translate(457 443)">
|
||||||
|
<rect data-name="placeholder" width="71" height="71" rx="12" fill="#eeb927"/>
|
||||||
|
<circle data-name="Ellipse 12" cx="18" cy="18" r="18" transform="translate(15 20)" fill="#fff"/>
|
||||||
|
<circle data-name="Ellipse 11" cx="11" cy="11" r="11" transform="translate(36 15)" fill="#ffe70c" style="mix-blend-mode: multiply;isolation: isolate"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div class="ms-3 featured">
|
||||||
|
<h5 class="mb-1">Uena Foods</h5>
|
||||||
|
<span>Desgin Team Agency</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
25
public/ajax/recentactivity.html
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<div class="d-flex recent-activity">
|
||||||
|
<span class="me-3">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 17 17">
|
||||||
|
<circle cx="8.5" cy="8.5" r="8.5" fill="#d9d9d9"/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<div class="d-flex align-items-center list-item-bx">
|
||||||
|
<div class="icon-img-bx">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="71" height="71" viewBox="0 0 71 71">
|
||||||
|
<g transform="translate(-457 -443)">
|
||||||
|
<rect width="71" height="71" rx="12" transform="translate(457 443)" fill="#c5c5c5"/>
|
||||||
|
<g transform="translate(457 443)">
|
||||||
|
<rect data-name="placeholder" width="71" height="71" rx="12" fill="#9933cb"/>
|
||||||
|
<circle data-name="Ellipse 12" cx="18" cy="18" r="18" transform="translate(15 20)" fill="#fff"/>
|
||||||
|
<circle data-name="Ellipse 11" cx="11" cy="11" r="11" transform="translate(36 15)" fill="#ffe70c" style="mix-blend-mode: multiply;isolation: isolate"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div class="ms-3">
|
||||||
|
<h5 class="mb-1">Kleon Studios have 5 available positions for you</h5>
|
||||||
|
<span>8min ago</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
BIN
public/assets/.DS_Store
vendored
Normal file
BIN
public/assets/alt-services.jpg
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
public/assets/constructions-1.jpg
Normal file
|
After Width: | Height: | Size: 156 KiB |
BIN
public/assets/constructions-2.jpg
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
public/assets/constructions-3.jpg
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
public/assets/constructions-4.jpg
Normal file
|
After Width: | Height: | Size: 234 KiB |
2868
public/assets/css/main.css
Normal file
BIN
public/assets/img/.DS_Store
vendored
Normal file
BIN
public/assets/img/about.jpg
Normal file
|
After Width: | Height: | Size: 190 KiB |
BIN
public/assets/img/alt-services.jpg
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
public/assets/img/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
public/assets/img/blog/blog-1.jpg
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
public/assets/img/blog/blog-2.jpg
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
public/assets/img/blog/blog-3.jpg
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
public/assets/img/blog/blog-4.jpg
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
public/assets/img/blog/blog-5.jpg
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
public/assets/img/blog/blog-6.jpg
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
public/assets/img/blog/blog-author.jpg
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
public/assets/img/blog/blog-inside-post.jpg
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
public/assets/img/blog/blog-recent-1.jpg
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
public/assets/img/blog/blog-recent-2.jpg
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
public/assets/img/blog/blog-recent-3.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
public/assets/img/blog/blog-recent-4.jpg
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
public/assets/img/blog/blog-recent-5.jpg
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
public/assets/img/blog/comments-1.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/assets/img/blog/comments-2.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/assets/img/blog/comments-3.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/assets/img/blog/comments-4.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/assets/img/blog/comments-5.jpg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/assets/img/blog/comments-6.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/assets/img/favicon.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/assets/img/features-1.jpg
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
public/assets/img/features-2.jpg
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
public/assets/img/features-3-2.jpg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
public/assets/img/features-3.jpg
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
public/assets/img/features-4.jpg
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/assets/img/footer-bg.jpg
Normal file
|
After Width: | Height: | Size: 340 KiB |
BIN
public/assets/img/hero-carousel/hero-carousel-1.jpg
Normal file
|
After Width: | Height: | Size: 271 KiB |
BIN
public/assets/img/hero-carousel/hero-carousel-2.jpg
Normal file
|
After Width: | Height: | Size: 259 KiB |
BIN
public/assets/img/hero-carousel/hero-carousel-3.jpg
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
public/assets/img/hero-carousel/hero-carousel-4.jpg
Normal file
|
After Width: | Height: | Size: 180 KiB |
BIN
public/assets/img/hero-carousel/hero-carousel-5.jpg
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
public/assets/img/logo.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
public/assets/img/page-title-bg.jpg
Normal file
|
After Width: | Height: | Size: 222 KiB |
BIN
public/assets/img/projects/construction-1.jpg
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
public/assets/img/projects/construction-2.jpg
Normal file
|
After Width: | Height: | Size: 305 KiB |
BIN
public/assets/img/projects/construction-3.jpg
Normal file
|
After Width: | Height: | Size: 128 KiB |