<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class RealisasiRincianKegiatan extends Model
{
use HasFactory, SoftDeletes;
use \Znck\Eloquent\Traits\BelongsToThrough;
protected $guarded = [];
protected $casts = [
'nilai_kontrak' => 'integer',
];
public function realisasiFisik(){
return $this->hasMany(RealisasiFisik::class,'realisasi_rincian_kegiatan_id');
}
public function realisasiKeuangan(){
return $this->hasMany(RealisasiKeuangan::class);
}
public function permasalahanTindakLanjut(){
return $this->hasMany(PermasalahanTindakLanjut::class);
}
public function rincianKegiatan(){
return $this->belongsTo(RincianKegiatan::class);
}
public function ProkerSubKegiatan(){
return $this->belongsToThrough(ProkerSubKegiatan::class, rincianKegiatan::class);
}
public function getKeuanganAttribute(){
// $result = 0;
// foreach ($this->realisasiKeuangan as $data) {
// $result += $data->realisasi;
// }
// return $result;
// return $this->realisasiKeuangan->sum('realisasi');
// menggunakan perulangan karena realisasi ada yg string kosong
$result = 0;
foreach ($this->realisasiKeuangan as $data) {
$result += intval($data->realisasi);
}
return $result;
}
public function getKeuTw($triwulan, $tahun){
if ($triwulan == 1) {
$tanggal_awal = $tahun.'-01-01';
$tanggal_akhir = $tahun.'-03-31';
}elseif ($triwulan == 2) {
$tanggal_awal = $tahun.'-04-01';
$tanggal_akhir = $tahun.'-06-31';
}elseif ($triwulan == 3) {
$tanggal_awal = $tahun.'-07-01';
$tanggal_akhir = $tahun.'-09-31';
}else {
$tanggal_awal = $tahun.'-10-01';
$tanggal_akhir = $tahun.'-12-31';
}
$result = 0;
foreach ($this->realisasiKeuangan->whereBetween('tanggal_realisasi', [$tanggal_awal, $tanggal_akhir]) as $data) {
$result += intval($data->realisasi);
}
return $result;
}
public function getFisikAttribute(){
// $result = 0;
// foreach ($this->realisasiFisik as $data) {
// $result += $data->realisasi;
// }
// return $result;
return $this->realisasiFisik->sum('realisasi');
}
public function dokumen(){
return $this->hasMany(FileDokumentasi::class,'realisasi_rincian_kegiatan_id');
}
public function getCustomNilaiKontrakAttribute(){
$cus_nilai_kontrak = 0;
if ($this->realisasiFisik->count() > 0 or $this->realisasiKeuangan->count() > 0) {
$cus_nilai_kontrak = $this->nilai_kontrak;
}else{
$cus_nilai_kontrak = 0;
}
return $cus_nilai_kontrak;
}
public function getPaguBerjalanAttribute(){
if ($this->realisasiFisik->count() > 0 or $this->realisasiKeuangan->count() > 0) {
return $this->rincianKegiatan->pagu;
}else{
return 0;
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]