{% extends "backend/base/base.html.twig" %}
{% block body %}
<div class="row">
{{ include('backend/dashboard/_filter.html.twig', {last_update: last_update, tipe_tahun: tipe_tahun, tahun: tahun, tanggal_awal: tanggal_awal, tanggal_akhir: tanggal_akhir, full:0,module:module}) }}
<div class="row">
<div class="col-6 col-xl-6">
<div class="card w-100 rounded-4">
<div class="card-body">
<div class="d-flex flex-column gap-3">
<div class="card-header p-3 bg-transparent">
<div class="d-flex align-items-center justify-content-between">
<div class="">
<h5 class="mb-0">Progres Pemilihan Penyedia</h5>
</div>
</div>
</div>
<div class="position-relative">
<div class="piechart-legend">
<h2 class="mb-1">{{res.tahap_dalam_proses[0].count + res.tahap_selesai[0].count}}</h2>
<h6 class="mb-0">Total</h6>
</div>
<div id="container-proses"></div>
</div>
{% set total = res.tahap_dalam_proses[0].count + res.tahap_selesai[0].count %}
{% set proses_percent = total > 0 ? (res.tahap_dalam_proses[0].count / total * 100)|round(2) : 0 %}
{% set selesai_percent = total > 0 ? (res.tahap_selesai[0].count / total * 100)|round(2) : 0 %}
<div class="d-flex flex-column gap-3">
<div>
<div class="d-flex align-items-center justify-content-between">
<p class="mb-0 d-flex align-items-center gap-2 w-25">
<span class="material-icons-outlined fs-6 text-primary">fiber_manual_record</span>Dalam Proses
</p>
<div>
<p class="mb-0">{{ res.tahap_dalam_proses[0].count}}
({{ proses_percent }}%)</p>
</div>
</div>
<div class="progress" style="height: 6px;">
<div class="progress-bar bg-primary" role="progressbar" style="width: {{ proses_percent }}%;" aria-valuenow="{{ proses_percent }}" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
<div>
<div class="d-flex align-items-center justify-content-between">
<p class="mb-0 d-flex align-items-center gap-2 w-25">
<span class="material-icons-outlined fs-6 text-danger">fiber_manual_record</span>Selesai
</p>
<div>
<p class="mb-0">{{ res.tahap_selesai[0].count }}
({{ selesai_percent }}%)</p>
</div>
</div>
<div class="progress" style="height: 6px;">
<div class="progress-bar bg-danger" role="progressbar" style="width: {{ selesai_percent }}%;" aria-valuenow="{{selesai_percent }}" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 col-lg-6 col-xxl-4 d-flex">
<div class="card w-100 rounded-4">
<div class="card-body">
<div class="card-header p-3 bg-transparent">
<div class="d-flex align-items-center justify-content-between">
<div class="">
<h5 class="mb-0">Waktu Proses</h5>
</div>
</div>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item px-0 bg-transparent">
<div class="d-flex align-items-center gap-3">
<div class="wh-42 d-flex align-items-center justify-content-center rounded-3 bg-grd-primary">
<span class="material-icons-outlined text-white">calendar_today</span>
</div>
<div class="flex-grow-1">
<h6 class="mb-0">Tahap Pembuatan Paket</h6>
</div>
<div class="d-flex align-items-center gap-3">
<p class="mb-0">{{ res.tahap_pembuatan_paket[0].count }}</p>
{# <p class="mb-0 fw-bold text-success">28%</p> #}
</div>
</div>
</li>
<li class="list-group-item px-0 bg-transparent">
<div class="d-flex align-items-center gap-3">
<div class="wh-42 d-flex align-items-center justify-content-center rounded-3 bg-grd-success">
<span class="material-icons-outlined text-white">calendar_today</span>
</div>
<div class="flex-grow-1">
<h6 class="mb-0">Penyusunan HPS</h6>
</div>
<div class="d-flex align-items-center gap-3">
<p class="mb-0">{{ res.tahap_penyusunan_hps[0].count }}</p>
{# <p class="mb-0 fw-bold text-danger">15%</p> #}
</div>
</div>
</li>
<li class="list-group-item px-0 bg-transparent">
<div class="d-flex align-items-center gap-3">
<div class="wh-42 d-flex align-items-center justify-content-center rounded-3 bg-grd-branding">
<span class="material-icons-outlined text-white">calendar_today</span>
</div>
<div class="flex-grow-1">
<h6 class="mb-0">Pemilihan Penyedia</h6>
</div>
<div class="d-flex align-items-center gap-3">
<p class="mb-0">{{ res.tahap_pemilihan_penyedia[0].count }}</p>
{# <p class="mb-0 fw-bold text-success">30.5%</p> #}
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="col-12 col-xxl-6 d-flex">
<div class="card rounded-4 w-100">
<div class="card-body">
<div class="d-flex align-items-start justify-content-between mb-3">
{# <div class="card-header p-3 bg-transparent">
<div class="d-flex align-items-center justify-content-between">
<div class="">
<h5 class="mb-0">REKAPITULASI JUMLAH PAKET BERDASARKAN TAHAPAN, SUMBER DANA, DAN PLANT</h5>
</div>
</div>
</div> #}
</div>
<div class="table-responsive">
{{ include('backend/laporan/_table1.html.twig', {result:result,group:'kategori_plant',page_name:'laporan'}) }}
</div>
</div>
</div>
</div>
<div class="col-12 col-xxl-6 d-flex">
<div class="card rounded-4 w-100">
<div class="card-body">
<div class="d-flex align-items-start justify-content-between mb-3">
{# <div class="card-header p-3 bg-transparent">
<div class="d-flex align-items-center justify-content-between">
<div class="">
<h5 class="mb-0">REKAPITULASI JUMLAH PAKET BERDASARKAN TAHAPAN, SUMBER DANA, DAN PLANT</h5>
</div>
</div>
</div> #}
</div>
<div class="table-responsive">
{{ include('backend/laporan/_table2.html.twig', {result:result,group:'kategori_plant',page_name:'laporan'}) }}
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
var options = {
series: [{{res.tahap_dalam_proses[0].count}}, {{res.tahap_selesai[0].count}}], // angka sesuai urutan labels
chart: {
height: 290,
type: 'donut',
},
labels: ["Dalam Proses", "Selesai"], // <<<<< nama kategori
legend: {
position: 'bottom',
show: false // karena legend kamu bikin manual
},
fill: {
type: 'gradient',
gradient: {
shade: 'dark',
gradientToColors: ['#17ad37', '#ee0979'], // warna gradasi
shadeIntensity: 1,
type: 'vertical',
opacityFrom: 1,
opacityTo: 1,
},
},
colors: ["#0d6efd", "#dc3545"], // <<<<< sesuaikan dengan warna ikon di bawah
dataLabels: {
enabled: false
},
plotOptions: {
pie: {
donut: {
size: "85%"
}
}
},
responsive: [{
breakpoint: 480,
options: {
chart: {
height: 270
},
legend: {
position: 'bottom',
show: false
}
}
}]
};
var chart = new ApexCharts(document.querySelector("#container-proses"), options);
chart.render();
});
</script>{% endblock %}