KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/coaching/coaching.bizkrypt.com/app/Exports/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/coaching/coaching.bizkrypt.com/app/Exports/FeescollectionExport.php
<?php

namespace App\Exports;

use App\Models\User;
use App\Models\School;
use App\Helpers\Frontend;
use App\Models\Feesallotment;
use App\Models\Feescollection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithHeadings;
// use Maatwebsite\Excel\Concerns\FromCollection;

class FeescollectionExport implements FromArray, WithHeadings
{
    use Exportable;
    /**
     * @return \Illuminate\Support\Collection
     */
    protected $request;
    public function __construct($request)
    {
        $this->request = $request;
    }

    public function array(): array
    {
        $request = $this->request;
        $schoolCodes = Frontend::get_schools();
        $query = User::with('guardian', 'school', 'class', 'section', 'feesallot');
        $returnFees = [];
        if (!empty($this->request->class)) {


            $query = Feesallotment::with('user', 'class', 'section', 'feescollection', 'users_admission', 'school');

            // Schools =========================
            if (!empty($this->request->school)) {
                $query->whereHas('school', function ($q) use ($request) {
                    $q->where('schools.id', $this->request->school);
                });
            } else {
                if (!Auth::user()->hasRole('superadmin')) {
                    $query->whereHas('school', function ($q) use ($schoolCodes) {
                        $q->whereIn('schools.id', $schoolCodes);
                    });
                }
            }

            // Class ============================
            if (!empty($this->request->class)) {
                $query->where('feesallotments.class_id', $this->request->class);
            }

            // Section
            if (!empty($this->request->section)) {
                $query->whereHas('section', function ($q) use ($request) {
                    $q->where('sections.id', $this->request->section);
                });
            }

            // Roll No.
            if (!empty($this->request->roll_no)) {
                $query->whereHas('users_admission', function ($q) use ($request) {
                    $q->where('users_admissions.enrollment_no', 'LIKE', '%' . $this->request->roll_no . '%');
                });
            }

            // feesallot ========================
            if (!empty($this->request->due_date)) {
                $query->where('feesallotments.due_date', '=', date('Y-m-d', strtotime($this->request->due_date)));
            }

            $query->whereHas('user', function ($q) use ($request) {
                $q->where('users.status', '1');
            });
            $query->orderBy('id', 'DESC');

            $students = $query->get();

            // dd($students);
            foreach ($students as $student) {


                $feesCollect = array();
                $feesCollect[] = $student->users_admission()->first()->id;
                $feesCollect[] = $student->users_admission()->first()->enrollment_no;
                $feesCollect[] = $student->users_admission()->first()->first_name . ' ' . $student->users_admission()->first()->last_name;
                $feesCollect[] = "";
                $feesCollect[] = $student->users_admission()->first()->dob;
                $feesCollect[] = $student->users_admission()->first()->gender;
                $feesCollect[] = $student->amount;

                // $feesCollects = $student->feesallot->where('id', $student->fees_id)->last()->with('feescollection')->where('id', $student->fees_id)->first()->feescollection;
                // dd($feesCollects);

                // Paid Amount ====================
                // $paidAmount = 0;
                // $discountAmount = 0;
                // $fineAmount = 0;
                // if (!empty($feesCollects)) {
                //     foreach ($feesCollects as $fees) {
                //         $paidAmount += $fees->amount;
                //         $discountAmount += $fees->discount;
                //         $fineAmount += $fees->fine;
                //     }
                // }
                // Paid Amount =====================
                // $fees = $student->feesallot->where('id', $student->fees_id)->last()->amount;
                $balanceAmount = ($student->amount - $student->feescollection()->sum('discount')) - $student->feescollection()->sum('amount');

                $feesCollect[] = $student->feescollection()->sum('fine');
                $feesCollect[] = $student->feescollection()->sum('discount');
                $feesCollect[] = $student->feescollection()->sum('amount');
                
                $feesCollect[] = $balanceAmount;
                if ($balanceAmount <= 0) {
                    $feesCollect[] = "PAID";
                } else {
                    $feesCollect[] = "UNPAID";
                };
                $feesCollect[] = $student->feescollection()->count();
                $feesCollect[] = date('Y-m-d', strtotime($student->due_date));
                array_push($returnFees, $feesCollect);
            }
            return $returnFees;
        }
        return $returnFees;
    }

    public function headings(): array
    {
        return [
            'admission_no',
            'enrollment_no',
            'fullname',
            'father_name',
            'dob',
            'gender',
            'fees',
            'fine',
            'discount',
            'paid',
            'balance',
            'status',
            'instalment',
            'due_date'
        ];
    }
}

Anon7 - 2021