IMMREX7

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

<?php

namespace App\Http\Controllers\School;

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

class BusFeeReportController extends SchoolController {

    public function todayReport(Request $request){
        $today =  Carbon::today()->format('Y-m-d');
        $till =  Carbon::today()->format('Y-m-d');
        if ($request->has('fromDate') && $request->fromDate != null) {
            $today = Carbon::createFromFormat('d-m-Y', $request->fromDate)->format('Y-m-d');;
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $till = Carbon::createFromFormat('d-m-Y', $request->toDate)->format('Y-m-d');
        }
        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $feeHeaders = \App\BusFeehead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear', '=', Session::get('idFinancialYear'))->groupBy('feeheadName')
        ->orderBy('toDate')->get()->pluck('feeheadName', 'idBusFeehead')->toArray();



        if ($request->has('feeHeaders') && count($request->feeHeaders) > 0){
            $lesser_transactionIds = DB::table('bus_lesser_transaction_details')->whereIn('bus_lesser_transaction_details.idBusFeehead', $request->feeHeaders)->get()->pluck('idBusLesserTransaction')->toArray();
            $lesser_transactions = DB::table('bus_lesser_transaction')
            ->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
            ->leftJoin('school_users', 'bus_lesser_transaction.created_by', '=', 'school_users.idSchoolUser')
            ->leftJoin('students', 'bus_lesser_transaction.idStudent', '=', 'students.idStudent')
            ->leftJoin('classes', 'students.idClass', '=', 'classes.idClass')
            ->leftJoin('banks', 'bus_lesser_transaction.idBank', '=', 'banks.idBank')
            ->leftJoin('sections', 'students.idSection', '=', 'sections.idSection')
            ->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
            ->where('bus_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('bus_lesser_transaction.idBusLesserTransaction', $lesser_transactionIds)
            ->select('school_users.name','ecNo','banks.bankName','bus_lesser_transaction.bankName as bName','bus_lesser_transaction.idBank','bus_lesser_transaction.idBusLesserTransaction', 'bus_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','additionalAmount');
        }
        else
        $lesser_transactions = DB::table('bus_lesser_transaction')
                    ->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
                    ->leftJoin('school_users', 'bus_lesser_transaction.created_by', '=', 'school_users.idSchoolUser')
                    ->leftJoin('students', 'bus_lesser_transaction.idStudent', '=', 'students.idStudent')
                    ->leftJoin('classes', 'students.idClass', '=', 'classes.idClass')
                    ->leftJoin('banks', 'bus_lesser_transaction.idBank', '=', 'banks.idBank')
                    ->leftJoin('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('bus_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('school_users.name','ecNo','banks.bankName','bus_lesser_transaction.bankName as bName','bus_lesser_transaction.idBank', 'bus_lesser_transaction.idBusLesserTransaction', 'bus_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','additionalAmount');
       
        if ($request->has('sections') && count($request->sections) > 0) {
            $lesser_transactions = $lesser_transactions->whereIn('students.idSection', $request->sections);
        } 
        if ($request->has('classes') && count($request->classes) > 0) {
            $lesser_transactions = $lesser_transactions->whereIn('students.idClass', $request->classes);
        } 
        
        if ($request->has('paymentMode')) {
            if ($request->paymentMode != "All")
                $lesser_transactions = $lesser_transactions->where('paymentMode', '=', $request->paymentMode);
        }

        if ($request->has('toDate') && $request->has('fromDate')){
            $lesser_transactions = $lesser_transactions->whereDate('paymentDate','>=', $today)->whereDate('paymentDate','<=', $till);
        }else $lesser_transactions = $lesser_transactions->whereDate('paymentDate', $today);

        $lesser_transactions = $lesser_transactions->get();


        if ($request->has('feeHeaders') && count($request->feeHeaders) > 0){
            $transactionIds = DB::table('bus_transaction_details')->whereIn('bus_transaction_details.idBusFeehead', $request->feeHeaders)->get()->pluck('idBusTransaction')->toArray();
            $transactions = DB::table('bus_transaction')
            ->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
            ->leftJoin('school_users', 'bus_transaction.created_by', '=', 'school_users.idSchoolUser')
            ->leftJoin('students', 'bus_transaction.idStudent', '=', 'students.idStudent')
            ->leftJoin('classes', 'students.idClass', '=', 'classes.idClass')
            ->leftJoin('sections', 'students.idSection', '=', 'sections.idSection')
            ->leftJoin('banks', 'bus_transaction.idBank', '=', 'banks.idBank')
            ->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
            ->where('bus_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('bus_transaction.idBusTransaction', $transactionIds)
            ->select('school_users.name','ecNo','banks.bankName','bus_transaction.bankName as bName','bus_transaction.idBank', 'bus_transaction.idBusTransaction', 'bus_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','additionalAmount');
       
        }else
        $transactions = DB::table('bus_transaction')
            ->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
            ->leftJoin('school_users', 'bus_transaction.created_by', '=', 'school_users.idSchoolUser')
            ->leftJoin('students', 'bus_transaction.idStudent', '=', 'students.idStudent')
            ->leftJoin('classes', 'students.idClass', '=', 'classes.idClass')
            ->leftJoin('banks', 'bus_transaction.idBank', '=', 'banks.idBank')
            ->leftJoin('sections', 'students.idSection', '=', 'sections.idSection')
            ->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
            ->where('bus_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('school_users.name','ecNo','banks.bankName','bus_transaction.bankName as bName','bus_transaction.idBank', 'bus_transaction.idBusTransaction', 'bus_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','additionalAmount');
            if ($request->has('sections') && count($request->sections) > 0) {
                $transactions = $transactions->whereIn('students.idSection', $request->sections);
            } 
            if ($request->has('classes') && count($request->classes) > 0) {
                $transactions = $transactions->whereIn('students.idClass', $request->classes);
            } 
            
            if ($request->has('paymentMode')) {
                if ($request->paymentMode != "All")
                    $transactions = $transactions->where('paymentMode', '=', $request->paymentMode);
            }
        
        
            if ($request->has('toDate') && $request->has('fromDate')){
                $transactions = $transactions->whereDate('paymentDate','>=', $today)->whereDate('paymentDate','<=', $till);
            }else $transactions = $transactions->whereDate('paymentDate', $today);

            $transactions = $transactions->get();

        return view('schools.buses.combined_royal_paid', compact('classes', 'feeHeaders', 'lesser_transactions' ,'transactions'));
    }

    public function reversalReport(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)->format('Y-m-d');
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $to_date = Carbon::createFromFormat('d-m-Y', $request->toDate)->format('Y-m-d');
        }
                        
        if ($request->has('feeHeaders') && count($request->feeHeaders) > 0) {
            $transactionIds = DB::table('student_rollback_details_bus')->whereIn('student_rollback_details_bus.idBusFeehead', $request->feeHeaders)->whereNotNull('idBusTransaction')->get()->pluck('idBusTransaction')->toArray();
            $lransactionIds = DB::table('student_rollback_details_bus')->whereIn('student_rollback_details_bus.idBusFeehead', $request->feeHeaders)->whereNotNull('idBusLesserTransaction')->get()->pluck('idBusLesserTransaction')->toArray();

            if(count($request->feeHeaders) == 1){
                $headerName =  \App\BusFeehead::where('idBusFeehead',$request->feeHeaders[0])->first()->feeheadName;
            }

            $transactions = DB::table('student_rollback_transaction_bus')
                    ->leftJoin('school_users', 'student_rollback_transaction_bus.created_by', '=', 'school_users.idSchoolUser')
                    ->join('students', 'student_rollback_transaction_bus.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('student_rollback_transaction_bus.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('student_rollback_transaction_bus.idFinancialYear', '=', Session::get('idFinancialYear'))
                    ->whereIn('student_rollback_transaction_bus.idBusTransaction', $transactionIds)
                    ->orWhereIn('student_rollback_transaction_bus.idBusLesserTransaction', $lransactionIds)
                    ->select('school_users.name','ecNo','bankName','idBank', 'student_rollback_transaction_bus.idBusTransaction','student_rollback_transaction_bus.idBusLesserTransaction', 'student_rollback_transaction_bus.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', 'paymentDate', 'chequeNo');
        } else {
            $transactions = DB::table('student_rollback_transaction_bus')
                    ->leftJoin('school_users', 'student_rollback_transaction_bus.created_by', '=', 'school_users.idSchoolUser')
                    ->join('students', 'student_rollback_transaction_bus.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('student_rollback_transaction_bus.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('student_rollback_transaction_bus.idFinancialYear', '=', Session::get('idFinancialYear'))
                    ->select('school_users.name','ecNo','bankName','idBank', 'student_rollback_transaction_bus.idBusTransaction','student_rollback_transaction_bus.idBusLesserTransaction', 'student_rollback_transaction_bus.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', 'paymentDate', 'chequeNo');
        }

        if (($request->has('toDate') && $request->toDate != null) && ($request->has('fromDate') && $request->fromDate != null)) {
            $transactions = $transactions->whereBetween('paymentDate', [$from_date, $to_date])->get();
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $transactions = $transactions->whereBetween('paymentDate', [$from_date, $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();
        }

        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $feeHeaders = \App\BusFeehead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear', '=', Session::get('idFinancialYear'))->groupBy('feeheadName')
                        ->get()->pluck('feeheadName', 'idBusFeehead')->toArray();
        return view('schools.buses.fee_reversal', compact('classes', 'transactions', 'feeHeaders'));
    }

    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\BusFeehead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->groupBy('feeheadName')
                        ->orderBy('toDate')->get()->pluck('feeheadName', 'idBusFeehead')->toArray();
        if ($request->has('feeHeaders') && count($request->feeHeaders) > 0) {
            $transactionIds = DB::table('bus_student_transaction_details')->whereIn('bus_student_transaction_details.idBusFeehead', $request->feeHeaders)->get()->pluck('idBusTransaction')->toArray();
            $transactions = DB::table('bus_transaction')
                    ->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
                    ->leftJoin('school_users', 'bus_transaction.created_by', '=', 'school_users.idSchoolUser')
                    ->join('students', 'bus_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('bus_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('bus_transaction.idBusTransaction', $transactionIds)
                    ->select('school_users.name','ecNo','additionalAmount', 'bus_transaction.idBusTransaction', 'bus_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('bus_transaction')
                    ->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
                    ->leftJoin('school_users', 'bus_transaction.created_by', '=', 'school_users.idSchoolUser')
                    ->join('students', 'bus_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('bus_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('school_users.name','ecNo','additionalAmount','bus_transaction.idBusTransaction', 'bus_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')]);
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $transactions = $transactions->whereBetween('paymentDate', [$from_date->format('Y-m-d'), $today_date]);
        } else if ($request->has('toDate') && $request->toDate != null) {
            $transactions = $transactions->whereDate('paymentDate', '<=', $to_date);
        } 
        
        if ($request->has('sections') && count($request->sections) > 0) {
            $transactions = $transactions->whereIn('students.idSection', $request->sections);
        } else if ($request->has('classes') && count($request->classes) > 0) {
            $transactions = $transactions->whereIn('students.idClass', $request->classes);
        }  
        
        if ($request->has('paymentMode')) {
            if ($request->paymentMode == "All")
                $transactions = $transactions->get();
            else
                $transactions = $transactions->where('paymentMode', '=', $request->paymentMode)->get();
        }else {
            $transactions = $transactions->get();
        }

        if(Auth::guard('school')->user()->idSchool == 25)
        return view('schools.buses.fee_paid_royal', compact('feeHeaders', 'classes', 'transactions'));
        else
        return view('schools.buses.fee_paid', compact('feeHeaders', 'classes', '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\BusFeehead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->groupBy('feeheadName')
                        ->orderBy('toDate')->get()->pluck('feeheadName', 'idBusFeehead')->toArray();
        if ($request->has('feeHeaders') && count($request->feeHeaders) > 0) {
            $lesser_transactionIds = DB::table('bus_lesser_transaction_details')->whereIn('bus_lesser_transaction_details.idBusFeehead', $request->feeHeaders)->get()->pluck('idBusLesserTransaction')->toArray();
            ;
            $lesser_transactions = DB::table('bus_lesser_transaction')
                    ->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
                    ->leftJoin('school_users', 'bus_lesser_transaction.created_by', '=', 'school_users.idSchoolUser')
                    ->join('students', 'bus_lesser_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('bus_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('bus_lesser_transaction.idBusLesserTransaction', $lesser_transactionIds)
                    ->select('school_users.name','ecNo','additionalAmount', 'bus_lesser_transaction.idBusLesserTransaction', 'bus_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('bus_lesser_transaction')
                    ->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
                    ->leftJoin('school_users', 'bus_lesser_transaction.created_by', '=', 'school_users.idSchoolUser')
                    ->join('students', 'bus_lesser_transaction.idStudent', '=', 'students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->where('bus_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('school_users.name','ecNo','additionalAmount', 'bus_lesser_transaction.idBusLesserTransaction', 'bus_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();
        }

        if(Auth::guard('school')->user()->idSchool == 25)
        return view('schools.buses.less_fee_paid_royal', compact('classes', 'feeHeaders', 'lesser_transactions'));
        else
        return view('schools.buses.less_fee_paid', compact('classes', 'feeHeaders', 'lesser_transactions'));
    }

    public function pendingDues(Request $request) {
        if(Auth::guard('school')->user()->idSchool == 25){
            return $this->pendingDuesRoyal($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 = \App\AdmEntry::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->orderBy('idStudent');
        if ($request->has('sections') && count($request->sections) > 0) {
            $students = $students->whereIn('students.idSection', $request->sections)->get();
        } else if ($request->has('classes') && count($request->classes) > 0) {
            $students = $students->whereIn('students.idClass', $request->classes)->get();
        } else {
            $students = $students->get();
        }

        if($students->idSchool = 140)
        return view('schools.buses.pending_fee_mhws', compact('classes', 'students'));
        else 
        return view('schools.buses.pending_fee', compact('classes', 'students'));
    }

    private function pendingDuesRoyal(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 = \App\StudentTransport::where('student_transport.idSchool', '=', Auth::guard('school')->user()->idSchool)
                    ->join('students','student_transport.idStudent','=','students.idStudent')
                    ->join('classes', 'students.idClass', '=', 'classes.idClass')
                    ->join('sections', 'students.idSection', '=', 'sections.idSection')
                    ->where('student_transport.idFinancialYear','=',Session::get('idFinancialYear'))
                    ->orderBy('students.idStudent');
        if ($request->has('sections') && count($request->sections) > 0) {
            $students = $students->whereIn('students.idSection', $request->sections)->get();
        } else if ($request->has('classes') && count($request->classes) > 0) {
            $students = $students->whereIn('students.idClass', $request->classes)->get();
        } else {
            $students = $students->get();
        }
        return view('schools.buses.pending_fee_royal', 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('bus_transaction')
                ->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
                ->join('students', 'bus_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->where('bus_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->where('status', '=', 'Cancelled')
                ->select('bus_transaction.remarks','additionalAmount', 'ecNo', 'bus_transaction.idBusTransaction', 'bus_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('bus_lesser_transaction')
                ->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
                ->join('students', 'bus_lesser_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->where('bus_lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->where('status', '=', 'Cancelled')
                ->select('bus_lesser_transaction.remarks','additionalAmount', 'ecNo', 'bus_lesser_transaction.idBusLesserTransaction', 'bus_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();
        }

        if(Auth::guard('school')->user()->idSchool == 25)
        return view('schools.buses.cancelled-receipts-royal', compact('classes', 'transactions','lesser_transactions'));
        else
        return view('schools.buses.cancelled-receipts', compact('classes', 'transactions','lesser_transactions'));
    }

    public function livePreview() {
        $school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
        return view('schools.buses.live_preview', compact('school'));
    }

    
    public function daywiseBusFeeCollection(Request $request) {
        if ($request->has('date') && $request->date != null) {
            $todaydate = \Carbon\Carbon::parse($request->date)->format('Y-m-d');

            $school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
            $feeheads = DB::table('dailytransaction')
                    ->join('dailytransaction_details', 'dailytransaction.idDailyTransaction', '=', 'dailytransaction_details.idDailyTransaction')
                    ->where('idSchool', '=', $school->idSchool)
                    ->where('transactionType','=','Bus')
                    ->whereDate('dailytransaction.paymentDate', '=', $todaydate)
                    ->groupBy('headerName')
                    ->select('headerName', DB::raw('SUM(dailytransaction_details.amountPaid) AS feeheadPaidTotal'), DB::raw('SUM(dailytransaction_details.discountFeehead) AS discountTotalFeehead'))
                    ->get();
            $transactions = DB::table('dailytransaction')
                    ->whereDate('dailytransaction.paymentDate', '=', $todaydate)
                    ->where('idSchool', '=', $school->idSchool)
                    ->where('transactionType','=','Bus')
                    ->get();

            $pdf = PDF::loadView('schools.north.transaction.daycollpdf', ['margin_top' => 20], compact('transactions', 'feeheads', 'school', 'todaydate'));
            return $pdf->stream($todaydate . 'transport_collection.pdf');
        } else {
            return view('schools.north.transaction.daywise_busfeecollection', compact('transactions', 'school', 'feeheads'));
        }
     //   return view('schools.north.transaction.daywise_busfeecollection', compact('fulltransaction'));
    }
}

Copyright © 2021 - 2025 IMMREX7