IMMREX7
<?php
namespace App\Http\Controllers\School;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DB;
use Auth;
use Carbon\Carbon;
use PDF;
use Session;
class NorthTransactionReportController extends SchoolController {
public function transactionReport(Request $request) {
$transactions = [];
$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();
$feetype = $request->feetype;
if ($request->feetype == 'Student') {
if ($request->has('feeheads') && count($request->feeheads) > 0) {
// here feeheads is demand
$transactions = DB::table('student_transaction')
->join('student_transaction_details', 'student_transaction.idTransaction', '=', 'student_transaction_details.idTransaction')
->join('northfeeheads', 'student_transaction_details.idParent', '=', 'northfeeheads.idFeehead')
->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'))
->whereIn('student_transaction_details.idParent', $request->feeheads)
->where(function($query) {
$query->whereNull('student_transaction.status');
$query->orWhere('student_transaction.status', '=', 'In-Process');
$query->orWhere('student_transaction.status', '=', 'Cleared');
$query->orWhere('student_transaction.status', '=', 'Success');
})
->groupBy('student_transaction_details.idParent')
->select('northfeeheads.amount', 'demandName', 'students.ecNo', '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', 'penaltyAmount', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(student_transaction_details.discount) as discountTotal'), DB::raw('SUM(student_transaction_details.fine) as fineTotal'), 'penaltyRemarks', 'excessAmount', 'student_transaction.paymentDate', 'chequeNo');
if ($request->toDate != null && $request->fromDate != null) {
$transactions = $transactions->whereBetween('student_transaction.paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('student_transaction.paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('student_transaction.paymentDate', '<=', $to_date)->get();
} else {
$transactions = $transactions->get();
}
}
} else if ($request->feetype == 'Bus') {
if ($request->has('feeheads') && count($request->feeheads) > 0) {
// here feeheads is demand
$transactions = DB::table('bus_transaction')
->join('bus_transaction_details', 'bus_transaction.idBusTransaction', '=', 'bus_transaction_details.idBusTransaction')
->join('northfeeheads', 'bus_transaction_details.idParent', '=', 'northfeeheads.idFeehead')
->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
->join('students', 'bus_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('bus_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->whereIn('bus_transaction_details.idParent', $request->feeheads)
->where(function($query) {
$query->whereNull('bus_transaction.status');
$query->orWhere('bus_transaction.status', '=', 'In-Process');
$query->orWhere('bus_transaction.status', '=', 'Cleared');
$query->orWhere('bus_transaction.status', '=', 'Success');
})
->groupBy('bus_transaction_details.idParent')
->select('northfeeheads.amount', 'demandName', 'students.ecNo', 'bus_transaction.idBusTransaction', 'bus_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'penaltyAmount', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(bus_transaction_details.discount) as discountTotal'), DB::raw('SUM(bus_transaction_details.fine) as fineTotal'), 'penaltyRemarks', 'excessAmount', 'bus_transaction.paymentDate', 'chequeNo');
if ($request->toDate != null && $request->fromDate != null) {
$transactions = $transactions->whereBetween('bus_transaction.paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('bus_transaction.paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('bus_transaction.paymentDate', '<=', $to_date)->get();
} else {
$transactions = $transactions->get();
}
}
} else if ($request->feetype == 'Hostel') {
if ($request->has('feeheads') && count($request->feeheads) > 0) {
// here feeheads is demand
$transactions = DB::table('hostel_transaction')
->join('hostel_transaction_details', 'hostel_transaction.idHostelTransaction', '=', 'hostel_transaction_details.idHostelTransaction')
->join('northfeeheads', 'hostel_transaction_details.idParent', '=', 'northfeeheads.idFeehead')
->leftJoin('hostel_excess_transaction', 'hostel_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idHosotelExcessTransaction')
->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)
->where('hostel_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->whereIn('hostel_transaction_details.idParent', $request->feeheads)
->where(function($query) {
$query->whereNull('hostel_transaction.status');
$query->orWhere('hostel_transaction.status', '=', 'In-Process');
$query->orWhere('hostel_transaction.status', '=', 'Cleared');
$query->orWhere('hostel_transaction.status', '=', 'Success');
})
->groupBy('hostel_transaction_details.idParent')
->select('northfeeheads.amount', 'demandName', 'students.ecNo', 'hostel_transaction.idHostelTransaction', 'hostel_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'penaltyAmount', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(hostel_transaction_details.discount) as discountTotal'), DB::raw('SUM(hostel_transaction_details.fine) as fineTotal'), 'penaltyRemarks', 'excessAmount', 'hostel_transaction.paymentDate', 'chequeNo');
if ($request->toDate != null && $request->fromDate != null) {
$transactions = $transactions->whereBetween('hostel_transaction.paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('hostel_transaction.paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('hostel_transaction.paymentDate', '<=', $to_date)->get();
} else {
$transactions = $transactions->get();
}
}
}
//dd($transactions);
return view('schools.north.transaction.transaction_report', compact('feetype', 'classes','transactions'));
}
public function lesserTransactionReport(Request $request) {
$transactions = [];
$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();
$feetype = $request->feetype;
if ($request->feetype == 'Student') {
if ($request->has('feeheads') && count($request->feeheads) > 0) {
$transactions = DB::table('lesser_transaction')
->join('lesser_transaction_details', 'lesser_transaction.idLesserTransaction', '=', 'lesser_transaction.idLesserTransaction')
->join('northfeeheads', 'lesser_transaction_details.idParent', '=', 'northfeeheads.idFeehead')
->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(function($query) {
$query->whereNull('lesser_transaction.status');
$query->orWhere('lesser_transaction.status', '=', 'In-Process');
$query->orWhere('lesser_transaction.status', '=', 'Cleared');
$query->orWhere('lesser_transaction.status', '=', 'Success');
})
->whereIn('lesser_transaction_details.idParent', $request->feeheads)
->groupBy('lesser_transaction_details.idParent')
->select('northfeeheads.amount', 'demandName', 'students.ecNo', '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', 'penaltyAmount', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(lesser_transaction_details.discount) as discountTotal'), DB::raw('SUM(lesser_transaction_details.fine) as fineTotal'), 'penaltyRemarks', 'excessAmount', 'lesser_transaction.paymentDate', 'chequeNo');
if ($request->toDate != null && $request->fromDate != null) {
$transactions = $transactions->whereBetween('lesser_transaction.paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('lesser_transaction.paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('lesser_transaction.paymentDate', '<=', $to_date)->get();
} else {
$transactions = $transactions->get();
}
}
} elseif ($request->feetype == 'Bus') {
if ($request->has('feeheads') && count($request->feeheads) > 0) {
$transactions = DB::table('bus_lesser_transaction')
->join('bus_lesser_transaction_details', 'bus_lesser_transaction.idBusLesserTransaction', '=', 'bus_lesser_transaction.idBusLesserTransaction')
->join('northfeeheads', 'bus_lesser_transaction_details.idParent', '=', 'northfeeheads.idFeehead')
->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
->join('students', 'bus_lesser_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('bus_lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->where(function($query) {
$query->whereNull('bus_lesser_transaction.status');
$query->orWhere('bus_lesser_transaction.status', '=', 'In-Process');
$query->orWhere('bus_lesser_transaction.status', '=', 'Cleared');
$query->orWhere('bus_lesser_transaction.status', '=', 'Success');
})
->whereIn('bus_lesser_transaction_details.idParent', $request->feeheads)
->groupBy('bus_lesser_transaction_details.idParent')
->select('northfeeheads.amount', 'demandName', 'students.ecNo', 'bus_lesser_transaction.idBusLesserTransaction', 'bus_lesser_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'penaltyAmount', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(bus_lesser_transaction_details.discount) as discountTotal'), DB::raw('SUM(bus_lesser_transaction_details.fine) as fineTotal'), 'penaltyRemarks', 'excessAmount', 'bus_lesser_transaction.paymentDate', 'chequeNo');
if ($request->toDate != null && $request->fromDate != null) {
$transactions = $transactions->whereBetween('bus_lesser_transaction.paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('bus_lesser_transaction.paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('bus_lesser_transaction.paymentDate', '<=', $to_date)->get();
} else {
$transactions = $transactions->get();
}
}
} elseif ($request->feetype == 'Hostel') {
if ($request->has('feeheads') && count($request->feeheads) > 0) {
$transactions = DB::table('hostel_lesser_transaction')
->join('hostel_lesser_transaction_details', 'hostel_lesser_transaction.idHostelLesserTransaction', '=', 'hostel_lesser_transaction.idHostelLesserTransaction')
->join('northfeeheads', 'lesser_transaction_details.idParent', '=', 'northfeeheads.idFeehead')
->leftJoin('hostel_excess_transaction', 'hostel_lesser_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idHostelExcessTransaction')
->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)
->where('hostel_lesser_transaction.idFinancialYear', '=', Session::get('idFinancialYear'))
->where(function($query) {
$query->whereNull('hostel_lesser_transaction.status');
$query->orWhere('hostel_lesser_transaction.status', '=', 'In-Process');
$query->orWhere('hostel_lesser_transaction.status', '=', 'Cleared');
$query->orWhere('hostel_lesser_transaction.status', '=', 'Success');
})
->whereIn('hostel_lesser_transaction_details.idParent', $request->feeheads)
->groupBy('hostel_lesser_transaction_details.idParent')
->select('northfeeheads.amount', 'demandName', 'students.ecNo', 'hostel_lesser_transaction.idHostelLesserTransaction', 'hostel_lesser_transaction.idFinancialYear', 'students.idClass', 'students.idStudent', 'students.idSection', 'firstName', 'middleName', 'contactPersonMobile', 'lastName', 'className', 'sectionName', 'father_fname', 'father_mobile', 'father_lname', 'receiptNo', 'paymentMode', 'penaltyAmount', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(hostel_lesser_transaction_details.discount) as discountTotal'), DB::raw('SUM(hostel_lesser_transaction_details.fine) as fineTotal'), 'penaltyRemarks', 'excessAmount', 'hostel_lesser_transaction.paymentDate', 'chequeNo');
if ($request->toDate != null && $request->fromDate != null) {
$transactions = $transactions->whereBetween('hostel_lesser_transaction.paymentDate', [$from_date->format('Y-m-d'), $to_date->format('Y-m-d')])->get();
} else if ($request->has('fromDate') && $request->fromDate != null) {
$transactions = $transactions->whereBetween('hostel_lesser_transaction.paymentDate', [$from_date->format('Y-m-d'), $today_date])->get();
} else if ($request->has('toDate') && $request->toDate != null) {
$transactions = $transactions->whereDate('hostel_lesser_transaction.paymentDate', '<=', $to_date)->get();
} else {
$transactions = $transactions->get();
}
}
}
return view('schools.north.transaction.lesser_transaction_report', compact('feetype', 'classes','transactions'));
}
public function getFeeDemands($id) {
$sections_ids = array_map('intval', explode(',', $id));
$feeheads = \App\NorthFeeHead::whereIn('idSection', $sections_ids)
->where('isParent', '=', '0')->get()->pluck('demandName', 'idFeehead')->toArray();
return json_encode($feeheads);
}
public function daywiseHostelFeeCollection(Request $request) {
$transactions = [];
$feeheads = [];
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
if ($request->has('date') && $request->date != null) {
$todaydate = \Carbon\Carbon::parse($request->date)->format('Y-m-d');
$feeheads = DB::table('dailytransaction')
->join('dailytransaction_details', 'dailytransaction.idDailyTransaction', '=', 'dailytransaction_details.idDailyTransaction')
->where('idSchool', '=', $school->idSchool)
->where('transactionType', '=', 'Hostel')
->whereDate('dailytransaction.paymentDate', '=', $todaydate)
->groupBy('headerName')
->select('headerName', DB::raw('SUM(dailytransaction_details.amountPaid) AS feeheadPaidTotal'), DB::raw('SUM(dailytransaction_details.discountFeehead) AS discountTotalFeehead'))
->get();
$transactions = DB::table('dailytransaction')
->whereDate('dailytransaction.paymentDate', '=', $todaydate)
->where('idSchool', '=', $school->idSchool)
->where('transactionType', '=', 'Hostel')
->get();
$pdf = PDF::loadView('schools.north.transaction.daycollpdf', ['margin_top' => 20], compact('transactions', 'feeheads', 'school', 'todaydate'));
return $pdf->stream($todaydate . 'hostel_collection.pdf');
} else {
return view('schools.north.transaction.daywise_hostelfee_collection', compact('transactions', 'school', 'feeheads'));
}
}
public function daywiseFeeCollection(Request $request) {
if ($request->has('date') && $request->date != null) {
$todaydate = \Carbon\Carbon::parse($request->date)->format('Y-m-d');
} else {
$todaydate = \Carbon\Carbon::parse(today_date())->format('Y-m-d');
}
$transactions = [];
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$lessertransaction = DB::table('lesser_transaction')
->join('lesser_transaction_details', 'lesser_transaction.idLesserTransaction', '=', 'lesser_transaction_details.idLesserTransaction')
->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)
->whereDate('lesser_transaction.paymentDate', '=', $todaydate)
->where(function($query) {
$query->whereNull('lesser_transaction.status');
$query->orWhere('lesser_transaction.status', '=', 'In-Process');
$query->orWhere('lesser_transaction.status', '=', 'Cleared');
$query->orWhere('lesser_transaction.status', '=', 'Success');
})
->select('lesser_transaction.idStudent', 'receiptNo', 'lesser_transaction.paymentDate', 'ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(lesser_transaction_details.discount) as discountTotal'), DB::raw('SUM(lesser_transaction_details.fine) as fineTotal'));
$fulltransaction = DB::table('student_transaction')
->join('student_transaction_details', 'student_transaction.idTransaction', '=', 'student_transaction_details.idTransaction')
->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)
->whereDate('student_transaction.paymentDate', '=', $todaydate)
->where(function($query) {
$query->whereNull('student_transaction.status');
$query->orWhere('student_transaction.status', '=', 'In-Process');
$query->orWhere('student_transaction.status', '=', 'Cleared');
$query->orWhere('student_transaction.status', '=', 'Success');
})
->union($lessertransaction)
->groupBy('student_transaction.idStudent')
->select('student_transaction.idStudent', 'receiptNo', 'student_transaction.paymentDate', 'ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(amountPaid) as totalpaid'), DB::raw('SUM(student_transaction_details.discount) as discountTotal'), DB::raw('SUM(student_transaction_details.fine) as fineTotal'))->get();
return view('schools.north.transaction.daywise_collection', compact('fulltransaction', 'school'));
}
public function dayCollection(Request $request) {
$transactions = [];
$feeheads = [];
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
if ($request->has('date') && $request->date != null) {
$todaydate = \Carbon\Carbon::parse($request->date)->format('Y-m-d');
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$feeheads = DB::table('dailytransaction')
->join('dailytransaction_details', 'dailytransaction.idDailyTransaction', '=', 'dailytransaction_details.idDailyTransaction')
->where('idSchool', '=', $school->idSchool)
->whereDate('dailytransaction.paymentDate', '=', $todaydate)
->where('transactionType','=','Student')
->select('headerName', DB::raw('SUM(dailytransaction_details.amountPaid) AS feeheadPaidTotal'), DB::raw('SUM(dailytransaction_details.discountFeehead) AS discountTotalFeehead'))
->groupBy('headerName')
->get();
$transactions = DB::table('dailytransaction')
->whereDate('dailytransaction.paymentDate', '=', $todaydate)
->where('transactionType','=','Student')
->where('idSchool', '=', $school->idSchool)
->get();
$pdf = PDF::loadView('schools.north.transaction.daycollpdf', ['margin_top' => 20], compact('transactions', 'feeheads', 'school', 'todaydate'));
return $pdf->stream($todaydate . 'collection.pdf');
} else {
return view('schools.north.transaction.daycollection', compact('transactions', 'school', 'feeheads'));
}
}
public function storedayCollection(Request $request) {
if ($request->has('date') && $request->date != null) {
$selected_date = \Carbon\Carbon::parse($request->date)->format('Y-m-d');
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
if ($request->transactionType == 'Student') {
$lessertransaction = DB::table('lesser_transaction')
->join('lesser_transaction_details', 'lesser_transaction.idLesserTransaction', '=', 'lesser_transaction_details.idLesserTransaction')
->join('northfeeheads', 'lesser_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->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)
->whereDate('lesser_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('lesser_transaction.status');
$query->orWhere('lesser_transaction.status', '=', 'In-Process');
$query->orWhere('lesser_transaction.status', '=', 'Cleared');
$query->orWhere('lesser_transaction.status', '=', 'Success');
})
->groupBy('lesser_transaction.idStudent')
->select('lesser_transaction.idStudent', 'receiptNo', 'lesser_transaction.paymentDate', 'students.ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(lesser_transaction_details.amountPaid) as amountPaidTotal'), DB::raw('SUM(lesser_transaction_details.discount) as discountTotal'), DB::raw('SUM(lesser_transaction.fine) as fineTotal'));
$transactions = DB::table('student_transaction')
->join('student_transaction_details', 'student_transaction.idTransaction', '=', 'student_transaction_details.idTransaction')
->join('northfeeheads', 'student_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->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)
->whereDate('student_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('student_transaction.status');
$query->orWhere('student_transaction.status', '=', 'In-Process');
$query->orWhere('student_transaction.status', '=', 'Cleared');
$query->orWhere('student_transaction.status', '=', 'Success');
})
->union($lessertransaction)
->groupBy('student_transaction.idStudent')
->select('student_transaction.idStudent', 'receiptNo', 'student_transaction.paymentDate', 'students.ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(student_transaction_details.amountPaid) AS amountPaidTotal'), DB::raw('SUM(student_transaction_details.discount) as discountTotal'), DB::raw('SUM(student_transaction.fine) as fineTotal'))->get();
$lesserpaid_feehead = DB::table('lesser_transaction')
->join('lesser_transaction_details', 'lesser_transaction.idLesserTransaction', '=', 'lesser_transaction_details.idLesserTransaction')
->join('northfeeheads', 'lesser_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->leftJoin('excess_transaction', 'lesser_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->where('lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('lesser_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('lesser_transaction.status');
$query->orWhere('lesser_transaction.status', '=', 'In-Process');
$query->orWhere('lesser_transaction.status', '=', 'Cleared');
$query->orWhere('lesser_transaction.status', '=', 'Success');
})
->select('headerName', 'northfeeheads.ecNo', 'lesser_transaction_details.idFeehead', 'amountPaid', 'northfeeheads.discount as discountFeehead');
$feeheads = DB::table('student_transaction')
->join('student_transaction_details', 'student_transaction.idTransaction', '=', 'student_transaction_details.idTransaction')
->join('northfeeheads', 'student_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->leftJoin('excess_transaction', 'student_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->where('student_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('student_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('student_transaction.status');
$query->orWhere('student_transaction.status', '=', 'In-Process');
$query->orWhere('student_transaction.status', '=', 'Cleared');
$query->orWhere('student_transaction.status', '=', 'Success');
})
->union($lesserpaid_feehead)
->select('headerName', 'northfeeheads.ecNo', 'student_transaction_details.idFeehead', 'amountPaid', 'northfeeheads.discount as discountFeehead')
->get();
} elseif ($request->transactionType == 'Bus') {
$lessertransaction = DB::table('bus_lesser_transaction')
->join('bus_lesser_transaction_details', 'bus_lesser_transaction.idBusLesserTransaction', '=', 'bus_lesser_transaction_details.idBusLesserTransaction')
->join('northfeeheads', 'bus_lesser_transaction_details.idBusFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
->join('students', 'bus_lesser_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('bus_lesser_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('bus_lesser_transaction.status');
$query->orWhere('bus_lesser_transaction.status', '=', 'In-Process');
$query->orWhere('bus_lesser_transaction.status', '=', 'Cleared');
$query->orWhere('bus_lesser_transaction.status', '=', 'Success');
})
->groupBy('bus_lesser_transaction.idStudent')
->select('bus_lesser_transaction.idStudent', 'receiptNo', 'bus_lesser_transaction.paymentDate', 'students.ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(bus_lesser_transaction_details.amountPaid) as amountPaidTotal'), DB::raw('SUM(bus_lesser_transaction_details.discount) as discountTotal'), DB::raw('SUM(bus_lesser_transaction.fine) as fineTotal'));
$transactions = DB::table('bus_transaction')
->join('bus_transaction_details', 'bus_transaction.idBusTransaction', '=', 'bus_transaction_details.idBusTransaction')
->join('northfeeheads', 'bus_transaction_details.idBusFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
->join('students', 'bus_transaction.idStudent', '=', 'students.idStudent')
->join('classes', 'students.idClass', '=', 'classes.idClass')
->join('sections', 'students.idSection', '=', 'sections.idSection')
->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('bus_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('bus_transaction.status');
$query->orWhere('bus_transaction.status', '=', 'In-Process');
$query->orWhere('bus_transaction.status', '=', 'Cleared');
$query->orWhere('bus_transaction.status', '=', 'Success');
})
->union($lessertransaction)
->groupBy('bus_transaction.idStudent')
->select('bus_transaction.idStudent', 'receiptNo', 'bus_transaction.paymentDate', 'students.ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(bus_transaction_details.amountPaid) AS amountPaidTotal'), DB::raw('SUM(bus_transaction_details.discount) as discountTotal'), DB::raw('SUM(bus_transaction.fine) as fineTotal'))->get();
$lesserpaid_feehead = DB::table('bus_lesser_transaction')
->join('bus_lesser_transaction_details', 'bus_lesser_transaction.idBusLesserTransaction', '=', 'bus_lesser_transaction_details.idBusLesserTransaction')
->join('northfeeheads', 'bus_lesser_transaction_details.idBusFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->leftJoin('bus_excess_transaction', 'bus_lesser_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
->where('bus_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('bus_lesser_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('bus_lesser_transaction.status');
$query->orWhere('bus_lesser_transaction.status', '=', 'In-Process');
$query->orWhere('bus_lesser_transaction.status', '=', 'Cleared');
$query->orWhere('bus_lesser_transaction.status', '=', 'Success');
})
->select('headerName', 'northfeeheads.ecNo', 'bus_lesser_transaction_details.idBusFeehead', 'amountPaid', 'northfeeheads.discount as discountFeehead');
$feeheads = DB::table('bus_transaction')
->join('bus_transaction_details', 'bus_transaction.idBusTransaction', '=', 'bus_transaction_details.idBusTransaction')
->join('northfeeheads', 'bus_transaction_details.idBusFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
->leftJoin('bus_excess_transaction', 'bus_transaction.idBusExcessTransaction', '=', 'bus_excess_transaction.idBusExcessTransaction')
->where('bus_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('bus_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('bus_transaction.status');
$query->orWhere('bus_transaction.status', '=', 'In-Process');
$query->orWhere('bus_transaction.status', '=', 'Cleared');
$query->orWhere('bus_transaction.status', '=', 'Success');
})
->union($lesserpaid_feehead)
->select('headerName', 'northfeeheads.ecNo', 'bus_transaction_details.idBusFeehead', 'amountPaid', 'northfeeheads.discount as discountFeehead')
->get();
} elseif ($request->transactionType == 'Hostel') {
$lessertransaction = DB::table('hostel_lesser_transaction')
->join('hostel_lesser_transaction_details', 'hostel_lesser_transaction.idHostelLesserTransaction', '=', 'hostel_lesser_transaction_details.idHostelLesserTransaction')
->join('northfeeheads', 'hostel_lesser_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
// ->leftJoin('excess_transaction', 'lesser_transaction.idExcessTransaction', '=', 'excess_transaction.idExcessTransaction')
->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)
->whereDate('hostel_lesser_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('hostel_lesser_transaction.status');
$query->orWhere('hostel_lesser_transaction.status', '=', 'In-Process');
$query->orWhere('hostel_lesser_transaction.status', '=', 'Cleared');
$query->orWhere('hostel_lesser_transaction.status', '=', 'Success');
})
->groupBy('hostel_lesser_transaction.idStudent')
->select('hostel_lesser_transaction.idStudent', 'receiptNo', 'hostel_lesser_transaction.paymentDate', 'students.ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(hostel_lesser_transaction_details.amountPaid) as amountPaidTotal'), DB::raw('SUM(hostel_lesser_transaction_details.discount) as discountTotal'), DB::raw('SUM(hostel_lesser_transaction.fine) as fineTotal'));
$transactions = DB::table('hostel_transaction')
->join('hostel_transaction_details', 'hostel_transaction.idHostelTransaction', '=', 'hostel_transaction_details.idHostelTransaction')
->join('northfeeheads', 'hostel_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
// ->leftJoin('hostel_excess_transaction', 'hostel_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idHostelExcessTransaction')
->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)
->whereDate('hostel_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('hostel_transaction.status');
$query->orWhere('hostel_transaction.status', '=', 'In-Process');
$query->orWhere('hostel_transaction.status', '=', 'Cleared');
$query->orWhere('hostel_transaction.status', '=', 'Success');
})
->union($lessertransaction)
->groupBy('hostel_transaction.idStudent')
->select('hostel_transaction.idStudent', 'receiptNo', 'hostel_transaction.paymentDate', 'students.ecNo', 'firstName', 'middleName', 'lastName', 'className', 'sectionName', 'paymentMode', DB::raw('SUM(hostel_transaction_details.amountPaid) AS amountPaidTotal'), DB::raw('SUM(hostel_transaction_details.discount) as discountTotal'), DB::raw('SUM(hostel_transaction.fine) as fineTotal'))->get();
//dd($transaction);
$lesserpaid_feehead = DB::table('hostel_lesser_transaction')
->join('hostel_lesser_transaction_details', 'hostel_lesser_transaction.idHostelLesserTransaction', '=', 'hostel_lesser_transaction_details.idHostelLesserTransaction')
->join('northfeeheads', 'hostel_lesser_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
// ->leftJoin('hostel_excess_transaction', 'hostel_lesser_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idHostelExcessTransaction')
->where('hostel_lesser_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('hostel_lesser_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('hostel_lesser_transaction.status');
$query->orWhere('hostel_lesser_transaction.status', '=', 'In-Process');
$query->orWhere('hostel_lesser_transaction.status', '=', 'Cleared');
$query->orWhere('hostel_lesser_transaction.status', '=', 'Success');
})
->select('headerName', 'northfeeheads.ecNo', 'hostel_lesser_transaction_details.idFeehead', 'amountPaid', 'northfeeheads.discount as discountFeehead');
$feeheads = DB::table('hostel_transaction')
->join('hostel_transaction_details', 'hostel_transaction.idHostelTransaction', '=', 'hostel_transaction_details.idHostelTransaction')
->join('northfeeheads', 'hostel_transaction_details.idFeehead', '=', 'northfeeheads.idFeehead')
->join('headers', 'northfeeheads.idHeader', '=', 'headers.idHeader')
// ->leftJoin('hostel_excess_transaction', 'hostel_transaction.idHostelExcessTransaction', '=', 'hostel_excess_transaction.idHostelExcessTransaction')
->where('hostel_transaction.idSchool', '=', Auth::guard('school')->user()->idSchool)
->whereDate('hostel_transaction.paymentDate', '=', $selected_date)
->where(function($query) {
$query->whereNull('hostel_transaction.status');
$query->orWhere('hostel_transaction.status', '=', 'In-Process');
$query->orWhere('hostel_transaction.status', '=', 'Cleared');
$query->orWhere('hostel_transaction.status', '=', 'Success');
})
->union($lesserpaid_feehead)
->select('headerName', 'northfeeheads.ecNo', 'hostel_transaction_details.idFeehead', 'amountPaid', 'northfeeheads.discount as discountFeehead')
->get();
}
// dd($feeheads);
foreach ($transactions as $var) {
if ($var->ecNo != null) {
$daily_transaction = new \App\DailyTransaction();
$daily_transaction->idSchool = $school->idSchool;
$daily_transaction->transactionType = $request->transactionType;
$daily_transaction->ecNo = $var->ecNo;
$daily_transaction->Name = $var->firstName . ' ' . $var->middleName . ' ' . $var->lastName;
$daily_transaction->class = $var->className;
$daily_transaction->section = $var->sectionName;
$daily_transaction->totalFine = $var->fineTotal;
$daily_transaction->totalDiscount = $var->discountTotal;
$daily_transaction->totalfeePaid = $var->amountPaidTotal;
$daily_transaction->totalFine = $var->fineTotal;
$net = $var->amountPaidTotal + $var->discountTotal + $var->fineTotal;
$daily_transaction->netAmount = $net;
$daily_transaction->paymentDate = $var->paymentDate;
$daily_transaction->receiptNo = $var->receiptNo;
$daily_transaction->save();
}
}
foreach ($feeheads as $fh) {
if ($fh->ecNo != null) {
$dt = \App\DailyTransaction::where('ecNo', '=', $fh->ecNo)
->where('transactionType','=',$request->transactionType)
->where('paymentDate', '=', $selected_date)->first();
$dt_detail = new \App\DailyTransactionDetail();
$dt_detail->idDailyTransaction = $dt->idDailyTransaction;
if($request->transactionType == 'Bus'){
$dt_detail->idFeehead = $fh->idBusFeehead;
}else{
$dt_detail->idFeehead = $fh->idFeehead;
}
$dt_detail->headerName = $fh->headerName;
$dt_detail->amountPaid = $fh->amountPaid;
$dt_detail->discountFeehead = $fh->discountFeehead;
$dt_detail->save();
}
}
return redirect('school/north/savedaycollection');
} else {
return view('schools.north.transaction.savedaycoll_toreport_table');
}
}
public function newdayCollection(Request $request) {
if ($request->has('date') && $request->date != null) {
$todaydate = \Carbon\Carbon::parse($request->date)->format('Y-m-d');
} else {
$todaydate = \Carbon\Carbon::parse(today_date())->format('Y-m-d');
}
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$feeheads = DB::table('dailytransaction')
->join('dailytransaction_details', 'dailytransaction.idDailyTransaction', '=', 'dailytransaction_details.idDailyTransaction')
->where('idSchool', '=', $school->idSchool)
->groupBy('headerName')
->select('headerName', DB::raw('SUM(dailytransaction_details.amountPaid) AS feeheadPaidTotal'), DB::raw('SUM(dailytransaction_details.discountFeehead) AS discountTotalFeehead'))
->get();
$transactions = DB::table('dailytransaction')
->where('idSchool', '=', $school->idSchool)
->get();
if ($request->has('date') && $request->date != null) {
$pdf = PDF::loadView('schools.north.transaction.daycollpdf', ['margin_top' => 20], compact('transactions', 'feeheads', 'school'));
return $pdf->stream($todaydate . 'collection.pdf');
}
return view('schools.north.transaction.newdaycollection', compact('transactions', 'school', 'feeheads'));
}
}
Copyright © 2021 -