Merge pull request #578 from AndreasK79/award_dxcc_summary

Added summary for DXCC award
这个提交包含在:
Peter Goodhall 2020-08-19 12:59:02 +01:00 提交者 GitHub
当前提交 3935971e3c
找不到此签名对应的密钥
GPG 密钥 ID: 4AEE18F83AFDEB23
共有 3 个文件被更改,包括 217 次插入129 次删除

查看文件

@ -128,6 +128,7 @@ class Awards extends CI_Controller {
$dxcclist = $this->dxcc->fetchdxcc($postdata); $dxcclist = $this->dxcc->fetchdxcc($postdata);
$data['dxcc_array'] = $this->dxcc->get_dxcc_array($dxcclist, $bands, $postdata); $data['dxcc_array'] = $this->dxcc->get_dxcc_array($dxcclist, $bands, $postdata);
$data['dxcc_summary'] = $this->dxcc->get_dxcc_summary($bands);
// Render Page // Render Page
$data['page_title'] = "Awards - DXCC"; $data['page_title'] = "Awards - DXCC";

查看文件

@ -1,6 +1,7 @@
<?php <?php
class DXCC extends CI_Model { class DXCC extends CI_Model
{
public $bandslots = array("160m" => 0, public $bandslots = array("160m" => 0,
"80m" => 0, "80m" => 0,
@ -32,7 +33,8 @@ class DXCC extends CI_Model {
} }
function get_worked_bands() { function get_worked_bands()
{
$CI =& get_instance(); $CI =& get_instance();
$CI->load->model('Stations'); $CI->load->model('Stations');
$station_id = $CI->Stations->find_active(); $station_id = $CI->Stations->find_active();
@ -66,7 +68,8 @@ class DXCC extends CI_Model {
return $results; return $results;
} }
function show_stats(){ function show_stats()
{
$CI =& get_instance(); $CI =& get_instance();
$CI->load->model('Stations'); $CI->load->model('Stations');
$station_id = $CI->Stations->find_active(); $station_id = $CI->Stations->find_active();
@ -142,8 +145,7 @@ class DXCC extends CI_Model {
LIMIT 1 LIMIT 1
'); ');
if ($exceptions->num_rows() > 0) if ($exceptions->num_rows() > 0) {
{
return $exceptions; return $exceptions;
} else { } else {
@ -159,21 +161,25 @@ class DXCC extends CI_Model {
} }
} }
function search(){ function search()
{
print_r($this->input->get()); print_r($this->input->get());
return; return;
} }
function empty_table($table) { function empty_table($table)
{
$this->db->empty_table($table); $this->db->empty_table($table);
} }
function list() { function list()
{
$this->db->order_by('name', 'ASC'); $this->db->order_by('name', 'ASC');
return $this->db->get('dxcc_entities'); return $this->db->get('dxcc_entities');
} }
function get_dxcc_array($dxccArray, $bands, $postdata) { function get_dxcc_array($dxccArray, $bands, $postdata)
{
$CI =& get_instance(); $CI =& get_instance();
$CI->load->model('Stations'); $CI->load->model('Stations');
$station_id = $CI->Stations->find_active(); $station_id = $CI->Stations->find_active();
@ -226,13 +232,13 @@ class DXCC extends CI_Model {
if (isset($dxccMatrix)) { if (isset($dxccMatrix)) {
return $dxccMatrix; return $dxccMatrix;
} } else {
else {
return 0; return 0;
} }
} }
function getDxccBandConfirmed($station_id, $band, $postdata) { function getDxccBandConfirmed($station_id, $band, $postdata)
{
$sql = "select adif as dxcc, name from dxcc_entities $sql = "select adif as dxcc, name from dxcc_entities
join ( join (
select col_dxcc from " . $this->config->item('table_name') . " thcv select col_dxcc from " . $this->config->item('table_name') . " thcv
@ -241,8 +247,7 @@ class DXCC extends CI_Model {
if ($band == 'SAT') { if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'"; $sql .= " and col_prop_mode ='" . $band . "'";
} } else {
else {
$sql .= " and col_prop_mode !='SAT'"; $sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'"; $sql .= " and col_band ='" . $band . "'";
} }
@ -263,7 +268,8 @@ class DXCC extends CI_Model {
return $query->result(); return $query->result();
} }
function getDxccBandWorked($station_id, $band, $postdata) { function getDxccBandWorked($station_id, $band, $postdata)
{
$sql = "select adif as dxcc, name from dxcc_entities $sql = "select adif as dxcc, name from dxcc_entities
join ( join (
select col_dxcc from " . $this->config->item('table_name') . " thcv select col_dxcc from " . $this->config->item('table_name') . " thcv
@ -272,8 +278,7 @@ class DXCC extends CI_Model {
if ($band == 'SAT') { if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'"; $sql .= " and col_prop_mode ='" . $band . "'";
} } else {
else {
$sql .= " and col_prop_mode !='SAT'"; $sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'"; $sql .= " and col_band ='" . $band . "'";
} }
@ -292,7 +297,8 @@ class DXCC extends CI_Model {
return $query->result(); return $query->result();
} }
function fetchDxcc($postdata) { function fetchDxcc($postdata)
{
$CI =& get_instance(); $CI =& get_instance();
$CI->load->model('Stations'); $CI->load->model('Stations');
$station_id = $CI->Stations->find_active(); $station_id = $CI->Stations->find_active();
@ -306,8 +312,7 @@ class DXCC extends CI_Model {
if ($postdata['band'] != 'All') { if ($postdata['band'] != 'All') {
if ($postdata['band'] == 'SAT') { if ($postdata['band'] == 'SAT') {
$sql .= " and col_prop_mode ='" . $postdata['band'] . "'"; $sql .= " and col_prop_mode ='" . $postdata['band'] . "'";
} } else {
else {
$sql .= " and col_prop_mode !='SAT'"; $sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $postdata['band'] . "'"; $sql .= " and col_band ='" . $postdata['band'] . "'";
} }
@ -330,7 +335,8 @@ class DXCC extends CI_Model {
return $query->result(); return $query->result();
} }
function getDxccWorked($station_id, $postdata) { function getDxccWorked($station_id, $postdata)
{
$sql = "SELECT adif as dxcc FROM dxcc_entities $sql = "SELECT adif as dxcc FROM dxcc_entities
join ( join (
select col_dxcc select col_dxcc
@ -341,8 +347,7 @@ class DXCC extends CI_Model {
if ($postdata['band'] != 'All') { if ($postdata['band'] != 'All') {
if ($postdata['band'] == 'SAT') { if ($postdata['band'] == 'SAT') {
$sql .= " and col_prop_mode ='" . $postdata['band'] . "'"; $sql .= " and col_prop_mode ='" . $postdata['band'] . "'";
} } else {
else {
$sql .= " and col_prop_mode !='SAT'"; $sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $postdata['band'] . "'"; $sql .= " and col_band ='" . $postdata['band'] . "'";
} }
@ -353,8 +358,7 @@ class DXCC extends CI_Model {
if ($postdata['band'] != 'All') { if ($postdata['band'] != 'All') {
if ($postdata['band'] == 'SAT') { if ($postdata['band'] == 'SAT') {
$sql .= " and col_prop_mode ='" . $postdata['band'] . "'"; $sql .= " and col_prop_mode ='" . $postdata['band'] . "'";
} } else {
else {
$sql .= " and col_prop_mode !='SAT'"; $sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $postdata['band'] . "'"; $sql .= " and col_band ='" . $postdata['band'] . "'";
} }
@ -379,7 +383,8 @@ class DXCC extends CI_Model {
return $query->result(); return $query->result();
} }
function getDxccConfirmed($station_id, $postdata) { function getDxccConfirmed($station_id, $postdata)
{
$sql = "SELECT adif as dxcc FROM dxcc_entities $sql = "SELECT adif as dxcc FROM dxcc_entities
join ( join (
select col_dxcc select col_dxcc
@ -390,8 +395,7 @@ class DXCC extends CI_Model {
if ($postdata['band'] != 'All') { if ($postdata['band'] != 'All') {
if ($postdata['band'] == 'SAT') { if ($postdata['band'] == 'SAT') {
$sql .= " and col_prop_mode ='" . $postdata['band'] . "'"; $sql .= " and col_prop_mode ='" . $postdata['band'] . "'";
} } else {
else {
$sql .= " and col_prop_mode !='SAT'"; $sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $postdata['band'] . "'"; $sql .= " and col_band ='" . $postdata['band'] . "'";
} }
@ -415,7 +419,8 @@ class DXCC extends CI_Model {
} }
// Made function instead of repeating this several times // Made function instead of repeating this several times
function addQslToQuery($postdata) { function addQslToQuery($postdata)
{
$sql = ''; $sql = '';
if ($postdata['lotw'] != NULL and $postdata['qsl'] == NULL) { if ($postdata['lotw'] != NULL and $postdata['qsl'] == NULL) {
$sql .= " and col_lotw_qsl_rcvd = 'Y'"; $sql .= " and col_lotw_qsl_rcvd = 'Y'";
@ -432,7 +437,8 @@ class DXCC extends CI_Model {
} }
// Made function instead of repeating this several times // Made function instead of repeating this several times
function addContinentsToQuery($postdata) { function addContinentsToQuery($postdata)
{
$sql = ''; $sql = '';
if ($postdata['Africa'] == NULL) { if ($postdata['Africa'] == NULL) {
$sql .= " and cont <> 'AF'"; $sql .= " and cont <> 'AF'";
@ -463,5 +469,56 @@ class DXCC extends CI_Model {
} }
return $sql; return $sql;
} }
/*
* Function gets worked and confirmed summary on each band on the active stationprofile
*/
function get_dxcc_summary($bands)
{
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
foreach ($bands as $band) {
$result = $this->getSummaryByBand($band, $station_id);
$dxccSummary['worked'][$band] = $result[0]->count;
$dxccSummary['confirmed'][$band] = $result[0]->cfmdxcc;
}
return $dxccSummary;
}
function getSummaryByBand($band, $station_id)
{
$sql = "SELECT thcv.col_band, count(distinct thcv.col_dxcc) as count, coalesce (cfmdxcc.count, 0) as cfmdxcc FROM " . $this->config->item('table_name') . " thcv";
$sql .= " left outer join (
select col_band, count(distinct col_dxcc) as count from " . $this->config->item('table_name') . " thcv";
$sql .= " where station_id = " . $station_id;
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
$sql .= " and (col_qsl_rcvd = 'Y' or col_lotw_qsl_rcvd = 'Y')";
$sql .= ") cfmdxcc on thcv.col_band = cfmdxcc.col_band ";
$sql .= " where station_id = " . $station_id;
if ($band == 'SAT') {
$sql .= " and thcv.col_prop_mode ='" . $band . "'";
} else {
$sql .= " and thcv.col_prop_mode !='SAT'";
$sql .= " and thcv.col_band ='" . $band . "'";
}
$query = $this->db->query($sql);
return $query->result();
}
} }
?> ?>

查看文件

@ -140,7 +140,37 @@
} }
echo '</tr>'; echo '</tr>';
} }
echo '</tfoot></table></div>'; echo '</table>
<h1>Summary</h1>
<table class="table table-bordered table-hover table-striped table-condensed text-center">
<thead>
<tr><td></td>';
foreach($bands as $band) {
echo '<td>' . $band . '</td>';
}
echo '</tr>';
echo '</tr>
</thead>
<tbody>
<tr><td>Total worked</td>';
foreach ($dxcc_summary['worked'] as $dxcc) { // Fills the table with the data
echo '<td style="text-align: center">' . $dxcc . '</td>';
}
echo '</tr><tr>
<td>Total confirmed</td>';
foreach ($dxcc_summary['confirmed'] as $dxcc) { // Fills the table with the data
echo '<td style="text-align: center">' . $dxcc . '</td>';
}
echo '</tr>
</table>
</div>';
} }
else { else {