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

<?php

namespace App\Http\Controllers\School\Hostel;

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

class HostelFeeChequeController extends SchoolController {

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request) {
        $classes = ['' => '--Select Class--'] + \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $fys = ['' => '--Select Academic Year--'] + \App\FinancialYear::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idFinancialYear')->get()->pluck('financialYearName', 'idFinancialYear')->toArray();
        $chequelist = DB::table('hostel_transaction')
                ->join('banks', 'hostel_transaction.idBank', '=', 'banks.idBank')
                ->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);
        $lesserchequelist = DB::table('hostel_lesser_transaction')
                ->join('banks', 'hostel_lesser_transaction.idBank', '=', 'banks.idBank')
                ->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);
        if ($request->idClass != null && $request->idSection != null && $request->idFinancialYear != null) {
            $chequelist = $chequelist->where('hostel_transaction.idFinancialYear', '=', $request->idFinancialYear)
                    ->where('students.idClass', '=', $request->idClass)
                    ->where('students.idSection', '=', $request->idSection)
                    ->get();
            $lesserchequelist = $lesserchequelist->where('hostel_lesser_transaction.idFinancialYear', '=', $request->idFinancialYear)
                    ->where('students.idClass', '=', $request->idClass)
                    ->where('students.idSection', '=', $request->idSection)
                    ->get();
        } else if ($request->ecNo != null) {
            $chequelist = $chequelist->where('students.ecNo', '=', $request->ecNo)
                    ->get();
            $lesserchequelist = $lesserchequelist->where('students.ecNo', '=', $request->ecNo)
                    ->get();
        } else if ($request->idFinancialYear != null) {
            $chequelist = $chequelist->where('hostel_transaction.idFinancialYear', '=', $request->idFinancialYear)->where('students.ecNo', '=', $request->ecNo)
                    ->get();
            $lesserchequelist = $lesserchequelist->where('hostel_lesser_transaction.idFinancialYear', '=', $request->idFinancialYear)->where('students.ecNo', '=', $request->ecNo)
                    ->get();
        } else {
            $lesserchequelist = $lesserchequelist->where('hostel_lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))->get();
            $chequelist = $chequelist->where('hostel_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))->get();
        }
        return view('schools.hostel.chequelist', compact('lesserchequelist', 'chequelist', 'classes', 'fys'));
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request) {
        if ($request->has('idHostelTransaction')) {
            if ($request->status == 'Bounced') {
                $acessAmount = 0;
                $stdcheque = \App\HostelTransaction::where('idHostelTransaction', '=', $request->idHostelTransaction)->first();
                $stdcheque->status = 'Bounced';

                $acessAmount = $stdcheque->excessAmountUsed;
                $stdcheque->chequeBounceCharge = $request->chequeBounceCharge;
                DB::beginTransaction();
                $stdcheque->update();
                $stdtransaction_dets = \App\HostelTransactionDetail::where('idHostelTransaction', '=', $request->idHostelTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\HostelTransactionDetail::where('idHostelTransactionDetail', '=', $var->idHostelTransactionDetail)->first();
                    $det->status = 'Bounced';
                    $det->update();
                }
                DB::commit();

                if ($acessAmount > 0) {
                    $excess_transaction = DB::table('hostel_excess_transaction')
                                    ->join('hostel_transaction', 'hostel_excess_transaction.idHostelTransaction', '=', 'hostel_transaction.idHostelTransaction')
                                    ->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('hostel_excess_transaction.isActive', '=', 'Y')
                                    ->orderBy('hostel_excess_transaction.idHostelTransaction', 'desc')->first();
                    if (isset($excess_transaction))
                        $acessAmount = $acessAmount + $excess_transaction->excessAmount;

                    $excess = new \App\HostelExcessTransaction();
                    $excess->idHostelTransaction = $request->idHostelTransaction;
                    $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\HostelTransaction::where('idHostelTransaction', '=', $request->idHostelTransaction)->first();
                $stdcheque->status = 'Cleared';
                DB::beginTransaction();
                $stdcheque->update();
                $stdtransaction_dets = \App\HostelTransactionDetail::where('idHostelTransaction', '=', $request->idHostelTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\HostelTransactionDetail::where('idHostelTransactionDetail', '=', $var->idHostelTransactionDetail)->first();
                    $det->status = 'Cleared';
                    $det->update();
                }
                DB::commit();

                $excess_transaction = DB::table('hostel_excess_transaction')
                                ->join('hostel_transaction', 'hostel_excess_transaction.idHostelTransaction', '=', 'hostel_transaction.idHostelTransaction')
                                ->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('hostel_excess_transaction.isActive', '=', 'Y')
                                ->orderBy('hostel_excess_transaction.idHostelTransaction', 'desc')->first();

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

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

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

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

                    $excess = new \App\HostelExcessTransaction();
                    $excess->idHostelTransaction = $request->idHostelTransaction;
                    $excess->excessAmount = $acessAmount;
                    $excess->remarks = "Access amount has been adjusted to this transaction";
                    $excess->save();
                } else {
                    DB::table('hostel_excess_transaction')
                            ->where('idHostelTransaction', $request->idHostelTransaction)
                            ->update(['isActive' => 'Y', 'remarks' => 'Access amount active on cheque clearance']);
                }
            } else {
                $stdcheque = \App\HostelTransaction::where('idHostelTransaction', '=', $request->idHostelTransaction)->first();
                $stdcheque->status = 'In-Process';
                DB::beginTransaction();
                $stdcheque->update();
                $stdtransaction_dets = \App\HostelTransactionDetail::where('idHostelTransaction', '=', $request->idHostelTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\HostelTransactionDetail::where('idHostelTransactionDetail', '=', $var->idHostelTransactionDetail)->first();
                    $det->status = 'In-Process';
                    $det->update();
                }
                DB::commit();
            }
        } else {
            if ($request->status == 'Bounced') {
                $acessAmount = 0;
                $stdcheque = \App\HostelLesserTransaction::where('idHostelLesserTransaction', '=', $request->idHostelLesserTransaction)->first();
                $stdcheque->status = 'Bounced';

                $acessAmount = $stdcheque->excessAmountUsed;
                $stdcheque->chequeBounceCharge = $request->chequeBounceCharge;
                DB::beginTransaction();
                $stdcheque->update();
                $stdtransaction_dets = \App\HostelLesserTransactionDetail::where('idHostelLesserTransaction', '=', $request->idHostelLesserTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\HostelLesserTransactionDetail::where('idHostelLessTransactionDet', '=', $var->idHostelLessTransactionDet)->first();
                    $det->status = 'Bounced';
                    $det->update();
                }
                DB::commit();

                if ($acessAmount > 0) {
                    $excess_transaction = DB::table('hostel_excess_transaction')
                                    ->join('hostel_lesser_transaction', 'hostel_excess_transaction.idHostelTransaction', '=', 'hostel_transaction.idHostelTransaction')
                                    ->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('hostel_excess_transaction.isActive', '=', 'Y')
                                    ->orderBy('hostel_excess_transaction.idHostelTransaction', 'desc')->first();
                    if (isset($excess_transaction))
                        $acessAmount = $acessAmount + $excess_transaction->excessAmount;

                    $excess = new \App\HostelExcessTransaction();
                    $excess->idHostelTransaction = $request->idHostelTransaction;
                    $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\HostelLesserTransaction::where('idHostelLesserTransaction', '=', $request->idHostelLesserTransaction)->first();
                $stdcheque->status = 'Cleared';
                DB::beginTransaction();
                $stdcheque->update();
                $stdtransaction_dets = \App\HostelLesserTransactionDetail::where('idHostelLesserTransaction', '=', $request->idHostelLesserTransaction)->get();
                foreach ($stdtransaction_dets as $var) {
                    $det = \App\LesserTransactionDetail::where('idHostelLessTransactionDet', '=', $var->idHostelLessTransactionDet)->first();
                    $det->status = 'Cleared';
                    $det->update();
                }
                DB::commit();

                $excess_transaction = DB::table('hostel_excess_transaction')
                                ->join('hostel_transaction', 'hostel_excess_transaction.idHostelTransaction', '=', 'hostel_transaction.idHostelTransaction')
                                ->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('hostel_excess_transaction.isActive', '=', 'Y')
                                ->orderBy('hostel_excess_transaction.idHostelTransaction', 'desc')->first();

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

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

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

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

                    $excess = new \App\HostelExcessTransaction();
                    $excess->idHostelTransaction = $request->idHostelTransaction;
                    $excess->excessAmount = $acessAmount;
                    $excess->remarks = "Access amount has been adjusted to this transaction";
                    $excess->save();
                } else {
                    DB::table('hostel_excess_transaction')
                            ->where('idHostelTransaction', $request->idHostelTransaction)
                            ->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 !!');
        return redirect('school/hostelcheques');
    }

    /**
     * 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) {
        //
    }

}

Copyright © 2021 - 2025 IMMREX7