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/ChequeBounceController.php

<?php

namespace App\Http\Controllers\School;

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

class ChequeBounceController extends SchoolController {

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index() {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create() {
        //
    }

    public function storeOnlineRecon(Request $request){
        if ($request->has('idTransaction')) {
            $stdcheque = \App\StudentTransaction::where('idTransaction', '=', $request->idTransaction)->where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
            $stdcheque->status = $request->status;
            $stdcheque->update();

            //fill the details into rollback
            \App\RollbackTransaction::insert($stdcheque->toArray());
            $stdtransaction_dets = \App\StudentTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
            foreach ($stdtransaction_dets as $var) {
                $det = \App\StudentTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
                $det->status = $request->status;
                $det->update();

                //fill details in rollback details
                unset($det->idTransactionDetail);
                \App\RollbackTransactionDetails::insert($det->toArray());
            }

        }else if($request->has('idLesserTransaction')){
            $stdcheque = \App\LesserTransaction::where('idLesserTransaction', '=', $request->idLesserTransaction)->where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
            $stdcheque->status = $request->status;
            $stdcheque->update();

            \App\RollbackTransaction::insert($stdcheque->toArray());
            $stdtransaction_dets = \App\LesserTransactionDetail::where('idLesserTransaction', '=', $request->idLesserTransaction)->get();
            foreach ($stdtransaction_dets as $var) {
                $det = \App\LesserTransactionDetail::where('idLessTransactionDet', '=', $var->idLessTransactionDet)->first();
                $det->status = $request->status;
                $det->update();

                //fill details in rollback details
                unset($det->idLessTransactionDet);
                \App\RollbackTransactionDetails::insert($det->toArray());
            }
        }

        flash('Status has been updated Successfully !!');
        return redirect()->back();
    }

    public function onlineRecon(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');
        }
        $classes = ['' => '--Select Class--'] + \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();

        $chequelist = DB::table('student_transaction')
               // ->join('banks', 'student_transaction.idBank', '=', 'banks.idBank')
                ->leftJoin('school_users', 'student_transaction.created_by', '=', 'school_users.idSchoolUser')
                ->join('students', 'student_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->select('student_transaction.*','school_users.name','students.*','classes.*','sections.*')
//                ->where('student_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->where('student_transaction.paymentMode', '=', "Online");
                
        $lesserchequelist = DB::table('lesser_transaction')
                //->join('banks', 'lesser_transaction.idBank', '=', 'banks.idBank')
                ->leftJoin('school_users', 'lesser_transaction.created_by', '=', 'school_users.idSchoolUser')
                ->join('students', 'lesser_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
//                ->where('lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->select('lesser_transaction.*','school_users.name','students.*','classes.*','sections.*')
                ->where('lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
                ->where('lesser_transaction.paymentMode', '=', "Online");



        if ($request->idClass != null && $request->idSection != null && $request->idFinancialYear != null) {
            $chequelist = $chequelist->where('student_transaction.idFinancialYear', '=', $request->idFinancialYear)
                    ->where('students.idClass', '=', $request->idClass)
                    ->where('students.idSection', '=', $request->idSection)
                    ->where(function($query) {
                        $query->whereNull('student_transaction.status');
                        $query->orWhere('student_transaction.status', '=', 'Cleared');
                        $query->orWhere('student_transaction.status', '=', 'In-Process');
                        $query->orWhere('student_transaction.status', '=', 'Success');
                        $query->orWhere('student_transaction.status', '=', 'Bounced');
                    });
            $lesserchequelist = $lesserchequelist->where('lesser_transaction.idFinancialYear', '=', $request->idFinancialYear)
                    ->where('students.idClass', '=', $request->idClass)
                    ->where('students.idSection', '=', $request->idSection);
        } else if($request->idFinancialYear != null){
            $chequelist = $chequelist->where('student_transaction.idFinancialYear', '=', $request->idFinancialYear);
            $lesserchequelist = $lesserchequelist->where('lesser_transaction.idFinancialYear', '=', $request->idFinancialYear);
        }else if($request->ecNo != null) {
            $chequelist = $chequelist->where('students.ecNo', '=', $request->ecNo);
            $lesserchequelist = $lesserchequelist->where('students.ecNo', '=', $request->ecNo);
        } else {
            $lesserchequelist = $lesserchequelist->where('lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'));
            $chequelist = $chequelist->where('student_transaction.idFinancialYear', '=', Session::get('idFinancialYear'));
        }

        if($request->has('cheque-status')){
            $status = $request->get('cheque-status');
            $chequelist = $chequelist->where(function($query) use ($status){
                $query->where('student_transaction.status', '=', $status);
            });
            $lesserchequelist = $lesserchequelist->where(function($query) use ($status){
                $query->where('lesser_transaction.status', '=', $status);
            });
        }else{
            $chequelist = $chequelist->where(function($query) {
                $query->whereNull('student_transaction.status');
                $query->orWhere('student_transaction.status', '=', 'Cleared');
                $query->orWhere('student_transaction.status', '=', 'In-Process');
                $query->orWhere('student_transaction.status', '=', 'Success');
                $query->orWhere('student_transaction.status', '=', 'Bounced');
            });
            $lesserchequelist = $lesserchequelist->where(function($query) {
                $query->whereNull('lesser_transaction.status');
                $query->orWhere('lesser_transaction.status', '=', 'Cleared');
                $query->orWhere('lesser_transaction.status', '=', 'In-Process');
                $query->orWhere('lesser_transaction.status', '=', 'Success');
                $query->orWhere('lesser_transaction.status', '=', 'Bounced');
            });
        }

        if (($request->has('toDate') && $request->toDate != null) && ($request->has('fromDate') && $request->fromDate != null)) {
            $chequelist = $chequelist->whereBetween('paymentDate', [$from_date, $to_date]);
            $lesserchequelist = $lesserchequelist->whereBetween('paymentDate', [$from_date, $to_date]);
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $chequelist = $chequelist->whereDate('paymentDate', '>=', $to_date);
            $lesserchequelist = $lesserchequelist->whereDate('paymentDate', '>=', $to_date);
        } else if ($request->has('toDate') && $request->toDate != null) {
            $chequelist = $chequelist->whereDate('paymentDate', '<=', $to_date);
            $lesserchequelist = $lesserchequelist->whereDate('paymentDate', '<=', $to_date);
        }

        $chequelist = $chequelist->get();
        $lesserchequelist = $lesserchequelist->get();
        
        return view('schools.transaction.onlinelist', compact('lesserchequelist', 'chequelist', 'classes'));
    }


    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request) {
        $acessAmount = 0;
        if ($request->has('idTransaction')) {

            if($request->has('feetype')){
                if ($request->status == 'Bounced') {
                    $stdcheque = \App\StudentExtraTransaction::where('idTransaction', '=', $request->idTransaction)->where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
                    $stdcheque->status = 'Bounced';
    
                    $acessAmount = $stdcheque->excessAmountUsed;
                    $stdcheque->chequeBounceCharge = $request->chequeBounceCharge;
                    DB::beginTransaction();
                    $stdcheque->update();

                    //fill the details into rollback
                    \App\RollbackTransaction::insert($stdcheque->toArray());
                    $stdtransaction_dets = \App\StudentExtraTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
                    foreach ($stdtransaction_dets as $var) {
                        $det = \App\StudentExtraTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
                        $det->status = 'Bounced';
                        $det->update();

                        //fill details in rollback details
                        unset($det->idTransactionDetail);
                        \App\RollbackTransactionDetails::insert($det->toArray());
                    }
                    



                    DB::commit();
    
                    if ($acessAmount > 0) {
                        $excess_transaction = DB::table('excess_transaction_extra')
                                        ->join('student_transaction_extra', 'excess_transaction_extra.idTransaction', '=', 'student_transaction_extra.idTransaction')
                                        ->where('idStudent', '=', $request->idStudent)
                                        ->where('idFinancialYear', '=', $request->idFinancialYear)
                                        ->where(function($query) {
                                            $query->whereNull('status');
                                            $query->orWhere('status', '=', 'Cleared');
                                            $query->orWhere('status', '=', 'In-Process');
                                            $query->orWhere('status', '=', 'Success');
                                        })
                                        ->where('excess_transaction_extra.isActive', '=', 'Y')
                                        ->orderBy('excess_transaction_extra.idTransaction', 'desc')->first();
                        if (isset($excess_transaction))
                            $acessAmount = $acessAmount + $excess_transaction->excessAmount;
    
                        $excess = new \App\ExcessTransaction();
                        $excess->idTransaction = $request->idTransaction;
                        $excess->excessAmount = $acessAmount;
                        $excess->remarks = "Access amount has been reverted to this transaction and previous access amount has been added";
                        $excess->save();
                    }
                } else if ($request->status == 'Cleared') {
    
                    $stdcheque = \App\StudentExtraTransaction::where('idTransaction', '=', $request->idTransaction)->where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
                    $stdcheque->status = 'Cleared';
                    DB::beginTransaction();
                    $stdcheque->update();
                    $stdtransaction_dets = \App\StudentExtraTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
                    foreach ($stdtransaction_dets as $var) {
                        $det = \App\StudentExtraTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
                        $det->status = 'Cleared';
                        $det->update();
                    }
                    DB::commit();
    
                    $excess_transaction = DB::table('excess_transaction_extra')
                                    ->join('student_transaction_extra', 'excess_transaction_extra.idTransaction', '=', 'student_transaction_extra.idTransaction')
                                    ->where('idStudent', '=', $request->idStudent)
                                    ->where('idFinancialYear', '=', $request->idFinancialYear)
                                    ->where(function($query) {
                                        $query->whereNull('status');
                                        $query->orWhere('status', '=', 'Cleared');
                                        $query->orWhere('status', '=', 'In-Process');
                                        $query->orWhere('status', '=', 'Success');
                                    })
                                    ->where('excess_transaction_extra.isActive', '=', 'Y')
                                    ->orderBy('excess_transaction_extra.idTransaction', 'desc')->first();
    
                    if (isset($excess_transaction)) {
                        $acessAmount = $acessAmount + $excess_transaction->excessAmount;
    
                        $excess_pending_transaction = DB::table('excess_transaction_extra')
                                ->where('idTransaction', $request->idTransaction)
                                ->where('isActive', 'P')
                                ->first();
    
                        if ($excess_pending_transaction) {
                            $acessAmount = $acessAmount + $excess_pending_transaction->excessAmount;
    
                            DB::table('excess_transaction_extra')
                                    ->where('idTransaction', $request->idTransaction)
                                    ->update(['isActive' => 'N']);
                        }
    
                        $excess = new \App\ExcessTransaction();
                        $excess->idTransaction = $request->idTransaction;
                        $excess->excessAmount = $acessAmount;
                        $excess->remarks = "Access amount has been adjusted to this transaction";
                        $excess->save();
                    } else {
                        DB::table('excess_transaction_extra')
                                ->where('idTransaction', $request->idTransaction)
                                ->update(['isActive' => 'Y', 'remarks' => 'Access amount active on cheque clearance']);
                    }
                } else {
                    $stdcheque = \App\StudentExtraTransaction::where('idTransaction', '=', $request->idTransaction)->where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
                    $stdcheque->status = 'In-Process';
                    DB::beginTransaction();
                    $stdcheque->update();
                    $stdtransaction_dets = \App\StudentExtraTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
                    foreach ($stdtransaction_dets as $var) {
                        $det = \App\StudentExtraTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
                        $det->status = 'In-Process';
                        $det->update();
                    }
                    DB::commit();
                }
            }else{
                if ($request->status == 'Bounced') {
                    $acessAmount = 0;
                    $stdcheque = \App\StudentTransaction::where('idTransaction', '=', $request->idTransaction)->first();
                    $stdcheque->status = 'Bounced';
    
                    $acessAmount = $stdcheque->excessAmountUsed;
                    $stdcheque->chequeBounceCharge = $request->chequeBounceCharge;
                    DB::beginTransaction();
                    $stdcheque->update();

                    \App\RollbackTransaction::insert($stdcheque->toArray());
                    $stdtransaction_dets = \App\StudentTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
                    foreach ($stdtransaction_dets as $var) {
                        $det = \App\StudentTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
                        $det->status = 'Bounced';
                        $det->update();

                        //fill details in rollback details
                        unset($det->idTransactionDetail);
                        \App\RollbackTransactionDetails::insert($det->toArray());
                    }
                    DB::commit();
    
                    if ($acessAmount > 0) {
                        $excess_transaction = DB::table('excess_transaction')
                                        ->join('student_transaction', 'excess_transaction.idTransaction', '=', 'student_transaction.idTransaction')
                                        ->where('idStudent', '=', $request->idStudent)
                                        ->where('idFinancialYear', '=', $request->idFinancialYear)
                                        ->where(function($query) {
                                            $query->whereNull('status');
                                            $query->orWhere('status', '=', 'Cleared');
                                            $query->orWhere('status', '=', 'In-Process');
                                            $query->orWhere('status', '=', 'Success');
                                        })
                                        ->where('excess_transaction.isActive', '=', 'Y')
                                        ->orderBy('excess_transaction.idTransaction', 'desc')->first();
                        if (isset($excess_transaction))
                            $acessAmount = $acessAmount + $excess_transaction->excessAmount;
    
                        $excess = new \App\ExcessTransaction();
                        $excess->idTransaction = $request->idTransaction;
                        $excess->excessAmount = $acessAmount;
                        $excess->remarks = "Access amount has been reverted to this transaction and previous access amount has been added";
                        $excess->save();
                    }
                } else if ($request->status == 'Cleared') {
    
                    $stdcheque = \App\StudentTransaction::where('idTransaction', '=', $request->idTransaction)->first();
                    $stdcheque->status = 'Cleared';
                    DB::beginTransaction();
                    $stdcheque->update();
                    $stdtransaction_dets = \App\StudentTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
                    foreach ($stdtransaction_dets as $var) {
                        $det = \App\StudentTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
                        $det->status = 'Cleared';
                        $det->update();
                    }
                    DB::commit();
    
                    $excess_transaction = DB::table('excess_transaction')
                                    ->join('student_transaction', 'excess_transaction.idTransaction', '=', 'student_transaction.idTransaction')
                                    ->where('idStudent', '=', $request->idStudent)
                                    ->where('idFinancialYear', '=', $request->idFinancialYear)
                                    ->where(function($query) {
                                        $query->whereNull('status');
                                        $query->orWhere('status', '=', 'Cleared');
                                        $query->orWhere('status', '=', 'In-Process');
                                        $query->orWhere('status', '=', 'Success');
                                    })
                                    ->where('excess_transaction.isActive', '=', 'Y')
                                    ->orderBy('excess_transaction.idTransaction', 'desc')->first();
    
                    if (isset($excess_transaction)) {
                        $acessAmount = $acessAmount + $excess_transaction->excessAmount;
    
                        $excess_pending_transaction = DB::table('excess_transaction')
                                ->where('idTransaction', $request->idTransaction)
                                ->where('isActive', 'P')
                                ->first();
    
                        if ($excess_pending_transaction) {
                            $acessAmount = $acessAmount + $excess_pending_transaction->excessAmount;
    
                            DB::table('excess_transaction')
                                    ->where('idTransaction', $request->idTransaction)
                                    ->update(['isActive' => 'N']);
                        }
    
                        $excess = new \App\ExcessTransaction();
                        $excess->idTransaction = $request->idTransaction;
                        $excess->excessAmount = $acessAmount;
                        $excess->remarks = "Access amount has been adjusted to this transaction";
                        $excess->save();
                    } else {
                        DB::table('excess_transaction')
                                ->where('idTransaction', $request->idTransaction)
                                ->update(['isActive' => 'Y', 'remarks' => 'Access amount active on cheque clearance']);
                    }
                } else {
                    $stdcheque = \App\StudentTransaction::where('idTransaction', '=', $request->idTransaction)->first();
                    $stdcheque->status = 'In-Process';
                    DB::beginTransaction();
                    $stdcheque->update();
                    $stdtransaction_dets = \App\StudentTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
                    foreach ($stdtransaction_dets as $var) {
                        $det = \App\StudentTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
                        $det->status = 'In-Process';
                        $det->update();
                    }
                    DB::commit();
                }
            }
        } else {
            if ($request->status == 'Bounced') {
                $acessAmount = 0;
                $stdcheque = \App\LesserTransaction::where('idLesserTransaction', '=', $request->idLesserTransaction)->first();
                $stdcheque->status = 'Bounced';

                $acessAmount = $stdcheque->excessAmountUsed;
                $stdcheque->chequeBounceCharge = $request->chequeBounceCharge;
                DB::beginTransaction();
                $stdcheque->update();

                \App\RollbackTransaction::insert($stdcheque->toArray());
                $stdtransaction_dets = \App\LesserTransactionDetail::where('idLesserTransaction', '=', $request->idLesserTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\LesserTransactionDetail::where('idLessTransactionDet', '=', $var->idLessTransactionDet)->first();
                    $det->status = 'Bounced';
                    $det->update();

                    //fill details in rollback details
                    unset($det->idLessTransactionDet);
                    \App\RollbackTransactionDetails::insert($det->toArray());
                }
                DB::commit();

                if ($acessAmount > 0) {
                    $excess_transaction = DB::table('excess_transaction')
                                    ->join('lesser_transaction', 'excess_transaction.idTransaction', '=', 'student_transaction.idTransaction')
                                    ->where('idStudent', '=', $request->idStudent)
                                    ->where('idFinancialYear', '=', $request->idFinancialYear)
                                    ->where(function($query) {
                                        $query->whereNull('status');
                                        $query->orWhere('status', '=', 'Cleared');
                                        $query->orWhere('status', '=', 'In-Process');
                                        $query->orWhere('status', '=', 'Success');
                                    })
                                    ->where('excess_transaction.isActive', '=', 'Y')
                                    ->orderBy('excess_transaction.idTransaction', 'desc')->first();
                    if (isset($excess_transaction))
                        $acessAmount = $acessAmount + $excess_transaction->excessAmount;

                    $excess = new \App\ExcessTransaction();
                    $excess->idTransaction = $request->idTransaction;
                    $excess->excessAmount = $acessAmount;
                    $excess->remarks = "Access amount has been reverted to this transaction and previous access amount has been added";
                    $excess->save();
                }
            } else if ($request->status == 'Cleared') {

                $stdcheque = \App\LesserTransaction::where('idLesserTransaction', '=', $request->idLesserTransaction)->first();
                $stdcheque->status = 'Cleared';
                DB::beginTransaction();
                $stdcheque->update();
                $stdtransaction_dets = \App\LesserTransactionDetail::where('idLesserTransaction', '=', $request->idLesserTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\LesserTransactionDetail::where('idLessTransactionDet', '=', $var->idLessTransactionDet)->first();
                    $det->status = 'Cleared';
                    $det->update();
                }
                DB::commit();

                $excess_transaction = DB::table('excess_transaction')
                                ->join('student_transaction', 'excess_transaction.idTransaction', '=', 'student_transaction.idTransaction')
                                ->where('idStudent', '=', $request->idStudent)
                                ->where('idFinancialYear', '=', $request->idFinancialYear)
                                ->where(function($query) {
                                    $query->whereNull('status');
                                    $query->orWhere('status', '=', 'Cleared');
                                    $query->orWhere('status', '=', 'In-Process');
                                    $query->orWhere('status', '=', 'Success');
                                })
                                ->where('excess_transaction.isActive', '=', 'Y')
                                ->orderBy('excess_transaction.idTransaction', 'desc')->first();

                if (isset($excess_transaction)) {
                    $acessAmount = $acessAmount + $excess_transaction->excessAmount;

                    $excess_pending_transaction = DB::table('excess_transaction')
                            ->where('idTransaction', $request->idTransaction)
                            ->where('isActive', 'P')
                            ->first();

                    if ($excess_pending_transaction) {
                        $acessAmount = $acessAmount + $excess_pending_transaction->excessAmount;

                        DB::table('excess_transaction')
                                ->where('idTransaction', $request->idTransaction)
                                ->update(['isActive' => 'N']);
                    }

                    $excess = new \App\ExcessTransaction();
                    $excess->idTransaction = $request->idTransaction;
                    $excess->excessAmount = $acessAmount;
                    $excess->remarks = "Access amount has been adjusted to this transaction";
                    $excess->save();
                } else {
                    DB::table('excess_transaction')
                            ->where('idTransaction', $request->idTransaction)
                            ->update(['isActive' => 'Y', 'remarks' => 'Access amount active on cheque clearance']);
                }
            } else {
                $stdcheque = \App\LesserTransaction::where('idLesserTransaction', '=', $request->idLesserTransaction)->first();
                $stdcheque->status = 'In-Process';
                DB::beginTransaction();
                $stdcheque->update();
                $stdtransaction_dets = \App\LesserTransactionDetail::where('idLesserTransaction', '=', $request->idLesserTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\LesserTransactionDetail::where('idLessTransactionDet', '=', $var->idLessTransactionDet)->first();
                    $det->status = 'In-Process';
                    $det->update();
                }
                DB::commit();
            }
        }

        flash('Status has been updated Successfully !!');

        if($request->has('feetype'))
        return redirect('school/chequelist-extra');
        else
        return redirect('school/chequelist');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id) {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id) {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id) {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id) {
        //
    }

    public function getChequeList(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');
        }
        $classes = ['' => '--Select Class--'] + \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $chequelist = DB::table('student_transaction')
                ->join('banks', 'student_transaction.idBank', '=', 'banks.idBank')
                ->leftJoin('school_users', 'student_transaction.created_by', '=', 'school_users.idSchoolUser')
                ->join('students', 'student_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->select('student_transaction.*','banks.*','school_users.name','students.*','classes.*','sections.*')
//                ->where('student_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool);
        $lesserchequelist = DB::table('lesser_transaction')
                ->join('banks', 'lesser_transaction.idBank', '=', 'banks.idBank')
                ->leftJoin('school_users', 'lesser_transaction.created_by', '=', 'school_users.idSchoolUser')
                ->join('students', 'lesser_transaction.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
//                ->where('lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->select('lesser_transaction.*','banks.*','school_users.name','students.*','classes.*','sections.*')
                ->where('lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool);
        if ($request->idClass != null && $request->idSection != null && $request->idFinancialYear != null) {
            $chequelist = $chequelist->where('student_transaction.idFinancialYear', '=', $request->idFinancialYear)
                    ->where('students.idClass', '=', $request->idClass)
                    ->where('students.idSection', '=', $request->idSection)
                    ->where(function($query) {
                        $query->whereNull('student_transaction.status');
                        $query->orWhere('student_transaction.status', '=', 'Cleared');
                        $query->orWhere('student_transaction.status', '=', 'In-Process');
                        $query->orWhere('student_transaction.status', '=', 'Success');
                        $query->orWhere('student_transaction.status', '=', 'Bounced');
                    });
            $lesserchequelist = $lesserchequelist->where('lesser_transaction.idFinancialYear', '=', $request->idFinancialYear)
                    ->where('students.idClass', '=', $request->idClass)
                    ->where('students.idSection', '=', $request->idSection);
        } else if($request->idFinancialYear != null){
            $chequelist = $chequelist->where('student_transaction.idFinancialYear', '=', $request->idFinancialYear);
            $lesserchequelist = $lesserchequelist->where('lesser_transaction.idFinancialYear', '=', $request->idFinancialYear);
        }else if($request->ecNo != null) {
            $chequelist = $chequelist->where('students.ecNo', '=', $request->ecNo);
            $lesserchequelist = $lesserchequelist->where('students.ecNo', '=', $request->ecNo);
        } else {
            $lesserchequelist = $lesserchequelist->where('lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'));
            $chequelist = $chequelist->where('student_transaction.idFinancialYear', '=', Session::get('idFinancialYear'));
        }

        if($request->has('cheque-status')){
            $status = $request->get('cheque-status');
            $chequelist = $chequelist->where(function($query) use ($status){
                $query->where('student_transaction.status', '=', $status);
            });
            $lesserchequelist = $lesserchequelist->where(function($query) use ($status){
                $query->where('lesser_transaction.status', '=', $status);
            });
        }else{
            $chequelist = $chequelist->where(function($query) {
                $query->whereNull('student_transaction.status');
                $query->orWhere('student_transaction.status', '=', 'Cleared');
                $query->orWhere('student_transaction.status', '=', 'In-Process');
                $query->orWhere('student_transaction.status', '=', 'Success');
                $query->orWhere('student_transaction.status', '=', 'Bounced');
            });
            $lesserchequelist = $lesserchequelist->where(function($query) {
                $query->whereNull('lesser_transaction.status');
                $query->orWhere('lesser_transaction.status', '=', 'Cleared');
                $query->orWhere('lesser_transaction.status', '=', 'In-Process');
                $query->orWhere('lesser_transaction.status', '=', 'Success');
                $query->orWhere('lesser_transaction.status', '=', 'Bounced');
            });
        }

        if (($request->has('toDate') && $request->toDate != null) && ($request->has('fromDate') && $request->fromDate != null)) {
            $chequelist = $chequelist->whereBetween('paymentDate', [$from_date, $to_date]);
            $lesserchequelist = $lesserchequelist->whereBetween('paymentDate', [$from_date, $to_date]);
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $chequelist = $chequelist->whereDate('paymentDate', '>=', $to_date);
            $lesserchequelist = $lesserchequelist->whereDate('paymentDate', '>=', $to_date);
        } else if ($request->has('toDate') && $request->toDate != null) {
            $chequelist = $chequelist->whereDate('paymentDate', '<=', $to_date);
            $lesserchequelist = $lesserchequelist->whereDate('paymentDate', '<=', $to_date);
        }

        $chequelist = $chequelist->get();
        $lesserchequelist = $lesserchequelist->get();
        
        return view('schools.transaction.chequelist', compact('lesserchequelist', 'chequelist', 'classes'));
    }



    public function getChequeListExtra(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');
        }
        $classes = ['' => '--Select Class--'] + \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $chequelist = DB::table('student_transaction_extra')
                ->join('banks', 'student_transaction_extra.idBank', '=', 'banks.idBank')
                ->leftJoin('school_users', 'student_transaction_extra.created_by', '=', 'school_users.idSchoolUser')
                ->join('students', 'student_transaction_extra.idStudent', '=', 'students.idStudent')
                ->join('classes', 'students.idClass', '=', 'classes.idClass')
                ->join('sections', 'students.idSection', '=', 'sections.idSection')
                ->select('student_transaction_extra.*','banks.*','school_users.name','students.*','classes.*','sections.*')
//                ->where('student_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
                ->where('student_transaction_extra.idSchool', '=', Auth::guard('school')->user()->idSchool);
        if ($request->idClass != null && $request->idSection != null && $request->idFinancialYear != null) {
            $chequelist = $chequelist->where('student_transaction_extra.idFinancialYear', '=', $request->idFinancialYear)
                    ->where('students.idClass', '=', $request->idClass)
                    ->where('students.idSection', '=', $request->idSection)
                    ->where(function($query) {
                        $query->whereNull('student_transaction_extra.status');
                        $query->orWhere('student_transaction_extra.status', '=', 'Cleared');
                        $query->orWhere('student_transaction_extra.status', '=', 'In-Process');
                        $query->orWhere('student_transaction_extra.status', '=', 'Success');
                        $query->orWhere('student_transaction_extra.status', '=', 'Bounced');
                    });
        } else if($request->idFinancialYear != null){
            $chequelist = $chequelist->where('student_transaction_extra.idFinancialYear', '=', $request->idFinancialYear)
                    ->where(function($query) {
                        $query->whereNull('student_transaction_extra.status');
                        $query->orWhere('student_transaction_extra.status', '=', 'Cleared');
                        $query->orWhere('student_transaction_extra.status', '=', 'In-Process');
                        $query->orWhere('student_transaction_extra.status', '=', 'Success');
                        $query->orWhere('student_transaction_extra.status', '=', 'Bounced');
                    });
        }else if($request->ecNo != null) {
            $chequelist = $chequelist->where('students.ecNo', '=', $request->ecNo);
        } else {
            $chequelist = $chequelist->where('student_transaction_extra.idFinancialYear', '=', Session::get('idFinancialYear'))
            ->where(function($query) {
                $query->whereNull('student_transaction_extra.status');
                $query->orWhere('student_transaction_extra.status', '=', 'Cleared');
                $query->orWhere('student_transaction_extra.status', '=', 'In-Process');
                $query->orWhere('student_transaction_extra.status', '=', 'Success');
                $query->orWhere('student_transaction_extra.status', '=', 'Bounced');
            });
        }

        if (($request->has('toDate') && $request->toDate != null) && ($request->has('fromDate') && $request->fromDate != null)) {
            $chequelist = $chequelist->whereBetween('paymentDate', [$from_date, $to_date]);
        } else if ($request->has('fromDate') && $request->fromDate != null) {
            $chequelist = $chequelist->whereDate('paymentDate', '>=', $to_date);
        } else if ($request->has('toDate') && $request->toDate != null) {
            $chequelist = $chequelist->whereDate('paymentDate', '<=', $to_date);
        }

        $chequelist = $chequelist->get();
        return view('schools.transaction.chequelist-extra', compact('chequelist', 'classes'));
    }

}

Copyright © 2021 - 2025 IMMREX7