Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Imports;
- use Illuminate\Support\Collection;
- use Illuminate\Support\Facades\Validator;
- use Maatwebsite\Excel\HeadingRowImport;
- use Maatwebsite\Excel\Imports\HeadingRowFormatter;
- use Maatwebsite\Excel\Concerns\WithHeadingRow;
- use Maatwebsite\Excel\Concerns\ToCollection;
- use App\TempSiswa;
- use App\Siswa;
- use App\OrtuWali;
- use App\Wali;
- use App\Pribadi;
- use App\RiwayatPendidikan;
- use App\Kelengkapan;
- use App\Bantuan;
- use App\Kelas;
- use Auth;
- ini_set('max_execution_time', '600');
- ini_set('memory_limit', '3096M');
- HeadingRowFormatter::default('none');
- class SiswaImport implements ToCollection, WithHeadingRow
- {
- private $data;
- public function __construct($data)
- {
- $this->data = $data;
- }
- /**
- * @param array $row
- */
- public function collection(Collection $rows)
- {
- foreach($rows as $row){
- $row['Lintang'] == NULL || '';
- $row['Bujur'] == NULL || '';
- }
- // dd($rows);
- $sekolah_id = \Auth::user()->sekolah_id;
- $is_subs = \Auth::user()->is_subscribe;
- $semester_id = $this->data['tahun_ajaran'] . $this->data['semester'];
- $semester_select = intval($semester_id);
- $semester_max = TempSiswa::where('sekolah_id', '=', $sekolah_id)->max('semester_id') != NULL ?
- TempSiswa::where('sekolah_id', '=', $sekolah_id)->max('semester_id') : 0;
- $semester_max = intval($semester_max);
- $kelas = Kelas::select('id', 'nama_kelas')
- ->where('sekolah_id', '=', \Auth::user()->sekolah_id)
- ->where('semester_id', '=', $semester_id)
- ->get()
- ->pluck('id', 'nama_kelas');
- $tempLama = TempSiswa::select('id', 'nisn')
- ->where('sekolah_id', '=', \Auth::user()->sekolah_id)
- ->where('semester_id', '=', $semester_id)
- ->get()->toArray();
- $countBayar = \DB::table('tb_subscribe')->where('sekolah_id', '=', $sekolah_id)
- ->where('tahun_bayar', '=', $this->data['tahun_ajaran'])
- ->count();
- $idLama = [];
- $lama = [];
- $baru = [];
- // Simpan NISN dari temp lama pada semester dan sekolah yang sama
- foreach($tempLama as $v)
- {
- $idLama[] = $v['id'];
- $lama[] = $v['nisn'];
- }
- if($semester_select >= $semester_max)
- {
- foreach ($rows as $row)
- {
- if($row['No'] == '' || $row['No'] == null)
- {
- continue;
- }
- // Simpan NISN terbaru juga
- $baru[] = $row['NISN'];
- $tempSiswa = TempSiswa::create(
- [
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'skhun' => $row['SKHUN'],
- 'nama_ayah' => $row['Data Ayah'],
- 'tahun_lahir_ayah' => $row[0],
- 'pendidikan_ayah' => $row[1],
- 'pekerjaan_ayah' => $row[2],
- 'penghasilan_ayah' => $row[3],
- 'nik_ayah' => $row[4],
- 'nama_ibu' => $row['Data Ibu'],
- 'tahun_lahir_ibu' => $row[5],
- 'pendidikan_ibu' => $row[6],
- 'pekerjaan_ibu' => $row[7],
- 'penghasilan_ibu' => $row[8],
- 'nik_ibu' => $row[9],
- // 'kelengkapan_id' => $siswaKelengkapan->id,
- ]);
- // Insert or Update Ortuwali
- $ortuwali = OrtuWali::updateOrCreate([
- 'nama_ayah' => $row['Data Ayah'],
- 'tahun_lahir_ayah' => $row[0],
- 'nama_ibu' => $row['Data Ibu'],
- 'tahun_lahir_ibu' => $row[5],
- ],
- [
- 'nama_ayah' => $row['Data Ayah'],
- 'tahun_lahir_ayah' => $row[0],
- 'pendidikan_ayah' => $row[1],
- 'pekerjaan_ayah' => $row[2],
- 'penghasilan_ayah' => $row[3],
- 'nik_ayah' => $row[4],
- 'nama_ibu' => $row['Data Ibu'],
- 'tahun_lahir_ibu' => $row[5],
- 'pendidikan_ibu' => $row[6],
- 'pekerjaan_ibu' => $row[7],
- 'penghasilan_ibu' => $row[8],
- 'nik_ibu' => $row[9],
- ]);
- // $siswaKelengkapan = SiswaKelengkapan::create([
- // 'sekolah_id' => Auth::user()->sekolah_id,
- // 'skhun' => $row['SKHUN'],
- // 'penerima_kps' => $row['Penerima KPS'],
- // 'no_kps' => $row['No. KPS'],
- // 'no_kip' => $row['Nomor KIP'],
- // 'nama_kip' => $row['Nama di KIP'],
- // 'no_kks' => $row['Nomor KKS'],
- // 'layak_pip' => $row['Layak PIP (usulan dari sekolah)'],
- // 'alasan_layak_pip' => $row['Alasan Layak PIP'],
- // 'nama_bank' => $row['Bank'],
- // 'rekening_bank' => $row['Nomor Rekening Bank'],
- // 'atasnama_bank' => $row['Rekening Atas Nama'],
- // 'no_peserta_un' => $row['No Peserta Ujian Nasional'],
- // 'no_ijazah' => $row['No Seri Ijazah'],
- // 'jenis_tinggal' => $row['Jenis Tinggal'],
- // 'alat_transportasi' => $row['Alat Transportasi'],
- // 'asal_sekolah' => $row['Sekolah Asal'],
- // 'kelas_masuk' => $row['Rombel Saat Ini'],
- // ]);
- // //]);
- /**
- * mencari nisn yg sama di excel dan database, jika ada kesamaan tidak masuk ke table siswa
- * jika tidak ada kesamaan masuk ke table siswa
- */
- // $siswaNISN = Siswa::where('nisn_utama', '=', $row['NISN'])->exists();
- // $siswaID = Siswa::where('nisn_utama', '=', $row['NISN'])->select('id')->first();
- // if( ! $siswaNISN)
- // {
- // $siswa = Siswa::create([
- // 'sekolah_id' => \Auth::user()->sekolah_id,
- // 'nama' => $row['Nama'],
- // 'nipd' => $row['NIPD'],
- // 'jk' => $row['JK'],
- // 'nisn_utama' => $row['NISN'],
- // 'tempat_lahir' => $row['Tempat Lahir'],
- // 'tanggal_lahir' => $row['Tanggal Lahir'],
- // 'nik' => $row['NIK'],
- // 'agama' => $row['Agama'],
- // 'alamat' => $row['Alamat'],
- // 'rt' => $row['RT'],
- // 'rw' => $row['RW'],
- // 'dusun' => $row['Dusun'],
- // 'kelurahan' => $row['Kelurahan'],
- // 'kecamatan' => $row['Kecamatan'],
- // 'kode_pos' => $row['Kode Pos'],
- // 'jenis_tinggal' => $row['Jenis Tinggal'],
- // 'alat_transportasi' => $row['Alat Transportasi'],
- // 'telepon' => $row['Telepon'],
- // 'hp' => $row['HP'],
- // 'email' => $row['E-Mail'],
- // 'kelengkapan_id' => $siswaKelengkapan->id,
- // ]);
- //
- // \DB::table('kelas_siswa')->insert([
- // 'sekolah_id' => $sekolah_id,
- // 'semester_id' => $semester_id,
- // 'siswa_id' => $siswa->id,
- // 'kelas_id' => $kelas[str_ireplace('kelas ', '', $row['Rombel Saat Ini'])]
- // ]);
- // }
- $status_anak = '';
- if($ortuwali->pekerjaan_ayah === 'Sudah Meninggal' && $ortuwali->pekerjaan_ibu === 'Sudah Meninggal') {
- $status_anak = 'yatim piatu';
- }
- elseif($ortuwali->pekerjaan_ayah === 'Sudah Meninggal') {
- $status_anak = 'yatim';
- }
- elseif ($ortuwali->pekerjaan_ibu === 'Sudah Meninggal') {
- $status_anak = 'piatu';
- }
- else {
- $status_anak = 'lengkap';
- }
- //Kondisi berlangganan atau tidak
- if($is_subs == 1 && $countBayar > 0){
- $subs_stats = 0;
- if(str_contains($row['Rombel Saat Ini'], 'VII') == 1 &&
- str_contains($row['Rombel Saat Ini'], 'VIII') == null){
- if(strpos($row['Rombel Saat Ini'], 'VII') != strlen($row['Rombel Saat Ini'])-3){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS VII' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS VII' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'VII'){
- $subs_stats = $semester_select;
- }
- }elseif(str_contains($row['Rombel Saat Ini'], 'I') == 1 &&
- str_contains($row['Rombel Saat Ini'], 'X') == null &&
- str_contains($row['Rombel Saat Ini'], 'II') == null &&
- str_contains($row['Rombel Saat Ini'], 'III') == null &&
- str_contains($row['Rombel Saat Ini'], 'V') == null){
- if(strpos($row['Rombel Saat Ini'], 'I') != strlen($row['Rombel Saat Ini'])-1){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS I' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS I' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'I'){
- $subs_stats = $semester_select;
- }
- }elseif(str_contains($row['Rombel Saat Ini'], '7')){
- if(strpos($row['Rombel Saat Ini'], '7') != strlen($row['Rombel Saat Ini'])-1){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS 7' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS 7' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == '7'){
- $subs_stats = $semester_select;
- }
- }elseif(str_contains($row['Rombel Saat Ini'], '1')){
- if(strpos($row['Rombel Saat Ini'], '1') != strlen($row['Rombel Saat Ini'])-1){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS 1' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS 1' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == '1'){
- $subs_stats = $semester_select;
- }
- }
- if($subs_stats != 0){
- $siswa = Siswa::updateOrCreate([
- 'nisn_utama' => $row['NISN'],
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn_utama' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'akta_lahir' => $row['No Registrasi Akta Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'telepon' => $row['Telepon'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'anak_ke' => $row['Anak ke-berapa'],
- 'kebutuhan_khusus' => $row['Kebutuhan Khusus'],
- 'status_anak' => $status_anak,
- 'ortuwali_id' => $ortuwali->id,
- 'subs_stat' => $subs_stats,
- ]);
- }else{
- $siswa = Siswa::updateOrCreate([
- 'nisn_utama' => $row['NISN'],
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn_utama' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'akta_lahir' => $row['No Registrasi Akta Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'telepon' => $row['Telepon'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'anak_ke' => $row['Anak ke-berapa'],
- 'kebutuhan_khusus' => $row['Kebutuhan Khusus'],
- 'status_anak' => $status_anak,
- 'ortuwali_id' => $ortuwali->id,
- ]);
- }
- }else{
- $siswa = Siswa::updateOrCreate([
- 'nisn_utama' => $row['NISN'],
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn_utama' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'akta_lahir' => $row['No Registrasi Akta Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'telepon' => $row['Telepon'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'anak_ke' => $row['Anak ke-berapa'],
- 'kebutuhan_khusus' => $row['Kebutuhan Khusus'],
- 'status_anak' => $status_anak,
- 'ortuwali_id' => $ortuwali->id,
- ]);
- }
- // Insert or Update Wali
- $wali = Wali::updateOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'nama_wali' => $row['Data Wali'],
- 'tahun_lahir_wali' => $row[10] == '0' ? NULL : $row[10],
- 'pendidikan_wali' => $row[11],
- 'pekerjaan_wali' => $row[12],
- 'penghasilan_wali' => $row[13],
- 'nik_wali' => $row[14],
- ]);
- // Insert or Update Pribadi
- $pribadi = Pribadi::updateOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'nipd' => $row['NIPD'],
- 'jenis_tinggal' => $row['Jenis Tinggal'],
- 'alat_transportasi' => $row['Alat Transportasi'],
- ]);
- if(array_key_exists('Lintang', $row) && array_key_exists('Bujur', $row))
- {
- $pribadi = Pribadi::updateOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'lintang' => $row['Lintang'],
- 'bujur' => $row['Bujur'],
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'nipd' => $row['NIPD'],
- 'jenis_tinggal' => $row['Jenis Tinggal'],
- 'alat_transportasi' => $row['Alat Transportasi'],
- 'lintang' => $row['Lintang'],
- 'bujur' => $row['Bujur'],
- ]);
- }
- // Insert or Update Riwayat Pendidikan
- $pendidikan = RiwayatPendidikan::updateOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'skhun' => $row['SKHUN'],
- 'no_ijazah' => $row['No Seri Ijazah'],
- 'no_peserta_un' => $row['No Peserta Ujian Nasional'],
- 'asal_sekolah' => $row['Sekolah Asal'],
- ]);
- // Insert or Update Bantuan
- $bantuan = Bantuan::updateOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'penerima_kps' => $row['Penerima KPS'],
- 'no_kps' => $row['No. KPS'],
- 'penerima_kip' => $row['Penerima KIP'],
- 'no_kip' => $row['Nomor KIP'],
- 'nama_di_kip' => $row['Nama di KIP'],
- 'no_kks' => $row['Nomor KKS'],
- 'layak_pip' => $row['Layak PIP (usulan dari sekolah)'],
- 'alasan_pip' => $row['Alasan Layak PIP'],
- 'nama_bank' => $row['Bank'],
- 'rekening_bank' => $row['Nomor Rekening Bank'],
- 'atasnama_bank' => $row['Rekening Atas Nama'],
- ]);
- $null_value = '' || NULL;
- if($row['Rombel Saat Ini'] == $null_value){
- continue;
- }
- // Update siswa kelengkapan
- Kelengkapan::updateOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'siswa_id' => $siswa->id,
- 'nipd' => $row['NIPD'],
- 'skhun' => $row['SKHUN'],
- 'penerima_kps' => $row['Penerima KPS'],
- 'no_kps' => $row['No. KPS'],
- 'rombel_saat_ini' => $row['Rombel Saat Ini'],
- 'no_kip' => $row['Nomor KIP'],
- 'nama_kip' => $row['Nama di KIP'],
- 'no_kks' => $row['Nomor KKS'],
- 'layak_pip' => $row['Layak PIP (usulan dari sekolah)'],
- 'alasan_layak_pip' => $row['Alasan Layak PIP'],
- 'nama_bank' => $row['Bank'],
- 'rekening_bank' => $row['Nomor Rekening Bank'],
- 'atasnama_bank' => $row['Rekening Atas Nama'],
- 'no_peserta_un' => $row['No Peserta Ujian Nasional'],
- 'no_ijazah' => $row['No Seri Ijazah'],
- 'jenis_tinggal' => $row['Jenis Tinggal'],
- 'alat_transportasi' => $row['Alat Transportasi'],
- 'asal_sekolah' => $row['Sekolah Asal'],
- 'kelas_masuk' => $row['Rombel Saat Ini'],
- ]);
- // Check kelas_siswa
- $kelasExists = \DB::table('kelas_siswa')->where('sekolah_id', '=', $sekolah_id)
- ->where('semester_id', '=', $semester_id)
- ->where('siswa_id', '=', $siswa->id)
- ->where('kelas_id', '=', $kelas[str_ireplace('kelas ', '', $row['Rombel Saat Ini'])])
- ->first();
- // Insert ketika tidak ada data kelas_siswa yang ada
- if( ! $kelasExists)
- {
- \DB::table('kelas_siswa')->insert([
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'siswa_id' => $siswa->id,
- 'kelas_id' => $kelas[str_ireplace('kelas ', '', $row['Rombel Saat Ini'])]
- ]);
- }
- }
- }else{
- foreach ($rows as $row)
- {
- if($row['No'] == '' || $row['No'] == null)
- {
- continue;
- }
- // Simpan NISN terbaru juga
- $baru[] = $row['NISN'];
- $tempSiswa = TempSiswa::create(
- [
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'skhun' => $row['SKHUN'],
- 'nama_ayah' => $row['Data Ayah'],
- 'tahun_lahir_ayah' => $row[0],
- 'pendidikan_ayah' => $row[1],
- 'pekerjaan_ayah' => $row[2],
- 'penghasilan_ayah' => $row[3],
- 'nik_ayah' => $row[4],
- 'nama_ibu' => $row['Data Ibu'],
- 'tahun_lahir_ibu' => $row[5],
- 'pendidikan_ibu' => $row[6],
- 'pekerjaan_ibu' => $row[7],
- 'penghasilan_ibu' => $row[8],
- 'nik_ibu' => $row[9],
- // 'kelengkapan_id' => $siswaKelengkapan->id,
- ]);
- // Insert or Update Ortuwali
- $ortuwali = OrtuWali::firstOrCreate([
- 'nama_ayah' => $row['Data Ayah'],
- 'tahun_lahir_ayah' => $row[0],
- 'nama_ibu' => $row['Data Ibu'],
- 'tahun_lahir_ibu' => $row[5],
- ],
- [
- 'nama_ayah' => $row['Data Ayah'],
- 'tahun_lahir_ayah' => $row[0],
- 'pendidikan_ayah' => $row[1],
- 'pekerjaan_ayah' => $row[2],
- 'penghasilan_ayah' => $row[3],
- 'nik_ayah' => $row[4],
- 'nama_ibu' => $row['Data Ibu'],
- 'tahun_lahir_ibu' => $row[5],
- 'pendidikan_ibu' => $row[6],
- 'pekerjaan_ibu' => $row[7],
- 'penghasilan_ibu' => $row[8],
- 'nik_ibu' => $row[9],
- ]);
- $status_anak = '';
- if($ortuwali->pekerjaan_ayah === 'Sudah Meninggal' && $ortuwali->pekerjaan_ibu === 'Sudah Meninggal') {
- $status_anak = 'yatim piatu';
- }
- elseif($ortuwali->pekerjaan_ayah === 'Sudah Meninggal') {
- $status_anak = 'yatim';
- }
- elseif ($ortuwali->pekerjaan_ibu === 'Sudah Meninggal') {
- $status_anak = 'piatu';
- }
- else {
- $status_anak = 'lengkap';
- }
- //Kondisi berlangganan atau tidak
- if($is_subs == 1 && $countBayar > 0){
- $subs_stats = 0;
- if(str_contains($row['Rombel Saat Ini'], 'VII') == 1 &&
- str_contains($row['Rombel Saat Ini'], 'VIII') == null){
- if(strpos($row['Rombel Saat Ini'], 'VII') != strlen($row['Rombel Saat Ini'])-3){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS VII' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS VII' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'VII'){
- $subs_stats = $semester_select;
- }
- }elseif(str_contains($row['Rombel Saat Ini'], 'I') == 1 &&
- str_contains($row['Rombel Saat Ini'], 'X') == null &&
- str_contains($row['Rombel Saat Ini'], 'II') == null &&
- str_contains($row['Rombel Saat Ini'], 'III') == null &&
- str_contains($row['Rombel Saat Ini'], 'V') == null){
- if(strpos($row['Rombel Saat Ini'], 'I') != strlen($row['Rombel Saat Ini'])-1){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS I' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS I' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'I'){
- $subs_stats = $semester_select;
- }
- }elseif(str_contains($row['Rombel Saat Ini'], '7')){
- if(strpos($row['Rombel Saat Ini'], '7') != strlen($row['Rombel Saat Ini'])-1){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS 7' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS 7' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == '7'){
- $subs_stats = $semester_select;
- }
- }elseif(str_contains($row['Rombel Saat Ini'], '1')){
- if(strpos($row['Rombel Saat Ini'], '1') != strlen($row['Rombel Saat Ini'])-1){
- $subs_stats = $semester_select;
- }elseif(strtoupper(trim($row['Rombel Saat Ini'])) == 'KELAS 1' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == 'KLS 1' ||
- strtoupper(trim($row['Rombel Saat Ini'])) == '1'){
- $subs_stats = $semester_select;
- }
- }
- if($subs_stats != 0){
- $siswa = Siswa::firstOrCreate([
- 'nisn_utama' => $row['NISN'],
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn_utama' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'akta_lahir' => $row['No Registrasi Akta Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'telepon' => $row['Telepon'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'anak_ke' => $row['Anak ke-berapa'],
- 'kebutuhan_khusus' => $row['Kebutuhan Khusus'],
- 'status_anak' => $status_anak,
- 'ortuwali_id' => $ortuwali->id,
- 'subs_stat' => $subs_stats,
- ]);
- $siswa = Siswa::updateOrCreate([
- 'nisn_utama' => $row['NISN'],
- ],
- [
- 'subs_stat' => $subs_stats,
- ]);
- }else{
- $siswa = Siswa::firstOrCreate([
- 'nisn_utama' => $row['NISN'],
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn_utama' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'akta_lahir' => $row['No Registrasi Akta Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'telepon' => $row['Telepon'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'anak_ke' => $row['Anak ke-berapa'],
- 'kebutuhan_khusus' => $row['Kebutuhan Khusus'],
- 'status_anak' => $status_anak,
- 'ortuwali_id' => $ortuwali->id,
- ]);
- }
- }else{
- $siswa = Siswa::firstOrCreate([
- 'nisn_utama' => $row['NISN'],
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'nama' => $row['Nama'],
- 'nipd' => $row['NIPD'],
- 'jk' => $row['JK'],
- 'nisn_utama' => $row['NISN'],
- 'tempat_lahir' => $row['Tempat Lahir'],
- 'tanggal_lahir' => $row['Tanggal Lahir'],
- 'akta_lahir' => $row['No Registrasi Akta Lahir'],
- 'nik' => $row['NIK'],
- 'agama' => $row['Agama'],
- 'alamat' => $row['Alamat'],
- 'rt' => $row['RT'],
- 'rw' => $row['RW'],
- 'dusun' => $row['Dusun'],
- 'kelurahan' => $row['Kelurahan'],
- 'kecamatan' => $row['Kecamatan'],
- 'kode_pos' => $row['Kode Pos'],
- 'telepon' => $row['Telepon'],
- 'hp' => $row['HP'],
- 'email' => $row['E-Mail'],
- 'anak_ke' => $row['Anak ke-berapa'],
- 'kebutuhan_khusus' => $row['Kebutuhan Khusus'],
- 'status_anak' => $status_anak,
- 'ortuwali_id' => $ortuwali->id,
- ]);
- }
- // Insert or Update Wali
- $wali = Wali::firstOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'nama_wali' => $row['Data Wali'],
- 'tahun_lahir_wali' => $row[10] == '0' ? NULL : $row[10],
- 'pendidikan_wali' => $row[11],
- 'pekerjaan_wali' => $row[12],
- 'penghasilan_wali' => $row[13],
- 'nik_wali' => $row[14],
- ]);
- // Insert or Update Pribadi
- Pribadi::updateOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'nipd' => $row['NIPD'],
- 'jenis_tinggal' => $row['Jenis Tinggal'],
- 'alat_transportasi' => $row['Alat Transportasi'],
- 'lintang' => $row['Lintang'],
- 'bujur' => $row['Bujur'],
- ]);
- // Insert or Update Riwayat Pendidikan
- $pendidikan = RiwayatPendidikan::firstOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'skhun' => $row['SKHUN'],
- 'no_ijazah' => $row['No Seri Ijazah'],
- 'no_peserta_un' => $row['No Peserta Ujian Nasional'],
- 'asal_sekolah' => $row['Sekolah Asal'],
- ]);
- // Insert or Update Bantuan
- $bantuan = Bantuan::firstOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'siswa_id' => $siswa->id,
- 'penerima_kps' => $row['Penerima KPS'],
- 'no_kps' => $row['No. KPS'],
- 'penerima_kip' => $row['Penerima KIP'],
- 'no_kip' => $row['Nomor KIP'],
- 'nama_di_kip' => $row['Nama di KIP'],
- 'no_kks' => $row['Nomor KKS'],
- 'layak_pip' => $row['Layak PIP (usulan dari sekolah)'],
- 'alasan_pip' => $row['Alasan Layak PIP'],
- 'nama_bank' => $row['Bank'],
- 'rekening_bank' => $row['Nomor Rekening Bank'],
- 'atasnama_bank' => $row['Rekening Atas Nama'],
- ]);
- // Update siswa kelengkapan
- Kelengkapan::firstOrCreate([
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'siswa_id' => $siswa->id,
- ],
- [
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'siswa_id' => $siswa->id,
- 'nipd' => $row['NIPD'],
- 'skhun' => $row['SKHUN'],
- 'penerima_kps' => $row['Penerima KPS'],
- 'no_kps' => $row['No. KPS'],
- 'rombel_saat_ini' => $row['Rombel Saat Ini'],
- 'no_kip' => $row['Nomor KIP'],
- 'nama_kip' => $row['Nama di KIP'],
- 'no_kks' => $row['Nomor KKS'],
- 'layak_pip' => $row['Layak PIP (usulan dari sekolah)'],
- 'alasan_layak_pip' => $row['Alasan Layak PIP'],
- 'nama_bank' => $row['Bank'],
- 'rekening_bank' => $row['Nomor Rekening Bank'],
- 'atasnama_bank' => $row['Rekening Atas Nama'],
- 'no_peserta_un' => $row['No Peserta Ujian Nasional'],
- 'no_ijazah' => $row['No Seri Ijazah'],
- 'jenis_tinggal' => $row['Jenis Tinggal'],
- 'alat_transportasi' => $row['Alat Transportasi'],
- 'asal_sekolah' => $row['Sekolah Asal'],
- 'kelas_masuk' => $row['Rombel Saat Ini'],
- ]);
- // Check kelas_siswa
- $kelasExists = \DB::table('kelas_siswa')->where('sekolah_id', '=', $sekolah_id)
- ->where('semester_id', '=', $semester_id)
- ->where('siswa_id', '=', $siswa->id)
- ->where('kelas_id', '=', $kelas[str_ireplace('kelas ', '', $row['Rombel Saat Ini'])])
- ->first();
- // Insert ketika tidak ada data kelas_siswa yang ada
- if( ! $kelasExists)
- {
- \DB::table('kelas_siswa')->insert([
- 'sekolah_id' => $sekolah_id,
- 'semester_id' => $semester_id,
- 'siswa_id' => $siswa->id,
- 'kelas_id' => $kelas[str_ireplace('kelas ', '', $row['Rombel Saat Ini'])]
- ]);
- }
- }
- }
- // Hapus temp siswa yang lama
- TempSiswa::destroy($idLama);
- $warning = array_diff($lama, $baru);
- if(count($warning) > 0)
- {
- $siswa_deleted = Siswa::select('id')->whereIn('nisn_utama', $warning)->get()->toArray();
- Kelengkapan::where('sekolah_id', '=', $sekolah_id)
- ->where('semester_id', '=', $semester_id)
- ->whereIn('siswa_id', $siswa_deleted)
- ->update(['warning' => '1']);
- }
- }
- /**
- * Import dimulai dari rows keberapa
- * disini Import dimulai dari rows header ke 5 ( excel)
- * rows 1-4 untuk tulisan lain ( contoh:perkenalan, deskripsi dll)
- */
- public function headingRow(): int
- {
- return 5; // import dimulai dari rows ke 5 di excel
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement