templates/backend/dashboard/dash_progres_pemilihan_penyedia.html.twig line 1

Open in your IDE?
  1. {% extends "backend/base/base.html.twig" %}
  2. {% block body %}
  3.     <div class="row">
  4.         {{ 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}) }}
  5.         <div class="row">
  6.             <div class="col-6 col-xl-6">
  7.                 <div class="card w-100 rounded-4">
  8.                     <div class="card-body">
  9.                         <div class="d-flex flex-column gap-3">
  10.                             <div class="card-header p-3 bg-transparent">
  11.                                 <div class="d-flex align-items-center justify-content-between">
  12.                                     <div class="">
  13.                                         <h5 class="mb-0">Progres Pemilihan Penyedia</h5>
  14.                                     </div>
  15.                                 </div>
  16.                             </div>
  17.                             <div class="position-relative">
  18.                                 <div class="piechart-legend">
  19.                                     <h2 class="mb-1">{{res.tahap_dalam_proses[0].count + res.tahap_selesai[0].count}}</h2>
  20.                                     <h6 class="mb-0">Total</h6>
  21.                                 </div>
  22.                                 <div id="container-proses"></div>
  23.                             </div>
  24.                             {% set total = res.tahap_dalam_proses[0].count + res.tahap_selesai[0].count %}
  25.                             {% set proses_percent = total > 0 ? (res.tahap_dalam_proses[0].count / total * 100)|round(2) : 0 %}
  26.                             {% set selesai_percent = total > 0 ? (res.tahap_selesai[0].count / total * 100)|round(2) : 0 %}
  27.                             <div class="d-flex flex-column gap-3">
  28.                                 <div>
  29.                                     <div class="d-flex align-items-center justify-content-between">
  30.                                         <p class="mb-0 d-flex align-items-center gap-2 w-25">
  31.                                             <span class="material-icons-outlined fs-6 text-primary">fiber_manual_record</span>Dalam Proses
  32.                                         </p>
  33.                                         <div>
  34.                                             <p class="mb-0">{{ res.tahap_dalam_proses[0].count}}
  35.                                                 ({{ proses_percent }}%)</p>
  36.                                         </div>
  37.                                     </div>
  38.                                     <div class="progress" style="height: 6px;">
  39.                                         <div class="progress-bar bg-primary" role="progressbar" style="width: {{ proses_percent }}%;" aria-valuenow="{{ proses_percent }}" aria-valuemin="0" aria-valuemax="100"></div>
  40.                                     </div>
  41.                                 </div>
  42.                                 <div>
  43.                                     <div class="d-flex align-items-center justify-content-between">
  44.                                         <p class="mb-0 d-flex align-items-center gap-2 w-25">
  45.                                             <span class="material-icons-outlined fs-6 text-danger">fiber_manual_record</span>Selesai
  46.                                         </p>
  47.                                         <div>
  48.                                             <p class="mb-0">{{ res.tahap_selesai[0].count }}
  49.                                                 ({{ selesai_percent }}%)</p>
  50.                                         </div>
  51.                                     </div>
  52.                                     <div class="progress" style="height: 6px;">
  53.                                         <div class="progress-bar bg-danger" role="progressbar" style="width: {{ selesai_percent }}%;" aria-valuenow="{{selesai_percent }}" aria-valuemin="0" aria-valuemax="100"></div>
  54.                                     </div>
  55.                                 </div>
  56.                             </div>
  57.                         </div>
  58.                     </div>
  59.                 </div>
  60.             </div>
  61.             <div class="col-12 col-lg-6 col-xxl-4 d-flex">
  62.                 <div class="card w-100 rounded-4">
  63.                     <div class="card-body">
  64.                         <div class="card-header p-3 bg-transparent">
  65.                             <div class="d-flex align-items-center justify-content-between">
  66.                                 <div class="">
  67.                                     <h5 class="mb-0">Waktu Proses</h5>
  68.                                 </div>
  69.                             </div>
  70.                         </div>
  71.                         <ul class="list-group list-group-flush">
  72.                             <li class="list-group-item px-0 bg-transparent">
  73.                                 <div class="d-flex align-items-center gap-3">
  74.                                     <div class="wh-42 d-flex align-items-center justify-content-center rounded-3 bg-grd-primary">
  75.                                         <span class="material-icons-outlined text-white">calendar_today</span>
  76.                                     </div>
  77.                                     <div class="flex-grow-1">
  78.                                         <h6 class="mb-0">Tahap Pembuatan Paket</h6>
  79.                                     </div>
  80.                                     <div class="d-flex align-items-center gap-3">
  81.                                         <p class="mb-0">{{ res.tahap_pembuatan_paket[0].count  }}</p>
  82.                                         {# <p class="mb-0 fw-bold text-success">28%</p> #}
  83.                                     </div>
  84.                                 </div>
  85.                             </li>
  86.                             <li class="list-group-item px-0 bg-transparent">
  87.                                 <div class="d-flex align-items-center gap-3">
  88.                                     <div class="wh-42 d-flex align-items-center justify-content-center rounded-3 bg-grd-success">
  89.                                         <span class="material-icons-outlined text-white">calendar_today</span>
  90.                                     </div>
  91.                                     <div class="flex-grow-1">
  92.                                         <h6 class="mb-0">Penyusunan HPS</h6>
  93.                                     </div>
  94.                                     <div class="d-flex align-items-center gap-3">
  95.                                         <p class="mb-0">{{ res.tahap_penyusunan_hps[0].count  }}</p>
  96.                                         {# <p class="mb-0 fw-bold text-danger">15%</p> #}
  97.                                     </div>
  98.                                 </div>
  99.                             </li>
  100.                             <li class="list-group-item px-0 bg-transparent">
  101.                                 <div class="d-flex align-items-center gap-3">
  102.                                     <div class="wh-42 d-flex align-items-center justify-content-center rounded-3 bg-grd-branding">
  103.                                         <span class="material-icons-outlined text-white">calendar_today</span>
  104.                                     </div>
  105.                                     <div class="flex-grow-1">
  106.                                         <h6 class="mb-0">Pemilihan Penyedia</h6>
  107.                                     </div>
  108.                                     <div class="d-flex align-items-center gap-3">
  109.                                         <p class="mb-0">{{ res.tahap_pemilihan_penyedia[0].count  }}</p>
  110.                                         {# <p class="mb-0 fw-bold text-success">30.5%</p> #}
  111.                                     </div>
  112.                                 </div>
  113.                             </li>
  114.                         </ul>
  115.                     </div>
  116.                 </div>
  117.             </div>
  118.             
  119.             <div class="col-12 col-xxl-6 d-flex">
  120.                 <div class="card rounded-4 w-100">
  121.                     <div class="card-body">
  122.                     <div class="d-flex align-items-start justify-content-between mb-3">
  123.                         {# <div class="card-header p-3 bg-transparent">
  124.                             <div class="d-flex align-items-center justify-content-between">
  125.                                 <div class="">
  126.                                     <h5 class="mb-0">REKAPITULASI JUMLAH PAKET BERDASARKAN TAHAPAN, SUMBER DANA, DAN PLANT</h5>
  127.                                 </div>
  128.                             </div>
  129.                         </div> #}
  130.                     </div>
  131.                     <div class="table-responsive">
  132.                         {{ include('backend/laporan/_table1.html.twig', {result:result,group:'kategori_plant',page_name:'laporan'}) }}
  133.                     </div>
  134.                     </div>
  135.                 </div>
  136.             </div>
  137.             <div class="col-12 col-xxl-6 d-flex">
  138.                 <div class="card rounded-4 w-100">
  139.                     <div class="card-body">
  140.                     <div class="d-flex align-items-start justify-content-between mb-3">
  141.                         {# <div class="card-header p-3 bg-transparent">
  142.                             <div class="d-flex align-items-center justify-content-between">
  143.                                 <div class="">
  144.                                     <h5 class="mb-0">REKAPITULASI JUMLAH PAKET BERDASARKAN TAHAPAN, SUMBER DANA, DAN PLANT</h5>
  145.                                 </div>
  146.                             </div>
  147.                         </div> #}
  148.                     </div>
  149.                     <div class="table-responsive">
  150.                          {{ include('backend/laporan/_table2.html.twig', {result:result,group:'kategori_plant',page_name:'laporan'}) }}
  151.                     </div>
  152.                     </div>
  153.                 </div>
  154.             </div>
  155.         </div>
  156.     </div>
  157. <script>
  158.     $(document).ready(function () {
  159.          var options = {
  160.     series: [{{res.tahap_dalam_proses[0].count}}, {{res.tahap_selesai[0].count}}],  // angka sesuai urutan labels
  161.     chart: {
  162.         height: 290,
  163.         type: 'donut',
  164.     },
  165.     labels: ["Dalam Proses", "Selesai"],   // <<<<< nama kategori
  166.     legend: {
  167.         position: 'bottom',
  168.         show: false // karena legend kamu bikin manual
  169.     },
  170.     fill: {
  171.         type: 'gradient',
  172.         gradient: {
  173.             shade: 'dark',
  174.             gradientToColors: ['#17ad37', '#ee0979'], // warna gradasi
  175.             shadeIntensity: 1,
  176.             type: 'vertical',
  177.             opacityFrom: 1,
  178.             opacityTo: 1,
  179.         },
  180.     },
  181.     colors: ["#0d6efd", "#dc3545"], // <<<<< sesuaikan dengan warna ikon di bawah
  182.     dataLabels: {
  183.         enabled: false
  184.     },
  185.     plotOptions: {
  186.         pie: {
  187.             donut: {
  188.                 size: "85%"
  189.             }
  190.         }
  191.     },
  192.     responsive: [{
  193.         breakpoint: 480,
  194.         options: {
  195.             chart: {
  196.                 height: 270
  197.             },
  198.             legend: {
  199.                 position: 'bottom',
  200.                 show: false
  201.             }
  202.         }
  203.     }]
  204. };
  205. var chart = new ApexCharts(document.querySelector("#container-proses"), options);
  206. chart.render();
  207. });
  208. </script>{% endblock %}