Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/demo-keuangan-sekolah.aplikasipos.info/app/Models/
Upload File :
Current File : /home/aplikasiposinfo/public_html/demo-keuangan-sekolah.aplikasipos.info/app/Models/Siswa.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Siswa extends Model
{
    use HasFactory;
    protected $fillable = [
        'nis',
        'nama_siswa',
        'jenis_kelamin',
        'no_hp',
        'email',
        'alamat',
        'orang_tua_wali',
        'kategori_siswa_id',
        'kelas_id',
        'kelas_pararel_id',
        'mulai_pembayaran',
        'tahun_ajaran',
        'status_siswa',
    ];

    protected $appends = [
        'tagihan_berikutnya'
    ];

    public static function statusSiswa()
    {
        return [
            'aktif' => 'Aktif',
            'tidak aktif' => 'Tidak Aktif',
        ];
    }

    public function kategori_siswa()
    {
        return $this->belongsTo(KategoriSiswa::class);
    }

    public function kelas()
    {
        return $this->belongsTo(Kelas::class)->withDefault([
            'nama_kelas' => '-',
            'jenjang' => [
                'nama_jenjang' => '-'
            ]
        ]);
    }

    public function kelas_pararel()
    {
        return $this->belongsTo(KelasPararel::class, 'kelas_pararel_id');
    }

    public function jenis_pembayaran_siswas()
    {
        return $this->hasMany(JenisPembayaranSiswa::class);
    }


    public function pembayarans()
    {
        return $this->hasMany(Pembayaran::class);
    }

    public function tagihans()
    {
        return $this->hasMany(Tagihan::class);
    }

    public function getTagihanBerikutnyaAttribute()
    {
        $datas = [];
        $jenis_pembayaran_siswas = $this->jenis_pembayaran_siswas;

        foreach ($jenis_pembayaran_siswas as $jenis_pembayaran_siswa) {
            $tagihan = $this->tagihans->where('jenis_pembayaran_siswa_id', $jenis_pembayaran_siswa->id)->sortByDesc('tanggal_tagihan')->first();
            if ($tagihan) {
                $tanggal_tagihan = $tagihan->tanggal_tagihan;
                $tanggal_tagihan = date('Y-m-d', strtotime($tanggal_tagihan));
                //strtotime('+1 '.(($jenis_pembayaran->jenis_pembayaran->sifat_pembayaran == "bulanan")?"month":"year"))
                $tanggal_tagihan = date('Y-m-d', strtotime('+1 ' . (($jenis_pembayaran_siswa->jenis_pembayaran->sifat_pembayaran == "bulanan") ? "month" : "year"), strtotime($tanggal_tagihan)));
            } else {
                $tanggal_tagihan = $this->mulai_pembayaran;
            }
            $datas[] = [
                'jenis_pembayaran' => $jenis_pembayaran_siswa->jenis_pembayaran->nama_jenis_pembayaran,
                'tanggal_tagihan' => $tanggal_tagihan,
                'total_pembayaran' => $jenis_pembayaran_siswa->detail_pembayarans->sum('nominal_pembayaran'),
            ];
        }

        return $datas;
    }

    //createLogin function, create SiswaLogin with username and password is NIS
    public function createLogin()
    {
        $siswaLogin = SiswaLogin::firstOrNew(['siswa_id' => $this->id]);
        $siswaLogin->siswa_id = $this->id;
        $siswaLogin->username = $this->nis;
        $siswaLogin->password = bcrypt($this->nis);
        $siswaLogin->save();
    }

    public function tabungans()
    {
        //Siswaable where tabungans is the table name
        return $this->morphedByMany(Tabungan::class, 'siswaable');
    }

    //total tabungan
    public function getTotalTabunganAttribute()
    {
        return $this->tabungans->where('proses_tabungan','simpan')->sum('jumlah_tabungan') - $this->tabungans->where('proses_tabungan','ambil')->sum('jumlah_tabungan');
    }

    public function getNoWaAttribute(){
        //add 62 to the beginning of the phone number
        if(substr($this->no_hp,0,1) == '0'){
            return '62'.substr($this->no_hp,1);
        } else {
            return str_replace('+','',$this->no_hp);
        }
    }


}

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