diff --git a/application/libraries/AdifHelper.php b/application/libraries/AdifHelper.php
index e4d630a5..44066378 100644
--- a/application/libraries/AdifHelper.php
+++ b/application/libraries/AdifHelper.php
@@ -82,8 +82,6 @@ class AdifHelper {
'SAT_MODE',
'SAT_NAME',
'SFI',
- 'SIG',
- 'SIG_INFO',
'SILENT_KEY',
'SKCC',
'SOTA_REF',
@@ -206,9 +204,25 @@ class AdifHelper {
$line .= $this->getAdifFieldLine("MY_CNTY", $county);
- $line .= $this->getAdifFieldLine("MY_SIG", $qso->station_sig);
+ $stationsSig = $qso->station_sig;
+ // If MY_SIG is WWFF or "" and there's a station_wwff set, use data from station_wwff
+ if ((empty($stationsSig) || $stationsSig === "WWFF") && !empty($qso->station_wwff)) {
+ $line .= $this->getAdifFieldLine("MY_SIG", "WWFF");
+ $line .= $this->getAdifFieldLine("MY_SIG_INFO", $qso->station_wwff);
+ } else {
+ $line .= $this->getAdifFieldLine("MY_SIG", $stationsSig);
+ $line .= $this->getAdifFieldLine("MY_SIG_INFO", $qso->station_sig_info);
+ }
- $line .= $this->getAdifFieldLine("MY_SIG_INFO", $qso->station_sig_info);
+ $sig = $qso->{'COL_SIG'};
+ // If SIG is WWFF or "" and there's a WWFF_REF set, use data from COL_WWFF_REF
+ if ((empty($sig) || $sig === "WWFF") && !empty($qso->{'COL_WWFF_REF'})) {
+ $line .= $this->getAdifFieldLine("SIG", "WWFF");
+ $line .= $this->getAdifFieldLine("SIG_INFO", $qso->{'COL_WWFF_REF'});
+ } else {
+ $line .= $this->getAdifFieldLine("SIG", $sig);
+ $line .= $this->getAdifFieldLine("SIG_INFO", $qso->{'COL_SIG_INFO'});
+ }
/*
Missing:
diff --git a/src/QSLManager/QSO.php b/src/QSLManager/QSO.php
index 19648c38..5296a9d5 100644
--- a/src/QSLManager/QSO.php
+++ b/src/QSLManager/QSO.php
@@ -31,6 +31,7 @@ class QSO
private string $deSigInfo;
private string $deIOTAIslandID;
private string $deSOTAReference;
+ private string $deWWFFReference;
/** Awards */
private string $cqzone;
private string $state;
@@ -163,6 +164,7 @@ class QSO
$this->deSigInfo = $data['station_sig_info'] ?? '';
$this->deIOTAIslandID = $data['COL_MY_IOTA_ISLAND_ID'] ?? '';
$this->deSOTAReference = $data['station_sota'] ?? '';
+ $this->deWWFFReference = $data['station_wwff'] ?? '';
$this->deVUCCGridsquares = $data['COL_MY_VUCC_GRIDS'] ?? '';
@@ -841,6 +843,7 @@ class QSO
private function getFormattedDeRefs(): string
{
+ $includedInRefs=[];
$refs = [];
if ($this->deVUCCGridsquares !== '') {
$refs[] = $this->deVUCCGridsquares;
@@ -859,14 +862,21 @@ class QSO
if ($this->deSOTAReference !== '') {
$refs[] = "SOTA:" . $this->deSOTAReference;
}
+ if ($this->deWWFFReference !== '') {
+ $includedInRefs[] = "WWFF";
+ $refs[] = "WWFF:" . $this->deWWFFReference;
+ }
if ($this->deSig !== '') {
- $refs[] = $this->deSig . ":" . $this->deSigInfo;
+ if (!in_array($this->deSig, $includedInRefs)) {
+ $refs[] = $this->deSig . ":" . $this->deSigInfo;
+ }
}
return trim(implode(" ", $refs));
}
private function getFormattedDxRefs(): string
{
+ $includedInRefs=[];
$refs = [];
if ($this->dxVUCCGridsquares !== '') {
$refs[] = '' . $this->dxVUCCGridsquares . ' ' .$this->getQrbLink($this->deGridsquare, $this->dxVUCCGridsquares, $this->dxGridsquare);
@@ -880,10 +890,13 @@ class QSO
$refs[] = "POTA: " . '' . $this->dxPOTAReference. '';
}
if ($this->dxWWFFReference !== '') {
+ $includedInRefs[] = "WWFF";
$refs[] = "WWFF: " . '' . $this->dxWWFFReference. '';
}
if ($this->dxSig !== '') {
- $refs[] = $this->dxSig . ":" . $this->dxSigInfo;
+ if (!in_array($this->dxSig, $includedInRefs)) {
+ $refs[] = $this->dxSig . ":" . $this->dxSigInfo;
+ }
}
if ($this->dxDARCDOK !== '') {
$refs[] = "DOK:" . $this->dxDARCDOK;