2021-11-13 14:55:17 +00:00
< ? php
class Bands extends CI_Model {
public $bandslots = array (
" 160m " => 0 ,
" 80m " => 0 ,
" 60m " => 0 ,
" 40m " => 0 ,
" 30m " => 0 ,
" 20m " => 0 ,
" 17m " => 0 ,
" 15m " => 0 ,
" 12m " => 0 ,
" 10m " => 0 ,
2022-01-21 04:10:16 +00:00
" 6m " => 0 ,
" 4m " => 0 ,
" 2m " => 0 ,
" 1.25m " => 0 ,
2021-11-13 14:55:17 +00:00
" 70cm " => 0 ,
2022-01-21 04:10:16 +00:00
" 33cm " => 0 ,
2021-11-13 14:55:17 +00:00
" 23cm " => 0 ,
" 13cm " => 0 ,
" 9cm " => 0 ,
" 6cm " => 0 ,
" 3cm " => 0 ,
" 1.25cm " => 0 ,
" SAT " => 0 ,
);
2022-09-04 16:26:21 +00:00
function get_user_bands ( $award = 'None' ) {
$this -> db -> from ( 'bands' );
$this -> db -> join ( 'bandxuser' , 'bandxuser.bandid = bands.id' );
$this -> db -> where ( 'bandxuser.userid' , $this -> session -> userdata ( 'user_id' ));
$this -> db -> where ( 'bandxuser.active' , 1 );
if ( $award != 'None' ) {
$this -> db -> where ( 'bandxuser.".$award' , 1 );
}
$result = $this -> db -> get () -> result ();
$results = array ();
foreach ( $result as $band ) {
array_push ( $results , $band -> band );
}
return $results ;
}
function get_all_bands_for_user () {
$this -> db -> from ( 'bands' );
$this -> db -> join ( 'bandxuser' , 'bandxuser.bandid = bands.id' );
$this -> db -> where ( 'bandxuser.userid' , $this -> session -> userdata ( 'user_id' ));
return $this -> db -> get () -> result ();
2022-09-04 06:49:58 +00:00
}
function all () {
return $this -> bandslots ;
}
2022-09-04 16:26:21 +00:00
function get_worked_bands ( $award = 'None' ) {
2021-11-13 14:55:17 +00:00
$CI =& get_instance ();
$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 array ();
}
2021-11-13 14:55:17 +00:00
$location_list = " ' " . implode ( " ',' " , $logbooks_locations_array ) . " ' " ;
// get all worked slots from database
$data = $this -> db -> query (
" SELECT distinct LOWER(`COL_BAND`) as `COL_BAND` FROM ` " . $this -> config -> item ( 'table_name' ) . " ` WHERE station_id in ( " . $location_list . " ) AND COL_PROP_MODE != \" SAT \" "
);
$worked_slots = array ();
foreach ( $data -> result () as $row ){
array_push ( $worked_slots , $row -> COL_BAND );
}
$SAT_data = $this -> db -> query (
" SELECT distinct LOWER(`COL_PROP_MODE`) as `COL_PROP_MODE` FROM ` " . $this -> config -> item ( 'table_name' ) . " ` WHERE station_id in ( " . $location_list . " ) AND COL_PROP_MODE = \" SAT \" "
);
foreach ( $SAT_data -> result () as $row ){
array_push ( $worked_slots , strtoupper ( $row -> COL_PROP_MODE ));
}
2022-09-04 16:26:21 +00:00
$bandslots = $this -> get_user_bands ( $award );
2021-11-13 14:55:17 +00:00
$results = array ();
2022-09-04 16:26:21 +00:00
foreach ( $bandslots as $slot ) {
2021-11-13 14:55:17 +00:00
if ( in_array ( $slot , $worked_slots )) {
array_push ( $results , $slot );
}
}
return $results ;
}
function get_worked_bands_distances () {
$CI =& get_instance ();
$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 array ();
}
2021-11-13 14:55:17 +00:00
$location_list = " ' " . implode ( " ',' " , $logbooks_locations_array ) . " ' " ;
// get all worked slots from database
$sql = " SELECT distinct LOWER(COL_BAND) as COL_BAND FROM " . $this -> config -> item ( 'table_name' ) . " WHERE station_id in ( " . $location_list . " ) " ;
$data = $this -> db -> query ( $sql );
$worked_slots = array ();
foreach ( $data -> result () as $row ){
array_push ( $worked_slots , $row -> COL_BAND );
}
// bring worked-slots in order of defined $bandslots
$results = array ();
foreach ( array_keys ( $this -> bandslots ) as $slot ) {
if ( in_array ( $slot , $worked_slots )) {
array_push ( $results , $slot );
}
}
return $results ;
}
function get_worked_sats () {
$CI =& get_instance ();
$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 array ();
}
2021-11-13 14:55:17 +00:00
$location_list = " ' " . implode ( " ',' " , $logbooks_locations_array ) . " ' " ;
// get all worked sats from database
$sql = " SELECT distinct col_sat_name FROM " . $this -> config -> item ( 'table_name' ) . " WHERE station_id in ( " . $location_list . " ) and coalesce(col_sat_name, '') <> '' ORDER BY col_sat_name " ;
$data = $this -> db -> query ( $sql );
$worked_sats = array ();
foreach ( $data -> result () as $row ){
array_push ( $worked_sats , $row -> col_sat_name );
}
return $worked_sats ;
}
function get_worked_bands_dok () {
$CI =& get_instance ();
$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 array ();
}
2021-11-13 14:55:17 +00:00
$location_list = " ' " . implode ( " ',' " , $logbooks_locations_array ) . " ' " ;
// get all worked slots from database
$data = $this -> db -> query (
" SELECT distinct LOWER(`COL_BAND`) as `COL_BAND` 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 "
);
$worked_slots = array ();
foreach ( $data -> result () as $row ){
array_push ( $worked_slots , $row -> COL_BAND );
}
// bring worked-slots in order of defined $bandslots
$results = array ();
foreach ( array_keys ( $this -> bandslots ) as $slot ) {
if ( in_array ( $slot , $worked_slots )) {
array_push ( $results , $slot );
}
}
return $results ;
}
}
?>