Import and show incoming (e)QSL messages

This commit is contained in:
phl0
2025-01-16 09:51:30 +01:00
parent 20becc9da1
commit 9dacd53499
5 changed files with 15 additions and 5 deletions

View File

@@ -177,7 +177,7 @@ class EqslImporter
$dupe = $this->CI->eqslmethods_model->eqsl_dupe_check($time_on, $record['call'], $record['band'], $record['mode'], $config['eqsl_rcvd_mark'], $station_callsign, $station_id);
if ($dupe == false) {
$updated += 1;
$eqsl_status = $this->CI->eqslmethods_model->eqsl_update($time_on, $record['call'], $record['band'], $record['mode'], $config['eqsl_rcvd_mark'], $station_callsign, $station_id, $eqsl_qslrdate);
$eqsl_status = $this->CI->eqslmethods_model->eqsl_update($time_on, $record['call'], $record['band'], $record['mode'], $config['eqsl_rcvd_mark'], $station_callsign, $station_id, $eqsl_qslrdate, ($record['qslmsg'] ?? null));
} else {
$dupes += 1;
$eqsl_status = "Already received an eQSL for this QSO.";

View File

@@ -44,7 +44,7 @@ class Eqsl_images extends CI_Model {
function eqsl_qso_list() {
$this->load->model('logbooks_model');
$logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
$this->db->select('COL_PRIMARY_KEY, qso_id, COL_CALL, COL_MODE, , COL_SUBMODE, COL_TIME_ON, COL_BAND, COL_PROP_MODE, COL_SAT_NAME, COL_EQSL_QSLRDATE, image_file');
$this->db->select('COL_PRIMARY_KEY, qso_id, COL_CALL, COL_MODE, , COL_SUBMODE, COL_TIME_ON, COL_BAND, COL_PROP_MODE, COL_SAT_NAME, COL_QSLMSG_RCVD, COL_EQSL_QSLRDATE, image_file');
$this->db->join($this->config->item('table_name'), 'qso_id = COL_PRIMARY_KEY', 'left outer');
$this->db->join('station_profile', $this->config->item('table_name').'.station_id = station_profile.station_id', 'left outer');
$this->db->where_in('station_profile.station_id', $logbooks_locations_array);

View File

@@ -505,10 +505,12 @@ class Eqslmethods_model extends CI_Model {
// We could also probably use this:
// https://eqsl.cc/qslcard/VerifyQSO.txt
// https://www.eqsl.cc/qslcard/ImportADIF.txt
function eqsl_update($datetime, $callsign, $band, $mode, $qsl_status, $station_callsign, $station_id, $eqsl_qslrdate = null) {
function eqsl_update($datetime, $callsign, $band, $mode, $qsl_status, $station_callsign, $station_id, $eqsl_qslrdate = null, $qslmsg = null) {
$data = array(
'COL_EQSL_QSLRDATE' => $eqsl_qslrdate ?? date('Y-m-d'), // eQSL gives a date now. Use current date as fallback only
'COL_EQSL_QSL_RCVD' => $qsl_status
'COL_EQSL_QSL_RCVD' => $qsl_status,
// Incoming QSLMSG to be stored in QSLMSG_RCVD
'COL_QSLMSG_RCVD' => $qslmsg
);
$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("' . $datetime . '", \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE )');

View File

@@ -31,6 +31,7 @@
<th style=\'text-align: center\'>'.__("Time").'</th>
<th style=\'text-align: center\'>'.__("Band").'</th>
<th style=\'text-align: center\'>'.__("Propagation Mode").'</th>
<th style=\'text-align: center\'>'.__("QSL Message").'</th>
<th style=\'text-align: center\'>'.__("QSL Date").'</th>
<th style=\'text-align: center\'></th>
</tr>
@@ -55,6 +56,9 @@
if($qsl->COL_PROP_MODE != null) { echo $qsl->COL_PROP_MODE; };
echo '</td>';
echo '<td style=\'text-align: center\'>';
if($qsl->COL_QSLMSG_RCVD != null) { echo $qsl->COL_QSLMSG_RCVD; };
echo '</td>';
echo '<td style=\'text-align: center\'>';
if ($qsl->COL_EQSL_QSLRDATE) { $timestamp = strtotime($qsl->COL_EQSL_QSLRDATE); echo date($custom_date_format, $timestamp); }
echo '</td>';
echo '<td style=\'text-align: center\'><a href=\''.site_url('eqsl/image/'.$qsl->COL_PRIMARY_KEY).'\' data-fancybox=\'images\' data-width=\'528\' data-height=\'336\' class=\'btn btn-sm btn-success\'>' . __("View") . '</a></td>';

View File

@@ -539,7 +539,11 @@
<?php if($row->COL_EQSL_QSL_RCVD == "Y" && $row->COL_EQSL_QSLRDATE != null) { ?>
<h3>eQSL</h3>
<p><?= __("This QSO was confirmed on"); ?> <?php $timestamp = strtotime($row->COL_EQSL_QSLRDATE); echo date($custom_date_format, $timestamp); ?>.</p>
<p><?= __("This QSO was confirmed on"); ?> <?php $timestamp = strtotime($row->COL_EQSL_QSLRDATE); echo date($custom_date_format, $timestamp); ?>.
<?php if (!empty($row->COL_QSLMSG_RCVD)) { ?>
<br /><?= __("QSL Message"); ?>: <?php echo $row->COL_QSLMSG_RCVD; ?>
<?php } ?>
</p>
<?php } ?>
<?php if($row->COL_EQSL_QSL_RCVD == "Y" && $row->COL_EQSL_QSLRDATE == null) { ?>