2024-05-09 15:55:03 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
class Gmdxsummer_model extends CI_Model
|
|
|
|
|
{
|
2026-05-06 10:33:35 +01:00
|
|
|
private const START_DATE = '2026-05-11 00:00:00';
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
public function get_week($end_date, $band, $mode)
|
|
|
|
|
{
|
|
|
|
|
$table_name = $this->config->item('table_name');
|
|
|
|
|
|
|
|
|
|
$CI = &get_instance();
|
|
|
|
|
$CI->load->model('logbooks_model');
|
|
|
|
|
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
|
|
|
|
|
2026-06-24 22:26:11 +01:00
|
|
|
if (!$logbooks_locations_array) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
$location_list = implode(',', array_map('intval', $logbooks_locations_array));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
$query = $this->db->query("
|
|
|
|
|
SELECT COUNT(DISTINCT SUBSTRING(COL_GRIDSQUARE, 1, 4)) AS count
|
|
|
|
|
FROM " . $table_name . "
|
2026-06-24 22:26:11 +01:00
|
|
|
WHERE station_id in (" . $location_list . ") AND COL_MODE = ? AND COL_BAND = ?
|
2026-05-06 10:33:35 +01:00
|
|
|
AND COL_GRIDSQUARE IS NOT NULL AND COL_GRIDSQUARE != ''
|
2026-06-24 22:26:11 +01:00
|
|
|
AND (COL_TIME_ON >= ? AND COL_TIME_ON <= ?)
|
|
|
|
|
", array($mode, $band, self::START_DATE, $end_date));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
return $query->row()->count;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function get_week_voice($end_date, $band)
|
|
|
|
|
{
|
|
|
|
|
$table_name = $this->config->item('table_name');
|
|
|
|
|
|
|
|
|
|
$CI = &get_instance();
|
|
|
|
|
$CI->load->model('logbooks_model');
|
|
|
|
|
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
|
|
|
|
|
2026-06-24 22:26:11 +01:00
|
|
|
if (!$logbooks_locations_array) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
$location_list = implode(',', array_map('intval', $logbooks_locations_array));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
$query = $this->db->query("
|
|
|
|
|
SELECT COUNT(DISTINCT SUBSTRING(COL_GRIDSQUARE, 1, 4)) AS count
|
|
|
|
|
FROM " . $table_name . "
|
2026-06-24 22:26:11 +01:00
|
|
|
WHERE station_id in (".$location_list.") AND COL_MODE IN ('SSB', 'AM', 'FM') AND COL_BAND = ?
|
2026-05-06 10:33:35 +01:00
|
|
|
AND COL_GRIDSQUARE IS NOT NULL AND COL_GRIDSQUARE != ''
|
2026-06-24 22:26:11 +01:00
|
|
|
AND (COL_TIME_ON >= ? AND COL_TIME_ON <= ?)
|
|
|
|
|
", array($band, self::START_DATE, $end_date));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
return $query->row()->count;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function get_week_digital($end_date, $band)
|
|
|
|
|
{
|
|
|
|
|
$table_name = $this->config->item('table_name');
|
|
|
|
|
|
|
|
|
|
$CI = &get_instance();
|
|
|
|
|
$CI->load->model('logbooks_model');
|
|
|
|
|
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
|
|
|
|
|
2026-06-24 22:26:11 +01:00
|
|
|
if (!$logbooks_locations_array) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
$location_list = implode(',', array_map('intval', $logbooks_locations_array));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
$query = $this->db->query("
|
|
|
|
|
SELECT COUNT(DISTINCT SUBSTRING(COL_GRIDSQUARE, 1, 4)) AS count
|
|
|
|
|
FROM " . $table_name . "
|
2026-06-24 22:26:11 +01:00
|
|
|
WHERE station_id in (".$location_list.") AND COL_MODE NOT IN ('CW', 'FM', 'SSB', 'AM') AND COL_BAND = ?
|
2026-05-06 10:33:35 +01:00
|
|
|
AND COL_GRIDSQUARE IS NOT NULL AND COL_GRIDSQUARE != ''
|
2026-06-24 22:26:11 +01:00
|
|
|
AND (COL_TIME_ON >= ? AND COL_TIME_ON <= ?)
|
|
|
|
|
", array($band, self::START_DATE, $end_date));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
return $query->row()->count;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function get_week_combined($end_date, $band)
|
|
|
|
|
{
|
|
|
|
|
$table_name = $this->config->item('table_name');
|
|
|
|
|
|
|
|
|
|
$CI = &get_instance();
|
|
|
|
|
$CI->load->model('logbooks_model');
|
|
|
|
|
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
|
|
|
|
|
2026-06-24 22:26:11 +01:00
|
|
|
if (!$logbooks_locations_array) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
$location_list = implode(',', array_map('intval', $logbooks_locations_array));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
2026-06-24 22:26:11 +01:00
|
|
|
$query = $this->db->query("
|
2026-05-06 10:33:35 +01:00
|
|
|
SELECT COUNT(DISTINCT CONCAT(
|
|
|
|
|
UPPER(SUBSTRING(COL_GRIDSQUARE, 1, 4)),
|
|
|
|
|
'-',
|
|
|
|
|
CASE
|
|
|
|
|
WHEN COL_MODE = 'CW' THEN 'CW'
|
|
|
|
|
WHEN COL_MODE IN ('SSB', 'AM', 'FM') THEN 'VOICE'
|
|
|
|
|
ELSE 'DIGITAL'
|
|
|
|
|
END
|
|
|
|
|
)) AS count
|
2024-05-09 15:55:03 +01:00
|
|
|
FROM " . $table_name . "
|
2026-06-24 22:26:11 +01:00
|
|
|
WHERE station_id in (".$location_list.") AND COL_BAND = ?
|
2026-05-06 10:33:35 +01:00
|
|
|
AND COL_GRIDSQUARE IS NOT NULL AND COL_GRIDSQUARE != ''
|
2026-06-24 22:26:11 +01:00
|
|
|
AND (COL_TIME_ON >= ? AND COL_TIME_ON <= ?)
|
|
|
|
|
", array($band, self::START_DATE, $end_date));
|
2024-05-09 15:55:03 +01:00
|
|
|
|
|
|
|
|
return $query->row()->count;
|
|
|
|
|
}
|
|
|
|
|
}
|