| Current Path : /var/www/html/mmishra/erp/views/ |
| Current File : /var/www/html/mmishra/erp/views/anf_view.php |
<?php
//if (!class_exists($erpView)) {
// face detector class
require_once __DIR__."/erp_view.php";
//}
class anfView extends erpView {
var $controller;
var $model;
public function __construct($controller, $model) {
$this->controller = $controller; // instantiate controller
$this->model = $model; // instantiate model
}
public function __destruct() {
// throw last executed sql statement
//if ($this->model->sqlStmt) print("<hr>" .$this->model->sqlStmt);
if (!in_array($this->controller->menu, ['insurence', 'upload', 'nodeficit', 'payment', 'PGPayment', 'PGResponse', 'specimen', 'import', 'booking', 'photograph', 'photoshop']) && !in_array($this->controller->action, ['print', 'show', 'docUpload'])) {
print(":|:" .$this->erpMenus(). ":|:" .$this->erpXupdate(). ":|:" .$this->erpError(). ":|:" .$this->erpClock(). ":|:" .$this->erpLogin());
}
}
public function anfDashboard($action, $batchYear) {
$app = $this->controller->app;
$menu = $this->controller->menu;
$str = $this->pageHeader($findbar, $toolbar, 1);
foreach ($this->controller->degreeLevels as $degreeLevel => $desc) {
$programs = $this->model->selectProgram($degreeLevel);
foreach ($programs as $program) {
// loop through records
$programID = $program['programID'];
$minRank1 = 0;
$maxRank1 = 0;
// initialize variables
$aTotal = 0;
$eTotal = 0;
$sTotal = 0;
$wTotal = 0;
$genders = '';
$student4 = null;
foreach (array_keys($this->controller->genders) as $key) {
$applicant1[$key] = 0;
$enroll1[$key] = 0;
$student1[$key] = 0;
$withdrawal1[$key] = 0;
$genders .= "<th>$key</th>";
}
foreach (array_keys(array_merge($this->controller->categorys, $this->controller->dasaCategorys)) as $key1) {
if ($key1 == 'OBC-NCL') $key1 = 'OBC';
$applicant2[$key1] = '';
$student2[$key1] = '';
$withdrawal2[$key1] = '';
$minRank[$key1] = '';
$maxRank[$key1] = '';
foreach (array_keys($this->controller->genders) as $key2) {
$applicant3[$key1.'-'.$key2] = '';
$student3[$key1.'-'.$key2] = '';
$withdrawal3[$key1.'-'.$key2] = '';
}
}
$states = $this->model->listStates('IN');
foreach ($states as $row) {
$state[$programID.'-'.$row['stateID']] = 0;
}
$countrys = $this->model->listCountrys();
foreach ($countrys as $row) {
$country[$programID.'-'.$row['countryCode']] = 0;
}
// gender/category wise applicants breakup
$applicants = $this->model->selectApplicant1($programID);
foreach ($applicants as $applicant) {
if ($applicant['pwdStatus'] == 'Y') {
$acat = 'PWD';
} else {
$acat = trim($applicant['offerCategory']);
}
if (!$acat) $acat = trim($applicant['category']);
$acat = (strtoupper($acat) == 'OPEN' ? 'GEN' : $acat);
$acat = (strtoupper($acat) == 'OBC-NCL' ? 'OBC' : $acat);
$asex = trim($applicant['gender']);
$applicant1[substr($asex, 0, 1)]++;
if (!$applicant2[$acat]) $applicant2[$acat] = 0;
$applicant2[$acat]++;
$applicant3[$acat.'-'.$asex]++;
$aTotal++;
}
$aBreakup = "<div align='right'>";
foreach ($applicant1 as $key => $value) {
$aBreakup .= $this->controller->genders[$key]. " : " .str_pad($value, 3, '0', STR_PAD_LEFT). " <br>";
}
$aBreakup .= "<hr width='70%' align='right'><b>Total : " .str_pad($aTotal, 3, '0', STR_PAD_LEFT). " </b></div>";
// gender/category wise student breakup
$enrolments = $this->model->selectEnrolment($programID);
foreach ($enrolments as $enrolment) {
if ($enrolment['pwdStatus'] == 'Y') {
$ecat = 'PWD';
} else {
$ecat = trim($enrolment['enrolCategory']);
}
if (!$ecat) $ecat = trim($enrolment['category']);
$ecat = (strtoupper($ecat) == 'OPEN' ? 'GEN' : $ecat);
$ecat = (strtoupper($ecat) == 'OBC-NCL' ? 'OBC' : $ecat);
$esex = trim($enrolment['gender']);
$student1[$esex]++;
$enroll1[$esex]++;
$eTotal++;
if (!$student2[$ecat]) $student2[$ecat] = 0;
$student2[$ecat]++;
$student3[$ecat. '-' .$esex]++;
if (!$student4[trim($enrolment['loginID'])]) $student4[trim($enrolment['loginID'])] = 0;
$student4[trim($enrolment['loginID'])]++;
$state[$programID. '-' .$enrolment['homeState']]++;
$country[$programID. '-' .$enrolment['nationality']]++;
if (!$minRank1) {
if (!in_array($ecat, array_keys($this->controller->dasaCategorys))) {
$minRank1 = $enrolment['lastScore'];
$minRanker1 = $enrolment['enrolmentNo']. '-' .$enrolment['nameEnglish']. ' (' .$enrolment['nameHindi']. ') ' .$ecat;
}
}
if (!$minRank[$ecat]) {
$minRank[$ecat] = $enrolment['lastScore'];
$minRanker[$ecat] = $enrolment['enrolmentNo']. '-' .$enrolment['nameEnglish']. ' (' .$enrolment['nameHindi']. ')';
}
if ($enrolment['lastScore'] < $minRank1) {
if (!in_array($ecat, array_keys($this->controller->dasaCategorys))) {
$minRank1 = $enrolment['lastScore'];
$minRanker1 = $enrolment['enrolmentNo']. '-' .$enrolment['nameEnglish']. ' (' .$enrolment['nameHindi']. ') ' .$ecat;
}
} else if ($enrolment['lastScore'] > $maxRank1) {
$maxRank1 = $enrolment['lastScore'];
$maxRanker1 = $enrolment['enrolmentNo']. '-' .$enrolment['nameEnglish']. ' (' .$enrolment['nameHindi']. ') ' .$ecat;
}
if ($enrolment['lastScore'] < $minRank[$ecat]) {
if (!in_array($ecat, array_keys($this->controller->dasaCategorys))) {
$minRank[$ecat] = $enrolment['lastScore'];
$minRanker[$ecat] = $enrolment['enrolmentNo']. '-' .$enrolment['nameEnglish']. ' (' .$enrolment['nameHindi']. ')';
}
} else if ($enrolment['lastScore'] > $maxRank[$ecat]) {
$maxRank[$ecat] = $enrolment['lastScore'];
$maxRanker[$ecat] = $enrolment['enrolmentNo']. '-' .$enrolment['nameEnglish']. ' (' .$enrolment['nameHindi']. ')';
}
$sTotal++;
}
$sBreakup = "<div align='right'>";
foreach ($student1 as $key => $value) {
$sBreakup .= $this->controller->genders[$key]. " : " .str_pad($value, 3, '0', STR_PAD_LEFT). " <br>";
}
$sBreakup .= "<hr width='70%' align='right'><b>Total : " .str_pad($sTotal, 3, '0', STR_PAD_LEFT). " </b>
</div>";
// gender/category wise withdrawal breakup
$withdrawals = $this->model->listWithdrawals($programID);
foreach ($withdrawals as $withdrawal) {
if ($withdrawal['pwdStatus'] == 'Y') {
$wcat = 'PWD';
} else {
$wcat = trim($withdrawal['enrolCategory']);
}
if (!$wcat) $wcat = trim($withdrawal['category']);
$wcat = (strtoupper($wcat) == 'OPEN' ? 'GEN' : $wcat);
$wcat = (strtoupper($wcat) == 'OBC-NCL' ? 'OBC' : $wcat);
$wsex = trim($withdrawal['gender']);
$withdrawal1[$wsex]++;
$enroll1[$wsex]++;
$eTotal++;
if (!$withdrawal2[$wcat]) $withdrawal2[$wcat] = 0;
$withdrawal2[$wcat]++;
$withdrawal3[$wcat.'-'.$wsex]++;
$wTotal++;
}
$wBreakup = "<div align='right'>";
foreach ($withdrawal1 as $key => $value) {
$wBreakup .= $this->controller->genders[$key]. " : " .str_pad($value, 3, '0', STR_PAD_LEFT). " <br>";
}
$wBreakup .= "<hr width='70%' align='right'><b>Total : " .str_pad($wTotal, 3, '0', STR_PAD_LEFT). " </b>
</div>";
$eBreakup = "<div align='right'>";
foreach ($enroll1 as $key => $value) {
$eBreakup .= $this->controller->genders[$key]. " : " .str_pad($value, 3, '0', STR_PAD_LEFT). " <br>";
}
$eBreakup .= "<hr width='70%' align='right'><b>Total : " .str_pad($eTotal, 3, '0', STR_PAD_LEFT). " </b>
</div>";
$str .= "<table border='1' class='report'>
<tr valign='top'><th width='10%'>Program</th><th width='8%'>Student In-roll</th><th width='8%'>Student Withdrawn</th><th width='8%'>Total Enrollment</th><th width='8%'>Candidates Reported</th><th>Category-wise Summary Table</th></tr>
<tr valign='top'><th><br>$desc<br><br>" .$program['programCode']. "<br><br>Duration: " .$program['timeDuration']. " Year<br>Enrollment: " .$program['rollnoPrefix']. " / " .$program['lastRollno']."<br><p>Min. " .($degreeLevel == 'UG' ? 'Rank' : 'Score'). ": <a title='$minRanker1'>" .($degreeLevel == 'UG' ? intval($minRank1) : $minRank1). "</a><br> Max. " .($degreeLevel == 'UG' ? 'Rank' : 'Score'). ": <a title='$maxRanker1'>" .($degreeLevel == 'UG' ? intval($maxRank1) : $maxRank1). "</a></p></th><td>$sBreakup</td><td>$wBreakup</td><td>$eBreakup</td><td>$aBreakup</td>
<td><table border='1' class='report'>
<tr valign='top'><th width='10%'>Category</th><th width='10%'>Fees</th><th width='10%'>Mess</th><th>Candidates</th>$genders<th>Admissions</th>$genders<th>Withdrawals</th>$genders<th>Min" .($degreeLevel == 'UG' ? 'Rank' : 'Score'). "</th><th>Max" .($degreeLevel == 'UG' ? 'Rank' : 'Score'). "</th></tr>";
$cats = array_keys(($degreeLevel == 'UG' ? array_merge($this->controller->categorys, $this->controller->dasaCategorys) : $this->controller->categorys));
foreach ($cats as $category) {
$no++;
if ($category == 'OBC-NCL') continue;//$category = 'OBC';
$fees = $this->model->getPayable($programID, $category, 1);
$mess = $this->model->getPayable($programID, $category, 2);
$aTotal1 = $applicant2[$category];
$sTotal1 = $student2[$category];
$wTotal1 = $withdrawal2[$category];
$sBreakup = '';
$wBreakup = '';
$aBreakup = '';
foreach (array_keys($this->controller->genders) as $key) {
$aBreakup .= "<td align='center'>" .$applicant3[$category. '-' .$key]. '</td>';
$sBreakup .= "<td align='center'>" .$student3[$category. '-' .$key]. '</td>';
$wBreakup .= "<td align='center'>" .$withdrawal3[$category. '-' .$key]. '</td>';
}
$str .= "<tr valign='top'><td width='15%' nowrap> $category</td>
<td width='15%' align='right' nowrap>" .($fees['curency'] == 'INR' ? $this->rs : $this->do). ' ' .$fees['amount']. " </td>
<td width='15%' align='right' nowrap>" .($mess['curency'] == 'INR' ? $this->rs : $this->do). ' ' .$mess['amount']. " </td>
<td align='center'>" .$aTotal1. "</td>" .$aBreakup. "
<td align='center'>" .$sTotal1. "</td>" .$sBreakup. "
<td align='center'>" .$wTotal1. "</td>" .$wBreakup;
if (in_array($category, array_keys($this->controller->dasaCategorys))) {
$str .= "<td align='center'>N/A</td><td align='center'>N/A</td></tr>";
} else {
$str .= "<td align='center'><a title='" .$minRanker[$category]. "'>" .($degreeLevel == 'UG' ? intval($minRank[$category]) : $minRank[$category]). "</a></td><td align='center'><a title='" .$maxRanker[$category]. "'>" .($degreeLevel == 'UG' ? intval($maxRank[$category]) : $maxRank[$category]). "</a></td></tr>";
}
}
$str .= "</table></td></tr>";
if ($sTotal) {
$str .= "<tr><th>State-wise Count</th><td colspan='5'>";
foreach ($states as $row) {
$str .= ($state[$programID.'-'.$row['stateID']] ? "[" .$row['stateName']. ": " .$state[$programID.'-'.$row['stateID']]. "] " : '');
}
$str .= "</td></tr>
<tr><th>Country-wise Count</th><td colspan='5'>";
foreach ($countrys as $row) {
$str .= ($country[$programID.'-'.$row['countryCode']] ? "[" .$row['countryName']. ": " .$country[$programID.'-'.$row['countryCode']]. "] " : '');
}
$str .= "</td></tr>
<tr><th>Staff-wise Count</th><td colspan='5'>";
foreach ($student4 as $key => $value) {
$str .= "[" .ucwords($key) .": $value] ";
}
$str .= "</td></tr>";
}
$str .= "</table><br>";
flush();
}
}
return $str;
}
public function anfFeehead($action, $feeheadID) {
$app = $this->controller->app;
$menu = $this->controller->menu;
$feeheadID = $this->controller->manageFeehead($action, $feeheadID);// initiate controller action
// controller locks/unlocks field through manage call
$ro = $this->controller->editLock; // ensure default edit lock
$feeheads = $this->model->listFeeheads();
$data = $this->model->getFeehead($feeheadID); // get record
$toolbar = $this->erpToolbar();
$str = $this->pageHeader($findbar, $toolbar);
$str .= "<table width='100%'>
<tr><th width='70%'>Feehead #{$feeheadID} Detail</th><th width='30%'>Feehead List</th></tr>
<tr valign='top'><td>
<table class='interface'>
<tr><td nowrap width='20%'>Feehead Code</td><td><input type='text' name='feeheadCode' size='50' value='" .$data['feeheadCode']. "' placeholder='unique 3 characters' $ro></td></tr>
<tr><td nowrap>Feehead Name</td><td><input type='text' name='feeheadName' size='50' value='" .$data['feeheadName']. "' placeholder='max. 255 character' $ro></td></tr>
<tr><td nowrap>Account Type</td><td><select name='accountType' style='width: 280px'>";
foreach ($this->controller->accountTypes as $code => $desc) {
$str .= "<option value='$code'" .($data['accountType'] == $code ? self::SL : $this->dis). ">$desc</option>";
}
$str .= "</select></td></tr>
<tr><td>Payment Term</td><td><select name='paymentTerm' style='width: 280px'>";
foreach ($this->controller->paymentTerms as $code => $desc) {
$str .= "<option value='$code'" .($data['paymentTerm'] == $code ? self::SL : $this->dis). ">$desc</option>";
}
$str .= "</select></td></tr>
</table>
</td><td>
<ol class='listbar'>";
foreach($feeheads as $feehead) {
$str .= "<li>" .($feehead['feeheadID'] == $feeheadID ? "<b>" .$feehead['feeheadName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/" .$feehead['feeheadID']."'); return false;\">" .$feehead['feeheadName']. "</a>"). " (" .$feehead['status']. ")</li>";
}
$str .= "</ol></td></tr>
</table>" .$this->pageFooter('', $toolbar);
return $str;
}
public function anfFeechart($action, $feechartID) {
$app = $this->controller->app;
$menu = $this->controller->menu;
$programID = $this->controller->params[0];
$category = $this->controller->params[1];
$feechartID = $this->controller->manageFeechart($action, $feechartID); // initiate controller action
$ro = $this->controller->editLock;
$programs = $this->model->selectProgram();
$feeheads = $this->model->selectFeehead();
$feecharts = $this->model->selectFeechart($programID, $category);
$toolbar = ($programID && $category ? $this->erpToolbar() : '');
$findbar = "Program <select name='programID1' style='width: 200px' onchange=\"inner('$app/$menu/open/0/'+this.options[this.selectedIndex].value+'/0'); return false;\">
<option value='0'>Select</option>";
foreach ($programs as $program) {
$findbar .= "<option value='" .$program['programID']. "'" .($programID == $program['programID'] ? self::SL : ''). ">" .$program['programCode']. "</option>";
if ($programID == $program['programID']) {
$dl = $program['degreeLevel'];
}
}
asort($this->controller->categorys);
asort($this->controller->dasaCategorys);
$cats = ($dl == 'UG' ? array_merge($this->controller->categorys, $this->controller->dasaCategorys) : $this->controller->categorys);
$findbar .= "</select>
Category <select name='category1' style='width: 200px' onchange=\"inner('$app/$menu/open/0/$programID/'+this.options[this.selectedIndex].value); return false;\">
<option value='0'>Select</option>";
foreach ($cats as $code => $desc) {
$findbar .= "<option value='$code'" .($category == $code ? self::SL : ''). ">$code</option>";
}
$findbar .= "</select>";
$str = $this->pageHeader($findbar, $toolbar);
if ($programID && $category) {
$str .= "<table width='100%' class='interface'>
<tr><th width='40%'>Fee #{$feechartID} Detail</th><th>Other Category/Program Having Same Fee Structure</th></tr>
<tr valign='top'><td><table class='interface'>
<tr><th>#</th><th>Fee Head</th><th>Payment Term</th><th>Fee Amount</th></tr>";
foreach($feecharts as $feechart) {
$i++;
$heads[$i] = $feechart['feeheadID'];
if ($feechart['paymentTerm'] == 9) {
$total -= $feechart['feeAmount'];
} else {
$total += $feechart['feeAmount'];
}
$str .= "<tr valign='top'><td>$i</td>";
if ($feechart['feechartID'] == $feechartID) {
$categorys = explode(',', $feechart['category']);
$programIDs = explode(',', $feechart['programID']);
$str .= "<td><b>" .$feechart['feeheadName']. "</b><input type='hidden' name='feeheadID' value='" .$feechart['feeheadID']. "'></td>
<td>" .$this->controller->paymentTerms[$feechart['paymentTerm']]. "</td>
<td align='right' nowrap><select name='currency' style='width: 50px'>";
foreach ($this->controller->currencys as $code => $desc) {
$str .= "<option value='$code'" .($feechart['currency'] == $code ? self::SL : $this->dis). ">$code</option>";
}
$str .= "</select> <input type='number' name='feeAmount' style='width: 100px' value='" .$feechart['feeAmount']. "' placeholder='decimal format' $ro></td><td>";
} else {
$str .= "<td><a href='' onclick=\"inner('$app/$menu/open/" .$feechart['feechartID']. "/$programID/$category'); return false;\">" .$feechart['feeheadName']. "</a></td>
<td>" .$this->controller->paymentTerms[$feechart['paymentTerm']]. "</td>
<td align='right'>" .($feechart['currency'] == 'INR' ? $this->rs : $this->do). $feechart['feeAmount'] ."</td>";
}
$str .= "</tr>";
}
if ($action == 'new') {
$str .= "<tr valign='top'><td>New</td><td colspan='2'><select name='feeheadID' style='width: 90%'>
<option value=''>Select</option>";
foreach ($feeheads as $feehead) {
$str .= (in_array($feehead['feeheadID'], $heads) ? '' : "<option value='" .$feehead['feeheadID']. "' " .$this->dis. ">" .$feehead['feeheadCode']. ' - ' .$feehead['feeheadName']. ' (' .$this->controller->paymentTerms[$feehead['paymentTerm']]. ")</option>");
}
$str .= "</select></td><td align='right' nowrap><select name='currency' style='width: 50px'>";
foreach ($this->controller->currencys as $code => $desc) {
$str .= "<option value='$code' " .$this->dis. ">$code</option>";
}
$str .= "</select> <input type='number' name='feeAmount' style='width: 100px' value='" .$data['feeAmount']. "' placeholder='decimal format' $ro></td></tr>";
}
$str .= "<tr><th colspan='3'>Total Admission Fees</th><th>" .($feechart['currency'] == 'INR' ? $this->rs : $this->do). ' ' .number_format($total, 2). "</th></tr>
</table></td><td align='center'>";
foreach ($this->controller->degreeLevels as $code => $desc) {
$col++;
$degrees[$col] = $code;
$oprograms = $this->model->selectProgram($code);
foreach ($oprograms as $oprogram) {
//if ($programID != $oprogram['programID']) $progs[$code] .= "<input type='checkbox' id='prg' name='programID[]' value='" .$oprogram['programID']. "'" .(in_array($oprogram['programID'], $programIDs) ? self::CK : $this->dis). ">" .$oprogram['programCode']. '<br>';
$progs[$code] .= "<input type='checkbox' id='prg' name='programID[]' value='" .$oprogram['programID']. "'" .((in_array($oprogram['programID'], $programIDs) || $oprogram['programID'] == $programID) ? self::CK : $this->dis). ">" .$oprogram['programCode']. '<br>';
}
}
$str .= "<table class='report'>
<tr valign='top'><td>";
foreach ($this->controller->categorys as $code => $desc) {
//if ($code != $category) $str .= "<input type='checkbox' id='cat' name='category[]' value='$code'" .(in_array($code, $categorys) ? self::CK : $this->dis). ">$code - $desc<br>";
$str .= "<input type='checkbox' id='cat' name='category[]' value='$code'" .((in_array($code, $categorys) || $code == $category) ? self::CK : $this->dis). ">$code - $desc<br>";
}
if ($dl == 'UG') {
$str .= "</td><td>";
foreach ($this->controller->dasaCategorys as $code => $desc) {
//if ($code != $category) $str .= "<input type='checkbox' id='cat' name='category[]' value='$code'" .(in_array($code, $categorys) ? self::CK : $this->dis). ">$code - $desc<br>";
$str .= "<input type='checkbox' id='cat' name='category[]' value='$code'" .((in_array($code, $categorys) || $code == $category) ? self::CK : $this->dis). ">$code - $desc<br>";
}
}
$str .= "</td></tr></table>
<span class='findbar'><input type='checkbox' onclick='toggle(this,\"cat\")'> Toggle All Categorys</span>
<table class='report'>
<tr><th>". implode('</th><th>', $degrees). "</th></tr>
<tr valign='top'><td>" .implode('</td><td>', $progs). "</td></tr></table>
<span class='findbar'><input type='checkbox' onclick='toggle(this,\"prg\")'> Toggle All Programs</span>
</td></tr></table>" .$this->pageFooter('', $toolbar);
} else {
$str .= "<h1 align='center'>Select program and category to proceed with.</h1>";
}
return $str;
}
public function anfPayment($action, $studentID) {
$app = $this->controller->app; // required for toolbar and urls
$menu = $this->controller->menu; // required for toolbar and urls
$account = $this->controller->params[0];
$amount = $this->controller->params[1];
$currency = $this->controller->params[2];
$paymentID = $this->controller->managePayment($action, $studentID);
$ro = '';
$programID = $this->model->getProgramIDByStudentID($studentID);
if ($amount) {
$toolbar = "<a href='' onclick=\"inner('$app/$menu/refresh/$studentID/$account/$amount/$currency'); return false;\" title='Refresh Page'><span class='button'><i class='fas fa-sync-alt'></i></span></a>
<a href='' onclick=\"inner('$app/enrolment/open/$studentID/$programID'); return false;\" title='Go Back'><span class='button'><i class='fas fa-arrow-circle-left'></i></span></a>
<a href='' onclick=\"inner('$app/$menu/save/$studentID/$account/$amount/$currency'); return false;\" title='Pay Offline'><span class='button'><i class='far fa-save'></i></span></a>";
}
$str = $this->pageHeader($findbar, $toolbar);
$str .= $this->studentDetail($studentID);
if ($amount) {
$str .= "<hr width='50%'><h1 class='alert' align='center'>Above information are required for ONLINE " .$this->controller->accountTypes[$account]. " payment.</h1><hr width='50%'>
<table class='interface'>
<tr><th colspan='10'>" .$this->controller->accountTypes[$account]. " Payment</th></tr>
<tr><td nowrap align='right'><b>Amount</b> ($currency)</td><td nowrap><input type='text' name='payAmount' size='10' value='$amount'></td>
<td nowrap align='right'>Payment Date</td><td><input type='text' name='datePayment' size='10' value='" . date("Y-m-d"). "' placeholder='YYYY-MM-DD format'></td>
<td nowrap align='right'>Payment Mode</td><td><select name='paymentMode' style='width: 100px' on change=\"form.no.text='UTR'; return false;\">";
foreach ($this->controller->paymentModes as $mode) {
$str .= "<option value='$mode'>$mode</option>";
}
$str .= "</select></td>
<td align='right' nowrap><label for='tno'>Invoice No.</lable></td><td><input type='text' name='paymentNo' size='10' value='' placeholder='Payment No.'></td>
<td align='right' nowrap><label for='bnk'>Bank Name</label></td><td><input type='text' name='bankName' size='20' value='' placeholder='Payee bank name'></td></tr>
</table>" .$this->pageFooter('', $toolbar). "
<ul>
<li><u>On approval of part payments, amount may be adjusted here.</u></li>
<li><i>Use Online Payment Gateway for credit/debit cards, net banking or Point of Sale (POS) terminal for credit/debit card swapping.</i></li>
</ul>
<script language='javascript'>
$('select[name=paymentMode]').change(function() {
var selected = $('option:selected', this).text().trim();
if(selected == 'NEFT') {
$('label[for=tno]').text('UTR No.');
$('label[for=bnk]').text('Bank Name');
} else if (selected == 'DD') {
$('label[for=tno]').text('DD No.');
$('label[for=bnk]').text('Bank Name');
} else if (selected == 'Alumni') {
$('label[for=tno]').text('Alumni RollNo.');
$('label[for=bnk]').text('Remark');
} else {
$('label[for=tno]').text('Invoice No');
$('label[for=bnk]').text('Bank Name');
}
});
</script>";
} else {
$str .= "<center><span class='plainbar'><b class='alert'>Nothing due</b></span></center>";
}
$str .= "</center><br><br>" .$this->anfTransactions($studentID);
return $str;
}
public function anfTransactions($studentID) {
$transactions = $this->model->listPayments($studentID);
$str = "<table width='100%'>
<tr><th colspan='7'>Payment #{$studentID} Transactions</th></tr>";
if ($transactions) {
$str .= "<tr><th>#</th><th>Account</th><th>Payment No.</th><th>Payment Date</th><th>Payment Mode</th><th>Bank Name</th><th align='right'>Amount</th></tr>";
foreach ($transactions as $transaction) {
$i++;
$str .= "<tr><td>$i</td><td>" .$this->controller->accountTypes[$transaction['accountType']]. "</td><td>" . $transaction['paymentNo']. "</td><td>" .$transaction['datePayment']. "</td><td>" .$transaction['paymentMode']. "</td><td>" .$transaction['bankName']. "</td><td align='right'>" .($transaction['currency'] == 'INR' ? $this->rs : $this->do). " " .$transaction['payAmount']. "</td></tr>";
}
} else {
$str .= "<tr><td colspan='7'><b class='alert'>None</b></td></tr>";
}
$str .= "</table>";
return $str;
}
public function anfGateway($action, $studentID) {
$app = $this->controller->app; // required for toolbar and urls
$menu = $this->controller->menu; // required for toolbar and urls
$account = $this->controller->params[0];
$applicantID = $this->model->getApplicantIDByStudentID($studentID);
$data = $this->model->getApplicant($applicantID); // get record
$programID = $data['programID']; // to get program detail
$offerCategory = $data['offerCategory'];
$category = $data['category'] ? $data['category'] : $offerCategory; // for DASA candidates
$category = ($data['pwdStatus'] == 'Y' ? 'PWD' : $category);
$program = $this->model->getProgram($programID);
$dLevel = $program['degreeLevel'];
$amount = $_POST['amount'];
$currency = $_POST['currency'];
// save payments in database
$toolbar = "<a href='' onclick=\"inner('$app/$menu/new/$studentID/$account/$amount/$currency'); return false;\" title='Refresh Page'><span class='button'><i class='fas fa-sync-alt'></i></span></a>
<a href='' onclick=\"inner('$app/payment/new/$studentID/$account/$amount/$currency'); return false;\" title='Go Back'><span class='button'><i class='fas fa-arrow-circle-left'></i></span></a>";
// ============================ HDFC Bank PG
$HASHING_METHOD = "sha512"; // md5,sha1
if (strtoupper($action) == 'FEES') {
// fees account
$hashData = "020bc4ca9304d76f471b03213f73d035";
$pg1['account_id'] = "25146";
$accountType = 1;
$reference = $data['rollNo']. '-Fees';
} else {
// mess account
$hashData = "7bd65b21e13f2446b64d2594029fd957";
$pg1['account_id'] = "28546";
$accountType = 2;
$reference = $data['rollNo']. '-Mess';
}
$pg1['mode'] = "LIVE";
$pg1['channel'] = "10";
$pg1['reference_no'] = $reference;
$pg1['description'] = $data['batchYear']. "-" .$program['programCode'];
$pg1['amount'] = $amount;
$pg1['currency'] = $currency;
$pg1['return_url'] = "https://erp.iiita.ac.in/outer/anf/PGResponse/online/$studentID/HDFC/$accountType";
$pg1['name'] = $data['nameEnglish'];
$pg1['phone'] = $data['phoneNo'];
$pg1['email'] = $data['email'];
$pg1['address'] = $data['homeAddress'];
$pg1['city'] = $this->model->getDistrictNameByDistrictID($data['homeDistrict']);
$pg1['state'] = $this->model->getStateNameByStateID($data['homeState']);
$pg1['postal_code'] = $data['homePIN'];
$pg1['country'] = $data['nationality'];
unset($_POST['securekey']);
unset($_POST['submitted']);
unset($_POST['curency']);
unset($_POST['studentID']);
ksort($pg1);
foreach ($pg1 as $key => $value){
//echo '[' .$key. '-' .$value. ']';
if (strlen($value) > 0) {
$hashData .= '|'.$value;
}
}
if (strlen($hashData) > 0) {
$secureHash = strtoupper(hash($HASHING_METHOD, $hashData));
}
// ========================= CANARA Bank PG
$pg2['prodid'] = 'IIIT';
$pg2['amt'] = $amount;
$pg2['txncurr'] = $currency;
$pg2['txnscamt'] = $amount;
$pg2['ru'] = "https://erp.iiita.ac.in/outer/anf/PGResponse/online/$studentID/ATOM/1";
$pg2['clientcode'] = $data['rollNo']; //rollno
$pg2['txnid'] = $data['rollNo']; //rollno
$pg2['date'] = date("Y-d-m");
$pg2['TType'] = 'NBFundTransfer';
$pg2['custacc'] = '0627101019766';
$pg2['bookingid'] = '100001';
$pg2['udf1'] = $data['nameEnglish'];
$pg2['udf2'] = $data['email'];
$pg2['udf3'] = $data['phoneNo'];
$pg2['udf4'] = $reference;
$pg2['udf5'] = $data['batchYear']. "-" .$program['programCode'];
$pg2['udf6'] = $studentID;
$pg2['udf9'] = 1; // semester
foreach ($pg2 as $key => $value) {
$queryString .= $key . '=' .$value. '&';
}
$str = $this->pageHeader($findbar, $toolbar);
$str .= $this->candidateProfile($studentID);
$str .= "<table class='interface'>
<tr><td width='8%' nowrap>". $program['entranceName']. " Roll No.</td><td width='12%'><b>" .$data['rollNo']. "</b></td>
<td width='8%' nowrap align='right'>Name</td><td colspan='3'><b>" .$data['nameEnglish']. ' (' .$data['nameHindi']. ")</b></td>
<td width='8%' nowrap align='right'>Contact</td><td width='12%'><b>" .$data['phoneNo']. ", " .$data['email']. "</b></td>
<td width='8%' align='right'>Aadhaar No.</td><td width='12%'><b>" .$data['aadhaarNo']. "</b></td></tr>
</table>Above information are required for online payment.
<div align='center'><h1>" .$this->controller->accountTypes[$account]. "</h1>
<h4>Payable Amount: $currency " .number_format($_POST['amount'], 2). " ";
if ($account == 2 || $dLevel == 'UG') {
$str .= "<a href='' onclick=\"document.erpForm.submit(); return false;\" target='new' title='Confirm Payment'><img src='images/hdfc.png' width='60' height='20'></a>";
} else {
$str .= "<a href='https://erp.iiita.ac.in/atom.php?{$queryString}proceed=1' title='Confirm Payment' target='new'><img src='images/atom.png' width='60' height='20'></a>";
}
$str .= "</h4>
<h5>For payment you may route through either HDFC or ATOM Gateway, accordingly bank may charge for online transactions.</h5>
</div>";
foreach($pg1 as $key => $value) {
$str .= "<input type='hidden' name='" .$key. "' value='" .$value. "'>";
}
$str .= "<input type='hidden' name='secure_hash' value='" .$secureHash. "'>" .$this->pageFooter('', $toolbar);
return $str;
}
public function anfReceipt($action, $studentID) {
$app = $this->controller->app;
$menu = $this->controller->menu;
$withdrawal = $this->controller->params[0];
$enrolmentID = $this->model->getEnrolmentIDByStudentID($studentID);
$enrolment = $this->model->getEnrolment($enrolmentID);
if ($enrolment) {
$studentID = $enrolment['studentID'];
$programID = $enrolment['programID'];
$enrolmentNo = $enrolment['enrolmentNo'];
$category = $enrolment['category'];
$enrolCategory = $enrolment['enrolCategory'];
$pwdStatus = $enrolment['pwdStatus'];
$accountNo = $enrolment['accountNo'];
$holderName = $enrolment['holderName'];
$bankName = $enrolment['bankName'];
$ifscCode = $enrolment['ifscCode'];
$districtName = $this->model->getDistrictNameByDistrictID($enrolment['homeDistrict']);
$stateName = $this->model->getStateNameByStateID($enrolment['homeState']);
$countryName = strtoupper($this->model->getCountryNameByCountryCode($enrolment['nationality']));
$allotteeID = $this->model->getAllotteeIDByAllotteeNo($enrolmentNo);
$allottee = $this->model->getAllottee($allotteeID);
$hostelID = $allottee['hostelID'];
$roomID = $allottee['roomID'];
$hostelCode = $this->model->getHostelCodeByHostelID($hostelID);
$room = $this->model->getRoom($roomID);
$roomNo = $room['roomNo'];
$floorNo = $room['floorNo'];
$hostelRoom = "$roomNo in $hostelCode (" .$this->controller->floorNos[$floorNo]. " floor)";
try {
$photo = $this->model->getMyUpload($studentID, 'PHO');
$psign = $this->model->getMyUpload($studentID, 'SIG');
} catch (Exception $e) {
print $e->__toString();
}
$institute = $this->model->getInstitute();
$program = $this->model->getProgram($programID);
// generate pdf file of receipt
$pdf = new erpLetterPad([], $institute);
$pdf->autoScriptToLang = true;
$pdf->autoLangToFont = true;
$pdf->SetDisplayMode(real, 'default');
// create first page
$pdf->AddPage();
$pdf->SetTitle('ERP PDF Generator');
$pdf->SetAuthor('IIIT-A');
$pdf->SetAutoPageBreak(0);
$pdf->SetXY(20, 38);
$pdf->SetFont('Times', 'I', 8);
$pdf->Cell(178, 5, "Ref. No.: IIITA/A&F/" .$_SESSION["batchYear"]. '/' .$enrolmentNo. '/' .$studentID, 0, 0, 'R');
$pdf->SetXY(20, 45);
$pdf->SetFont('Times', 'U', 13);
$pdf->Cell(0, 0, 'Provisional Fee Receipt - ' .$enrolment['batchYear'], 0, 1, 'C');
$pdf->SetFont('Times', 'I', 11);
$pdf->Cell(0, 12, '( Under ' .$enrolment['enrolCategory']. ' Category )', 0, 1, 'C');
$pdf->Ln(3);
try {
$pdf->Image(($photo ? "https://erp.iiita.ac.in/uploads/photos/{$photo}" : "https://erp.iiita.ac.in/images/dummy.jpg"), 175, 48, 22, 28);
} catch (Exception $e) {
$pdf->cell(175, 48, $e->getMessage(), 0, 1, 'L');
}
$passYear = $enrolment['batchYear'] + $program['timeDuration'];
$y = 60;
$pdf->SetXY(20, $y);
foreach ($this->controller->dasaCategorys as $key => $value) {
if ($key == $enrolCategory) $feesCategory = $enrolCategory;
}
if (!$feesCategory) $feesCategory = ($pwdStatus == 'Y' ? 'PWD' : $category);
$candidateID = $this->model->getCandidateIDByRollNo($this->model->getRollNoByStudentID($studentID));
$candidate = $this->model->getCandidate($candidateID);
$payables = $this->model->listPayables($enrolment['programID'], $feesCategory);
foreach ($payables as $payable) {
if ($candidate['alumni'] == 'Y' && $payable['feeheadName'] == 'Alumni Fund') {
} else {
$fees .= "<tr><td>" .$payable['feeheadName']. "</td><td>(" .explode(' ', $this->controller->accountTypes[$payable['accountType']])[0]. ")</td><td>" .$this->controller->paymentTerms[$payable['paymentTerm']]. "</td><td align='right' nowrap>" .$payable['currency']. ' ' .number_format($payable['feeAmount'], 2). "</td></tr>";
if ($payable['paymentTerm'] < 9) {
$totalFees += $payable['feeAmount'];
} else {
$totalFees -= $payable['feeAmount'];
}
$y += 5;
}
}
$fees .= "<tr><td colspan='3' align='right'><br><b>Total</b></td><td align='right'><hr><b>" .($payable['currency'] ? $payable['currency'] : $this->rs). ' ' .number_format($totalFees, 2). "</b></td></tr>";
$prepaids = $this->model->listPrepaids($programID, $feesCategory);
foreach ($prepaids as $prepaid) {
$paid .= "<tr><td>Fees</td><td>" .$prepaid['feeheadName']. "</td><td>Counselling</td><td>(Direct)</td><td align='right'>" .$prepaid['currency']. ' ' .number_format($prepaid['feeAmount'], 2). "</td></tr>";
$totalPaid += $prepaid['feeAmount'];
}
$payments = $this->model->listPayments($studentID);
foreach ($payments as $payment) {
$paid .= "<tr><td>" .explode(' ', $this->controller->accountTypes[$payment['accountType']])[0]. "</td><td>" .$payment['paymentNo']. "</td><td>" .$payment['datePayment']. "</td><td>(" .$payment['paymentMode']. ")</td><td align='right' nowrap>" .($payment['currency'] ? $payment['currency'] : 'INR'). ' ' .number_format($payment['payAmount'], 2). "</td></tr>";
$totalPaid += $payment['payAmount'];
}
if ($this->model->getMyExemption($studentID, 1)) {
$paid .= "<tr><td colspan='5'>Fees payment exempted by competent authority temporarily (till " .$this->model->getMyExemption($studentID, 1). ") on written equest of student.</td></tr>";
}
if ($this->model->getMyExemption($studentID, 2)) {
$y += 5;
$paid .= "<tr><td colspan='5'>Mess charge payment exempted by competent authority temporarily (till " .$this->model->getMyExemption($studentID, 2). ") on written request of student.</td></tr>";
}
$paid .= "<tr><td colspan='4' align='right'><br><b>Total</b></td><td align='right'><hr><b>" .($payment['currency'] ? $payment['currency'] : $this->rs). ' ' .number_format($totalPaid, 2). "</b></td></tr>";
$pdf->SetFont('Times', '', 10);
$y = 60;
$pdf->SetXY(20, $y);
$pdf->WriteHTML("
<table width='100%' cellspecing='5' cellpadding='0' style='font-size: 11px;'>
<tr><td colspan='3' style='padding-top: 15px; padding-bottom: 5px'><h3>Student Detail</h3></td></tr>
<tr><td width='17%' nowrap style='padding-left: 10px'>Program Name</td><td width='3%'>:</td><td width='80%'>" .$program['programCode']. "</td></tr>
<tr><td nowrap style='padding-left: 10px'>Batch Year</td><td>:</td><td>" .$enrolment['batchYear']. ' - ' . $passYear. "</td></tr>
<tr><td nowrap style='padding-left: 10px'>Enrollment No.</td><td>:</td><td>" .$enrolment['enrolmentNo']. "<br></td></tr>");
if ($enrolment['hbookNo']) $pdf->WriteHTML("<tr><td nowrap style='padding-left: 10px'>Health Booklet No.</td><td>:</td><td>" .str_pad($enrolment['hbookNo'], 5, '0', STR_PAD_LEFT). "</td></tr>");
$pdf->WriteHTML("<tr><td colspan='3' style='padding-top: 15px; padding-bottom: 5px'><h3>Personal Detail</h3></td></tr>
<tr><td nowrap style='padding-left: 10px'>Student Name</td><td>:</td><td>" .$enrolment['nameEnglish']. ' (' .trim($enrolment['nameHindi']). ')' .($enrolment['gender'] == 'F' ? ' D/o ' : ' S/o '). $enrolment['fatherName']. "</td><tr>
<tr><td nowrap style='padding-left: 10px'>Address</td><td>:</td><td>" .$enrolment['homeAddress']. $districtName. '-' .$enrolment['homePIN']. ' (' .$stateName. ') ' .strtoupper($nationality). "</td></tr>
<tr><td colspan='3' style='padding-top: 15px; padding-bottom: 5px'><h3>Fees Detail</h3></td></tr>
<tr><td colspan='3' style='padding-left: 10px'><table width='100%' cellspecing='5' cellpadding='0' style='font-size: 11px;'>
<tr><td width='55%'><b>Fee Heads</b></td><td width='10%'><b>(Account)</b></td><td width='15%' nowrap><b>Payment Term</b></td><td width='20%' nowrap align='right'><b>Amount</b></td></tr>
$fees
</table></td></tr>
<tr><td colspan='3' style='padding-top: 15px; padding-bottom: 5px'><h3>Payment Detail</h3></td></tr>
<tr><td colspan='3' style='padding-left: 10px'><table width='100%' cellspecing='5' cellpadding='0' style='font-size: 11px;'>
<tr><td width='20%'><b>Account</b></td><td width='20%'><b>Payment No.</b></td><td width='20%'><b>Dated</b></td><td width='20%'><b>(Payment Mode)</b></td><td width='20%' nowrap align='right'><b>Amount</b></td></tr>
$paid
</table></td></tr>
<tr><td colspan='2' style='padding-top: 15px; padding-bottom: 5px'><h3>Account Detail</h3></td><td><i>(for refund purposes)</i></td></tr>
<tr><td colspan='3' style='padding-left: 10px'><table width='100%' cellspecing='5' cellpadding='0' style='font-size: 11px;'>
<tr><td width='20%'><b>Account No.</b></td><td width='30%'><b>Holder Name</b></td><td width='30%'><b>Bank Name</b></td><td width='20%'><b>IFSC Code</b></td></tr>
<tr><td>$accountNo</td><td>$holderName</td><td>$bankName</td><td>$ifscCode</td></tr>
</table></td></tr>
</table>");
$y = 267;
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('Times', 'B', 10);
$pdf->SetXY(10, $y);
$pdf->Cell(0, 10, '[ Seal & Signatures ]', 0, 1, 'C');
$y += 8;
$pdf->SetDrawColor(0, 0, 0);
$pdf->Line(0, $y, 500, $y);
$pdf->SetFont('Helvetica', 'B', 9);
try {
$pdf->Image(($psign ? 'https://erp.iiita.ac.in/uploads/signatures/' .$psign : 'https://erp.iiita.ac.in/images/fake.png'), 22, 276, 15, 8);
} catch (Exception $e) {
$pdf->cell(22, $y, $e->getMessage(), 0, 1, 'L');
}
$y += 5;
$pdf->SetXY(14, $y);
$pdf->Cell(0, 10, '(Student) (Parent/Guardian) (A/c Office)', 0, 1, 'C');
$y += 8;
$pdf->Line(0, $y, 500, $y);
$pdf->SetFont('Helvetica', 'I', 6.5);
$pdf->SetXY(150, $y);
$pdf->Cell(0, 5, 'Processed by: ' .$_SESSION['loginID']. ' (dated: ' .substr($enrolment['dateEnrolment'], 0, 10). ')', 0, 1, 'R');
$outFile = 'receipt-' .strtolower($enrolmentNo). '.pdf';
$pdf->Output(__DIR__ ."/../uploads/receipts/$outFile", 'F');
$str = $this->showPDF('receipts', $outFile);
}
return $str;
}
public function anfPGPayment($action, $studentID) {
$app = $this->controller->app;
$menu = $this->controller->menu;
$account = $this->controller->params[0];
$amount = $this->controller->params[1];
$currency = $this->controller->params[2];
$applicantID = $this->model->getApplicantIDByStudentID($studentID);
$data = $this->model->getApplicant($applicantID); // get record
$programID = $data['programID'];
$program = $this->model->getProgram($programID);
$dLevel = $program['degreeLevel'];
$str = "<form name='payment' method='POST' action='https://secure.ebs.in/pg/ma/payment/request/' target='self'>";
$HASHING_METHOD = "sha512";
// HDFC Bank PG details
if ($account == 1) {
// fees account
$hashData = "020bc4ca9304d76f471b03213f73d035";
$pg1['account_id'] = "25146";
$account = 1;
$pg1['reference_no']= $data['rollNo']. "-Fees";
} else {
// COW account
$hashData = "7bd65b21e13f2446b64d2594029fd957";
$pg1['account_id'] = "28546";
$account = 2;
$pg1['reference_no']= $data['rollNo']. "-Mess";
}
$pg1['channel'] = "10";
$pg1['mode'] = "LIVE";
$pg1['description'] = $data['batchYear']. "-" .$program['programCode'];
$pg1['amount'] = $amount;
$pg1['currency'] = $currency;
$pg1['return_url'] = "https://erp.iiita.ac.in/outer/anf/PGResponse/online/$studentID/HDFC/$account";
$pg1['name'] = trim($data['nameEnglish']);
$pg1['phone'] = trim($data['phoneNo']);
$pg1['email'] = trim($data['email']);
$pg1['address'] = trim($data['homeAddress']);
$pg1['city'] = $this->model->getDistrictNameByDistrictID($data['homeDistrict']);
$pg1['state'] = $this->model->getStateNameByStateID($data['homeState']);
$pg1['postal_code'] = trim($data['homePIN']);
$pg1['country'] = trim($data['nationality']);
unset($_POST['securekey']);
unset($_POST['submitted']);
ksort($pg1);
foreach ($pg1 as $key => $value){
$str .= "<input type='hidden' name='$key' value='$value'>";
if (strlen($value) > 0) {
$hashData .= '|' .$value;
}
}
if (strlen($hashData) > 0) {
$secureHash = strtoupper(hash($HASHING_METHOD, $hashData));
}
$str .= "<input type='hidden' name='secure_hash' value='$secureHash'>";
// CANARA Bank PG details
$pg2['product'] = "IIIT";
$pg2['TType'] = "NBFundTransfer";
$pg2['AccountNo'] = "0627101019766";
$pg2['ru'] = "https://erp.iiita.ac.in/outer/anf/PGResponse/online/$studentID/ATOM/1";
$pg2['bookingid'] = "100001";
$pg2['clientcode'] = trim($data['rollNo']); //urlencode(base64_encode(rollno))
$pg2['udf1'] = trim($data['nameEnglish']);
$pg2['udf2'] = trim($data['email']);
$pg2['udf3'] = trim($data['phoneNo']);
$pg2['udf4'] = trim($data['rollNo']). '-Fees';
$pg2['udf5'] = $data['batchYear']. "-" .$program['programCode'];
$pg2['udf6'] = $studentID;
$pg2['udf9'] = 1; // semester
$pg2['amount'] = $amount;
ksort($pg2);
foreach ($pg2 as $key => $value) {
$queryString .= $key. '=' .$value. '&';
}
$str .= "<b style='text-align: center'> Payable amount: $currency " .number_format($amount, 2). " [ Pay by ";
if ($account == 2 || $dLevel == 'UG') {
$str .= "<a href='' onclick=\"document.payment.submit(); return false;\" target='_top' title='Confirm Fees Payment'><img src='/images/hdfc.png' width='60' height='20'></a>";
} else {
$str .= "<a href='https://erp.iiita.ac.in/atom.php?{$queryString}action=$action' title='Confirm Fees Payment' target='_new'><img src='/images/atom.png' width='60' height='20'></a>";
}
$str .= " ] $status</b>
</form>";
return $str;
}
public function anfPGResponse($action, $studentID) {
$app = $this->controller->app; // required for toolbar and urls
$menu = $this->controller->menu; // required for toolbar and urls
$pg = $this->controller->params[0];
$accountType = $this->controller->params[1];
$studentID = $this->controller->managePayment($action, $studentID);
$str = $this->pageHeader($menu);
$str .= "<br>" .$this->controller->accountTypes[$accountType]. " Payment of Roll No. " .$this->model->getRollNoByStudentID($studentID). " thru $pg Payment Gateway
<br><span class='findbar'><span class='alert'>Status: " .$this->controller->errorText. "</span></span><br><br>
<b>Parameters received:</b>
<table class='report'>";
foreach ($_REQUEST as $key => $value) {
$str .= "<tr><td>$key</td><td>: $value</td></tr>";
}
$str .= "</table>
<a href='https://paynetzuat.atomtech.in/paynetz/vfts?merchantid=18589&merchanttxnid=" .$_REQUEST['mer_txn']. "&amt=" .$_REQUEST['amt']. "&tdate=" .date("Y-m-d"). "' target='_blank' title='Check Tansaction'>Check Transaction Status</a>";
//transaction tracking url
return $str;
}
public function anfFeecharts($action, $programID) {
$app = $this->controller->app; // application envoked
$menu = $this->controller->menu; // menu envoked
$programs = $this->model->selectProgram(); // get record
$program = $this->model->getProgram($programID); // get record
$dl = $program['degreeLevel'];
$toolbar = $this->erpPrintbar();
$cats = ($dl == 'UG' ? array_merge($this->controller->categorys, $this->controller->dasaCategorys) : $this->controller->categorys);
$str = $this->pageHeader($findbar, $toolbar);
$str .= "<table class='report' width='100%'>";
if ($programID) {
$feecharts = $this->model->selectFeechart($programID);
$str .= "<tr><th width='25%'>Fee Head/Category</th><th>Account</th><th>Term</th><th nowrap>" .implode('</th><th nowrap>', array_keys($cats))."</th></tr>";
foreach ($feecharts as $feechart) {
if ($feechart['feeheadID'] != $feeheadID) {
if ($feeheadID) $str .= "</tr>";
$str .= "<tr><th>" .$feechart['feeheadName']. "</th><td nowrap>" .$this->controller->accountTypes[$feechart['accountType']]. "</td><td nowrap>" .$this->controller->paymentTerms[$feechart['paymentTerm']]. "</td>";
}
$categorys = explode(',', $feechart['category']);
foreach (array_keys($cats) as $code) {
if (in_array($code, $categorys)) {
$currency= ($feechart['currency'] == 'INR' ? $this->rs : $this->do);
$str .= "<td style='font-size: 10px; text-align: right' nowrap>$currency " .number_format($feechart['feeAmount'], 2). "</td>";
$curency[$code] = $currency;
$total[$code] += $feechart['feeAmount'];
}
}
$feeheadID = $feechart['feeheadID'];
}
$str .= "<tr><th colspan='3'>Total (Fees + Mess Charge)</th><th nowrap>$currency" .implode("</th><th nowrap>$currency", array_map("number_format", $total, array_fill(0, count($total), 2))). "</th></tr>";
} else {
$fees = $this->model->listFeecharts();
foreach ($fees as $fee) {
$programIDs = explode(',', $fee['programID']);
$categorys = explode(',', $fee['category']);
foreach ($programIDs as $programID) {
foreach ($categorys as $category) {
$curency[$programID][$category] = ($fee['currency'] == 'INR' ? $this->rs : $this->do);
$amount[$programID][$category] += $fee['feeAmount'];
}
}
}
$str .= "<tr><th width='25%'>Program/Category</th><th nowrap>" .implode('</th><th nowrap>', array_keys($cats)). "</th></tr>";
foreach ($programs as $program) {
$programID = $program['programID'];
$str .= "<tr><th><a href='' onclick=\"inner('$app/$menu/print/" .$program['programID']. "'); return false;\">" .$program['programCode']. "</a></th>";
foreach ($cats as $code => $desc) {
$str .= "<td style='font-size: 10px; text-align: center' nowrap>" .$curency[$programID][$code] . ' ' .number_format($amount[$programID][$code], 2). "</td>";
}
$str .= "</tr>";
}
}
$str .= "</table>";
return $str;
}
public function anfPayments($action, $programID) {
$app = $this->controller->app; // application envoked
$menu = $this->controller->menu; // menu envoked
$programs = $this->model->selectProgram(); // get record
$findbar = "Program <select name='programID' style='width: 200px' onchange=\"inner('$app/$menu/print/'+this.value); return false;\">
<option value='0'>Select</option>";
foreach ($programs as $program) {
$findbar .= "<option value='" .$program['programID']. "'" .($program['programID'] == $programID ? self::SL : ''). ">" .$program['programCode']. "</option>";
}
$findbar .= "</select> ";
if ($programID) {
foreach ($this->controller->accountTypes as $key => $desc) {
$findbar .= "[ $desc: " .str_replace('INR', $this->rs, $this->model->getPaidAmount($programID, $key)). " ]";
}
}
$rows = $this->model->paymentSummary($programID);
$str = $this->pageHeader($findbar, $toolbar);
$str .= $this->printReport($rows);
return $str;
}
}
?>