Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
sibiling
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Syaifur
sibiling
Commits
f6f6f8da
Commit
f6f6f8da
authored
Nov 13, 2024
by
FARDA ALAN MA'RUF
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
create rekap siswa
parent
10ec1c4d
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
831 additions
and
0 deletions
+831
-0
.DS_Store
app/.DS_Store
+0
-0
.DS_Store
app/Http/.DS_Store
+0
-0
.DS_Store
app/Http/Controllers/.DS_Store
+0
-0
.DS_Store
app/Http/Controllers/Admin/.DS_Store
+0
-0
.DS_Store
app/Http/Controllers/Admin/Layanan/.DS_Store
+0
-0
RekapSiswaController.php
app/Http/Controllers/Admin/Rekap/RekapSiswaController.php
+266
-0
index.blade.php
resources/views/admin/rekap/siswa/index.blade.php
+165
-0
show.blade.php
resources/views/admin/rekap/siswa/show.blade.php
+165
-0
show_old.blade.php
resources/views/admin/rekap/siswa/show_old.blade.php
+209
-0
sidebar_sekolah.blade.php
.../layouts/admin/partials/sidebar/sidebar_sekolah.blade.php
+7
-0
web_sekolah.php
routes/web_sekolah.php
+19
-0
No files found.
app/.DS_Store
0 → 100644
View file @
f6f6f8da
File added
app/Http/.DS_Store
0 → 100644
View file @
f6f6f8da
File added
app/Http/Controllers/.DS_Store
0 → 100644
View file @
f6f6f8da
File added
app/Http/Controllers/Admin/.DS_Store
0 → 100644
View file @
f6f6f8da
File added
app/Http/Controllers/Admin/Layanan/.DS_Store
0 → 100644
View file @
f6f6f8da
File added
app/Http/Controllers/Admin/Rekap/RekapSiswaController.php
0 → 100644
View file @
f6f6f8da
<?php
namespace
App\Http\Controllers\Admin\Rekap
;
use
App\Http\Controllers\Controller
;
use
App\Models\Perpus\KelasKodeModel
;
use
App\Models\Akademik\AbsensiModel
;
use
App\Models\Layanan\MutasiKonselingModel
;
use
App\Models\Layanan\MutasiPembinaanModel
;
use
App\Models\Siswa\SiswaModel
;
class
RekapSiswaController
extends
Controller
{
private
$views
=
'admin/rekap/siswa'
;
private
$url
=
'admin/rekap/siswa'
;
private
$title
=
'Halaman Rekap Siswa'
;
public
function
__construct
()
{
createLogActivity
();
// Di isi Construct
$this
->
mPerpusKelasKode
=
new
KelasKodeModel
();
$this
->
mAkAbsensi
=
new
AbsensiModel
();
$this
->
mSiswa
=
new
SiswaModel
();
$this
->
mMutasiKonseling
=
new
MutasiKonselingModel
();
$this
->
mMutasiPembinaan
=
new
MutasiPembinaanModel
();
}
public
function
index
()
{
$data
=
[
'title'
=>
$this
->
title
,
'url'
=>
$this
->
url
,
'page'
=>
'Rekap Absensi Siswa'
,
];
return
view
(
$this
->
views
.
"/index"
,
$data
);
}
public
function
getAbsensi
(
$tanggal_awal
,
$tanggal_akhir
)
{
$data
=
\DB
::
table
(
'perpus_kelasKode'
)
->
where
(
'perpus_kelasKode.idPSekolah'
,
session
()
->
get
(
'idPSekolah'
))
->
leftJoin
(
'akademik_absensi'
,
function
(
$join
)
use
(
$tanggal_awal
,
$tanggal_akhir
)
{
$join
->
on
(
'perpus_kelasKode.id'
,
'='
,
'akademik_absensi.idPKKode'
)
->
whereBetween
(
'akademik_absensi.date'
,
[
$tanggal_awal
,
$tanggal_akhir
]);
})
->
join
(
'perpus_kelas'
,
'perpus_kelasKode.idPKelas'
,
'='
,
'perpus_kelas.id'
)
->
join
(
'perpus_jurusan'
,
'perpus_kelasKode.idPJurusan'
,
'='
,
'perpus_jurusan.id'
)
->
select
(
'perpus_kelasKode.id as kelas_id'
,
\DB
::
raw
(
'COALESCE(MIN(akademik_absensi.date), "'
.
$tanggal_awal
.
'") as tanggal'
),
\DB
::
raw
(
'CONCAT(perpus_kelas.nama, " ", perpus_jurusan.nama, " ", perpus_kelasKode.nama) as nama_kelas'
),
\DB
::
raw
(
'count(akademik_absensi.id) as jumlah_kehadiran'
),
\DB
::
raw
(
'SUM(CASE WHEN akademik_absensi.idStatus = 1 THEN 1 ELSE 0 END) as jumlah_hadir'
),
\DB
::
raw
(
'SUM(CASE WHEN akademik_absensi.idStatus = 2 THEN 1 ELSE 0 END) as jumlah_tidak_hadir'
)
)
->
groupBy
(
'perpus_kelasKode.id'
,
'perpus_kelasKode.nama'
)
->
get
()
->
map
(
function
(
$item
)
use
(
$tanggal_awal
,
$tanggal_akhir
)
{
// Menyimpan kelas_id
$kelas_id
=
$item
->
kelas_id
;
// Membuat tombol HTML
$buttonHtml
=
"<a href='"
.
url
(
"
{
$this
->
url
}
/create/
{
$kelas_id
}
/
{
$tanggal_awal
}
/
{
$tanggal_akhir
}
"
)
.
"'><button type='button' class='btn btn-primary btn-sm' title='Detail Data'>Detail</button></a>"
;
if
(
$item
->
jumlah_kehadiran
>
0
)
{
$status
=
'<span class="text-primary">Ada</span>'
;
}
else
{
$status
=
'<span class="text-warning">Tidak Ada</span>'
;
}
// Mengembalikan array numerik tanpa kelas_id
return
[
$tanggal_awal
.
" - "
.
$tanggal_akhir
,
$item
->
nama_kelas
,
$item
->
jumlah_hadir
,
$item
->
jumlah_tidak_hadir
,
$status
,
$buttonHtml
];
});
$response
=
[
'data'
=>
$data
];
echo
json_encode
(
$response
);
}
public
function
create
(
$idPKKode
=
null
,
$tanggal_awal
=
null
,
$tanggal_akhir
=
null
)
{
// $kelas = $this->mPerpusKelasKode->where('id', $idPKKode)->first();
// $tanggal = date("d-m-Y", strtotime($tanggal));
$data
=
[
'title'
=>
$this
->
title
,
'url'
=>
$this
->
url
,
'page'
=>
'Absensi Kelas'
,
'idKelas'
=>
$idPKKode
,
// 'kelas' => $kelas,
'tanggal_awal'
=>
$tanggal_awal
,
'tanggal_akhir'
=>
$tanggal_akhir
,
];
return
view
(
$this
->
views
.
"/show"
,
$data
);
}
public
function
getAbsensiForm
(
$idPKKode
=
null
,
$tanggal_awal
=
null
,
$tanggal_akhir
=
null
)
{
// Mengambil data absensi untuk rentang tanggal tertentu.
$absensi
=
$this
->
mAkAbsensi
->
where
(
'idPKKode'
,
$idPKKode
)
->
whereBetween
(
'date'
,
[
$tanggal_awal
,
$tanggal_akhir
])
->
get
();
// Menentukan kondisi awal berdasarkan peran pengguna.
if
(
session
()
->
get
(
'role'
)
==
1
)
{
// Untuk peran 1, ambil semua siswa dalam kelas tertentu dengan status aktif.
$where
=
[
'idPKKode'
=>
$idPKKode
,
'idMStatus'
=>
1
,
// Status siswa aktif
];
}
else
{
// Untuk peran lainnya, batasi siswa sesuai sekolah dan kondisi tertentu.
$where
=
[
'idPSekolah'
=>
session
()
->
get
(
'idPSekolah'
),
'idPPeriode'
=>
session
()
->
get
(
'idPPeriode'
),
'idPKKode'
=>
$idPKKode
,
'idMStatus'
=>
1
,
'idPPkelas'
=>
1
,
'idPPStatus'
=>
1
,
];
}
// Mengambil semua siswa berdasarkan kondisi yang sudah ditentukan.
$siswa
=
$this
->
mSiswa
->
where
(
$where
)
->
get
();
// Jika ada data absensi dalam rentang tanggal, hitung jumlah masing-masing status kehadiran.
if
(
$absensi
->
isNotEmpty
())
{
// Mengambil semua catatan absensi untuk kelas tertentu dalam rentang tanggal.
$absensiSiswa
=
$this
->
mAkAbsensi
->
where
(
'idPKKode'
,
$idPKKode
)
->
whereBetween
(
'date'
,
[
$tanggal_awal
,
$tanggal_akhir
])
->
get
([
'idSiswa'
,
'idStatus'
])
->
groupBy
(
'idSiswa'
);
// Mengambil data konseling dalam rentang tanggal.
$konselingSiswa
=
$this
->
mMutasiKonseling
->
where
(
'idPKKode'
,
$idPKKode
)
->
whereBetween
(
'created_at'
,
[
$tanggal_awal
,
$tanggal_akhir
])
->
get
([
'idSiswa'
])
->
groupBy
(
'idSiswa'
);
// Mengambil data pembinaan dalam rentang tanggal.
$pembinaanSiswa
=
$this
->
mMutasiPembinaan
->
where
(
'idPKKode'
,
$idPKKode
)
->
whereBetween
(
'created_at'
,
[
$tanggal_awal
,
$tanggal_akhir
])
->
get
([
'idSiswa'
])
->
groupBy
(
'idSiswa'
);
// Hitung status kehadiran dan sesi konseling/pembinaan untuk masing-masing siswa.
$data
=
$siswa
->
map
(
function
(
$item
)
use
(
$absensiSiswa
,
$konselingSiswa
,
$pembinaanSiswa
)
{
$hadir
=
$absensiSiswa
->
get
(
$item
->
id
)
->
where
(
'idStatus'
,
1
)
->
count
();
$tidak_hadir
=
$absensiSiswa
->
get
(
$item
->
id
)
->
where
(
'idStatus'
,
2
)
->
count
();
$terlambat
=
$absensiSiswa
->
get
(
$item
->
id
)
->
where
(
'idStatus'
,
3
)
->
count
();
$ijin
=
$absensiSiswa
->
get
(
$item
->
id
)
->
where
(
'idStatus'
,
4
)
->
count
();
$sakit
=
$absensiSiswa
->
get
(
$item
->
id
)
->
where
(
'idStatus'
,
5
)
->
count
();
$jumlah_konseling
=
isset
(
$konselingSiswa
[
$item
->
id
])
?
$konselingSiswa
[
$item
->
id
]
->
count
()
:
0
;
$jumlah_pembinaan
=
isset
(
$pembinaanSiswa
[
$item
->
id
])
?
$pembinaanSiswa
[
$item
->
id
]
->
count
()
:
0
;
return
[
'i'
=>
''
,
'id'
=>
$item
->
id
,
'nisn'
=>
$item
->
nisn
,
'nama'
=>
$item
->
nama
,
'hadir'
=>
$hadir
,
'tidak_hadir'
=>
$tidak_hadir
,
'terlambat'
=>
$terlambat
,
'ijin'
=>
$ijin
,
'sakit'
=>
$sakit
,
'jumlah_konseling'
=>
$jumlah_konseling
,
'jumlah_pembinaan'
=>
$jumlah_pembinaan
,
];
});
}
else
{
// Jika tidak ada data absensi dalam rentang tanggal, setel semua status kehadiran dan jumlah sesi ke 0.
$data
=
$siswa
->
map
(
function
(
$item
)
{
return
[
'i'
=>
''
,
'id'
=>
$item
->
id
,
'nisn'
=>
$item
->
nisn
,
'nama'
=>
$item
->
nama
,
'hadir'
=>
0
,
'tidak_hadir'
=>
0
,
'terlambat'
=>
0
,
'ijin'
=>
0
,
'sakit'
=>
0
,
'jumlah_konseling'
=>
0
,
'jumlah_pembinaan'
=>
0
,
];
});
}
// Mengembalikan data dalam format JSON.
return
response
()
->
json
([
'data'
=>
$data
,
'status'
=>
$absensi
->
isNotEmpty
()
?
1
:
0
]);
}
public
function
store
(
Request
$request
)
{
$kodekelas
=
$this
->
mPerpusKelasKode
->
where
(
'id'
,
$request
->
valKelas
)
->
first
();
$absensi
=
$this
->
mAkAbsensi
->
where
(
'idPKKode'
,
$request
->
valKelas
)
->
where
(
'date'
,
$request
->
valTanggal
)
->
first
();
$cekId
=
$request
->
input
(
'cekId'
,
[]);
$cekVal
=
$request
->
input
(
'cekVal'
,
[]);
// status absensi
// 0: belum ada absensi
// 1: hadir
// 2: tidak hadir
// 3: terlambat
// 4: ijin
// 5: sakit
foreach
(
$cekId
as
$idSiswa
=>
$value
)
{
// Dapatkan status siswa; 'on' berarti hadir (1), '2' berarti tidak hadir
// $status = isset($cekVal[$idSiswa]) && $cekVal[$idSiswa] == 'on' ? 1 : 2;
$status
=
$cekVal
[
$idSiswa
];
// Simpan atau update data absensi siswa
$dataAbsensi
=
[
'idPSekolah'
=>
session
()
->
get
(
'idPSekolah'
),
'idPJurusan'
=>
$kodekelas
->
jurusan
->
id
,
'idPKelas'
=>
$kodekelas
->
kelas
->
id
,
'idPKKode'
=>
$kodekelas
->
id
,
'idPPeriode'
=>
session
()
->
get
(
'idPPeriode'
),
'idSiswa'
=>
$idSiswa
,
'idStatus'
=>
$status
,
'date'
=>
$request
->
valTanggal
,
];
$absensi
=
$this
->
mAkAbsensi
->
where
(
'idPKKode'
,
$kodekelas
->
id
)
->
where
(
'date'
,
$request
->
valTanggal
)
->
where
(
'idSiswa'
,
$idSiswa
)
->
first
();
if
(
$absensi
)
{
$absensi
->
update
(
$dataAbsensi
);
}
else
{
$this
->
mAkAbsensi
->
create
(
$dataAbsensi
);
}
}
if
(
isset
(
$absensi
))
{
return
redirect
(
"
$this->url
"
)
->
with
(
'sukses'
,
'Absensi berhasil di Perbarui'
);
}
else
{
return
redirect
(
"
$this->url
"
)
->
with
(
'sukses'
,
'Absensi berhasil di Tambahkan'
);
}
}
}
resources/views/admin/rekap/siswa/index.blade.php
0 → 100644
View file @
f6f6f8da
@
extends
(
$admin
)
@
section
(
'title'
)
{{
$title
}}
@
endsection
@
push
(
'css'
)
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/datatables.css') }}"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/date-picker.css') }}"
>
@
endpush
@
section
(
'content'
)
@
component
(
'components.breadcrumb'
)
@
slot
(
'breadcrumb_title'
)
<
h3
>
Akademik
</
h3
>
@
endslot
<
li
class
="
breadcrumb
-
item
">Absensi</li>
<li class="
breadcrumb
-
item
active
">Siswa</li>
@endcomponent
<div class="
container
-
fluid
">
<div class="
row
">
<div class="
col
-
sm
-
12
">
{{-- Diberikan alert --}}
@if (session()->has('sukses'))
<div class="
alert
alert
-
success
" role="
alert
">
{{ session('sukses') }}
</div>
@elseif (session()->has('gagal'))
<div class="
alert
alert
-
danger
" role="
alert
">
{{ session('gagal') }}
</div>
@endif
<div class="
card
">
<div class="
card
-
header
p
-
3
">
<div class="
row
">
<div class="
col
-
lg
-
6
">
<h5 class="
card
-
title
">{{
$page
}}</h5>
</div>
</div>
</div>
<div class="
card
-
body
">
<div class="
row
">
<div class="
mb
-
3
">
<div class="
row
">
<div class="
col
-
md
-
6
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Tanggal Awal</label>
<input id="
tanggal_awal
" class="
datepicker
-
here
form
-
control
digits
col
-
sm
-
9
"
type="
text
" data-language="
en
" placeholder="
Isi
Tanggal
Absensi
" />
</div>
<div class="
col
-
md
-
6
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Tanggal Akhir</label>
<input id="
tanggal_akhir
" class="
datepicker
-
here
form
-
control
digits
col
-
sm
-
9
"
type="
text
" data-language="
en
" placeholder="
Isi
Tanggal
Absensi
" />
</div>
<div class="
col
-
md
-
12
mt
-
1
">
<button id="
tanggal
" class="
btn
btn
-
md
btn
-
primary
">Submit</button>
</div>
</div>
{{-- <a href="
{{
url
(
$url
)
}}
/
create
" class="
btn
btn
-
sm
btn
-
primary
float
-
end
m
-
4
" id="
linkTambahAbsensi
">Tambah Absensi</a> --}}
</div>
</div>
<div class="
row
">
<div class="
table
-
responsive
" id="
tabel
-
jquery
">
<table id="
isi
-
tabel
"
class="
table
table
-
striped
table
-
bordered
dt
-
responsive
nowrap
dataTable
no
-
footer
dtr
-
inline
collapsed
">
<thead>
<tr>
<th>Tanggal</th>
<th>Kelas</th>
<th>Jumlah Hadir</th>
<th>Jumlah tidak Hadir</th>
<th>Absensi</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
{{-- fitur di laravel --}}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@push('scripts')
<script src="
{{
asset
(
'assets/js/datatable/datatables/jquery.dataTables.min.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datatable/datatables/datatable.custom.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.en.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.custom.js'
)
}}
"></script>
<script>
let baseUrlUrl = '{{ url(
$url
) }}';
$("
#isi-tabel").DataTable();
$
(
'#tabel-jquery'
)
.
hide
();
</
script
>
<
script
>
$
(
document
)
.
ready
(
function
()
{
// dikasih notif kalo tanggal ini tidak ada absensi
$
(
'.datepicker-here'
)
.
datepicker
({
autoClose
:
true
,
// Pastikan date picker tertutup setelah tanggal dipilih
language
:
'en'
,
// Mengatur bahasa
// onSelect: function(formattedDate, date, inst) {
// var formattedForURL = date.getFullYear() + '-' + (date.getMonth() + 1).toString().padStart(2, '0') + '-' + date.getDate().toString().padStart(2, '0');
// updateDataTable(formattedForURL); // Update dengan format YYYY-MM-DD
// }
});
$
(
'#tanggal'
)
.
on
(
'click'
,
function
()
{
var
tgl_awal
=
$
(
'#tanggal_awal'
)
.
val
();
var
tgl_akhir
=
$
(
'#tanggal_akhir'
)
.
val
();
// Fungsi untuk mengubah format tanggal
function
formatTanggal
(
tanggal
)
{
var
parts
=
tanggal
.
split
(
'/'
);
return
parts
[
2
]
+
'-'
+
parts
[
0
]
+
'-'
+
parts
[
1
];
}
// Mengubah format tanggal awal dan akhir
var
tgl_awal_formatted
=
formatTanggal
(
tgl_awal
);
var
tgl_akhir_formatted
=
formatTanggal
(
tgl_akhir
);
updateDataTable
(
tgl_awal_formatted
,
tgl_akhir_formatted
);
});
function
updateDataTable
(
tanggal_awal
,
tanggal_akhir
)
{
$
(
"#isi-tabel"
)
.
DataTable
()
.
clear
()
.
destroy
();
$
(
'#tabel-jquery'
)
.
show
();
$
(
'#linkTambahAbsensi'
)
.
attr
(
'href'
,
"{{ url(
$url
) }}/create/"
+
tanggal_awal
+
"/"
+
tanggal_akhir
);
$
(
"#isi-tabel"
)
.
DataTable
({
language
:
{
emptyTable
:
"Tidak ada data Siswa"
,
info
:
"Total: _TOTAL_ Data Siswa"
,
infoEmpty
:
"Menampilkan 0 dari 0 Data Siswa"
,
},
responsive
:
true
,
autoWidth
:
false
,
processing
:
true
,
ajax
:
{
url
:
baseUrlUrl
+
'/get-absensi/'
+
tanggal_awal
+
"/"
+
tanggal_akhir
,
method
:
'GET'
,
},
dom
:
'Bfrtip'
,
buttons
:
[
'copy'
,
'excel'
,
'pdf'
,
'colvis'
]
});
}
});
</
script
>
@
endpush
@
endsection
resources/views/admin/rekap/siswa/show.blade.php
0 → 100644
View file @
f6f6f8da
@
extends
(
$admin
)
@
section
(
'title'
)
{{
$title
}}
@
endsection
@
push
(
'css'
)
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/datatables.css') }}"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/select2.css') }}"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/date-picker.css') }}"
>
@
endpush
@
section
(
'content'
)
@
component
(
'components.breadcrumb'
)
@
slot
(
'breadcrumb_title'
)
<
h3
>
Master
Indeks
Kelas
</
h3
>
@
endslot
<
li
class
="
breadcrumb
-
item
">Master</li>
<li class="
breadcrumb
-
item
">Indeks Kelas</li>
<li class="
breadcrumb
-
item
active
">Detail</li>
@endcomponent
<div class="
container
-
fluid
pt
-
4
">
<div class="
row
justify
-
content
-
center
">
<div class="
col
-
lg
-
10
col
-
sm
-
12
">
<div class="
card
border
-
top
border
-
0
border
-
4
border
-
info
">
<div class="
card
-
header
p
-
3
">
<div class="
row
">
<div class="
col
-
lg
-
6
">
<h5 class="
card
-
title
">{{
$page
}}</h5>
</div>
<div class="
col
-
lg
-
6
col
-
sm
-
12
">
<a href="
{{
url
(
$url
)
}}
" class="
btn
btn
-
sm
btn
-
primary
float
-
end
">kembali</a>
</div>
</div>
</div>
<div class="
card
-
body
">
<div class="
row
">
<div class="
table
-
responsive
" id="
tabel
-
jquery
">
<form action="
{{
url
(
$url
)
}}
/
store
" method="
POST
">
@csrf
<input id="
valKelas
" type="
hidden
" name="
valKelas
">
<input id="
valTanggal
" type="
hidden
" name="
valTanggal
">
<table id="
isi
-
tabel
" class="
table
table
-
striped
table
-
bordered
dt
-
responsive
nowrap
dataTable
no
-
footer
dtr
-
inline
collapsed
">
<thead >
<tr>
<th data-priority="
1
" width="
50
px
">No.</th>
<th>NISN</th>
<th>Nama</th>
<th>Konseling</th>
<th>Bimbingan</th>
<th>Hadir</th>
<th>Tidak Hadir</th>
<th>Terlambat</th>
<th>Izin</th>
<th>Sakit</th>
</tr>
</thead>
<tbody>
{{-- fitur di laravel --}}
</tbody>
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@push('scripts')
<script src="
{{
asset
(
'assets/js/datatable/datatables/jquery.dataTables.min.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datatable/datatables/datatable.custom.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/select2/select2.full.min.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/select2/select2-custom.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.en.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.custom.js'
)
}}
"></script>
<script>
let baseUrl = '{{ url('') }}';
let url = '{{
$url
}}';
$("
#isi-tabel").DataTable();
$
(
'#tabel-jquery'
)
.
hide
();
</
script
>
@
include
(
'admin.filter.kelaskomplit'
)
<
script
>
$
(
document
)
.
ready
(
function
()
{
setTimeout
(
function
()
{
if
(
'{{ $tanggal_awal }}'
&&
'{{ $idKelas }}'
)
{
// $('#select-kodekelas').trigger('change');
updateTable
();
}
},
500
);
// Fungsi untuk memperbarui tabel
function
updateTable
()
{
var
idPKKode
=
'{{ $idKelas }}'
;
var
selectedDate
=
'{{ $tanggal_awal }}'
;
// Mendapatkan tanggal yang dipilih
var
selectedDateAkhir
=
'{{ $tanggal_akhir }}'
;
// Mendapatkan tanggal yang dipilih
$
(
'#valKelas'
)
.
val
(
idPKKode
);
// Set hidden input value
$
(
'#valTanggal'
)
.
val
(
selectedDate
);
// Set hidden input value
console
.
log
(
'kelas: '
+
idPKKode
)
console
.
log
(
'tanggal: '
+
selectedDate
)
if
(
idPKKode
&&
selectedDate
)
{
$
(
"#isi-tabel"
)
.
DataTable
()
.
clear
()
.
destroy
();
// Menghancurkan instance DataTable yang ada
$
(
'#tabel-jquery'
)
.
show
();
// Menampilkan tabel jika tersembunyi
// Membuat instance baru dari DataTable
$
(
"#isi-tabel"
)
.
DataTable
({
language
:
{
emptyTable
:
"Tidak ada data Siswa"
,
info
:
"Total: _TOTAL_ Data Siswa"
,
infoEmpty
:
"Menampilkan 0 dari 0 Data Siswa"
,
},
responsive
:
true
,
autoWidth
:
false
,
processing
:
true
,
ajax
:
{
url
:
baseUrl
+
'/'
+
url
+
'/get-absensi-form/'
+
idPKKode
+
'/'
+
selectedDate
+
'/'
+
selectedDateAkhir
,
method
:
'GET'
,
// dataSrc: function(json) {
// var status = json.status == 1 ? "Absensi sudah dilakukan" : "Belum Absensi";
// var submit = json.status == 1 ? "Update" : "Simpan";
// if(json.status == 1) {
// alert("kelas di Tanggal ini sudah dilakukan absensi ! Klik Update untuk merubah kehadiran");
// }
// $('#status').val(status);
// $('#submit').val(submit);
// return json.data;
// }
},
columns
:
[
{
data
:
'i'
,
render
:
function
(
data
,
type
,
row
,
meta
)
{
return
meta
.
row
+
1
;
}
},
// Menghitung index
{
data
:
'nisn'
},
{
data
:
'nama'
},
{
data
:
'jumlah_konseling'
},
{
data
:
'jumlah_pembinaan'
},
{
data
:
'hadir'
},
{
data
:
'tidak_hadir'
},
{
data
:
'terlambat'
},
{
data
:
'ijin'
},
{
data
:
'sakit'
},
],
dom
:
'Bfrtip'
,
buttons
:
[
'copy'
,
'excel'
,
'pdf'
,
'colvis'
]
});
}
}
});
</
script
>
@
endpush
@
endsection
resources/views/admin/rekap/siswa/show_old.blade.php
0 → 100644
View file @
f6f6f8da
@
extends
(
$admin
)
@
section
(
'title'
)
{{
$title
}}
@
endsection
@
push
(
'css'
)
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/datatables.css') }}"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/select2.css') }}"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"{{ asset('assets/css/date-picker.css') }}"
>
@
endpush
@
section
(
'content'
)
@
component
(
'components.breadcrumb'
)
@
slot
(
'breadcrumb_title'
)
<
h3
>
Master
Indeks
Kelas
</
h3
>
@
endslot
<
li
class
="
breadcrumb
-
item
">Master</li>
<li class="
breadcrumb
-
item
">Indeks Kelas</li>
<li class="
breadcrumb
-
item
active
">Detail</li>
@endcomponent
<div class="
container
-
fluid
pt
-
4
">
<div class="
row
justify
-
content
-
center
">
<div class="
col
-
lg
-
10
col
-
sm
-
12
">
<div class="
card
border
-
top
border
-
0
border
-
4
border
-
info
">
<div class="
card
-
header
p
-
3
">
<div class="
row
">
<div class="
col
-
lg
-
6
">
<h5 class="
card
-
title
">{{
$page
}}</h5>
</div>
<div class="
col
-
lg
-
6
col
-
sm
-
12
">
<a href="
{{
url
(
$url
)
}}
" class="
btn
btn
-
sm
btn
-
primary
float
-
end
">kembali</a>
</div>
</div>
</div>
<div class="
card
-
body
">
<div class="
row
">
<div class="
mb
-
3
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Pilih Kelas</label>
<select id="
select
-
kodekelas
" class="
form
-
select
select2
" aria-label="
Default
select
example
" required>
<option value="">Pilih Kelas Terlebih Dahulu</option>
</select>
</div>
</div>
<div class="
row
">
<div class="
mb
-
3
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Pilih Tanggal</label>
<input id="
tanggal
" class="
datepicker
-
here
form
-
control
digits
col
-
sm
-
9
" type="
text
" data-language="
en
" placeholder="
Isi
Tanggal
Absensi
" />
</div>
</div>
<div class="
row
">
<div class="
mb
-
3
">
<label class="
col
-
sm
-
3
col
-
form
-
label
">Status</label>
<input id="
status
" class="
form
-
control
block
" type="
text
" disabled />
</div>
</div>
<div class="
row
">
<div class="
table
-
responsive
" id="
tabel
-
jquery
">
<form action="
{{
url
(
$url
)
}}
/
store
" method="
POST
">
@csrf
<input id="
valKelas
" type="
hidden
" name="
valKelas
">
<input id="
valTanggal
" type="
hidden
" name="
valTanggal
">
<table id="
isi
-
tabel
" class="
table
table
-
striped
table
-
bordered
dt
-
responsive
nowrap
dataTable
no
-
footer
dtr
-
inline
collapsed
">
<thead >
<tr>
<th data-priority="
1
" width="
50
px
">No.</th>
<th>NISN</th>
<th>Nama</th>
<th width="
250
">Kehadiran</th>
</tr>
</thead>
<tbody>
{{-- fitur di laravel --}}
</tbody>
<tfoot>
<input id="
submit
" type="
submit
" class="
btn
btn
-
primary
" onclick="
return
confirm
(
'Apakah anda yakin data sudah benar ?'
)
">
<button class="
btn
btn
-
secondary
"><a href="
{{
url
(
$url
)
}}
" class="
text
-
white
">Cancel</a></button>
</tfoot>
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@push('scripts')
<script src="
{{
asset
(
'assets/js/datatable/datatables/jquery.dataTables.min.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datatable/datatables/datatable.custom.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/select2/select2.full.min.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/select2/select2-custom.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.en.js'
)
}}
"></script>
<script src="
{{
asset
(
'assets/js/datepicker/date-picker/datepicker.custom.js'
)
}}
"></script>
<script>
let baseUrl = '{{ url('') }}';
let url = '{{
$url
}}';
$("
#isi-tabel").DataTable();
$
(
'#tabel-jquery'
)
.
hide
();
</
script
>
@
include
(
'admin.filter.kelaskomplit'
)
<
script
>
$
(
document
)
.
ready
(
function
()
{
let
isInitialLoad
=
true
;
// Inisialisasi Datepicker
$
(
'#tanggal'
)
.
datepicker
({
autoClose
:
true
,
language
:
'en'
,
dateFormat
:
'yyyy-mm-dd'
,
// onSelect: function(formattedDate, date, inst) {
// updateTable(); // Memanggil fungsi updateTable ketika tanggal dipilih
// }
onSelect
:
function
(
formattedDate
,
date
,
inst
)
{
if
(
!
isInitialLoad
)
{
// Hanya memanggil updateTable jika bukan load pertama
updateTable
();
}
}
})
.
data
(
'datepicker'
)
.
selectDate
(
new
Date
(
'{{ $tanggal }}'
));
// Set tanggal dari server
isInitialLoad
=
false
;
// Menangani perubahan pada dropdown kelas
$
(
'#select-kodekelas'
)
.
on
(
'change'
,
function
()
{
updateTable
();
// Memanggil fungsi updateTable ketika kelas berubah
});
setTimeout
(
function
()
{
if
(
'{{ $tanggal }}'
&&
'{{ $idKelas }}'
)
{
$
(
'#select-kodekelas'
)
.
trigger
(
'change'
);
}
},
500
);
// Fungsi untuk memperbarui tabel
function
updateTable
()
{
var
idPKKode
=
$
(
'#select-kodekelas'
)
.
val
();
// Mendapatkan ID kelas yang dipilih
var
selectedDate
=
$
(
'#tanggal'
)
.
val
();
// Mendapatkan tanggal yang dipilih
$
(
'#valKelas'
)
.
val
(
idPKKode
);
// Set hidden input value
$
(
'#valTanggal'
)
.
val
(
selectedDate
);
// Set hidden input value
console
.
log
(
'kelas: '
+
idPKKode
)
console
.
log
(
'tanggal: '
+
selectedDate
)
if
(
idPKKode
&&
selectedDate
)
{
$
(
"#isi-tabel"
)
.
DataTable
()
.
clear
()
.
destroy
();
// Menghancurkan instance DataTable yang ada
$
(
'#tabel-jquery'
)
.
show
();
// Menampilkan tabel jika tersembunyi
// Membuat instance baru dari DataTable
$
(
"#isi-tabel"
)
.
DataTable
({
language
:
{
emptyTable
:
"Tidak ada data Siswa"
,
info
:
"Total: _TOTAL_ Data Siswa"
,
infoEmpty
:
"Menampilkan 0 dari 0 Data Siswa"
,
},
responsive
:
true
,
autoWidth
:
false
,
processing
:
true
,
ajax
:
{
url
:
baseUrl
+
'/'
+
url
+
'/get-absensi-form/'
+
idPKKode
+
'/'
+
selectedDate
,
method
:
'GET'
,
dataSrc
:
function
(
json
)
{
var
status
=
json
.
status
==
1
?
"Absensi sudah dilakukan"
:
"Belum Absensi"
;
var
submit
=
json
.
status
==
1
?
"Update"
:
"Simpan"
;
if
(
json
.
status
==
1
)
{
alert
(
"kelas di Tanggal ini sudah dilakukan absensi ! Klik Update untuk merubah kehadiran"
);
}
$
(
'#status'
)
.
val
(
status
);
$
(
'#submit'
)
.
val
(
submit
);
return
json
.
data
;
}
},
columns
:
[
{
data
:
'i'
,
render
:
function
(
data
,
type
,
row
,
meta
)
{
return
meta
.
row
+
1
;
}
},
// Menghitung index
{
data
:
'nisn'
},
{
data
:
'nama'
},
{
data
:
'id'
,
render
:
function
(
data
,
type
,
row
,
meta
)
{
// console.log("idSiswa: "+row.id+" | status: "+row.statusAbsensi)
if
(
row
.
statusAbsensi
==
0
||
row
.
statusAbsensi
==
1
){
var
checkboxChecked
=
'checked'
;
}
else
{
var
checkboxChecked
=
''
;
}
return
`<input name="cekId[${data}]" value="${data}" type="hidden">
<input name="cekVal[${data}]" value="0" type="hidden">
<input type="checkbox" name="cekVal[${data}]" ${checkboxChecked}>`
;
}
}
],
dom
:
'Bfrtip'
,
buttons
:
[
'copy'
,
'excel'
,
'pdf'
,
'colvis'
]
});
}
}
});
</
script
>
@
endpush
@
endsection
resources/views/layouts/admin/partials/sidebar/sidebar_sekolah.blade.php
View file @
f6f6f8da
...
...
@@ -71,6 +71,13 @@
{{--
<li><a
href=
"{{ route('import.kelas') }}"
class=
"{{ routeActive('import.kelas') }}"
>
Import Kelas
</a></li>
--}}
</ul>
</li>
<li
class=
"dropdown"
>
<a
class=
"nav-link menu-title {{ prefixActive('/admin/rekap') }}"
href=
"javascript:void(0)"
><i
data-feather=
"database"
></i><span>
Rekap
</span></a>
<ul
class=
"nav-submenu menu-content"
style=
"display: {{ prefixBlock('/admin/import') }}"
>
<li><a
href=
"{{ route('rekap.siswa') }}"
class=
"{{ routeActive('rekap.siswa') }}"
>
Siswa
</a></li>
{{--
<li><a
href=
"{{ route('rekap.siswa') }}"
class=
"{{ routeActive('rekap.siswa') }}"
>
Siswa
</a></li>
--}}
</ul>
</li>
<li><a
href=
"{{ route('event') }}"
class=
"nav-link menu-title {{ routeActive('event') }}"
><i
data-feather=
"users"
></i><span>
Event
</span></a></li>
<li><a
href=
"{{ route('admin.saran') }}"
class=
"nav-link menu-title {{ routeActive('admin.saran') }}"
><i
data-feather=
"users"
></i><span>
Saran
</span></a></li>
<li><a
href=
"{{ route('admin.akun') }}"
class=
"nav-link menu-title {{ routeActive('admin.akun') }}"
><i
data-feather=
"users"
></i><span>
Akun
</span></a></li>
\ No newline at end of file
routes/web_sekolah.php
View file @
f6f6f8da
...
...
@@ -112,3 +112,22 @@ Route::prefix('/admin/import')->group(function () {
Route
::
get
(
'/guru/create'
,
'Admin\Import\ImportGuruController@create'
);
Route
::
post
(
'/guru/store'
,
'Admin\Import\ImportGuruController@store'
);
});
Route
::
prefix
(
'/admin/rekap'
)
->
group
(
function
()
{
// Route::get('/siswa', 'Admin\Import\ImportSiswaController@index')->name('import.siswa');
// Route::get('/siswa/create', 'Admin\Import\ImportSiswaController@create');
// Route::post('/siswa/store', 'Admin\Import\ImportSiswaController@store');
// Route::get('/siswa', 'Admin\Rekap\RekapSiswaController@index')->name('rekap.siswa');
// Route::get('/siswa/create', 'Admin\Rekap\RekapSiswaController@create');
// Route::post('/siswa/store', 'Admin\Rekap\RekapSiswaController@store');
Route
::
get
(
'/siswa'
,
'Admin\Rekap\RekapSiswaController@index'
)
->
name
(
'rekap.siswa'
);
Route
::
get
(
'/siswa/get-absensi/{tanggal_awal}/{tanggal_akhir}'
,
'Admin\Rekap\RekapSiswaController@getAbsensi'
);
Route
::
get
(
'/siswa/create/{dataId}/{date_awal}/{date_akhir}'
,
'Admin\Rekap\RekapSiswaController@create'
);
Route
::
get
(
'/siswa/get-absensi-form/{dataId}/{tanggal_awal}/{tanggal_akhir}'
,
'Admin\Rekap\RekapSiswaController@getAbsensiForm'
);
Route
::
post
(
'/siswa/store'
,
'Admin\Rekap\RekapSiswaController@store'
);
Route
::
get
(
'/siswa/{dataId?}/edit'
,
'Admin\Rekap\RekapSiswaController@edit'
);
Route
::
put
(
'/siswa/update/{dataId?}'
,
'Admin\Rekap\RekapSiswaController@update'
);
});
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment