[DBTools] Added a checking for IOTA vs DXCC

This commit is contained in:
Andreas Kristiansen
2026-01-11 09:06:33 +01:00
parent e9f07a2385
commit 7fb421b76b
4 changed files with 255 additions and 40 deletions

View File

@@ -30,6 +30,9 @@ switch ($type) {
case 'checkincorrectituzones':
check_incorrect_itu_zones($result, $custom_date_format);
break;
case 'checkiota':
check_iota($result, $custom_date_format);
break;
default:
// Invalid type
break;
@@ -99,7 +102,7 @@ function check_dxcc($result, $custom_date_format) { ?>
<th><?= __("QSO Date"); ?></th>
<th class="select-filter" scope="col"><?= __("Band"); ?></th>
<th class="select-filter" scope="col"><?= __("Mode"); ?></th>
<th class="select-filter" scope="col"><?= __("LoTW"); ?></th>
<th style='text-align: center' class="select-filter" scope="col"><?= __("LoTW"); ?></th>
<th class="select-filter" scope="col"><?= __("Station Profile"); ?></th>
<th class="select-filter" scope="col"><?= __("Existing DXCC"); ?></th>
<th class="select-filter" scope="col"><?= __("Result DXCC"); ?></th>
@@ -113,7 +116,7 @@ function check_dxcc($result, $custom_date_format) { ?>
<td><?php echo date($custom_date_format, strtotime($qso['qso_date'])); ?></td>
<td><?php echo htmlspecialchars($qso['band']); ?></td>
<td><?php echo htmlspecialchars($qso['submode'] ? $qso['submode'] : $qso['mode']); ?></td>
<td><?php echo $qso['lotw_qsl_rcvd'] == 'Y' ? __('Yes') : __('No'); ?></td>
<td style='text-align: center'><div class="<?php echo $qso['lotw_qsl_rcvd'] == 'Y' ? 'bg-success' : 'bg-danger'; ?>"><?php echo $qso['lotw_qsl_rcvd'] == 'Y' ? __('Yes') : __('No'); ?></div></td>
<td><?php echo $qso['station_profile']; ?></td>
<td><?php echo htmlspecialchars(ucwords(strtolower($qso['existing_dxcc']), "- (/"), ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo htmlspecialchars(ucwords(strtolower($qso['result_country']), "- (/"), ENT_QUOTES, 'UTF-8'); ?></td>
@@ -157,7 +160,7 @@ function check_incorrect_gridsquares($result, $custom_date_format) { ?>
<th><?= __("QSO Date"); ?></th>
<th class="select-filter" scope="col"><?= __("Band"); ?></th>
<th class="select-filter" scope="col"><?= __("Mode"); ?></th>
<th class="select-filter" scope="col"><?= __("LoTW"); ?></th>
<th style='text-align: center' class="select-filter" scope="col"><?= __("LoTW"); ?></th>
<th class="select-filter" scope="col"><?= __("Station Profile"); ?></th>
<th class="select-filter" scope="col"><?= __("DXCC"); ?></th>
<th><?= __("Gridsquare"); ?></th>
@@ -171,7 +174,7 @@ function check_incorrect_gridsquares($result, $custom_date_format) { ?>
<td><?php echo date($custom_date_format, strtotime($qso->col_time_on)); ?></td>
<td><?php echo htmlspecialchars($qso->col_band); ?></td>
<td><?php echo htmlspecialchars($qso->col_submode ? $qso->col_submode : $qso->col_mode); ?></td>
<td><?php echo $qso->col_lotw_qsl_rcvd == 'Y' ? __('Yes') : __('No'); ?></td>
<td style='text-align: center'><div class="<?php echo $qso->col_lotw_qsl_rcvd == 'Y' ? 'bg-success' : 'bg-danger'; ?>"><?php echo $qso->col_lotw_qsl_rcvd == 'Y' ? __('Yes') : __('No'); ?></div></td>
<td><?php echo $qso->station_profile_name; ?></td>
<td><?php echo htmlspecialchars(ucwords(strtolower($qso->col_country), "- (/"), ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo $qso->col_gridsquare; ?></td>
@@ -363,3 +366,62 @@ function check_incorrect_itu_zones($result, $custom_date_format) { ?>
echo '<div class="alert alert-success">' . __("No incorrect CQ Zones were found.") . '</div>';
}
}
function check_iota($result, $custom_date_format) { ?>
<h5><?= __("IOTA Check Results") ?></h5>
<?php
if (is_array($result) && isset($result['status']) && $result['status'] == 'error') {
echo '<div class="alert alert-danger" role="alert">' . htmlspecialchars($result['message']) . '</div>';
return;
}
if ($result) { ?>
<?= __("These QSOs MAY have an incorrect IOTA reference.") ?>
<?= __("Results depends on the correct DXCC, and it will only be checked against current DXCC. False positive results may occur.") ?>
<div class="table-responsive">
<table class="table table-sm table-striped table-bordered table-condensed" id="iotaCheckTable">
<thead>
<tr>
<th class="select-filter" scope="col"><?= __("Callsign"); ?></th>
<th><?= __("QSO Date"); ?></th>
<th class="select-filter" scope="col"><?= __("Band"); ?></th>
<th class="select-filter" scope="col"><?= __("Mode"); ?></th>
<th style='text-align: center' class="select-filter" scope="col"><?= __("LoTW"); ?></th>
<th class="select-filter" scope="col"><?= __("Station Profile"); ?></th>
<th class="select-filter" scope="col"><?= __("QSO DXCC"); ?></th>
<th class="select-filter" scope="col"><?= __("IOTA"); ?></th>
<th class="select-filter" scope="col"><?= __("IOTA DXCC"); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $qso): ?>
<tr id="qsoID-<?php echo $qso->col_primary_key; ?>">
<td><?php echo '<a id="edit_qso" href="javascript:displayQso(' . $qso->col_primary_key . ')">' . htmlspecialchars($qso->col_call) . '</a>'; ?></td>
<td><?php echo date($custom_date_format, strtotime($qso->col_time_on)); ?></td>
<td><?php echo htmlspecialchars($qso->col_band); ?></td>
<td><?php echo htmlspecialchars($qso->col_submode ? $qso->col_submode : $qso->col_mode); ?></td>
<td style='text-align: center'><div class="<?php echo $qso->col_lotw_qsl_rcvd == 'Y' ? 'bg-success' : 'bg-danger'; ?>"><?php echo $qso->col_lotw_qsl_rcvd == 'Y' ? __('Yes') : __('No'); ?></div></td>
<td><?php echo $qso->station_profile_name; ?></td>
<td><?php echo htmlspecialchars(ucwords(strtolower($qso->col_country), "- (/"), ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php echo '<a href=\'javascript:displayContacts("'.$qso->col_iota.'","All","All","All","All","IOTA")\'>' . $qso->col_iota . '</a>'; ?> <a href="https://www.iota-world.org/iotamaps/?grpref=<?php echo $qso->col_iota; ?>" target="_blank"><i class="fas fa-globe"></i></a></td>
<td><?php echo htmlspecialchars(ucwords(strtolower($qso->correctdxcc ?? ''), "- (/"), ENT_QUOTES, 'UTF-8'); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
</table>
</div>
<?php }
}

View File

@@ -98,6 +98,17 @@
</div>
</div>
<?php endif; ?>
<div class="list-group-item d-flex justify-content-between align-items-center">
<div>
<h6 class="mb-1"><?= __("Check IOTA against DXCC") ?></h6>
<p class="mb-1 small text-muted"><?= __("Use Wavelog to check IOTA against DXCC") ?></p>
</div>
<div class="d-flex nowrap">
<button type="button" class="btn btn-sm btn-success me-1 ld-ext-right" id="checkIotaBtn" onclick="checkIota()">
<?= __("Check") ?><div class="ld ld-ring ld-spin"></div>
</button>
</div>
</div>
</div>
</div>