Your IP : 216.73.216.40


Current Path : /var/www/html/mmishra/erp/views/
Upload File :
Current File : /var/www/html/mmishra/erp/views/erpa_view.php

<?php
//if (!class_exists($erpView)) {
	require_once __DIR__."/erp_view.php";
//}

class erpaView extends erpView {
    var $controller;
    var $model;
    
    public function __construct($controller, $model) {
        
        $this->controller 	= $controller; 	// instantiate controller
        $this->model 		= $model;		// instantiate model
        print("<div id='data'>");
    }

    public function __destruct() {
		// throw last executed sql statement
		print("<hr>" .$this->model->sqlStmt);

    	if (!in_array($this->controller->menu, ['mail', 'upload']) && !in_array($this->controller->action, ['print', 'show'])) {
	        print(":|:" .$this->erpMenus(). ":|:" .$this->erpXupdate(). ":|:" .$this->erpError(). ":|:" .$this->erpClock(). ":|:" .$this->erpLogin());
    	}
    	print("</div>");
	}
	
    public function erpaAbout($action, $tuple) {
		$app			= $this->controller->app;
		$menu			= $this->controller->menu;

		$toolbar = "<a href='' onclick=\"printMe('contentbar'); return false;\" title='Print Page'><span class='button'><i class='fa fa-print'></i></span></a>";
		$str .= $this->pageHeader($findbar, $toolbar);
		include "includes/erp_about.inc";
		$str .= $erpDesign; // defined in above include file
		
		return $str;
    }
    
    public function erpaConfiguration($action, $configID) {
		$app				= $this->controller->app;
		$menu				= $this->controller->menu;
		if (!$configID) $configID = 1;
		$configID 			= $this->controller->manageConfiguration($action, $configID);// initiate controller action 
		// controller locks/unlocks field through manage call
		$ro 				= $this->controller->editLock;								// ensure default edit lock

        $configuration		= $this->model->getConfiguration($configID);					// get record
		$toolbar 			= $this->erpToolbar('', 0);
		
		$str = $this->pageHeader($findbar, $toolbar);
		$str .= "<table width='100%'>
		<tr><th>Configuration #{$instituteID} Detail</th></tr>
        <tr valign='top'><td>
        <table width='100%' class='interface'>
        <tr><td nowrap>Owner Name</td><td width='80%'><input type='text' name='ownerName' size='100%' value='" .$configuration['ownerName']. "' placeholder='IIIT Allahabads' $ro></td></tr>
		<tr valign='top'><td nowrap>Owner Address</td><td><textarea name='ownerAddress' rows='3' cols='100%' placeholder='Devghat, Jhalwa, Prayagraj' $ro>" .$configuration['ownerAddress']. "</textarea></td></tr>
       	<tr><td nowrap>Owner Phone</td><td><input type='text' name='ownerPhone' size='100%' value='" .$configuration['ownerPhone']. "' placeholder='phone number' $ro></td></tr>
		<tr><td nowrap>Owner Email</td><td><input type='text' name='ownerEmail' size='100%' value='" .$configuration['ownerEmail']. "' placeholder='contact@iiita.ac.in' $ro></td></tr>
		<tr><td nowrap>Owner WWW</td><td><input type='text' name='ownerWWW' size='100%' value='" .$configuration['ownerWWW']. "' placeholder='www.iiita.ac.in' $ro></td></tr>
		<tr><td nowrap>Support Team</td><td><input type='text' name='supportTeam' size='100%' value='" .$configuration['supportTeam']. "' placeholder='team member names' $ro></td></tr>
       	<tr><td nowrap>Support Phone</td><td><input type='text' name='supportPhone' size='100%' value='" .$configuration['supportPhone']. "' placeholder='contact numbers' $ro></td></tr>
       	<tr><td nowrap>Support Email</td><td><input type='text' name='supportEmail' size='100%' value='" .$configuration['supportEmail']. "' placeholder='erp.support@iiita.ac.in' $ro></td></tr>
		<tr><td nowrap>Copyright Detail</td><td><input type='text' name='copyrightInfo' size='100%' value='" .$configuration['copyrightInfo']. "' placeholder='copyright information' $ro></td></tr>
		<tr><td nowrap>ERP Base URL</td><td><input type='text' name='erpBaseURL' size='100%' value='" .$configuration['erpBaseURL']. "' placeholder='erp.iiita.ac.in' $ro></td></tr>
		<tr><td nowrap>Auto Mailing</td><td><select name='autoMailing' style='width: 150px;'>";
		foreach ($this->controller->yesnoChoices as $key => $value) {
			$str .= "<option value='$key'" .($key == $configuration['autoMailing'] ? self::SL : $this->dis). ">$value</option>";
		}
		$str .= "</select></td></tr>
		<tr valign='top'><td nowrap>Remark</td><td><textarea name='remark' rows='2' cols='100%' placeholder='any text' $ro>" .$configuration['remark']. "</textarea></td></tr>
        </table></td></tr>
        </table>" .$this->pageFooter('', $toolbar);
				
        return $str;
    }
	
