IMMREX7
<?php
namespace App\Http\Controllers\School;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
use DB;
use PDF;
use Session;
use Carbon\Carbon;
class StdTransactionReportController extends SchoolController {
public function showPurchase($rid,Request $request){
$transaction = \App\ShopTransaction::where('idTransaction', '=', $rid)->first();
return view('schools.reports.item_report', compact('transaction'));
}
public function markPurchase($rid){
$transaction = \App\ShopTransaction::where('idTransaction', '=', $rid)->first();
$transaction->is_received = "Yes";
$transaction->update();
return redirect()->back()->with('report-message', 'Status of received changed successfully');
}
public function printPurchase($rid,Request $request){
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$transaction = \App\ShopTransaction::where('idTransaction', '=', $rid)->first();
$student = \App\AdmEntry::where('idStudent', '=', $transaction->idStudent)->first();
$pdf = PDF::loadView('schools.transaction.print_receipt_shop', ['margin_top' => 20], compact('transaction', 'school', 'student'));
return $pdf->stream('feereceipt.pdf');
}
public function purchaseHistory(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 = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$transactions = DB::table('shop_transaction')
->join('students', 'shop_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('shop_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('shop_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->where(function($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'Success');
})
->select('ecNo','shop_transaction.updated_at', 'shop_transaction.idTransaction', 'shop_transaction.idFinancialYear','is_received', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'totalPaid', 'discount', 'paymentDate');
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 {
$transactions = $transactions->get();
}
return view('schools.reports.purchase_history', compact('classes', 'transactions'));
}
public function extraFeesPaid(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_transaction_extra_details')->whereIn('student_transaction_extra_details.idFeehead', $request->feeHeaders)->get()->pluck('idTransaction')->toArray();
if(count($request->feeHeaders) == 1){
$headerName = \App\ExtraFeehead::where('idExtraFeehead',$request->feeHeaders[0])->first()->feeheadName;
}
$transactions = DB::table('student_transaction_extra')
->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')
->where('student_transaction_extra.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_transaction_extra.idFinancialYear', '=', Session::get('idFinancialYear'))
->where(function($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'Success');
})
->whereIn('student_transaction_extra.idTransaction', $transactionIds)
->select('school_users.name','ecNo','bankName','idBank', 'student_transaction_extra.idTransaction', 'student_transaction_extra.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_transaction_extra')
->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')
->where('student_transaction_extra.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_transaction_extra.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','bankName','idBank', 'student_transaction_extra.idTransaction', 'student_transaction_extra.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\ExtraFeehead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear', '=', Session::get('idFinancialYear'))
->get()->pluck('feeheadName', 'idExtraFeehead')->toArray();
return view('schools.reports.fee_extra_royal', 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)->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 = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$feeHeaders = \App\FeeHead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear', '=', Session::get('idFinancialYear'))->groupBy('feeheadName')
->orderBy('toDate')->get()->pluck('feeheadName', 'idFeehead')->toArray();
if ($request->has('feeHeaders') && count($request->feeHeaders) > 0) {
$transactionIds = DB::table('student_transaction_details')->whereIn('student_transaction_details.idFeehead', $request->feeHeaders)->get()->pluck('idTransaction')->toArray();
if(count($request->feeHeaders) == 1){
$headerName = \App\FeeHead::where('idFeehead',$request->feeHeaders[0])->first()->feeheadName;
if($headerName == "Plan A (Full Payment)" || $headerName == "Plan B (First Installment)" || $headerName == "Plan B (Second Installment)"){
$feedetails = \App\FeeHead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('feeheadName',$headerName)->get()->pluck('idFeehead')->toArray();
$transactionIds = DB::table('student_transaction_details')->whereIn('student_transaction_details.idFeehead', $feedetails)->get()->pluck('idTransaction')->toArray();
}
}
$transactions = DB::table('student_transaction')
->leftJoin('excess_transaction', 'student_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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')
->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_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('student_transaction.idTransaction', $transactionIds)
->select('school_users.name','ecNo','bankName','idBank', 'student_transaction.idTransaction', 'student_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('student_transaction')
->leftJoin('excess_transaction', 'student_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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')
->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_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','bankName','idBank', 'student_transaction.idTransaction', 'student_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('toDate') && $request->toDate != null) && ($request->has('fromDate') && $request->fromDate != null)) {
$transactions = $transactions->whereBetween('paymentDate', [$from_date, $to_date]);
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('paymentDate', [$from_date, $today_date]);
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('paymentDate', '<=', $to_date);
} else 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.reports.fee_paid_royal', compact('classes', 'transactions', 'feeHeaders'));
else if(Auth::guard('school')->user()->idSchool == 140 || Auth::guard('school')->user()->idSchool == 135)
return view('schools.reports.fee_paid_jr', compact('classes', 'transactions', 'feeHeaders'));
else
return view('schools.reports.fee_paid', compact('classes', 'transactions', 'feeHeaders'));
}
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')->whereIn('student_rollback_details.idFeehead', $request->feeHeaders)->whereNotNull('idTransaction')->get()->pluck('idTransaction')->toArray();
$lransactionIds = DB::table('student_rollback_details')->whereIn('student_rollback_details.idFeehead', $request->feeHeaders)->whereNotNull('idLesserTransaction')->get()->pluck('idLesserTransaction')->toArray();
if(count($request->feeHeaders) == 1){
$headerName = \App\Feehead::where('idFeehead',$request->feeHeaders[0])->first()->feeheadName;
}
$transactions = DB::table('student_rollback_transaction')
->leftJoin('school_users', 'student_rollback_transaction.created_by', '=', 'school_users.idSchoolUser')
->join('students', 'student_rollback_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('student_rollback_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_rollback_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->whereIn('student_rollback_transaction.idTransaction', $transactionIds)
->orWhereIn('student_rollback_transaction.idLesserTransaction', $lransactionIds)
->select('school_users.name','ecNo','bankName','idBank', 'student_rollback_transaction.idTransaction','student_rollback_transaction.idLesserTransaction', 'student_rollback_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', 'paymentDate', 'chequeNo');
} else {
$transactions = DB::table('student_rollback_transaction')
->leftJoin('school_users', 'student_rollback_transaction.created_by', '=', 'school_users.idSchoolUser')
->join('students', 'student_rollback_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('student_rollback_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_rollback_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->select('school_users.name','ecNo','bankName','idBank', 'student_rollback_transaction.idTransaction','student_rollback_transaction.idLesserTransaction', 'student_rollback_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', '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\FeeHead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear', '=', Session::get('idFinancialYear'))->groupBy('feeheadName')
->get()->pluck('feeheadName', 'idFeehead')->toArray();
return view('schools.reports.fee_reversal', compact('classes', 'transactions', 'feeHeaders'));
}
public function pendingDues(Request $request) {
$today_date = Carbon::today()->format('Y-m-d');
if ($request->has('fromDate') && $request->fromDate != null) {
$from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate);
}
if ($request->has('toDate') && $request->toDate != null) {
$to_date = Carbon::createFromFormat('d-m-Y', $request->toDate);
}
$classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$students = \App\AdmEntry::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idFinancialYear', '=', Session::get('idFinancialYear'))
->where('isActive','Y')
->orderBy('idStudent');
if ($request->has('sections') && count($request->sections) > 0) {
$students = $students->whereIn('idSection', $request->sections)->get();
} else if ($request->has('classes') && count($request->classes) > 0) {
$students = $students->whereIn('idClass', $request->classes)->get();
} else {
$students = $students->get();
}
if (Auth::guard('school')->user()->idSchool == 135 || Auth::guard('school')->user()->idSchool == 140) {
return view('schools.reports.mhws_pending_fee', compact('classes', 'students'));
} else if (Auth::guard('school')->user()->idSchool == 25) {
return view('schools.reports.royal_pending_fee', compact('classes', 'students'));
} else if ($school->payment_method == 'default') {
return view('schools.reports.pending_fee', compact('classes', 'students'));
} else {
return view('schools.reports.pending_fee_north', compact('classes', 'students'));
}
}
public function cancelReceipt($id){
$transaction = DB::table('student_transaction_extra')->where('idTransaction', '=', $id)->first();
$student = \App\AdmEntry::where('idStudent', '=', $transaction->idStudent)->first();
return view('schools.transaction.cancelreceipt-extra', compact('transaction', 'student'));
}
public function cancelledExtraReceipts(Request $request){
$today_date = Carbon::today()->format('Y-m-d');
$lesser_transactions = [];
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 = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$transactions = DB::table('student_transaction_extra')
->leftJoin('excess_transaction', 'student_transaction_extra.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->join('students', 'student_transaction_extra.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('student_transaction_extra.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_transaction_extra.idFinancialYear', '=', Session::get('idFinancialYear'))
->where('status', '=', 'Cancelled')
->select('student_transaction_extra.remarks','bankName', 'ecNo', 'student_transaction_extra.idTransaction', 'student_transaction_extra.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, $to_date]);
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('paymentDate', [$from_date, $today_date]);
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('paymentDate', '<=', $to_date);
} else 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')) {
$transactions = $transactions->where('paymentMode', '=', $request->paymentMode)->get();
} else {
$transactions = $transactions->get();
}
return view('schools.reports.cancelled-extra-receipts', compact('classes', 'transactions', 'lesser_transactions'));
}
public function receiptCancellation(Request $request){
$rules = ['remarks' => 'required'];
$this->validate($request, $rules);
$transaction = \App\StudentExtraTransaction::where('idTransaction', '=', $request->idTransaction)->first();
$acessAmount = $transaction->accessPaid;
DB::beginTransaction();
$transaction->status = 'Cancelled';
$transaction->remarks = $request->remarks;
$transaction->update();
$ins = $transaction->toArray();
$ins["rollback_type"] = "extra";
\App\RollbackTransaction::insert($ins);
$stdtransaction_dets = \App\StudentExtraTransactionDetail::where('idTransaction', '=', $request->idTransaction)->get();
foreach ($stdtransaction_dets as $var) {
$det = \App\StudentExtraTransactionDetail::where('idTransactionDetail', '=', $var->idTransactionDetail)->first();
$det->status = 'Cancelled';
$det->update();
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 = "Extra Fee";
$excess->save();
}
return redirect('school/extra-cancelled-receipts');
}
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)->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 = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$transactions = DB::table('student_transaction')
->leftJoin('excess_transaction', 'student_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->join('students', 'student_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->where('status', '=', 'Cancelled')
->select('student_transaction.remarks', 'ecNo','bankName', 'student_transaction.idTransaction', 'student_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('lesser_transaction')
->leftJoin('excess_transaction', 'lesser_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->join('students', 'lesser_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->where('status', '=', 'Cancelled')
->select('lesser_transaction.remarks', 'ecNo','bankName', 'lesser_transaction.idLesserTransaction', '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, $to_date])->get();
$lesser_transactions = $lesser_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();
$lesser_transactions = $lesser_transactions->whereBetween('paymentDate', [$from_date, $today_date])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('paymentDate', '<=', $to_date)->get();
$lesser_transactions = $lesser_transactions->whereDate('paymentDate', '<=', $to_date)->get();
} else if ($request->has('sections') && count($request->sections) > 0) {
$transactions = $transactions->whereIn('students.idSection', $request->sections)->get();
$lesser_transactions = $lesser_transactions->whereIn('students.idSection', $request->sections)->get();
} else if ($request->has('classes') && count($request->classes) > 0) {
$transactions = $transactions->whereIn('students.idClass', $request->classes)->get();
$lesser_transactions = $lesser_transactions->whereIn('students.idClass', $request->classes)->get();
} else if ($request->has('paymentMode')) {
$transactions = $transactions->where('paymentMode', '=', $request->paymentMode)->get();
$lesser_transactions = $lesser_transactions->where('paymentMode', '=', $request->paymentMode)->get();
} else {
$transactions = $transactions->get();
$lesser_transactions = $lesser_transactions->get();
}
return view('schools.reports.cancelled-receipts', compact('classes', 'transactions', 'lesser_transactions'));
}
public function headerWiseClass(Request $request){
$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)
->where('idFinancialYear', '=', Session::get('idFinancialYear'));
if ($request->has('classes') && count($request->classes) > 0) {
$students = $students->whereIn('students.idClass', $request->classes);
}
if ($request->has('classes') && count($request->classes) > 0){
$filterClass = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereIn('idClass', $request->classes)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
}else
$filterClass = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$sectionArr = [];
foreach($filterClass as $k => $v){
$sectionArr[$k] =
\App\Section::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idClass',$k)->get()->pluck('sectionName', 'idSection')->toArray();
}
$feeheaders = DB::table('feeheads')->select('feeheadName')->where('idFinancialYear', '=', Session::get('idFinancialYear'))
->where('idSchool', '=', Auth::guard('school')->user()->idSchool)->groupBy('feeheadName')->get()->pluck('feeheadName')->toArray();
$students = $students->where('isActive','Y')->orderBy('idClass')->get();
if(Auth::guard('school')->user()->idSchool == 25)
return view('schools.reports.royal_paid_studentwise', compact('classes','students'));
else
{
$todayCollection = $this->fetchFilterData('today');
$weekCollection = $this->fetchFilterData('week');
$monthCollection = $this->fetchFilterData('month');
$startDate = Carbon::now(); //returns current day
$firstDay = Carbon::now()->firstOfMonth();
$monthStart = DB::table('student_transaction')->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idFinancialYear', '=', Session::get('idFinancialYear'))->whereBetween('paymentDate', [$firstDay, $startDate])->where(function ($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Success');
})
->select('paymentDate')->orderBy('idTransaction','ASC')->first();
$monthEnd = DB::table('student_transaction')->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idFinancialYear', '=', Session::get('idFinancialYear'))->whereBetween('paymentDate', [$firstDay, $startDate])->where(function ($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Success');
})
->select('paymentDate')->orderBy('idTransaction','DESC')->first();
return view('schools.reports.mhws_studentwise', compact('classes','students','feeheaders','filterClass','sectionArr','todayCollection','weekCollection','monthCollection','monthEnd','monthStart','firstDay','startDate'));
}
}
private function fetchFilterData($data){
$startDate = Carbon::now(); //returns current day
$firstDay = Carbon::now()->firstOfMonth();
$lesspaid = DB::table('lesser_transaction')->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idFinancialYear', '=', Session::get('idFinancialYear'));
if($data == 'today')
$lesspaid->whereDate('paymentDate', '=', \Carbon\Carbon::now()->today());
else if($data == 'week')
$lesspaid->whereBetween('paymentDate', [\Carbon\Carbon::now()->startOfWeek(), \Carbon\Carbon::now()->endOfWeek()]);
else if($data == 'month')
$lesspaid->whereBetween('paymentDate', [$firstDay, $startDate]);
$lesspaid= $lesspaid->where(function ($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Success');
})
->select(DB::raw('SUM(totalPaid) as totalPaid'))->first();
$fullpaid = DB::table('student_transaction')->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idFinancialYear', '=', Session::get('idFinancialYear'));
if($data == 'today')
$fullpaid->whereDate('paymentDate', '=', \Carbon\Carbon::now()->today());
else if($data == 'week')
$fullpaid->whereBetween('paymentDate', [\Carbon\Carbon::now()->startOfWeek(), \Carbon\Carbon::now()->endOfWeek()]);
else if($data == 'month')
$fullpaid->whereBetween('paymentDate', [$firstDay, $startDate]);
$fullpaid = $fullpaid->where(function ($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Success');
})
->select(DB::raw('SUM(totalPaid) as totalPaid'))->first();
return $lesspaid->totalPaid + $fullpaid->totalPaid;
}
public function headerClass(Request $request){
$classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$students = \App\AdmEntry::select('ecNo','firstName','middleName','lastName','idClass','idSection','studentType','idSchool','idFinancialYear','idStudent')->where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idFinancialYear', '=', Session::get('idFinancialYear'));
if ($request->has('sections') && count($request->sections) > 0) {
$students = $students->whereIn('students.idSection', $request->sections);
} else if ($request->has('classes') && count($request->classes) > 0) {
$students = $students->whereIn('students.idClass', $request->classes);
}
$students = $students->where('isActive','Y')->orderBy('idClass')->get();
return view('schools.reports.royal_header_studentwise', compact('classes','students'));
}
public function feeheadWiseDues(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();
return view('schools.reports.feeheaderwise_report', compact('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)->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 = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
$feeHeaders = \App\FeeHead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear', '=', Session::get('idFinancialYear'))->groupBy('feeheadName')
->orderBy('toDate')->get()->pluck('feeheadName', 'idFeehead')->toArray();
if ($request->has('feeHeaders') && count($request->feeHeaders) > 0) {
$lesser_transactionIds = DB::table('lesser_transaction_details')->whereIn('lesser_transaction_details.idFeehead', $request->feeHeaders)->get()->pluck('idLesserTransaction')->toArray();
$lesser_transactions = DB::table('lesser_transaction')
->leftJoin('excess_transaction', 'lesser_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('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('lesser_transaction.idLesserTransaction', $lesser_transactionIds)
->select('school_users.name','ecNo','bankName','idBank', 'lesser_transaction.idLesserTransaction', '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('lesser_transaction')
->leftJoin('excess_transaction', 'lesser_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('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','bankName','idBank', 'lesser_transaction.idLesserTransaction', '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->toDate != null && $request->fromDate != null) {
$lesser_transactions = $lesser_transactions->whereBetween('paymentDate', [$from_date, $to_date])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$lesser_transactions = $lesser_transactions->whereBetween('paymentDate', [$from_date, $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 == 135){
$feeheadInstallment = \DB::table('feeheads')->where('idFinancialYear','=', Session::get('idFinancialYear'))
->where('feeheadName','Plan B (First Installment)')
->where('idSchool',135)
->distinct()
->pluck('idFeehead')->toArray();
$feeheadFull = \DB::table('feeheads')->where('idFinancialYear','=', Session::get('idFinancialYear'))
->where('feeheadName','Plan A (Full Payment)')
->where('idSchool',135)
->distinct()
->pluck('idFeehead')->toArray();
if($feeheadInstallment != null){
$feepaid = \App\StudentTransactionDetail::whereIn('idFeehead',$feeheadInstallment)->get()->pluck('idStudent')->toArray();
$feepaidFull = \App\StudentTransactionDetail::whereIn('idFeehead',$feeheadFull)->get()->pluck('idStudent')->toArray();
$feestudent = \App\AdmEntry::join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')->select('idStudent','ecNo','firstName','studentType','middleName','lastName','father_fname','father_lname','father_mobile','className','sectionName',DB::raw("'Plan B (First Installment)' as headerNames"))
->whereNotIn('idStudent', array_merge($feepaid,$feepaidFull))
->where('students.idSchool',135)
->where('idFinancialYear','=', Session::get('idFinancialYear'));
if ($request->has('sections') && count($request->sections) > 0) {
$feestudent = $feestudent->whereIn('students.idSection', $request->sections)->get();
} else if ($request->has('classes') && count($request->classes) > 0) {
$feestudent = $feestudent->whereIn('students.idClass', $request->classes)->get();
} else{
$feestudent = $feestudent->get();
}
foreach($feestudent as $var){
$class_feeheads = \DB::table('feeheads')->where('idClass', '=', $var->idClass)
->where('idSection', '=', $var->idSection)
->where('idFinancialYear','=', Session::get('idFinancialYear'))
->where('studentCategory', '=', $var->studentType)
->whereNull('idStudent');
$allcat_feeheads = \DB::table('feeheads')->where('idClass', '=', $var->idClass)
->where('idSection', '=', $var->idSection)
->where('studentCategory', '=', 'All')
->where('idFinancialYear','=', Session::get('idFinancialYear'))
->whereNull('idStudent');
$feeheads = \DB::table('feeheads')->where('idStudent', '=', $var->idStudent)
->where('idFinancialYear','=', Session::get('idFinancialYear'))
->union($class_feeheads)
->union($allcat_feeheads)
->orderBy('toDate')
->get();
if(count($feeheads) > 0)
return view('schools.reports.mhws_fee_paid', compact('classes', 'feeHeaders', 'lesser_transactions','feestudent'));
}
}
}
if (Auth::guard('school')->user()->idSchool == 25) {
return view('schools.reports.less_fee_royal_paid', compact('classes', 'feeHeaders', 'lesser_transactions'));
}else
return view('schools.reports.less_fee_paid', compact('classes', 'feeHeaders', 'lesser_transactions'));
}
public function royalDiscountList(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();
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$students = \App\AdmEntry::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('idFinancialYear', '=', Session::get('idFinancialYear'))
->where('isActive','Y')
->orderBy('idStudent');
if ($request->has('sections') && count($request->sections) > 0) {
$students = $students->whereIn('idSection', $request->sections)->get();
} else if ($request->has('classes') && count($request->classes) > 0) {
$students = $students->whereIn('idClass', $request->classes)->get();
} else {
$students = $students->get();
}
return view('schools.reports.royal_discount_fee', compact('classes', 'students'));
}
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\FeeHead::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->where('idFinancialYear', '=', Session::get('idFinancialYear'))->groupBy('feeheadName')
->orderBy('toDate')->get()->pluck('feeheadName', 'idFeehead')->toArray();
if ($request->has('feeHeaders') && count($request->feeHeaders) > 0){
$lesser_transactionIds = DB::table('lesser_transaction_details')->whereIn('lesser_transaction_details.idFeehead', $request->feeHeaders)->get()->pluck('idLesserTransaction')->toArray();
$lesser_transactions = DB::table('lesser_transaction')
->leftJoin('excess_transaction', 'lesser_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('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('lesser_transaction.idLesserTransaction', $lesser_transactionIds)
->select('school_users.name','ecNo','bankName','idBank','lesser_transaction.idLesserTransaction', '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('lesser_transaction')
->leftJoin('excess_transaction', 'lesser_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('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','bankName','idBank', 'lesser_transaction.idLesserTransaction', '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('student_transaction_details')->whereIn('student_transaction_details.idFeehead', $request->feeHeaders)->get()->pluck('idTransaction')->toArray();
$transactions = DB::table('student_transaction')
->leftJoin('excess_transaction', 'student_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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')
->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_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('student_transaction.idTransaction', $transactionIds)
->select('school_users.name','ecNo','bankName','idBank', 'student_transaction.idTransaction', 'student_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('student_transaction')
->leftJoin('excess_transaction', 'student_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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')
->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_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','bankName','idBank', 'student_transaction.idTransaction', 'student_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();
if ($request->has('feeHeaders') && count($request->feeHeaders) > 0){
$etransactionIds = DB::table('student_transaction_extra_details')->whereIn('student_transaction_extra_details.idFeehead', $request->feeHeaders)->get()->pluck('idTransaction')->toArray();
$extra_transactions = DB::table('student_transaction_extra')
->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')
->where('student_transaction_extra.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_transaction_extra.idFinancialYear', '=', Session::get('idFinancialYear'))
->where(function($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'Success');
})
->whereIn('student_transaction_extra.idTransaction', $etransactionIds)
->select('school_users.name','ecNo','bankName','idBank', 'student_transaction_extra.idTransaction', 'student_transaction_extra.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
$extra_transactions = DB::table('student_transaction_extra')
->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')
->where('student_transaction_extra.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('student_transaction_extra.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','bankName','idBank', 'student_transaction_extra.idTransaction', 'student_transaction_extra.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('sections') && count($request->sections) > 0) {
$extra_transactions = $extra_transactions->whereIn('students.idSection', $request->sections);
}
if ($request->has('classes') && count($request->classes) > 0) {
$extra_transactions = $extra_transactions->whereIn('students.idClass', $request->classes);
}
if ($request->has('paymentMode')) {
if ($request->paymentMode != "All")
$extra_transactions = $extra_transactions->where('paymentMode', '=', $request->paymentMode);
}
if ($request->has('toDate') && $request->has('fromDate')){
$extra_transactions = $extra_transactions->whereDate('paymentDate','>=', $today)->whereDate('paymentDate','<=', $till);
}else $extra_transactions = $extra_transactions->whereDate('paymentDate', $today);
$extra_transactions = $extra_transactions->get();
return view('schools.reports.combined_royal_paid', compact('classes', 'feeHeaders', 'lesser_transactions' ,'transactions','extra_transactions'));
}
}
Copyright © 2021 -