Commit 17302f41 by Tobin

Merge branch 'revert-5d8a4611' into 'production'

Revert "Merge branch 'master' into 'production'" See merge request !2
parents 5d8a4611 ffe00134
......@@ -83,7 +83,7 @@ $autoload['drivers'] = array();
|
| $autoload['helper'] = array('url', 'file');
*/
$autoload['helper'] = array('url','generals_helper','file','excel_reader_helper');
$autoload['helper'] = array('url','generals_helper','file');
/*
| -------------------------------------------------------------------
......
......@@ -75,10 +75,6 @@ $query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
// 'hostname' => 'localhost',
// 'username' => 'techlabz_frank',
// 'password' => 'Golden_123',
// 'database' => 'techlabz_nemt_backend',
'hostname' => '192.168.140.123',
'username' => 'root',
'password' => 'Golden_123',
......
......@@ -253,19 +253,6 @@ class Driver extends CI_Controller {
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Driver/edit/'.encode_param($driver_id)));
}
function getDriverData(){
$return_arr = array('status'=>'0');
if(!isset($_POST) || empty($_POST) || !isset($_POST['driver_id']) || empty($_POST['driver_id'])){
echo json_encode($return_arr);exit;
}
$driver_id = decode_param($_POST['driver_id']);
$driver_data = $this->Driver_model->getDriver($driver_id);
if(!empty($driver_data)){
$return_arr['status'] = 1;
$return_arr['driver_data'] = $driver_data;
}
echo json_encode($return_arr);exit;
}
}
?>
\ No newline at end of file
......@@ -105,12 +105,7 @@ class Report extends CI_Controller {
if(empty($dataRow) || empty($fileName)){
return;
}
if($this->session->userdata['user_type'] != 1){
$company_id = $this->session->userdata['id'];
$this->db->query("UPDATE `company_payment_details`
SET `report_count`=report_count+1
WHERE `company_id`=".$company_id);
}
$this->db->query("UPDATE `company_payment_details` SET `report_count`=report_count+1 WHERE `company_id`=10");
//Download CSV\\
$temp_memory = fopen('php://memory', 'w');
foreach ($dataRow as $line) {
......
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Settings extends CI_Controller {
public function __construct() {
parent::__construct();
date_default_timezone_set("Asia/Kolkata");
$this->load->model('Settings_model');
$this->load->model('Dashboard_model');
if(!$this->session->userdata('logged_in')) {
redirect(base_url('Login'));
}
if($this->session->userdata['user_type'] != 1){
$flashMsg = array('message'=>'Access Denied You don\'t have permission to access this Page',
'class'=>'error');
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url());
}
}
public function index() {
$template['page'] = 'Settings/viewSettings';
$template['menu'] = "Site Settings";
$template['sub_menu'] = "Change Settings";
$template['page_desc'] = "Edit or View Settings";
$template['page_title'] = "Settings";
$template['data'] = $this->Settings_model->settings_viewing();
$this->load->view('template',$template);
}
public function change_settings(){
$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
if(!isset($_POST) || empty($_POST)){
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Settings'));
}
if(isset($_FILES['site_logo']) && !empty($_FILES['site_logo'])){
$config = set_upload_service("assets/uploads/services");
$this->load->library('upload');
$config['file_name'] = time()."_".$_FILES['site_logo']['name'];
$this->upload->initialize($config);
if($this->upload->do_upload('site_logo')){
$upload_data = $this->upload->data();
$_POST['site_logo'] = $config['upload_path']."/".$upload_data['file_name'];
}
}
if(isset($_FILES['fav_icon']) && !empty($_FILES['fav_icon'])){
$config = set_upload_service("assets/uploads/services");
$this->load->library('upload');
$config['file_name'] = time()."_".$_FILES['fav_icon']['name'];
$this->upload->initialize($config);
if($this->upload->do_upload('fav_icon')){
$upload_data = $this->upload->data();
$_POST['fav_icon'] = $config['upload_path']."/".$upload_data['file_name'];
}
}
$status = $this->Settings_model->update_settings($_POST);
if($status){
$flashMsg['class'] = 'success';
$flashMsg['message'] = 'Settings Successfully Updated..!';
$settings = $this->Settings_model->settings_viewing();
if(!empty($settings)){
$this->session->set_userdata('settings', $settings);
}
}
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Settings'));
}
}
?>
\ No newline at end of file
<?php
/**
* Main class for spreadsheet reading
*
* @version 0.5.10
* @author Martins Pilsetnieks
*/
class SpreadsheetReader implements SeekableIterator, Countable
{
const TYPE_XLSX = 'XLSX';
const TYPE_XLS = 'XLS';
const TYPE_CSV = 'CSV';
const TYPE_ODS = 'ODS';
private $Options = array(
'Delimiter' => '',
'Enclosure' => '"'
);
/**
* @var int Current row in the file
*/
private $Index = 0;
/**
* @var SpreadsheetReader_* Handle for the reader object
*/
private $Handle = array();
/**
* @var TYPE_* Type of the contained spreadsheet
*/
private $Type = false;
/**
* @param string Path to file
* @param string Original filename (in case of an uploaded file), used to determine file type, optional
* @param string MIME type from an upload, used to determine file type, optional
*/
public function __construct($Filepath, $OriginalFilename = false, $MimeType = false)
{
if (!is_readable($Filepath))
{
throw new Exception('SpreadsheetReader: File ('.$Filepath.') not readable');
}
// To avoid timezone warnings and exceptions for formatting dates retrieved from files
$DefaultTZ = @date_default_timezone_get();
if ($DefaultTZ)
{
date_default_timezone_set($DefaultTZ);
}
// Checking the other parameters for correctness
// This should be a check for string but we're lenient
if (!empty($OriginalFilename) && !is_scalar($OriginalFilename))
{
throw new Exception('SpreadsheetReader: Original file (2nd parameter) path is not a string or a scalar value.');
}
if (!empty($MimeType) && !is_scalar($MimeType))
{
throw new Exception('SpreadsheetReader: Mime type (3nd parameter) path is not a string or a scalar value.');
}
// 1. Determine type
if (!$OriginalFilename)
{
$OriginalFilename = $Filepath;
}
$Extension = strtolower(pathinfo($OriginalFilename, PATHINFO_EXTENSION));
switch ($MimeType)
{
case 'text/csv':
case 'text/comma-separated-values':
case 'text/plain':
$this -> Type = self::TYPE_CSV;
break;
case 'application/vnd.ms-excel':
case 'application/msexcel':
case 'application/x-msexcel':
case 'application/x-ms-excel':
case 'application/vnd.ms-excel':
case 'application/x-excel':
case 'application/x-dos_ms_excel':
case 'application/xls':
case 'application/xlt':
case 'application/x-xls':
// Excel does weird stuff
if (in_array($Extension, array('csv', 'tsv', 'txt')))
{
$this -> Type = self::TYPE_CSV;
}
else
{
$this -> Type = self::TYPE_XLS;
}
break;
case 'application/vnd.oasis.opendocument.spreadsheet':
case 'application/vnd.oasis.opendocument.spreadsheet-template':
$this -> Type = self::TYPE_ODS;
break;
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.template':
case 'application/xlsx':
case 'application/xltx':
$this -> Type = self::TYPE_XLSX;
break;
case 'application/xml':
// Excel 2004 xml format uses this
break;
}
if (!$this -> Type)
{
switch ($Extension)
{
case 'xlsx':
case 'xltx': // XLSX template
case 'xlsm': // Macro-enabled XLSX
case 'xltm': // Macro-enabled XLSX template
$this -> Type = self::TYPE_XLSX;
break;
case 'xls':
case 'xlt':
$this -> Type = self::TYPE_XLS;
break;
case 'ods':
case 'odt':
$this -> Type = self::TYPE_ODS;
break;
default:
$this -> Type = self::TYPE_CSV;
break;
}
}
// Pre-checking XLS files, in case they are renamed CSV or XLSX files
if ($this -> Type == self::TYPE_XLS)
{
self::Load(self::TYPE_XLS);
$this -> Handle = new SpreadsheetReader_XLS($Filepath);
if ($this -> Handle -> Error)
{
$this -> Handle -> __destruct();
if (is_resource($ZipHandle = zip_open($Filepath)))
{
$this -> Type = self::TYPE_XLSX;
zip_close($ZipHandle);
}
else
{
$this -> Type = self::TYPE_CSV;
}
}
}
// 2. Create handle
switch ($this -> Type)
{
case self::TYPE_XLSX:
self::Load(self::TYPE_XLSX);
$this -> Handle = new SpreadsheetReader_XLSX($Filepath);
break;
case self::TYPE_CSV:
self::Load(self::TYPE_CSV);
$this -> Handle = new SpreadsheetReader_CSV($Filepath, $this -> Options);
break;
case self::TYPE_XLS:
// Everything already happens above
break;
case self::TYPE_ODS:
self::Load(self::TYPE_ODS);
$this -> Handle = new SpreadsheetReader_ODS($Filepath, $this -> Options);
break;
}
}
/**
* Gets information about separate sheets in the given file
*
* @return array Associative array where key is sheet index and value is sheet name
*/
public function Sheets()
{
return $this -> Handle -> Sheets();
}
/**
* Changes the current sheet to another from the file.
* Note that changing the sheet will rewind the file to the beginning, even if
* the current sheet index is provided.
*
* @param int Sheet index
*
* @return bool True if sheet could be changed to the specified one,
* false if not (for example, if incorrect index was provided.
*/
public function ChangeSheet($Index)
{
return $this -> Handle -> ChangeSheet($Index);
}
/**
* Autoloads the required class for the particular spreadsheet type
*
* @param TYPE_* Spreadsheet type, one of TYPE_* constants of this class
*/
private static function Load($Type)
{
if (!in_array($Type, array(self::TYPE_XLSX, self::TYPE_XLS, self::TYPE_CSV, self::TYPE_ODS)))
{
throw new Exception('SpreadsheetReader: Invalid type ('.$Type.')');
}
// 2nd parameter is to prevent autoloading for the class.
// If autoload works, the require line is unnecessary, if it doesn't, it ends badly.
if (!class_exists('SpreadsheetReader_'.$Type, false))
{
require(dirname(__FILE__).DIRECTORY_SEPARATOR.'SpreadsheetReader_'.$Type.'.php');
}
}
// !Iterator interface methods
/**
* Rewind the Iterator to the first element.
* Similar to the reset() function for arrays in PHP
*/
public function rewind()
{
$this -> Index = 0;
if ($this -> Handle)
{
$this -> Handle -> rewind();
}
}
/**
* Return the current element.
* Similar to the current() function for arrays in PHP
*
* @return mixed current element from the collection
*/
public function current()
{
if ($this -> Handle)
{
return $this -> Handle -> current();
}
return null;
}
/**
* Move forward to next element.
* Similar to the next() function for arrays in PHP
*/
public function next()
{
if ($this -> Handle)
{
$this -> Index++;
return $this -> Handle -> next();
}
return null;
}
/**
* Return the identifying key of the current element.
* Similar to the key() function for arrays in PHP
*
* @return mixed either an integer or a string
*/
public function key()
{
if ($this -> Handle)
{
return $this -> Handle -> key();
}
return null;
}
/**
* Check if there is a current element after calls to rewind() or next().
* Used to check if we've iterated to the end of the collection
*
* @return boolean FALSE if there's nothing more to iterate over
*/
public function valid()
{
if ($this -> Handle)
{
return $this -> Handle -> valid();
}
return false;
}
// !Countable interface method
public function count()
{
if ($this -> Handle)
{
return $this -> Handle -> count();
}
return 0;
}
/**
* Method for SeekableIterator interface. Takes a posiiton and traverses the file to that position
* The value can be retrieved with a `current()` call afterwards.
*
* @param int Position in file
*/
public function seek($Position)
{
if (!$this -> Handle)
{
throw new OutOfBoundsException('SpreadsheetReader: No file opened');
}
$CurrentIndex = $this -> Handle -> key();
if ($CurrentIndex != $Position)
{
if ($Position < $CurrentIndex || is_null($CurrentIndex) || $Position == 0)
{
$this -> rewind();
}
while ($this -> Handle -> valid() && ($Position > $this -> Handle -> key()))
{
$this -> Handle -> next();
}
if (!$this -> Handle -> valid())
{
throw new OutOfBoundsException('SpreadsheetError: Position '.$Position.' not found');
}
}
return null;
}
}
?>
<?php
/**
* Class for parsing CSV files
*
* @author Martins Pilsetnieks
*/
class SpreadsheetReader_CSV implements Iterator, Countable
{
/**
* @var array Options array, pre-populated with the default values.
*/
private $Options = array(
'Delimiter' => ';',
'Enclosure' => '"'
);
private $Encoding = 'UTF-8';
private $BOMLength = 0;
/**
* @var resource File handle
*/
private $Handle = false;
private $Filepath = '';
private $Index = 0;
private $CurrentRow = null;
/**
* @param string Path to file
* @param array Options:
* Enclosure => string CSV enclosure
* Separator => string CSV separator
*/
public function __construct($Filepath, array $Options = null)
{
$this -> Filepath = $Filepath;
if (!is_readable($Filepath))
{
throw new Exception('SpreadsheetReader_CSV: File not readable ('.$Filepath.')');
}
// For safety's sake
@ini_set('auto_detect_line_endings', true);
$this -> Options = array_merge($this -> Options, $Options);
$this -> Handle = fopen($Filepath, 'r');
// Checking the file for byte-order mark to determine encoding
$BOM16 = bin2hex(fread($this -> Handle, 2));
if ($BOM16 == 'fffe')
{
$this -> Encoding = 'UTF-16LE';
//$this -> Encoding = 'UTF-16';
$this -> BOMLength = 2;
}
elseif ($BOM16 == 'feff')
{
$this -> Encoding = 'UTF-16BE';
//$this -> Encoding = 'UTF-16';
$this -> BOMLength = 2;
}
if (!$this -> BOMLength)
{
fseek($this -> Handle, 0);
$BOM32 = bin2hex(fread($this -> Handle, 4));
if ($BOM32 == '0000feff')
{
//$this -> Encoding = 'UTF-32BE';
$this -> Encoding = 'UTF-32';
$this -> BOMLength = 4;
}
elseif ($BOM32 == 'fffe0000')
{
//$this -> Encoding = 'UTF-32LE';
$this -> Encoding = 'UTF-32';
$this -> BOMLength = 4;
}
}
fseek($this -> Handle, 0);
$BOM8 = bin2hex(fread($this -> Handle, 3));
if ($BOM8 == 'efbbbf')
{
$this -> Encoding = 'UTF-8';
$this -> BOMLength = 3;
}
// Seeking the place right after BOM as the start of the real content
if ($this -> BOMLength)
{
fseek($this -> Handle, $this -> BOMLength);
}
// Checking for the delimiter if it should be determined automatically
if (!$this -> Options['Delimiter'])
{
// fgetcsv needs single-byte separators
$Semicolon = ';';
$Tab = "\t";
$Comma = ',';
// Reading the first row and checking if a specific separator character
// has more columns than others (it means that most likely that is the delimiter).
$SemicolonCount = count(fgetcsv($this -> Handle, null, $Semicolon));
fseek($this -> Handle, $this -> BOMLength);
$TabCount = count(fgetcsv($this -> Handle, null, $Tab));
fseek($this -> Handle, $this -> BOMLength);
$CommaCount = count(fgetcsv($this -> Handle, null, $Comma));
fseek($this -> Handle, $this -> BOMLength);
$Delimiter = $Semicolon;
if ($TabCount > $SemicolonCount || $CommaCount > $SemicolonCount)
{
$Delimiter = $CommaCount > $TabCount ? $Comma : $Tab;
}
$this -> Options['Delimiter'] = $Delimiter;
}
}
/**
* Returns information about sheets in the file.
* Because CSV doesn't have any, it's just a single entry.
*
* @return array Sheet data
*/
public function Sheets()
{
return array(0 => basename($this -> Filepath));
}
/**
* Changes sheet to another. Because CSV doesn't have any sheets
* it just rewinds the file so the behaviour is compatible with other
* sheet readers. (If an invalid index is given, it doesn't do anything.)
*
* @param bool Status
*/
public function ChangeSheet($Index)
{
if ($Index == 0)
{
$this -> rewind();
return true;
}
return false;
}
// !Iterator interface methods
/**
* Rewind the Iterator to the first element.
* Similar to the reset() function for arrays in PHP
*/
public function rewind()
{
fseek($this -> Handle, $this -> BOMLength);
$this -> CurrentRow = null;
$this -> Index = 0;
}
/**
* Return the current element.
* Similar to the current() function for arrays in PHP
*
* @return mixed current element from the collection
*/
public function current()
{
if ($this -> Index == 0 && is_null($this -> CurrentRow))
{
$this -> next();
$this -> Index--;
}
return $this -> CurrentRow;
}
/**
* Move forward to next element.
* Similar to the next() function for arrays in PHP
*/
public function next()
{
$this -> CurrentRow = array();
// Finding the place the next line starts for UTF-16 encoded files
// Line breaks could be 0x0D 0x00 0x0A 0x00 and PHP could split lines on the
// first or the second linebreak leaving unnecessary \0 characters that mess up
// the output.
if ($this -> Encoding == 'UTF-16LE' || $this -> Encoding == 'UTF-16BE')
{
while (!feof($this -> Handle))
{
// While bytes are insignificant whitespace, do nothing
$Char = ord(fgetc($this -> Handle));
if (!$Char || $Char == 10 || $Char == 13)
{
continue;
}
else
{
// When significant bytes are found, step back to the last place before them
if ($this -> Encoding == 'UTF-16LE')
{
fseek($this -> Handle, ftell($this -> Handle) - 1);
}
else
{
fseek($this -> Handle, ftell($this -> Handle) - 2);
}
break;
}
}
}
$this -> Index++;
$this -> CurrentRow = fgetcsv($this -> Handle, null, $this -> Options['Delimiter'], $this -> Options['Enclosure']);
if ($this -> CurrentRow)
{
// Converting multi-byte unicode strings
// and trimming enclosure symbols off of them because those aren't recognized
// in the relevan encodings.
if ($this -> Encoding != 'ASCII' && $this -> Encoding != 'UTF-8')
{
$Encoding = $this -> Encoding;
foreach ($this -> CurrentRow as $Key => $Value)
{
$this -> CurrentRow[$Key] = trim(trim(
mb_convert_encoding($Value, 'UTF-8', $this -> Encoding),
$this -> Options['Enclosure']
));
}
}
}
return $this -> CurrentRow;
}
/**
* Return the identifying key of the current element.
* Similar to the key() function for arrays in PHP
*
* @return mixed either an integer or a string
*/
public function key()
{
return $this -> Index;
}
/**
* Check if there is a current element after calls to rewind() or next().
* Used to check if we've iterated to the end of the collection
*
* @return boolean FALSE if there's nothing more to iterate over
*/
public function valid()
{
return ($this -> CurrentRow || !feof($this -> Handle));
}
// !Countable interface method
/**
* Ostensibly should return the count of the contained items but this just returns the number
* of rows read so far. It's not really correct but at least coherent.
*/
public function count()
{
return $this -> Index + 1;
}
}
?>
\ No newline at end of file
<?php
/**
* Class for parsing ODS files
*
* @author Martins Pilsetnieks
*/
class SpreadsheetReader_ODS implements Iterator, Countable
{
private $Options = array(
'TempDir' => '',
'ReturnDateTimeObjects' => false
);
/**
* @var string Path to temporary content file
*/
private $ContentPath = '';
/**
* @var XMLReader XML reader object
*/
private $Content = false;
/**
* @var array Data about separate sheets in the file
*/
private $Sheets = false;
private $CurrentRow = null;
/**
* @var int Number of the sheet we're currently reading
*/
private $CurrentSheet = 0;
private $Index = 0;
private $TableOpen = false;
private $RowOpen = false;
/**
* @param string Path to file
* @param array Options:
* TempDir => string Temporary directory path
* ReturnDateTimeObjects => bool True => dates and times will be returned as PHP DateTime objects, false => as strings
*/
public function __construct($Filepath, array $Options = null)
{
if (!is_readable($Filepath))
{
throw new Exception('SpreadsheetReader_ODS: File not readable ('.$Filepath.')');
}
$this -> TempDir = isset($Options['TempDir']) && is_writable($Options['TempDir']) ?
$Options['TempDir'] :
sys_get_temp_dir();
$this -> TempDir = rtrim($this -> TempDir, DIRECTORY_SEPARATOR);
$this -> TempDir = $this -> TempDir.DIRECTORY_SEPARATOR.uniqid().DIRECTORY_SEPARATOR;
$Zip = new ZipArchive;
$Status = $Zip -> open($Filepath);
if ($Status !== true)
{
throw new Exception('SpreadsheetReader_ODS: File not readable ('.$Filepath.') (Error '.$Status.')');
}
if ($Zip -> locateName('content.xml') !== false)
{
$Zip -> extractTo($this -> TempDir, 'content.xml');
$this -> ContentPath = $this -> TempDir.'content.xml';
}
$Zip -> close();
if ($this -> ContentPath && is_readable($this -> ContentPath))
{
$this -> Content = new XMLReader;
$this -> Content -> open($this -> ContentPath);
$this -> Valid = true;
}
}
/**
* Destructor, destroys all that remains (closes and deletes temp files)
*/
public function __destruct()
{
if ($this -> Content && $this -> Content instanceof XMLReader)
{
$this -> Content -> close();
unset($this -> Content);
}
if (file_exists($this -> ContentPath))
{
@unlink($this -> ContentPath);
unset($this -> ContentPath);
}
}
/**
* Retrieves an array with information about sheets in the current file
*
* @return array List of sheets (key is sheet index, value is name)
*/
public function Sheets()
{
if ($this -> Sheets === false)
{
$this -> Sheets = array();
if ($this -> Valid)
{
$this -> SheetReader = new XMLReader;
$this -> SheetReader -> open($this -> ContentPath);
while ($this -> SheetReader -> read())
{
if ($this -> SheetReader -> name == 'table:table')
{
$this -> Sheets[] = $this -> SheetReader -> getAttribute('table:name');
$this -> SheetReader -> next();
}
}
$this -> SheetReader -> close();
}
}
return $this -> Sheets;
}
/**
* Changes the current sheet in the file to another
*
* @param int Sheet index
*
* @return bool True if sheet was successfully changed, false otherwise.
*/
public function ChangeSheet($Index)
{
$Index = (int)$Index;
$Sheets = $this -> Sheets();
if (isset($Sheets[$Index]))
{
$this -> CurrentSheet = $Index;
$this -> rewind();
return true;
}
return false;
}
// !Iterator interface methods
/**
* Rewind the Iterator to the first element.
* Similar to the reset() function for arrays in PHP
*/
public function rewind()
{
if ($this -> Index > 0)
{
// If the worksheet was already iterated, XML file is reopened.
// Otherwise it should be at the beginning anyway
$this -> Content -> close();
$this -> Content -> open($this -> ContentPath);
$this -> Valid = true;
$this -> TableOpen = false;
$this -> RowOpen = false;
$this -> CurrentRow = null;
}
$this -> Index = 0;
}
/**
* Return the current element.
* Similar to the current() function for arrays in PHP
*
* @return mixed current element from the collection
*/
public function current()
{
if ($this -> Index == 0 && is_null($this -> CurrentRow))
{
$this -> next();
$this -> Index--;
}
return $this -> CurrentRow;
}
/**
* Move forward to next element.
* Similar to the next() function for arrays in PHP
*/
public function next()
{
$this -> Index++;
$this -> CurrentRow = array();
if (!$this -> TableOpen)
{
$TableCounter = 0;
$SkipRead = false;
while ($this -> Valid = ($SkipRead || $this -> Content -> read()))
{
if ($SkipRead)
{
$SkipRead = false;
}
if ($this -> Content -> name == 'table:table' && $this -> Content -> nodeType != XMLReader::END_ELEMENT)
{
if ($TableCounter == $this -> CurrentSheet)
{
$this -> TableOpen = true;
break;
}
$TableCounter++;
$this -> Content -> next();
$SkipRead = true;
}
}
}
if ($this -> TableOpen && !$this -> RowOpen)
{
while ($this -> Valid = $this -> Content -> read())
{
switch ($this -> Content -> name)
{
case 'table:table':
$this -> TableOpen = false;
$this -> Content -> next('office:document-content');
$this -> Valid = false;
break 2;
case 'table:table-row':
if ($this -> Content -> nodeType != XMLReader::END_ELEMENT)
{
$this -> RowOpen = true;
break 2;
}
break;
}
}
}
if ($this -> RowOpen)
{
$LastCellContent = '';
while ($this -> Valid = $this -> Content -> read())
{
switch ($this -> Content -> name)
{
case 'table:table-cell':
if ($this -> Content -> nodeType == XMLReader::END_ELEMENT || $this -> Content -> isEmptyElement)
{
if ($this -> Content -> nodeType == XMLReader::END_ELEMENT)
{
$CellValue = $LastCellContent;
}
elseif ($this -> Content -> isEmptyElement)
{
$LastCellContent = '';
$CellValue = $LastCellContent;
}
$this -> CurrentRow[] = $LastCellContent;
if ($this -> Content -> getAttribute('table:number-columns-repeated') !== null)
{
$RepeatedColumnCount = $this -> Content -> getAttribute('table:number-columns-repeated');
// Checking if larger than one because the value is already added to the row once before
if ($RepeatedColumnCount > 1)
{
$this -> CurrentRow = array_pad($this -> CurrentRow, count($this -> CurrentRow) + $RepeatedColumnCount - 1, $LastCellContent);
}
}
}
else
{
$LastCellContent = '';
}
case 'text:p':
if ($this -> Content -> nodeType != XMLReader::END_ELEMENT)
{
$LastCellContent = $this -> Content -> readString();
}
break;
case 'table:table-row':
$this -> RowOpen = false;
break 2;
}
}
}
return $this -> CurrentRow;
}
/**
* Return the identifying key of the current element.
* Similar to the key() function for arrays in PHP
*
* @return mixed either an integer or a string
*/
public function key()
{
return $this -> Index;
}
/**
* Check if there is a current element after calls to rewind() or next().
* Used to check if we've iterated to the end of the collection
*
* @return boolean FALSE if there's nothing more to iterate over
*/
public function valid()
{
return $this -> Valid;
}
// !Countable interface method
/**
* Ostensibly should return the count of the contained items but this just returns the number
* of rows read so far. It's not really correct but at least coherent.
*/
public function count()
{
return $this -> Index + 1;
}
}
?>
\ No newline at end of file
<?php
/**
* Class for parsing XLS files
*
* @author Martins Pilsetnieks
*/
class SpreadsheetReader_XLS implements Iterator, Countable
{
/**
* @var array Options array, pre-populated with the default values.
*/
private $Options = array(
);
/**
* @var resource File handle
*/
private $Handle = false;
private $Index = 0;
private $Error = false;
/**
* @var array Sheet information
*/
private $Sheets = false;
private $SheetIndexes = array();
/**
* @var int Current sheet index
*/
private $CurrentSheet = 0;
/**
* @var array Content of the current row
*/
private $CurrentRow = array();
/**
* @var int Column count in the sheet
*/
private $ColumnCount = 0;
/**
* @var int Row count in the sheet
*/
private $RowCount = 0;
/**
* @var array Template to use for empty rows. Retrieved rows are merged
* with this so that empty cells are added, too
*/
private $EmptyRow = array();
/**
* @param string Path to file
* @param array Options
*/
public function __construct($Filepath, array $Options = null)
{
if (!is_readable($Filepath))
{
throw new Exception('SpreadsheetReader_XLS: File not readable ('.$Filepath.')');
}
if (!class_exists('Spreadsheet_Excel_Reader'))
{
throw new Exception('SpreadsheetReader_XLS: Spreadsheet_Excel_Reader class not available');
}
$this -> Handle = new Spreadsheet_Excel_Reader($Filepath, false, 'UTF-8');
if (function_exists('mb_convert_encoding'))
{
$this -> Handle -> setUTFEncoder('mb');
}
if (empty($this -> Handle -> sheets))
{
$this -> Error = true;
return null;
}
$this -> ChangeSheet(0);
}
public function __destruct()
{
unset($this -> Handle);
}
/**
* Retrieves an array with information about sheets in the current file
*
* @return array List of sheets (key is sheet index, value is name)
*/
public function Sheets()
{
if ($this -> Sheets === false)
{
$this -> Sheets = array();
$this -> SheetIndexes = array_keys($this -> Handle -> sheets);
foreach ($this -> SheetIndexes as $SheetIndex)
{
$this -> Sheets[] = $this -> Handle -> boundsheets[$SheetIndex]['name'];
}
}
return $this -> Sheets;
}
/**
* Changes the current sheet in the file to another
*
* @param int Sheet index
*
* @return bool True if sheet was successfully changed, false otherwise.
*/
public function ChangeSheet($Index)
{
$Index = (int)$Index;
$Sheets = $this -> Sheets();
if (isset($this -> Sheets[$Index]))
{
$this -> rewind();
$this -> CurrentSheet = $this -> SheetIndexes[$Index];
$this -> ColumnCount = $this -> Handle -> sheets[$this -> CurrentSheet]['numCols'];
$this -> RowCount = $this -> Handle -> sheets[$this -> CurrentSheet]['numRows'];
// For the case when Spreadsheet_Excel_Reader doesn't have the row count set correctly.
if (!$this -> RowCount && count($this -> Handle -> sheets[$this -> CurrentSheet]['cells']))
{
end($this -> Handle -> sheets[$this -> CurrentSheet]['cells']);
$this -> RowCount = (int)key($this -> Handle -> sheets[$this -> CurrentSheet]['cells']);
}
if ($this -> ColumnCount)
{
$this -> EmptyRow = array_fill(1, $this -> ColumnCount, '');
}
else
{
$this -> EmptyRow = array();
}
}
return false;
}
public function __get($Name)
{
switch ($Name)
{
case 'Error':
return $this -> Error;
break;
}
return null;
}
// !Iterator interface methods
/**
* Rewind the Iterator to the first element.
* Similar to the reset() function for arrays in PHP
*/
public function rewind()
{
$this -> Index = 0;
}
/**
* Return the current element.
* Similar to the current() function for arrays in PHP
*
* @return mixed current element from the collection
*/
public function current()
{
if ($this -> Index == 0)
{
$this -> next();
}
return $this -> CurrentRow;
}
/**
* Move forward to next element.
* Similar to the next() function for arrays in PHP
*/
public function next()
{
// Internal counter is advanced here instead of the if statement
// because apparently it's fully possible that an empty row will not be
// present at all
$this -> Index++;
if ($this -> Error)
{
return array();
}
elseif (isset($this -> Handle -> sheets[$this -> CurrentSheet]['cells'][$this -> Index]))
{
$this -> CurrentRow = $this -> Handle -> sheets[$this -> CurrentSheet]['cells'][$this -> Index];
if (!$this -> CurrentRow)
{
return array();
}
$this -> CurrentRow = $this -> CurrentRow + $this -> EmptyRow;
ksort($this -> CurrentRow);
$this -> CurrentRow = array_values($this -> CurrentRow);
return $this -> CurrentRow;
}
else
{
$this -> CurrentRow = $this -> EmptyRow;
return $this -> CurrentRow;
}
}
/**
* Return the identifying key of the current element.
* Similar to the key() function for arrays in PHP
*
* @return mixed either an integer or a string
*/
public function key()
{
return $this -> Index;
}
/**
* Check if there is a current element after calls to rewind() or next().
* Used to check if we've iterated to the end of the collection
*
* @return boolean FALSE if there's nothing more to iterate over
*/
public function valid()
{
if ($this -> Error)
{
return false;
}
return ($this -> Index <= $this -> RowCount);
}
// !Countable interface method
/**
* Ostensibly should return the count of the contained items but this just returns the number
* of rows read so far. It's not really correct but at least coherent.
*/
public function count()
{
if ($this -> Error)
{
return 0;
}
return $this -> RowCount;
}
}
?>
\ No newline at end of file
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
include('excelReaderLibrary/SpreadsheetReader.php');
include('excelReaderLibrary/php-excel-reader/excel_reader.php');
?>
\ No newline at end of file
......@@ -40,16 +40,6 @@ function set_upload_editservice($path){
}
function set_upload_all_files($path){
$config = array();
$config['upload_path'] = $path;
$config['allowed_types'] = '*';
$config['overwrite'] = FALSE;
return $config;
}
function remove_html(&$item, $key)
{
$item = strip_tags($item);
......
<?php
class Customer_model extends CI_Model {
public function _consruct(){
parent::_construct();
}
function getCustomer($customer_data = array()){
$cond = (isset($customer_data['phone']) && !empty($customer_data['phone']))?
" AND phone LIKE '%".trim($customer_data['phone'])."'":"";
$cond .= (!empty($customer_data['customer_id']))?
" AND customer_id = '".trim($customer_data['customer_id'])."'":"";
$result = $this->db->query("SELECT * FROM customers WHERE status IN (0,1) $cond");
if(empty($result)){
return;
}
return (empty($customer_data))?$result->result():$result->row();
}
function createCustomer($customer_data = array()){
if(empty($customer_data))
return 0;
if(isset($customer_data['email']) && !empty($customer_data['email'])){
$emailChk = $this->db->get_where('customers',array('email'=>$customer_data['email'],'status !='=>'2'));
if(!empty($emailChk) && $emailChk->num_rows() > 0){
return 2;
}
}
if(isset($customer_data['phone']) && !empty($customer_data['phone'])){
$phoneChk = $this->db->get_where('customers',array('phone'=>$customer_data['phone'],'status !='=>'2'));
if(!empty($phoneChk) && $phoneChk->num_rows() > 0){
return 3;
}
}
$status = $this->db->insert('customers',$customer_data);
return ($status)?1:0;;
}
function updateCustomer($customer_id = '', $customer_data = array()){
if(empty($customer_id) || empty($customer_data))
return 0;
$emailChk = $this->db->get_where('customers',array('email'=>$customer_data['email'],
'customer_id !='=>$customer_id,
'status !='=>'2'));
if(!empty($emailChk) && $emailChk->num_rows() > 0){
return 2;
}
$phoneChk = $this->db->get_where('customers',array('phone'=>$customer_data['phone'],
'customer_id !='=>$customer_id,
'status !='=>'2'));
if(!empty($phoneChk) && $phoneChk->num_rows() > 0){
return 3;
}
$status = $this->db->update('customers',$customer_data,array('customer_id'=>$customer_id));
return ($status)?1:0;;
}
function changeStatus($customer_id = '', $status = '0'){
if(empty($customer_id)){
return 0;
}
$status = $this->db->update('customers',array('status'=>$status), array('customer_id'=>$customer_id));
return $status;
}
}
?>
\ No newline at end of file
......@@ -22,7 +22,6 @@ class Driver_model extends CI_Model {
}
function getDriver($driver_id = ''){
$cond = '';
$user_id = $this->session->userdata('id');
if($this->session->userdata('user_type') != 1){
$cond = " AND CMP.company_id = '$user_id'";
......
......@@ -42,24 +42,12 @@ class Ride_model extends CI_Model {
return ($status)?1:0;
}
function getRideData($ride_id = '',$company_id = '',$broker_id = '',$scheduled = '',$condArr = array()){
function getRideData($ride_id = '',$company_id = ''){
$cond = (!empty($ride_id))?" AND TD.transport_id = '$ride_id'":"";
$cond .= ($broker_id != '')?" AND TD.broker_id = '$broker_id'":"";
$cond .= (!empty($company_id))?" AND TD.company_id = '$company_id'":"";
if($scheduled != ''){
$cond .= " AND TD.is_scheduled = '$scheduled'";
}
if(!empty($condArr)){
$cond .= implode(' ', $condArr);
}
$sql = "SELECT TD.*,CONCAT(DV.first_name,' ',DV.last_name) AS assigned_driver_name,BK.broker_name,
AR.reason,VH.vehicle_id,VH.vehicle_type,TT.trip_type,TS.trip_status
$sql = "SELECT TD.*,BK.broker_name,AR.reason,VH.vehicle_id,VH.vehicle_type,TT.trip_type,TS.trip_status
FROM transport_details AS TD
LEFT JOIN brokers AS BK ON (TD.broker_id = BK.broker_id)
LEFT JOIN drivers AS DV ON (DV.driver_id = TD.assigned_driver)
LEFT JOIN vehicles AS VH ON (VH.vehicle_id = TD.vehicle_type)
LEFT JOIN trip_type AS TT ON (TT.trip_id = TD.trip_type)
LEFT JOIN trip_status AS TS ON (TS.trip_status_id = TD.trip_status)
......@@ -121,84 +109,5 @@ class Ride_model extends CI_Model {
return ($status)?1:0;
}
function changeSchuduleStatus($ride_id = '',$is_scheduled = '0'){
if(empty($ride_id)){
return;
}
$status = $this->db->update('transport_details',
array('is_scheduled'=>$is_scheduled),
array('transport_id'=>$ride_id));
if($is_scheduled == 0){
$this->deleteAssignedRider($ride_id);
}
return $status;
}
function deleteAssignedRider($ride_id = ''){
if(empty($ride_id)){
return;
}
$this->db->delete('ride_status',array('ride_id'=>$ride_id));
}
function autoAssignDriver($ride_id = '',$appointment_time = '', $pickupLoc = array()){
if(empty($ride_id) || empty($appointment_time) || empty($pickupLoc) || !isset($pickupLoc['lat']) || $pickupLoc['lat'] == '' || !isset($pickupLoc['lng']) || $pickupLoc['lng'] == ''){
return;
}
$time = date("G:i",$appointment_time);
$date = date("d-m-y",$appointment_time);
$endTime = date("G:i",strtotime($time) + 60 * 60);
$startTime = date("G:i",strtotime($time) - 60 * 60);
$endDateTime = strtotime($date.' '.$endTime);
$startDateTime = strtotime($date.' '.$startTime);
$sql = "SELECT GROUP_CONCAT(TD.assigned_driver) AS assigned_drivers
FROM transport_details AS TD
WHERE TD.driver_assign_status='0' AND TD.assigned_driver<>'0' AND TD.is_scheduled='1' AND
TD.appointment_time>$startDateTime AND TD.appointment_time<$endDateTime AND
TD.status IN (4,5,8)";
$prvDrivers = $this->db->query($sql);
if(empty($prvDrivers)){
return 0;
}
$driverCond = '';
if($prvDrivers->num_rows() > 0){
$prvDrivers = $prvDrivers->row_array();
$driverCond = (isset($prvDrivers['assigned_drivers']) && !empty($prvDrivers['assigned_drivers']))?
'AND DRV.driver_id NOT IN ('.$prvDrivers['assigned_drivers'].')':'';
}
$sql = "SELECT DRV.driver_id,3956*2*ASIN(SQRT(POWER(SIN((".$pickupLoc['lat']."-DRV.lat_driver)*
pi()/180/2),2)+COS(".$pickupLoc['lat']."*pi()/180)*COS(DRV.lat_driver*pi()/180)*
POWER(SIN((".$pickupLoc['lng']."-DRV.lng_driver)*pi()/180/2),2))) AS distance
FROM drivers AS DRV
WHERE DRV.status = 1 ".$driverCond."
HAVING distance < 25
ORDER BY distance
LIMIT 0,1";
$driverData = $this->db->query($sql);
if(empty($driverData)){
return 0;
}
if($driverData->num_rows() > 0){
$nearByDriver = $driverData->row_array();
$nearByDriver = $nearByDriver['driver_id'];
$status = $this->db->update('transport_details',
array('driver_assign_status'=>'0','assigned_driver'=>$nearByDriver,'status'=>'3'),
array('transport_id'=>$ride_id));
} else {
$status = $this->db->update('transport_details',
array('driver_assign_status'=>'1','status'=>'3'),
array('transport_id'=>$ride_id));
}
return $status;
}
}
?>
\ No newline at end of file
......@@ -28,7 +28,7 @@ class User_model extends CI_Model {
if(empty($user_id) || empty($user_type) || empty($user_data)){
return 0;
}
$emailChk = $this->db->get_where('admin_users',array('username'=>$user_data['email_id'],'id !='=>$user_id,'status !='=>'2'));
$emailChk = $this->db->get_where('admin_users',array('username'=>$user_data['email_id'],'id !'=>$user_id,'status !='=>'2'));
if(!empty($emailChk) && $emailChk->num_rows() > 0){
return 2;
}
......
<?php
$loc = '';
$mapLocData = array();
?>
<div class="content-wrapper" >
<!-- Content Header (Page header) -->
<section class="content-header">
......@@ -11,8 +7,8 @@
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-star-o" aria-hidden="true"></i>Home</a></li>
<li><?= $menu ?></li>
<li class="active"><?= $sub_menu ?></li>
<li>User</li>
<li class="active">View User</li>
</ol>
</section>
<!-- Main content -->
......@@ -28,12 +24,12 @@
<?php } ?>
</div>
<div class="col-xs-12">
<div class="box box-warning">
<div "class="col-12">
<div id="map-canvas" style="width: 100%; height: 300px;"></div>
</div>
<div class="box">
<div class="box-header">
<h3 class="box-title">View User Details</h3>
</div>
<div class="box-body">
<table id="driverTable" class="table table-bordered table-striped datatable ">
<table id="" class="table table-bordered table-striped datatable ">
<thead>
<tr>
<th class="hidden">ID</th>
......@@ -58,7 +54,8 @@
<td class="center"><?= $driver->company_name ?></th>
<td class="center"><?= ($driver->status == '1')?'Active':'Inactive'?></td>
<td class="center">
<a class="btn btn-sm btn-primary" id="viewDriver" driver_id="<?= encode_param($driver->driver_id) ?>">
<a class="btn btn-sm btn-primary"
href="<?= base_url('Driver/view/'.encode_param($driver->driver_id)) ?>">
<i class="fa fa-fw fa-edit"></i>View
</a>
<a class="btn btn-sm btn-danger"
......@@ -81,14 +78,7 @@
<?php } ?>
</td>
</tr>
<?php
$drvLatLng = (!empty($driver->lat_driver) && !empty($driver->lng_driver))?
$driver->lat_driver.','.$driver->lng_driver:'';
$mapLocData[]=array('DisplayText'=>$driver->first_name.' '.$driver->last_name,
'MarkerId'=>base_url('assets/images/mapCarIconPref.png'),
'LatitudeLongitude'=>$drvLatLng,'driver_id'=>encode_param($driver->driver_id));
}
<?php }
}?>
</tbody>
</table>
......@@ -96,105 +86,3 @@
</div>
</section>
</div>
<script type="text/javascript">
var map, geocoder, marker, people = new Array(), latlng, infowindow;
jQuery(document).ready(function() {
ViewCustInGoogleMap();
});
function ViewCustInGoogleMap() {
var mapOptions = {
center: new google.maps.LatLng(<?= $drvLatLng ?>),
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var data = '<?= json_encode($mapLocData) ?>';
people = JSON.parse(data);
for (var i = 0; i < people.length; i++) {
setMarker(people[i]);
}
}
function setMarker(people) {
geocoder = new google.maps.Geocoder();
infowindow = new google.maps.InfoWindow();
if(people["LatitudeLongitude"] != '') {
var latlngStr = people["LatitudeLongitude"].split(",");
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
latlng = new google.maps.LatLng(lat, lng);
marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: false,
html: people["DisplayText"],
icon: people["MarkerId"]
});
google.maps.event.addListener(marker, 'click', function(event) {
infowindow.setContent(this.html);
infowindow.setPosition(event.latLng);
infowindow.open(map, this);
markCalBak(people["driver_id"]);
});
}
}
jQuery('[id="viewDriver"]').on('click',function() {
markCalBak(jQuery(this).attr('driver_id'));
});
function markCalBak(driver_id){
if(driver_id=='' || driver_id==undefined || driver_id=='undefined' || driver_id==null || driver_id=='null'){
return true;
}
modalTrigger('Ride Details','');
addModalLoader();
jQuery.ajax({
url : base_url+"Driver/getDriverData",
type : 'POST',
data : {'driver_id':driver_id},
success: function(resp){
if(resp == '' || resp == undefined || resp == 'undefined' || resp == null || resp == 'null'){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
return false;
}
var resp_data = jQuery.parseJSON(resp);
if(resp_data['status'] == '0'){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
return false;
}
var driver_data = resp_data['driver_data'];
var html = ' <div class="col-xs-12"><div class="col-md-2"> <div class="form-group has-feedback"> <img id="driverProfileImg" src="'+base_url+driver_data['profile_image']+'" height="100" width="100" /> </div> </div> <div class="col-md-6"> <div class="form-group has-feedback"> <span style="padding-right: 52px;">Name </span> : <label style="padding-left: 10px;" for="exampleInputEmail1">'+driver_data['first_name']+' '+driver_data['last_name']+'</label> </div> <div class="form-group has-feedback"> <span style="padding-right: 38px;">Email ID </span> : <label style="padding-left: 10px;" for="exampleInputEmail1"> '+driver_data['email_id']+'</label> </div> <div class="form-group has-feedback"> <span style="padding-right: 49px;">Phone </span> : <label style="padding-left: 10px;" for="exampleInputEmail1">'+driver_data['email_id']+' </label> </div> <div class="form-group has-feedback"> <span style="padding-right: 31px;">Company </span> : <label style="padding-left: 10px;" for="exampleInputEmail1"> '+driver_data['company_name']+'</label> </div> <div class="form-group has-feedback"> <span style="padding-right: 45px;">Vechile </span> : <label style="padding-left: 10px;" for="exampleInputEmail1"> '+driver_data['vehicle_type']+' </label> </div> </div> <div class="col-md-4"> <div class="form-group has-feedback"> <div class="col-md-12" style="height: 200px;"> <img id="driverLicenceImg" src="'+base_url+driver_data['licence']+'" height="100%" /> </div> </div> </div> </div>';
remModalLoader();
jQuery('[id="modal_content"]').html(html);
jQuery('[id="driverLicenceImg"]').error(function() {
jQuery('[id="driverLicenceImg"]').attr('src',base_url+'assets/images/no_image.png');
});
jQuery('[id="driverProfileImg"]').error(function() {
jQuery('[id="driverProfileImg"]').attr('src',base_url+'assets/images/user_avatar.jpg');
});
},
fail: function(xhr, textStatus, errorThrown){
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
},
error: function (ajaxContext) {
remModalLoader();
jQuery('[id="modal_content"]').html('Something went wrong, please try again later...!');
}
});
}
</script>
\ No newline at end of file
......@@ -37,7 +37,7 @@
<img src="<?= base_url($driver_data->profile_image) ?>" onerror="this.src='<?=base_url("assets/images/user_avatar.jpg")?>';" height="100" width="100" />
</div>
</div>
<div class="col-md-4">
<div class="col-md-10">
<div class="form-group has-feedback">
<span style="padding-right: 52px;">Name </span> :
<label style="padding-left: 10px;" for="exampleInputEmail1">
......@@ -69,18 +69,18 @@
</label>
</div>
</div>
<div class="col-md-5">
</div>
<div class="col-md-12">
<div class="form-group has-feedback">
<div class="col-md-5" >
<br><br>
<div class="col-md-2" >
<span style="padding-right: 40px;">Licence Proof :</span>
</div>
<div class="col-md-7" style="height: 200px;">
<img id="licence_img" src="<?= base_url($driver_data->licence) ?>" onerror="this.src='<?=base_url("assets/images/no_image.png")?>';" height="100%" />
<div class="col-md-10 relative" >
<img id="licence_img" src="<?= base_url($driver_data->licence) ?>" onerror="this.src='<?=base_url("assets/images/no_image.png")?>';" height="800" width="800" />
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
......@@ -269,8 +269,23 @@
</section>
</div>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('[name^="TDLS.transport_id"],[name^="TDLS.medical_no"],[name^="TDLS.patient_name"],[name^="TDLS.age"],[name^="TDLS.phone"],[name^="APRES.reason"],[name^="TDLS.appointment_time"]').prop("checked", true).parent().closest('div').addClass('disable-block');
});
</script>
\ No newline at end of file
<!-- REPORT LIST VIEW MODAL -->
<div class="modal fade" id="report_list_modal" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body col-md-12" id="report_list_content" style="border-bottom:1px solid #e5e5e5;
">
<!-- REPORT LIST VIEW CONTENT -->
</div>
<div class="modal-footer">
<div>&nbsp;</div>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
......@@ -218,7 +218,7 @@
<div class="box-header with-border">
<h3 class="box-title">Upload Ride</h3>
</div>
<form role="form" action="<?=base_url('Ride/excelMapping')?>" method="post" class="validate" data-parsley-validate="" enctype="multipart/form-data">
<form role="form" action="<?=base_url('Ride/import')?>" method="post" class="validate" data-parsley-validate="" enctype="multipart/form-data">
<br>
<div class="box-body">
<div class="col-md-12">
......@@ -231,9 +231,7 @@
<?php
if(!empty($company_data)){
foreach ($company_data as $company) {
echo '<option value="'.$company->company_id.'">'.
$company->company_name.
'</option>';
echo '<option value="'.$company->company_id.'">'.$company->company_name.'</option>';
}
}
?>
......@@ -259,17 +257,16 @@
</div>
</div>
<div class="col-md-4">
<div class="form-group has-feedback">
<label>File to be Uploaded</label>
<input name="import_file" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
class="required" />
</div>
<div class="form-group has-feedback">
<label>CSV File</label>
<input name="csv_file" type="file" accept=".csv" class="required" />
</div>
</div>
</div>
<div class="col-md-12">
<div class="box-footer">
<button type="submit" class="btn btn-primary">Upload</button>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary">Upload</button>
</div>
</div>
</div>
<br>
......
......@@ -28,7 +28,7 @@
<?php } ?>
</div>
<div class="col-xs-12">
<div class="box box-warning">
<div class="box">
<div class="box-header">
<h3 class="box-title">Select Driver</h3>
</div>
......@@ -83,13 +83,10 @@
</td>
</tr>
<?php
$drvLatLng = (!empty($driver['lat_driver']) && !empty($driver['lng_driver']))?
$driver['lat_driver'].','.$driver['lng_driver']:'';
$markIcon = ($prefDriver == $driver['driver_id'])?'mapCarIconPref':'mapCarIcon';
$mapLocData[] = array('DisplayText'=>$driver['first_name'].' '.$driver['last_name'],
$mapLocData[]=array('DisplayText'=>$driver['first_name'].' '.$driver['last_name'],
'MarkerId'=>base_url('assets/images/'.$markIcon.'.png'),
'LatitudeLongitude'=>$drvLatLng);
'LatitudeLongitude'=>$driver['lat_driver'].','.$driver['lng_driver']);
}
}?>
</tbody>
......@@ -102,50 +99,80 @@
</section>
</div>
<script type="text/javascript">
var map, geocoder, marker, people = new Array(), latlng, infowindow;
var map;
var geocoder;
var marker;
var people = new Array();
var latlng;
var infowindow;
jQuery(document).ready(function() {
ViewCustInGoogleMap();
$(document).ready(function() {
ViewCustInGoogleMap();
});
function ViewCustInGoogleMap() {
var mapOptions = {
center: new google.maps.LatLng(<?= $loc ?>),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var data = '<?= json_encode($mapLocData) ?>';
people = JSON.parse(data);
var mapOptions = {
center: new google.maps.LatLng(<?= $loc ?>),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var data = '<?= json_encode($mapLocData) ?>';
people = JSON.parse(data);
for (var i = 0; i < people.length; i++) {
setMarker(people[i]);
}
for (var i = 0; i < people.length; i++) {
setMarker(people[i]);
}
}
function setMarker(people) {
geocoder = new google.maps.Geocoder();
infowindow = new google.maps.InfoWindow();
if(people["LatitudeLongitude"] != '') {
var latlngStr = people["LatitudeLongitude"].split(",");
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
latlng = new google.maps.LatLng(lat, lng);
marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: false,
html: people["DisplayText"],
icon: people["MarkerId"]
});
google.maps.event.addListener(marker, 'click', function(event) {
infowindow.setContent(this.html);
infowindow.setPosition(event.latLng);
infowindow.open(map, this);
});
}
geocoder = new google.maps.Geocoder();
infowindow = new google.maps.InfoWindow();
if ((people["LatitudeLongitude"] == null) || (people["LatitudeLongitude"] == 'null') || (people["LatitudeLongitude"] == '')) {
geocoder.geocode({ 'address': people["Address"] }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latlng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: false,
html: people["DisplayText"],
icon: people["MarkerId"]
});
//marker.setPosition(latlng);
//map.setCenter(latlng);
google.maps.event.addListener(marker, 'click', function(event) {
infowindow.setContent(this.html);
infowindow.setPosition(event.latLng);
infowindow.open(map, this);
});
}
});
}
else {
var latlngStr = people["LatitudeLongitude"].split(",");
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
latlng = new google.maps.LatLng(lat, lng);
marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: false, // cant drag it
html: people["DisplayText"], // Content display on marker click
icon: people["MarkerId"] // Give ur own image
});
//marker.setPosition(latlng);
//map.setCenter(latlng);
google.maps.event.addListener(marker, 'click', function(event) {
infowindow.setContent(this.html);
infowindow.setPosition(event.latLng);
infowindow.open(map, this);
});
}
}
</script>
\ No newline at end of file
<?php
$headerArr = Array(0=>'Medicaid_Number',1=>'Members_Last_Name',2=>'Members_First_Name',
3=>'Members_Date_of_Birth',4=>'Members_Age',5=>'Members_Phone_Number',
6=>'Members_Alt_Phone',7=>'Trip_Number',8=>'Appointment_Date',
9=>'Appointment_Day_of_Week',10=>'Appointment_Time',11=>'Trip_Reason_Code',
12=>'Trip_Status',13=>'Vehicle_Type',14=>'Trip_Type',15=>'Wheelchair_Flag',
16=>'Crutches_\/_Walker_\/_Cane_Flag',17=>'Number_of_Car_Seats_Required',
18=>'Pregnant_Flag',19=>'Number_of_Additional_Passengers',
20=>'Additional_Passengers_With_Appointments',21=>'Trip_Mileage',22=>'Trip_Cost',
23=>'Pickup_Address',24=>'Pickup_City',25=>'Pickup_State',26=>'Pickup_Zip_Code',
27=>'Delivery_Name',28=>'Delivery_Address',29=>'Delivery_City',30=>'Delivery_State',
31=>'Delivery_Zip_Code',32=>'Delivery_Phone_Number',33=>'Special_Needs',
34=>'Inst_\/_Directions',35=>'Return_Time',36=>'Attendant_Flag',
37=>'Trip_Bid_Status',38=>'Date_Trip_Bid_Status_Was_Changed',
39=>'Confirmation_Number',40=>'Copay',41=>'Trip_Status_Date');
$reqFields = array(0,2,1,4,5,7,23,28,22,14,11,8,10,11,12,13);
$headerArr = array_replace(array_flip($reqFields),$headerArr);
?>
<div class="content-wrapper">
<section class="content-header">
<h1>
<?= $page_title ?>
<small><?= $page_desc ?></small>
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-star-o" aria-hidden="true"></i>Home</a></li>
<li><?= $menu ?></li>
<li class="active"><?= $sub_menu ?></li>
</ol>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<?php if($this->session->flashdata('message')) {
$flashdata = $this->session->flashdata('message'); ?>
<div class="alert alert-<?= $flashdata['class'] ?>">
<button class="close" data-dismiss="alert" type="button">×</button>
<?= $flashdata['message'] ?>
</div>
<?php } ?>
</div>
<div class="col-md-12">
<div class="box box-warning">
<div class="box-header with-border">
<div class="col-md-6">
<h3 class="box-title">Excel Mapping</h3>
</div>
</div>
<div class="box-body">
<div class="col-md-7">
<div style="overflow:scroll;height:400px;">
<table id="mappedHeaders" class="border-cls" style="width:98%;">
<?php
foreach($headerArr AS $id => $header){
$reqDisp = '';
$requiredFlag = 'required="no"';
if(in_array($id,$reqFields)){
$reqDisp = '<i class="fa fa-asterisk text-danger" style="font-size:8px;"></i>';
$requiredFlag = 'required="yes"';
}
echo '<tr class="border-cls tr-cls">
<td class="headtag-td">
'.str_replace('_',' ',$header).' '.$reqDisp.'
</td>
<td class="headtag-td">
<div type="child" '.$requiredFlag.' class="drag-box" id="order_'.$id.'" ondrop="dropElement(event)"
ondragover="allowDropElement(event)" headOrder="'.$id.'"></div>
</td>
</tr>';
}
?>
</table>
</div>
</div>
<div class="col-md-5">
<div type="parent" class="header-tag-box" ondrop="dropElement(event)" ondragover="allowDropElement(event)">
<?php
if(!empty($headerArr)){
foreach ($headerArr AS $headID => $heading) { ?>
<div id="tempHead_<?= $headID ?>" class="header-tag" draggable="true"
ondragstart="dragElement(event)" tmporder="<?= $headID ?>">
<?= str_replace(array('/','_'),array('',' '),$heading) ?>
</div>
<?php }
}
?>
</div>
</div>
<div class="col-md-12 btn-mapping">
<button id="upload_excell" type="button" class="btn btn-primary" dmclick="0">Import Excell</button>
</div>
</div>
</div>
</div>
</div>
</section>
<input type="hidden" name="fileType" value="<?= $fileType ?>">
<input type="hidden" name="broker_id" value="<?= $broker_id ?>">
<input type="hidden" name="company_id" value="<?= $company_id ?>">
<input type="hidden" name="import_file" value="<?= $import_file ?>">
</div>
\ No newline at end of file
<div class="content-wrapper">
<section class="content-header">
<h1>
<?= $page_title ?>
<small><?= $page_desc ?></small>
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-star-o" aria-hidden="true"></i>Home</a></li>
<li><?= $menu ?></li>
<li class="active"><?= $sub_menu ?></li>
</ol>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<?php if($this->session->flashdata('message')) {
$flashdata = $this->session->flashdata('message'); ?>
<div class="alert alert-<?= $flashdata['class'] ?>">
<button class="close" data-dismiss="alert" type="button">×</button>
<?= $flashdata['message'] ?>
</div>
<?php } ?>
</div>
<div class="col-md-12">
<div class="box box-warning">
<div class="box-header with-border">
<div class="col-md-6">
<h3 class="box-title">Scheduled Rides</h3>
</div>
</div>
<div class="box-body">
<form action="<?= base_url('Ride/scheduled_rides') ?>" method="post" class="validate" data-parsley-validate="" enctype="multipart/form-data">
<div class="col-md-12">
<div class="form-group has-feedback">
<label>Appointment Date</label>
<div class="input-group date" data-provide="datepicker">
<input id="datepicker" type="text" class="form-control required" data-parsley-trigger="change" data-parsley-minlength="2" required="" name="search_date" placeholder="Search Date" autocomplete="off">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="col-md-2" style="float:right;padding:initial;">
<a class="btn btn-sm btn-primary" style="width: 150px;" href="<?= base_url('Ride/scheduled_rides') ?>">View All</a>
</div>
<div class="col-md-2" style="float:right;padding:initial;">
<button class="btn btn-sm btn-primary" style="width: 150px;" type="submit">Search</button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-12">
<div class="box box-warning">
<div class="box-body">
<table class="table table-bordered table-striped datatable ">
<thead>
<tr>
<th class="hidden">ID</th>
<th width="100px">Scheduled Time</th>
<th width="100px">Arrival Time</th>
<th width="100px">Coustomer Name</th>
<th width="100px">Mobility</th>
<th width="100px">Pick Up Address</th>
<th width="100px">Drop Off Address</th>
<th width="100px">Rider Status</th>
<th width="40px">View</th>
</tr>
</thead>
<tbody>
<?php
$report_data = array();
if(!empty($ride_data)){
foreach($ride_data as $ride) {
$json_ride = json_decode($ride->data,true);
if(empty($json_ride)){
continue;
} ?>
<tr>
<th class="hidden"><?= $ride->transport_id ?></th>
<th class="center">
<?= date("d-m-y G:i",$ride->appointment_time) ?>
</th>
<th class="center"></th>
<th class="center"><?= $ride->patient_name ?></th>
<th class="center"></th>
<th class="center"><?= $ride->pickup_location ?></th>
<th class="center"><?= $ride->drop_location ?></th>
<th class="center">
<?php
if(!empty($ride->assigned_driver) && $ride->driver_assign_status == '1'){
echo 'Driver Cancelled & Auto Assigned to Dispatcher';
} else if (empty($ride->assigned_driver) && $ride->driver_assign_status == '1'){
echo 'No Driver Found, ride assigned to dispatcher';
} else if (!empty($ride->assigned_driver) && $ride->driver_assign_status == '0' && !empty($ride->assigned_driver_name) && $ride->status == 3){
echo 'Waiting for driver response : Driver Name '.$ride->assigned_driver_name;
} else if (!empty($ride->assigned_driver) && $ride->driver_assign_status == '0' && !empty($ride->assigned_driver_name) && $ride->status == 4){
echo 'Driver Accepted : Driver Name '.$ride->assigned_driver_name;
}
?>
</th>
<th class="center">
<a id="viewRideDetails" key="<?= $ride->transport_id ?>" class="cpoint">
<i class="fa fa-fw fa-eye"></i>
</a>
</th>
</tr>
<?php
$report_data[$ride->transport_id] = $json_ride;
}
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
</div>
<script type="text/javascript">
report_data = <?= json_encode($report_data); ?>;
</script>
\ No newline at end of file
<?php
$headerArr = array("Medicaid_Number","Members_Last_Name","Members_First_Name","Members_Date_of_Birth","Members_Age","Members_Phone_Number","Members_Alt_Phone","Trip_Number","Appointment_Date","Appointment_Day_of_Week","Appointment_Time","Trip_Reason_Code","Trip_Status","Vehicle_Type","Trip_Type","Wheelchair_Flag","Crutches_/_Walker_/_Cane_Flag","Number_of_Car_Seats_Required","Pregnant_Flag","Number_of_Additional_Passengers","Additional_Passengers_With_Appointments","Trip_Mileage","Trip_Cost","Pickup_Address","Pickup_City","Pickup_State","Pickup_Zip_Code","Delivery_Name","Delivery_Address","Delivery_City","Delivery_State","Delivery_Zip_Code","Delivery_Phone_Number","Special_Needs","Inst_/_Directions","Return_Time","Attendant_Flag","Trip_Bid_Status","Date_Trip_Bid_Status_Was_Changed","Confirmation_Number","Copay","Trip_Status_Date");
?>
<div class="content-wrapper" >
<!-- Content Header (Page header) -->
<section class="content-header">
......@@ -26,126 +23,78 @@
</div>
<?php } ?>
</div>
<div class="col-md-12">
<div class="box box-warning">
<div class="box-header with-border">
<h3 class="box-title">Ride Management</h3>
</div>
<div class="box-body">
<form role="form" id="getBrokerRides" action="<?=base_url('Ride/view_rides')?>" method="post" class="validate" data-parsley-validate="" enctype="multipart/form-data">
<div class="col-md-12">
<div class="form-group">
<label>Select Broker</label>
<select name="broker_id" class="form-control" onchange="getBrokerRides()">
<option selected value="">All Rides</option>
<?php
if(!empty($broker_data)){
foreach ($broker_data as $broker) {
$chkFlg = ($broker_id == $broker->broker_id)?'selected':'';
echo '<option value="'.$broker->broker_id.'" '.$chkFlg.'>
'.$broker->broker_name.
'</option>';
}
}
?>
<option value="0" <?= ($broker_id != '' && $broker_id == 0)?'selected':'' ?>>Phone Bookings</option>
</select>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-xs-12">
<div class="box">
<div class="box-body">
<table class="table table-bordered table-striped datatable ">
<thead>
<tr>
<th class="hidden">ID</th>
<th width="100px"></th>
<?php
foreach ($headerArr AS $head) {
echo '<th width="100%;">'.str_replace('_',' ',$head).'</th> ';
}
?>
<th width="150px;">Data Source</th>
</tr>
</thead>
<tbody>
<?php
$ride_ids = array();
$report_data = array();
if(!empty($ride_data)){
foreach($ride_data as $ride) {
$ride_ids[] = $ride->transport_id;
$json_ride = json_decode($ride->data,true);
if(empty($json_ride)){
continue;
}
?>
<tr>
<th class="hidden"><?= $ride->transport_id ?></th>
<th class="center">
<?php if($this->session->userdata['user_type'] != 1){
$style = 'style="color:red;";';
if($ride->is_scheduled == 1){
$style = 'style="color:green;";';
} ?>
<a id="markSchedule_<?= $ride->transport_id ?>" transport_id="<?= $ride->transport_id ?>"
is_scheduled="<?= $ride->is_scheduled ?>" class="cpoint">
<i class="fa fa-fw fa-check" <?=$style?> ></i>
</a>
<?php } ?>
<a id="viewRideDetails" key="<?= $ride->transport_id ?>" class="cpoint">
<i class="fa fa-fw fa-eye"></i>
</a>
<a href="<?= base_url("Ride/changeStatus/".encode_param($ride->transport_id))."/2" ?>"
onClick="return doconfirm()"><i class="fa fa-fw fa-trash" style="color:#dd4b39;"></i></a>
</th>
<?php
$json_ride = array_merge(array_flip($headerArr),$json_ride);
foreach($json_ride AS $key => $data){
if(!in_array($key,$headerArr)){
continue;
}
switch ($key){
case 'Wheelchair_Flag': $json_ride[$key] = ($data == 1)?'YES':'NO'; break;
case 'Attendant_Flag': $json_ride[$key] = ($data == 1)?'YES':'NO'; break;
case 'Pregnant_Flag': $json_ride[$key] = ($data == 1)?'YES':'NO'; break;
case 'Members_Date_of_Birth': $json_ride[$key] = ($data == 1)?'YES':'NO'; break;
case 'Crutches_/_Walker_/_Cane_Flag': $json_ride[$key] = ($data == 1)?'YES':'NO'; break;
case 'Trip_Reason_Code': $json_ride[$key] = $ride->reason; break;
case 'Vehicle_Type': $json_ride[$key] = $ride->vehicle_type; break;
case 'Trip_Type': $json_ride[$key] = $ride->trip_type; break;
case 'Trip_Status': $json_ride[$key] = $ride->trip_status; break;
}
echo '<td class="center">'.$data.'</td>';
$report_data[$ride->transport_id] = $json_ride;
} ?>
<th class="center"><?= (!empty($ride->broker_name)?$ride->broker_name:'Phone Booking') ?></th>
</tr>
<?php }
}?>
</tbody>
</table>
<?php if($this->session->userdata['user_type'] != 1){ ?>
<div class="col-md-1" style="float:right;padding:initial;">
<a id="scheduleAll" class="btn btn-sm btn-primary">
Schedule All
</a>
</div>
<?php } ?>
</div>
<div class="box-header">
<h3 class="box-title">View User Details</h3>
</div>
</div>
</div>
</section>
<div class="box-body">
<table id="" class="table table-bordered table-striped datatable ">
<thead>
<tr>
<th class="hidden">ID</th>
<th width="150px;">Patient Name</th>
<th width="50px;">Age</th>
<th width="100px;">Phone</th>
<th width="150px;">Appointment Date</th>
<th width="150px;">Status</th>
<th width="150px;">Data Source</th>
<th width="320px;">Action</th>
</tr>
</thead>
<tbody>
<?php
if(!empty($ride_data)){
foreach($ride_data as $ride) {
?>
<tr>
<th class="hidden"><?= $ride->transport_id ?></th>
<td class="center"><?= $ride->patient_name ?></th>
<td class="center"><?= $ride->age ?></th>
<td class="center"><?= $ride->phone ?></th>
<td class="center"><?= date('d-M-Y G:i',$ride->appointment_time) ?></th>
<td class="center">
<?php
if(strtotime(date('d-M-Y G:i')) > $ride->appointment_time && ($ride->status == 1 || $ride->status == 0)){
echo 'Ride Expired';
}else{
switch ($ride->status){
case 0: echo 'Inactive';break;
case 1: echo 'Yet to assign Driver';break;
case 3: echo 'Waiting For Driver Approval';break;
case 4: echo 'Driver Accepted';break;
case 5: echo 'Processing';break;
case 6: echo 'Ride Completed';break;
case 7: echo 'Driver Canceled';break;
case 8: echo 'Driver Manually Assigned';break;
}
}
?>
</td>
<td class="center"><?= (!empty($ride->broker_name)?$ride->broker_name:'Phone Booking') ?></th>
<td class="center">
<a class="btn btn-sm btn-primary"
href="<?= base_url('Ride/view/'.encode_param($ride->transport_id)) ?>">
<i class="fa fa-fw fa-edit"></i>View
</a>
<a class="btn btn-sm btn-danger"
href="<?= base_url("Ride/changeStatus/".encode_param($ride->transport_id))."/2" ?>"
onClick="return doconfirm()">
<i class="fa fa-fw fa-trash"></i>Delete
</a>
<?php if($this->session->userdata['user_type'] != 1 && ($ride->status == 1 || $ride->status == 7) && strtotime(date('d-M-Y G:i')) < $ride->appointment_time){?>
<a class="btn btn-sm btn-primary"
href="<?= base_url('Ride/assign_driver/'.encode_param($ride->transport_id)) ?>">
<i class="fa fa-fw fa-edit"></i>Assign Driver
</a>
<?php } ?>
</td>
</tr>
<?php }
}?>
</tbody>
</table>
</div>
<script type="text/javascript">
ride_ids = <?= json_encode($ride_ids); ?>;
report_data = <?= json_encode($report_data); ?>;
</script>
</div>
</section>
</div>
\ No newline at end of file
<div class="content-wrapper">
<section class="content-header">
<h1>
<?= $page_title ?>
<small><?= $page_desc ?></small>
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-star-o" aria-hidden="true"></i>Home</a></li>
<li><?= $menu ?></li>
<li class="active"><?= $sub_menu ?></li>
</ol>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<?php if($this->session->flashdata('message')) {
$flashdata = $this->session->flashdata('message'); ?>
<div class="alert alert-<?= $flashdata['class'] ?>">
<button class="close" data-dismiss="alert" type="button">×</button>
<?= $flashdata['message'] ?>
</div>
<?php } ?>
</div>
<div class="col-md-12">
<div class="box box-warning">
<div class="box-header with-border">
<h3 class="box-title">Edit Driver Details</h3>
</div>
<form method="post" class="validate" role="form" action="<?= base_url().'Settings/change_settings'?>" enctype="multipart/form-data" data-parsley-validate="">
<div class="box-body">
<div class="row">
<div class="form-group col-xs-4">
<label>Site Title</label>
<input type="text" name="title" class="form-control required" placeholder="Enter Site Title" value="<?= $data['title'] ?>">
</div>
<div class="form-group col-xs-3">
<label>Title Short</label>
<input type="text" name="title_short" class="form-control required" placeholder="Enter Site Title" value="<?= $data['title_short'] ?>">
</div>
<div class="form-group col-xs-5">
<label>Site Logo</label>
<div class="col-md-12">
<div class="col-md-3">
<img id="site_logo" src="<?= base_url($data['site_logo']) ?>" onerror="this.src='<?=base_url("assets/images/no_image.png")?>';" height="75" width="75">
</div>
<div class="col-md-9" style="padding-top: 25px;">
<input name="site_logo" type="file" accept="image/*" onchange="setImg(this,'site_logo');" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group col-xs-4">
<label>Country Code</label>
<input type="text" name="country_flag" class="form-control required" placeholder="Enter SMTP Username" value="<?= $data['country_flag'] ?>">
</div>
<div class="form-group col-xs-3">
<label>Currency</label>
<input type="text" name="currency" class="form-control required" placeholder="Enter SMTP Password" value="<?= $data['currency'] ?>">
</div>
<div class="form-group col-xs-5">
<label>Favicon Icon</label>
<div class="col-md-12">
<div class="col-md-3">
<img id="fav_icon_image" src="<?= base_url($data['fav_icon']) ?>" onerror="this.src='<?=base_url("assets/images/no_image.png")?>';" height="75" width="75">
</div>
<div class="col-md-9" style="padding-top: 25px;">
<input name="fav_icon" type="file" accept="image/*" onchange="setImg(this,'fav_icon_image');" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group col-xs-4">
<label>SMTP Username</label>
<input type="text" name="smtp_username" class="form-control required" placeholder="Enter SMTP Username" value="<?= $data['smtp_username'] ?>">
</div>
<div class="form-group col-xs-3">
<label>SMTP Password</label>
<input type="text" name="smtp_password" class="form-control required" placeholder="Enter SMTP Password" value="<?= $data['smtp_password'] ?>">
</div>
<div class="form-group col-xs-4">
<label>Google API Key</label>
<input type="text" name="google_api_key" class="form-control required" placeholder="Enter Google API" value="<?= $data['google_api_key'] ?>">
</div>
</div>
</div>
<div class="box-footer" style="padding-left:46%">
<button type="submit" class="btn btn-info">Update</button>
</div>
</form>
</div>
</section>
</div>
\ No newline at end of file
......@@ -2,7 +2,7 @@
base_url = "<?php echo base_url(); ?>";
country_flag = '<?= $this->session->userdata['settings']['country_flag'] ?>';
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=<?= $this->session->userdata['settings']['google_api_key'] ?>&libraries=places"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC9JX3BZZfx2S6GQieC_PqjuJdUbZ7_wyM&libraries=places"></script>
<script src="<?php echo base_url(); ?>assets/js/bootstrap.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/pace.js"></script>
<script src="<?php echo base_url(); ?>assets/js/select2.full.min.js"></script>
......@@ -12,46 +12,37 @@
<script src="<?php echo base_url(); ?>assets/js/app.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/custom-script.js"></script>
<script src="<?php echo base_url();?>assets/js/parsley.min.js"></script>
<script src="<?php echo base_url();?>assets/js/nemt_custom.js?<?= time() ?>"></script>
<script src="<?php echo base_url();?>assets/js/nemt_custom.js"></script>
<script src="https://cdn.ckeditor.com/4.5.7/standard/ckeditor.js"></script>
<script src="<?php echo base_url();?>assets/js/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="<?= base_url('assets/js/clockpicker.js') ?>"></script>
<script>
jQuery('.clockpicker').clockpicker();
$(function () {
$('.datatable').DataTable({
"ordering" : $(this).data("ordering"),
"order": [[ 0, "asc" ]]
});
});
function doconfirm(){
function doconfirm()
{
job=confirm("Are you sure to delete permanently?");
if(job!=true)
return false;
}
<?php
$ci = & get_instance();
$controllerName = $ci->uri->segment(1);
$actionName = $ci->uri->segment(2);
$page = $controllerName . '-' . $actionName;
jQuery('.clockpicker').clockpicker();
</script>
switch ($page) {
case 'Ride-view_rides': ?>
jQuery(function () {
jQuery('.datatable').DataTable({
scrollY: "300px",
scrollX: true,
scrollCollapse: true,
paging: false,
fixedColumns: {
heightMatch: 'none'
}
});
});
<?php break;
default : ?>
jQuery(function () {
jQuery('.datatable').DataTable({
"ordering" : jQuery(this).data("ordering"),
"order": [[ 0, "asc" ]]
});
});
<?php } ?>
</script>
\ No newline at end of file
<?php
$ci = & get_instance();
$controllerName = $ci->uri->segment(1);
$actionName = $ci->uri->segment(2);
$page = $controllerName . '-' . $actionName;
switch ($page) {
case 'Ride-import_ride':
?><?php
break;
}
?>
\ No newline at end of file
<!-- POP-UP VIEW MODAL END -->
<div class="modal fade" id="popup_modal" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title" id="modal_header"></h4>
</div>
<div class="modal-body col-md-12" id="modal_content" style="border-bottom:1px solid #e5e5e5;">
<!-- POP-UP VIEW MODAL CONTENT -->
</div>
<div class="modal-footer">
<div>&nbsp;</div>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- POP-UP VIEW MODAL END -->
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 1.0
</div>
<strong>Copyright &copy; 2015-2016 <a href="#">Techware Solution</a>.</strong> All rights reserved.
</footer>
\ No newline at end of file
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 1.0
</div>
<strong>Copyright &copy; 2015-2016 <a href="#">Techware Solution</a>.</strong> All rights reserved.
</footer>
......@@ -3,9 +3,7 @@
<a href="<?php echo base_url(); ?>" class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<!-- <span class="logo-mini"><b>B S</b></span>-->
<span class="logo-mini">
<img id="fav_icon" src="<?= base_url($this->session->userdata['settings']['site_logo']) ?>" onerror="this.src='<?=base_url("assets/images/no_image.png")?>';" height="50" width="50" />
</span>
<span class="logo-mini"><b><?=$this->session->userdata['settings']['title_short']?></b></span>
<!-- logo for regular state and mobile devices -->
<!-- <span class="logo-lg"><b>Bus Solution</b></span>-->
<span class="hidden-xs"><?=$this->session->userdata['settings']['title_short']?></span>
......
......@@ -2,7 +2,6 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title><?=$this->session->userdata['settings']['title_short']?></title>
<link href="<?= base_url($this->session->userdata['settings']['fav_icon']) ?>" type="image/x-icon" />
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/bootstrap.min.css">
......@@ -12,16 +11,12 @@
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/dataTables.bootstrap.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/AdminLTE.min.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/pace.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/<?= $this->config->item("theme_color") ?>.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/custom-style.css?<?= time() ?>">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/<?php echo $this->config->item("theme_color"); ?>.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/custom-style.css">
<link href="<?php echo base_url();?>assets/css/parsley/parsley.css" rel="stylesheet">
<link href="<?php echo base_url();?>assets/css/bootstrap-datepicker3.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="<?= base_url('assets/css/clockpicker.css') ?>">
<script src="<?php echo base_url(); ?>assets/js/jQuery-2.1.4.min.js"></script>
<script type="text/javascript">
report_data = ride_ids = [];
</script>
</head>
......@@ -40,32 +40,10 @@
</li>
</ul>
</li>
<?php if($this->session->userdata['user_type'] == 1){ ?>
<li class="treeview">
<a href="#">
<i class="fa fa-bars" aria-hidden="true"></i>
<span>Customer Management</span>
<i class="fa fa-angle-left pull-right"></i>
</a>
<ul class="treeview-menu">
<li>
<a href="<?= base_url('Customer/addCustomerUser') ?>">
<i class="fa fa-circle-o text-aqua"></i>
Add Customer
</a>
</li>
<li>
<a href="<?= base_url('Customer/listCustomerUsers') ?>">
<i class="fa fa-circle-o text-aqua"></i>
View Customer
</a>
</li>
</ul>
</li>
<li class="treeview">
<a href="#">
<i class="fa fa-bars" aria-hidden="true"></i>
<span>Company Management</span>
<i class="fa fa-angle-left pull-right"></i>
</a>
......@@ -147,25 +125,17 @@
</a>
<ul class="treeview-menu">
<li>
<a href="<?= base_url('Ride/view_rides') ?>">
<a href="<?= base_url('Ride/import_ride') ?>">
<i class="fa fa-circle-o text-aqua"></i>
View Rides
Import Rides
</a>
</li>
<li>
<a href="<?= base_url('Ride/import_ride') ?>">
<a href="<?= base_url('Ride/view_rides') ?>">
<i class="fa fa-circle-o text-aqua"></i>
Import Rides
View Rides
</a>
</li>
<?php if($this->session->userdata['user_type'] != 1){ ?>
<li>
<a href="<?= base_url('Ride/scheduled_rides') ?>">
<i class="fa fa-circle-o text-aqua"></i>
Scheduled Rides
</a>
</li>
<?php } ?>
</ul>
</li>
<li><a href="<?= base_url('Payment/getPayDetails') ?>">
......@@ -176,12 +146,6 @@
<i class="fa fa-wrench" aria-hidden="true">
</i><span>Report Generation</span></a>
</li>
<?php if($this->session->userdata['user_type'] == 1){ ?>
<li><a href="<?= base_url('Settings') ?>">
<i class="fa fa-wrench" aria-hidden="true">
</i><span>Settings</span></a>
</li>
<?php } ?>
</ul>
</section>
<!-- /.sidebar -->
......
......@@ -3,7 +3,7 @@
}
.dropdown-toggle {
background: rgba(0, 0, 0, 0.1) none repeat scroll 0 0;
background: rgba(0, 0, 0, 0.1) none repeat scroll 0 0;
}
.modal-wide .modal-dialog {
width:80% !important;
......@@ -18,13 +18,13 @@
border:none !important;
}
#map_canvas {
height: 350px;
width: 98%;
height: 350px;
width: 98%;
}
#map_canvasmap {
height: 350px;
width: 98%;
height: 350px;
width: 98%;
}
.input_size{width: 280px !important;}
......@@ -78,38 +78,38 @@
.sleeper{
background-image: url(./images/1.png);background-repeat: no-repeat;height: 23px;
width: 34px;
margin-top:10px;
height: 41px;
}.seater{
background-image: url(./images/4.png);background-repeat: no-repeat;height: 23px;
width: 34px;
margin-top:10px;
height: 41px;
}.sleeper1{
background-image: url(../images/empty.png);background-repeat: no-repeat;height: 23px;
width: 34px;
margin-top:10px;
height: 41px;
}
width: 34px;
margin-top:10px;
height: 41px;
}.seater{
background-image: url(./images/4.png);background-repeat: no-repeat;height: 23px;
width: 34px;
margin-top:10px;
height: 41px;
}.sleeper1{
background-image: url(../images/empty.png);background-repeat: no-repeat;height: 23px;
width: 34px;
margin-top:10px;
height: 41px;
}
.sub_buttons{padding-top:23px !important;}
.well {
position: absolute;
z-index: 1;
margin-top: -30px;
height: 30px;
min-height: 30px;
padding: 0 6.5px;
left: 25%;
}
.sub_buttons{padding-top:23px !important;}
.well {
position: absolute;
z-index: 1;
margin-top: -30px;
height: 30px;
min-height: 30px;
padding: 0 6.5px;
left: 25%;
}
.thumbnailss {
list-style:none;
}
.thumbnailss {
list-style:none;
}
/******SEAT BLOCK CSS********/
.sleeper {
/******SEAT BLOCK CSS********/
.sleeper {
background-image: url(../images/1.png);
background-repeat: no-repeat;
height: 23px;
......@@ -117,26 +117,26 @@
margin-top: 10px;
height: 39px;
cursor: pointer;
}
.ssleeper {
}
.ssleeper {
background-image: url(../images/3.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
}
.bsleeper {
}
.bsleeper {
background-image: url(../images/3.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
}
.selectedsleeper {
}
.selectedsleeper {
background-image: url(../images/2.png);
background-repeat: no-repeat;
height: 23px;
......@@ -144,44 +144,44 @@
margin-top: 10px;
height: 39px;
cursor: pointer;
}
.selectedsleeper1{
background-image: url(../images/1.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
cursor: pointer;
}
.seater {
background-image: url(../images/4.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 27px;
cursor: pointer;
}
.selectedsleeper1{
background-image: url(../images/1.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
cursor: pointer;
}
.seater {
background-image: url(../images/4.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 27px;
cursor: pointer;
}
.sseater {
background-image: url(../images/7.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
background-image: url(../images/7.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
}
.bseater {
background-image: url(../images/7.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
background-image: url(../images/7.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 39px;
}
/*.ssseater{
background-image: url(../images/4.png);
background-repeat: no-repeat;
......@@ -190,120 +190,34 @@
margin-top: 10px;
height: 27px;
cursor: pointer;
}*/
.selectedseat {
background-image: url(../images/6.png);
/*background-image: url(../images/6.png);*/
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 27px;
cursor: pointer;
}
.sleeper1 {
background-image: url(../images/empty.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 21px;
}
/******SEAT BLOCK CSS********/
.prevent-click {
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}
.hide {
display:none !important;
}
.loader{
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
text-align: center;
background-image: url(../images/loader.gif);
background-size: 5%;
background-position: center;
}*/
.selectedseat {
background-image: url(../images/6.png);
/*background-image: url(../images/6.png);*/
background-repeat: no-repeat;
background-color: rgba(0,0,0,0.56);
}
.height_200{
height: 200px !important;
}
.cpoint{
cursor: pointer !important;
}
.overlay {
position: fixed;
display: none;
width: 100%;
height: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0,0,0,0.5);
z-index: 2;
cursor: pointer;
}
.drag-box {
float: left;
width: 100%;
min-height: 28px;
margin: 2px;
border: 1px solid #A8A8A8;
}
.border-cls {
border: 1px solid #e0dbdb;
}
.headtag-td {
padding: 5px;
width: 50%;
}
.header-tag {
border: 1px solid darkgray;
border-radius: 10px;
padding: 0px 10px;
display: inline-block;
margin: 2px;
background: #c2ccd6;
}
.header-tag-box {
width:100%;
min-height:400px;
border: 1px solid #dfdbdb;
padding: 2px;
}
.clear {
clear: both !important;
}
.btn-mapping {
text-align: center;
padding: 15px;
}
height: 23px;
width: 34px;
margin-top: 10px;
height: 27px;
cursor: pointer;
}
.sleeper1 {
background-image: url(../images/empty.png);
background-repeat: no-repeat;
height: 23px;
width: 34px;
margin-top: 10px;
height: 21px;
}
/******SEAT BLOCK CSS********/
.tr-cls {
height: 43px;
}
.prevent-click {
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}
.disable-block {
pointer-events: none;
opacity: 0.5;
}
\ No newline at end of file
.hide {
display:none !important;
}
\ No newline at end of file
......@@ -56,7 +56,7 @@ ob_start();
* NOTE: If you change these, also change the error_reporting() code below
*/
//define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
define('ENVIRONMENT', 'development');
define('ENVIRONMENT', 'production');
/*
*---------------------------------------------------------------
......@@ -76,7 +76,7 @@ switch (ENVIRONMENT)
case 'testing':
case 'production':
error_reporting(-1);
ini_set('display_errors', 0);
ini_set('display_errors', 1);
if (version_compare(PHP_VERSION, '5.3', '>='))
{
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment