Penambahan Stiker Harian

This commit is contained in:
pand03
2026-02-11 07:57:15 +07:00
parent 7401144113
commit 23114b1cfb
15 changed files with 1180 additions and 49 deletions

View File

@@ -14,7 +14,7 @@ class TransaksiParkirController extends Controller
*/
public function index()
{
return view ('operasional.trransaksi-parkir');
return view ('operasional.transaksi-parkir');
}
/**

View File

@@ -4,11 +4,123 @@
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class LaporanStiker extends Controller
{
public function laporanStikerHarian()
public function laporanStikerHarian()
{
return view ('report.stiker.stiker-harian');
return view('report.stiker.stiker-harian', [
'filterSelect' => [
'jenisLangganan' => DB::table('jenis_langganan')->get(),
'jenisStiker' => DB::table('stasiunkerja')->get(),
]
]);
}
public function dataStiker(Request $request)
{
// 🔐 Validasi dasar
$validated = $request->validate([
'tanggalAwal' => 'required|date',
'tanggalAkhir' => 'required|date',
'jenis_langganan' => 'array|nullable',
'jenis_stiker' => 'array|nullable',
'name' => 'string|nullable',
'no_pol' => 'string|nullable',
]);
$query = DB::table('mergetransaksistikerdetail as a')
->leftJoin('stasiunkerja as b', 'a.unit_kerja', '=', 'b.kode')
->select('a.*', 'b.nama as jenis_langganan')
->whereBetween('a.tgl_edited', [
$validated['tanggalAwal'] . ' 00:00:00',
$validated['tanggalAkhir'] . ' 23:59:59'
])
// 🔹 Conditional filters
->when($request->name, fn ($q, $v) =>
$q->where('a.nama', 'ILIKE', "%{$v}%")
)
->when($request->no_pol, fn ($q, $v) =>
$q->where('a.nopol', 'ILIKE', "%{$v}%")
)
->when($request->jenis_langganan, fn ($q, $v) =>
$q->whereIn('a.jenis_langganan', $v)
)
->when($request->jenis_stiker, fn ($q, $v) =>
$q->whereIn('a.unit_kerja', $v)
);
// 🪵 Debug (aktifkan hanya saat local)
if (app()->isLocal()) {
Log::info('SQL Bindings', $query->getBindings());
}
return response()->json([
'success' => true,
'data' => $query->get(),
]);
}
}
// public function laporanStikerHarian()
// {
// $jenisLangganan = DB::table('jenis_langganan')->get();
// $jenisStiker = DB::table('stasiunkerja')->get();
// $filterSelect = [
// 'jenisLangganan' => $jenisLangganan,
// 'jenisStiker' => $jenisStiker
// ];
// return view ('report.stiker.stiker-harian', compact('filterSelect'));
// }
// public function dataStiker (Request $request)
// {
// Log::info($request->jenis_langganan);
// $jenisLangganan = $request->jenis_langganan;
// $stasiunKerja = $request->jenis_stiker;
// $nama = $request->name;
// $nopol = $request->no_pol;
// $startDate = $request->tanggalAwal;
// $endDate = $request->tanggalAKhir;
// Log::info($startDate);
// Log::info($endDate);
// $query = DB::table('mergetransaksistikerdetail as a')
// ->leftJoin('stasiunkerja as b', 'a.unit_kerja', '=', 'b.kode')
// ->whereBetween('a.tgl_edited', [
// $startDate . ' 00:00:00',
// $endDate . ' 23:59:59'])
// ->select(
// 'a.*',
// 'b.nama as jenis_langganan'
// );
// if (!empty($nama)) {
// $query->where('a.nama', 'LIKE', '%' . $nama . '%');
// }
// if (!empty($nopol)) {
// $query->where('a.nopol', 'LIKE', '%' . $nopol . '%');
// }
// if (!empty($jenisLangganan)) {
// $query->whereIn('a.jenis_langganan', $jenisLangganan);
// }
// if (!empty($stasiunKerja)) {
// $query->whereIn('a.unit_kerja', $stasiunKerja);
// }
// Log::info($query->getBindings());
// $data = $query->get();
// return response()->json([
// 'success' => true,
// 'data' => $data,
// ]);
// }

View File

@@ -0,0 +1,128 @@
<?php
namespace App\Http\Controllers\Tools;
use App\Http\Controllers\Controller;
use App\Models\TransaksiStiker;
use App\Services\MakeStikerServices;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class StikerExtendedController extends Controller
{
// protected function ;
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$jenisLangganan = DB::table('jenis_langganan')->get();
// dd($jenisLangganan);
return view ('tools.stiker-extend', compact('jenisLangganan'));
}
/**
* 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, MakeStikerServices $makeStiker)
{
$request->validate([
'jenis_langganan' => 'required|array|min:1',
'jenis_langganan.*' => 'string',
'tanggal_mulai' => 'required|date',
'tanggal_selesai' => 'required|date|after:tanggal_mulai',
]);
$tanggalMulai = Carbon::parse($request->tanggal_mulai);
$tanggalSelesai = Carbon::parse($request->tanggal_selesai);
$sticker = TransaksiStiker::select('notrans')->whereIn('jenis_langganan', $request->jenis_langganan)->get();
// $sticker = DB::table('mergetransaksistikerdetail')->whereIn('jenis_langganan', $request->jenis_langganan)->get();
foreach ($sticker as $row) {
// $makeStiker->stikerExtend($sticker);
$makeStiker->stikerExtend(
$row,
$tanggalMulai,
$tanggalSelesai
);
}
return response()->json([
'status' => true,
'message' => 'Stiker berhasil diproses'
]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id, Request $request)
{
Log::info($request->pilihannya);
$selected = $request->pilihannya;
$count = DB::table('transaksi_stiker')
->whereIn('jenis_langganan', $selected)
->get();
$jumlah = $count->count();
return response()->json([
'jumlah' => $jumlah
]);
}
/**
* 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)
{
//
}
}