Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/warga-saya.aplikasipos.info/app/Livewire/
Upload File :
Current File : /home/aplikasiposinfo/www/warga-saya.aplikasipos.info/app/Livewire/LaporanIuranView.php

<?php

namespace App\Livewire;

use Livewire\Component;
use App\Models\CivilianPivotSubscription;
use App\Models\Subscription;

class LaporanIuranView extends Component
{
    public $subscriptionId;
    public $subscriptionType = 'Iuran';
    public $subscriptions = [];
    public $civilians = [];

    public function mount()
    {
        $this->subscriptions = Subscription::all();
    }

    public function updatedSubscriptionId($value)
    {
        if ($value) {
            $subscription = Subscription::find($value);
            $this->subscriptionType = $subscription->name ?? 'Iuran';
            $this->loadData();
        } else {
            $this->civilians = [];
            $this->subscriptionType = 'Iuran';
        }

        // dd([
        //     'selected_value' => $value,
        //     'subscription_data' => Subscription::find($value)
        // ]);
    }

    // Helper method untuk normalisasi data paid_months
protected function normalizePaidMonths($paidMonths)
{
    if (empty($paidMonths)) {
        return [];
    }

    if (is_array($paidMonths)) {
        return $paidMonths;
    }

    if (is_string($paidMonths)) {
        $decoded = json_decode($paidMonths, true);
        return is_array($decoded) ? $decoded : [];
    }

    return [];
}

    public function loadData()
    {
        $data = CivilianPivotSubscription::with(['civilian', 'subscription'])
        ->where('subscription_id', $this->subscriptionId)
        ->get();

    $this->civilians = $data->map(function ($item) {
        $paidMonths = $this->normalizePaidMonths($item->paid_months);
        
        return [
            'id' => $item->id,
            'civilian_id' => $item->civilian_id,
            'name' => $item->civilian->full_name ?? 'N/A',
            'paid_months' => $paidMonths,
            // Tambahkan ini untuk debugging
            'paid_months_raw' => $item->paid_months 
        ];
    });
        
    }

    public function render()
    {
        return view('livewire.laporan-iuran-view');
    }
}

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