@extends('layouts.main')
@push('scripts')
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"></script>
<script>
var randomChartData = function randomChartData(n) {
var data = [];
for (var i = 0; i < n; i++) {
data.push(Math.round(Math.random() * 200));
}
return data;
};
//random color
var randomColor = function randomColor() {
return '#' + Math.random().toString(16).slice(2, 8);
};
var chartColors = {
"default": {
primary: '#00D1B2',
info: '#209CEE',
danger: '#FF3860'
}
};
const grafikBulanan = {!! json_encode($grafikBulanan) !!};
const grafikHarian = {!! json_encode($grafikHarian) !!};
const jenjang = {!! json_encode($jj) !!};
let dataGrafikBulanan = [];
let dataGrafikHarian = [];
// for (let i = 0; i < grafikBulanan.length; i++) {
// const gb = grafikBulanan[i];
// }
for (const i in jenjang) {
const j = jenjang[i];
const color = randomColor();
let d = {
label: j,
fill: false,
borderColor: color,
borderWidth: 2,
borderDash: [],
borderDashOffset: 0.0,
pointBackgroundColor: color,
pointBorderColor: 'rgba(255,255,255,0)',
pointHoverBackgroundColor: color,
pointBorderWidth: 20,
pointHoverRadius: 4,
pointHoverBorderWidth: 15,
pointRadius: 4,
data: []
}
let d2 = {
label: j,
fill: false,
borderColor: color,
borderWidth: 2,
borderDash: [],
borderDashOffset: 0.0,
pointBackgroundColor: color,
pointBorderColor: 'rgba(255,255,255,0)',
pointHoverBackgroundColor: color,
pointBorderWidth: 20,
pointHoverRadius: 4,
pointHoverBorderWidth: 15,
pointRadius: 4,
data: []
}
for (const kgb in grafikBulanan) {
const gb = grafikBulanan[kgb];
d.data.push(gb[j]);
}
console.log(grafikHarian);
for (const kgh in grafikHarian) {
const gh = grafikHarian[kgh];
// console.log(kgh,gh);
d2.data.push(gh[j]);
}
dataGrafikBulanan.push(d);
dataGrafikHarian.push(d2);
}
// console.log(dataGrafikHarian);
var ctx = document.getElementById('grafik-bulanan').getContext('2d');
new Chart(ctx, {
type: 'line',
data: {
labels: {!! json_encode($labelBulanan) !!},
datasets: dataGrafikBulanan,
// labels: ['01', '02', '03', '04', '05', '06', '07', '08', '09']
},
options: {
maintainAspectRatio: false,
legend: {
display: false
},
responsive: true,
tooltips: {
backgroundColor: '#f5f5f5',
titleFontColor: '#333',
bodyFontColor: '#666',
bodySpacing: 4,
xPadding: 12,
mode: 'nearest',
intersect: 0,
position: 'nearest'
},
scales: {
yAxes: [{
barPercentage: 1.6,
gridLines: {
drawBorder: false,
color: 'rgba(29,140,248,0.0)',
zeroLineColor: 'transparent'
},
ticks: {
padding: 20,
fontColor: '#9a9a9a'
}
}],
xAxes: [{
barPercentage: 1.6,
gridLines: {
drawBorder: false,
color: 'rgba(225,78,202,0.1)',
zeroLineColor: 'transparent'
},
ticks: {
padding: 20,
fontColor: '#9a9a9a'
}
}]
}
}
});
var ctx2 = document.getElementById('grafik-harian').getContext('2d');
new Chart(ctx2, {
type: 'line',
data: {
labels: {!! json_encode($labelHarian) !!},
datasets: dataGrafikHarian,
},
options: {
maintainAspectRatio: false,
legend: {
display: false
},
responsive: true,
tooltips: {
backgroundColor: '#f5f5f5',
titleFontColor: '#333',
bodyFontColor: '#666',
bodySpacing: 4,
xPadding: 12,
mode: 'nearest',
intersect: 0,
position: 'nearest'
},
scales: {
yAxes: [{
barPercentage: 1.6,
gridLines: {
drawBorder: false,
color: 'rgba(29,140,248,0.0)',
zeroLineColor: 'transparent'
},
ticks: {
padding: 20,
fontColor: '#9a9a9a'
}
}],
xAxes: [{
barPercentage: 1.6,
gridLines: {
drawBorder: false,
color: 'rgba(225,78,202,0.1)',
zeroLineColor: 'transparent'
},
ticks: {
padding: 20,
fontColor: '#9a9a9a'
}
}]
}
}
});
</script>
@endpush
@section('content')
<div class="grid gap-6 grid-cols-1 md:grid-cols-3 mb-6">
<div class="card">
<div class="card-content">
<div class="flex items-center justify-between">
<div class="widget-label">
<h3>
Siswa
</h3>
<h1>
{{ $jumlahSiswa }}
</h1>
</div>
<span class="icon widget-icon text-green-500"><i class="mdi mdi-account-multiple mdi-48px"></i></span>
</div>
</div>
</div>
<div class="card">
<div class="card-content">
<div class="flex items-center justify-between">
<div class="widget-label">
<h3>
Penerimaan Hari Ini
</h3>
<h1>
Rp {{ number_format($pembayaranHariIni) }}
</h1>
</div>
<span class="icon widget-icon text-blue-500"><i class="mdi mdi-cart-outline mdi-48px"></i></span>
</div>
</div>
</div>
<div class="card">
<div class="card-content">
<div class="flex items-center justify-between">
<div class="widget-label">
<h3>
Belum Bayar
</h3>
<h1>
{{ $belumBayarBulanIni }}
</h1>
</div>
<span class="icon widget-icon text-red-500"><i class="mdi mdi-finance mdi-48px"></i></span>
</div>
</div>
</div>
</div>
<div class="card has-table mb-6">
<header class="card-header">
<p class="card-header-title">
<span class="icon"><i class="mdi mdi-account-multiple"></i></span>
Progres Pembayaran Siswa
</p>
<a href="#" class="card-header-icon">
<span class="icon"><i class="mdi mdi-reload"></i></span>
</a>
</header>
<div class="card-content">
<table>
<thead>
<tr>
<th></th>
<th>Kelas</th>
<th>L</th>
<th>P</th>
<th>Jumlah Siswa</th>
<th>Non Aktif</th>
<th>Tagihan</th>
<th>Terbayar</th>
<th>Kurang</th>
</tr>
</thead>
<tbody>
@foreach ($kelases as $item)
<tr>
<td>
{{ $loop->iteration }}
</td>
<td>
{{ $item->jenjang->nama_jenjang . ' / ' . $item->nama_kelas }}
</td>
<td>
{{ $item->male_siswas }}
</td>
<td>
{{ $item->female_siswas }}
</td>
<td>
{{ $item->siswas_count }}
</td>
<td>
{{ $item->siswas_tidak_aktif }}
</td>
<td>
@php
$totalTagihan = $item->jenis_pembayarans->sum('jenis_pembayaran_siswas_sum_nominal');
foreach ($item->jenis_pembayarans as $jenis_pembayaran) {
foreach ($jenis_pembayaran->jenis_pembayaran_siswas as $jenis_pembayaran_siswa) {
$totalTagihan -= ($jenis_pembayaran_siswa->nominal * $jenis_pembayaran_siswa->tagihans->filter(function($t)use($item){
return $t->siswa->kelas_id == $item->id;
})->count()) + $jenis_pembayaran_siswa->tagihans->filter(function($t)use($item){
return $t->siswa->kelas_id == $item->id;
})->sum('total_tagihan');
}
}
@endphp
{{number_format($totalTagihan,0,',','.')}}
</td>
<td>
{{ number_format($item->pembayarans_sum_total_pembayaran,0,',','.') }}
</td>
<td>
{{ number_format($item->jenis_pembayarans->sum('jenis_pembayaran_siswas_sum_nominal') - $item->pembayarans_sum_total_pembayaran,0,',','.') }}
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-2 mb-6">
<div>
<div class="card ">
<header class="card-header">
<p class="card-header-title">
<span class="icon"><i class="mdi mdi-finance"></i></span>
Grafik Bulanan
</p>
<a href="#" class="card-header-icon">
<span class="icon"><i class="mdi mdi-reload"></i></span>
</a>
</header>
<div class="card-content">
<div class="chart-area">
<div class="h-full">
<div class="chartjs-size-monitor">
<div class="chartjs-size-monitor-expand">
<div></div>
</div>
<div class="chartjs-size-monitor-shrink">
<div></div>
</div>
</div>
<canvas id="grafik-bulanan" width="2992" height="1000" class="chartjs-render-monitor block"
style="height: 400px; width: 1197px;"></canvas>
</div>
</div>
</div>
</div>
</div>
<div>
<div class="card ">
<header class="card-header">
<p class="card-header-title">
<span class="icon"><i class="mdi mdi-finance"></i></span>
Grafik Harian
</p>
<a href="#" class="card-header-icon">
<span class="icon"><i class="mdi mdi-reload"></i></span>
</a>
</header>
<div class="card-content">
<div class="chart-area">
<div class="h-full">
<div class="chartjs-size-monitor">
<div class="chartjs-size-monitor-expand">
<div></div>
</div>
<div class="chartjs-size-monitor-shrink">
<div></div>
</div>
</div>
<canvas id="grafik-harian" width="2992" height="1000" class="chartjs-render-monitor block"
style="height: 400px; width: 1197px;"></canvas>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card has-table mb-6">
<header class="card-header">
<p class="card-header-title">
<span class="icon"><i class="mdi mdi-account-multiple"></i></span>
Rekapitulasi Transaksi
</p>
<a href="#" class="card-header-icon">
<span class="icon"><i class="mdi mdi-reload"></i></span>
</a>
</header>
<div class="card-content">
<table>
<thead>
<tr>
<th>#</th>
<th>Jenis Pembayaran</th>
<th>Kelas</th>
<th>Bulanan</th>
<th>Record</th>
<th>Tanggugan</th>
<th>Terbayar</th>
<th>Kurang</th>
<th>Progres</th>
<th>Persen</th>
</tr>
</thead>
<tbody>
@foreach ($kelases as $kelas)
<tr>
<td>
<b>#</b>
</td>
<td colspan="9">
<b>{{ $kelas->jenjang->nama_jenjang }}/{{ $kelas->nama_kelas }}</b>
</td>
{{-- @php
$pembayarans = $kelas->pembayarans->where('kelas_id',$kelas->id)->pluck('total','jenis_pembayaran_id')->toArray();
@endphp --}}
</tr>
@foreach ($kelas->jenis_pembayarans as $item)
<tr>
<td>
</td>
<td>
{{ $item->kode_jenis_pembayaran }}/{{ $item->nama_jenis_pembayaran }}
</td>
<td>
{{ $kelas->nama_kelas }}
</td>
<td>
{{ $item->sifat_pembayaran == 'bulanan' ? 'YA' : 'TIDAK' }}
</td>
<td>
{{ $kelas->pembayarans->where('kelas_id', $kelas->id)->where('jenis_pembayaran_id', $item->id)->count() }}
</td>
<td>
@php
$totalTagihan = $item->jenis_pembayaran_siswas_sum_nominal;
foreach ($item->jenis_pembayaran_siswas as $jenis_pembayaran_siswa) {
$totalTagihan -= ($jenis_pembayaran_siswa->nominal * $jenis_pembayaran_siswa->tagihans->filter(function($t)use($kelas){
return $t->siswa->kelas_id == $kelas->id;
})->count()) + $jenis_pembayaran_siswa->tagihans->filter(function($t)use($kelas){
return $t->siswa->kelas_id == $kelas->id;
})->sum('total_tagihan');
}
@endphp
{{ number_format($totalTagihan,0,',','.') }}
</td>
<td>
@php
$bayar = 0;
$pembayarans = $kelas->pembayarans
->where('kelas_id', $kelas->id)
->filter(function($w)use($item){
return $w->detail_pembayarans->filter(function($w)use($item){
return $w->tagihan->jenis_pembayaran_siswa->jenis_pembayaran_id == $item->id;
})->count();
});
$bayar = $pembayarans->sum(function($w){
return $w->detail_pembayarans->sum('nominal_pembayaran');
});
$setoran = 0;
foreach ($pembayarans as $pembayaran) {
if (count($pembayaran->setor_details) > 0) {
$setoran += $pembayaran->total_pembayaran;
}
}
@endphp
{{ number_format($bayar,0,',','.') }}
</td>
<td>
{{ number_format($item->jenis_pembayaran_siswas_sum_nominal - $bayar,0,',','.') }}
</td>
<td>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-blue-600 h-2.5 rounded-full"
style="width: {{ $bayar > 0 ? min((($bayar / $item->jenis_pembayaran_siswas_sum_nominal) * 100),100) : 0 }}%">
</div>
</div>
</td>
<td>
{{ $bayar > 0 ? number_format((($bayar / $item->jenis_pembayaran_siswas_sum_nominal) * 100),0,',','.') : 0 }} %
</td>
</tr>
@endforeach
@endforeach
</tbody>
</table>
</div>
</div>
{{-- <div class="card mb-6">
<header class="card-header">
<p class="card-header-title">
<span class="icon"><i class="mdi mdi-finance"></i></span>
Penerimaan Minggu Ini
</p>
<a href="#" class="card-header-icon">
<span class="icon"><i class="mdi mdi-reload"></i></span>
</a>
</header>
<div class="card-content">
<div class="chart-area">
<div class="h-full">
<div class="chartjs-size-monitor">
<div class="chartjs-size-monitor-expand">
<div></div>
</div>
<div class="chartjs-size-monitor-shrink">
<div></div>
</div>
</div>
<canvas id="big-line-chart" width="2992" height="1000" class="chartjs-render-monitor block"
style="height: 400px; width: 1197px;"></canvas>
</div>
</div>
</div>
</div> --}}
@endsection
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]