Files
dev-chiefworks f76abffdcd first commit
2022-05-31 16:21:53 -04:00

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||' &lt;'||email||'&gt; ' 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);
}
}