    public function erpaInstitute($action, $instituteID) {
		$app				= $this->controller->app;
		$menu				= $this->controller->menu;
		$instituteID		= $_SESSION["instituteID"];
		
		$instituteID 		= $this->controller->manageInstitute($action, $instituteID);// initiate controller action 
		// controller locks/unlocks field through manage call
		$ro 				= $this->controller->editLock;								// ensure default edit lock

        $institute 			= $this->model->getInstitute();					// get record
		$toolbar 			= $this->erpToolbar('', 0);
		
		$str = $this->pageHeader($findbar, $toolbar);
		$str .= "<table width='100%'>
		<tr><th>Institute #{$instituteID} Detail</th></tr>
        <tr valign='top'><td>
        <table width='100%' class='interface'>
        <tr><td nowrap>Institute Code</td><td width='80%'><input type='text' name='instituteCode' size='100%' value='" .$institute['instituteCode']. "' placeholder='Institute abbreviation code' $ro></td></tr>
       	<tr><td nowrap>Institute Name</td><td><input type='text' name='instituteName' size='100%' value='" .$institute['instituteName']. "' placeholder='Name of the institute' $ro></td></tr>
		<tr><td nowrap>Name in Hindi</td><td><input type='text' name='nameHindi' size='100%' value='" .$institute['nameHindi']. "' placeholder='Hindi name image file name' $ro></td></tr>
       	<tr><td nowrap>Address</td><td><input type='text' name='address' size='100%' value='" .$institute['address']. "' placeholder='Postal address of the institute' $ro></td></tr>
		<tr><td nowrap>Phone No</td><td><input type='text' name='phoneNo' size='100%' value='" .$institute['phoneNo']. "' placeholder='Reception contact number' $ro></td></tr>
       	<tr><td nowrap>Email</td><td><input type='text' name='email' size='100%' value='" .$institute['email']. "' placeholder='Reception email address' $ro></td></tr>
       	<tr><td nowrap>Website</td><td><input type='text' name='website' size='100%' value='" .$institute['website']. "' placeholder='Address of website' $ro></td></tr>
		<tr><td nowrap>Departments</td><td><input type='text' name='departments' size='100%' value='" .$institute['departments']. "' placeholder='No. of departments' $ro></td></tr>
		<tr><td nowrap>Programs</td><td><input type='text' name='programs' size='100%' value='" .$institute['programs']. "' placeholder='No. of programs offered' $ro></td></tr>
		<tr><td nowrap>Institute Head</td><td><input type='text' name='instituteHead' size='100%' value='" .$institute['instituteHead']. "' placeholder='Name of head' $ro></td></tr>
		<tr><td nowrap>Logo Image</td><td><input type='text' name='logoImage' size='100%' value='" .$institute['logoImage']. "' placeholder='Logo image file name' $ro></td></tr>
		<tr><td nowrap>Brand Tag Line</td><td><input type='text' name='brandTagline' size='100%' value='" .$institute['brandTagline']. "' placeholder='Brand tag line' $ro></td></tr>
		<tr><td nowrap>ID Card Signatory</td><td><input type='text' name='idSignatory' size='100%' value='" .$institute['idSignatory']. "' placeholder='Official position name' $ro></td></tr>
		<tr><td nowrap>ID Card Addressee</td><td><textarea name='idAddressee' rows='5' cols='100%' placeholder='IF FOUND KINDLY RETURN TO' $ro>" .$institute['idAddressee']. "</textarea></td></tr>
		<tr><td nowrap>Sign Image</td><td><input type='text' name='signImage' size='100%' value='" .$institute['signImage']. "' placeholder='Signature image file name' $ro></td></tr>
        </table></td></tr>
        </table>" .$this->pageFooter('', $toolbar);
				
        return $str;
    }
	
    public function erpaBoard($action, $boardID) {
		$app				= $this->controller->app;
		$menu				= $this->controller->menu;
		$boardLevel			= $this->controller->params[0];
		
		$boardID	 		= $this->controller->manageBoard($action, $boardID);	// initiate controller action 
		// controller locks/unlocks field through manage call
		$ro 				= $this->controller->editLock;							// ensure default edit lock

        $boards				= $this->model->listBoards($boardLevel);
        
        $board	 			= $this->model->getBoard($boardID);					// get record
		$toolbar 			= $this->erpToolbar('', 3);
		
		$str 				= $this->pageHeader($findbar, $toolbar);
        
		$str .= "<table width='100%'>
		<tr><th width='70%'>Board #{$boardID} Detail</th><th width='30%'>Board List</th></tr>
        <tr valign='top'><td>
        <table class='interface'>
        <tr><td width='20%' nowrap>Board Code</td><td><input type='text' name='boardCode' size='50' value='" .$board['boardCode']. "' placeholder='Appears as top level ERP section' $ro></td></tr>
        <tr><td nowrap>Board Name</td><td><input type='text' name='boardName' size='50' value='" .$board['boardName']. "' $ro></td></tr>
        <tr><td nowrap>Board Level</td><td>";
		foreach ($this->controller->boardUniversitys as $key => $value) {
			$str .= "<input type='radio' name='boardLevel' value='$key'" .($key == $boardLevel ? ' checked' : $this->dis). "> $value";
		}
		$str .= "<tr valign='top'><td nowrap>Address</td><td><textarea name='address' rows='3' cols='50' $ro>" .$board['address']. "</textarea></td></tr>
        </table>
        </td><td><ol>";
        foreach($this->controller->boardUniversitys as $key => $value) {
			$str .= "<li>";
			if ($boardLevel == $key) {
				$str .= "<i class='fas fa-caret-left'></i> <a href='' onclick=\"inner('$app/$menu/open/0/0'); return false;\"><b>$value</b></a>
				<ol>";
				foreach($boards as $board) {
					$str .= "<li>" .($board['boardID'] == $boardID ? "<b>" .$board['boardCode']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/" .$board['boardID']. "/$boardLevel'); return false;\">" .$board['boardCode']. "</a>"). " (" .$board['status']. ")</li>";
				}
				$str .= "</ol>";
			} else {
				$str .= "<i class='fas fa-caret-right'></i> <a href='' onclick=\"inner('$app/$menu/open/0/$key'); return false;\">$value</a>";
			}
			$str .= "</li>";
        }
        $str .= "</ol></td></tr></table>" .$this->pageFooter('', $toolbar);
		
		//foreach ($this->controller->institutes as $key => $value) {
		//	$i++;
		//	$code = $this->abbreviate($value);
		//	if ($code == $pcode) $code = $code .$i;
		//	$str .= "$i insert ignore into erp_boards(boardCode,boardName,boardLevel) values('$code','" .str_replace("'",'',$value). "',2);<br>";
		//	$pcode = $code;
		//}
		
				
        return $str;
    }


    public function erpaConfig($action, $moduleID) {
		$app 			= $this->controller->app;								// application envoked        
		$menu 			= $this->controller->menu;								// menu envoked        
		$appID			= $this->controller->params[0];
		$menuID			= $this->controller->params[1];
		
		$moduleID 		= $this->controller->manageModule($action, $moduleID);  // initiate controller action  
		$ro 			= $this->controller->editLock; 							// ensure default edit lock    	
		$toolbar 		= $this->erpToolbar('', 3);
		
		$str = $this->pageHeader($findbar, $toolbar);
		$str .= "<ol class='listbar'>";
        $modules = $this->model->listModules();
        foreach($modules as $module) {
            $str .= "<li>";
            if ($module['moduleID'] == $moduleID && !$appID && !$menuID) {
                $str .= "- <b><i class='" .$module['moduleIcon']. "'></i> " .$module['moduleName']. "</b> (ID: $moduleID, Status: " .$module['status']. ")
				<dir>
				<table class='interface'>
				<tr><td width='20%' nowrap>Module Name</td><td width='80%'><input type='text' id='moduleName' name='moduleName' size='50' value='" .$module['moduleName']. "' placeholder='Appears as top level ERP section' $ro></td></tr>
				<tr><td nowrap>Description</td><td><input type='text' name='description' size='50' value='" .$module['description']. "' $ro></td></tr>
				<tr><td nowrap>Module Icon</td><td><input type='text' name='moduleIcon' size='50' value='" .$module['moduleIcon']. "' placeholder='Appears before module name' $ro></td></tr>
				<tr><td nowrap>Icon Color</td><td><input type='text' name='iconColor' size='50' value='" .$module['iconColor']. "' $ro></td></tr>
				<tr><td nowrap>Owner Departments</td><td><input type='text' name='moduleDept' size='50' value='" .$module['moduleDept']. "' $ro></td></tr>
				<tr><td nowrap>Admin Name</td><td><input type='text' name='moduleAdmin' size='50' value='" .$module['moduleAdmin']. "' $ro></td></tr>
				<tr><td nowrap>Admin Email</td><td><input type='text' name='adminEmail' size='50' value='" .$module['adminEmail']. "' placeholder='Receives critical mails on data operations' $ro></td></tr>
				</table>
				</dir>";
				// application list
				$str .= "<div align='left'>
				<b>Applications:</b>
				<ol class='listbar'>";
				
				$apps = $this->model->listApps($moduleID);
				foreach($apps as $app) {
					$str .= "<li>";
					if ($app['appID'] == $appID) {
						$str .= "<b><i class='" .$app['appIcon']. "'></i> " .$app['appName']. "</b> (ID: $appID, Status: " .$app['status']. ")
						<dir>
						<table class='interface'>
						<tr><td nowrap>App Name</td><td><input type='text' name='appName' size='50' value='" .$app['appName']. "' placeholder='Appears as top level menu item' $ro></td></tr>
						<tr><td nowrap>Description</td><td><input type='text' name='description' size='50' value='" .$app['description']. "' $ro></td></tr>
						<tr><td nowrap>App Code</td><td><input type='text' name='appCode' size='50' value='" .$app['appCode']. "' placeholder='5 characters without space, used for controller access' $ro></td></tr>
						<tr><td nowrap>App URL</td><td><input type='text' name='appURL' size='50' value='" .$app['appURL']. "' placeholder='Defines controller name to call' $ro></td></tr>
						<tr><td nowrap>App Icon</td><td><input type='text' name='appIcon' size='50' value='" .$app['appIcon']. "' placeholder='Awesome font e.g. far fa-building, appears before app name' $ro></td></tr>
						<tr><td nowrap>Icon Color</td><td><input type='text' name='iconColor' size='50' value='" .$app['iconColor']. "' $ro></td></tr>
						<tr><td nowrap>Owner Departments</td><td><input type='text' name='appDept' size='50' value='" .$app['appDept']. "' $ro></td></tr>
						<tr><td nowrap>Admin Name</td><td><input type='text' name='appAdmin' size='50' value='" .$app['appAdmin']. "' $ro></td></tr>
						<tr><td nowrap>Admin Email</td><td><input type='text' name='adminEmail' size='50' value='" .$app['adminEmail']. "' placeholder='Receives critical mails on data operations' $ro></td></tr>
						<tr><td nowrap>Universally Accessible?</td><td><input type='radio' name='universal' value='0'" .($app['universal'] == 0 ? self::CK : $this->dis). " $ro> No <input type='radio' name='universal' value='1'" .($app['universal'] == 1 ? self::CK : $this->dis). " $ro> Yes (Appears across the modules)</td></tr>
						</table>
						</dir>";
						// menu list
						$str .= "<div align='left'>
						<b>Menus:</b>
						<ol class='listbar'>";
						
						$menus	= $this->model->listMenus($appID);
						foreach($menus as $menu1) {
							$str .= "<li>";
							if ($menu1['menuID'] == $menuID) {
								$str .= "<b><i class='" .$app['menuIcon']. "'></i> " .$app['menuName']. "</b> (ID: $menuID, Status: " .$menu1['status']. ")
								<dir>
								<table class='interface'>
								<tr><td nowrap>Interface Type</td><td>";

								foreach ($this->controller->interfaces as $code => $desc) {
									$str .= "<input type='radio' name='interface' value='$code'" .($menu1['interface'] == $code ? self::CK : $this->dis). " $ro> " .$desc. " &nbsp;";
								}
								$str .= "</td></tr>
								<tr><td nowrap>Menu Name</td><td><input type='text' name='menuName' size='50' value='" .$menu1['menuName']. "' placeholder='Appears as drop down menu item' $ro></td></tr>
								<tr><td nowrap>Description</td><td><input type='text' name='description' size='50' value='" .$menu1['description']. "' $ro></td></tr>
								<tr><td nowrap>Menu URL</td><td><input type='text' name='menuURL' size='50' value='" .$menu1['menuURL']. "' placeholder='Defines view method to call' $ro></td></tr>
								<tr><td nowrap>Menu Icon</td><td><input type='text' name='menuIcon' size='50' value='" .$menu1['menuIcon']. "' placeholder='Appears before menu name' $ro></td></tr>
								<tr><td nowrap>Access Control?</td><td><input type='radio' name='protection' value='0'" .($menu1['protection'] == 0 ? self::CK : $this->dis). " $ro> No
								<input type='radio' name='protection' value='1'" .($menu1['protection'] == 1 ? self::CK : $this->dis). " $ro> Yes (Login required) 
								<input type='radio' name='protection' value='2'" .($menu1['protection'] == 2 ? self::CK : $this->dis). " $ro> Hidden (Not menu)</td></tr>
								<tr valign='top'><td nowrap>Menu Help</td><td><textarea name='menuHelp' rows='5' cols='50' placeholder='Provide user help tips for this interface.' $ro>" .$menu1['menuHelp']. "</textarea></td></tr>
								</table>
								";
							} else {
								$str .= "<i class='" .$app['menuIcon']. "'></i> <a href='' onclick=\"inner('$app/$menu/open/$moduleID/$appID/" .$menu['menuID']."'); return false;\">" .$menu['menuName']. "</a> (" .$menu['status']. ")";
							}
							$str .= "</li>";
						}
						$str .= "</ol>
						</div>";
					} else {
						$str .= "<i class='" .$app['appIcon']. "'></i> <a href='' onclick=\"inner('$app/$menu/open/$moduleID/" .$app['appID']."'); return false;\">" .$app['appName']. "</a> (" .$app['status']. ")";
					}
					$str .= "</li>";
				}
				$str .= "</ol>
				</div>";
            } else {
                $str .= "+ <i class='" .$module['moduleIcon']. "'></i> <a href='' onclick=\"inner('$app/$menu/open/" .$module['moduleID']."'); return false;\">" .$module['moduleName']. "</a> (" .$module['status']. ")";
            }
            $str .= "</li>";
        }
        if (!$moduleID) {
			$str .= "<li>- <b>New module</b>
			<dir>
			<table class='interface'>
			<tr><td width='20%' nowrap>Module Name</td><td width='80%'><input type='text' id='moduleName' name='moduleName' size='50' value='' placeholder='Appears as top level ERP section' $ro></td></tr>
			<tr><td nowrap>Description</td><td><input type='text' name='description' size='50' value='' $ro></td></tr>
			<tr><td nowrap>Module Icon</td><td><input type='text' name='moduleIcon' size='50' value='' placeholder='Appears before module name' $ro></td></tr>
			<tr><td nowrap>Icon Color</td><td><input type='text' name='iconColor' size='50' value='' $ro></td></tr>
			<tr><td nowrap>Owner Departments</td><td><input type='text' name='moduleDept' size='50' value='' $ro></td></tr>
			<tr><td nowrap>Admin Name</td><td><input type='text' name='moduleAdmin' size='50' value='' $ro></td></tr>
			<tr><td nowrap>Admin Email</td><td><input type='text' name='adminEmail' size='50' value='' placeholder='Receives critical mails on data operations' $ro></td></tr>
			</table>
			</dir>
			</li>";
        }
        $str .= "</ol>";
		
        return $str;
    }

    public function erpaModule($action, $moduleID) {
		$app 			= $this->controller->app;								// application envoked        
		$menu 			= $this->controller->menu;								// menu envoked        
		
		$moduleID 		= $this->controller->manageModule($action, $moduleID);  // initiate controller action  
		$ro 			= $this->controller->editLock; 							// ensure default edit lock    	
        
        $modules		= $this->model->listModules();
        
        $module 		= $this->model->getModule($moduleID);					// get record
		$toolbar 		= $this->erpToolbar('', 3);
		
		$str = $this->pageHeader($findbar, $toolbar);
        $str .= "<table width='100%'>
		<tr><th width='70%'>Module #{$moduleID} Detail</th><th width='30%'>Module List</th></tr>
        <tr valign='top'><td>
        <table class='interface'>
        <tr><td width='20%' nowrap>Module Name</td><td><input type='text' id='moduleName' name='moduleName' size='50' value='" .$module['moduleName']. "' placeholder='Appears as top level ERP section' $ro></td></tr>
        <tr><td nowrap>Description</td><td><input type='text' name='description' size='50' value='" .$module['description']. "' $ro></td></tr>
        <tr><td nowrap>Module Icon</td><td><input type='text' name='moduleIcon' size='50' value='" .$module['moduleIcon']. "' placeholder='Appears before module name' $ro></td></tr>
        <tr><td nowrap>Icon Color</td><td><input type='text' name='iconColor' size='50' value='" .$module['iconColor']. "' $ro></td></tr>
        <tr><td nowrap>Owner Departments</td><td><input type='text' name='moduleDept' size='50' value='" .$module['moduleDept']. "' $ro></td></tr>
        <tr><td nowrap>Admin Name</td><td><input type='text' name='moduleAdmin' size='50' value='" .$module['moduleAdmin']. "' $ro></td></tr>
        <tr><td nowrap>Admin Email</td><td><input type='text' name='adminEmail' size='50' value='" .$module['adminEmail']. "' placeholder='Receives critical mails on data operations' $ro></td></tr>
        </table>
        </td><td><ol class='listbar'>";
        foreach($modules as $module) {
            $str .= "<li><i class='" .$module['moduleIcon']. "'></i> " .($module['moduleID'] == $moduleID ? "<b>" .$module['moduleName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/" .$module['moduleID']."'); return false;\">" .$module['moduleName']. "</a>"). " (" .$module['status']. ")</li>";
        }
        $str .= "</ol></td></tr></table>" .$this->pageFooter('', $toolbar);
		
        return $str;
    }

	public function erpaApp($action, $appID) {
		$app 			= $this->controller->app;							// application envoked        
		$menu 			= $this->controller->menu;							// menu envoked        
		$moduleID 		= $this->controller->params[0];        

		$appID 			= $this->controller->manageApp($action, $appID);	// initiate controller action
		$ro 			= $this->controller->editLock;						// ensure default edit lock
                
		$modules		= $this->model->selectModule();							// get module lis
		$apps			= $this->model->listApps($moduleID);							// get app lis
		
		$app1 			= $this->model->getApp($appID);							// get app record
		//$toolbar 		= ($appID ? $this->erpToolbar('', 3) : '');
		$toolbar 		= $this->erpToolbar('', 3);
		
		$str = $this->pageHeader($findbar, $toolbar);
		$str .= "<table width='100%'>
		<tr><th width='70%'>App #{$appID} Details</th><th width='30%'>App List</th></tr>
		<tr valign='top'><td>
		<table class='interface'>
		<tr><td width='20%' nowrap>App Name</td><td><input type='text' name='appName' size='50' value='" .$app1['appName']. "' placeholder='Appears as top level menu item' $ro></td></tr>
		<tr><td nowrap>Description</td><td><input type='text' name='description' size='50' value='" .$app1['description']. "' $ro></td></tr>
		<tr><td nowrap>App ID</td><td><input type='text' name='appCode' size='50' value='" .$app1['appCode']. "' placeholder='5 characters without space, used for controller access' $ro></td></tr>
		<tr><td nowrap>App URL</td><td><input type='text' name='appURL' size='50' value='" .$app1['appURL']. "' placeholder='Defines controller name to call' $ro></td></tr>
		<tr><td nowrap>App Icon</td><td><input type='text' name='appIcon' size='50' value='" .$app1['appIcon']. "' placeholder='Awesome font e.g. far fa-building, appears before app name' $ro></td></tr>
		<tr><td nowrap>Icon Color</td><td><input type='text' name='iconColor' size='50' value='" .$app1['iconColor']. "' $ro></td></tr>
		<tr><td nowrap>Owner Departments</td><td><input type='text' name='appDept' size='50' value='" .$app1['appDept']. "' $ro></td></tr>
		<tr><td nowrap>Admin Name</td><td><input type='text' name='appAdmin' size='50' value='" .$app1['appAdmin']. "' $ro></td></tr>
		<tr><td nowrap>Admin Email</td><td><input type='text' name='adminEmail' size='50' value='" .$app1['adminEmail']. "' placeholder='Receives critical mails on data operations' $ro></td></tr>
		<tr><td nowrap>Universally Accessible?</td><td><input type='radio' name='universal' value='0'" .($app1['universal'] == 0 ? self::CK : $this->dis). " $ro> No
		<input type='radio' name='universal' value='1'" .($app1['universal'] == 1 ? self::CK : $this->dis). " $ro> Yes (Appears across the modules)</td></tr>
        </table>
		</td><td>
		<ol class='listbar'>";
        foreach ($modules as $module) {
			$str .= "<li><i class='" .$module['moduleIcon']. "'></i> ";
			if ($moduleID == $module['moduleID']) {
				$str .= "<i class='fas fa-caret-left'></i> <a href='' onclick=\"inner('$app/$menu/open/0/0'); return false;\"><b>" .$module['moduleName']. "</b></a>
				<ol>";
				foreach($apps as $app1) {
					$str .= "<li><i class='" .$app1['appIcon']. "'></i> " .($app1['appID'] == $appID ? "<b>" .$app1['appName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/" .$app1['appID']. "/$moduleID'); return false;\">" .$app1['appName']. "</a>"). " (" .$app1['status']. ")</li>";
				}
				$str .= "</ol>";
			} else {
				$str .= "<i class='fas fa-caret-right'></i> <a href='' onclick=\"inner('$app/$menu/open/0/" .$module['moduleID']. "'); return false;\">" .$module['moduleName']. "</a>";
			}
			$str .= "</li>";
		}
        $str .= "</ol></td></tr></table>" .$this->pageFooter('', $toolbar);

        return $str;
	}  

	public function erpaMenu($action, $menuID) {
		$app 				= $this->controller->app;							// application envoked        
		$menu 				= $this->controller->menu;							// menu envoked        
		$appID 				= $this->controller->params[0];						// application        
       			
		$menuID 			= $this->controller->manageMenu($action, $menuID);
		$ro 				= $this->controller->editLock;						// ensure default edit lock 
        			
        $apps	 			= $this->model->selectApp();				// list enabled apps only
        $acls 				= $this->model->getMenuACL($menuID);
        $menus 				= $this->model->listMenus($appID);
        $menus1 			= $this->model->selectMenu($appID);

        $menu1 				= $this->model->getMenu($menuID);
		$toolbar 			= $this->erpToolbar('', 3);
		
		$str = $this->pageHeader($findbar, $toolbar);

		$str .= "<table width='100%'>
		<tr><th width='70%'>Menu #{$menuID} Detail</th><th width='30%'>Menu List</th></tr>
		<tr valign='top'><td>
		<table class='interface'>
		<tr><td nowrap>Menu Item</td><td>";
		if (!$menu1['interface']) $menu1['interface'] = 'I';
		foreach ($this->controller->interfaces as $code => $desc) {
			$str .= "<input type='radio' name='interface' value='" .$code. "'" .($menu1['interface'] == $code ? self::CK : $this->dis). " $ro> " .$desc. " &nbsp;";
		}
		$str .= "</td></tr>
		<tr><td nowrap>Parent Menu</td><td><select name='parentID' style='width: 265px'>
		<option value='0'>Select, if any</option>";
		foreach ($menus1 as $men) {
			$str .= "<option value='" .$men['menuID']. "'" .($men['menuID'] == $menu1['parentID'] ? self::SL : $this->dis). ">" .$men['interface']. '-' .$men['menuName']. "</option>";
		}
		$str .= "</select></td></tr>
		<tr><td nowrap>Menu Name</td><td><input type='text' name='menuName' size='50' value='" .$menu1['menuName']. "' placeholder='Appears as drop down menu item' $ro></td></tr>
		<tr><td nowrap>Description</td><td><input type='text' name='description' size='50' value='" .$menu1['description']. "' $ro></td></tr>
		<tr><td nowrap>Menu URL</td><td><input type='text' name='menuURL' size='50' value='" .$menu1['menuURL']. "' placeholder='Defines view method to call' $ro></td></tr>
		<tr><td nowrap>Menu Icon</td><td><input type='text' name='menuIcon' size='50' value='" .$menu1['menuIcon']. "' placeholder='Appears before menu name' $ro></td></tr>
		<tr><td nowrap>Access Control</td><td><input type='radio' name='protection' value='0'" .($menu1['protection'] == 0 ? self::CK : $this->dis). " $ro> No
		<input type='radio' name='protection' value='1'" .($menu1['protection'] == 1 ? self::CK : $this->dis). " $ro> Yes (login required) 
		<input type='radio' name='protection' value='2'" .($menu1['protection'] == 2 ? self::CK : $this->dis). " $ro> Hidden (link)</td></tr>
		<tr valign='top'><td nowrap>Menu Help</td><td><textarea name='menuHelp' rows='5' cols='50' placeholder='Provide user help tips for this interface.' $ro>" .$menu1['menuHelp']. "</textarea></td></tr>
        </table><input type='hidden' name='appID' value='$appID'>
		<h5>Users Acess Control List [ Read, Insert, Update, Delete ]</h5>
		<ol>";
		// get user list granted access to this menu
       	foreach($acls as $acl) {
           	if ($acl['aclRead']) $str .= "<li>" .$acl['loginID']. " [ " .($acl['aclRead'] ? 'Read' : "<i class='fas fa-times'></i>"). ', ' .($acl['aclInsert'] ? 'Insert' : "<i class='fas fa-times'></i>"). ', ' .($acl['aclUpdate'] ? 'Update' : "<i class='fas fa-times'></i>"). ', ' .($acl['aclDelete'] ? 'Delete' : "<i class='fas fa-times'></i>"). " ]</li>";
       	}
        $str .= "</ol></td><td> 
		<ol class='listbar'>";
        foreach ($apps as $ap) {
			$str .= "<li><i class='" .$ap['appIcon']. "'></i> ";
			if ($appID == $ap['appID']) {
				$str .= "<i class='fas fa-caret-left'></i> <a href='' onclick=\"inner('$app/$menu/open/0/0'); return false;\"><b>" .$ap['appName']. "</b></a>
				<ol>";
				foreach($menus as $men) {
					$str .= "<li><i class='" .$men['menuIcon']. "'></i> " .($men['menuID'] == $menuID ? "<b>" .$men['menuName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/" .$men['menuID']. "/$appID'); return false;\">" .$men['menuName']. "</a>"). " (" .$men['status']. ") " .$men['interface']. "</li>";
				}
				$str .= "</ol>";
			} else {
				$str .= "<i class='fas fa-caret-right'></i> <a href='' onclick=\"inner('$app/$menu/open/0/" .$ap['appID']. "'); return false;\">" .$ap['appName']. "</a>";
			}
			$str .= "</li>";
		}
        $str .= "</ol></td></tr></table>" .$this->pageFooter('', $toolbar);

        return $str;
	}

	public function erpaGroup($action, $groupID) {
		$app 			= $this->controller->app;							// application envoked        
		$menu 			= $this->controller->menu;							// menu envoked        

       	$groupID 		= $this->controller->manageGroup($action, $groupID);
		$ro 			= $this->controller->editLock;						// ensure default edit lock        

        $menus 			= $this->model->selectMenu();
        $groups 		= $this->model->listGroups();

        $group	 		= $this->model->getuGroup($groupID);
		$toolbar 		= $this->erpToolbar('', 3);
		
		$str = $this->pageHeader($findbar, $toolbar);
		$str .= "<table width='100%'>
		<tr><th width='70%'>Group #{$groupID} Details</th><th width='30%'>Group List</th></tr>
		<tr valign='top'><td>
		<table class='interface'>
		<tr><td>Group Name</td><td>";
		if ($groupID) {				
			$str .= "<input type='text' name='groupName' size='50' value='" .$group['groupName']. "' $ro>";
		} else {
			$str .= "<select name='groupName' style='width: 268px'>
			<option value=''>Select from LDAP</option>";
			$ds 				= ldap_connect("ldap://172.31.1.41:389");
			ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

			$ldp 				= ldap_search($ds, "dc=iiita,dc=ac,dc=in", "ou=*");
			$recs				= ldap_get_entries($ds, $ldp);
			arsort($recs);
			foreach ($recs as $rec) {
				$dn 			= strtolower($rec['dn']);
				$dn 			= str_replace(',dc=iiita,dc=ac,dc=in', '', $dn);
				$desc 			= $rec['description'][0] . $rec['gecos'][0] . $rec['cn'][0];
				if (strpos($dn, 'employee') || strpos($dn, 'student')) {
					$ous1		= array_reverse(explode(',', str_replace('ou=', '', $dn)));
					$ous2 		= implode('-', $ous1);
					if ($ous2 && !$this->model->getGroupIDByGroupName($ous2)) {
						$str .= "<option value='$ous2'>$ous2</option>";
					}
				}
			}
			ldap_close($ds);
			$str .= "<option value='Others'>Others</option></select>";
		}
		$str .= "</td></tr>
		<tr><td>Description</td><td><input type='text' name='description' size='50' value='" .$group['description']. "' placeholder='Define role of the group' $ro></td></tr>
		<tr><td>Dashboard</td><td><select name='dashboard' style='width: 268px'>
		<option value='erpDashboard'>Dafault</option>";
		foreach ($menus as $menux) {
			$code 				= $menux['appCode']. ucwords($menux['menuURL']);
			if (substr($menux['menuURL'], 0, 4) != "http") $str .= "<option value='$code'" .($group['dashboard'] == $code ? self::SL : $this->dis). ">$code (" .$menux['interface']. ")</option>";
		}
		$str .= "</select></td></tr>
		</table></td><td>
		<ol class='listbar'>";
        foreach($groups as $group) {
			$str .= "<li><i class='fas fa-users'></i> " .($group['groupID'] == $groupID ? "<b>" .$group['groupName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/" .$group['groupID']. "'); return false;\" title='Edit record'>" .$group['groupName']. "</a>"). " (" .$group['status']. ") <a href='' onclick=\"popup('$app/users/show/" .$group['groupID']. "', 'Users List', 1000, 600); return false;\" title='List users'>" .$group['memberCount']. " users</a></li>";
        }
		$str .= "</ol></td></tr></table>" .$this->pageFooter('', $toolbar);
		
        return $str;
	}
	
	public function erpaGacl($action, $groupID) {
		$app 			= $this->controller->app;							// application envoked        
		$menu 			= $this->controller->menu;							// menu envoked        
		$appID	 		= $this->controller->params[0];

       	$groupID 		= $this->controller->manageGacl($action, $groupID);
		$ro 			= $this->controller->editLock;						// ensure default edit lock

		$groups 		= $this->model->selectGroup();			// list enabled users only
		$apps	 		= $this->model->selectApp();			// list enabled users only
		$gacls 			= $this->model->listGacls($groupID, $appID);

		$toolbar 		= ($groupID && $appID ? $this->erpToolbar('', 3) : '');

		$findbar = "<i class='fas fa-users'></i> Group <select name='groupID' style='width: 200px' onchange=\"inner('$app/$menu/open/'+this.value+'/$appID'); return false;\">
		<option value='0'>Select</option>";
		foreach ($groups as $group) {
			$findbar .= "<option value='" .$group['groupID']. "'" .($group['groupID'] == $groupID ? self::SL : ''). ">" .$group['groupName']. "</option>";
		}
		$findbar .= "</select>";
		
		$str = $this->pageHeader($findbar, $toolbar);
		if ($groupID) {
			$str .= "<table width='100%'>
			<tr><th width='70%'>Group ACL <span class='findbar'><input type='checkbox' onclick='toggle(this,\"acl\")'> Toggle All</span></th><th>App List</th></tr>
			<tr valign='top'><td>
			<table width='100%' class='report'>
			<tr><th>#</th><th>Menu Name</th><th>Interface</th><th>Read Privilege</th><th>Insert Privilege</th><th>Update Privilege</th><th>Delete Privilege</th></tr>";
						
			foreach($gacls as $gacl) {
				$i++;
				$aclID = ($gacl['aclID'] ? $gacl['aclID'] : 0);
				$str .= "<tr><td>$i <input type='hidden' name='aclID[]' value='$aclID'><input type='hidden' name='menuID$i' value='" .$gacl['menuID']. "'></td>
				<td><i class='" .$gacl['menuIcon']. "'></i> " .$gacl['menuName']. "</td><td>" .($gacl['interface'] == 'I' ? 'Input' : ($gacl['interface'] == 'C' ? 'Configuration' : 'Output')). "</td>
				<td align='center'><input id='acl' type='checkbox' name='aclRead$i' value='1'" .($gacl['aclRead'] ? self::CK : $this->dis). " $ro></td>";
				if ($gacl['interface'] != 'O') {
					$str .= "<td align='center'><input id='acl' type='checkbox' name='aclInsert$i' value='1'" .($gacl['aclInsert'] ? self::CK : $this->dis). " $ro></td>
					<td align='center'><input id='acl' type='checkbox' name='aclUpdate$i' value='1'" .($gacl['aclUpdate'] ? self::CK : $this->dis). " $ro></td>
					<td align='center'><input id='acl' type='checkbox' name='aclDelete$i' value='1'" .($gacl['aclDelete'] ? self::CK : $this->dis). " $ro></td>";
				}
				$str .= "</tr>";
			}
			$str .= "</table></td><td> 
			<ol class='listbar'>";
			foreach ($apps as $ap) {
				$str .= "<li><i class='" .$ap['appIcon']. "'></i> " .($appID == $ap['appID'] ? "<b>" .$ap['appName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/$userID/$groupID/" .$ap['appID']. "'); return false;\">" .$ap['appName']. "</a>"). " (" .$ap['status']. ")</li>";
			}
			$str .= "</ol></td></tr></table>" .($groupID && $appID ? $this->pageFooter('', $toolbar) : '');
		} else {
			$str .= "<h1 align='center'>Select group to proceed with.</h1>";
		}
        
        return $str;
	}

	public function erpaUser($action, $userID) {
		$app 			= $this->controller->app;			// application envoked        
		$menu 			= $this->controller->menu;	
		$groupID		= $this->controller->params[0];
		        
       	$userID 		= $this->controller->manageUser($action, $userID);
		$ro 			= $this->controller->editLock;						// ensure default edit lock

		$groups 		= $this->model->selectGroup();			// list enabled users only
		$users 			= $this->model->listUsers($groupID);
		
		$toolbar 		= ($groupID ? $this->erpToolbar('', 3) : '');
		
		$str = $this->pageHeader($findbar, $toolbar);
		
		$str .= "<table width='100%'>
		<tr><th>User #{$userID} Detail</th><th>Group List</th><tr>
		<tr valign='top'><td>
		<table class='interface'>
		<tr><th>#</th><th width='30%'>Login ID</th><th width='40%'>User Name</th><th>Auth Mode</th><th>Password</th></tr>";

		foreach($users as $user) {
			$i++;
			$str .= "<tr><td>$i</td>";
			if ($userID == $user['userID']) {
				$str .= "<td nowrap><i class='fas fa-user'></i><input type='text' name='loginID' size='20' value='" .$user['loginID']. "' placeholder='0 characters user id' $ro></td>
				<td><input type='text' name='userName' size='40' value='" .$user['userName']. "' placeholder='Name of the account holder' $ro></td>
				<td><select name='authMode' style='width: 100px'>";
				foreach ($this->controller->authModes as $code => $desc) {
					$str .= "<option value='$code'" .($user['authMode'] == $code ? self::SL : $this->dis). ">$desc</option>";
				}
				$str .= "</select></td>
				<td><input type='password' name='secretCode' size='20' value='" .$user['secretCode']. "' placeholder='10 characters password' $ro></td>";
			} else {
				$str .= "<td nowrap><i class='fas fa-user'></i> <a href='' onclick=\"inner('$app/$menu/edit/" .$user['userID']. "/$groupID'); return false;\" title='Edit record'>" .$user['loginID']. "</a> (" .$user['status']. ")</td>
				<td>" .$user['userName']. "</td><td>" .$user['authMode']. "</td><td>" .substr($user['secretCode'], 0, 10). "</td>";
			}
			$str .= "</tr>";
		}

		$str .= "<tr>";
		if ($groupID && !$userID) {
			$groupName 	= $this->model->getGroupNameByGroupID($groupID);
			$groupName 	= str_replace(' ', '', strtolower($groupName));
			if ($groupName == 'hod' || groupName == 'dean' || $groupName == 'associatedean') $groupName = 'faculty';
			$ous		= array_reverse(explode('-', $groupName));
			foreach ($ous as $ou) {
				$mou .= "ou=$ou,";
			}
			if (!strpos($mou, 'student')) $mou .= 'ou=employee,';
			$mou .= 'dc=iiita,dc=ac,dc=in';
			
			$str .= "<td>New</td><td nowrap><i class='fas fa-user'></i>
			<select name='loginID' style='width: 150px'>
			<option value=''>Select from LDAP $mou</option>";
			$ds 				= ldap_connect("ldap://172.31.1.41:389");
			ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
			$attributes = ['uid', 'givenname', 'sn', 'mail', 'accountstatus'];
			
			//$data 				= ldap_search($ds, $mou, "&(uid=*)(accountStatus=active)");
			$info 				= ldap_search($ds, $mou, "(uid=*)", $attributes);
			$users				= ldap_get_entries($ds, $info);
			arsort($users);

			for ($i=0; $i<$users["count"]; $i++) {
				$uid	= $users[$i]['uid'][0];
				$name	= strtoupper($users[$i]['givenname'][0]. ' ' .$users[$i]['sn'][0]);
				$status	= strtolower($users[$i]['accountstatus'][0]);
				$userID = $this->model->getUserIDByLoginID($uid);
				//if (!$userID && $status == 'active') $str .= "<option value='$uid'>$uid - $name ($status)</option>";
				if (!$userID) $str .= "<option value='$uid'>$uid - $name ($status)</option>";
			}

			$str .= "<option value='mysql user'>Database user</option></select></td>
			<td><input type='text' name='userName' size='40' value='' placeholder='Name of the account holder'></td>
			<td><select name='authMode' style='width: 100px'>";
			foreach ($this->controller->authModes as $code => $desc) {
				$str .= "<option value='$code'>$desc</option>";
			}
			$str .= "</select></td>
			<td><input type='password' name='secretCode' size='20' value='' placeholder='10 characters password'></td>";
			ldap_close($ds);
		}
		$str .= "</tr>
		</table></td><td width='25%'> 
		<ol class='listbar'>";
		foreach ($groups as $group) {
			$str .= "<li><i class='fas fa-users'></i> " .($groupID == $group['groupID'] ? "<b>" .$group['groupName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/0/" .$group['groupID']. "'); return false;\">" .$group['groupName']. "</a>"). "</li>";
		}
		$str .= "</ol></td></tr></table>" .($groupID ? $this->pageFooter('', $toolbar) : '');
		
        return $str;
	}

	public function erpaUacl($action, $userID) {
		$app	 		= $this->controller->app;							// application envoked        
		$menu 			= $this->controller->menu;							// menu envoked        
		$groupID 		= $this->controller->params[0];
		$appID	 		= $this->controller->params[1];
		
       	$userID 		= $this->controller->manageUacl($action, $userID);
		$ro 			= $this->controller->editLock;						// ensure default edit lock

		$apps 			= $this->model->selectApp();
		$groups 		= $this->model->selectGroup();			// list enabled users only
		$users 			= $this->model->selectUser($groupID);			// list enabled users only

		$acls 			= $this->model->listUacls($userID, $appID);
		
		$toolbar 		= ($appID ? $this->erpToolbar('', 3) : '');

		$findbar = "<i class='fas fa-users'></i> Group <select name='groupID' style='width: 200px' onchange=\"inner('$app/$menu/open/0/'+this.value+'/0'); return false;\">
		<option value='0'>Select</option>";
		foreach ($groups as $group) {
			$findbar .= "<option value='" .$group['groupID']. "'" .($group['groupID'] == $groupID ? self::SL : ''). ">" .$group['groupName']. "</option>";
		}
		$findbar .= "</select> 
		<i class='fas fa-user'></i> User <select name='userID' style='width: 200px' onchange=\"inner('$app/$menu/open/'+this.value+'/$groupID/0'); return false;\">
		<option value='0'>Select</option>";
		foreach ($users as $user) {
			$findbar .= "<option value='" .$user['userID']. "'" .($user['userID'] == $userID ? self::SL : ''). ">" .$user['loginID']. "</option>";
		}
		$findbar .= "</select>";
		
		$str = $this->pageHeader($findbar, $toolbar);
        		
		if ($groupID && $userID) {
			$str .= "<table width='100%'>
			<tr><th width='70%'>User ACL <span class='findbar'><input type='checkbox' onclick='toggle(this,\"acl\")'> Toggle All</span></th><th>App List</th></tr>
			<tr valign='top'><td>
			<table width='100%' class='interface'>
			<tr><th>#</th><th>Menu Name</th><th>Interface</th><th>Read Privilege</th><th>Insert Privilege</th><th>Update Privilege</th><th>Delete Privilege</th></tr>";
			
			foreach($acls as $acl) {
				$i++;
				$aclID = ($acl['aclID'] ? $acl['aclID'] : 0);
				$str .= "<tr><td>$i <input type='hidden' name='aclID[]' value='$aclID'><input type='hidden' name='menuID$i' value='" .$acl['menuID']. "'></td>
				<td><i class='" .$acl['menuIcon']. "'></i> " .$acl['menuName']. "</td><td>" .($acl['interface'] == 'I' ? 'Input' : ($acl['interface'] == 'C' ? 'Configuration' : 'Output')). "</td>
				<td align='center'><input id='acl' type='checkbox' name='aclRead$i' value='1'" .($acl['aclRead'] ? self::CK : $this->dis). " $ro></td>";
				if ($acl['interface'] != 'O') {
					$str .= "<td align='center'><input id='acl' type='checkbox' name='aclInsert$i' value='1'" .($acl['aclInsert'] ? self::CK : $this->dis). "></td>
					<td align='center'><input id='acl' type='checkbox' name='aclUpdate$i' value='1'" .($acl['aclUpdate'] ? self::CK : $this->dis). "></td>
					<td align='center'><input id='acl' type='checkbox' name='aclDelete$i' value='1'" .($acl['aclDelete'] ? self::CK : $this->dis). "></td>";
				}
				$str .= "</tr>";
			}
			$str .= "</table></td><td> 
			<ol class='listbar'>";
			foreach ($apps as $ap) {
				$str .= "<li><i class='" .$ap['appIcon']. "'></i> " .($appID == $ap['appID'] ? "<b>" .$ap['appName']. "</b>" : "<a href='' onclick=\"inner('$app/$menu/open/$userID/$groupID/" .$ap['appID']. "'); return false;\">" .$ap['appName']. "</a>"). " (" .$ap['status']. ")</li>";
			}
			$str .= "</ol></td></tr></table>" .($appID ? $this->pageFooter('', $toolbar) : '');
		} else {
			$str .= "<h1 align='center'>Select group and User to proceed with.</h1>";
		}
		
        return $str;
	}

	public function erpaGroups($action, $groupID) {
		$app 			= $this->controller->app;			// application envoked        
		$menu 			= $this->controller->menu;	
		        
		$rows 			= $this->model->printGroups();
		
		$toolbar 		= $this->erpPrintbar();
		
		$str = $this->pageHeader($findbar, $toolbar);
		$str .= $this->printReport($rows);			
		
		if ($rows) $str .= $this->pageFooter('', $toolbar);

        return $str;
	}

	public function erpaUsers($action, $groupID) {
		$app 			= $this->controller->app;			// application envoked        
		$menu 			= $this->controller->menu;	
		        
		$groups 		= $this->model->selectGroup();			// list enabled users only
		$rows 			= $this->model->printUsers($groupID);
		
		if ($groupID) $toolbar 		= $this->erpPrintbar();
		
		$findbar = "Group <select name='groupID' style='width: 200px' onchange=\"inner('$app/$menu/print/'+this.value); return false;\">
		<option value='0'>Select</option>";
		foreach ($groups as $group) {
			$findbar .= "<option value='" .$group['groupID']. "'" .($group['groupID'] == $groupID ? self::SL : ''). ">" .$group['groupName']. "</option>";
		}
		$findbar .= "</select>";

		$str = $this->pageHeader($findbar, $toolbar);
		$str .= $this->printReport($rows);			

		if ($rows) $str .= $this->pageFooter('', $toolbar);
		
        return $str;
	}

    public function erpaMessage($action, $messageID) {
		$app				= $this->controller->app;
		$menu				= $this->controller->menu;
		
		$messageID	 		= $this->controller->manageMessage($action, $messageID);// initiate controller action 
		// controller locks/unlocks field through manage call
		$ro 				= $this->controller->editLock;								// ensure default edit lock

        $messages 			= $this->model->listMessages();					// get record
        $message 			= $this->model->getMessage($messageID);					// get record
		$toolbar 			= $this->erpToolbar('', 2);
		
		$str = $this->pageHeader($findbar, $toolbar);
		$str .= "<table width='100%'>
		<tr><th width='70%'>Message #{$messageID} Details</th><th width='30%'>Message List</th></tr>
		<tr valign='top'><td>
		<table class='interface'>
		<tr><td nowrap>Subject</td><td><input type='text' name='subject' size='100%' value='" .$message['subject']. "' placeholder='Mail subject' $ro></td></tr>
		<tr valign='top'><td nowrap>Message</td><td><textarea name='message' rows='15' cols='100%' placeholder='Mail message' $ro>" .$message['message']. "</textarea></td></tr>
		<tr><td nowrap>Sender</td><td><textarea name='sender' rows='3' cols='100%' placeholder='Sender name, designation' $ro>" .$message['sender']. "</textarea></td></tr>
		<tr><td nowrap>Recipient</td><td><input type='text' name='recipient' size='100%' value='" .$message['recipient']. "' placeholder='Recipient name, group' $ro></td></tr>
        </table>
		</td><td>
		<ol class='listbar'>";
        foreach ($messages as $message) {
			$str .= "<li>";
			if ($messageID == $message['messageID']) {
				$str .= "<b>" .$message['subject']. "</b>";
			} else {
				$str .= "<a href='' onclick=\"inner('$app/$menu/open/" .$message['messageID']. "'); return false;\">" .$message['subject']. "</a>";
			}
			$str .= "</li>";
		}
        $str .= "</ol></td></tr></table>" .$this->pageFooter('', $toolbar);
				
        return $str;
    }
	


	//*************************************************************************** 
	//*				reports on session, log and sql commands					*
	//*************************************************************************** 
	public function erpaSessions($action, $dated='') {
        return $this->erpSessions($action, $dated);
	}

	public function erpaLogs($action, $dated='') {
        if ($_SESSION["loginID"]) return $this->erpLogs($action, $dated);
		else return "You need to sign in to get the log information.";
	}

	public function erpaSqls($action, $dated='') {
        if ($_SESSION["loginID"]) return $this->erpSqls($action, $dated);
		else return "You need to sign in to get the sql information.";
	}

	function abbreviate($string){
		$abbreviation 	= "";
		$string 		= ucwords($string);
		$words 			= explode(" ", "$string");
		  foreach($words as $word){
			  $abbreviation .= $word[0];
		  }
		  
	   return $abbreviation; 
	}
}
?>