2019-06-26 08:17:06 +00:00
< ? php
class DOK extends CI_Model {
2022-01-26 08:18:29 +00:00
function show_stats ( $postdata ) {
2019-09-24 23:05:45 +00:00
$CI =& get_instance ();
2021-09-09 16:14:41 +00:00
$CI -> load -> model ( 'logbooks_model' );
$logbooks_locations_array = $CI -> logbooks_model -> list_logbook_relationships ( $this -> session -> userdata ( 'active_station_logbook' ));
2021-11-14 16:11:59 +00:00
if ( ! $logbooks_locations_array ) {
return null ;
}
2021-11-13 14:55:17 +00:00
$this -> load -> model ( 'bands' );
2021-09-09 16:14:41 +00:00
$location_list = " ' " . implode ( " ',' " , $logbooks_locations_array ) . " ' " ;
2022-01-26 08:18:29 +00:00
$sql = " select upper(COL_DARC_DOK) as COL_DARC_DOK, COL_MODE, lcase(COL_BAND) as COL_BAND, count(COL_DARC_DOK) as cnt from " . $this -> config -> item ( 'table_name' ) . " WHERE station_id in ( " . $location_list . " ) AND COL_DARC_DOK IS NOT NULL AND COL_DARC_DOK != '' AND COL_DXCC = 230 " ;
if ( $postdata [ 'doks' ] == 'dok' ) {
2022-05-13 19:00:10 +00:00
$sql .= " AND COL_DARC_DOK REGEXP '^[A-Z][0-9] { 2} $ ' " ;
2022-01-26 08:18:29 +00:00
} else if ( $postdata [ 'doks' ] == 'sdok' ) {
2022-05-13 19:00:10 +00:00
$sql .= " AND COL_DARC_DOK NOT REGEXP '^[A-Z][0-9] { 2} $ ' " ;
2022-01-26 08:18:29 +00:00
}
$sql .= " group by COL_DARC_DOK, COL_MODE, COL_BAND " ;
$sql .= " order by COL_DARC_DOK asc " ;
2019-06-26 08:17:06 +00:00
2022-01-26 08:18:29 +00:00
$data = $this -> db -> query ( $sql );
2019-06-26 08:17:06 +00:00
$results = array ();
$last_dok = " " ;
foreach ( $data -> result () as $row ){
if ( $last_dok != $row -> COL_DARC_DOK ){
// new row
2021-11-13 14:55:17 +00:00
$results [ $row -> COL_DARC_DOK ] = $this -> bands -> bandslots ;
2019-06-26 08:17:06 +00:00
$last_dok = $row -> COL_DARC_DOK ;
}
// update stats
if ( ! isset ( $results [ $row -> COL_DARC_DOK ]))
2021-09-09 16:14:41 +00:00
$results [ $row -> COL_DARC_DOK ] = [];
2019-06-26 08:17:06 +00:00
if ( ! isset ( $results [ $row -> COL_DARC_DOK ][ $row -> COL_BAND ]))
2021-09-09 16:14:41 +00:00
$results [ $row -> COL_DARC_DOK ][ $row -> COL_BAND ] = 0 ;
2019-06-26 08:17:06 +00:00
$results [ $row -> COL_DARC_DOK ][ $row -> COL_BAND ] += $row -> cnt ;
}
2021-09-09 16:14:41 +00:00
2019-06-26 08:17:06 +00:00
return $results ;
}
/**
* Function : mostactive
* Information : Returns the most active band
**/
function info ( $callsign )
{
$exceptions = $this -> db -> query ( '
SELECT *
2021-04-05 21:26:20 +00:00
FROM `dxcc_exceptions`
2019-06-26 08:17:06 +00:00
WHERE `prefix` = \ '' . $callsign . ' \ '
LIMIT 1
' );
if ( $exceptions -> num_rows () > 0 )
{
return $exceptions ;
} else {
$query = $this -> db -> query ( '
SELECT *
FROM dxcc_entities
WHERE prefix = SUBSTRING ( \ '' . $callsign . ' \ ' , 1 , LENGTH ( prefix ) )
ORDER BY LENGTH ( prefix ) DESC
LIMIT 1
' );
return $query ;
}
}
function search (){
print_r ( $this -> input -> get ());
return ;
}
function empty_table ( $table ) {
$this -> db -> empty_table ( $table );
}
function list () {
$this -> db -> order_by ( 'name' , 'ASC' );
return $this -> db -> get ( 'dxcc_entities' );
}
}
?>