IMMREX7
<?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 -