213 lines
8.4 KiB
PHP
213 lines
8.4 KiB
PHP
<?php
|
|
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Scanners extends Admin_Controller {
|
|
|
|
var $template = array(
|
|
'table_open' => "<table class='table table-striped table-hover table-bordered table-condensed'>",
|
|
'thead_open' => '<thead class=\'bg-indigo\'>',
|
|
'thead_close' => '</thead>',
|
|
'heading_row_start' => '<tr>',
|
|
'heading_row_end' => '</tr>',
|
|
'heading_cell_start' => '<th>',
|
|
'heading_cell_end' => '</th>',
|
|
'tbody_open' => '<tbody>',
|
|
'tbody_close' => '</tbody>',
|
|
'row_start' => '<tr>',
|
|
'row_end' => '</tr>',
|
|
'cell_start' => '<td>',
|
|
'cell_end' => '</td>',
|
|
'row_alt_start' => '<tr>',
|
|
'row_alt_end' => '</tr>',
|
|
'cell_alt_start' => '<td>',
|
|
'cell_alt_end' => '</td>',
|
|
'table_close' => '</table>'
|
|
);
|
|
|
|
|
|
public function index() {
|
|
$this->load->helper('url');
|
|
$data = array();
|
|
/*
|
|
$this->load->model('admindash_model');
|
|
$out = $this->admindash_model->getAdminDashData($data);
|
|
$data['recent_signup'] = $out['recent_signup'];
|
|
|
|
$this->load->model('service_model');
|
|
$outx = $this->service_model->getServiceRequestList(100);
|
|
$data['transport_request'] = $outx['service_request_list'];
|
|
|
|
$this->load->library('googlemaps');
|
|
$config['center'] = 'atalnta,GA,USA';
|
|
$config['zoom'] = 'auto';
|
|
$config['directions'] = TRUE;
|
|
$config['directionsStart'] = '4201 defoors farm trail, powder springs, GA 30127, USA';
|
|
$config['directionsEnd'] = '2324 stancrest ln, lawrenceville, 30044, GA, USA';
|
|
$config['directionsDivID'] = 'directionsDiv';
|
|
$this->googlemaps->initialize($config);
|
|
$data['map'] = $this->googlemaps->create_map();
|
|
*/
|
|
|
|
|
|
|
|
$this->load->library('table');
|
|
$this->table->set_template($this->template);
|
|
|
|
$mysql = "SELECT '<button type=\"button\" class=\"btn btn-danger btn-xs\" onclick=\"viewMember('||id||');\" >View</button>' AS action ,subject FROM trackedemail_item ";
|
|
$member_id = 0;
|
|
if ($this->input->get()) {
|
|
$member_id = (int)$this->input->get('member_id');
|
|
if ($member_id>0) {
|
|
$mysql.= " WHERE member_id='".$member_id."'";
|
|
}
|
|
}
|
|
$query = $this->read_replica->query($mysql);
|
|
$this->table->set_heading(array('data' => 'ACTION', 'style' => 'width:90px'), 'Subject');
|
|
$data['member_table'] = $this->table->generate($query);
|
|
$data['members'] = array();
|
|
$q = "SELECT id,firstname||' '||lastname||' <'||email||'> ' AS option FROM members ORDER BY firstname,lastname";
|
|
$r = $this->read_replica->query($q);
|
|
foreach ($r->result() as $row) {
|
|
$data['members'][$row->id] = $row->option;
|
|
}
|
|
$data['member_id'] = $member_id;
|
|
//$data['js'] = array('https://maps.googleapis.com/maps/api/js?key=AIzaSyDvjiRTxngOQyBP4zpqFlZuiquc0ROvo9c&callback=initMap');
|
|
$this->renderScannedPage('view_scannemail', $data);
|
|
// echo 'Ameye Olu';
|
|
}
|
|
|
|
|
|
|
|
public function viewscanned() {
|
|
$data = array();
|
|
|
|
if ($this->input->get()) {
|
|
$member_id = $this->input->get('member_id');
|
|
if ($member_id != '' && $member_id > 0) {
|
|
|
|
$mysql = "SELECT * FROM trackedemail_item WHERE id = $member_id";
|
|
$query = $this->read_replica->query($mysql);
|
|
$data['selected_user'] = $query->row_array();
|
|
|
|
// print_r($data);
|
|
|
|
$this->load->view('scanned/extra/scanned_activity', $data);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
$this->load->model('admindash_model');
|
|
$out = $this->admindash_model->getAdminDashData($data);
|
|
$data['recent_signup'] = $out['recent_signup'];
|
|
|
|
$this->load->model('service_model');
|
|
$outx = $this->service_model->getServiceRequestList(100);
|
|
$data['transport_request'] = $outx['service_request_list'];
|
|
|
|
$this->load->library('googlemaps');
|
|
$config['center'] = 'atalnta,GA,USA';
|
|
$config['zoom'] = 'auto';
|
|
$config['directions'] = TRUE;
|
|
$config['directionsStart'] = '4201 defoors farm trail, powder springs, GA 30127, USA';
|
|
$config['directionsEnd'] = '2324 stancrest ln, lawrenceville, 30044, GA, USA';
|
|
$config['directionsDivID'] = 'directionsDiv';
|
|
$this->googlemaps->initialize($config);
|
|
$data['map'] = $this->googlemaps->create_map();
|
|
*/
|
|
}
|
|
|
|
public function processbody() {
|
|
$data = array();
|
|
|
|
if ($this->input->get()) {
|
|
$msg_id = $this->input->get('id');
|
|
if ($msg_id != '' && $msg_id > 0) {
|
|
$mysql = "SELECT * FROM trackedemail_item WHERE id = $msg_id";
|
|
$query = $this->read_replica->query($mysql);
|
|
$data['message'] = $query->row_array();
|
|
$this->load->library('messageparser');
|
|
// print_r($data);
|
|
error_log('msg_id='.$msg_id);
|
|
$data['parsed'] = $this->messageparser->parse($msg_id, $this->db);
|
|
$data['id'] = $msg_id;
|
|
//$this->cacheParsedItem($data);
|
|
$this->load->view('scanned/extra/processed_body', $data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private function cacheParsedItem($src) {
|
|
return NULL; //this code is obsolete and there is a new one in the API
|
|
if ($src['parsed']['location_start_value']=='N/A' && $src['parsed']['location_end_value']=='N/A' && $src['parsed']['cost_value']=='N/A') return;
|
|
sscanf($src['parsed']['duration_value'], "%d:%d:%d", $hours, $minutes, $seconds);
|
|
$data = array(
|
|
'travel_date' => date('Y-m-d H:i', strtotime($src['parsed']['date_value'])),
|
|
'location_start' => pg_escape_string(trim($src['parsed']['location_start_value'])),
|
|
'location_end' => pg_escape_string(trim($src['parsed']['location_end_value'])),
|
|
'distance' => filter_var($src['parsed']['distance_value'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
|
'duration' => 60*$hours+$minutes,
|
|
'cost_raw' => pg_escape_string(trim(filter_var($src['parsed']['cost_value'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_BACKTICK))),
|
|
'trackedemail_item_id' => $src['id'],
|
|
'cost' => filter_var($src['parsed']['cost_value'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)
|
|
);
|
|
// New location code:
|
|
$location_start_id = $this->getAddress($data['location_start']);
|
|
$location_end_id = $this->getAddress($data['location_end']);
|
|
$data['location_start_id'] = $location_start_id;
|
|
$data['location_end_id'] = $location_end_id;
|
|
unset($data['location_start']);
|
|
unset($data['location_end']);
|
|
|
|
$q = "SELECT * FROM parsedemail_item WHERE trackedemail_item_id='".$data['trackedemail_item_id']."'";
|
|
$r = $this->read_replica->query($q);
|
|
$f = $r->row_array();
|
|
if ($f==NULL) {
|
|
$ql = "updated"; $qv = "NOW()";
|
|
foreach($data as $key=>$val) {
|
|
$ql.= ",${key}";
|
|
$qv.= ",'${val}'";
|
|
}
|
|
$q = "INSERT INTO parsedemail_item (${ql}) VALUES(${qv})";
|
|
} else {
|
|
unset($data['trackedemail_item_id']);
|
|
$q = "UPDATE parsedemail_item SET updated=NOW()";
|
|
foreach ($data as $key=>$val) {
|
|
$q.= ",${key}='${val}'";
|
|
}
|
|
$q.= " WHERE id='".$f['id']."'";
|
|
}
|
|
//echo $q;
|
|
//var_dump($src['parsed']);
|
|
//echo "<pre>";var_dump($data); echo "</pre>";
|
|
$this->db->query($q);
|
|
//*/
|
|
}
|
|
|
|
protected function getAddress($address) {
|
|
$q = "SELECT id FROM address WHERE lower(address)=lower('".pg_escape_string($address)."')";
|
|
$r = $this->read_replica->query($q);
|
|
$f = $r->row_array();
|
|
if ($f!=NULL && is_array($f) && $f["id"]>0) {
|
|
return $f["id"];
|
|
}
|
|
$q = "INSERT INTO address (address) VALUES ('".pg_escape_string($address)."') RETURNING id";
|
|
$r = $this->db->query($q);
|
|
$f = $r->row_array();
|
|
if ($f!=NULL && is_array($f) && $f["id"]>0) {
|
|
return $f["id"];
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
protected function renderScannedPage($page_name, $data) {
|
|
$this->load->view('admin/view_admin_header',$data);
|
|
$this->load->view('scanned/'.$page_name,$data);
|
|
$this->load->view('admin/view_admin_footer',$data);
|
|
}
|
|
|
|
|
|
}
|