namespace App\Http\Controllers;

use App\Models\Dsp;
use App\Models\Kelas;
use App\Models\Siswa;
use App\Models\Pembayaran;
use Carbon\Carbon;
use Illuminate\Http\Request;

class PembayaranController extends Controller
{
    public function index(){
        $siswa = Siswa::orderBy('nama_siswa','asc')->get();
        $kelas = Kelas::all();
        $dsps = Dsp::all();
        // $kelas = Kelas::orderBy('nama_kelas')->get();


        return view('pembayaran.index', ['siswa' => $siswa, 'kelas' => $kelas, 'dsps'=>$dsps]);
    }

    public function detail(){
        $siswa = Siswa::orderBy('nama_siswa','asc')->get();
        // $kelas = Kelas::orderBy('nama_kelas')->get();
        $kelas = Kelas::all();
        return view('pembayaran.detail',['siswa' => $siswa, 'kelas' => $kelas]);
    }

    public function detail_pembayaran($id){
        $pembayaran = Siswa::find($id);
        return view('pembayaran.detail-pembayaran');

    }



    public function proses_pembayaran(Request $request, $id){
        $siswa = Siswa::findOrFail($id);
        // $dsps = Dsp::where('dsp_id',$siswa->dsp_id);

        // $pembayaran = Pembayaran::where("siswa_id", $siswa->id)->get();
        // $pembayaran = Pembayaran::where("siswa_id", $siswa->id)->get();

        // $request->validate([
        //     'tahun'=>'required',
        //     'jumlah_bayar'=>'required'
        // ]);

        // $totalPembayaran = Dsp::where("nominal", $siswa->id)->get();
        $tanggal = Carbon::now();

        $pembayaran = new Pembayaran();
        $pembayaran->petugas_id = 1;
        $pembayaran->siswa_id = $siswa->id;
        $pembayaran->nisn = $siswa->nisn;
        $pembayaran->tanggal_bayar = $tanggal;
        $pembayaran->bulan_bayar = $tanggal->format('m');
        $pembayaran->tahun_bayar = $tanggal->format('y');

        $pembayaran->jumlah_bayar = $siswa->dsp->nominal;

        $validasi['nominal'] = $siswa->dsp->nominal - $pembayaran->jumlah_bayar;
        $siswa->update($validasi);

        if ($siswa->nominal == 0) {
            $siswa->update(['status' => 'lunas']);
        }

        return redirect()->back();


    }