IMMREX7
@extends('students.student_layout')
@section('content')
<div class="modal" tabindex="-1" role="dialog" id="paymentModal" aria-labelledby="paymentModalLabel" aria-hidden="true" data-backdrop="">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<div id="payment-form"></div>
</div>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane in active" id="details" aria-expanded="true">
<div class="card" id="details">
<div class="body">
<div class="row">
<div class="col-sm-6 col-sm-offset-1">
<address>
<strong> Student Name : </strong>{{$student->firstName}} {{$student->middleName}} {{$student->lastName}}<br>
<strong> Father Name : </strong>{{$student->father_fname}} {{$student->father_lname or ''}}<br>
<strong> Mobile : </strong>{{$student->father_mobile}}<br>
<strong> Class : </strong>{{$student->classM->className}}<br>
@if(isset($student->section))
<strong> Section : </strong>{{$student->section->sectionName}}<br>
@endif
<strong> Ec No. : </strong>{{$student->ecNo}}<br>
</address>
@if (session('status'))
@if(session('status') == 'Payment Error')
<div class="alert alert-warning">
{{ session('status') }}
</div>
@else
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
@endif
</div>
</div>
<div class="mt-40"></div>
<form action="{{url('/student/payfees')}}" method= "get">
<div class="row">
<div class="col-sm-5">
<div class="row clearfix">
<div class="col-sm-4 form-control-label">
<label for="classname"><strong>Payable Mode</strong></label>
</div>
<div class="col-sm-6">
<div class="form-group">
<input type="radio" id="paymode1" name="paymode" value="full" @if($isFull == 'Full') checked @endif>
<label for="paymode1">Plan A (Full Payment)</label><br>
<input type="radio" id="paymode2" name="paymode" value="installments" @if($isFull == 'Installment') checked @endif>
<label for="paymode2">Plan B (Installment)</label><br>
</div>
</div>
<div class="col-sm-2">
<input class="btn btn-primary btn-round" type="submit" value="Change Now" style="background-color:black;color:white;"/>
</div>
</div>
</div>
</form>
<div class="col-md-12">
<div class="table-responsive">
<form id="feesubmission">
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
<?php $logo = \App\School::where('idSchool', '=', $student->idSchool)->first();
?>
<input type="hidden" name="idStudent" value="{{$student->idStudent}}">
<input type="hidden" name="idFinancialYear" value="{{$student->idFinancialYear}}">
<table class="table table-hover">
<thead>
<tr>
<th></th>
<th style="width:60px;">Due Date</th>
<th>Particular</th>
<th>Amount</th>
<th>Discount</th>
<th>Fine</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<?php $totalFine = 0;$actualTotal = 0; ?>
@foreach($feeheads as $fee)
@if(str_contains($fee->feeheadName, $isFull) || str_contains($fee->feeheadName, 'Admission') || str_contains($fee->feeheadName, 'P1') || str_contains($fee->feeheadName, 'P2'))
<tr>
<?php
$disableHeader = true;
$feepaid = \App\StudentTransactionDetail::where('idStudent', '=', $student->idStudent)
->where('idFeehead', '=', $fee->idFeehead)->first();
$lesser_feepaid = DB::table('lesser_transaction')
->join('lesser_transaction_details', 'lesser_transaction_details.idLesserTransaction', '=', 'lesser_transaction.idLesserTransaction')
->where('lesser_transaction.idStudent', '=', $student->idStudent)
->where('idFeehead', '=', $fee->idFeehead)
->where(function($query) {
$query->whereNull('lesser_transaction.status');
$query->orWhere('lesser_transaction.status', '=', 'Cleared');
$query->orWhere('lesser_transaction.status', '=', 'In-Process');
$query->orWhere('lesser_transaction.status', '=', 'Success');
})
->select(DB::raw('SUM(totalPaid) as totalPaid'))
->first();
$stepFine = 0;
$sdiscount = \App\StudentDiscount::where('idStudent', '=', $student->idStudent)
->where('idFeehead', '=', $fee->idFeehead)->where('isActive', 'Y')->get();
$todate = Carbon\Carbon::parse($fee->toDate);
$today_date = Carbon\Carbon::parse(today_date());
$days_afterduedate = $todate->diffInDays($today_date);
$curdate = strtotime(today_date());
$lastfeedate = strtotime($fee->toDate);
$headerObject = \App\FeeHead::where('idFeehead', '=', $fee->idFeehead)->first()->toArray();
if(str_contains($headerObject['feeheadName'], "Full Payment")){
$startDate = Carbon\Carbon::parse($headerObject['toDate']);
$now = Carbon\Carbon::now();
$dueDiff = $startDate->diffInDays($now, false);
if($dueDiff >= 1)
$disableHeader = false;
}else{
$startDate = Carbon\Carbon::parse($headerObject['fromDate']);
$now = Carbon\Carbon::now();
$dueDiff = $startDate->diffInDays($now, false);
$disableHeader = ($dueDiff > -1);
if($dueDiff > -1){
$endDate = Carbon\Carbon::parse($headerObject['toDate']);
$now = Carbon\Carbon::now();
$endDiff = $endDate->diffInDays($now, false);
$disableHeader = ($endDiff < 0);
}
}
$date = Carbon\Carbon::parse($headerObject['toDate']);
$startDate = Carbon\Carbon::parse($headerObject['fromDate']);
$now = Carbon\Carbon::now();
$diff = $date->diffInDays($now, false);
$dueDiff = $startDate->diffInDays($now, false);
$std_trdet = \App\StudentTransactionDetail::where('idStudent', '=', $student->idStudent)
->where('idFeehead', '=', $fee->idFeehead)
->select(DB::raw('amountPaid as amount'), DB::raw('discount as discount'), DB::raw('fine as fine'), 'status')->latest()->first();
if ($diff > 0 && $std_trdet == null) {
if ($headerObject['fine'] != null && $headerObject['fine'] != 0.00) {
$stepFine = $headerObject['fine'] * $diff;
$totalFine = $totalFine + ( $headerObject['fine'] * $diff);
} else
if ($headerObject['flatFine'] != null) {
$stepFine = $stepFine + $headerObject['flatFine'];
$totalFine = $totalFine + $headerObject['flatFine'];
}
}
$stepDiscount = 0;
if ($sdiscount != null) {
foreach ($sdiscount as $discounts) {
$stepDiscount = $stepDiscount + $discounts->amount;
}
$tootalfeeamt = $fee->amount - $stepDiscount + $totalFine;
} else {
$tootalfeeamt = $fee->amount + $totalFine;
}
if($std_trdet != null)
$ft = $std_trdet['amount'] + $std_trdet['fine'] - $std_trdet['discount'];
$actualTotal = $actualTotal + $tootalfeeamt;
$fromDate = strtotime($fee->fromDate);
$todayDate = strtotime(today_date());
?>
<td>
@if($std_trdet==null)
<div class="checkbox-inline" style="padding-left:10px;">
@if(str_contains($fee->feeheadName, 'P1'))
<input type="checkbox" name="selectedHeaders[]" value="{{$fee->idFeehead}}" class="feeclass" checked onclick="return false;">
<?php $disableHeader = false; ?>
@else
@if($disableHeader)
<input type="checkbox" name="selectedHeaders[]" value="{{$fee->idFeehead}}" class="feeclass">
<?php $disableHeader = false; ?>
@endif
@endif
</div>
@elseif( $std_trdet['status'] != null
&& $std_trdet['status'] != 'Cleared' && $std_trdet['status'] != 'In-Process' && $std_trdet['status'] != 'Success')
<div class="checkbox-inline" style="padding-left:10px;"><input type="checkbox" name="selectedHeaders[]" value="{{$fee->idFeehead}}" class="feeclass"></div>
@endif
</td>
<td>{{ Carbon\Carbon::parse($fee->toDate)->format('d-m-Y') }}</td>
<td>
{{$fee->feeheadName}}
{{$fee->description}}
@if(isset($lesser_fees->totalPaid))
@if($lesser_fees->totalPaid < $tootalfeeamt)
<br>
<label id="lesser_note"><b> Amount Paid: </b>{{$lesser_fees->totalPaid}} </label>
@endif
@endif
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][idFeehead]' value="{{$fee->idFeehead}}">
</td>
<td class='amt'>
{{$fee->amount}}
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][famount]' value="{{$fee->amount}}">
</td>
<td class="discount">
@if(isset($std_trdet->discount))
<p>{{$std_trdet->discount}}</p>
@elseif(isset($sdiscount))
<span>
@if(isset($feepaid_date))
{{$stepDiscount}}{{$feepaid_date}}
@else
{{$stepDiscount}}
@endif
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][discount]' value="{{$stepDiscount}}">
</span>
@else
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][discount]' value="0.00">
@endif
</td>
<td class="fine">
@if($stepFine > 0)
<p>{{$stepFine}}</p>
@elseif($std_trdet != null)
<p>{{$std_trdet['fine']}}</p>
@elseif($feepaid!=null)
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][fine]' value="{{$feepaid->fine}} ">
@elseif($curdate > $lastfeedate && $fee->fine > 0)
{{$fee->fine * $days_afterduedate}}
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][fine]' value="{{$fee->fine * $days_afterduedate}} ">
@elseif(($curdate > $lastfeedate && $fee->flatFine > 0))
{{$fee->flatFine}}
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][fine]' value="{{$fee->flatFine}}">
@else
<input type="hidden" name='feeheads[{{$fee->idFeehead}}][fine]' value="0.00">
@endif
</td>
<td>
@if($std_trdet != null)
@if($std_trdet['status'] == null || $std_trdet['status'] == 'Cleared')
<span class="badge badge-success">Paid </span>
@else( $std_trdet['status'] == 'In-Process')
<span class="badge badge-info">In-Process </span>
@endif
@else
@if($dueDiff > 0)
<span class="badge badge-danger">DUE</span>
@else
<span class="badge badge-info">UPCOMING</span>
@endif
@endif
</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</div>
</div>
<div class="col-sm-5">
<div class="row clearfix">
<div class="col-sm-5 form-control-label">
<label for="classname">Payable Amount</label>
</div>
<div class="col-sm-6">
<div class="form-group">
@if(isset($prevaccess_fee->excessAmount))
@if($prevaccess_fee->excessAmount > 0)
<label id="access_note"><b>Excess Amount Available: </b>{{$prevaccess_fee->excessAmount}} </label>
@endif
@endif
<input type="text" name="payableAmount" class="form-control" readonly="readonly" style="color: black;font-size: 1.2em;">
</div>
</div>
<div class="hidden-print col-md-8 text-right">
<input class="btn btn-primary btn-round" type="submit" name="payable" value="Pay Now" id="submit-btn" style="background-color:black;color:white;"/>
</div>
</div>
</div>
</form>
<div class="col-sm-12">
<h5>Payment History</h5>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Receipt No</th>
<th>Date</th>
<th>Amount</th>
<!--<th>Balance</th>-->
<th>Payment Mode</th>
<th>Print</th>
</tr>
</thead>
<tbody>
<?php
foreach($paidfees as $transact){
$feeHead = \App\StudentTransactionDetail::join('feeheads', 'student_transaction_details.idFeehead', '=', 'feeheads.idFeehead')->where('idTransaction', '=', $transact->idTransaction)->first();
if($feeHead != null)
if(str_contains($feeHead->feeheadName, "Full Payment") && $feeHead->idFinancialYear == 244){
$paidfees[] = json_decode(json_encode (array(
"type" => "book",
"idTransaction" => $transact->idTransaction."00",
"receiptNo" => "BOOK".$transact->idTransaction."MH",
"totalPaid" => "0.00",
"paymentDate" => $transact->paymentDate,
"paymentMode" => $transact->paymentMode,
"fine" => $transact->fine
)), FALSE);
break;
}
}
?>
@foreach($paidfees as $var)
<tr>
<td>{{$var->receiptNo}}</td>
<td>{{$var->paymentDate}}</td>
<td>{{$var->totalPaid}}</td>
<!--<td></td>-->
<td>{{$var->paymentMode}}</td>
@if(isset($var->type))
<td><a href="{{url('student/stdtransaction/'.$var->idTransaction.'/book-print')}}" target="_blank" class="btn btn-sm btn-info">Book Print</a></td>
@else
<td><a href="{{url('student/stdtransaction/'.$var->idTransaction.'/print')}}" target="_blank" class="btn btn-sm btn-info">Print</a></td>
@endif
</tr>
@endforeach
</tbody>
</table>
</div>
<h6>Lesser Paid Receipt</h6>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Date</th>
<th>Amount</th>
<!--<th>Balance</th>-->
<th>Payment Mode</th>
<th>Print</th>
</tr>
</thead>
<tbody>
@foreach($lesserfees as $var)
<tr>
<td>{{$var->paymentDate}}</td>
<td>{{$var->totalPaid}}</td>
<!--<td></td>-->
<td>{{$var->paymentMode}}</td>
@if($var->status == 'Cleared' || $var->status == null)
<td><a href="{{url('student/stdtransaction/lessamt/'.$var->idLesserTransaction.'/print')}}" target="_blank" class="btn btn-sm btn-info">Print</a></td>
@endif
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<p class="col-md-12 text-right" style="color:blue;cursor:pointer;" onClick="toogleDetails()">More Fee Details <i class="zmdi zmdi-long-arrow-down"></i></p>
<div class="col-md-12 text-right" id="show_details" style="display:none;">
<p class="m-b-0"><b>Fee Total: </b><span id='total_fee'></span>
<input type="hidden" name="feeTotal" id="feetotal">
</p>
<p class="m-b-0">
<b>Discount: </b>
<span id='total_discount'></span>
<input type="hidden" name="discount" id="discounttotal">
</p>
<p class="m-b-0">
<b>Fine: </b>
<span id='total_fine'></span>
<input type="hidden" name="fine" id="finetotal">
</p>
<p class="m-b-0">
<b>Cheque Bounce Penalty: </b>
<span id="penaltyAmt"></span>
<?php
$chqbounce = \App\StudentTransaction::where('idStudent', '=', $student->idStudent)
->where('idFinancialYear', '=', $student->idFinancialYear)
->where('status', '=', 'Bounced')
->get();
$chqPenaltyAmount = 0;
$chqPenaltyPaid = 0;
$chqPenaltyUnPaid = 0;
if (isset($chqbounce)) {
foreach ($chqbounce as $chqFine) {
if ($chqFine->chqFineStatus == 1)
$chqPenaltyPaid = $chqPenaltyPaid + $chqFine->chequeBounceCharge;
else
$chqPenaltyUnPaid = $chqPenaltyUnPaid + $chqFine->chequeBounceCharge;
$chqPenaltyAmount = $chqPenaltyAmount + $chqFine->chequeBounceCharge;
}
}
?>
@if(isset($chqbounce))
{{$chqPenaltyAmount}}
@if($chqPenaltyAmount==0)
<span></span>
@elseif($chqPenaltyAmount > $chqPenaltyPaid)
<span style="color:red"> | {{$chqPenaltyUnPaid}}(Unpaid)</span>
@else
<span style="color:green">(Paid)</span>
@endif
@else
<span>0.00</span>
@endif
</p>
<p class="m-b-0"><b>Excess Amount : </b>
@if(isset($prevaccess_fee->excessAmount))
{{$prevaccess_fee->excessAmount}}
@else
<span>0.00</span>
@endif
</p>
<?php $totalAmount = ($actualTotal + $totalFine + $chqPenaltyAmount - $paidfees_tot->discount); ?>
<p class="m-b-0"><b>Total Amount : </b>
{{$totalAmount}}
</p>
<p class="m-b-0"><b>Total Paid: </b>
<span id='total_paid'>
@if($paidfees_tot)
{{$paidfees_tot->totalPaid}}
@else
0.00
@endif
</span>
</p>
<p class="m-b-0"><b>Balance Amount: </b>
@if($paidfees_tot->totalPaid !=null)
<?php $b = $totalAmount - ($paidfees_tot->totalPaid); ?>
{{$b}}
@else
{{$totalAmount}}
@endif
</p>
</div>
</div>
<!--<hr>-->
<hr>
</div>
</div>
</div>
@stop
@section('script')
@if($paymentMode == "easebuzz")
<script src="https://ebz-static.s3.ap-south-1.amazonaws.com/easecheckout/easebuzz-checkout.js"></script>
@else
<script src="https://sdk.cashfree.com/js/ui/1.0.26/dropinClient.prod.js"></script>
@endif
<script>
function toogleDetails(){
$("#show_details").toggle();
}
@if($paymentMode == "easebuzz")
document.getElementById('submit-btn').onclick = function (e) {
e.preventDefault();
var adata = $('#feesubmission').serializeArray();
$("#submit-btn").prop('disabled', true);
$.ajax({
method: 'post',
url: "{!!url('student/generate-order-easebuzz')!!}",
data: adata,
success:function(result){
// console.log(result);
$('#paymentModal').modal('show')
var easebuzzCheckout = new EasebuzzCheckout(result["key"], 'prod')
var options = {
access_key: result["token"], // access key received via Initiate Payment
onResponse: (response) => {
if (response.status == "success") {
$.ajax({
url: "{!!url('student/checkpaymentstatus-easebuzz?order_id=')!!}" + response.txnid,
success: function(result) {
window.location.href = "{{url('student/payfees')}}";
},
});
}
},
theme: "#11385b" // color hex
}
$('#submit-btn').hide();
easebuzzCheckout.initiatePayment(options);
}
});
}
@else
document.getElementById('submit-btn').onclick = function (e) {
e.preventDefault();
var adata = $('#feesubmission').serializeArray();
$("#submit-btn").prop('disabled', true);
$.ajax({
method: 'post',
url: "{!!url('student/generate-order-cashfree')!!}",
data: adata,
success:function(result){
// console.log(result);
$('#paymentModal').modal('show')
var orderToken = result["order_token"];
const dropConfig = {
"components": [
"order-details",
"card",
"netbanking",
"app",
"upi"
],
"orderToken": orderToken,
"onSuccess": function(data) {
//on payment flow complete
if (data.order && data.order.status == "PAID") {
$.ajax({
url: "{!!url('student/checkpaymentstatus-cashfree?order_id=')!!}" + data.order.orderId,
success: function(result) {
window.location.href = "{{url('student/payfees')}}";
},
});
} else {
//order is still active
alert("Order is ACTIVE")
}
},
"onFailure": function(data) {
//on failure during payment initiation
alert(data.order.errorText);
},
"style": {
//to be replaced by the desired values
"backgroundColor": "#ffffff",
"color": "#11385b",
"fontFamily": "Lato",
"fontSize": "14px",
"errorColor": "#ff0000",
"theme": "light", //(or dark)
}
}
$('#submit-btn').hide();
const cashfree = new Cashfree();
const paymentElement = document.getElementById("payment-form");
cashfree.initialiseDropin(paymentElement, dropConfig);
}
});
}
@endif
// Saving form data
var isValid=0;
$(document).ready(function(){
$('.otherpaymode').hide();
$('#paymentModal').on('hidden.bs.modal', function () {
window.location.href = "{{url('student/payfees')}}";
});
$('#paymode').change(function() {
var val = $(this).val();
if((val == 'Cheque')){
$('.otherpaymode').show();
}else if(val == 'DD'){
$('.otherpaymode').show();
}else{
$('.otherpaymode').hide();
}
});
});
var feeheaderIds = [];
$('.feeclass').change(function() {
feeheaderIds = [];
$("input:checkbox[name='selectedHeaders[]']:checked").each(function () {
feeheaderIds.push($(this).val());
});
if(feeheaderIds.length>0)
$.ajax({
url: "{{url('/student/feeheaders') }}"+'/' +feeheaderIds + "/students/"+{{$student->idStudent}},
type: "GET",
dataType: "json",
success:function(data) {
$('input[name="payableAmount"]').val(data);
}
});
else $('input[name="payableAmount"]').val(" ");
});
function calculatePenalty(){
var penaltyAmt = parseFloat($('#penalty').val());
console.log(penaltyAmt);
$('#penaltyAmt').text(penaltyAmt.toFixed(2));
}
var sum = 0;
var discount = 0;
var fine = 0;
// iterate through each td based on class and add the values
$(".amt").each(function() {
var value = $(this).text();
// add only if the value is number
if(!isNaN(value) && value.length != 0) {
sum += parseFloat(value);
}
$('#total_fee').text(sum.toFixed(2));
});
$(".discount").each(function() {
var value = Number($(this).text());
// add only if the value is number
if(!isNaN(value) && value.length != 0) {
discount += parseFloat(value);
}
$('#total_discount').text(discount.toFixed(2));
});
$(".fine").each(function() {
var value = Number($(this).text());
// add only if the value is number
if(!isNaN(value) && value.length != 0) {
fine += parseFloat(value);
}
$('#total_fine').text(fine.toFixed(2));
});
var ftotal = parseFloat($('#total_fee').text());
var tdiscount = parseFloat($('#total_discount').text());
var tfine = parseFloat($('#total_fine').text());
var paidtot = parseFloat($('#total_paid').text());
var fbalance = parseFloat(ftotal+paidtot);
$('#total_balance').text(fbalance.toFixed(2));
var feetotal = parseFloat(ftotal);
$('#feetotal').val(feetotal.toFixed(2));
var distotal = parseFloat($('#total_discount').text());
$('#discounttotal').val(distotal.toFixed(2));
var tf = parseFloat($('#total_fine').text());
$('#finetotal').val(tf.toFixed(2));
var baltotal = parseFloat(ftotal+tfine-tdiscount);
$('#balance_total').text(baltotal.toFixed(2));
</script>
@stop
Copyright © 2021 -