diff --git a/application/controllers/Lotw.php b/application/controllers/Lotw.php index 8f44a1241..12d2324bc 100644 --- a/application/controllers/Lotw.php +++ b/application/controllers/Lotw.php @@ -46,6 +46,15 @@ class Lotw extends CI_Controller { // Load required models for page generation $this->load->model('Lotw_model'); + // Check for superseded certificates + $certcheck = $this->Lotw_model->lotw_certs($this->session->userdata('user_id')); + foreach ($certcheck->result() as $row) { + $status = $this->lotw_cert_status($row->serial); + if ($status != 99 && $status != $row->status) { + $this->Lotw_model->update_cert_status($row->lotw_cert_id, $status); + } + } + // Get Array of the logged in users LoTW certs. $data['lotw_cert_results'] = $this->Lotw_model->lotw_certs($this->session->userdata('user_id')); diff --git a/application/models/Lotw_model.php b/application/models/Lotw_model.php index 0f2d0eea9..dbc532119 100644 --- a/application/models/Lotw_model.php +++ b/application/models/Lotw_model.php @@ -12,7 +12,7 @@ class Lotw_model extends CI_Model { */ function lotw_certs($user_id) { - $this->db->select('lotw_certs.lotw_cert_id as lotw_cert_id, lotw_certs.serial as serial, lotw_certs.callsign as callsign, dxcc_entities.name as cert_dxcc, dxcc_entities.end as cert_dxcc_end, lotw_certs.qso_start_date as qso_start_date, lotw_certs.qso_end_date as qso_end_date, lotw_certs.date_created as date_created, lotw_certs.date_expires as date_expires, lotw_certs.last_upload as last_upload, lotw_certs.last_upload_fail as last_upload_fail, lotw_certs.last_upload_status as last_upload_status'); + $this->db->select('lotw_certs.lotw_cert_id as lotw_cert_id, lotw_certs.serial as serial, lotw_certs.status as status, lotw_certs.callsign as callsign, dxcc_entities.name as cert_dxcc, dxcc_entities.end as cert_dxcc_end, lotw_certs.qso_start_date as qso_start_date, lotw_certs.qso_end_date as qso_end_date, lotw_certs.date_created as date_created, lotw_certs.date_expires as date_expires, lotw_certs.last_upload as last_upload, lotw_certs.last_upload_fail as last_upload_fail, lotw_certs.last_upload_status as last_upload_status'); $this->db->where('user_id', $user_id); $this->db->join('dxcc_entities','lotw_certs.cert_dxcc_id = dxcc_entities.adif','left'); $this->db->order_by('callsign', 'ASC'); @@ -156,7 +156,11 @@ class Lotw_model extends CI_Model { } else { return false; } + } + function update_cert_status($cert_id, $status) { + $sql = "UPDATE `lotw_certs` SET status = ? WHERE lotw_cert_id = ?;"; + $query = $this->db->query($sql, array($status, $cert_id)); } } diff --git a/application/views/lotw_views/index.php b/application/views/lotw_views/index.php index ae3e964be..b97640d95 100644 --- a/application/views/lotw_views/index.php +++ b/application/views/lotw_views/index.php @@ -92,17 +92,21 @@ } ?>