From 64d80ef4e56d7abfbd56f27ef77f5114e1f3e800 Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 20 Nov 2025 13:00:25 +0100 Subject: [PATCH] Check certs for superseded status --- application/controllers/Lotw.php | 9 +++++++++ application/models/Lotw_model.php | 6 +++++- application/views/lotw_views/index.php | 24 ++++++++++++++---------- 3 files changed, 28 insertions(+), 11 deletions(-) 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 @@ } ?> - $row->date_expires) { ?> - - date_expires && $current_date > $cert_warning_date) { ?> - + status == 1) { ?> + - - - $row->qso_end_date) { ?> - QSO end date exceeded - qso_end_date && $current_date > $qso_warning_date) { ?> - + $row->date_expires) { ?> + + date_expires && $current_date > $cert_warning_date) { ?> + + + + + $row->qso_end_date) { ?> + QSO end date exceeded + qso_end_date && $current_date > $qso_warning_date) { ?> + +