Penambahan login cashier via API, perhitungan tarif
This commit is contained in:
@@ -0,0 +1,187 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api\V1\Cashier;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\JenisMobil;
|
||||||
|
use App\Models\NamaPos;
|
||||||
|
use App\Models\Pegawai;
|
||||||
|
use App\Models\Softseting;
|
||||||
|
use App\Services\Parking\geTransaksi;
|
||||||
|
use App\Services\Parking\RateParkingService;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use function GuzzleHttp\json_encode;
|
||||||
|
|
||||||
|
class CashierOperationController extends Controller
|
||||||
|
{
|
||||||
|
public function login(Request $request)
|
||||||
|
{
|
||||||
|
$username = $request->username;
|
||||||
|
$password = $request->password;
|
||||||
|
$gateStatus = $request->idpintu;
|
||||||
|
|
||||||
|
$user = Pegawai::where("username", $username)->where("password", $password)->first();
|
||||||
|
|
||||||
|
$gateId = NamaPos::with("posHardware", "posParams")->where("id", $gateStatus)->first();
|
||||||
|
|
||||||
|
if (!$gateId) {
|
||||||
|
return response()->json([
|
||||||
|
"status" => false,
|
||||||
|
"message" => "ID Pintu tidak ditemukan",
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$globalSetting = Softseting::first();
|
||||||
|
|
||||||
|
$shortcutVeh = explode(",", $gateId->posParams->kend_valid);
|
||||||
|
|
||||||
|
$kendValid = JenisMobil::whereIn("id", $shortcutVeh)->orderBy("id")->get();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return response()->json([
|
||||||
|
"status" => false,
|
||||||
|
"message" => "Username dan Password salah atau user tidak aktif",
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info("Login user " . $user->nama . " berhasil.");
|
||||||
|
|
||||||
|
$fotoPegawai = $user->foto;
|
||||||
|
|
||||||
|
Log::info([
|
||||||
|
"type" => gettype($fotoPegawai),
|
||||||
|
"resource" => is_resource($fotoPegawai),
|
||||||
|
"length" => is_string($fotoPegawai) ? strlen($fotoPegawai) : null,
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (is_resource($fotoPegawai)) {
|
||||||
|
// $pegawaiFilename = $user->username;
|
||||||
|
rewind($fotoPegawai);
|
||||||
|
$fotoPegawai = stream_get_contents($fotoPegawai);
|
||||||
|
} else {
|
||||||
|
$user->foto = url(Storage::url("images/pegawai/no-image.jpg"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// $fotoPegawai = pg_unescape_bytea($fotoPegawai);
|
||||||
|
// $foto = stream_get_contents($fotoPegawai);
|
||||||
|
|
||||||
|
// file_put_contents(storage_path("app/debug_before.bin"), $foto);
|
||||||
|
|
||||||
|
// file_put_contents(
|
||||||
|
// storage_path("app/debug_after.bin"),
|
||||||
|
// pg_unescape_bytea($foto),
|
||||||
|
// );
|
||||||
|
|
||||||
|
// $raw = stream_get_contents($fotoPegawai);
|
||||||
|
|
||||||
|
// Log::info([
|
||||||
|
// "raw_size" => strlen($raw),
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
// $binary = pg_unescape_bytea($raw);
|
||||||
|
|
||||||
|
// Log::info([
|
||||||
|
// "binary_size" => strlen($binary),
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
// Log::info([
|
||||||
|
// "resource" => is_resource($fotoPegawai),
|
||||||
|
// "type" => gettype($fotoPegawai),
|
||||||
|
// "size" => is_string($fotoPegawai) ? strlen($fotoPegawai) : null,
|
||||||
|
// "hex" => bin2hex(substr($fotoPegawai, 0, 100)),
|
||||||
|
// "before" => bin2hex(substr($fotoPegawai, 0, 16)),
|
||||||
|
// // "after" => bin2hex(substr($decoded, 0, 16)),
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
if (!empty($fotoPegawai)) {
|
||||||
|
$filename = "pegawai_" . $user->nomer . ".jpg";
|
||||||
|
|
||||||
|
$result = Storage::disk("public")->put("images/pegawai/" . $filename, $fotoPegawai);
|
||||||
|
|
||||||
|
Log::info(["save" => $result]);
|
||||||
|
|
||||||
|
$user->foto = url(Storage::url("images/pegawai/" . $filename));
|
||||||
|
}
|
||||||
|
// Log::info($user->toArray());
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
"status" => true,
|
||||||
|
"message" => "Login berhasil",
|
||||||
|
"data" => [
|
||||||
|
"user" => $user,
|
||||||
|
"gate" => $gateId,
|
||||||
|
"settings" => $globalSetting,
|
||||||
|
"vehicleValid" => $kendValid,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkMember(Request $request)
|
||||||
|
{
|
||||||
|
Log::info($request->input("transaksi"));
|
||||||
|
$getMember = new geTransaksi();
|
||||||
|
$data = $getMember->TransaksiMember($request->input("transaksi"));
|
||||||
|
|
||||||
|
if (!$data) {
|
||||||
|
return response()->json([
|
||||||
|
"success" => false,
|
||||||
|
"message" => "Transaksi member tidak ditemukan",
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return response()->json([
|
||||||
|
"success" => true,
|
||||||
|
"data" => $data,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function transaksiInside(Request $request)
|
||||||
|
{
|
||||||
|
Log::info("Transaksi di input : " . $request->input("transaksi"));
|
||||||
|
$gateOut = $request->input("idpintu");
|
||||||
|
$vehicle = $request->input("kendaraan");
|
||||||
|
$licensePlate = $request->input("platNomer");
|
||||||
|
$gettransaksi = new geTransaksi();
|
||||||
|
$dateNow = Carbon::now()->format("Y-m-d HH:mm:ss");
|
||||||
|
Log::info("Kendaraan di pilih : " . $vehicle);
|
||||||
|
|
||||||
|
$Transaksi = $gettransaksi->TransaksiParkir($request->input("transaksi"));
|
||||||
|
|
||||||
|
if (!$Transaksi) {
|
||||||
|
Log::info("Transaksi tidak ditemukan : " . json_encode($Transaksi));
|
||||||
|
return response()->json([
|
||||||
|
"success" => false,
|
||||||
|
"message" => "Transaksi tidak ditemukan",
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info("Transaksi ditemukan : " . json_encode($Transaksi));
|
||||||
|
$waktu_masuk = Str::of($Transaksi->waktu_masuk)->trim();
|
||||||
|
|
||||||
|
$timeInSecond = Carbon::parse($waktu_masuk);
|
||||||
|
$timeOutSecond = Carbon::now();
|
||||||
|
$duration = $timeInSecond->diffInSeconds($timeOutSecond);
|
||||||
|
|
||||||
|
$hitungTarif = new RateParkingService();
|
||||||
|
|
||||||
|
[$duration, $tarifParkir] = $hitungTarif->parkingTimeCalc($vehicle, $duration);
|
||||||
|
|
||||||
|
$Transaksi["waktu_keluar"] = $timeOutSecond->format("Y-m-d H:i:s");
|
||||||
|
$Transaksi["bayar_keluar"] = (int) $tarifParkir;
|
||||||
|
$Transaksi["id_pintu_keluar"] = $gateOut;
|
||||||
|
Log::info("jam masuk : " . $timeInSecond);
|
||||||
|
Log::info("jam keluar : " . $timeOutSecond);
|
||||||
|
Log::info("Lama parkir dalam detik : " . $duration);
|
||||||
|
Log::info("Tarif transaksi : " . $tarifParkir);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
"success" => true,
|
||||||
|
"data" => $Transaksi,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// function transaksiProcess(Request $request)
|
||||||
|
}
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api\V1;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class ParkingOperationConteroller 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)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Api\V1;
|
namespace App\Http\Controllers\Api\V1;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\TransaksiParkir;
|
use App\Models\TransaksiParkir;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Services\Parking\geTransaksiParkir;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
@@ -14,9 +15,60 @@ class ParkingOperationController extends Controller
|
|||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function inTransaksi($data)
|
||||||
|
{
|
||||||
|
Log::info('Memulai proses pintu masuk : ' . $data);
|
||||||
|
$service = new geTransaksiParkir();
|
||||||
|
$data = $service->TransaksiParkir($data);
|
||||||
|
|
||||||
|
Log::info('Hasil : ' . $data);
|
||||||
|
|
||||||
|
if ($data) {
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'Kendaraan masih didalam',
|
||||||
|
'data' => $data
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = $service->TransaksiMember($data);
|
||||||
|
|
||||||
|
// if (!$data) {
|
||||||
|
// // store ke function/ insert ke database
|
||||||
|
// $memberActive = $service->TransaksiMember($data);
|
||||||
|
// // if (!$memberActive)
|
||||||
|
// }
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function outTransaksi($data, geTransaksiParkir $TransaksiParkir)
|
||||||
|
{
|
||||||
|
$data = $TransaksiParkir->TransaksiParkir($data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
return TransaksiParkir::selectRaw(
|
||||||
|
'transaksi_parkir.id::VARCHAR as id,
|
||||||
|
no_pol,
|
||||||
|
id_kendaraan,
|
||||||
|
id_pintu_masuk,
|
||||||
|
id_pintu_keluar,
|
||||||
|
waktu_masuk,
|
||||||
|
waktu_keluar,
|
||||||
|
bayar_keluar,
|
||||||
|
jm.nama',
|
||||||
|
)->leftJoin('jenis_mobil as jm','transaksi_parkir.id_kendaraan','=','jm.id')
|
||||||
|
// ->where('status', 1)
|
||||||
|
->orderByDesc('waktu_masuk')
|
||||||
|
->limit(50)->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,15 +89,25 @@ public function create()
|
|||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$transaksi = $this->show($request->input('transaksi'))->getData();
|
$gateStatus = $request->input('gate');
|
||||||
|
$no_pol = $request->input('transaksi');
|
||||||
|
Log::info($no_pol);
|
||||||
|
|
||||||
// dd($transaksi)->status;
|
if ($gateStatus == 0) {
|
||||||
// dd($transaksi->getData());
|
|
||||||
Log::info(get_class($transaksi));
|
$transaksiIn = $this->inTransaksi($no_pol);
|
||||||
dd(get_class($transaksi));
|
|
||||||
// if ($transaksi->status === true && $transaksi->member === false) {
|
if ($transaksiIn) {
|
||||||
// }
|
return $transaksiIn;
|
||||||
return;
|
}
|
||||||
|
|
||||||
|
$transaksi = $this->store($no_pol);
|
||||||
|
}
|
||||||
|
// Log::info($data);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
// 'data' => $data
|
||||||
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
<?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;
|
|
||||||
}
|
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class ApiV1MemberController extends Controller
|
class ApiV1MemberController extends Controller
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class DashboardController extends Controller
|
class DashboardController extends Controller
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\FrontOffice;
|
namespace App\Http\Controllers\Parking\FrontOffice;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\TransaksiParkir;
|
use App\Models\TransaksiParkir;
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\TransaksiParkir;
|
use App\Models\TransaksiParkir;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class LostiketController extends Controller
|
class LostiketController extends Controller
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class MemberProduct extends Controller
|
class MemberProduct extends Controller
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\ProdukPrice;
|
use App\Models\ProdukPrice;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\MemberCard;
|
use App\Models\MemberCard;
|
||||||
use App\Models\StikerTrans;
|
use App\Models\StikerTrans;
|
||||||
use App\Models\StikerTransDetail;
|
use App\Models\StikerTransDetail;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Operasional;
|
namespace App\Http\Controllers\Parking\Operasional;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Report;
|
namespace App\Http\Controllers\Parking\Report;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\TransaksiParkir;
|
use App\Models\TransaksiParkir;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Http\Setup\Gate;
|
namespace App\Http\Controllers\Parking\Setup\Gate;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\NamaPos;
|
use App\Models\NamaPos;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Http\Setup\Gate;
|
namespace App\Http\Controllers\Parking\Setup\Gate;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\ConfigHardware;
|
use App\Models\ConfigHardware;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Http\Setup\Gate;
|
namespace App\Http\Controllers\Parking\Setup\Gate;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Parking\Setup\UserLevel;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\LevelPegawai;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class LevelUserController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$leveluser = Auth()->User()->level_pegawai;
|
||||||
|
Log::info((int) $leveluser);
|
||||||
|
$levelAvail = LevelPegawai::where("level_code", ">=", $leveluser)->orderBy("level_id")->get();
|
||||||
|
|
||||||
|
return view("setup.UserLevel.level-user", compact("levelAvail"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Http\Setup\Vehicle;
|
namespace App\Http\Controllers\Parking\Setup\Vehicle;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\VehicleItem;
|
use App\Models\VehicleItem;
|
||||||
+15
-17
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Http\Setup\Vehicle;
|
namespace App\Http\Controllers\Parking\Setup\Vehicle;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\MasterTarif;
|
use App\Models\MasterTarif;
|
||||||
@@ -51,7 +51,7 @@ public function show($id)
|
|||||||
{
|
{
|
||||||
// Log::info($id);
|
// Log::info($id);
|
||||||
$id = str($id);
|
$id = str($id);
|
||||||
$vehicleRates = DB::table('tarif')->where('id_mobil', $id)->first();
|
$vehicleRates = DB::table("tarif")->where("id_mobil", $id)->first();
|
||||||
|
|
||||||
Log::info(json_encode($vehicleRates));
|
Log::info(json_encode($vehicleRates));
|
||||||
return $vehicleRates;
|
return $vehicleRates;
|
||||||
@@ -77,44 +77,42 @@ public function edit($id)
|
|||||||
*/
|
*/
|
||||||
public function update(Request $request, $id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
// Log::info($request->all());
|
Log::info($request->all());
|
||||||
// $id = $request->id_mobil;
|
// $id = $request->id_mobil;
|
||||||
|
|
||||||
$dataQuery = MasterTarif::find($id);
|
$dataQuery = MasterTarif::find($id);
|
||||||
try {
|
try {
|
||||||
|
|
||||||
Log::info($request->all());
|
Log::info($request->all());
|
||||||
|
|
||||||
$dataQuery->fill($request->all());
|
$dataQuery->fill($request->all());
|
||||||
|
|
||||||
if (!$dataQuery->isDirty()) {
|
if (!$dataQuery->isDirty()) {
|
||||||
// if($dataQuery->isDirty()) {
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => false,
|
"status" => false,
|
||||||
'message' => 'Tidak ada perubahan data'
|
"message" => "Tidak ada perubahan data",
|
||||||
]);
|
]);
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Log::info('Data yang di simpan' . json_encode($dataQuery->getDirty()));
|
Log::info(
|
||||||
|
"Data yang di simpan" . json_encode($dataQuery->getDirty()),
|
||||||
|
);
|
||||||
$dataQuery->save();
|
$dataQuery->save();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => true,
|
"status" => true,
|
||||||
'message' => 'Data berhasil di ubah'
|
"message" => "Data berhasil di ubah",
|
||||||
]);
|
]);
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
//throw $th;
|
Log::info(
|
||||||
Log::info('Data yang di simpan' . json_encode($dataQuery->getDirty()));
|
"Data yang di simpan" . json_encode($dataQuery->getDirty()),
|
||||||
|
);
|
||||||
|
|
||||||
// Log::info($request->all());
|
// Log::info($request->all());
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => false,
|
"status" => false,
|
||||||
'message' => 'Gagal menyimpan data ' . $th->getMessage(),
|
"message" => "Gagal menyimpan data " . $th->getMessage(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Tools;
|
namespace App\Http\Controllers\Parking\Tools;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\TransaksiStiker;
|
use App\Models\TransaksiStiker;
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Tools;
|
namespace App\Http\Controllers\Parking\Tools;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers\Parking;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\TransaksiParkir;
|
use App\Models\TransaksiParkir;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class CashierAuthentication
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 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)
|
||||||
|
{
|
||||||
|
$token = $request->header('X-Token');
|
||||||
|
if (!$token) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => false,
|
||||||
|
'message' => 'Anda tidak berhasil login'
|
||||||
|
], 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?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 $casts = [
|
||||||
|
'id' => 'string',
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'nama','short_cut'
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
@@ -11,7 +11,9 @@ class LevelPegawai extends Model
|
|||||||
|
|
||||||
protected $table = 'level_user';
|
protected $table = 'level_user';
|
||||||
|
|
||||||
protected $fillable = [ 'level_code', 'level_name' ];
|
protected $fillable = [
|
||||||
|
'level_code', 'level_name','create_by','create_date','update_date','update_by'
|
||||||
|
];
|
||||||
|
|
||||||
public function levelPegawai ()
|
public function levelPegawai ()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Menu_Avail extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'menu_avail';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'menu_id','menu_name','path','created_by','created_at','updated_at','deleted_at'
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -18,11 +18,11 @@ class NamaPos extends Model
|
|||||||
'id','nama','jenis','tanggal','lokasi','grace_period','manless','area'
|
'id','nama','jenis','tanggal','lokasi','grace_period','manless','area'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function posHardware() {
|
||||||
|
return $this->hasOne(ConfigHardware::class, 'id_pos', 'id');
|
||||||
|
}
|
||||||
public function posParams() {
|
public function posParams() {
|
||||||
return $this->hasOne(ConfigPos::class, 'id_pos', 'id');
|
return $this->hasOne(ConfigPos::class, 'id_pos', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function posHardware() {
|
|
||||||
return $this->hasOne(ConfigHardware::class, 'id_pos', 'id');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +8,13 @@
|
|||||||
class TransaksiParkir extends Model
|
class TransaksiParkir extends Model
|
||||||
{
|
{
|
||||||
// protected $connection = 'pgsql_second';
|
// protected $connection = 'pgsql_second';
|
||||||
// protected $casts = [
|
protected $casts = [
|
||||||
// 'id' => 'string',
|
'id' => 'string',
|
||||||
// ];
|
];
|
||||||
// public $timestamps = false;
|
public $timestamps = false;
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
protected $table = 'transaksi_parkir';
|
protected $table = 'transaksi_parkir';
|
||||||
|
|
||||||
const updated_at = null;
|
const updated_at = null;
|
||||||
const created_at = null;
|
const created_at = null;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class akseslevel extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'akseslevel';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'level_user','menu_id'
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -5,39 +5,49 @@
|
|||||||
use App\Models\MasterTarif;
|
use App\Models\MasterTarif;
|
||||||
use App\Models\VehicleItem;
|
use App\Models\VehicleItem;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use function GuzzleHttp\json_encode;
|
||||||
|
|
||||||
class RateParkingService
|
class RateParkingService
|
||||||
{
|
{
|
||||||
public function calc ($transaksi, $times)
|
public function parkingTimeCalc($vehicle, $times)
|
||||||
{
|
{
|
||||||
$duration = $times; ## Parse lama parkir berdasarkan detik
|
$duration = $times; ## Parse lama parkir berdasarkan detik
|
||||||
$tarifVehicle = MasterTarif::find($transaksi);
|
$tarifVehicle = MasterTarif::find($vehicle);
|
||||||
|
Log::info(json_encode($tarifVehicle));
|
||||||
$parkingPrice = 0; //Tarif pertama
|
$parkingPrice = 0; //Tarif pertama
|
||||||
Log::info("\n" . '------------------======== Starting tarif Begin ==============----------------------');
|
Log::info("\n" . "------------------======== Starting tarif Begin ==============----------------------");
|
||||||
Log::info('Mulai perhitungan tarif dengan durasi : ' . $duration .' (Rp. '. $parkingPrice .')');
|
Log::info("Mulai perhitungan tarif dengan durasi : " . $duration . " (Rp. " . $parkingPrice . ")");
|
||||||
|
|
||||||
// Grace Periode
|
// Grace Periode
|
||||||
if ($duration < $tarifVehicle->waktu_gratis) {
|
// if ($duration < $tarifVehicle->waktu_gratis) {
|
||||||
Log::info('GP Rules : ');
|
// Log::info("GP Rules : ");
|
||||||
return $parkingPrice;
|
// return $parkingPrice;
|
||||||
} else if ( $tarifVehicle->waktu_gratis !== 0 && $tarifVehicle->tarif_periode !== 0) {
|
// } elseif (
|
||||||
Log::info('GP Rules : ');
|
// $tarifVehicle->waktu_gratis !== 0 &&
|
||||||
$parkingPrice = $parkingPrice + $tarifVehicle->tarif_period;
|
// $tarifVehicle->tarif_periode !== 0
|
||||||
$duration = $duration - $tarifVehicle->waktu_gratis;
|
// ) {
|
||||||
Log::info('Setelah GP : ' . $parkingPrice . ' Durasi parkir : ' . $duration);
|
// Log::info("GP Rules : ");
|
||||||
}
|
// $parkingPrice = $parkingPrice + $tarifVehicle->tarif_period;
|
||||||
|
// $duration = $duration - $tarifVehicle->waktu_gratis;
|
||||||
|
// Log::info(
|
||||||
|
// "Setelah GP : " .
|
||||||
|
// $parkingPrice .
|
||||||
|
// " Durasi parkir : " .
|
||||||
|
// $duration,
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
## Hitung Tarif pertama
|
## Hitung Tarif pertama
|
||||||
$firstPrice = 0;
|
$firstPrice = 0;
|
||||||
$firstDuration = $tarifVehicle->frek_interval * ($tarifVehicle->interval * 60);
|
$firstDuration = $tarifVehicle->frek_interval * ($tarifVehicle->interval * 60);
|
||||||
Log::info('Firstime rules : ' . $firstDuration);
|
Log::info("Firstime rules : " . $firstDuration);
|
||||||
// if ($duration >= $firstDuration) {
|
// if ($duration >= $firstDuration) {
|
||||||
do {
|
do {
|
||||||
$duration -= ($tarifVehicle->interval * 60);
|
$duration -= $tarifVehicle->interval * 60;
|
||||||
$parkingPrice += $tarifVehicle->tarif_interval;
|
$parkingPrice += $tarifVehicle->tarif_interval;
|
||||||
$firstPrice++;
|
$firstPrice++;
|
||||||
} while ($firstPrice < $tarifVehicle->frek_interval);
|
} while ($firstPrice < $tarifVehicle->frek_interval);
|
||||||
Log::info('Tarif jam pertama : ' . $parkingPrice . ' Sisa durasi : ' . $duration);
|
Log::info("Tarif jam pertama : " . $parkingPrice . " Sisa durasi : " . $duration);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// Log::info($firstDuration);
|
// Log::info($firstDuration);
|
||||||
@@ -46,32 +56,48 @@ public function calc ($transaksi, $times)
|
|||||||
// Log::info($tarifVehicle->frek_waktu2 . ' - ' . $tarifVehicle->waktu2);
|
// Log::info($tarifVehicle->frek_waktu2 . ' - ' . $tarifVehicle->waktu2);
|
||||||
$secondDuration = $tarifVehicle->frek_waktu2 * ($tarifVehicle->waktu2 * 60);
|
$secondDuration = $tarifVehicle->frek_waktu2 * ($tarifVehicle->waktu2 * 60);
|
||||||
if ($duration >= $secondDuration) {
|
if ($duration >= $secondDuration) {
|
||||||
Log::info('');
|
Log::info("");
|
||||||
Log::info('Secondtime rules : ' . $secondDuration);
|
Log::info("Secondtime rules : " . $secondDuration);
|
||||||
|
Log::info($secondPrice);
|
||||||
do {
|
do {
|
||||||
$duration -= ($tarifVehicle->waktu2 * 60);
|
$duration -= $tarifVehicle->waktu2 * 60;
|
||||||
$parkingPrice += $tarifVehicle->tarif_interval;
|
Log::info($parkingPrice);
|
||||||
|
Log::info($tarifVehicle->tarif);
|
||||||
|
$parkingPrice += $tarifVehicle->tarif;
|
||||||
$secondPrice++;
|
$secondPrice++;
|
||||||
|
Log::info($secondPrice);
|
||||||
} while ($secondPrice < $tarifVehicle->frek_waktu2);
|
} while ($secondPrice < $tarifVehicle->frek_waktu2);
|
||||||
|
|
||||||
Log::info('Tarif jam kedua : ' . $parkingPrice . ' Sisa durasi : ' . $duration);
|
Log::info("Tarif jam kedua : " . $parkingPrice . " Sisa durasi : " . $duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
$nextDuration = 0;
|
$nextDuration = 0;
|
||||||
$lastDuration = $tarifVehicle->waktu_tarif * 60;
|
$lastDuration = $tarifVehicle->waktu_tarif * 60;
|
||||||
if ($duration <= $lastDuration && $duration > 0) {
|
if ($lastDuration <= $duration) {
|
||||||
Log::info('');
|
Log::info("");
|
||||||
Log::info('Sisa Durasi ' . $duration);
|
Log::info("Sisa Durasi " . $duration);
|
||||||
do {
|
do {
|
||||||
$duration -= ($tarifVehicle->waktu_tarif * 60);
|
$duration -= $tarifVehicle->waktu_tarif * 60;
|
||||||
$parkingPrice += $tarifVehicle->tarif;
|
$parkingPrice += $tarifVehicle->tarif;
|
||||||
// $nextDuration++;
|
// $nextDuration++;
|
||||||
} while ($duration > 0);
|
} while ($duration > 0);
|
||||||
Log::info('Tarif jam berikutnya : ' . $parkingPrice . ' Sisa durasi : ' . $duration);
|
Log::info("Tarif jam berikutnya : " . $parkingPrice . " Sisa durasi : " . $duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::info('Tarif Parkir Anda : ' . $parkingPrice . ' Sisa durasi : ' . $duration);
|
$tarifMaks = $tarifVehicle->maksimum;
|
||||||
|
|
||||||
|
if ($tarifMaks != 0) {
|
||||||
|
if ($parkingPrice > $tarifMaks) {
|
||||||
|
$parkingPrice = $tarifMaks;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info(
|
||||||
|
"Tarif Parkir Anda : " .
|
||||||
|
// $parkingPrice .
|
||||||
|
" Sisa durasi : " .
|
||||||
|
$duration,
|
||||||
|
);
|
||||||
|
|
||||||
// if ($tarifVehicle->time_base_maks == 1) {
|
// if ($tarifVehicle->time_base_maks == 1) {
|
||||||
// if ($parkingPrice > $tarifVehicle->maksimum) {
|
// if ($parkingPrice > $tarifVehicle->maksimum) {
|
||||||
@@ -79,8 +105,39 @@ public function calc ($transaksi, $times)
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
return [$duration, $parkingPrice];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function parkingDailysCalc($vehicle, $times)
|
||||||
|
{
|
||||||
|
if ($times < 86400) {
|
||||||
|
$parkingPrice = $this->parkingTimeCalc($vehicle, $times);
|
||||||
|
|
||||||
return $parkingPrice;
|
return $parkingPrice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$tarifVehicle = MasterTarif::find($vehicle);
|
||||||
|
$parkingPrice = 0;
|
||||||
|
Log::info("Parameter tarif : " . json_encode($tarifVehicle));
|
||||||
|
Log::info("Memulai hitung tarif : " . $parkingPrice);
|
||||||
|
Log::info("Base time : " . $times);
|
||||||
|
if ($tarifVehicle->time_base == 1) {
|
||||||
|
$durationDailys = $tarifVehicle->time_base_maks * 60 * 60;
|
||||||
|
Log::info("Waktu 1 hari : " . $durationDailys);
|
||||||
|
$parkingDuration = $times;
|
||||||
|
do {
|
||||||
|
$parkingDuration -= $durationDailys;
|
||||||
|
$parkingPrice += $tarifVehicle->maksimum;
|
||||||
|
} while ($parkingDuration >= 86400);
|
||||||
|
|
||||||
|
$result = $this->parkingTimeCalc($vehicle, $parkingDuration);
|
||||||
|
$parkingDuration = $result[0];
|
||||||
|
$parkingPrice = $result[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info("Sisa waktu : " . $parkingDuration);
|
||||||
|
Log::info("Tarif nya jadi : " . $parkingPrice);
|
||||||
|
|
||||||
|
return [$parkingDuration, (int) $parkingPrice];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services\Parking;
|
||||||
|
|
||||||
|
use App\Models\TransaksiParkir;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class geTransaksi
|
||||||
|
{
|
||||||
|
public function TransaksiParkir($idNopol)
|
||||||
|
{
|
||||||
|
Log::info("Mencari transaksi : " . $idNopol);
|
||||||
|
|
||||||
|
if (!$idNopol) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$getTransaksi = TransaksiParkir::selectRaw(
|
||||||
|
'transaksi_parkir.id::VARCHAR as id,
|
||||||
|
no_pol,
|
||||||
|
id_kendaraan,
|
||||||
|
id_pintu_masuk,
|
||||||
|
id_pintu_keluar,
|
||||||
|
waktu_masuk,
|
||||||
|
waktu_keluar,
|
||||||
|
bayar_keluar, jm.nama',
|
||||||
|
)
|
||||||
|
->leftJoin("jenis_mobil as jm", "transaksi_parkir.id_kendaraan", "=", "jm.id")
|
||||||
|
->where("no_pol", "LIKE", $idNopol . "%")
|
||||||
|
->where("status", 1)
|
||||||
|
->orderByDesc("waktu_masuk")
|
||||||
|
->first();
|
||||||
|
|
||||||
|
return $getTransaksi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function TransaksiMember($nopolCardNumber)
|
||||||
|
{
|
||||||
|
Log::info("Mencari transaksi member : " . $nopolCardNumber);
|
||||||
|
$getMember = DB::table("mergetransaksistikerdetail as mtsd")
|
||||||
|
// $getMember = 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('
|
||||||
|
mtsd.notrans, nama , alamat as alamat , telepon as telepon,
|
||||||
|
awal , akhir as akhir, nopol, nama vehicle, mtsd.tanggal, cm.no_card as no_card'),
|
||||||
|
)
|
||||||
|
// ->distinct()
|
||||||
|
->leftJoin("card_member as cm", "cm.notrans", "=", "mtsd.no_id")
|
||||||
|
->where("nopol", $nopolCardNumber)
|
||||||
|
// ->whereRaw("now() between awal and akhir")
|
||||||
|
->orderByDesc("tanggal")
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if (!$getMember) {
|
||||||
|
Log::info("Member aktif tidak ditemukan");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info("Member ditemukan : " . json_encode($getMember));
|
||||||
|
return $getMember;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('menu_avail', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->integer('menu_id');
|
||||||
|
$table->string('menu_name');
|
||||||
|
$table->string('path');
|
||||||
|
$table->integer('created_by');
|
||||||
|
$table->timestamps();
|
||||||
|
$table->timestamp('deleted_at');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('menu_avail');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('akses_level', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('level_user');
|
||||||
|
$table->string('menu_id');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('akses_level');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
class akses_level extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
class akseslevel extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class menu_avail_seeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
DB::table('menu_avail')->delete();
|
||||||
|
DB::table('menu_avail')->insert([
|
||||||
|
[
|
||||||
|
'menu_id' => '4100',
|
||||||
|
'menu_name' => 'Setup',
|
||||||
|
'path' => '/setup/#',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4101',
|
||||||
|
'menu_name' => 'Setup Pintu/Pos',
|
||||||
|
'path' => '/setup/master/gate',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4102',
|
||||||
|
'menu_name' => 'Setup Kendaraan',
|
||||||
|
'path' => '/setup/master/vehicle',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4103',
|
||||||
|
'menu_name' => 'Master Shift',
|
||||||
|
'path' => '/setup/master/shift',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4111',
|
||||||
|
'menu_name' => 'Master Pegawai',
|
||||||
|
'path' => '/setup/master/pegawai',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4111',
|
||||||
|
'menu_name' => 'Master Level',
|
||||||
|
'path' => '/setup/master/level',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4121',
|
||||||
|
'menu_name' => 'Master Nama stiker',
|
||||||
|
'path' => '/setup/master/stiker',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4122',
|
||||||
|
'menu_name' => 'Master Tarif Stiker',
|
||||||
|
'path' => '/setup/master/stiker-price',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4123',
|
||||||
|
'menu_name' => 'Master Jenis Stiker',
|
||||||
|
'path' => '/setup/master/stiker-type',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4200',
|
||||||
|
'menu_name' => 'Operational',
|
||||||
|
'path' => '/transaksi/#',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4201',
|
||||||
|
'menu_name' => 'Transaksi Parkir',
|
||||||
|
'path' => '/transaksi/parkir',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4202',
|
||||||
|
'menu_name' => 'Transaksi Stiker',
|
||||||
|
'path' => '/transaksi/parkir',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4300',
|
||||||
|
'menu_name' => 'Laporan',
|
||||||
|
'path' => '/report/#',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4301',
|
||||||
|
'menu_name' => 'Per Pintu/Pos',
|
||||||
|
'path' => '/report/laporan-per-pintu',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4302',
|
||||||
|
'menu_name' => 'Per hari',
|
||||||
|
'path' => '/report/laporan-per-hari',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4303',
|
||||||
|
'menu_name' => 'Per Bank',
|
||||||
|
'path' => '/report/laporan-per-bank',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'menu_id' => '4304',
|
||||||
|
'menu_name' => 'Per Petugas',
|
||||||
|
'path' => '/report/laporan-per-petugas',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
|
||||||
|
[
|
||||||
|
'menu_id' => '4302',
|
||||||
|
'menu_name' => 'Per Kendaraan',
|
||||||
|
'path' => '/report/laporan-per-kendaraan',
|
||||||
|
'created_by' => '0000',
|
||||||
|
'created_at' => Carbon::now(),
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
1782973785i:1;
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
1782973785i:1782973785;
|
||||||
File diff suppressed because one or more lines are too long
@@ -94,7 +94,6 @@ $(document).ready(function () {
|
|||||||
let vehicleRate = $('#show-tarif').serialize();
|
let vehicleRate = $('#show-tarif').serialize();
|
||||||
|
|
||||||
let id = $('#id_mobil').val();
|
let id = $('#id_mobil').val();
|
||||||
// let url = "{{ route('vehicle.update',':id') }}";
|
|
||||||
let url = $(this).data('url');
|
let url = $(this).data('url');
|
||||||
url = url.replace(':id', id);
|
url = url.replace(':id', id);
|
||||||
console.log(url);
|
console.log(url);
|
||||||
|
|||||||
@@ -25,9 +25,10 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li class="nav-item"><a class="nav-link" href="/setup/master/gate">Master Pintu/Pos</a></li>
|
<li class="nav-item"><a class="nav-link" href="/setup/master/gate">Master Pintu/Pos</a></li>
|
||||||
<li class="nav-item"><a class="nav-link" href="/setup/master/vehicle">Master Kendaraan</a></li>
|
<li class="nav-item"><a class="nav-link" href="/setup/master/vehicle">Master Kendaraan</a></li>
|
||||||
<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Tarif</a></li>
|
<!--<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Tarif</a></li>-->
|
||||||
<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Shift</a></li>
|
<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Shift</a></li>
|
||||||
<hr>
|
<hr>
|
||||||
|
<li class="nav-item"><a class="nav-link" href="/setup/master/level-user">Master Level Pengguna</a></li>
|
||||||
<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Petugas/Pegawai</a></li>
|
<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Petugas/Pegawai</a></li>
|
||||||
<hr>
|
<hr>
|
||||||
<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Stiker</a></li>
|
<li class="nav-item"><a class="nav-link" href="/transaksi/member">Master Stiker</a></li>
|
||||||
|
|||||||
@@ -0,0 +1,294 @@
|
|||||||
|
@extends('layouts.master')
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
@section('styles')
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.card-body label {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #6c757d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-body .form-control,
|
||||||
|
.card-body .form-select {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#search-button {
|
||||||
|
font-weight: 600;
|
||||||
|
letter-spacing: .3px;
|
||||||
|
}
|
||||||
|
.table-garis, .garis {
|
||||||
|
border: 0.1px solid black; /* Sets a 1px solid black border */
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-label {
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
.table-selectable tbody tr {
|
||||||
|
cursor: pointer;
|
||||||
|
transition: 0.15s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-selectable tbody tr:hover {
|
||||||
|
background-color: #f2f6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-selectable tbody tr.selected {
|
||||||
|
background-color: #0d6efd !important;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-selectable tbody tr.selected td {
|
||||||
|
color: #fff !important;
|
||||||
|
} */
|
||||||
|
</style>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<!-- partial -->
|
||||||
|
<div class="container-fluid page-body-wrapper">
|
||||||
|
<div class="main-panel">
|
||||||
|
<div class="content-wrapper">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2">
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-8 grid-margin justify-content-center stretch-card">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<h4 class="card-title">Daftar Pintu/Pos</h4>
|
||||||
|
<div class="table-responsive mb-2">
|
||||||
|
<table class="table table-bordered table-selectable" id="example" data-url="{{ route('getMember') }}">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="p-3" width="3%">No.</th>
|
||||||
|
<th style="text-align: center;" width="10%">Level Code</th>
|
||||||
|
<th style="text-align: center;">Level Pengguna</th>
|
||||||
|
<!--<th style="text-align: center;">Dibuat Oleh</th>-->
|
||||||
|
<th style="text-align: center;">Tanggal Dibuat</th>
|
||||||
|
<th style="text-align: center;">Hak Akses</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach ($levelAvail as $level)
|
||||||
|
<tr>
|
||||||
|
<td class="text-center">{{ $loop->iteration }}</td>
|
||||||
|
<td class="text-center" hidden>{{ $level->level_id }}</td>
|
||||||
|
<td class="text-center" width="7%">{{ $level->level_code }} </td>
|
||||||
|
<td>{{ $level->level_name }}</td>
|
||||||
|
<!--<td width="10%"></td>-->
|
||||||
|
<td class="text-center" width="10%">{{ \Carbon\Carbon::parse($level->create_date)->format('Y-m-d')}}</td>
|
||||||
|
<td class="text-center" width="12%">
|
||||||
|
<button type="button" class="bi bi-menu-app btn-xl parameter-button" data-bs-toggle="modal" title="Izin Akses" data-bs-target=".bd-ubah-modal-lg"></button>
|
||||||
|
<button type="button" class="bi bi-list hardware-button" data-bs-toggle="tooltip" title="Menu Akses" data-id="{{ $level->level_id }}" data-nama="{{ $level->level_name }}"></button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex justify-content-center align-items-center mt-2">
|
||||||
|
<div>
|
||||||
|
<button class="btn btn-primary btn-sm add-button" data-bs-toggle="modal" data-bs-target=".bd-example-modal-lg">Tambah</button>
|
||||||
|
<button class="btn btn-warning btn-sm edit-button" id="btnEdit" data-bs-toggle="modal" data-bs-target=".bd-ubah-modal-lg">Ubah</button>
|
||||||
|
<button class="btn btn-danger btn-sm" id="btnDelete">Hapus</button>
|
||||||
|
<button class="btn btn-danger btn-sm" id="btnDelete">Detail</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- ADD MEMMBER MODAL -->
|
||||||
|
{{-- @include('stiker.tambah-stiker')
|
||||||
|
@include('stiker.ubah-stiker') --}}
|
||||||
|
<!-- END MEMMBER MODAL -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-2">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('javascript')
|
||||||
|
<!--********* Scripts *********-->
|
||||||
|
<!-- Datatable -->
|
||||||
|
<!--********* Scripts *********-->
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/metisMenu/3.0.7/metisMenu.min.js"></script>
|
||||||
|
<script src="{{asset ('vendor/moment/moment.min.js') }}"></script>
|
||||||
|
<script src="{{asset ('vendor/bootstrap-daterangepicker/daterangepicker.js') }}"></script>
|
||||||
|
<script src="{{asset ('vendor/bootstrap-select/dist/js/bootstrap-select.min.js') }}"></script>
|
||||||
|
<script src="{{asset ('vendor/sweetalert2/dist/sweetalert2.min.js') }}"></script>
|
||||||
|
<script src="{{asset ('js/custom.min.js') }}"></script>
|
||||||
|
<script src="{{asset ('js/dlabnav-init.js') }}"></script>
|
||||||
|
<script src="{{asset ('js/member/index.js') }}"></script>
|
||||||
|
<script src="{{asset ('js/member/member-register.js') }}"></script>
|
||||||
|
{{-- <script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
$(document).on('click', '.hardware-button', function () {
|
||||||
|
let row = $(this).closest('tr');
|
||||||
|
|
||||||
|
// kalau sudah ada baris edit, hapus dulu
|
||||||
|
$('.edit-row').remove();
|
||||||
|
|
||||||
|
let id = $(this).data('id');
|
||||||
|
let nama = $(this).data('nama');
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('hardware.show', '') }}/" + id,
|
||||||
|
type: 'GET',
|
||||||
|
success: function (r) {
|
||||||
|
console.log(r);
|
||||||
|
|
||||||
|
let colSpan = row.children('td').length;
|
||||||
|
|
||||||
|
// Field yang mau ditampilkan (pilih sendiri mau yang mana)
|
||||||
|
let fields = [
|
||||||
|
['printer1_avail', 'Printer Status'],
|
||||||
|
['printer1_conn', 'Printer Connection'],
|
||||||
|
['printer1_spd', 'Printer Speed/Baudrate'],
|
||||||
|
['video1_avail', 'Kamera Status'],
|
||||||
|
['video1_conn', 'Kamera URL/Path'],
|
||||||
|
['sound_avail', 'Sound Status'],
|
||||||
|
['bg_avail', 'BGate Status'],
|
||||||
|
['bg_conn', 'BGate Connection'],
|
||||||
|
['bank_reader_avail', 'Reader BANK Status'],
|
||||||
|
['bank_reader_comm', 'Reader BANK Connection'],
|
||||||
|
['bank_reader_key', 'Reader BANK Key/Parameter'],
|
||||||
|
];
|
||||||
|
|
||||||
|
let rows = '';
|
||||||
|
|
||||||
|
for (let i = 0; i < fields.length; i ++) {
|
||||||
|
|
||||||
|
let f1 = fields[i];
|
||||||
|
|
||||||
|
rows += `
|
||||||
|
<tr>
|
||||||
|
<td class="fw-semibold text-muted text-label"><strong>${f1[1]}</strong></td>
|
||||||
|
<td>
|
||||||
|
<span class="view-mode">${formatValue(f1[0], r[f1[0]])}</span>
|
||||||
|
<input type="text"
|
||||||
|
class="form-control form-control-sm edit-mode d-none"
|
||||||
|
data-key="${f1[0]}"
|
||||||
|
value="${r[f1[0]] ?? ''}">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
let editHtml = `
|
||||||
|
<tr class="edit-row" data-id="${id}">
|
||||||
|
<td colspan="${colSpan}">
|
||||||
|
<div class="card shadow-sm">
|
||||||
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<strong>Hardware Configuration</strong>
|
||||||
|
<div>
|
||||||
|
<button class="btn btn-sm btn-primary btn-edit">Edit</button>
|
||||||
|
<button class="btn btn-sm btn-success btn-save d-none">Save</button>
|
||||||
|
<button class="btn btn-sm btn-secondary btn-cancel d-none">Cancel</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-2">
|
||||||
|
<table class="table table-bordered table-sm align-middle mb-0">
|
||||||
|
<thead class="table-light">
|
||||||
|
<tr>
|
||||||
|
<th width="15%">Setting</th>
|
||||||
|
<th width="85%">Value</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
${rows}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
`;
|
||||||
|
|
||||||
|
row.after(editHtml);
|
||||||
|
},
|
||||||
|
error: function (xhr) {
|
||||||
|
console.error(xhr.responseText);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// MODE EDIT
|
||||||
|
$(document).on('click', '.btn-edit', function () {
|
||||||
|
|
||||||
|
$('.view-mode').addClass('d-none');
|
||||||
|
$('.edit-mode').removeClass('d-none');
|
||||||
|
|
||||||
|
$('.btn-edit').addClass('d-none');
|
||||||
|
$('.btn-save, .btn-cancel').removeClass('d-none');
|
||||||
|
});
|
||||||
|
|
||||||
|
// CANCEL
|
||||||
|
$(document).on('click', '.btn-cancel', function () {
|
||||||
|
|
||||||
|
$('.edit-mode').addClass('d-none');
|
||||||
|
$('.view-mode').removeClass('d-none');
|
||||||
|
|
||||||
|
$('.btn-save, .btn-cancel').addClass('d-none');
|
||||||
|
$('.btn-edit').removeClass('d-none');
|
||||||
|
});
|
||||||
|
|
||||||
|
// SAVE
|
||||||
|
$(document).on('click', '.btn-save', function () {
|
||||||
|
|
||||||
|
let dataToSend = {};
|
||||||
|
|
||||||
|
$('.edit-mode').each(function () {
|
||||||
|
let key = $(this).data('key');
|
||||||
|
dataToSend[key] = $(this).val();
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(dataToSend);
|
||||||
|
let gateId = $('.edit-row').data('id');
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('hardware.update', '') }}/" + gateId,
|
||||||
|
type: "PUT",
|
||||||
|
data: {
|
||||||
|
_token: "{{ csrf_token() }}",
|
||||||
|
data: dataToSend
|
||||||
|
},
|
||||||
|
success: function () {
|
||||||
|
|
||||||
|
$('.edit-mode').each(function () {
|
||||||
|
let val = $(this).val();
|
||||||
|
$(this).siblings('.view-mode').text(val);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btn-cancel').click();
|
||||||
|
alert('Berhasil disimpan 🔥');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function formatValue(key, value) {
|
||||||
|
|
||||||
|
// kalau field *_avail kita kasih badge
|
||||||
|
if (key.includes('_avail')) {
|
||||||
|
|
||||||
|
if (value == 1) {
|
||||||
|
return `<span class="badge rounded-pill bg-success px-3">ON</span>`;
|
||||||
|
} else {
|
||||||
|
return `<span class="badge rounded-pill bg-danger px-3">OFF</span>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// default
|
||||||
|
return value ?? '-';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script> --}}
|
||||||
|
@endsection
|
||||||
@@ -116,11 +116,9 @@
|
|||||||
<div class="d-flex justify-content-center align-items-center mt-2">
|
<div class="d-flex justify-content-center align-items-center mt-2">
|
||||||
<div>
|
<div>
|
||||||
<button class="btn btn-primary btn-sm add-button" data-bs-toggle="modal" data-bs-target=".bd-example-modal-lg">Tambah</button>
|
<button class="btn btn-primary btn-sm add-button" data-bs-toggle="modal" data-bs-target=".bd-example-modal-lg">Tambah</button>
|
||||||
{{-- </div>
|
<button class="btn btn-warning btn-sm edit-button" id="btnEdit" data-bs-toggle="modal" data-bs-target=".bd-ubah-modal-lg">Ubah</button>
|
||||||
<div id="rowActions" class="d-none"> --}}
|
|
||||||
<button class="btn btn-warning btn-sm edit-button" id="btnEdit" data-bs-toggle="modal" data-bs-target=".bd-ubah-modal-lg">Tambah</button>
|
|
||||||
<button class="btn btn-danger btn-sm" id="btnDelete">Hapus</button>
|
<button class="btn btn-danger btn-sm" id="btnDelete">Hapus</button>
|
||||||
<button class="btn btn-info btn-sm" id="btnDetail">Detail</button>
|
<button class="btn btn-danger btn-sm" id="btnDelete">Detail</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- ADD MEMMBER MODAL -->
|
<!-- ADD MEMMBER MODAL -->
|
||||||
|
|||||||
@@ -15,6 +15,10 @@
|
|||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
border: 2px solid #2251c7;
|
||||||
|
}
|
||||||
|
|
||||||
.card-body .form-control,
|
.card-body .form-control,
|
||||||
.card-body .form-select {
|
.card-body .form-select {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@@ -36,24 +40,6 @@
|
|||||||
.tes {
|
.tes {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
.table-selectable tbody tr {
|
|
||||||
cursor: pointer;
|
|
||||||
transition: 0.15s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-selectable tbody tr:hover {
|
|
||||||
background-color: #f2f6ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-selectable tbody tr.selected {
|
|
||||||
background-color: #0d6efd !important;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-selectable tbody tr.selected td {
|
|
||||||
color: #fff !important;
|
|
||||||
} */
|
|
||||||
</style>
|
</style>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
<label class="me-2 mb-0">Tarif</label>
|
<label class="me-2 mb-0">Tarif</label>
|
||||||
<input type="number" class="form-control no-spinner" id="frek_interval" name="frek_interval" style="width:60px" value="1">
|
<input type="number" class="form-control no-spinner" id="frek_interval" name="frek_interval" style="width:60px" value="1">
|
||||||
<label class="me-2 ms-4 mb-0">X</label>
|
<label class="me-2 ms-4 mb-0">X</label>
|
||||||
<input type="number me-6 ms-4" class="form-control no-spinner-time" id="interval" name="interval" style="width:65px" value="60">
|
<input type="number me-6 ms-4" class="form-control no-spinner-time" id="interval" name="interval" style="width:70px" value="60">
|
||||||
<label class="me-2 ms-4 mb-0">Menit Pertama adalah : </label>
|
<label class="me-2 ms-4 mb-0">Menit Pertama adalah : </label>
|
||||||
<input type="number" class="form-control no-spinner" id="tarif_interval" name="tarif_interval" style="width:100px" value="0">
|
<input type="number" class="form-control no-spinner" id="tarif_interval" name="tarif_interval" style="width:100px" value="0">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+32
-18
@@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Http\Controllers\Api\V1\Cashier\CashierOperationController;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use App\Http\Controllers\Api\V1\ConfigParameter;
|
use App\Http\Controllers\Api\V1\ConfigParameter;
|
||||||
@@ -21,35 +22,48 @@
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
Route::middleware("auth:sanctum")->get("/user", function (Request $request) {
|
||||||
return $request->user();
|
return $request->user();
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('location', [ConfigParameter::class, 'index']);
|
Route::get("location", [ConfigParameter::class, "index"]);
|
||||||
|
|
||||||
Route::prefix('v1')->group(function () {
|
Route::prefix("v1")->group(function () {
|
||||||
Route::prefix('operation')->group(function () {
|
Route::prefix("operation")->group(function () {
|
||||||
// Route::get('transaksiparkir/{id}', ParkingOperationController::class, 'inde');
|
// Route::get('transaksiparkir/{id}', ParkingOperationController::class, 'inde');
|
||||||
Route::resource('transaksiparkir', ParkingOperationController::class);
|
Route::resource("parking", ParkingOperationController::class);
|
||||||
|
Route::prefix("cashier")->group(function () {
|
||||||
|
Route::post("login", [CashierOperationController::class, "login"]);
|
||||||
|
Route::post("getmember", [
|
||||||
|
CashierOperationController::class,
|
||||||
|
"checkMember",
|
||||||
|
]);
|
||||||
|
Route::post("transaksinside", [
|
||||||
|
CashierOperationController::class,
|
||||||
|
"transaksiInside",
|
||||||
|
]);
|
||||||
|
// Route::middleware('CashierAuthentication')->group(function () {
|
||||||
|
// });
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::prefix('transaksi')->group(function () {
|
Route::prefix("transaksi")->group(function () {
|
||||||
Route::get('stiker/telusuri', [TransaksiMember::class, 'status']);
|
Route::get("stiker/telusuri", [TransaksiMember::class, "status"]);
|
||||||
Route::resource('stiker', TransaksiMember::class);
|
Route::resource("stiker", TransaksiMember::class);
|
||||||
Route::resource('parkir', TransaksiParkir::class);
|
Route::resource("parkir", TransaksiParkir::class);
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::resource('member', MemberinController::class)->names('memberin');
|
Route::resource("member", MemberinController::class)->names("memberin");
|
||||||
|
|
||||||
Route::prefix('report')->group(function () {
|
Route::prefix("report")->group(function () {
|
||||||
Route::post('harian', [LaporanController::class, 'harian']);
|
Route::post("harian", [LaporanController::class, "harian"]);
|
||||||
Route::post('payment', [LaporanController::class, 'payment']);
|
Route::post("payment", [LaporanController::class, "payment"]);
|
||||||
Route::post('operator', [LaporanController::class, 'operator']);
|
Route::post("operator", [LaporanController::class, "operator"]);
|
||||||
Route::post('gate', [LaporanController::class, 'gate']);
|
Route::post("gate", [LaporanController::class, "gate"]);
|
||||||
Route::post('daily', [LaporanController::class, 'daily']);
|
Route::post("daily", [LaporanController::class, "daily"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::prefix('display')->group(function () {
|
Route::prefix("display")->group(function () {
|
||||||
Route::get('content', [DisplayContentController::class, 'index']);
|
Route::get("content", [DisplayContentController::class, "index"]);
|
||||||
});
|
});
|
||||||
|
|||||||
+73
-70
@@ -1,28 +1,32 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Http\Controllers\Apps\Memberin\SelfMemberinController;
|
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
// ParkingAccess
|
||||||
|
use App\Http\Controllers\Parking\DashboardController;
|
||||||
|
use App\Http\Controllers\Parking\Setup\Gate\MasterGateController;
|
||||||
|
use App\Http\Controllers\Parking\Setup\Gate\MasterGateHardwareController;
|
||||||
|
use App\Http\Controllers\Parking\Setup\Gate\MasterGateParameterController;
|
||||||
|
use App\Http\Controllers\Parking\Setup\Vehicle\MasterVehicleController;
|
||||||
|
use App\Http\Controllers\Parking\Setup\Vehicle\ModifiedVehiclepriceController;
|
||||||
|
use App\Http\Controllers\Parking\Setup\UserLevel\LevelUserController;
|
||||||
|
use App\Http\Controllers\Parking\LostiketController;
|
||||||
|
use App\Http\Controllers\Parking\MemberProductController;
|
||||||
|
use App\Http\Controllers\Parking\MemberStikerController;
|
||||||
|
use App\Http\Controllers\Parking\Operasional\TransaksiParkirController;
|
||||||
|
use App\Http\Controllers\Parking\Report\LaporanStiker;
|
||||||
|
use App\Http\Controllers\Parking\ReportTransaksiController;
|
||||||
|
use App\Http\Controllers\Parking\SetupController;
|
||||||
|
use App\Http\Controllers\Parking\StikerController;
|
||||||
|
use App\Http\Controllers\Parking\StreamerController;
|
||||||
|
use App\Http\Controllers\Parking\FrontOffice\FrontOfficeController;
|
||||||
|
use App\Http\Controllers\Parking\Tools\StikerExtendedController;
|
||||||
|
use App\Http\Controllers\Parking\Tools\TransactionChangeController;
|
||||||
|
use App\Http\Controllers\Parking\VerifyTransController;
|
||||||
|
|
||||||
use App\Http\Controllers\Apps\ModifiedTransaksi;
|
use App\Http\Controllers\Apps\ModifiedTransaksi;
|
||||||
use App\Http\Controllers\DashboardController;
|
use App\Http\Controllers\Apps\Memberin\SelfMemberinController;
|
||||||
use App\Http\Controllers\Http\Setup\Gate\MasterGateController;
|
|
||||||
use App\Http\Controllers\Http\Setup\Gate\MasterGateHardwareController;
|
|
||||||
use App\Http\Controllers\Http\Setup\Gate\MasterGateParameterController;
|
|
||||||
use App\Http\Controllers\LostiketController;
|
|
||||||
use App\Http\Controllers\MemberProductController;
|
|
||||||
use App\Http\Controllers\MemberStikerController;
|
|
||||||
use App\Http\Controllers\Operasional\TransaksiParkirController;
|
|
||||||
use App\Http\Controllers\Report\LaporanStiker;
|
|
||||||
use App\Http\Controllers\ReportTransaksiController;
|
|
||||||
use App\Http\Controllers\SetupController;
|
|
||||||
use App\Http\Controllers\StikerController;
|
|
||||||
use App\Http\Controllers\StreamerController;
|
|
||||||
use App\Http\Controllers\FrontOffice\FrontOfficeController;
|
|
||||||
use App\Http\Controllers\Http\Setup\Vehicle\MasterVehicleController;
|
|
||||||
use App\Http\Controllers\Http\Setup\Vehicle\ModifiedVehiclepriceController;
|
|
||||||
use App\Http\Controllers\Tools\StikerExtendedController;
|
|
||||||
use App\Http\Controllers\Tools\TransactionChangeController;
|
|
||||||
use App\Http\Controllers\VerifyTransController;
|
|
||||||
|
|
||||||
// use App\Services\BcaSignatureTest;
|
// use App\Services\BcaSignatureTest;
|
||||||
|
|
||||||
@@ -41,71 +45,70 @@
|
|||||||
// return view('backend');
|
// return view('backend');
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
Route::get("/", [SetupController::class, "index"]);
|
||||||
|
Route::post("/setup/run", [SetupController::class, "run"])->name("setup.run");
|
||||||
|
Route::resource("/apps", ModifiedTransaksi::class);
|
||||||
|
Route::post("/scan", [ModifiedTransaksi::class, "scan"])->name("apps.scan");
|
||||||
|
|
||||||
Route::get('/', [SetupController::class, 'index']);
|
Route::resource("memberin", SelfMemberinController::class)->names("self-memberin");
|
||||||
Route::post('/setup/run', [SetupController::class, 'run'])->name('setup.run');
|
|
||||||
Route::resource('/apps', ModifiedTransaksi::class);
|
|
||||||
Route::post('/scan', [ModifiedTransaksi::class, 'scan'])->name('apps.scan');
|
|
||||||
|
|
||||||
Route::resource('memberin', SelfMemberinController::class)->names('self-memberin');
|
|
||||||
|
|
||||||
|
|
||||||
Auth::routes();
|
Auth::routes();
|
||||||
Route::group(['middleware' => 'auth'], function () {
|
Route::group(["middleware" => "auth"], function () {
|
||||||
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
Route::get("/dashboard", [DashboardController::class, "index"])->name("dashboard");
|
||||||
|
|
||||||
Route::prefix('/setup')->group(function () {
|
Route::prefix("/setup")->group(function () {
|
||||||
Route::prefix('master')->group(function () {
|
Route::prefix("master")->group(function () {
|
||||||
Route::resource('gate', MasterGateController::class);
|
Route::resource("gate", MasterGateController::class);
|
||||||
Route::resource('gate-details', MasterGateParameterController::class);
|
Route::resource("gate-details", MasterGateParameterController::class);
|
||||||
Route::resource('gate-hardware', MasterGateHardwareController::class)->names('hardware');
|
Route::resource("gate-hardware", MasterGateHardwareController::class)->names("hardware");
|
||||||
Route::resource('vehicle', MasterVehicleController::class);
|
Route::resource("vehicle", MasterVehicleController::class);
|
||||||
Route::resource('price', ModifiedVehiclepriceController::class)->names('vehicle');
|
Route::resource("price", ModifiedVehiclepriceController::class)->names("vehiclePrice");
|
||||||
|
Route::resource("level-user", LevelUserController::class)->names("levelUser");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::prefix('/transaksi')->group(function () {
|
Route::prefix("/transaksi")->group(function () {
|
||||||
Route::resource('parkir', TransaksiParkirController::class)->names('transaksiparkir');
|
Route::resource("parkir", TransaksiParkirController::class)->names("transaksiparkir");
|
||||||
Route::get('stiker', [StikerController::class, 'index']);
|
Route::get("stiker", [StikerController::class, "index"]);
|
||||||
Route::resource('member', MemberStikerController::class);
|
Route::resource("member", MemberStikerController::class);
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::prefix('report')->group(function () {
|
Route::prefix("report")->group(function () {
|
||||||
Route::get('/laporan-semua-transaksi', [ReportTransaksiController::class, 'allReport']);
|
Route::get("/laporan-semua-transaksi", [ReportTransaksiController::class, "allReport"]);
|
||||||
Route::get('/laporan-semua-transaksi/data', [ReportTransaksiController::class, 'allReportData'])->name('getData');
|
Route::get("/laporan-semua-transaksi/data", [ReportTransaksiController::class, "allReportData"])->name(
|
||||||
Route::get('/laporan-per-pintu', [ReportTransaksiController::class, 'byGate']);
|
"getData",
|
||||||
Route::get('/laporan-per-pintu/data', [ReportTransaksiController::class, 'gateData'])->name('gateData');
|
);
|
||||||
|
Route::get("/laporan-per-pintu", [ReportTransaksiController::class, "byGate"]);
|
||||||
|
Route::get("/laporan-per-pintu/data", [ReportTransaksiController::class, "gateData"])->name("gateData");
|
||||||
|
|
||||||
Route::prefix('stiker')->group(function () {
|
Route::prefix("stiker")->group(function () {
|
||||||
Route::get('/harian', [LaporanStiker::class, 'laporanStikerHarian']);
|
Route::get("/harian", [LaporanStiker::class, "laporanStikerHarian"]);
|
||||||
Route::get('/harian/data', [LaporanStiker::class, 'dataStiker'])->name('stikerData');
|
Route::get("/harian/data", [LaporanStiker::class, "dataStiker"])->name("stikerData");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
Route::prefix("/tools")->group(function () {
|
||||||
|
Route::resource("stiker-extend", StikerExtendedController::class);
|
||||||
|
Route::resource("change-trans", TransactionChangeController::class);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
Route::prefix("/front-office")->group(function () {
|
||||||
Route::prefix('/tools')->group(function () {
|
Route::get("/check-in-out/search", [FrontOfficeController::class, "search"])->name("check-in-out.search");
|
||||||
Route::resource('stiker-extend', StikerExtendedController::class);
|
Route::get("/check-in-out/image/{id}", [FrontOfficeController::class, "image"]);
|
||||||
Route::resource('change-trans', TransactionChangeController::class);
|
Route::resource("check-in-out", FrontOfficeController::class);
|
||||||
});
|
|
||||||
|
|
||||||
Route::prefix('/front-office')->group(function () {
|
|
||||||
Route::get('/check-in-out/search', [FrontOfficeController::class, 'search'])->name('check-in-out.search');
|
|
||||||
Route::get('/check-in-out/image/{id}', [FrontOfficeController::class, 'image']);
|
|
||||||
Route::resource('check-in-out', FrontOfficeController::class);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
|
// Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
|
||||||
Route::resource('verify', VerifyTransController::class);
|
Route::resource("verify", VerifyTransController::class);
|
||||||
Route::post('/verify/show', [VerifyTransController::class, 'showImages']);
|
Route::post("/verify/show", [VerifyTransController::class, "showImages"]);
|
||||||
Route::resource('losttiket', LostiketController::class);
|
Route::resource("losttiket", LostiketController::class);
|
||||||
Route::post('member/data', [MemberStikerController::class, 'getMember'])->name('getMember');
|
Route::post("member/data", [MemberStikerController::class, "getMember"])->name("getMember");
|
||||||
Route::post('member/checkField', [MemberStikerController::class, 'checkField']);
|
Route::post("member/checkField", [MemberStikerController::class, "checkField"]);
|
||||||
Route::resource('settings', LostiketController::class);
|
Route::resource("settings", LostiketController::class);
|
||||||
Route::resource('settings-register', MemberProductController::class);
|
Route::resource("settings-register", MemberProductController::class);
|
||||||
Route::get('streaming', [StreamerController::class, 'index']);
|
Route::get("streaming", [StreamerController::class, "index"]);
|
||||||
Route::get('stream-snapshot', [StreamerController::class, 'streamSnapshot']);
|
Route::get("stream-snapshot", [StreamerController::class, "streamSnapshot"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::get("phpinformation", function () {
|
||||||
Route::get('phpinformation', function () {
|
|
||||||
phpinfo();
|
phpinfo();
|
||||||
})->name('phpmyinfo');
|
})->name("phpmyinfo");
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
*
|
|
||||||
!public/
|
|
||||||
!.gitignore
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 92 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 92 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 510 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 510 KiB |
Reference in New Issue
Block a user