Advertisement
jamboljack

Post Data Diklat (2 Arah)

Jul 11th, 2023 (edited)
988
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 14.02 KB | None | 0 0
  1. public function verifikasi_data_jabatan($id)
  2. {
  3.     // Cek PNS ID BKN dulu
  4.     $dataDiklat = $this->db->get_where('v_diklat_pegawai', array('diklat_pegawai_id' => $id))->row();
  5.     $pnsOrangId = $dataDiklat->pns_id;
  6.     if ($pnsOrangId != '') {
  7.         $data = array(
  8.             'jabatan_pegawai_verif'  => 3,
  9.             'jabatan_pegawai_update' => date('Y-m-d H:i:s'),
  10.         );
  11.  
  12.         $this->db->where('jabatan_pegawai_id', $id);
  13.         $this->db->update('simpeg_jabatan_pegawai', $data);
  14.  
  15.         // Data Pegawai
  16.         $dataPegawai      = $this->db->get_where('v_jabatan_pegawai', array('jabatan_pegawai_id' => $id))->row();
  17.         $pegawai_id       = $dataPegawai->pegawai_id;
  18.         $status           = $dataPegawai->jabatan_pegawai_status;
  19.         $jabatan_id       = $dataPegawai->jabatan_id;
  20.         $opd_status_pakai = $dataPegawai->opd_status_pakai;
  21.         if ($status == 'Ya') {
  22.             if ($jabatan_id == 1) {
  23.                 if ($opd_status_pakai == 'B') {
  24.                     $jab_struktur               = $dataPegawai->jabatan_pegawai_jab_struktural;
  25.                     $tgl_tmt_struktur           = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  26.                     $tgl_tmt_eselon             = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  27.                     $jab_fung_tertentu_id       = '';
  28.                     $jab_fung_umum_id           = '';
  29.                     $pegawai_tmt_jab_fungsional = '';
  30.                 } else {
  31.                     $jab_struktur               = $dataPegawai->jabatan_pegawai_jab_struktural;
  32.                     $tgl_tmt_struktur           = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  33.                     $tgl_tmt_eselon             = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  34.                     $jab_fung_tertentu_id       = '';
  35.                     $jab_fung_umum_id           = '';
  36.                     $pegawai_tmt_jab_fungsional = '';
  37.                 }
  38.             } elseif ($jabatan_id == 2) {
  39.                 if ($opd_status_pakai == 'B') {
  40.                     $jab_struktur               = $dataPegawai->jabatan_pegawai_jab_struktural;
  41.                     $tgl_tmt_struktur           = '';
  42.                     $tgl_tmt_eselon             = '';
  43.                     $jab_fung_tertentu_id       = '';
  44.                     $jab_fung_umum_id           = '';
  45.                     $pegawai_tmt_jab_fungsional = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  46.                 } else {
  47.                     $jab_struktur               = '';
  48.                     $tgl_tmt_struktur           = '';
  49.                     $tgl_tmt_eselon             = '';
  50.                     $jab_fung_tertentu_id       = $dataPegawai->jab_fung_tertentu_id;
  51.                     $jab_fung_umum_id           = '';
  52.                     $pegawai_tmt_jab_fungsional = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  53.                 }
  54.             } else {
  55.                 if ($opd_status_pakai == 'B') {
  56.                     $jab_struktur               = $dataPegawai->jabatan_pegawai_jab_struktural;
  57.                     $tgl_tmt_struktur           = '';
  58.                     $tgl_tmt_eselon             = '';
  59.                     $jab_fung_tertentu_id       = '';
  60.                     $jab_fung_umum_id           = '';
  61.                     $pegawai_tmt_jab_fungsional = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  62.                 } else {
  63.                     $jab_struktur               = '';
  64.                     $tgl_tmt_struktur           = '';
  65.                     $tgl_tmt_eselon             = '';
  66.                     $jab_fung_tertentu_id       = '';
  67.                     $jab_fung_umum_id           = $dataPegawai->jab_fung_umum_id;
  68.                     $pegawai_tmt_jab_fungsional = $dataPegawai->jabatan_pegawai_tmt_jabatan;
  69.                 }
  70.             }
  71.  
  72.             if ($dataPegawai->jabatan_pegawai_tpp == 1) {
  73.                 $opd_id_tpp = $dataPegawai->opd_id;
  74.             } else {
  75.                 $opd_id_tpp = 0;
  76.             }
  77.  
  78.             if ($dataPegawai->sekolah_id == 0) {
  79.                 $unor_id = $dataPegawai->unor_id;
  80.             } else {
  81.                 $unor_id = $dataPegawai->unor_id_sekolah;
  82.             }
  83.  
  84.             $dataUpdate = array(
  85.                 'jabatan_id'                 => $jabatan_id,
  86.                 'unor_id'                    => $unor_id,
  87.                 'opd_id'                     => $dataPegawai->opd_id,
  88.                 'opd_id_tpp'                 => $opd_id_tpp,
  89.                 'eselon_id'                  => $dataPegawai->eselon_id,
  90.                 'sekolah_id'                 => $dataPegawai->sekolah_id,
  91.                 'pegawai_nm_jab_struktur'    => $jab_struktur,
  92.                 'pegawai_tmt_jab_struktur'   => $tgl_tmt_struktur,
  93.                 'pegawai_tmt_eselon'         => $tgl_tmt_eselon,
  94.                 'jab_fung_tertentu_id'       => $jab_fung_tertentu_id,
  95.                 'jab_fung_umum_id'           => $jab_fung_umum_id,
  96.                 'pegawai_no_sk'              => $dataPegawai->jabatan_pegawai_no_sk,
  97.                 'pegawai_tgl_sk'             => $dataPegawai->jabatan_pegawai_tgl_sk,
  98.                 'pegawai_tmt_jab_fungsional' => $pegawai_tmt_jab_fungsional,
  99.                 'pegawai_pensiun'            => $dataPegawai->jabatan_pegawai_usia_pensiun,
  100.                 'pegawai_status_angkat'      => $dataPegawai->jabatan_pegawai_diangkat,
  101.             );
  102.  
  103.             $this->db->where('pegawai_id', $pegawai_id);
  104.             $this->db->update('simpeg_pegawai', $dataUpdate);
  105.  
  106.             // Update Data Jabatan
  107.             $dataJabatan = array(
  108.                 'jabatan_pegawai_status' => 'Tidak',
  109.             );
  110.  
  111.             $this->db->where('jabatan_pegawai_id !=', $id);
  112.             $this->db->where('pegawai_id', $pegawai_id);
  113.             $this->db->update('simpeg_jabatan_pegawai', $dataJabatan);
  114.         }
  115.  
  116.         // Kirim SIASN
  117.         // Upload Dokumen SI-ASN dulu
  118.         $jenisKompetensi     = $dataDiklat->jenis_kompetensi_id_sapk;
  119.         $namaPenyelenggara   = $dataDiklat->diklat_pegawai_penyelenggara;
  120.         $jmlJam              = intval($dataDiklat->diklat_pegawai_jp);
  121.         $latihanStrukturalId = $dataDiklat->diklat_id;
  122.         $nomor               = $dataDiklat->diklat_pegawai_no_sertifikat;
  123.         $NamaKursus          = $dataDiklat->diklat_pegawai_nama;
  124.         $tahun               = intval($dataDiklat->diklat_pegawai_tahun);
  125.         $tanggal             = date('d-m-Y', strtotime($dataDiklat->diklat_pegawai_tgl_mulai));
  126.         $tanggalSelesai      = date('d-m-Y', strtotime($dataDiklat->diklat_pegawai_tgl_selesai));
  127.         $namaBerkas          = $dataDiklat->diklat_pegawai_berkas;
  128.         if ($namaBerkas != '') {
  129.             $lokasiBerkas = FCPATH . 'dokumen/diklat/' . $namaBerkas;
  130.             if ($jenisKompetensi == 1) {
  131.                 $id_ref_dokumen = '874';
  132.             } else {
  133.                 $id_ref_dokumen = '881';
  134.             }
  135.  
  136.             $tokenapim = $this->sync_m->tokenapim();
  137.             $tokensso  = $this->sync_m->tokensso();
  138.             $curl      = curl_init();
  139.             curl_setopt_array($curl, array(
  140.                 CURLOPT_URL            => 'https://apimws.bkn.go.id:8243/apisiasn/1.0/upload-dok',
  141.                 CURLOPT_RETURNTRANSFER => true,
  142.                 CURLOPT_ENCODING       => '',
  143.                 CURLOPT_MAXREDIRS      => 10,
  144.                 CURLOPT_TIMEOUT        => 0,
  145.                 CURLOPT_FOLLOWLOCATION => true,
  146.                 CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
  147.                 CURLOPT_CUSTOMREQUEST  => 'POST',
  148.                 CURLOPT_POSTFIELDS     => array('file' => new CURLFILE($lokasiBerkas), 'id_ref_dokumen' => $id_ref_dokumen),
  149.                 CURLOPT_HTTPHEADER     => array(
  150.                     "accept: application/json",
  151.                     'Content-Type: multipart/form-data',
  152.                     "Auth: bearer $tokensso",
  153.                     "Authorization: Bearer $tokenapim",
  154.                 ),
  155.             ));
  156.  
  157.             $rspDok = curl_exec($curl);
  158.             curl_close($curl);
  159.             $dataDok = json_decode($rspDok);
  160.             $repCode = $dataDok->code;
  161.             if ($repCode == 1) {
  162.                 $path = [
  163.                     [
  164.                         "dok_id"   => $id_ref_dokumen,
  165.                         "dok_nama" => $dataDok->data->dok_nama,
  166.                         "dok_uri"  => $dataDok->data->dok_uri,
  167.                         "object"   => $dataDok->data->object,
  168.                         "slug"     => $id_ref_dokumen,
  169.                     ],
  170.                 ];
  171.             }
  172.         } else {
  173.             $path = null;
  174.         }
  175.  
  176.         if ($jenisKompetensi == 1) {
  177.             $dataString = array(
  178.                 "bobot"                  => 0,
  179.                 "id"                     => null,
  180.                 "institusiPenyelenggara" => $namaPenyelenggara,
  181.                 "jenisKompetensi"        => $jenisKompetensi,
  182.                 "jumlahJam"              => $jmlJam,
  183.                 "latihanStrukturalId"    => $latihanStrukturalId,
  184.                 "nomor"                  => $nomor,
  185.                 "path"                   => $path,
  186.                 "pnsOrangId"             => $pnsOrangId,
  187.                 "tahun"                  => $tahun,
  188.                 "tanggal"                => $tanggal,
  189.                 "tanggalSelesai"         => $tanggalSelesai,
  190.             );
  191.  
  192.             $dataPost = json_encode($dataString, JSON_UNESCAPED_SLASHES);
  193.             $curl     = curl_init();
  194.             curl_setopt_array($curl, array(
  195.                 CURLOPT_URL            => 'https://apimws.bkn.go.id:8243/apisiasn/1.0/diklat/save',
  196.                 CURLOPT_RETURNTRANSFER => true,
  197.                 CURLOPT_ENCODING       => '',
  198.                 CURLOPT_MAXREDIRS      => 10,
  199.                 CURLOPT_TIMEOUT        => 0,
  200.                 CURLOPT_FOLLOWLOCATION => true,
  201.                 CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
  202.                 CURLOPT_CUSTOMREQUEST  => 'POST',
  203.                 CURLOPT_POSTFIELDS     => $dataPost,
  204.                 CURLOPT_HTTPHEADER     => array(
  205.                     "accept: application/json",
  206.                     "Auth: bearer $tokensso",
  207.                     'Content-Type: application/json',
  208.                     "Authorization: Bearer $tokenapim",
  209.                 ),
  210.             ));
  211.             $response = curl_exec($curl);
  212.             echo curl_error($curl);
  213.             curl_close($curl);
  214.             print_r($response);
  215.             $Callback = json_decode($response, true);
  216.             $status   = $Callback['success'];
  217.             if ($status == 1) {
  218.                 $id_sapk = $Callback['mapData']['rwDiklatId'];
  219.                 // Update ID Sapk
  220.                 $dataUpdate = array(
  221.                     'diklat_pegawai_id_sapk' => $id_sapk,
  222.                 );
  223.  
  224.                 $this->db->where('diklat_pegawai_id', $id);
  225.                 $this->db->update('simpeg_diklat_pegawai', $dataUpdate);
  226.                 $resp = ['status' => 'success', 'message' => 'Verifikasi dan Sync SIASN Berhasil.'];
  227.             } else {
  228.                 $resp = ['status' => 'failed', 'message' => 'Verifikasi Berhasil, SIASN : ' . $data->message];
  229.             }
  230.         } else {
  231.             // Jika Kursus
  232.             $dataString = array(
  233.                 "id"                     => null,
  234.                 "instansiId"             => "A5EB03E23C56F6A0E040640A040252AD",
  235.                 "institusiPenyelenggara" => $namaPenyelenggara,
  236.                 "jenisDiklatId"          => $jenisKompetensi,
  237.                 "jenisKursus"            => null,
  238.                 "jenisKursusSertipikat"  => null,
  239.                 "jumlahJam"              => $jmlJam,
  240.                 "lokasiId"               => null,
  241.                 "namaKursus"             => $NamaKursus,
  242.                 "nomorSertipikat"        => $nomor,
  243.                 "path"                   => $path,
  244.                 "pnsOrangId"             => $pnsOrangId,
  245.                 "tahunKursus"            => $tahun,
  246.                 "tanggalKursus"          => $tanggal,
  247.                 "tanggalSelesaiKursus"   => $tanggalSelesai,
  248.             );
  249.  
  250.             $dataPost = json_encode($dataString, JSON_UNESCAPED_SLASHES);
  251.             // print_r($dataPost);
  252.             $curl = curl_init();
  253.             curl_setopt_array($curl, array(
  254.                 CURLOPT_URL            => 'https://apimws.bkn.go.id:8243/apisiasn/1.0/kursus/save',
  255.                 CURLOPT_RETURNTRANSFER => true,
  256.                 CURLOPT_ENCODING       => '',
  257.                 CURLOPT_MAXREDIRS      => 10,
  258.                 CURLOPT_TIMEOUT        => 0,
  259.                 CURLOPT_FOLLOWLOCATION => true,
  260.                 CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
  261.                 CURLOPT_CUSTOMREQUEST  => 'POST',
  262.                 CURLOPT_POSTFIELDS     => $dataPost,
  263.                 CURLOPT_HTTPHEADER     => array(
  264.                     "accept: application/json",
  265.                     "Auth: bearer $tokensso",
  266.                     'Content-Type: application/json',
  267.                     "Authorization: Bearer $tokenapim",
  268.                 ),
  269.             ));
  270.             $response = curl_exec($curl);
  271.             echo curl_error($curl);
  272.             curl_close($curl);
  273.             // print_r($response);
  274.             $Callback = json_decode($response, true);
  275.             $status   = $Callback['success'];
  276.             if ($status == 1) {
  277.                 $id_sapk = $Callback['mapData']['rwKursusId'];
  278.                 // Update ID Sapk
  279.                 $dataUpdate = array(
  280.                     'diklat_pegawai_id_sapk' => $id_sapk,
  281.                 );
  282.  
  283.                 $this->db->where('diklat_pegawai_id', $id);
  284.                 $this->db->update('simpeg_diklat_pegawai', $dataUpdate);
  285.  
  286.                 $resp = ['status' => 'success', 'message' => 'Verifikasi dan Sync SIASN Berhasil.'];
  287.             } else {
  288.                 $resp = ['status' => 'failed', 'message' => 'Verifikasi Berhasil, SIASN : ' . $Callback['message']];
  289.             }
  290.         }
  291.     } else {
  292.         $resp = ['status' => 'kosong'];
  293.     }
  294.  
  295.     $resp = ['status' => 'success'];
  296.     echo json_encode($resp);
  297. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement