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;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\TransaksiParkir;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\Parking\geTransaksiParkir;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
@@ -14,9 +15,60 @@ class ParkingOperationController extends Controller
|
||||
*
|
||||
* @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()
|
||||
{
|
||||
|
||||
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)
|
||||
{
|
||||
$transaksi = $this->show($request->input('transaksi'))->getData();
|
||||
|
||||
// dd($transaksi)->status;
|
||||
// dd($transaksi->getData());
|
||||
Log::info(get_class($transaksi));
|
||||
dd(get_class($transaksi));
|
||||
// if ($transaksi->status === true && $transaksi->member === false) {
|
||||
// }
|
||||
return;
|
||||
$gateStatus = $request->input('gate');
|
||||
$no_pol = $request->input('transaksi');
|
||||
Log::info($no_pol);
|
||||
|
||||
if ($gateStatus == 0) {
|
||||
|
||||
$transaksiIn = $this->inTransaksi($no_pol);
|
||||
|
||||
if ($transaksiIn) {
|
||||
return $transaksiIn;
|
||||
}
|
||||
|
||||
$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
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ApiV1MemberController extends Controller
|
||||
+3
-2
@@ -1,12 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index()
|
||||
{
|
||||
return view('dashboard');
|
||||
}
|
||||
+5
-5
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\FrontOffice;
|
||||
namespace App\Http\Controllers\Parking\FrontOffice;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\TransaksiParkir;
|
||||
@@ -24,7 +24,7 @@ public function search(Request $request)
|
||||
{
|
||||
// Log::info($request->all());
|
||||
$keyword = $request->q;
|
||||
Log::info($keyword);
|
||||
Log::info($keyword);
|
||||
|
||||
if (!$keyword) {
|
||||
return response()->json([
|
||||
@@ -50,7 +50,7 @@ public function search(Request $request)
|
||||
}
|
||||
// $pic_body_masuk = (string) $data->pic_body_masuk;
|
||||
|
||||
// $data->pic_body_masuk_base64 = $data->pic_body_masuk
|
||||
// $data->pic_body_masuk_base64 = $data->pic_body_masuk
|
||||
// ? 'data:image/jpeg;base64,' . base64_encode($pic_body_masuk )
|
||||
// : null;
|
||||
|
||||
@@ -84,7 +84,7 @@ public function image($id)
|
||||
|
||||
// return response($picture->pic_body_masuk)
|
||||
// ->header('Content-Type', 'image/jpeg');
|
||||
|
||||
|
||||
// ❌ kalau tidak ada data
|
||||
if (!$picture || !$picture->pic_body_masuk) {
|
||||
return response()->file(public_path('images/no-image.jpg'));
|
||||
@@ -92,7 +92,7 @@ public function image($id)
|
||||
|
||||
return response($picture->pic_body_masuk)
|
||||
->header('Content-Type', 'image/jpeg')
|
||||
->header('Cache-Control', 'public, max-age=86400'); // cache 1 hari
|
||||
->header('Cache-Control', 'public, max-age=86400'); // cache 1 hari
|
||||
}
|
||||
|
||||
/**
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\TransaksiParkir;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -36,7 +37,7 @@ public function index()
|
||||
// $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'));
|
||||
}
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LostiketController extends Controller
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class MemberProduct extends Controller
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\ProdukPrice;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -15,7 +16,7 @@ class MemberProductController extends Controller
|
||||
public function index()
|
||||
{
|
||||
$products = ProdukPrice::getProduct();
|
||||
|
||||
|
||||
return view('register', compact('products'));
|
||||
}
|
||||
|
||||
+25
-24
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\MemberCard;
|
||||
use App\Models\StikerTrans;
|
||||
use App\Models\StikerTransDetail;
|
||||
@@ -28,7 +29,7 @@ public function index(Request $request)
|
||||
$departmentSelect = DB::table('stasiunkerja')->get();
|
||||
$memberSelect = DB::table('jenis_langganan')->get();
|
||||
$jenisStiker = DB::table('tarif_stiker')->get();
|
||||
|
||||
|
||||
return view('member.member', compact([
|
||||
'vehicleSelect',
|
||||
'departmentSelect',
|
||||
@@ -37,7 +38,7 @@ public function index(Request $request)
|
||||
]));
|
||||
}
|
||||
|
||||
public function getMember (Request $request)
|
||||
public function getMember (Request $request)
|
||||
{
|
||||
Log::info(json_encode('nopol : ' .$request->nopol));
|
||||
Log::info(json_encode('veh : ' .$request->vehicle));
|
||||
@@ -47,7 +48,7 @@ public function getMember (Request $request)
|
||||
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')
|
||||
@@ -55,12 +56,12 @@ public function getMember (Request $request)
|
||||
->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,
|
||||
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 . '%');
|
||||
}
|
||||
@@ -72,15 +73,15 @@ public function getMember (Request $request)
|
||||
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 . '%');
|
||||
}
|
||||
@@ -94,7 +95,7 @@ public function getMember (Request $request)
|
||||
}
|
||||
|
||||
Log::info($dataStiker->toSql());
|
||||
|
||||
|
||||
$dataStiker = $dataStiker->get();
|
||||
|
||||
return response()->json($dataStiker);
|
||||
@@ -126,7 +127,7 @@ public function checkField (Request $request)
|
||||
'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)
|
||||
@@ -188,14 +189,14 @@ public function store(Request $request)
|
||||
'no_id' => $noid,
|
||||
'nama' => $dataStiker['nama'],
|
||||
'alamat' => $dataStiker['address'] ?? '',
|
||||
'telepon' => $dataStiker['phone'] ?? '',
|
||||
'unit_kerja' => $dataStiker['depart'],
|
||||
'jenis_stiker' => $dataStiker['member'],
|
||||
'awal' => $awal,
|
||||
'telepon' => $dataStiker['phone'] ?? '',
|
||||
'unit_kerja' => $dataStiker['depart'],
|
||||
'jenis_stiker' => $dataStiker['member'],
|
||||
'awal' => $awal,
|
||||
'akhir' => $akhir,
|
||||
'harga' => $dataStiker['harga'] ?? 0,
|
||||
'keterangan' => $dataStiker['note'] ?? '',
|
||||
'tanggal' => $dateNow,
|
||||
'harga' => $dataStiker['harga'] ?? 0,
|
||||
'keterangan' => $dataStiker['note'] ?? '',
|
||||
'tanggal' => $dateNow,
|
||||
'operator' => $user->nomer,
|
||||
];
|
||||
|
||||
@@ -215,7 +216,7 @@ public function store(Request $request)
|
||||
} else {
|
||||
return 0;;
|
||||
}
|
||||
|
||||
|
||||
if ($dataCard) {
|
||||
foreach ($dataCard as $cardNumber) {
|
||||
$dataCard = [
|
||||
@@ -238,7 +239,7 @@ public function store(Request $request)
|
||||
$response = false;
|
||||
$msg = 'Gagal menyimpan data ' . $e->getMessage() . $e->getLine();
|
||||
}
|
||||
|
||||
|
||||
return response()->json(['response' => $response, 'pesan' => $msg]);
|
||||
}
|
||||
|
||||
@@ -252,7 +253,7 @@ 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',
|
||||
->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')
|
||||
@@ -265,8 +266,8 @@ public function show($id)
|
||||
// ->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,
|
||||
// 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();
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Operasional;
|
||||
namespace App\Http\Controllers\Parking\Operasional;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Report;
|
||||
namespace App\Http\Controllers\Parking\Report;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -78,7 +78,7 @@ public function dataStiker(Request $request)
|
||||
}
|
||||
}
|
||||
|
||||
// public function laporanStikerHarian()
|
||||
// public function laporanStikerHarian()
|
||||
// {
|
||||
// $jenisLangganan = DB::table('jenis_langganan')->get();
|
||||
// $jenisStiker = DB::table('stasiunkerja')->get();
|
||||
+7
-6
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\TransaksiParkir;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -104,7 +105,7 @@ public function gateData(Request $request)
|
||||
};
|
||||
|
||||
})
|
||||
|
||||
|
||||
->when($paymentMethod, function ($q) use ($paymentMethod) {
|
||||
return $q->where('tp.rep_bank', $paymentMethod);
|
||||
|
||||
@@ -141,7 +142,7 @@ public function gateData(Request $request)
|
||||
->orderBy('jm.nama')
|
||||
->orderBy('tp.status_transaksi');
|
||||
|
||||
|
||||
|
||||
return response()->json([
|
||||
'byGateData' => $query->get()
|
||||
]);
|
||||
@@ -212,7 +213,7 @@ public function allReportData(Request $request)
|
||||
'pk.nama as kasir_keluar',
|
||||
|
||||
'tp.id_op_masuk',
|
||||
|
||||
|
||||
'tp.waktu_masuk',
|
||||
'tp.waktu_keluar',
|
||||
'tp.status',
|
||||
@@ -261,7 +262,7 @@ public function allReportData(Request $request)
|
||||
// $keluarCasual = $tunai->where('status_transaksi', '0');
|
||||
// $keluarMember = $tunai->where('status_transaksi', '3');
|
||||
// $keluarLost = $tunai->where('status_transaksi', '32');
|
||||
$keluarCasual = $tunai->filter(fn ($r) =>
|
||||
$keluarCasual = $tunai->filter(fn ($r) =>
|
||||
(string) data_get($r, 'status_transaksi') === '0'
|
||||
&& data_get($r, 'id_op_masuk') !== null
|
||||
);
|
||||
@@ -356,7 +357,7 @@ public function allReportData(Request $request)
|
||||
// $keluarCasual = $nonTunai->where('status_transaksi', '0');
|
||||
// $keluarMember = $nonTunai->where('status_transaksi', '3');
|
||||
// $keluarLost = $nonTunai->where('status_transaksi', '32');
|
||||
$keluarCasual = $nonTunai->filter(fn ($r) =>
|
||||
$keluarCasual = $nonTunai->filter(fn ($r) =>
|
||||
(string) data_get($r, 'status_transaksi') === '0'
|
||||
&& data_get($r, 'id_op_masuk') !== null
|
||||
);
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Http\Setup\Gate;
|
||||
namespace App\Http\Controllers\Parking\Setup\Gate;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\NamaPos;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Http\Setup\Gate;
|
||||
namespace App\Http\Controllers\Parking\Setup\Gate;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\ConfigHardware;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Http\Setup\Gate;
|
||||
namespace App\Http\Controllers\Parking\Setup\Gate;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
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
|
||||
|
||||
namespace App\Http\Controllers\Http\Setup\Vehicle;
|
||||
namespace App\Http\Controllers\Parking\Setup\Vehicle;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\VehicleItem;
|
||||
+18
-20
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Http\Setup\Vehicle;
|
||||
namespace App\Http\Controllers\Parking\Setup\Vehicle;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\MasterTarif;
|
||||
@@ -51,9 +51,9 @@ public function show($id)
|
||||
{
|
||||
// Log::info($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;
|
||||
}
|
||||
|
||||
@@ -77,44 +77,42 @@ public function edit($id)
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
// Log::info($request->all());
|
||||
Log::info($request->all());
|
||||
// $id = $request->id_mobil;
|
||||
|
||||
$dataQuery = MasterTarif::find($id);
|
||||
try {
|
||||
|
||||
Log::info($request->all());
|
||||
|
||||
$dataQuery->fill($request->all());
|
||||
|
||||
if (! $dataQuery->isDirty()) {
|
||||
// if($dataQuery->isDirty()) {
|
||||
if (!$dataQuery->isDirty()) {
|
||||
return response()->json([
|
||||
'status' => false,
|
||||
'message' => 'Tidak ada perubahan data'
|
||||
"status" => false,
|
||||
"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();
|
||||
|
||||
|
||||
return response()->json([
|
||||
'status' => true,
|
||||
'message' => 'Data berhasil di ubah'
|
||||
"status" => true,
|
||||
"message" => "Data berhasil di ubah",
|
||||
]);
|
||||
} catch (\Throwable $th) {
|
||||
//throw $th;
|
||||
Log::info('Data yang di simpan' . json_encode($dataQuery->getDirty()));
|
||||
Log::info(
|
||||
"Data yang di simpan" . json_encode($dataQuery->getDirty()),
|
||||
);
|
||||
|
||||
// Log::info($request->all());
|
||||
|
||||
return response()->json([
|
||||
'status' => false,
|
||||
'message' => 'Gagal menyimpan data ' . $th->getMessage(),
|
||||
"status" => false,
|
||||
"message" => "Gagal menyimpan data " . $th->getMessage(),
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
+7
-6
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
@@ -40,7 +41,7 @@ public function run()
|
||||
if (!$this->checkUsersView()) {
|
||||
DB::statement("
|
||||
CREATE OR REPLACE VIEW users AS
|
||||
SELECT
|
||||
SELECT
|
||||
id,
|
||||
nomer,
|
||||
nama,
|
||||
@@ -90,8 +91,8 @@ public function run()
|
||||
private function checkPgcrypto()
|
||||
{
|
||||
// $result = DB::select("
|
||||
// SELECT 1
|
||||
// FROM pg_extension
|
||||
// SELECT 1
|
||||
// FROM pg_extension
|
||||
// WHERE extname = 'pgcrypto'
|
||||
// ");
|
||||
|
||||
@@ -117,8 +118,8 @@ private function checkPegawaiColumns()
|
||||
private function checkUsersView()
|
||||
{
|
||||
$result = DB::select("
|
||||
SELECT 1
|
||||
FROM information_schema.views
|
||||
SELECT 1
|
||||
FROM information_schema.views
|
||||
WHERE table_name = 'users'
|
||||
");
|
||||
|
||||
+4
-3
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
@@ -19,7 +20,7 @@ public function index()
|
||||
$departmentSelect = DB::table('stasiunkerja')->get();
|
||||
$memberSelect = DB::table('jenis_langganan')->get();
|
||||
$jenisStiker = DB::table('tarif_stiker')->get();
|
||||
|
||||
|
||||
return view('stiker.stiker', compact([
|
||||
// return view('member.member', compact([
|
||||
'vehicleSelect',
|
||||
@@ -27,7 +28,7 @@ public function index()
|
||||
'memberSelect',
|
||||
'jenisStiker',
|
||||
]));
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
@@ -21,7 +22,7 @@ public function index ()
|
||||
|
||||
return view('streaming', compact('urlStream'));
|
||||
}
|
||||
|
||||
|
||||
public function streamSnapshot()
|
||||
{
|
||||
// Ambil URL kamera dan autentikasi
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Tools;
|
||||
namespace App\Http\Controllers\Parking\Tools;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\TransaksiStiker;
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
class StikerExtendedController extends Controller
|
||||
{
|
||||
|
||||
|
||||
// protected function ;
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
@@ -103,9 +103,9 @@ public function show($id, Request $request)
|
||||
// ->whereRaw("to_char(tgl_edited, 'YYYY-MM') = ?", [$blnKemarin])
|
||||
->whereBetween('tgl_edited', [$start, $end])
|
||||
->get();
|
||||
|
||||
|
||||
$jumlah = $count->count();
|
||||
|
||||
|
||||
return response()->json([
|
||||
'jumlah' => $jumlah
|
||||
]);
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Tools;
|
||||
namespace App\Http\Controllers\Parking\Tools;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
+17
-16
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Parking;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\TransaksiParkir;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -19,7 +20,7 @@ class VerifyTransController extends Controller
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function skipMember ()
|
||||
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')
|
||||
@@ -41,7 +42,7 @@ public function skipMember ()
|
||||
->get();
|
||||
|
||||
Log::info(json_encode($transaksi));
|
||||
|
||||
|
||||
if ($transaksi->status_transaksi && $transaksi->status_transaksi == 3) {
|
||||
$dateNow = Carbon::now();
|
||||
|
||||
@@ -51,7 +52,7 @@ public function skipMember ()
|
||||
'veri_date' => $dateNow,
|
||||
'veri_adm' => 'SYSTEM'
|
||||
]);
|
||||
|
||||
|
||||
// $response = true;
|
||||
// $message = [
|
||||
// 'no_pol' => $RealtimeTrans->no_pol,
|
||||
@@ -61,7 +62,7 @@ public function skipMember ()
|
||||
|
||||
return $transaksi;
|
||||
}
|
||||
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
if ($request->ajax()) {
|
||||
@@ -93,7 +94,7 @@ public function index(Request $request)
|
||||
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)
|
||||
@@ -101,7 +102,7 @@ public function index(Request $request)
|
||||
'veri_date' => $dateNow,
|
||||
'veri_adm' => 'SYSTEM'
|
||||
]);
|
||||
|
||||
|
||||
Log::info('Member update ' . $query);
|
||||
|
||||
// $response = true;
|
||||
@@ -272,7 +273,7 @@ private function getCurlImage($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);
|
||||
@@ -344,7 +345,7 @@ public function showImages(Request $request)
|
||||
->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 */
|
||||
@@ -354,9 +355,9 @@ public function showImages(Request $request)
|
||||
$transaksi->pic_body_masuk = 'Tidak ada foto';
|
||||
}
|
||||
|
||||
$baseIn =
|
||||
$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';
|
||||
@@ -373,7 +374,7 @@ public function showImages(Request $request)
|
||||
// Log::info('Drive Cam URL: ' . $getCamera->drive_cam);
|
||||
|
||||
// $ImgBodyOut = $this->getCurlImage($getCamera->body_cam);
|
||||
// // try {
|
||||
// // try {
|
||||
// $ImgBodyOut = Http::accept('image/jpeg')
|
||||
// ->withOptions(['verify' => false,])
|
||||
// ->withHeaders(['Authorization' => 'Digest username="admin", realm="your_realm", nonce="nonce_value", response="response_hash"'])
|
||||
@@ -381,7 +382,7 @@ public function showImages(Request $request)
|
||||
|
||||
// if ($ImgBodyOut->successful()) {
|
||||
// Konversi gambar ke base64
|
||||
// $ImgBodyOut = base64_encode($ImgBodyOut->body());
|
||||
// $ImgBodyOut = base64_encode($ImgBodyOut->body());
|
||||
// } else {
|
||||
// Log::error('Failed to get image. Status code: ' . $ImgBodyOut->status());
|
||||
// return 'Tidak ada foto';
|
||||
@@ -393,7 +394,7 @@ public function showImages(Request $request)
|
||||
// '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);
|
||||
@@ -412,7 +413,7 @@ public function showImages(Request $request)
|
||||
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;
|
||||
@@ -434,7 +435,7 @@ public function showImages(Request $request)
|
||||
// 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();
|
||||
// // }
|
||||
@@ -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,8 +11,10 @@ class LevelPegawai extends Model
|
||||
|
||||
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 ()
|
||||
{
|
||||
return $this->belongsTo(User::class, 'level_pegawai', 'level_code');
|
||||
|
||||
@@ -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'
|
||||
];
|
||||
|
||||
public function posParams() {
|
||||
return $this->hasOne(ConfigPos::class, 'id_pos', 'id');
|
||||
}
|
||||
|
||||
public function posHardware() {
|
||||
return $this->hasOne(ConfigHardware::class, 'id_pos', 'id');
|
||||
}
|
||||
public function posParams() {
|
||||
return $this->hasOne(ConfigPos::class, 'id_pos', 'id');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,12 +8,13 @@
|
||||
class TransaksiParkir extends Model
|
||||
{
|
||||
// protected $connection = 'pgsql_second';
|
||||
// protected $casts = [
|
||||
// 'id' => 'string',
|
||||
// ];
|
||||
// public $timestamps = false;
|
||||
protected $casts = [
|
||||
'id' => 'string',
|
||||
];
|
||||
public $timestamps = false;
|
||||
use HasFactory;
|
||||
protected $table = 'transaksi_parkir';
|
||||
|
||||
const updated_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\VehicleItem;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use function GuzzleHttp\json_encode;
|
||||
|
||||
class RateParkingService
|
||||
{
|
||||
public function calc ($transaksi, $times)
|
||||
public function parkingTimeCalc($vehicle, $times)
|
||||
{
|
||||
$duration = $times; ## Parse lama parkir berdasarkan detik
|
||||
$tarifVehicle = MasterTarif::find($transaksi);
|
||||
$tarifVehicle = MasterTarif::find($vehicle);
|
||||
Log::info(json_encode($tarifVehicle));
|
||||
$parkingPrice = 0; //Tarif pertama
|
||||
Log::info("\n" . '------------------======== Starting tarif Begin ==============----------------------');
|
||||
Log::info('Mulai perhitungan tarif dengan durasi : ' . $duration .' (Rp. '. $parkingPrice .')');
|
||||
Log::info("\n" . "------------------======== Starting tarif Begin ==============----------------------");
|
||||
Log::info("Mulai perhitungan tarif dengan durasi : " . $duration . " (Rp. " . $parkingPrice . ")");
|
||||
|
||||
// Grace Periode
|
||||
if ($duration < $tarifVehicle->waktu_gratis) {
|
||||
Log::info('GP Rules : ');
|
||||
return $parkingPrice;
|
||||
} else if ( $tarifVehicle->waktu_gratis !== 0 && $tarifVehicle->tarif_periode !== 0) {
|
||||
Log::info('GP Rules : ');
|
||||
$parkingPrice = $parkingPrice + $tarifVehicle->tarif_period;
|
||||
$duration = $duration - $tarifVehicle->waktu_gratis;
|
||||
Log::info('Setelah GP : ' . $parkingPrice . ' Durasi parkir : ' . $duration);
|
||||
}
|
||||
// if ($duration < $tarifVehicle->waktu_gratis) {
|
||||
// Log::info("GP Rules : ");
|
||||
// return $parkingPrice;
|
||||
// } elseif (
|
||||
// $tarifVehicle->waktu_gratis !== 0 &&
|
||||
// $tarifVehicle->tarif_periode !== 0
|
||||
// ) {
|
||||
// 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
|
||||
$firstPrice = 0;
|
||||
$firstDuration = $tarifVehicle->frek_interval * ($tarifVehicle->interval * 60);
|
||||
Log::info('Firstime rules : ' . $firstDuration);
|
||||
Log::info("Firstime rules : " . $firstDuration);
|
||||
// if ($duration >= $firstDuration) {
|
||||
do {
|
||||
$duration -= ($tarifVehicle->interval * 60);
|
||||
$parkingPrice += $tarifVehicle->tarif_interval;
|
||||
$firstPrice++;
|
||||
} while ($firstPrice < $tarifVehicle->frek_interval);
|
||||
Log::info('Tarif jam pertama : ' . $parkingPrice . ' Sisa durasi : ' . $duration);
|
||||
do {
|
||||
$duration -= $tarifVehicle->interval * 60;
|
||||
$parkingPrice += $tarifVehicle->tarif_interval;
|
||||
$firstPrice++;
|
||||
} while ($firstPrice < $tarifVehicle->frek_interval);
|
||||
Log::info("Tarif jam pertama : " . $parkingPrice . " Sisa durasi : " . $duration);
|
||||
// }
|
||||
|
||||
// Log::info($firstDuration);
|
||||
@@ -46,41 +56,88 @@ public function calc ($transaksi, $times)
|
||||
// Log::info($tarifVehicle->frek_waktu2 . ' - ' . $tarifVehicle->waktu2);
|
||||
$secondDuration = $tarifVehicle->frek_waktu2 * ($tarifVehicle->waktu2 * 60);
|
||||
if ($duration >= $secondDuration) {
|
||||
Log::info('');
|
||||
Log::info('Secondtime rules : ' . $secondDuration);
|
||||
Log::info("");
|
||||
Log::info("Secondtime rules : " . $secondDuration);
|
||||
Log::info($secondPrice);
|
||||
do {
|
||||
$duration -= ($tarifVehicle->waktu2 * 60);
|
||||
$parkingPrice += $tarifVehicle->tarif_interval;
|
||||
$duration -= $tarifVehicle->waktu2 * 60;
|
||||
Log::info($parkingPrice);
|
||||
Log::info($tarifVehicle->tarif);
|
||||
$parkingPrice += $tarifVehicle->tarif;
|
||||
$secondPrice++;
|
||||
Log::info($secondPrice);
|
||||
} 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;
|
||||
$lastDuration = $tarifVehicle->waktu_tarif * 60;
|
||||
if ($duration <= $lastDuration && $duration > 0) {
|
||||
Log::info('');
|
||||
Log::info('Sisa Durasi ' . $duration);
|
||||
if ($lastDuration <= $duration) {
|
||||
Log::info("");
|
||||
Log::info("Sisa Durasi " . $duration);
|
||||
do {
|
||||
$duration -= ($tarifVehicle->waktu_tarif * 60);
|
||||
$duration -= $tarifVehicle->waktu_tarif * 60;
|
||||
$parkingPrice += $tarifVehicle->tarif;
|
||||
// $nextDuration++;
|
||||
} 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 ($parkingPrice > $tarifVehicle->maksimum) {
|
||||
// $parkingPrice = $tarifVehicle->maksimum;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
return $parkingPrice;
|
||||
return [$duration, $parkingPrice];
|
||||
}
|
||||
}
|
||||
|
||||
public function parkingDailysCalc($vehicle, $times)
|
||||
{
|
||||
if ($times < 86400) {
|
||||
$parkingPrice = $this->parkingTimeCalc($vehicle, $times);
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user