Advertisement
martinms

Opdpptk_renja.php

May 23rd, 2024
566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 16.55 KB | None | 0 0
  1. <?php
  2.  
  3. class Opdpptk_renja extends Controller
  4. {
  5.     private $renja;
  6.     public function __construct()
  7.     {
  8.         $this->renja = $this->model('Renja_model');
  9.         $this->access('opdpptk');
  10.     }
  11.     public function index()
  12.     {
  13.         abort('maintenance');
  14.         $data['capaian'] = json_decode($this->renja->capaianList($_SESSION['periode']['idPeriode'], 1), true)['data'];
  15.         $data['title'] = "Evaluasi RENJA";
  16.         $this->view('opdpptk/renja/index', $data);
  17.     }
  18.  
  19.     public function capaian($case = null, ...$params)
  20.     {
  21.         switch ($case) {
  22.             case "list":
  23.                 $hakUser = $_SESSION['userLogin']['hakUser'];
  24.                 if ($hakUser[0] === null) {
  25.                     $decodeResponse['success'] = false;
  26.                     $decodeResponse['message'] = '';
  27.                     $decodeResponse['data'] = [];
  28.                     echo json_encode($decodeResponse);
  29.                     return;
  30.                 }
  31.  
  32.                 $hakUser = $_SESSION['userLogin']['hakUser'];
  33.                 $hakInput = array_map(function ($item) {
  34.                     return (int) $item['idSubKegiatan'];
  35.                 }, $hakUser);
  36.  
  37.                 $response = $this->renja->capaianList($_SESSION['periode']['idPeriode']);
  38.                 $decodeResponse = json_decode($response, true);
  39.                 if (!$decodeResponse['success']) {
  40.                     echo $response;
  41.                 } else {
  42.                     $arraySelection = [];
  43.                     foreach ($decodeResponse['data'] as $item) {
  44.                         if (!empty($item['dataUraian'])) {
  45.                             $arraySelection[] = $item;
  46.                         }
  47.                     }
  48.                     $aksesSelection = [];
  49.                     foreach ($hakInput as $id) {
  50.                         foreach ($arraySelection as $item) {
  51.                             if ($item['idSubKegiatan'] === $id) {
  52.                                 $aksesSelection[] = $item;
  53.                             }
  54.                         }
  55.                     }
  56.                     $decodeResponse['data'] = $aksesSelection;
  57.                     echo json_encode($decodeResponse);
  58.                 }
  59.                 break;
  60.             case "update":
  61.                 $data = [
  62.                     "idUraian" => (int) $_POST['id'],
  63.                     "idPeriode" => (int) $_SESSION['periode']['idPeriode'],
  64.                     "dataCapaian" => [
  65.                         [
  66.                             "triwulan" => 1,
  67.                             "capaian" => (int) $_POST['triwulan1'],
  68.                         ],
  69.                         [
  70.                             "triwulan" => 2,
  71.                             "capaian" => (int) $_POST['triwulan2'],
  72.                         ],
  73.                         [
  74.                             "triwulan" => 3,
  75.                             "capaian" => (int) $_POST['triwulan3'],
  76.                         ],
  77.                         [
  78.                             "triwulan" => 4,
  79.                             "capaian" => (int) $_POST['triwulan4'],
  80.                         ],
  81.                     ]
  82.                 ];
  83.                 $result = json_encode($data);
  84.                 $response = $this->renja->capaianAdd($result);
  85.                 echo $response;
  86.                 break;
  87.             default:
  88.                 $data['title'] = "Capaian Kinerja";
  89.                 $this->view('opdpptk/renja/capaian', $data);
  90.                 break;
  91.         }
  92.     }
  93.  
  94.     public function anggaran($case = null, ...$params)
  95.     {
  96.         switch ($case) {
  97.             case "list":
  98.                 $response = $this->renja->anggaranList($_SESSION['periode']['idPeriode']);
  99.                 $decodeResponse = json_decode($response, true);
  100.                 $hakUser = $_SESSION['userLogin']['hakUser'];
  101.                 $hakInput = array_map(function ($item) {
  102.                     return (int) $item['idSubKegiatan'];
  103.                 }, $hakUser);
  104.  
  105.                 if ($decodeResponse['success']) {
  106.                     $dataAnggaran = $decodeResponse['data'];
  107.                     $dataAnggaran = filterSubKegiatanAnggaran($dataAnggaran, $hakInput);
  108.                     $decodeResponse['data'] = $dataAnggaran;
  109.                     echo json_encode($decodeResponse);
  110.                 } else {
  111.                     echo $response;
  112.                 }
  113.                 break;
  114.             case "update":
  115.                 $post = json_decode($_POST['data'], true);
  116.                 $result = [
  117.                     "idSubKegiatan" => $post['sub'],
  118.                     "idPeriode" => (int) $_SESSION['periode']['idPeriode'],
  119.                     "dataPagu" => [
  120.                         [
  121.                             "triwulan" => 1,
  122.                             "rupiah" => $post['tw1']
  123.                         ],
  124.                         [
  125.                             "triwulan" => 2,
  126.                             "rupiah" => $post['tw2']
  127.                         ],
  128.                         [
  129.                             "triwulan" => 3,
  130.                             "rupiah" => $post['tw3']
  131.                         ],
  132.                         [
  133.                             "triwulan" => 4,
  134.                             "rupiah" => $post['tw4']
  135.                         ]
  136.                     ]
  137.                 ];
  138.                 // echo json_encode($result);
  139.                 $response = $this->renja->anggaranAdd(json_encode($result));
  140.                 echo $response;
  141.                 break;
  142.             case "test":
  143.                 echo json_encode($_SESSION['periode']);
  144.                 break;
  145.             default:
  146.                 $data['title'] = "Realiasasi Anggaran";
  147.                 $this->view('opdpptk/renja/anggaran', $data);
  148.                 break;
  149.         }
  150.     }
  151.     public function outcome($case = null, ...$params)
  152.     {
  153.         switch ($case) {
  154.             case "list":
  155.                 $response =  $this->renja->outcomeList($_SESSION['periode']['tahunPeriode'], $_SESSION['userLogin']['odpId']);
  156.                 $decodeResponse = json_decode($response, true);
  157.                 $hakUser = $_SESSION['userLogin']['hakUser'];
  158.                 $hakInput = array_map(function ($item) {
  159.                     return (int) $item['idSubKegiatan'];
  160.                 }, $hakUser);
  161.  
  162.                 if ($decodeResponse['success']) {
  163.                     $dataAnggaran = $decodeResponse['data'];
  164.                     $dataAnggaran = filterSubKegiatanAnggaran($dataAnggaran, $hakInput);
  165.                     $decodeResponse['data'] = $dataAnggaran;
  166.                     echo json_encode($decodeResponse);
  167.                 } else {
  168.                     echo $response;
  169.                 }
  170.                 break;
  171.             case "update":
  172.                 $data = [
  173.                     "idIndikator" => (int) $_POST['indikator'],
  174.                     "idPeriode" => $_SESSION['periode']['idPeriode'],
  175.                     "realisasiOutcome" => (int) $_POST['realisasi']
  176.                 ];
  177.                 $result = json_encode($data);
  178.                 $response = $this->renja->outcomeAdd($result);
  179.                 echo $response;
  180.                 break;
  181.             default:
  182.                 $data['title'] = "Outcome Output";
  183.                 $this->view('opdpptk/renja/outcome', $data);
  184.                 break;
  185.         }
  186.     }
  187.     public function faktor($case = null, ...$params)
  188.     {
  189.         switch ($case) {
  190.             case 'list':
  191.                 echo $this->renja->faktorList($_SESSION['periode']['tahunPeriode'], $_SESSION['userLogin']['odpId']);
  192.                 break;
  193.             case 'add':
  194.                 $data = [
  195.                     "idIndikator" => (int) $_POST['idindikator'],
  196.                     "idPeriode" => (int) $_SESSION['periode']['idPeriode'],
  197.                     "faktorPendorong" => $_POST['pendorong'],
  198.                     "faktorPenghambat" => $_POST['penghambat'],
  199.                     "tindakLanjut" => $_POST['tindaklanjut']
  200.                 ];
  201.                 $result = json_encode($data);
  202.                 $response = $this->renja->faktorAdd($result);
  203.                 echo $response;
  204.                 break;
  205.             default:
  206.                 $data['title'] = "Faktor Penghambat dan Pendorong";
  207.                 $this->view('opdpptk/renja/faktor', $data);
  208.                 break;
  209.         }
  210.     }
  211.  
  212.     public function finalisasi($case = null, ...$params)
  213.     {
  214.         switch ($case) {
  215.             case 'list':
  216.                 break;
  217.             default:
  218.                 $data['title'] = "Finalisasi";
  219.                 $this->view('opdpptk/renja/finalisasi', $data);
  220.                 break;
  221.         }
  222.     }
  223.  
  224.     public function periode()
  225.     {
  226.         echo json_encode($_SESSION['periode']);
  227.     }
  228.  
  229.     public function status($case = null, $js = null)
  230.     {
  231.         // $response =  $this->renja->faktorList($_SESSION['periode']['tahunPeriode'], $_SESSION['userLogin']['odpId']);
  232.         // $status = json_decode($response, true);
  233.         $hakUser = $_SESSION['userLogin']['hakUser'];
  234.         $hakInput = array_map(function ($item) {
  235.             return (int) $item['idSubKegiatan'];
  236.         }, $hakUser);
  237.  
  238.         // die;
  239.         // $anggaran = true;
  240.         $response = $this->renja->faktorList($_SESSION['periode']['tahunPeriode'], $_SESSION['userLogin']['odpId']);
  241.         $result = json_decode($response, true);
  242.         $hasil = $result['data'];
  243.  
  244.         if (!$result['success']) {
  245.             $capaian = false;
  246.             $anggaran = false;
  247.             $faktor = false;
  248.             $outcome = false;
  249.         } else {
  250.             $dataAnggaran = filterSubKegiatanAnggaran($hasil, $hakInput);
  251.             $hasil = $dataAnggaran;
  252.  
  253.             $capaian = $this->_capaian($hasil);
  254.             $anggaran = $this->_anggaran($hasil);
  255.             $outcome = $this->_outcome($hasil);
  256.             $faktor = $this->_faktor($hasil);
  257.         }
  258.         while ($js === null) {
  259.             if (!$result['success']) {
  260.                 cekLogin($result['data']);
  261.             }
  262.         }
  263.         switch ($case) {
  264.             case 'all':
  265.                 if ($js !== null) {
  266.                     $data = [
  267.                         'capaian' => $capaian,
  268.                         'anggaran' => $anggaran,
  269.                         'outcome' => $outcome,
  270.                         'faktor' => $faktor,
  271.                         'response' => json_decode($response, true)
  272.                     ];
  273.                     echo json_encode($data);
  274.                 } else {
  275.                     $data = [
  276.                         'capaian' => $capaian,
  277.                         'anggaran' => $anggaran,
  278.                         'outcome' => $outcome,
  279.                         'faktor' => $faktor,
  280.                     ];
  281.  
  282.                     return $data;
  283.                 }
  284.                 break;
  285.             default:
  286.                 // $total = (int) $capaian + (int) $anggaran + (int) $outcome + (int) $faktor;
  287.                 // echo json_encode(($total / 4) * 100);
  288.                 break;
  289.         }
  290.     }
  291.  
  292.     private function _outcome($data)
  293.     {
  294.         foreach ($data as $tujuan) {
  295.             foreach ($tujuan['indikatorData'] as $indikator) {
  296.                 if ($indikator['persenRealisasiOutcome'] === 0) {
  297.                     return false;
  298.                 }
  299.             }
  300.             foreach ($tujuan['dataSasaran'] as $sasaran) {
  301.                 foreach ($sasaran['indikatorData'] as $indikatorS) {
  302.                     if ($indikatorS['persenRealisasiOutcome'] === 0) {
  303.                         return false;
  304.                     }
  305.                 }
  306.                 foreach ($sasaran['dataProgram'] as $program) {
  307.                     foreach ($program['indikatorData'] as $indikatorP) {
  308.                         if ($indikatorP['persenRealisasiOutcome'] === 0) {
  309.                             return false;
  310.                         }
  311.                     }
  312.                     foreach ($program['dataKegiatan'] as $kegiatan) {
  313.                         foreach ($kegiatan['indikatorData'] as $indikatorK) {
  314.                             if ($indikatorK['persenRealisasiOutcome'] === 0) {
  315.                                 return false;
  316.                             }
  317.                         }
  318.                         foreach ($kegiatan['dataSubKegiatan'] as $sub) {
  319.                             foreach ($sub['indikatorData'] as $indikatorSk) {
  320.                                 if (isset($indikatorSk['persenRealisasiOutcome']) && $indikatorSk['persenRealisasiOutcome'] === 0) {
  321.                                     return false;
  322.                                 }
  323.                             }
  324.                         }
  325.                     }
  326.                 }
  327.             }
  328.         }
  329.         return true;
  330.     }
  331.  
  332.     private function _capaian($data)
  333.     {
  334.         foreach ($data as $tujuan) {
  335.             if (isset($tujuan['dataSasaran'])) {
  336.                 foreach ($tujuan['dataSasaran'] as $sasaran) {
  337.                     if (isset($sasaran['dataProgram'])) {
  338.                         foreach ($sasaran['dataProgram'] as $program) {
  339.                             if (isset($program['dataKegiatan'])) {
  340.                                 foreach ($program['dataKegiatan'] as $kegiatan) {
  341.                                     if (isset($kegiatan['dataSubKegiatan'])) {
  342.                                         foreach ($kegiatan['dataSubKegiatan'] as $sub) {
  343.                                             if ($sub['targetDanCapaian']['TotalKinerja'] === 0) {
  344.                                                 return false;
  345.                                             }
  346.                                         }
  347.                                     }
  348.                                 }
  349.                             }
  350.                         }
  351.                     }
  352.                 }
  353.             }
  354.         }
  355.         return true;
  356.     }
  357.  
  358.     private function _anggaran($data)
  359.     {
  360.         foreach ($data as $tujuan) {
  361.             if (isset($tujuan['dataSasaran'])) {
  362.                 foreach ($tujuan['dataSasaran'] as $sasaran) {
  363.                     if (isset($sasaran['dataProgram'])) {
  364.                         foreach ($sasaran['dataProgram'] as $program) {
  365.                             if (isset($program['dataKegiatan'])) {
  366.                                 foreach ($program['dataKegiatan'] as $kegiatan) {
  367.                                     if (isset($kegiatan['dataSubKegiatan'])) {
  368.                                         foreach ($kegiatan['dataSubKegiatan'] as $sub) {
  369.                                             if ($sub['targetDanCapaian']['TotalRealisasi'] === 0) {
  370.                                                 return false;
  371.                                             }
  372.                                         }
  373.                                     }
  374.                                 }
  375.                             }
  376.                         }
  377.                     }
  378.                 }
  379.             }
  380.         }
  381.         return true;
  382.     }
  383.  
  384.     private function _faktor($data)
  385.     {
  386.         foreach ($data as $tujuan) {
  387.             if (isset($tujuan['dataSasaran'])) {
  388.                 foreach ($tujuan['dataSasaran'] as $sasaran) {
  389.                     if (isset($sasaran['dataProgram'])) {
  390.                         foreach ($sasaran['dataProgram'] as $program) {
  391.                             if (isset($program['dataKegiatan'])) {
  392.                                 foreach ($program['dataKegiatan'] as $kegiatan) {
  393.                                     if (isset($kegiatan['dataSubKegiatan'])) {
  394.                                         foreach ($kegiatan['dataSubKegiatan'] as $sub) {
  395.                                             foreach ($sub['indikatorData'] as $item) {
  396.                                                 if (isset($item['faktorPendorong']) && $item['faktorPendorong'] === '') {
  397.                                                     return false;
  398.                                                 } else if (isset($item['faktorPenghambat']) && $item['faktorPenghambat'] === '') {
  399.                                                     return false;
  400.                                                 } else if (isset($item['tindakLanjut']) && $item['tindakLanjut'] === '') {
  401.                                                     return false;
  402.                                                 }
  403.                                             }
  404.                                         }
  405.                                     }
  406.                                 }
  407.                             }
  408.                         }
  409.                     }
  410.                 }
  411.             }
  412.         }
  413.         return true;
  414.     }
  415.  
  416. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement