Syehaji93

Import Excel using Codeigniter 4 and Ajax

Jan 9th, 2023 (edited)
1,413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.65 KB | Software | 0 0
  1. public function fileUpload()
  2.     {
  3.         if($this->request->isAJAX())
  4.         {
  5.             $data = array();
  6.  
  7.             // Read new token and assign to $data['token']
  8.             $data['token'] = csrf_hash();
  9.  
  10.             $validation = \Config\Services::validation();
  11.  
  12.             $valid = $this->validate([
  13.                 'fileimport' => [
  14.                     'label' => 'File',
  15.                     'rules' => 'uploaded[partexcel]|ext_in[partexcel,xls,xlsx]',
  16.                     'errors' => [
  17.                         'uploaded' => 'tidak boleh kosong',
  18.                         'ext_in'    => 'harus extensi xls / xlsx'
  19.                     ]
  20.                 ]
  21.             ]);
  22.  
  23.             if($valid)
  24.             {
  25.                 $msg = [
  26.                     'error' => [
  27.                         'fileimport'  => $validation->getError('fileimport')
  28.                     ]
  29.                 ];
  30.             }else{
  31.                 $file_excel = $this->request->getFile('file');
  32.                 //function cek nama file -----------------
  33.                 // $nama_file = $file_excel->getName();
  34.  
  35.                 $ext = $file_excel->getClientExtension();
  36.                 if($ext == 'xls')
  37.                 {
  38.                     $render = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
  39.                 }else{
  40.                     $render = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
  41.                 }
  42.                 $spreadsheet = $render->load($file_excel);
  43.  
  44.                 $data = $spreadsheet->getActiveSheet()->toArray();
  45.                
  46.                 // Kita kumpulkan dulu data dari excel ke $data_excel biar mudah dibaca
  47.                 $data_excel = [];
  48.                
  49.                 $flag = TRUE;
  50.                 $flag_input = TRUE;
  51.  
  52.                 foreach($data as $x => $row)
  53.                 {
  54.                     if($x == 0)
  55.                     {
  56.                         continue;
  57.                     }
  58.        
  59.                     $part_code = $row[0];
  60.                     $part_name = $row[1];
  61.                     $kode_gudang = $row[2];
  62.                     $part_location = $row[3];
  63.                     $part_qty_reel = $row[4];
  64.        
  65.                     $db = \Config\Database::connect();
  66.  
  67.                     $sql_cek = $db->table('m_part')->getWhere(['part_code'=>$part_code])->getResult();
  68.  
  69.                     if($sql_cek) {
  70.                         $flag = FALSE;
  71.                     } else {
  72.                         $flag = TRUE;
  73.                     }
  74.                 }
  75.  
  76.                 if($flag === FALSE) {
  77.                     $respon = 2;
  78.                     $pesan = "Part ada yang sudah terdaftar";
  79.                 } else {
  80.                     foreach($data as $x => $row)
  81.                     {
  82.                         if($x == 0)
  83.                         {
  84.                             continue;
  85.                         }
  86.            
  87.                         $part_code = $row[0];
  88.                         $part_name = $row[1];
  89.                         $kode_gudang = $row[2];
  90.                         $part_location = $row[3];
  91.                         $part_qty_reel = $row[4];
  92.            
  93.                         $simpandata = [
  94.                             'part_code' => $part_code,
  95.                             'part_name' => $part_name,
  96.                             'part_wh_code' => $kode_gudang,
  97.                             'part_location' => $part_location,
  98.                             'part_qty_reel' => $part_qty_reel,
  99.                             'created_by'    => $this->session->get('user_name'),
  100.                             'created_date'  => date('Y-m-d H:i:s')
  101.                         ];
  102.        
  103.                         $sql = $this->m_part->insert($simpandata);
  104.                         $respon = 1;
  105.                         $pesan = "Part berhasil ditambahkan";
  106.                         /*if($sql) {
  107.                             $flag_input = FALSE;
  108.                         } else {
  109.                             $flag_input = TRUE;
  110.                         }*/
  111.                     }
  112.  
  113.                     /*if($flag_input === FALSE)
  114.                     {
  115.                         $respon = 1;
  116.                         $pesan = "Part berhasil ditambahkan";
  117.                     }else{
  118.                         $respon = 0;
  119.                         $pesan = "Part gagal ditambahkan!";
  120.                     }*/
  121.                 }
  122.  
  123.                 $msg = [
  124.                     'res' => $respon,
  125.                     'pesan' => $pesan
  126.                 ];
  127.             }
  128.  
  129.             echo json_encode($msg);
  130.         }else{
  131.             exit('Maaf request tidak dapat diproses!');
  132.         }
  133.        
  134.     }
Advertisement
Add Comment
Please, Sign In to add comment