Perbaikan laporan semua transaksi with print
This commit is contained in:
@@ -25,73 +25,68 @@ class MemberStikerController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$vehicleSelect = DB::table('jenis_mobil')->get();
|
$vehicleSelect = DB::table("jenis_mobil")->get();
|
||||||
$departmentSelect = DB::table('stasiunkerja')->get();
|
$departmentSelect = DB::table("stasiunkerja")->get();
|
||||||
$memberSelect = DB::table('jenis_langganan')->get();
|
$memberSelect = DB::table("jenis_langganan")->get();
|
||||||
$jenisStiker = DB::table('tarif_stiker')->get();
|
$jenisStiker = DB::table("tarif_stiker")->get();
|
||||||
|
|
||||||
return view('member.member', compact([
|
return view("stiker.stiker", compact(["vehicleSelect", "departmentSelect", "memberSelect", "jenisStiker"]));
|
||||||
'vehicleSelect',
|
|
||||||
'departmentSelect',
|
|
||||||
'memberSelect',
|
|
||||||
'jenisStiker',
|
|
||||||
]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMember (Request $request)
|
public function getMember(Request $request)
|
||||||
{
|
{
|
||||||
Log::info(json_encode('nopol : ' .$request->nopol));
|
Log::info(json_encode("nopol : " . $request->nopol));
|
||||||
Log::info(json_encode('veh : ' .$request->vehicle));
|
Log::info(json_encode("veh : " . $request->vehicle));
|
||||||
Log::info(json_encode('dept : ' .$request->depart));
|
Log::info(json_encode("dept : " . $request->depart));
|
||||||
Log::info(json_encode('mem : ' .$request->member));
|
Log::info(json_encode("mem : " . $request->member));
|
||||||
Log::info(json_encode('trans : ' .$request->notrans));
|
Log::info(json_encode("trans : " . $request->notrans));
|
||||||
Log::info(json_encode('isactive : ' .gettype($request->isactive)));
|
Log::info(json_encode("isactive : " . gettype($request->isactive)));
|
||||||
if ($request->ajax() ) {
|
if ($request->ajax()) {
|
||||||
|
$dataStiker = DB::table("transaksi_stiker as ts")
|
||||||
|
->leftjoin("detail_transaksi_stiker as dts", "dts.notrans", "=", "ts.notrans")
|
||||||
$dataStiker = DB::table('transaksi_stiker as ts')
|
->leftJoin("card_member as cm", "cm.notrans", "=", "ts.no_id")
|
||||||
->leftjoin('detail_transaksi_stiker as dts','dts.notrans','=','ts.notrans')
|
->leftJoin("jenis_langganan as jl", "jl.id", "=", "ts.jenis_langganan")
|
||||||
->leftJoin('card_member as cm','cm.notrans','=','ts.no_id')
|
->leftJoin("stasiunkerja as sk", "sk.kode", "=", "ts.unit_kerja")
|
||||||
->leftJoin('jenis_langganan as jl','jl.id','=','ts.jenis_langganan')
|
->leftJoin("jenis_mobil as jm", "jm.id", "=", "dts.jenis_mobil")
|
||||||
->leftJoin('stasiunkerja as sk','sk.kode','=','ts.unit_kerja')
|
->select(
|
||||||
->leftJoin('jenis_mobil as jm','jm.id','=','dts.jenis_mobil')
|
DB::raw('
|
||||||
->select(DB::raw('
|
|
||||||
ts.notrans as notrans , ts.nama , ts.alamat as alamat , ts.telepon as telepon,
|
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.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'))
|
jm.nama vehicle, dts.jenis_member, cm.no_card as no_card'),
|
||||||
|
)
|
||||||
->distinct();
|
->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'))
|
// ->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) {
|
if ($request->nama) {
|
||||||
$dataStiker = $dataStiker->where('ts.nama', 'like', '%' . $request->nama . '%');
|
$dataStiker = $dataStiker->where("ts.nama", "like", "%" . $request->nama . "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $request->notrans) {
|
if ($request->notrans) {
|
||||||
$dataStiker = $dataStiker->where('ts.notrans', 'like', '%' . $request->notrans . '%');
|
$dataStiker = $dataStiker->where("ts.notrans", "like", "%" . $request->notrans . "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->nopol) {
|
if ($request->nopol) {
|
||||||
$dataStiker = $dataStiker->where('ts.unit_kerja', 'like', '%' . $request->depart . '%');
|
$dataStiker = $dataStiker->where("ts.unit_kerja", "like", "%" . $request->depart . "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->member) {
|
if ($request->member) {
|
||||||
$dataStiker = $dataStiker->where('ts.jenis_langganan', 'like', '%' . $request->member . '%');
|
$dataStiker = $dataStiker->where("ts.jenis_langganan", "like", "%" . $request->member . "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->nopol) {
|
if ($request->nopol) {
|
||||||
$dataStiker = $dataStiker->where('dts.nopol', 'like', '%' . $request->nopol . '%');
|
$dataStiker = $dataStiker->where("dts.nopol", "like", "%" . $request->nopol . "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->vehicle) {
|
if ($request->vehicle) {
|
||||||
$dataStiker = $dataStiker->where('dts.jenis_mobil', 'like', '%' . $request->vehicle . '%');
|
$dataStiker = $dataStiker->where("dts.jenis_mobil", "like", "%" . $request->vehicle . "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->nocard) {
|
if ($request->nocard) {
|
||||||
$dataStiker = $dataStiker->where('cm.no_card', 'like', '%' . $request->nocard . '%');
|
$dataStiker = $dataStiker->where("cm.no_card", "like", "%" . $request->nocard . "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->isactive === '1') {
|
if ($request->isactive === "1") {
|
||||||
$dataStiker = $dataStiker->whereRaw('now() between ts.awal and ts.akhir');
|
$dataStiker = $dataStiker->whereRaw("now() between ts.awal and ts.akhir");
|
||||||
}
|
}
|
||||||
|
|
||||||
Log::info($dataStiker->toSql());
|
Log::info($dataStiker->toSql());
|
||||||
@@ -100,7 +95,6 @@ public function getMember (Request $request)
|
|||||||
|
|
||||||
return response()->json($dataStiker);
|
return response()->json($dataStiker);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -110,7 +104,7 @@ public function getMember (Request $request)
|
|||||||
*/
|
*/
|
||||||
public function create(Request $request)
|
public function create(Request $request)
|
||||||
{
|
{
|
||||||
Log::info('Data yang diperpanjang : ' . json_encode($request->all()));
|
Log::info("Data yang diperpanjang : " . json_encode($request->all()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -120,38 +114,35 @@ public function create(Request $request)
|
|||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function checkField (Request $request)
|
public function checkField(Request $request)
|
||||||
{
|
{
|
||||||
Log::info('Data yang diterima : ' . json_encode($request->all()));
|
Log::info("Data yang diterima : " . json_encode($request->all()));
|
||||||
$validate = Validator::make($request->all(),[
|
$validate = Validator::make($request->all(), [
|
||||||
'nopol' => 'required|string|unique:detail_transaksi_stiker,nopol',
|
"nopol" => "required|string|unique:detail_transaksi_stiker,nopol",
|
||||||
// 'nocard' => 'string|exists:card_member,no_card',
|
// 'nocard' => 'string|exists:card_member,no_card',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$nocard = $request->input('nocard');
|
$nocard = $request->input("nocard");
|
||||||
$nocardExists = DB::table('card_member')
|
$nocardExists = DB::table("card_member")->where("no_card", $nocard)->exists();
|
||||||
->where('no_card', $nocard)
|
|
||||||
->exists();
|
|
||||||
|
|
||||||
if ($validate->fails()) {
|
if ($validate->fails()) {
|
||||||
return response()->json(['response' => false, 'message' => 'Data sudah ada, coba yang lain']);
|
return response()->json(["response" => false, "message" => "Data sudah ada, coba yang lain"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json(['response' => true, 'message' => 'Data sudah ada']);
|
return response()->json(["response" => true, "message" => "Data sudah ada"]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
Log::info('Data yang diterima : ' . json_encode($request->all()));
|
Log::info("Data yang diterima : " . json_encode($request->all()));
|
||||||
$mountYearNow = Carbon::now()->format('m/Y');
|
$mountYearNow = Carbon::now()->format("m/Y");
|
||||||
|
|
||||||
$dataStiker = $request->input('formData');
|
$dataStiker = $request->input("formData");
|
||||||
$dataVehicle = $request->input('nopolData');
|
$dataVehicle = $request->input("nopolData");
|
||||||
$dataCard = $request->input('cardNumber');
|
$dataCard = $request->input("cardNumber");
|
||||||
Log::info('Data Stiker : ' . json_encode($dataStiker));
|
Log::info("Data Stiker : " . json_encode($dataStiker));
|
||||||
Log::info('Data Kendaraan : ' . json_encode($dataVehicle));
|
Log::info("Data Kendaraan : " . json_encode($dataVehicle));
|
||||||
Log::info('Data kartu : ' . json_encode($dataCard));
|
Log::info("Data kartu : " . json_encode($dataCard));
|
||||||
// $cleanedData = stripslashes(trim($data));
|
// $cleanedData = stripslashes(trim($data));
|
||||||
// Log::debug('Modified : ' . json_encode($cleanedData));
|
// Log::debug('Modified : ' . json_encode($cleanedData));
|
||||||
// $dataStiker = json_decode($cleanedData, false);
|
// $dataStiker = json_decode($cleanedData, false);
|
||||||
@@ -167,80 +158,84 @@ public function store(Request $request)
|
|||||||
// return response()->json(['response' => false, 'message' => 'pastikan nama, Nomor Polisi, dan data kartu sudah terisi']);
|
// return response()->json(['response' => false, 'message' => 'pastikan nama, Nomor Polisi, dan data kartu sudah terisi']);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
$dateNow = Carbon::now()->format('Y-m-d H:m:s');
|
$dateNow = Carbon::now()->format("Y-m-d H:m:s");
|
||||||
$seqTrans = DB::table('indexnum')->select('value')->where('nama', 'sticker')->first();
|
$seqTrans = DB::table("indexnum")->select("value")->where("nama", "sticker")->first();
|
||||||
$seqId = DB::table('indexnum')->select('value')->where('nama', 'identitas')->first();
|
$seqId = DB::table("indexnum")->select("value")->where("nama", "identitas")->first();
|
||||||
|
|
||||||
$notrans = $seqTrans->value . "/STK/" . $mountYearNow;
|
$notrans = $seqTrans->value . "/STK/" . $mountYearNow;
|
||||||
$noid = $seqId->value . "/IDT/" . $mountYearNow;
|
$noid = $seqId->value . "/IDT/" . $mountYearNow;
|
||||||
$user = Auth::user();
|
$user = Auth::user();
|
||||||
|
|
||||||
$periode = explode(" - ", $dataStiker['daterange']);
|
$periode = explode(" - ", $dataStiker["daterange"]);
|
||||||
Log::info('Parcing Periode : ' . json_encode($periode));
|
Log::info("Parcing Periode : " . json_encode($periode));
|
||||||
$awal = Carbon::createFromFormat('d-m-Y H:i', $periode[0]);
|
$awal = Carbon::createFromFormat("d-m-Y H:i", $periode[0]);
|
||||||
$akhir = Carbon::createFromFormat('d-m-Y H:i', $periode[1]);
|
$akhir = Carbon::createFromFormat("d-m-Y H:i", $periode[1]);
|
||||||
Log::info('Awal : ' . $awal . ' Akhir : ' . $akhir);
|
Log::info("Awal : " . $awal . " Akhir : " . $akhir);
|
||||||
// Log::info($user);
|
// Log::info($user);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$dataStiker = [
|
$dataStiker = [
|
||||||
'jenis_transaksi' => $dataStiker['jenis_transaksi'], // 0 = transaksi baru , 1 = perpanjangan
|
"jenis_transaksi" => $dataStiker["jenis_transaksi"], // 0 = transaksi baru , 1 = perpanjangan
|
||||||
'notrans' => $notrans,
|
"notrans" => $notrans,
|
||||||
'no_id' => $noid,
|
"no_id" => $noid,
|
||||||
'nama' => $dataStiker['nama'],
|
"nama" => $dataStiker["nama"],
|
||||||
'alamat' => $dataStiker['address'] ?? '',
|
"alamat" => $dataStiker["address"] ?? "",
|
||||||
'telepon' => $dataStiker['phone'] ?? '',
|
"telepon" => $dataStiker["phone"] ?? "",
|
||||||
'unit_kerja' => $dataStiker['depart'],
|
"unit_kerja" => $dataStiker["depart"],
|
||||||
'jenis_stiker' => $dataStiker['member'],
|
"jenis_stiker" => $dataStiker["member"],
|
||||||
'awal' => $awal,
|
"awal" => $awal,
|
||||||
'akhir' => $akhir,
|
"akhir" => $akhir,
|
||||||
'harga' => $dataStiker['harga'] ?? 0,
|
"harga" => $dataStiker["harga"] ?? 0,
|
||||||
'keterangan' => $dataStiker['note'] ?? '',
|
"keterangan" => $dataStiker["note"] ?? "",
|
||||||
'tanggal' => $dateNow,
|
"tanggal" => $dateNow,
|
||||||
'operator' => $user->nomer,
|
"operator" => $user->nomer,
|
||||||
];
|
];
|
||||||
|
|
||||||
DB::table('transaksi_stiker')->insert($dataStiker);
|
DB::table("transaksi_stiker")->insert($dataStiker);
|
||||||
|
|
||||||
if($dataVehicle) {
|
if ($dataVehicle) {
|
||||||
foreach ($dataVehicle as $nopol) {
|
foreach ($dataVehicle as $nopol) {
|
||||||
$dataVehicle = [
|
$dataVehicle = [
|
||||||
'notrans' => $notrans,
|
"notrans" => $notrans,
|
||||||
'nopol' => $nopol['nopol'],
|
"nopol" => $nopol["nopol"],
|
||||||
'jenis_mobil' => $nopol['vehicle'],
|
"jenis_mobil" => $nopol["vehicle"],
|
||||||
'jenis_member' => $nopol['member'],
|
"jenis_member" => $nopol["member"],
|
||||||
'merk' => $nopol['merk'],
|
"merk" => $nopol["merk"],
|
||||||
];
|
];
|
||||||
DB::table('detail_transaksi_stiker')->insert($dataVehicle);
|
DB::table("detail_transaksi_stiker")->insert($dataVehicle);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return 0;;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($dataCard) {
|
|
||||||
foreach ($dataCard as $cardNumber) {
|
|
||||||
$dataCard = [
|
|
||||||
'notrans' => $noid,
|
|
||||||
'no_card' => $cardNumber['nocard'],
|
|
||||||
'no_urut' => $cardNumber['nourut'],
|
|
||||||
];
|
|
||||||
|
|
||||||
DB::table('card_member')->insert($dataCard);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DB::table('indexnum')->where('nama', 'sticker' )->update(['value' => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
if ($dataCard) {
|
||||||
DB::table('indexnum')->where('nama', 'identitas' )->update(['value' => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
foreach ($dataCard as $cardNumber) {
|
||||||
$response = true;
|
$dataCard = [
|
||||||
$msg = 'Data berhasil di simpan';
|
"notrans" => $noid,
|
||||||
} catch (Exception $e) {
|
"no_card" => $cardNumber["nocard"],
|
||||||
$response = false;
|
"no_urut" => $cardNumber["nourut"],
|
||||||
$msg = 'Gagal menyimpan data ' . $e->getMessage() . $e->getLine();
|
];
|
||||||
|
|
||||||
|
DB::table("card_member")->insert($dataCard);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json(['response' => $response, 'pesan' => $msg]);
|
DB::table("indexnum")
|
||||||
|
->where("nama", "sticker")
|
||||||
|
->update(["value" => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||||
|
DB::table("indexnum")
|
||||||
|
->where("nama", "identitas")
|
||||||
|
->update(["value" => DB::raw("lpad(to_number(value,'9999')+1)::text, 4, '0')")]);
|
||||||
|
$response = true;
|
||||||
|
$msg = "Data berhasil di simpan";
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$response = false;
|
||||||
|
$msg = "Gagal menyimpan data " . $e->getMessage() . $e->getLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json(["response" => $response, "pesan" => $msg]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -251,13 +246,24 @@ public function store(Request $request)
|
|||||||
*/
|
*/
|
||||||
public function show($id)
|
public function show($id)
|
||||||
{
|
{
|
||||||
Log::info('Data yang diterima : ' . json_encode($id));
|
Log::info("Data yang diterima : " . json_encode($id));
|
||||||
$dataStiker = StikerTrans::with('stiker_details.vehicle', 'memberCard')
|
$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.unit_kerja', 'transaksi_stiker.no_id', 'jl.nama as jmember', 'sk.nama as dept')
|
"transaksi_stiker.notrans",
|
||||||
->leftJoin('jenis_langganan as jl','jl.id','=','transaksi_stiker.jenis_langganan')
|
"transaksi_stiker.nama",
|
||||||
->leftJoin('stasiunkerja as sk','sk.kode','=','transaksi_stiker.unit_kerja')
|
"transaksi_stiker.alamat",
|
||||||
->where('notrans', 'like', '%' . $id . '%')
|
"transaksi_stiker.telepon",
|
||||||
|
"transaksi_stiker.awal",
|
||||||
|
"transaksi_stiker.akhir",
|
||||||
|
"transaksi_stiker.jenis_langganan",
|
||||||
|
"transaksi_stiker.unit_kerja",
|
||||||
|
"transaksi_stiker.no_id",
|
||||||
|
"jl.nama as jmember",
|
||||||
|
"sk.nama as dept",
|
||||||
|
)
|
||||||
|
->leftJoin("jenis_langganan as jl", "jl.id", "=", "transaksi_stiker.jenis_langganan")
|
||||||
|
->leftJoin("stasiunkerja as sk", "sk.kode", "=", "transaksi_stiker.unit_kerja")
|
||||||
|
->where("notrans", "like", "%" . $id . "%")
|
||||||
->first();
|
->first();
|
||||||
// $dataStiker = DB::table('transaksi_stiker as ts')
|
// $dataStiker = DB::table('transaksi_stiker as ts')
|
||||||
// ->leftjoin('detail_transaksi_stiker as dts','dts.notrans','=','ts.notrans')
|
// ->leftjoin('detail_transaksi_stiker as dts','dts.notrans','=','ts.notrans')
|
||||||
@@ -271,7 +277,7 @@ public function show($id)
|
|||||||
// jm.nama vehicle, dts.jenis_member, cm.no_card as no_card')
|
// jm.nama vehicle, dts.jenis_member, cm.no_card as no_card')
|
||||||
// )->where('ts.notrans', 'like', '%' . $id . '%')
|
// )->where('ts.notrans', 'like', '%' . $id . '%')
|
||||||
// ->get();
|
// ->get();
|
||||||
Log::info('Data Stiker : ' . json_encode($dataStiker));
|
Log::info("Data Stiker : " . json_encode($dataStiker));
|
||||||
|
|
||||||
return response()->json($dataStiker);
|
return response()->json($dataStiker);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,9 +175,11 @@ public function vehicleReport(Request $request)
|
|||||||
// : 'tp.pklogin';
|
// : 'tp.pklogin';
|
||||||
if ($harian == 1) {
|
if ($harian == 1) {
|
||||||
// $dateColumn = ['tp.waktu_masuk', 'tp.waktu_keluar'];
|
// $dateColumn = ['tp.waktu_masuk', 'tp.waktu_keluar'];
|
||||||
|
$isReport = "harian";
|
||||||
$dateColumn = ["tp.waktu_keluar"];
|
$dateColumn = ["tp.waktu_keluar"];
|
||||||
} else {
|
} else {
|
||||||
// $dateColumn = ['tp.pmlogin', 'tp.pklogin'];
|
// $dateColumn = ['tp.pmlogin', 'tp.pklogin'];
|
||||||
|
$isReport = "shift";
|
||||||
$dateColumn = ["tp.pklogin"];
|
$dateColumn = ["tp.pklogin"];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,6 +448,7 @@ public function vehicleReport(Request $request)
|
|||||||
return [
|
return [
|
||||||
// 'date' => $startDate->format('Y-m-d'),÷
|
// 'date' => $startDate->format('Y-m-d'),÷
|
||||||
"date" => $startDate,
|
"date" => $startDate,
|
||||||
|
"reportTime" => $isReport,
|
||||||
"tunai" => $tunai,
|
"tunai" => $tunai,
|
||||||
"nontunai" => $cashless,
|
"nontunai" => $cashless,
|
||||||
"overNight" => $onCheck,
|
"overNight" => $onCheck,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,18 +1,29 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
console.log($.fn.jquery);
|
|
||||||
const today = moment();
|
const today = moment();
|
||||||
const startDate = moment(today).startOf('day').format('DD-MM-YYYY 00:00');
|
const startDate = moment(today).startOf("day").format("DD-MM-YYYY 00:00");
|
||||||
const endDate = moment(today).endOf('day').format('DD-MM-YYYY 23:59');
|
const endDate = moment(today).endOf("day").format("DD-MM-YYYY 23:59");
|
||||||
|
|
||||||
$('.tambah-member').validate({
|
$(".tambah-member").validate({
|
||||||
rules: {
|
rules: {
|
||||||
nama: {
|
nama: {
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
member: {
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
depart: {
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
messages: {
|
messages: {
|
||||||
nama: {
|
nama: {
|
||||||
required: 'Masukkan nama member',
|
required: "Masukkan nama member",
|
||||||
|
},
|
||||||
|
member: {
|
||||||
|
required: "Jenis Member belum di pilih",
|
||||||
|
},
|
||||||
|
depart: {
|
||||||
|
required: "Jenis Langganan belum di pilih",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// errorElement: 'span',
|
// errorElement: 'span',
|
||||||
@@ -21,42 +32,51 @@ $(document).ready(function () {
|
|||||||
// // element.closest('.form-group').append(error);
|
// // element.closest('.form-group').append(error);
|
||||||
// },
|
// },
|
||||||
highlight: function (element, errorClass, validClass) {
|
highlight: function (element, errorClass, validClass) {
|
||||||
$(element).addClass('is-invalid');
|
$(element).addClass("is-invalid");
|
||||||
},
|
},
|
||||||
unhighlight: function (element, errorClass, validClass) {
|
unhighlight: function (element, errorClass, validClass) {
|
||||||
$(element).removeClass('is-invalid');
|
$(element).removeClass("is-invalid");
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.input-daterange-timepicker').daterangepicker({
|
// const startDate = moment().startOf("day"); // hari ini jam 00:00
|
||||||
// singleDatePicker: true,
|
// const endDate = moment().add(7, "days").endOf("day"); // +7 hari
|
||||||
|
|
||||||
|
$(".input-daterange-timepicker").daterangepicker(
|
||||||
|
// 👈 method-nya "daterangepicker", bukan "datepicker"
|
||||||
|
{
|
||||||
timePicker: true,
|
timePicker: true,
|
||||||
locale: {
|
locale: {
|
||||||
format: 'DD-MM-YYYY HH:mm'
|
format: "DD-MM-YYYY HH:mm",
|
||||||
},
|
},
|
||||||
timePicker24Hour: true,
|
timePicker24Hour: true,
|
||||||
timePickerSeconds: false,
|
timePickerSeconds: false,
|
||||||
buttonClasses: ['btn', 'btn-sm'],
|
buttonClasses: ["btn", "btn-sm"],
|
||||||
applyClass: 'btn-danger',
|
applyClass: "btn-danger",
|
||||||
cancelClass: 'btn-inverse',
|
cancelClass: "btn-inverse",
|
||||||
startDate: startDate,
|
startDate: startDate,
|
||||||
endDate: endDate,
|
endDate: endDate,
|
||||||
}, function (startDate, endDate) {
|
parentEl: "#modal-member", // 👈 daterangepicker pakai "parentEl", bukan "container"
|
||||||
console.log(`Range selected: ${startDate.format('DD-MM-YYYY HH:mm')} s/d ${endDate.format('DD-MM-YYYY HH:mm')}`);
|
},
|
||||||
$('.input-daterange-timepicker').val(`${startDate.format('DD-MM-YYYY HH:mm')} s/d ${endDate.format('DD-MM-YYYY HH:mm')}`);
|
function (startDate, endDate) {
|
||||||
// $('.awal').val(`${startDate.format('DD-MM-YYYY HH:mm')}`);
|
console.log(
|
||||||
// $('.akhir').val(`${endDate.format('DD-MM-YYYY HH:mm')}`);
|
`Range selected: ${startDate.format("DD-MM-YYYY HH:mm")} s/d ${endDate.format("DD-MM-YYYY HH:mm")}`,
|
||||||
});
|
);
|
||||||
|
$(".input-daterange-timepicker").val(
|
||||||
|
`${startDate.format("DD-MM-YYYY HH:mm")} s/d ${endDate.format("DD-MM-YYYY HH:mm")}`,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
// Set nilai awal dan akhir di input
|
// Set nilai awal dan akhir di input
|
||||||
$('.input-daterange-timepicker').val(`${startDate} - ${endDate}`);
|
$(".input-daterange-timepicker").val(`${startDate} - ${endDate}`);
|
||||||
// $('.awal').val(startDate);
|
// $('.awal').val(startDate);
|
||||||
// $('.akhir').val(endDate);
|
// $('.akhir').val(endDate);
|
||||||
|
|
||||||
$('#jenisVehicle').on('change', function () {
|
$("#jenisVehicle").on("change", function () {
|
||||||
var jenisMembers = member;
|
var jenisMembers = member;
|
||||||
var vehicleSelected = $(this).val();
|
var vehicleSelected = $(this).val();
|
||||||
var $jenisMember = $('#jenis-member');
|
var $jenisMember = $("#jenis-member");
|
||||||
// console.log(jenisMembers);
|
// console.log(jenisMembers);
|
||||||
|
|
||||||
$jenisMember.empty();
|
$jenisMember.empty();
|
||||||
@@ -64,42 +84,39 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
jenisMembers.forEach((item) => {
|
jenisMembers.forEach((item) => {
|
||||||
if (item.id_mobil === vehicleSelected) {
|
if (item.id_mobil === vehicleSelected) {
|
||||||
if (item.id_mobil !== 0 ) {
|
if (item.id_mobil !== 0) {
|
||||||
$jenisMember.append(
|
$jenisMember.append(
|
||||||
`<option value="${item.tarif}">${item.jenis_langganan} - ${item.tarif} </option>`
|
`<option value="${item.tarif}">${item.jenis_langganan} - ${item.tarif} </option>`,
|
||||||
);
|
);
|
||||||
console.log($jenisMember);
|
console.log($jenisMember);
|
||||||
} else {
|
} else {
|
||||||
$jenisMember.append(
|
$jenisMember.append(`<option value="">Tidak ada Pilihan </option>`);
|
||||||
`<option value="">Tidak ada Pilihan </option>`
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#nopol-add").on("click", function () {
|
||||||
$('#nopol-add').on('click', function() {
|
var nopol = $(".nopol-add").val().trim();
|
||||||
var nopol = $('.nopol-add').val().trim();
|
|
||||||
console.log(nopol);
|
console.log(nopol);
|
||||||
// var vehicle = $('#jenisVehicle option:selected').text();
|
// var vehicle = $('#jenisVehicle option:selected').text();
|
||||||
var vehicle = $('#jenisVehicle').val();
|
var vehicle = $("#jenisVehicle").val();
|
||||||
var vehicleName = $('#jenisVehicle option:selected').text();
|
var vehicleName = $("#jenisVehicle option:selected").text();
|
||||||
var member = $('#jenis-member option:selected').text();
|
var member = $("#jenis-member option:selected").text();
|
||||||
var merk = $('.merk').val().trim();
|
var merk = $(".merk").val().trim();
|
||||||
$('.nopol-add').removeClass('is-invalid'); // Hapus kelas jika ada sebelumnya
|
$(".nopol-add").removeClass("is-invalid"); // Hapus kelas jika ada sebelumnya
|
||||||
$('.nopol-add').next('.invalid-feedback').hide();
|
$(".nopol-add").next(".invalid-feedback").hide();
|
||||||
|
|
||||||
if (!vehicle) {
|
if (!vehicle) {
|
||||||
alert('Wajib pilih jenis kendaraan');
|
alert("Wajib pilih jenis kendaraan");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$.ajax ({
|
$.ajax({
|
||||||
url: 'member/checkField',
|
url: "stiker/checkField",
|
||||||
type: 'POST',
|
type: "POST",
|
||||||
data: { nopol: nopol },
|
data: { nopol: nopol },
|
||||||
headers: {'X-CSRF-token': $('meta[name="csrf-token"]').attr('content')},
|
headers: { "X-CSRF-token": $('meta[name="csrf-token"]').attr("content") },
|
||||||
success: function (r) {
|
success: function (r) {
|
||||||
if (r.response === true) {
|
if (r.response === true) {
|
||||||
var rowhtml = `
|
var rowhtml = `
|
||||||
@@ -113,30 +130,30 @@ $(document).ready(function () {
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
`;
|
`;
|
||||||
$('#list-nopol').append(rowhtml);
|
$("#list-nopol").append(rowhtml);
|
||||||
console.log('Berhasil menambahkan ' + nopol)
|
console.log("Berhasil menambahkan " + nopol);
|
||||||
|
|
||||||
$('.nopol-add').val('');
|
$(".nopol-add").val("");
|
||||||
$('#jenisVehicle').val('');
|
$("#jenisVehicle").val("");
|
||||||
$('#jenis-member').val('');
|
$("#jenis-member").val("");
|
||||||
$('.merk').val('');
|
$(".merk").val("");
|
||||||
} else {
|
} else {
|
||||||
// var warn = `<div class="invalid-feedback">Nopol sudah ada</div>`;
|
// var warn = `<div class="invalid-feedback">Nopol sudah ada</div>`;
|
||||||
$('.nopol-add').addClass('is-invalid'); // Tambahkan kelas invalid
|
$(".nopol-add").addClass("is-invalid"); // Tambahkan kelas invalid
|
||||||
$('.nopol-add').next('.invalid-feedback').text(r.message).show(); // Tampilkan pesan error
|
$(".nopol-add").next(".invalid-feedback").text(r.message).show(); // Tampilkan pesan error
|
||||||
console.log(r.message);
|
console.log(r.message);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function () {
|
error: function () {
|
||||||
alert('Terjadi kesalahan saat memeriksa nopol');
|
alert("Terjadi kesalahan saat memeriksa nopol");
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.kartu').on('keydown', function (e) {
|
$(".kartu").on("keydown", function (e) {
|
||||||
var kartu = $('.kartu').val().trim();
|
var kartu = $(".kartu").val().trim();
|
||||||
|
|
||||||
if (e.key === 'Enter') {
|
if (e.key === "Enter") {
|
||||||
// $.ajax ({
|
// $.ajax ({
|
||||||
// url: 'member/checkField',
|
// url: 'member/checkField',
|
||||||
// type: 'POST',
|
// type: 'POST',
|
||||||
@@ -145,19 +162,19 @@ $(document).ready(function () {
|
|||||||
// success: function (r) {
|
// success: function (r) {
|
||||||
// if (r.response === true) {
|
// if (r.response === true) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$('.nourut').focus();
|
$(".nourut").focus();
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.nourut').on('keydown', function (e) {
|
$(".nourut").on("keydown", function (e) {
|
||||||
if (e.key === 'Enter') {
|
if (e.key === "Enter") {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
var nocard = $('.kartu').val().trim();
|
var nocard = $(".kartu").val().trim();
|
||||||
var nourut = $('.nourut').val().trim();
|
var nourut = $(".nourut").val().trim();
|
||||||
|
|
||||||
var rowHtml = `
|
var rowHtml = `
|
||||||
<tr>
|
<tr>
|
||||||
@@ -168,41 +185,40 @@ $(document).ready(function () {
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
`;
|
`;
|
||||||
$('#list-card').append(rowHtml);
|
$("#list-card").append(rowHtml);
|
||||||
$('.kartu').val('');
|
$(".kartu").val("");
|
||||||
$('.nourut').val('');
|
$(".nourut").val("");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#list-card").on("click", ".delete-row", function () {
|
||||||
$('#list-card').on('click', '.delete-row', function () {
|
$(this).closest("tr").remove(); // Hapus baris yang diklik
|
||||||
$(this).closest('tr').remove(); // Hapus baris yang diklik
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.simpan').on('click', function () {
|
$(".simpan").on("click", function () {
|
||||||
var tombol = $(this);
|
var tombol = $(this);
|
||||||
var formCollect = $('#add-member').serialize();
|
var formCollect = $("#add-member").serialize();
|
||||||
var collectNopol = [];
|
var collectNopol = [];
|
||||||
var cardCollect = [];
|
var cardCollect = [];
|
||||||
|
|
||||||
$('#list-nopol tr').each(function () {
|
$("#list-nopol tr").each(function () {
|
||||||
var row = $(this);
|
var row = $(this);
|
||||||
var rowData = {
|
var rowData = {
|
||||||
nopol: row.find('td:nth-child(1)').text().trim(),
|
nopol: row.find("td:nth-child(1)").text().trim(),
|
||||||
vehicle: row.find('td:nth-child(2)').data('value'),
|
vehicle: row.find("td:nth-child(2)").data("value"),
|
||||||
member: row.find('td:nth-child(3)').text().trim(),
|
member: row.find("td:nth-child(3)").text().trim(),
|
||||||
merk: row.find('td:nth-child(4)').text().trim(),
|
merk: row.find("td:nth-child(4)").text().trim(),
|
||||||
};
|
};
|
||||||
collectNopol.push(rowData);
|
collectNopol.push(rowData);
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(collectNopol);
|
console.log(collectNopol);
|
||||||
|
|
||||||
$('#list-card tr').each(function () {
|
$("#list-card tr").each(function () {
|
||||||
var row = $(this);
|
var row = $(this);
|
||||||
var rowCard = {
|
var rowCard = {
|
||||||
nocard: row.find('td:nth-child(1)').text(),
|
nocard: row.find("td:nth-child(1)").text(),
|
||||||
nourut: row.find('td:nth-child(2)').text(),
|
nourut: row.find("td:nth-child(2)").text(),
|
||||||
};
|
};
|
||||||
cardCollect.push(rowCard);
|
cardCollect.push(rowCard);
|
||||||
});
|
});
|
||||||
@@ -227,26 +243,25 @@ $(document).ready(function () {
|
|||||||
cardNumber: cardCollect,
|
cardNumber: cardCollect,
|
||||||
};
|
};
|
||||||
|
|
||||||
if($('.tambah-member').valid()) {
|
if ($(".tambah-member").valid()) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: $('#add-member').attr('action'),
|
url: $("#add-member").attr("action"),
|
||||||
type: 'POST',
|
type: "POST",
|
||||||
data: allData,
|
data: allData,
|
||||||
headers: {'X-CSRF-token': $('meta[name="csrf-token"]').attr('content')},
|
headers: { "X-CSRF-token": $('meta[name="csrf-token"]').attr("content") },
|
||||||
beforeSend: function () {
|
beforeSend: function () {
|
||||||
tombol.attr('disabled',true);
|
tombol.attr("disabled", true);
|
||||||
},
|
},
|
||||||
success: function (r) {
|
success: function (r) {
|
||||||
// alert('Data berhasil dikirim');
|
// alert('Data berhasil dikirim');
|
||||||
$('#modal-member').modal('hide');
|
$("#modal-member").modal("hide");
|
||||||
if (r.response == true) {
|
if (r.response == true) {
|
||||||
Swal.fire(
|
Swal.fire({
|
||||||
{
|
|
||||||
title: "Berhasil!!",
|
title: "Berhasil!!",
|
||||||
text: "Member anda telah terdaftar !!",
|
text: "Member anda telah terdaftar !!",
|
||||||
timer: 5000, showConfirmButton: !1
|
timer: 5000,
|
||||||
}
|
showConfirmButton: !1,
|
||||||
).then(function() {
|
}).then(function () {
|
||||||
// Reload halaman setelah SweetAlert ditutup
|
// Reload halaman setelah SweetAlert ditutup
|
||||||
location.reload(); // Ini akan me-reload halaman
|
location.reload(); // Ini akan me-reload halaman
|
||||||
});
|
});
|
||||||
@@ -256,8 +271,8 @@ $(document).ready(function () {
|
|||||||
console.log(r);
|
console.log(r);
|
||||||
},
|
},
|
||||||
error: function (xhr, status, error) {
|
error: function (xhr, status, error) {
|
||||||
alert('Terjadi kesalahan: ' + error);
|
alert("Terjadi kesalahan: " + error);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Vendored
+1
File diff suppressed because one or more lines are too long
@@ -32,7 +32,8 @@ function printPDF(data) {
|
|||||||
doc.setFont("helvetica", "normal");
|
doc.setFont("helvetica", "normal");
|
||||||
doc.setFontSize(9);
|
doc.setFontSize(9);
|
||||||
doc.text("Tanggal : " + (data.vehicle.date ?? "-"), pageWidth / 2, 23, { align: "center" });
|
doc.text("Tanggal : " + (data.vehicle.date ?? "-"), pageWidth / 2, 23, { align: "center" });
|
||||||
doc.text("By : Harian", pageWidth - 14, 12, { align: "right" });
|
doc.text("By : " + (data.vehicle.reportTime ?? "-"), pageWidth - 14, 12, { align: "right" });
|
||||||
|
// doc.text("By : Harian", pageWidth - 14, 12, { align: "right" });
|
||||||
|
|
||||||
// ===== SUSUN BODY TABEL =====
|
// ===== SUSUN BODY TABEL =====
|
||||||
const vehicleBody = [];
|
const vehicleBody = [];
|
||||||
@@ -434,6 +435,11 @@ function printPDF(data) {
|
|||||||
doc.setFontSize(11);
|
doc.setFontSize(11);
|
||||||
doc.text("Rekap Transaksi Per Petugas", pageWidth / 2, officerStartY - 5, { align: "center" });
|
doc.text("Rekap Transaksi Per Petugas", pageWidth / 2, officerStartY - 5, { align: "center" });
|
||||||
|
|
||||||
|
doc.setFont("helvetica", "normal");
|
||||||
|
doc.setFontSize(9);
|
||||||
|
doc.text("Tanggal : " + (data.vehicle.date ?? "-"), pageWidth / 2, 23, { align: "center" });
|
||||||
|
doc.text("By : " + (data.vehicle.reportTime ?? "-"), pageWidth - 14, 12, { align: "right" });
|
||||||
|
|
||||||
doc.autoTable({
|
doc.autoTable({
|
||||||
head: officerHead,
|
head: officerHead,
|
||||||
body: officerBody,
|
body: officerBody,
|
||||||
@@ -518,7 +524,7 @@ function printPDF(data) {
|
|||||||
rupiah(oCasual.income),
|
rupiah(oCasual.income),
|
||||||
|
|
||||||
nLost.jumlah,
|
nLost.jumlah,
|
||||||
cash.totalCashless,
|
rupiah(nLost.income),
|
||||||
|
|
||||||
nMember.jumlah,
|
nMember.jumlah,
|
||||||
rupiah(nMember.income),
|
rupiah(nMember.income),
|
||||||
@@ -535,11 +541,11 @@ function printPDF(data) {
|
|||||||
{ content: rupiah(cashless.totalCashless), styles: { valign: "middle", fontStyle: "bold" } },
|
{ content: rupiah(cashless.totalCashless), styles: { valign: "middle", fontStyle: "bold" } },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
ptotalTunaiJml += tCasual.jumlah + tLost.jumlah + tMember.jumlah + tManual.jumlah + tMasalah.jumlah;
|
payTotalTunaiJml += tCasual.jumlah + tLost.jumlah + tMember.jumlah + tManual.jumlah + tMasalah.jumlah;
|
||||||
ptotalTunaiNilai += cash.totalCash || 0;
|
payTotalTunaiNilai += cash.totalCash || 0;
|
||||||
ptotalNonTunaiJml += oCasual.jumlah + nLost.jumlah + nMember.jumlah + nManual.jumlah + nMasalah.jumlah;
|
payTotalNonTunaiJml += oCasual.jumlah + nLost.jumlah + nMember.jumlah + nManual.jumlah + nMasalah.jumlah;
|
||||||
ptotalNonTunaiNilai += cashless.totalCashless || 0;
|
payTotalNonTunaiNilai += cashless.totalCashless || 0;
|
||||||
pgrandTotal += (cash.totalCash || 0) + (cashless.totalCashless || 0);
|
payGrandTotal += (cash.totalCash || 0) + (cashless.totalCashless || 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
// baris TOTAL & GRAND TOTAL
|
// baris TOTAL & GRAND TOTAL
|
||||||
@@ -633,7 +639,12 @@ function printPDF(data) {
|
|||||||
// doc.addPage();
|
// doc.addPage();
|
||||||
doc.setFont("helvetica", "bold");
|
doc.setFont("helvetica", "bold");
|
||||||
doc.setFontSize(11);
|
doc.setFontSize(11);
|
||||||
doc.text("Rekap Transaksi Per Petugas", pageWidth / 2, paymentStartY - 5, { align: "center" });
|
doc.text("Rekap Transaksi Per Pembayaran", pageWidth / 2, paymentStartY - 5, { align: "center" });
|
||||||
|
|
||||||
|
doc.setFont("helvetica", "normal");
|
||||||
|
doc.setFontSize(9);
|
||||||
|
doc.text("Tanggal : " + (data.vehicle.date ?? "-"), pageWidth / 2, 23, { align: "center" });
|
||||||
|
doc.text("By : " + (data.vehicle.reportTime ?? "-"), pageWidth - 14, 12, { align: "right" });
|
||||||
|
|
||||||
doc.autoTable({
|
doc.autoTable({
|
||||||
head: paymentHead,
|
head: paymentHead,
|
||||||
@@ -646,28 +657,6 @@ function printPDF(data) {
|
|||||||
columnStyles: { 0: { halign: "left" } },
|
columnStyles: { 0: { halign: "left" } },
|
||||||
});
|
});
|
||||||
|
|
||||||
// ===== TABEL OVER NIGHT (di bawah tabel utama) =====
|
|
||||||
// const ponBody = data.payment.overNight.map((on) => [
|
|
||||||
// on.jenis_mobil ?? "-",
|
|
||||||
// on.overNight,
|
|
||||||
// on.onExpired,
|
|
||||||
// (on.overNight || 0) + (on.onExpired || 0),
|
|
||||||
// ]);
|
|
||||||
|
|
||||||
// doc.setFont("helvetica", "bold");
|
|
||||||
// doc.setFontSize(8);
|
|
||||||
// doc.text("Kendaraan yang masih menginap (Over Night)", 14, doc.lastAutoTable.finalY + 10);
|
|
||||||
|
|
||||||
// doc.autoTable({
|
|
||||||
// phead: [["Jenis Kend", "Menginap", "ON (Expired)", "Total"]],
|
|
||||||
// body: ponBody,
|
|
||||||
// startY: doc.lastAutoTable.finalY + 13,
|
|
||||||
// theme: "grid",
|
|
||||||
// styles: { fontSize: 7, cellPadding: 1 },
|
|
||||||
// headStyles: { fontSize: 8, fillColor: [230, 230, 230], textColor: 0 },
|
|
||||||
// tableWidth: 100,
|
|
||||||
// });
|
|
||||||
|
|
||||||
doc.save(`Rekap Harian - ${data.vehicle.date}.pdf`);
|
doc.save(`Rekap Harian - ${data.vehicle.date}.pdf`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,476 @@
|
|||||||
|
/*!
|
||||||
|
* Datepicker for Bootstrap v1.10.0 (https://github.com/uxsolutions/bootstrap-datepicker)
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License v2.0 (https://www.apache.org/licenses/LICENSE-2.0)
|
||||||
|
*/
|
||||||
|
|
||||||
|
.datepicker {
|
||||||
|
padding: 4px;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
.datepicker-inline {
|
||||||
|
width: 220px;
|
||||||
|
}
|
||||||
|
.datepicker-rtl {
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.datepicker-rtl.dropdown-menu {
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
.datepicker-rtl table tr td span {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown {
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown:before {
|
||||||
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
border-left: 7px solid transparent;
|
||||||
|
border-right: 7px solid transparent;
|
||||||
|
border-bottom: 7px solid #999;
|
||||||
|
border-top: 0;
|
||||||
|
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown:after {
|
||||||
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid #fff;
|
||||||
|
border-top: 0;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-left:before {
|
||||||
|
left: 6px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-left:after {
|
||||||
|
left: 7px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-right:before {
|
||||||
|
right: 6px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-right:after {
|
||||||
|
right: 7px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-bottom:before {
|
||||||
|
top: -7px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-bottom:after {
|
||||||
|
top: -6px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-top:before {
|
||||||
|
bottom: -7px;
|
||||||
|
border-bottom: 0;
|
||||||
|
border-top: 7px solid #999;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-top:after {
|
||||||
|
bottom: -6px;
|
||||||
|
border-bottom: 0;
|
||||||
|
border-top: 6px solid #fff;
|
||||||
|
}
|
||||||
|
.datepicker table {
|
||||||
|
margin: 0;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
.datepicker td,
|
||||||
|
.datepicker th {
|
||||||
|
text-align: center;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.table-striped .datepicker table tr td,
|
||||||
|
.table-striped .datepicker table tr th {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.day.focused,
|
||||||
|
.datepicker table tr td.day:hover {
|
||||||
|
background: #eee;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.new,
|
||||||
|
.datepicker table tr td.old {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.disabled,
|
||||||
|
.datepicker table tr td.disabled:hover {
|
||||||
|
background: 0 0;
|
||||||
|
color: #999;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.highlighted {
|
||||||
|
background: #d9edf7;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today,
|
||||||
|
.datepicker table tr td.today.disabled,
|
||||||
|
.datepicker table tr td.today.disabled:hover,
|
||||||
|
.datepicker table tr td.today:hover {
|
||||||
|
background-color: #fde19a;
|
||||||
|
background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||||
|
background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
|
||||||
|
background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||||
|
background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||||
|
background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
|
||||||
|
border-color: #fdf59a #fdf59a #fbed50;
|
||||||
|
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today.active,
|
||||||
|
.datepicker table tr td.today.disabled,
|
||||||
|
.datepicker table tr td.today.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled.disabled,
|
||||||
|
.datepicker table tr td.today.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover.active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled],
|
||||||
|
.datepicker table tr td.today.disabled[disabled],
|
||||||
|
.datepicker table tr td.today:active,
|
||||||
|
.datepicker table tr td.today:hover,
|
||||||
|
.datepicker table tr td.today:hover.active,
|
||||||
|
.datepicker table tr td.today:hover.disabled,
|
||||||
|
.datepicker table tr td.today:hover:active,
|
||||||
|
.datepicker table tr td.today:hover:hover,
|
||||||
|
.datepicker table tr td.today:hover[disabled],
|
||||||
|
.datepicker table tr td.today[disabled] {
|
||||||
|
background-color: #fdf59a;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today.active,
|
||||||
|
.datepicker table tr td.today.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.active,
|
||||||
|
.datepicker table tr td.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.today:active,
|
||||||
|
.datepicker table tr td.today:hover.active,
|
||||||
|
.datepicker table tr td.today:hover:active {
|
||||||
|
background-color: #fbf069\9;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today:hover:hover {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today.active:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range,
|
||||||
|
.datepicker table tr td.range.disabled,
|
||||||
|
.datepicker table tr td.range.disabled:hover,
|
||||||
|
.datepicker table tr td.range:hover {
|
||||||
|
background: #eee;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range.today,
|
||||||
|
.datepicker table tr td.range.today.disabled,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today:hover {
|
||||||
|
background-color: #f3d17a;
|
||||||
|
background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||||
|
background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
|
||||||
|
background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||||
|
background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||||
|
background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
|
||||||
|
border-color: #f3e97a #f3e97a #edde34;
|
||||||
|
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range.today.active,
|
||||||
|
.datepicker table tr td.range.today.disabled,
|
||||||
|
.datepicker table tr td.range.today.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled,
|
||||||
|
.datepicker table tr td.range.today.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled],
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled],
|
||||||
|
.datepicker table tr td.range.today:active,
|
||||||
|
.datepicker table tr td.range.today:hover,
|
||||||
|
.datepicker table tr td.range.today:hover.active,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled,
|
||||||
|
.datepicker table tr td.range.today:hover:active,
|
||||||
|
.datepicker table tr td.range.today:hover:hover,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled],
|
||||||
|
.datepicker table tr td.range.today[disabled] {
|
||||||
|
background-color: #f3e97a;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range.today.active,
|
||||||
|
.datepicker table tr td.range.today.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.range.today:active,
|
||||||
|
.datepicker table tr td.range.today:hover.active,
|
||||||
|
.datepicker table tr td.range.today:hover:active {
|
||||||
|
background-color: #efe24b\9;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected,
|
||||||
|
.datepicker table tr td.selected.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled:hover,
|
||||||
|
.datepicker table tr td.selected:hover {
|
||||||
|
background-color: #9e9e9e;
|
||||||
|
background-image: -moz-linear-gradient(to bottom, #b3b3b3, grey);
|
||||||
|
background-image: -ms-linear-gradient(to bottom, #b3b3b3, grey);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(grey));
|
||||||
|
background-image: -webkit-linear-gradient(to bottom, #b3b3b3, grey);
|
||||||
|
background-image: -o-linear-gradient(to bottom, #b3b3b3, grey);
|
||||||
|
background-image: linear-gradient(to bottom, #b3b3b3, grey);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
|
||||||
|
border-color: grey grey #595959;
|
||||||
|
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected.active,
|
||||||
|
.datepicker table tr td.selected.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled],
|
||||||
|
.datepicker table tr td.selected.disabled[disabled],
|
||||||
|
.datepicker table tr td.selected:active,
|
||||||
|
.datepicker table tr td.selected:hover,
|
||||||
|
.datepicker table tr td.selected:hover.active,
|
||||||
|
.datepicker table tr td.selected:hover.disabled,
|
||||||
|
.datepicker table tr td.selected:hover:active,
|
||||||
|
.datepicker table tr td.selected:hover:hover,
|
||||||
|
.datepicker table tr td.selected:hover[disabled],
|
||||||
|
.datepicker table tr td.selected[disabled] {
|
||||||
|
background-color: grey;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected.active,
|
||||||
|
.datepicker table tr td.selected.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:active,
|
||||||
|
.datepicker table tr td.selected:active,
|
||||||
|
.datepicker table tr td.selected:hover.active,
|
||||||
|
.datepicker table tr td.selected:hover:active {
|
||||||
|
background-color: #666\9;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active,
|
||||||
|
.datepicker table tr td.active.disabled,
|
||||||
|
.datepicker table tr td.active.disabled:hover,
|
||||||
|
.datepicker table tr td.active:hover {
|
||||||
|
background-color: #006dcc;
|
||||||
|
background-image: -moz-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: -ms-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));
|
||||||
|
background-image: -webkit-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: -o-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
|
||||||
|
border-color: #04c #04c #002a80;
|
||||||
|
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active.active,
|
||||||
|
.datepicker table tr td.active.disabled,
|
||||||
|
.datepicker table tr td.active.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled.disabled,
|
||||||
|
.datepicker table tr td.active.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover.active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled],
|
||||||
|
.datepicker table tr td.active.disabled[disabled],
|
||||||
|
.datepicker table tr td.active:active,
|
||||||
|
.datepicker table tr td.active:hover,
|
||||||
|
.datepicker table tr td.active:hover.active,
|
||||||
|
.datepicker table tr td.active:hover.disabled,
|
||||||
|
.datepicker table tr td.active:hover:active,
|
||||||
|
.datepicker table tr td.active:hover:hover,
|
||||||
|
.datepicker table tr td.active:hover[disabled],
|
||||||
|
.datepicker table tr td.active[disabled] {
|
||||||
|
background-color: #04c;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active.active,
|
||||||
|
.datepicker table tr td.active.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.active,
|
||||||
|
.datepicker table tr td.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td.active:active,
|
||||||
|
.datepicker table tr td.active:hover.active,
|
||||||
|
.datepicker table tr td.active:hover:active {
|
||||||
|
background-color: #039\9;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span {
|
||||||
|
display: block;
|
||||||
|
width: 23%;
|
||||||
|
height: 54px;
|
||||||
|
line-height: 54px;
|
||||||
|
float: left;
|
||||||
|
margin: 1%;
|
||||||
|
cursor: pointer;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.focused,
|
||||||
|
.datepicker table tr td span:hover {
|
||||||
|
background: #eee;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.disabled,
|
||||||
|
.datepicker table tr td span.disabled:hover {
|
||||||
|
background: 0 0;
|
||||||
|
color: #999;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.active,
|
||||||
|
.datepicker table tr td span.active.disabled,
|
||||||
|
.datepicker table tr td span.active.disabled:hover,
|
||||||
|
.datepicker table tr td span.active:hover {
|
||||||
|
background-color: #006dcc;
|
||||||
|
background-image: -moz-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: -ms-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));
|
||||||
|
background-image: -webkit-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: -o-linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-image: linear-gradient(to bottom, #08c, #04c);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
|
||||||
|
border-color: #04c #04c #002a80;
|
||||||
|
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.active.active,
|
||||||
|
.datepicker table tr td span.active.disabled,
|
||||||
|
.datepicker table tr td span.active.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled,
|
||||||
|
.datepicker table tr td span.active.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled],
|
||||||
|
.datepicker table tr td span.active.disabled[disabled],
|
||||||
|
.datepicker table tr td span.active:active,
|
||||||
|
.datepicker table tr td span.active:hover,
|
||||||
|
.datepicker table tr td span.active:hover.active,
|
||||||
|
.datepicker table tr td span.active:hover.disabled,
|
||||||
|
.datepicker table tr td span.active:hover:active,
|
||||||
|
.datepicker table tr td span.active:hover:hover,
|
||||||
|
.datepicker table tr td span.active:hover[disabled],
|
||||||
|
.datepicker table tr td span.active[disabled] {
|
||||||
|
background-color: #04c;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.active.active,
|
||||||
|
.datepicker table tr td span.active.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td span.active:active,
|
||||||
|
.datepicker table tr td span.active:hover.active,
|
||||||
|
.datepicker table tr td span.active:hover:active {
|
||||||
|
background-color: #039\9;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.new,
|
||||||
|
.datepicker table tr td span.old {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.datepicker .datepicker-switch {
|
||||||
|
width: 145px;
|
||||||
|
}
|
||||||
|
.datepicker .datepicker-switch,
|
||||||
|
.datepicker .next,
|
||||||
|
.datepicker .prev,
|
||||||
|
.datepicker tfoot tr th {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.datepicker .datepicker-switch:hover,
|
||||||
|
.datepicker .next:hover,
|
||||||
|
.datepicker .prev:hover,
|
||||||
|
.datepicker tfoot tr th:hover {
|
||||||
|
background: #eee;
|
||||||
|
}
|
||||||
|
.datepicker .next.disabled,
|
||||||
|
.datepicker .prev.disabled {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.datepicker .cw {
|
||||||
|
font-size: 10px;
|
||||||
|
width: 12px;
|
||||||
|
padding: 0 2px 0 5px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.input-append.date .add-on,
|
||||||
|
.input-prepend.date .add-on {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.input-append.date .add-on i,
|
||||||
|
.input-prepend.date .add-on i {
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
.input-daterange input {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.input-daterange input:first-child {
|
||||||
|
-webkit-border-radius: 3px 0 0 3px;
|
||||||
|
-moz-border-radius: 3px 0 0 3px;
|
||||||
|
border-radius: 3px 0 0 3px;
|
||||||
|
}
|
||||||
|
.input-daterange input:last-child {
|
||||||
|
-webkit-border-radius: 0 3px 3px 0;
|
||||||
|
-moz-border-radius: 0 3px 3px 0;
|
||||||
|
border-radius: 0 3px 3px 0;
|
||||||
|
}
|
||||||
|
.input-daterange .add-on {
|
||||||
|
display: inline-block;
|
||||||
|
width: auto;
|
||||||
|
min-width: 16px;
|
||||||
|
height: 18px;
|
||||||
|
padding: 4px 5px;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 18px;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 1px 0 #fff;
|
||||||
|
vertical-align: middle;
|
||||||
|
background-color: #eee;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
margin-left: -5px;
|
||||||
|
margin-right: -5px;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
+132
@@ -0,0 +1,132 @@
|
|||||||
|
/*
|
||||||
|
* Container style
|
||||||
|
*/
|
||||||
|
.ps {
|
||||||
|
overflow: hidden !important;
|
||||||
|
overflow-anchor: none;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
touch-action: auto;
|
||||||
|
-ms-touch-action: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Scrollbar rail styles
|
||||||
|
*/
|
||||||
|
.ps__rail-x {
|
||||||
|
display: none;
|
||||||
|
opacity: 0;
|
||||||
|
transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
opacity 0.2s linear;
|
||||||
|
-webkit-transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
opacity 0.2s linear;
|
||||||
|
height: 15px;
|
||||||
|
/* there must be 'bottom' or 'top' for ps__rail-x */
|
||||||
|
bottom: 0px;
|
||||||
|
/* please don't change 'position' */
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ps__rail-y {
|
||||||
|
display: none;
|
||||||
|
opacity: 0;
|
||||||
|
transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
opacity 0.2s linear;
|
||||||
|
-webkit-transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
opacity 0.2s linear;
|
||||||
|
width: 15px;
|
||||||
|
/* there must be 'right' or 'left' for ps__rail-y */
|
||||||
|
right: 0;
|
||||||
|
/* please don't change 'position' */
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ps--active-x > .ps__rail-x,
|
||||||
|
.ps--active-y > .ps__rail-y {
|
||||||
|
display: block;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ps:hover > .ps__rail-x,
|
||||||
|
.ps:hover > .ps__rail-y,
|
||||||
|
.ps--focus > .ps__rail-x,
|
||||||
|
.ps--focus > .ps__rail-y,
|
||||||
|
.ps--scrolling-x > .ps__rail-x,
|
||||||
|
.ps--scrolling-y > .ps__rail-y {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ps .ps__rail-x:hover,
|
||||||
|
.ps .ps__rail-y:hover,
|
||||||
|
.ps .ps__rail-x:focus,
|
||||||
|
.ps .ps__rail-y:focus,
|
||||||
|
.ps .ps__rail-x.ps--clicking,
|
||||||
|
.ps .ps__rail-y.ps--clicking {
|
||||||
|
background-color: #eee;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Scrollbar thumb styles
|
||||||
|
*/
|
||||||
|
.ps__thumb-x {
|
||||||
|
background-color: #aaa;
|
||||||
|
border-radius: 6px;
|
||||||
|
transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
height 0.2s ease-in-out;
|
||||||
|
-webkit-transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
height 0.2s ease-in-out;
|
||||||
|
height: 6px;
|
||||||
|
/* there must be 'bottom' for ps__thumb-x */
|
||||||
|
bottom: 2px;
|
||||||
|
/* please don't change 'position' */
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ps__thumb-y {
|
||||||
|
background-color: #aaa;
|
||||||
|
border-radius: 6px;
|
||||||
|
transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
width 0.2s ease-in-out;
|
||||||
|
-webkit-transition:
|
||||||
|
background-color 0.2s linear,
|
||||||
|
width 0.2s ease-in-out;
|
||||||
|
width: 6px;
|
||||||
|
/* there must be 'right' for ps__thumb-y */
|
||||||
|
right: 2px;
|
||||||
|
/* please don't change 'position' */
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ps__rail-x:hover > .ps__thumb-x,
|
||||||
|
.ps__rail-x:focus > .ps__thumb-x,
|
||||||
|
.ps__rail-x.ps--clicking .ps__thumb-x {
|
||||||
|
background-color: #999;
|
||||||
|
height: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ps__rail-y:hover > .ps__thumb-y,
|
||||||
|
.ps__rail-y:focus > .ps__thumb-y,
|
||||||
|
.ps__rail-y.ps--clicking .ps__thumb-y {
|
||||||
|
background-color: #999;
|
||||||
|
width: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* MS supports */
|
||||||
|
@supports (-ms-overflow-style: none) {
|
||||||
|
.ps {
|
||||||
|
overflow: auto !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||||
|
.ps {
|
||||||
|
overflow: auto !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<!-- Required meta tags -->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<title>Kapella Premium Bootstrap Admin Dashboard Template</title>
|
||||||
|
<!-- base:css -->
|
||||||
|
<link rel="stylesheet" href="{{ asset('vendors/mdi/css/materialdesignicons.min.css') }}">
|
||||||
|
<link rel="stylesheet" href="{{ asset('vendors/css/vendor.bundle.base.css') }}">
|
||||||
|
<!-- endinject -->
|
||||||
|
<!-- inject:css -->
|
||||||
|
<link rel="stylesheet" href="{{ asset('css/horizontal-layout-light/style.css') }}">
|
||||||
|
<!-- endinject -->
|
||||||
|
<link rel="shortcut icon" href="{{ asset('images/logo.ico') }}" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="container-scroller">
|
||||||
|
<div class="container-fluid page-body-wrapper full-page-wrapper">
|
||||||
|
<div class="content-wrapper d-flex align-items-center text-center error-page bg-primary">
|
||||||
|
<div class="row flex-grow">
|
||||||
|
<div class="col-lg-7 mx-auto text-white">
|
||||||
|
<div class="row align-items-center d-flex flex-row">
|
||||||
|
<div class="col-lg-6 text-lg-right pe-lg-4">
|
||||||
|
<h1 class="display-1 mb-0 text-white">404</h1>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 error-page-divider text-lg-left ps-lg-4">
|
||||||
|
<h2 class="text-white">SORRY!</h2>
|
||||||
|
<h3 class="fw-light text-white">The page you’re looking for was not found.</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mt-5">
|
||||||
|
<div class="col-12 text-center mt-xl-2">
|
||||||
|
<a class="text-white fw-medium" href="../../index.html">Back to home</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mt-5">
|
||||||
|
<div class="col-12 mt-xl-2">
|
||||||
|
<p class="text-white fw-medium text-center">Copyright © 2025 All rights reserved.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- content-wrapper ends -->
|
||||||
|
</div>
|
||||||
|
<!-- page-body-wrapper ends -->
|
||||||
|
</div>
|
||||||
|
<!-- container-scroller -->
|
||||||
|
<!-- base:js -->
|
||||||
|
<script src="{{ asset('vendors/js/vendor.bundle.base.js') }}"></script>
|
||||||
|
<!-- endinject -->
|
||||||
|
<!-- inject:js -->
|
||||||
|
<script src="{{ asset('js/off-canvas.js') }}"></script>
|
||||||
|
<script src="{{ asset('js/hoverable-collapse.js') }}"></script>
|
||||||
|
<script src="{{ asset('js/template.js') }}"></script>
|
||||||
|
<script src="{{ asset('js/settings.js') }}"></script>
|
||||||
|
<script src="{{ asset('js/todolist.js') }}"></script>
|
||||||
|
<script src="{{ asset('js/profile-settings.js') }}"></script>
|
||||||
|
<!-- endinject -->
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -1,7 +1,12 @@
|
|||||||
@extends('layouts.master')
|
@extends('layouts.master')
|
||||||
|
|
||||||
@section('styles')
|
@section('styles')
|
||||||
|
<!--<link rel="stylesheet" href="{{ asset('vendors/bootstrap-datepicker/bootstrap-datepicker.min.css') }}">-->
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css">
|
||||||
<style>
|
<style>
|
||||||
|
.datepicker.dropdown-menu {
|
||||||
|
z-index: 1090 !important; /* di atas z-index modal (1055) */
|
||||||
|
}
|
||||||
.card-body label {
|
.card-body label {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
@@ -181,7 +186,7 @@ class="form-control"
|
|||||||
<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/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="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/moment/moment.min.js') }}"></script>
|
||||||
<script src="{{asset ('vendor/bootstrap-daterangepicker/daterangepicker.js') }}"></script>
|
<script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
|
||||||
<script src="{{asset ('vendor/bootstrap-select/dist/js/bootstrap-select.min.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 ('vendor/sweetalert2/dist/sweetalert2.min.js') }}"></script>
|
||||||
<script src="{{asset ('js/custom.min.js') }}"></script>
|
<script src="{{asset ('js/custom.min.js') }}"></script>
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label class="col-lg-3 col-form-label form-label required">Periode :</label>
|
<label class="col-lg-3 col-form-label form-label required">Periode :</label>
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-8">
|
||||||
<input class="form-control input-daterange-timepicker" type="text" name="daterange" value="">
|
<input type="text" class="form-control input-daterange-timepicker" name="periode" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+2
-1
@@ -71,7 +71,8 @@
|
|||||||
|
|
||||||
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", [MemberStikerController::class, "index"]);
|
||||||
|
Route::post("stiker/checkField", [MemberStikerController::class, "checkField"]);
|
||||||
Route::resource("member", MemberStikerController::class);
|
Route::resource("member", MemberStikerController::class);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user