IMMREX7

aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/Hostel/
File Up :
aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/Hostel/HostelFeeReportController.php

<?php

namespace App\Http\Controllers\School\Hostel;

use Illuminate\Http\Request;
use App\Http\Controllers\School\SchoolController;
use DB;
use Auth;
use Carbon\Carbon;
use Session;
use PDF;

class HostelFeeReportController extends SchoolController {

    public function paidFees(Request $request) {
        $today_date = Carbon::today()->format('Y-m-d');
        if ($request->has('fromDate') && $request->fromDate != null) {
            $from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate);
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $to_date = Carbon::createFromFormat('d-m-Y', $request->toDate);
        }

        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $feeHeaders = \App\HostelFeehead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->groupBy('feeheadName')
                        ->orderBy('toDate')->get()->pluck('feeheadName', 'idHostelFeehead')->toArray();
        if ($request->has('feeHeaders') && count($request->feeHeaders) > 0) {
            $transactionIds = DB::table('hostel_transaction_details')->whereIn('hostel_transaction_details.idHostelFeehead', $request->feeHeaders)->get()->pluck('idHostelTransaction')->toArray();
            ;

            $transactions = DB::table('hostel_transaction')
                    ->leftJoin('hostel_excess_transaction', 'hostel_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idExcessTransaction')
                    ->join('students', 'hostel_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('hostel_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('hostel_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                    ->where(function($query) {
                        $query->whereNull('status');
                        $query->orWhere('status', '=', 'In-Process');
                        $query->orWhere('status', '=', 'Cleared');
                        $query->orWhere('status', '=', 'Success');
                    })
                    ->whereIn('hostel_transaction.idHostelTransaction', $transactionIds)
                    ->select('ecNo', 'hostel_transaction.idHostelTransaction', 'hostel_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'totalPaid', 'penaltyAmount', 'discount', 'fine', 'penaltyRemarks', 'excessAmount', 'paymentDate', 'chequeNo');
        } else {
            $transactions = DB::table('hostel_transaction')
                    ->leftJoin('hostel_excess_transaction', 'hostel_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idExcessTransaction')
                    ->join('students', 'hostel_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('hostel_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('hostel_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                    ->where(function($query) {
                        $query->whereNull('status');
                        $query->orWhere('status', '=', 'In-Process');
                        $query->orWhere('status', '=', 'Cleared');
                        $query->orWhere('status', '=', 'Success');
                    })
                    ->select('ecNo', 'hostel_transaction.idHostelTransaction', 'hostel_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'totalPaid', 'penaltyAmount', 'discount', 'fine', 'penaltyRemarks', 'excessAmount', 'paymentDate', 'chequeNo');
        }

        if ($request->toDate != null && $request->fromDate != null) {
            $transactions = $transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $transactions = $transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
        } else if ($request->has('toDate') && $request->toDate != null) {
            $transactions = $transactions->whereDate('paymentDate', '<=', $to_date)->get();
        } else if ($request->has('sections') && count($request->sections) > 0) {
            $transactions = $transactions->whereIn('students.idSection', $request->sections)->get();
        } else if ($request->has('classes') && count($request->classes) > 0) {
            $transactions = $transactions->whereIn('students.idClass', $request->classes)->get();
        } else if ($request->has('paymentMode')) {
            if ($request->paymentMode = "All")
                $transactions = $transactions->get();
            else
                $transactions = $transactions->where('paymentMode', '=', $request->paymentMode)->get();
        }else {
            $transactions = $transactions->get();
        }
        return view('schools.hostel.fee_paid', compact('feeHeaders', 'classes', 'transactions', 'lesser_transactions'));
    }

    public function lessPaidFees(Request $request) {

        $today_date = Carbon::today()->format('Y-m-d');
        if ($request->has('fromDate') && $request->fromDate != null) {
            $from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate);
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $to_date = Carbon::createFromFormat('d-m-Y', $request->toDate);
        }

        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $feeHeaders = \App\HostelFeehead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->groupBy('feeheadName')
                        ->orderBy('toDate')->get()->pluck('feeheadName', 'idHostelFeehead')->toArray();
        if ($request->has('feeHeaders') && count($request->feeHeaders) > 0) {
            $lesser_transactionIds = DB::table('hostel_lesser_transaction_details')->whereIn('hostel_lesser_transaction_details.idFeehead', $request->feeHeaders)->get()->pluck('idHostelLesserTransaction')->toArray();
            ;
            $lesser_transactions = DB::table('hostel_lesser_transaction')
                    ->leftJoin('hostel_excess_transaction', 'hostel_lesser_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idExcessTransaction')
                    ->join('students', 'hostel_lesser_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('hostel_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('hostel_lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                    ->where(function($query) {
                        $query->whereNull('status');
                        $query->orWhere('status', '=', 'In-Process');
                        $query->orWhere('status', '=', 'Cleared');
                        $query->orWhere('status', '=', 'Success');
                    })
                    ->whereIn('hostel_lesser_transaction.idHostelLesserTransaction', $lesser_transactionIds)
                    ->select('ecNo', 'hostel_lesser_transaction.idHostelLesserTransaction', 'hostel_lesser_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'totalPaid', 'penaltyAmount', 'discount', 'fine', 'penaltyRemarks', 'excessAmount', 'paymentDate', 'chequeNo');
        } else {
            $lesser_transactions = DB::table('hostel_lesser_transaction')
                    ->leftJoin('hostel_excess_transaction', 'hostel_lesser_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idExcessTransaction')
                    ->join('students', 'hostel_lesser_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('hostel_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('hostel_lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                    ->where(function($query) {
                        $query->whereNull('status');
                        $query->orWhere('status', '=', 'In-Process');
                        $query->orWhere('status', '=', 'Cleared');
                        $query->orWhere('status', '=', 'Success');
                    })
                    ->select('ecNo', 'hostel_lesser_transaction.idHostelLesserTransaction', 'hostel_lesser_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'totalPaid', 'penaltyAmount', 'discount', 'fine', 'penaltyRemarks', 'excessAmount', 'paymentDate', 'chequeNo');
        }

        if ($request->toDate != null && $request->fromDate != null) {
            $lesser_transactions = $lesser_transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $lesser_transactions = $lesser_transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
        } else if ($request->has('toDate') && $request->toDate != null) {
            $lesser_transactions = $lesser_transactions->whereDate('paymentDate', '<=', $to_date)->get();
        } else if ($request->has('sections') && count($request->sections) > 0) {
            $lesser_transactions = $lesser_transactions->whereIn('students.idSection', $request->sections)->get();
        } else if ($request->has('classes') && count($request->classes) > 0) {
            $lesser_transactions = $lesser_transactions->whereIn('students.idClass', $request->classes)->get();
        } else if ($request->has('paymentMode')) {
            if ($request->paymentMode = "All")
                $lesser_transactions = $lesser_transactions->get();
            else
                $lesser_transactions = $lesser_transactions->where('paymentMode', '=', $request->paymentMode)->get();
        }else {
            $lesser_transactions = $lesser_transactions->get();
        }
        return view('schools.hostel.less_fee_paid', compact('classes', 'feeHeaders', 'lesser_transactions'));
    }

    public function pendingDues(Request $request) {
        $today_date = Carbon::today()->format('Y-m-d');
        if ($request->has('fromDate') && $request->fromDate != null) {
            $from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate);
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $to_date = Carbon::createFromFormat('d-m-Y', $request->toDate);
        }
        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();


        $students = DB::table('hostel_students')
                ->join('hostel_floors','hostel_students.idFloor','=','hostel_floors.idFloor')
                ->join('hostel_rooms','hostel_students.idRoom','=','hostel_rooms.idRoom')
                ->join('hostel_beds','hostel_students.idBed','=','hostel_beds.idBed')
                ->join('students','hostel_students.idStudent','=','students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->where('hostel_students.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->select('hostel_students.idStudent','classes.idClass','sections.idSection','ecNo', 'firstName', 'lastName', 'middleName','floorName','bedName','roomName','father_fname', 'father_lname', 'father_mobile', 'className', 'sectionName');
        if ($request->has('sections') && count($request->sections) > 0) {
            $students = $students->whereIn('idSection', $request->sections)->get();
        } else if ($request->has('classes') && count($request->classes) > 0) {
            $students = $students->whereIn('idClass', $request->classes)->get();
        } else {
            $students = $students->get();
        }
        return view('schools.hostel.pending_fee', compact('classes', 'students'));
    }

    public function cancelledReceipts(Request $request) {
        $today_date = Carbon::today()->format('Y-m-d');
        if ($request->has('fromDate') && $request->fromDate != null) {
            $from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate);
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $to_date = Carbon::createFromFormat('d-m-Y', $request->toDate);
        }
        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();

        $transactions = DB::table('hostel_transaction')
                ->leftJoin('hostel_excess_transaction', 'hostel_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idExcessTransaction')
                ->join('students', 'hostel_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->where('hostel_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->where('hostel_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->where('status', '=', 'Cancelled')
                ->select('hostel_transaction.remarks', 'ecNo', 'hostel_transaction.idHostelTransaction', 'hostel_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'totalPaid', 'penaltyAmount', 'discount', 'fine', 'penaltyRemarks', 'excessAmount', 'paymentDate');
        $lesser_transactions = DB::table('hostel_lesser_transaction')
                ->leftJoin('hostel_excess_transaction', 'hostel_lesser_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idExcessTransaction')
                ->join('students', 'hostel_lesser_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->where('hostel_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->where('hostel_lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->where('status', '=', 'Cancelled')
                ->select('hostel_lesser_transaction.remarks', 'ecNo', 'hostel_lesser_transaction.idHostelLesserTransaction', 'hostel_lesser_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'totalPaid', 'penaltyAmount', 'discount', 'fine', 'penaltyRemarks', 'excessAmount', 'paymentDate');

        if ($request->toDate != null && $request->fromDate != null) {
            $transactions = $transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
            $lesser_transactions = $lesser_transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $transactions = $transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
            $lesser_transactions = $lesser_transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
        } else if ($request->has('toDate') && $request->toDate != null) {
            $transactions = $transactions->whereDate('paymentDate', '<=', $to_date)->get();
            $lesser_transactions = $lesser_transactions->whereDate('paymentDate', '<=', $to_date)->get();
        } else if ($request->has('sections') && count($request->sections) > 0) {
            $transactions = $transactions->whereIn('students.idSection', $request->sections)->get();
            $lesser_transactions = $lesser_transactions->whereIn('students.idSection', $request->sections)->get();
        } else if ($request->has('classes') && count($request->classes) > 0) {
            $transactions = $transactions->whereIn('students.idClass', $request->classes)->get();
            $lesser_transactions = $lesser_transactions->whereIn('students.idClass', $request->classes)->get();
        } else if ($request->has('paymentMode')) {
            $transactions = $transactions->where('paymentMode', '=', $request->paymentMode)->get();
            $lesser_transactions = $lesser_transactions->where('paymentMode', '=', $request->paymentMode)->get();
        } else {
            $transactions = $transactions->get();
            $lesser_transactions = $lesser_transactions->get();
        }
        return view('schools.hostel.cancelled-receipts', compact('classes', 'transactions','lesser_transactions'));
    }
}

Copyright © 2021 - 2025 IMMREX7