Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/demo-keuangan-sekolah.aplikasipos.info/app/Imports/
Upload File :
Current File : /home/aplikasiposinfo/www/demo-keuangan-sekolah.aplikasipos.info/app/Imports/SiswasImport.php

<?php

namespace App\Imports;

use App\Models\JenisPembayaran;
use App\Models\JenisPembayaranSiswa;
use App\Models\Jenjang;
use App\Models\KategoriSiswa;
use App\Models\Kelas;
use App\Models\KelasPararel;
use App\Models\Siswa;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;

class SiswasImport implements ToModel, WithCalculatedFormulas
{   
    protected $jenisPembayarans = [];
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {   
        if(strtolower($row[0]) == 'nis'){
            for ($i=14; $i < count($row); $i++) { 
                $this->jenisPembayarans[] = $row[$i];
            }
            return null;
        }
        if(strtolower($row[0]) == "" && strtolower($row[1]) == "" && strtolower($row[7]) == ""){
            return null;
        }

        $nis = str_replace("'","",str_replace("`","",$row[0]));
        $nama_siswa = $row[1];
        $jenis_kelamin = $row[2];
        $email = $row[3];
        $no_hp = str_replace("'","",str_replace("`","",$row[4]));
        $alamat = $row[5];
        $orang_tua_wali = $row[6];
        $kategori_siswa = $row[7];
        $cekKategori = KategoriSiswa::where('nama_kategori_siswa', $kategori_siswa)->first();
        if(!$cekKategori){
            throw new \Exception('Kategori Siswa '.$kategori_siswa.' tidak ditemukan');
        }
        $kategori_siswa_id = $cekKategori->id;
        $jenjang = $row[8];
        $cekJenjang = Jenjang::where('nama_jenjang', $jenjang)->first();
        if(!$cekJenjang){
            throw new \Exception('Jenjang '.$jenjang.' tidak ditemukan');
        }
        $jenjang_id = $cekJenjang->id;
        $kelas = $row[9];
        $cekKelas = Kelas::where('nama_kelas', $kelas)->first();
        if(!$cekKelas){
            throw new \Exception('Kelas '.$kelas.' tidak ditemukan');
        }
        $kelas_id = $cekKelas->id;
        $kelas_pararel = $row[10];
        $cekKelasPararel = KelasPararel::where('nama_kelas_pararel', $kelas_pararel)->first();
        if(!$cekKelasPararel){
            throw new \Exception('Kelas Pararel '.$kelas_pararel.' tidak ditemukan');
        }
        $kelas_pararel_id = $cekKelasPararel->id;
        $status = $row[11];
        $mulai_pembayaran = $row[12];
        $tahun_ajaran = str_replace(' ', '', $row[13]);

        $siswa = Siswa::where('nis', $nis)->where('nama_siswa', $nama_siswa)->where('tahun_ajaran',$tahun_ajaran)->first();

        if($siswa){
            $siswa->update([
                'nama_siswa' => $nama_siswa,
                'jenis_kelamin' => $jenis_kelamin,
                'email' => $email,
                'no_hp' => $no_hp,
                'alamat' => $alamat,
                'orang_tua_wali' => $orang_tua_wali,
                'kategori_siswa_id' => $kategori_siswa_id,
    
                'kelas_id' => $kelas_id,
                'kelas_pararel_id' => $kelas_pararel_id,
                'status_siswa' => $status,
                'mulai_pembayaran' => $mulai_pembayaran,
                'tahun_ajaran' => $tahun_ajaran,
            ]);
        }else{
            $siswa = Siswa::create([
                'nis' => $nis,
                'nama_siswa' => $nama_siswa,
                'jenis_kelamin' => $jenis_kelamin,
                'email' => $email,
                'no_hp' => $no_hp,
                'alamat' => $alamat,
                'orang_tua_wali' => $orang_tua_wali,
                'kategori_siswa_id' => $kategori_siswa_id,
                'kelas_id' => $kelas_id,
                'kelas_pararel_id' => $kelas_pararel_id,
                'status_siswa' => $status,
                'mulai_pembayaran' => $mulai_pembayaran,
                'tahun_ajaran' => $tahun_ajaran,
            ]);
        }

        for ($i=14; $i < count($row); $i++) { 
            if($this->jenisPembayarans[$i-14] != null){
                $jarr = explode('/', $this->jenisPembayarans[$i-14]);
                $jenis_pembayaran = JenisPembayaran::where('nama_jenis_pembayaran',$jarr[1])->where('sifat_pembayaran',strtolower($jarr[0]))->first();
            
                $siswa->jenis_pembayaran_siswas()->updateOrCreate(['jenis_pembayaran_id' => $jenis_pembayaran->id],[
                    'nominal' => $row[$i],
                ]);
            }
            
        }

        return $siswa;
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]