BiawakBakar

Base konfig jenjang

Dec 9th, 2024
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.12 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Config;
  4.  
  5. use Jagr\Exceptions\AppException;
  6.  
  7. abstract class JenjangConfig
  8. {
  9.     /**
  10.      * Definisi Attribut Nilai
  11.      *
  12.      * @var array<int, array{
  13.      *      nama: string,
  14.      *      singkat: string,
  15.      *      type: int,
  16.      *      min?: int,
  17.      *      max?: int,
  18.      *      koma?: int,
  19.      *      value?: array<string, string>,
  20.      *      opsi?: array<string, string>,
  21.      *      formula?: string
  22.      *  }>
  23.      */
  24.     public array $atributNilai;
  25.  
  26.     /**
  27.      * Atribut nilai yang digunakan pada nilai lulusan
  28.      *
  29.      * @var array<int>
  30.      */
  31.     public array $nilaiLulusan;
  32.  
  33.     /**
  34.      * Definisi berkas yang diupload
  35.      *
  36.      * @var array<string, array{
  37.      *     label: string,
  38.      *     size: array<int>,
  39.      *     width: bool,
  40.      *     height: bool,
  41.      *     type: array<string>,
  42.      *     is_required: bool,
  43.      *     syarat: string,
  44.      *     domisili_dalam: string,
  45.      *     domisili_luar: string,
  46.      *     lulusan_dalam: string,
  47.      *     lulusan_luar: string,
  48.      * }>
  49.      */
  50.     public array $ajuanBerkas = [];
  51.  
  52.     /**
  53.      * Apakah jenjang ini menggunakan multiple kompetensi pilihan
  54.      */
  55.     public bool $multiKompetensi;
  56.  
  57.     /**
  58.      * Data unique no ujian
  59.      */
  60.     public int $noUjianUnique;
  61.  
  62.     /**
  63.      * Panjang karakter no ujian
  64.      */
  65.     public int $noUjianPanjang;
  66.  
  67.     /**
  68.      * Panjang karakter no ujian
  69.      */
  70.     public int|bool $noUjianDigit;
  71.  
  72.     /**
  73.      * Label no ujian
  74.      */
  75.     public string $noUjianLabel;
  76.  
  77.     /**
  78.      * Prefix pendataan siswa
  79.      */
  80.     public string $pendataanPrefix;
  81.  
  82.     /**
  83.      * No SKHUN boleh kembar
  84.      */
  85.     public bool $skhunKembar;
  86.  
  87.     /**
  88.      * Acuan data untuk siswa dalam wilayah tersedia
  89.      */
  90.     public bool $dataSiswa;
  91.  
  92.     /**
  93.      * Acuan data nilai untuk siswa dalam wilayah tersedia
  94.      */
  95.     public bool $dataSiswaNilai;
  96.  
  97.     /**
  98.      * Data siswa yang boleh diedit
  99.      */
  100.     public array $dataSiswaEdit;
  101.  
  102.     /**
  103.      * Kode sekolah untuk siswa luar kota
  104.      */
  105.     public int $sekolahIdDalam;
  106.  
  107.     /**
  108.      * Kode sekolah untuk siswa luar kota
  109.      */
  110.     public int $sekolahIdLuar;
  111.  
  112.     /**
  113.      * Batas bawah usia pendaftar
  114.      *
  115.      * @var int
  116.      */
  117.     public int $umurMin;
  118.  
  119.     /**
  120.      * Batas atas usia pendaftar
  121.      *
  122.      * @var int
  123.      */
  124.     public int $umurMaks;
  125.  
  126.     /**
  127.      * Acuan tanggal usia pendaftar
  128.      *
  129.      * @var string
  130.      */
  131.     public string $umurTglAcuan;
  132.  
  133.     /**
  134.      * Batasan Tahun Lulus pada pendataan: 2024
  135.      *
  136.      * @var int
  137.      */
  138.     public int $tahunLulusMin;
  139.  
  140.     public int $kLulusanLuar;
  141.  
  142.     /**
  143.      * siswa paket ?
  144.      *
  145.      * @var bool
  146.      */
  147.     public bool $dataSiswaPaket;
  148.  
  149.     /**
  150.      * siswa paket migrasi ?
  151.      *
  152.      * @var bool
  153.      */
  154.     public bool $dataSiswaPaketMigrasi;
  155.  
  156.     /**
  157.      * Acuan data siswa dalam wilayah tersedia tahun lainnya ?
  158.      */
  159.     public array $dataSiswaTahun;
  160.  
  161.     /**
  162.      * input data kelurahan dan kecamatan siswa?
  163.      *
  164.      * @var bool
  165.      */
  166.     public bool $siswaKelurahan;
  167.  
  168.     /**
  169.      * input data kelurahan dan kecamatan siswa pada pendataan dan read only di pendaftaran ?
  170.      *
  171.      * @var bool
  172.      */
  173.     public bool $siswaKelurahanData;
  174.  
  175.     /**
  176.      * Input data kelurahan dan kecamatan siswa berupa isian atau pilihan ?
  177.      *
  178.      * @var bool
  179.      */
  180.     public bool $siswaKelurahanIsian;
  181.  
  182.     /**
  183.      * input koordinat alamat rumah untuk kalkulasi radius dengan pilihan?
  184.      *
  185.      * @var bool
  186.      */
  187.     public bool $siswaRadius;
  188.  
  189.     /**
  190.      * Config Dukcapil
  191.      */
  192.     public bool $dukcapil;
  193.     public bool $dukcapilNoKK;
  194.     public bool $dukcapilSalinSiswa;
  195.  
  196.     public bool $kolomAkreditasi;
  197.  
  198.     public bool $daftarSekaliSemuaJalurTahap = false;
  199.  
  200.     /**
  201.      * Mode ajuan
  202.      *
  203.      * 1 - Bebas
  204.      * 2 - Belum Ajuan (boleh ajuan jika belum bernah ajuan atau ajuannya sudah ditolak)
  205.      * 3 - Belum Verifikasi (boleh ajuan jika belum ada yang diverifikasi)
  206.      * 4 - Belum Diterima (boleh ajuan jika siswa berstatus belum diterima)
  207.      * 5 - Belum ajuan dijalur manapun
  208.      * 6 - Hanya boleh jika belum pernah ajuan (atau sudah ditolak semua) atau belum diterima sementara
  209.      * 7 - Hanya boleh jika belum pernah ajuan dijalur manapun (atau sudah ditolak semua) atau belum diterima sementara
  210.      */
  211.     public int $ajuanBatasan = 1;
  212.  
  213.     /**
  214.      * Jumlah maksimal pendaftaran yang boleh dilakukan pada suatu jalur jenjang tahap
  215.      */
  216.     public int $daftarMaks;
  217.  
  218.     public int $tahapMaks = 1;
  219.  
  220.     /**
  221.      * Boleh otomatis pindah jalur jika sudah mendaftar sebelumnya dan tidak diterima
  222.      */
  223.     public bool $pindahJalurOtomatis = false;
  224.  
  225.     /**
  226.      * Konfigurasi jenjang yang sedang aktif
  227.      *
  228.      * @throws AppException
  229.      */
  230.     public static function current(): JenjangConfig
  231.     {
  232.         if (!app()->resolved(JenjangConfig::class)) {
  233.             throw new AppException('Jenjang belum disetup/aktifkan');
  234.         }
  235.  
  236.         return app(JenjangConfig::class);
  237.     }
  238. }
  239.  
Advertisement
Add Comment
Please, Sign In to add comment