diff --git a/application/controllers/Qrz.php b/application/controllers/Qrz.php index dc8e2857..d8d01d34 100644 --- a/application/controllers/Qrz.php +++ b/application/controllers/Qrz.php @@ -36,7 +36,7 @@ class Qrz extends CI_Controller { } } else { echo "No station_id's with a QRZ API Key found"; - log_message('info', "No station_id's with a QRZ API Key found"); + log_message('error', "No station_id's with a QRZ API Key found"); } } @@ -56,6 +56,7 @@ class Qrz extends CI_Controller { function mass_upload_qsos($station_id, $qrz_api_key) { $i = 0; $data['qsos'] = $this->logbook_model->get_qrz_qsos($station_id); + $errormessages=array(); if ($data['qsos']) { foreach ($data['qsos'] as $qso) { @@ -67,14 +68,24 @@ class Qrz extends CI_Controller { $result = $this->logbook_model->push_qso_to_qrz($qrz_api_key, $adif); } - if ($result) { + if ($result['status'] == 'OK') { $this->markqso($qso['COL_PRIMARY_KEY']); $i++; + } else { + log_message('error', 'QRZ upload failed for qso: Call: ' . $qso['COL_CALL'] . ' Band: ' . $qso['COL_BAND'] . ' Mode: ' . $qso['COL_MODE'] . ' Time: ' . $qso['COL_TIME_ON']); + log_message('error', 'QRZ upload failed with the following message: ' .$result['message']); + $errormessages[] = $result['message'] . ' Call: ' . $qso['COL_CALL'] . ' Band: ' . $qso['COL_BAND'] . ' Mode: ' . $qso['COL_MODE'] . ' Time: ' . $qso['COL_TIME_ON']; } } - return $i; + $result['status'] = 'OK'; + $result['count'] = $i; + $result['errormessages'] = $errormessages; + return $result; } else { - return $i; + $result['status'] = 'Error'; + $result['count'] = $i; + $result['errormessages'] = $errormessages; + return $result; } } @@ -116,17 +127,20 @@ class Qrz extends CI_Controller { $qrz_api_key = $this->logbook_model->exists_qrz_api_key($postData['station_id']); header('Content-type: application/json'); - if ($i = $this->mass_upload_qsos($postData['station_id'], $qrz_api_key)) { + $result = $this->mass_upload_qsos($postData['station_id'], $qrz_api_key); + if ($result['status'] == 'OK') { $stationinfo = $this->stations->stations_with_qrz_api_key(); $info = $stationinfo->result(); $data['status'] = 'OK'; $data['info'] = $info; - $data['infomessage'] = $i . " QSOs are now uploaded to QRZ.com"; + $data['infomessage'] = $result['count'] . " QSOs are now uploaded to QRZ.com"; + $data['errormessages'] = $result['errormessages']; echo json_encode($data); } else { $data['status'] = 'Error'; $data['info'] = 'Error, no QSOs to upload found'; + $data['errormessages'] = $result['errormessages']; echo json_encode($data); } } diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 83b43397..545bd7ff 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -328,7 +328,8 @@ class Logbook_model extends CI_Model { // Push qso to qrz if apikey is set if ($apikey = $this->exists_qrz_api_key($data['station_id'])) { $adif = $this->create_adif_from_data($data); - IF ($this->push_qso_to_qrz($apikey, $adif)) { + $result = $this->push_qso_to_qrz($apikey, $adif); + IF ($result['status'] == 'OK') { $data['COL_QRZCOM_QSO_UPLOAD_STATUS'] = 'Y'; $data['COL_QRZCOM_QSO_UPLOAD_DATE'] = date("Y-m-d H:i:s", strtotime("now")); } @@ -382,14 +383,19 @@ class Logbook_model extends CI_Model { $content = curl_exec($ch); if ($content){ if (stristr($content,'RESULT=OK') || stristr($content,'RESULT=REPLACE')) { - return true; + $result['status'] = 'OK'; + return $result; } else { - return false; + $result['status'] = 'error'; + $result['message'] = $content; + return $result; } } if(curl_errno($ch)){ - return false; + $result['status'] = 'error'; + $result['message'] = 'Curl error: '. curl_errno($ch); + return $result; } curl_close($ch); } diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index e29a0bb2..cc4097e8 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -1383,6 +1383,12 @@ $(document).ready(function(){ uri->segment(1) == "qrz") { ?>