IMMREX7
<?php
namespace App\Http\Controllers\School;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
use DB;
use PDF;
use Carbon\Carbon;
use Session;
class StudentExtraTransactionController extends SchoolController {
public $total_amount = 0;
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request) {
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create() {
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request) {
$rules = [];
if ($request->paymentMode == 'Cash' || $request->paymentMode == 'Card' ) {
$rules += ['paymentAmount' => 'required'];
} else if ($request->paymentMode == 'Online') {
$rules += ['paymentAmount' => 'required'];
} else if ($request->paymentMode == 'IMPS') {
$rules += ['paymentAmount' => 'required'];
} else{
$rules += [
'idBank' => 'required',
'chequeDate' => 'required',
'chequeNo' => 'required',
'amount' => 'required'
];
}
$messages = [
'cardNo.required' => 'Card No or Trans ID field is required',
'totalPaid.required' => 'Enter The Amount.',
'idBank.required' => 'Bank must be selected',
'chequeDate.required' => 'Cheque / DD Date must be filled.',
'chequeNo.required' => 'Cheque / DD No. must be filled.'
];
$this->validate($request, $rules, $messages);
DB::beginTransaction();
try{
$stdtransaction = new \App\StudentExtraTransaction();
$stdtransaction->fill($request->all());
if ($request->has('paymentDate') && $request->paymentDate != null) {
$stdtransaction->paymentDate = $request->paymentDate;
} else {
$stdtransaction->paymentDate = today_date();
}
if($request->has('remarks')){
$stdtransaction->remarks = $request->remarks;
}
if($request->paymentMode == 'Cash' || $request->paymentMode == 'Card' || $request->paymentMode == 'Online' || $request->paymentMode == 'IMPS') {
$stdtransaction->totalPaid = $request->paymentAmount;
} else {
$stdtransaction->totalPaid = $request->paymentAmount;
$stdtransaction->status = 'In-Process';
}
$next_receiptno = extra_receiptno();
$stdtransaction->receiptNo = 'SEP000' . $next_receiptno;
$stdtransaction->idSchool = Auth::guard('school')->user()->idSchool;
$stdtransaction->penaltyAmount = 0;
$stdtransaction->fine = 0;
$stdtransaction->discount = 0;
$stdtransaction->created_by = Auth::guard('school')->user()->idSchoolUser;
$stdtransaction->save();
if($stdtransaction->idSchool == 25){
if($request->idHeader != "" && $request->idHeader != 0){
$this->storeTransactionDetails($request,$stdtransaction,$request->idHeader,$request->paymentAmount);
}else if(isset($request->headerName)){
$feeheads = new \App\ExtraFeehead();
$feeheads->type = "Offline";
$feeheads->feeheadName = $request->headerName;
$feeheads->amount = $request->paymentAmount;
$feeheads->idSchool = Auth::guard('school')->user()->idSchool;
$feeheads->idFinancialYear = Session::get('idFinancialYear');
$feeheads->created_by =Auth::guard('school')->user()->idSchoolUser;
$feeheads->save();
$this->storeTransactionDetails($request,$stdtransaction,$feeheads->idExtraFeehead,$request->paymentAmount);
}
}else{
if(isset($request->headerName)){
$feeheads = new \App\ExtraFeehead();
$feeheads->type = "Offline";
$feeheads->feeheadName = $request->headerName;
$feeheads->amount = $request->paymentAmount;
$feeheads->idSchool = Auth::guard('school')->user()->idSchool;
$feeheads->idFinancialYear = Session::get('idFinancialYear');
$feeheads->created_by =Auth::guard('school')->user()->idSchoolUser;
$feeheads->save();
$this->storeTransactionDetails($request,$stdtransaction,$feeheads->idExtraFeehead,$request->paymentAmount);
}else{
foreach($request->idHeader as $header){
$feehead = \App\ExtraFeehead::where('idExtraFeehead',$header)->first();
$this->storeTransactionDetails($request,$stdtransaction,$header,$feehead->amount);
}
}
}
DB::commit();
if ($request->ajax()) {
return response()->json(['success' => 1], 200, ['app-status' => 'success']);
}
}catch(\Exception $e){
DB::rollback();
if ($request->ajax()) {
return response()->json(['success' => 0, "message" => $e->getMessage()], 200, ['app-status' => 'success']);
}
}
}
private function storeTransactionDetails(Request $request, $stdtransaction,$idHeader,$amount){
$stdtransaction_detail = new \App\StudentExtraTransactionDetail();
$stdtransaction_detail->created_by = Auth::guard('school')->user()->idSchoolUser;
$stdtransaction_detail->idStudent = $request->idStudent;
$stdtransaction_detail->idTransaction = $stdtransaction->idTransaction;
$stdtransaction_detail->idFeehead = $idHeader;
if ($request->has('paymentDate') && $request->paymentDate != null) {
$stdtransaction_detail->paymentDate = $request->paymentDate;
} else {
$stdtransaction_detail->paymentDate = today_date();
}
$stdtransaction_detail->amountPaid =$amount;
$stdtransaction_detail->fine = 0;
$stdtransaction_detail->discount = 0;
if ($request->paymentMode == 'Cheque' || $request->paymentMode == 'DD') {
$stdtransaction_detail->status = 'In-Process';
}
$stdtransaction_detail->save();
}
public function getFeeDetails($id,Request $request) {
$student = \App\AdmEntry::where('idStudent', '=', $id)->first();
$paidfees =\App\StudentExtraTransaction::where('idStudent', '=', $student->idStudent)
->where('idFinancialYear', '=', Session::get('idFinancialYear'))
->where(function($query) {
$query->whereNull('status');
$query->orWhere('status', '=', 'In-Process');
$query->orWhere('status', '=', 'Cleared');
$query->orWhere('status', '=', 'Success');
})->get();
$cancelledfees =\App\StudentExtraTransaction::where('idStudent', '=', $student->idStudent)
->where('idFinancialYear', '=', Session::get('idFinancialYear'))
->where(function($query) {
$query->where('status', '=', 'Cancelled');
})->get();
$feeheads = \App\ExtraFeehead::where(function($q) use ($student){
$q->where('idClass', '=', $student->idClass)->orWhereNull('idClass');
})
->where('extra_feehead.idSchool', '=', Auth::guard('school')->user()->idSchool)
->where('extra_feehead.idFinancialYear','=', Session::get('idFinancialYear'))
->get()->pluck('feeheadName','idExtraFeehead')->toArray();
if($student->idSchool == 25)
return view('schools.transaction.feedetails_extra_royal', compact('student', 'feeheads','paidfees','cancelledfees'));
else return view('schools.transaction.feedetails_extra_amcha', compact('student', 'feeheads','paidfees','cancelledfees'));
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id) {
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id) {
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id) {
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id) {
//
}
public function printReceipt($id) {
$school = \App\School::where('idSchool', '=', Auth::guard('school')->user()->idSchool)->first();
$transaction = \App\StudentExtraTransaction::where('idTransaction', '=', $id)->first();
$student = \App\AdmEntry::where('idStudent', '=', $transaction->idStudent)->first();
$pdf = PDF::loadView('schools.transaction.print_receipt_extra', ['margin_top' => 20], compact('transaction', 'school', 'student'));
return $pdf->stream('feereceipt.pdf');
}
public function getFeewiseData(Request $request) {
//$feeheader_ids = array_map('intval', explode(',', $id));
//return $feeheader_ids;
if(isset($request->feeId) && Auth::guard('school')->user()->idSchool != 25){
$feeheader_ids = $request->feeId ;
}else
$feeheader_ids = [$request->id];
$student = \App\AdmEntry::where('idStudent', '=', $request->idStudent)->first();
$selectedHeaders = \App\ExtraFeehead::whereIn('idExtraFeehead', $feeheader_ids)->get();
$totalAmount = 0;
for ($i = 0; $i < sizeof($selectedHeaders); $i++) {
$headerObject = $selectedHeaders[$i];
$totalAmount = $totalAmount + $headerObject['amount'] ;
}
$response = array(
"amount" => $totalAmount
);
return json_encode($response);
}
}
Copyright © 2021 -