2019-01-01 19:14:25 +00:00
< ? php
class Stations extends CI_Model {
2019-09-24 23:38:13 +00:00
function all_with_count () {
2019-09-24 21:19:49 +00:00
2023-04-26 20:39:09 +00:00
$this -> db -> select ( 'station_profile.*, dxcc_entities.name as station_country, dxcc_entities.end as dxcc_end, count(' . $this -> config -> item ( 'table_name' ) . '.station_id) as qso_total' );
2019-09-24 21:19:49 +00:00
$this -> db -> from ( 'station_profile' );
$this -> db -> join ( $this -> config -> item ( 'table_name' ), 'station_profile.station_id = ' . $this -> config -> item ( 'table_name' ) . '.station_id' , 'left' );
2023-04-28 13:14:59 +00:00
$this -> db -> join ( 'dxcc_entities' , 'station_profile.station_dxcc = dxcc_entities.adif' , 'left outer' );
2019-09-24 21:19:49 +00:00
$this -> db -> group_by ( 'station_profile.station_id' );
2021-08-23 14:50:19 +00:00
$this -> db -> where ( 'station_profile.user_id' , $this -> session -> userdata ( 'user_id' ));
2021-10-20 19:26:35 +00:00
$this -> db -> or_where ( 'station_profile.user_id =' , NULL );
2019-09-24 21:19:49 +00:00
return $this -> db -> get ();
2019-01-01 19:14:25 +00:00
}
2021-09-29 21:02:08 +00:00
// Returns ALL station profiles regardless of user logged in
// This is also used by LoTW sync so must not be changed.
2019-09-24 23:38:13 +00:00
function all () {
2023-04-25 20:03:13 +00:00
$this -> db -> select ( 'station_profile.*, dxcc_entities.name as station_country' );
$this -> db -> from ( 'station_profile' );
2023-04-28 13:14:59 +00:00
$this -> db -> join ( 'dxcc_entities' , 'station_profile.station_dxcc = dxcc_entities.adif' , 'left outer' );
2023-04-25 20:03:13 +00:00
return $this -> db -> get ();
2019-09-24 23:38:13 +00:00
}
2023-07-05 14:16:53 +00:00
function all_of_user ( $userid = null ) {
2023-11-24 15:15:01 +00:00
if ( $userid == null ) {
2023-07-05 14:16:53 +00:00
$userid = $this -> session -> userdata ( 'user_id' ); // Fallback to session-uid, if userid is omitted
}
2023-04-26 20:39:09 +00:00
$this -> db -> select ( 'station_profile.*, dxcc_entities.name as station_country, dxcc_entities.end as dxcc_end' );
2023-07-05 14:16:53 +00:00
$this -> db -> where ( 'user_id' , $userid );
2023-04-28 13:14:59 +00:00
$this -> db -> join ( 'dxcc_entities' , 'station_profile.station_dxcc = dxcc_entities.adif' , 'left outer' );
2021-10-31 08:56:45 +00:00
return $this -> db -> get ( 'station_profile' );
}
2023-11-24 15:15:01 +00:00
function callsigns_of_user ( $userid = null ) {
if ( $userid == null ) {
$userid = $this -> session -> userdata ( 'user_id' ); // Fallback to session-uid, if userid is omitted
}
$this -> db -> select ( 'distinct(station_profile.station_callsign) as callsign' );
$this -> db -> where ( 'user_id' , $userid );
return $this -> db -> get ( 'station_profile' );
}
2019-08-19 21:25:50 +00:00
function profile ( $id ) {
2019-10-05 18:16:05 +00:00
// Clean ID
$clean_id = $this -> security -> xss_clean ( $id );
2020-12-07 16:32:12 +00:00
$this -> db -> where ( 'station_id' , $clean_id );
return $this -> db -> get ( 'station_profile' );
}
function profile_clean ( $id ) {
// Clean ID
$clean_id = $this -> security -> xss_clean ( $id );
2019-10-05 18:16:05 +00:00
$this -> db -> where ( 'station_id' , $clean_id );
2020-12-07 16:32:12 +00:00
$query = $this -> db -> get ( 'station_profile' );
$row = $query -> row ();
return $row ;
2019-08-19 21:25:50 +00:00
}
2020-09-15 21:49:05 +00:00
/*
* Function : add
* Adds post material into the station profile table .
*/
2019-01-01 19:14:25 +00:00
function add () {
2021-12-04 16:14:57 +00:00
// check if user has no active station profile yet
$station_active = null ;
if ( $this -> find_active () === '0' ) {
$station_active = 1 ;
}
2023-06-15 12:22:13 +00:00
// Check if the state is Canada and get the correct state
if ( $this -> input -> post ( 'dxcc' ) == 1 && $this -> input -> post ( 'station_ca_state' ) != " " ) {
$state = $this -> input -> post ( 'station_ca_state' );
} else {
$state = $this -> input -> post ( 'station_state' );
}
2020-09-15 21:49:05 +00:00
// Create data array with field values
2019-01-01 19:14:25 +00:00
$data = array (
2021-11-15 18:54:01 +00:00
'user_id' => $this -> session -> userdata ( 'user_id' ),
2021-12-04 16:14:57 +00:00
'station_active' => $station_active ,
2019-10-05 21:02:28 +00:00
'station_profile_name' => xss_clean ( $this -> input -> post ( 'station_profile_name' , true )),
'station_gridsquare' => xss_clean ( strtoupper ( $this -> input -> post ( 'gridsquare' , true ))),
'station_city' => xss_clean ( $this -> input -> post ( 'city' , true )),
'station_iota' => xss_clean ( strtoupper ( $this -> input -> post ( 'iota' , true ))),
'station_sota' => xss_clean ( strtoupper ( $this -> input -> post ( 'sota' , true ))),
2022-08-17 12:33:15 +00:00
'station_wwff' => xss_clean ( strtoupper ( $this -> input -> post ( 'wwff' , true ))),
2022-10-05 15:05:53 +00:00
'station_pota' => xss_clean ( strtoupper ( $this -> input -> post ( 'pota' , true ))),
2020-11-08 09:19:47 +00:00
'station_sig' => xss_clean ( strtoupper ( $this -> input -> post ( 'sig' , true ))),
'station_sig_info' => xss_clean ( strtoupper ( $this -> input -> post ( 'sig_info' , true ))),
2019-10-05 21:02:28 +00:00
'station_callsign' => xss_clean ( $this -> input -> post ( 'station_callsign' , true )),
2023-04-28 12:04:59 +00:00
'station_power' => is_numeric ( xss_clean ( $this -> input -> post ( 'station_power' , true ))) ? xss_clean ( $this -> input -> post ( 'station_power' , true )) : NULL ,
2019-10-05 21:02:28 +00:00
'station_dxcc' => xss_clean ( $this -> input -> post ( 'dxcc' , true )),
'station_cnty' => xss_clean ( $this -> input -> post ( 'station_cnty' , true )),
'station_cq' => xss_clean ( $this -> input -> post ( 'station_cq' , true )),
'station_itu' => xss_clean ( $this -> input -> post ( 'station_itu' , true )),
2023-06-15 12:22:13 +00:00
'state' => $state ,
2023-07-07 11:33:15 +00:00
'eqslqthnickname' => xss_clean ( $this -> input -> post ( 'eqslnickname' , true )),
2023-12-15 22:04:34 +00:00
'hrdlog_username' => xss_clean ( $this -> input -> post ( 'hrdlog_username' , true )),
2023-07-07 11:33:15 +00:00
'hrdlog_code' => xss_clean ( $this -> input -> post ( 'hrdlog_code' , true )),
'hrdlogrealtime' => xss_clean ( $this -> input -> post ( 'hrdlogrealtime' , true )),
2023-11-27 14:28:22 +00:00
'clublogrealtime' => xss_clean ( $this -> input -> post ( 'clublogrealtime' , true )),
2023-07-07 11:33:15 +00:00
'qrzapikey' => xss_clean ( $this -> input -> post ( 'qrzapikey' , true )),
'qrzrealtime' => xss_clean ( $this -> input -> post ( 'qrzrealtime' , true )),
2022-11-15 17:29:33 +00:00
'oqrs' => xss_clean ( $this -> input -> post ( 'oqrs' , true )),
'oqrs_email' => xss_clean ( $this -> input -> post ( 'oqrsemail' , true )),
'oqrs_text' => xss_clean ( $this -> input -> post ( 'oqrstext' , true )),
2023-03-16 18:58:48 +00:00
'webadifapikey' => xss_clean ( $this -> input -> post ( 'webadifapikey' , true )),
'webadifapiurl' => 'https://qo100dx.club/api' ,
'webadifrealtime' => xss_clean ( $this -> input -> post ( 'webadifrealtime' , true )),
2019-01-01 19:14:25 +00:00
);
2023-11-29 13:17:58 +00:00
// Insert Records & return insert id //
if ( $this -> db -> insert ( 'station_profile' , $data ) === true ) {
$station_user_list = $this -> all_of_user () -> result ();
if (( count ( $station_user_list ) > 0 ) && ( isset ( $station_user_list [ intval ( count ( $station_user_list ) - 1 )] -> station_id ))) {
return $station_user_list [ intval ( count ( $station_user_list ) - 1 )] -> station_id ;
}
}
2019-01-01 19:14:25 +00:00
}
function edit () {
2023-06-15 12:14:10 +00:00
2023-06-15 12:22:13 +00:00
// Check if the state is Canada and get the correct state
2023-06-15 12:14:10 +00:00
if ( $this -> input -> post ( 'dxcc' ) == 1 && $this -> input -> post ( 'station_ca_state' ) != " " ) {
$state = $this -> input -> post ( 'station_ca_state' );
} else {
$state = $this -> input -> post ( 'station_state' );
}
2023-06-15 12:22:13 +00:00
2019-01-01 19:14:25 +00:00
$data = array (
2019-10-05 21:02:28 +00:00
'station_profile_name' => xss_clean ( $this -> input -> post ( 'station_profile_name' , true )),
'station_gridsquare' => xss_clean ( $this -> input -> post ( 'gridsquare' , true )),
'station_city' => xss_clean ( $this -> input -> post ( 'city' , true )),
'station_iota' => xss_clean ( $this -> input -> post ( 'iota' , true )),
'station_sota' => xss_clean ( $this -> input -> post ( 'sota' , true )),
2022-08-17 12:33:15 +00:00
'station_wwff' => xss_clean ( $this -> input -> post ( 'wwff' , true )),
2022-10-05 15:05:53 +00:00
'station_pota' => xss_clean ( $this -> input -> post ( 'pota' , true )),
2020-11-08 09:19:47 +00:00
'station_sig' => xss_clean ( $this -> input -> post ( 'sig' , true )),
'station_sig_info' => xss_clean ( $this -> input -> post ( 'sig_info' , true )),
2019-10-05 21:02:28 +00:00
'station_callsign' => xss_clean ( $this -> input -> post ( 'station_callsign' , true )),
2023-04-28 12:04:59 +00:00
'station_power' => is_numeric ( xss_clean ( $this -> input -> post ( 'station_power' , true ))) ? xss_clean ( $this -> input -> post ( 'station_power' , true )) : NULL ,
2019-10-05 21:02:28 +00:00
'station_dxcc' => xss_clean ( $this -> input -> post ( 'dxcc' , true )),
'station_cnty' => xss_clean ( $this -> input -> post ( 'station_cnty' , true )),
'station_cq' => xss_clean ( $this -> input -> post ( 'station_cq' , true )),
'station_itu' => xss_clean ( $this -> input -> post ( 'station_itu' , true )),
2023-06-15 12:14:10 +00:00
'state' => $state ,
2019-10-05 21:02:28 +00:00
'eqslqthnickname' => xss_clean ( $this -> input -> post ( 'eqslnickname' , true )),
2023-12-15 22:04:34 +00:00
'hrdlog_username' => xss_clean ( $this -> input -> post ( 'hrdlog_username' , true )),
2023-07-07 11:33:15 +00:00
'hrdlog_code' => xss_clean ( $this -> input -> post ( 'hrdlog_code' , true )),
'hrdlogrealtime' => xss_clean ( $this -> input -> post ( 'hrdlogrealtime' , true )),
2023-11-27 14:28:22 +00:00
'clublogrealtime' => xss_clean ( $this -> input -> post ( 'clublogrealtime' , true )),
2023-07-07 11:33:15 +00:00
'qrzapikey' => xss_clean ( $this -> input -> post ( 'qrzapikey' , true )),
'qrzrealtime' => xss_clean ( $this -> input -> post ( 'qrzrealtime' , true )),
2022-11-15 17:29:33 +00:00
'oqrs' => xss_clean ( $this -> input -> post ( 'oqrs' , true )),
'oqrs_email' => xss_clean ( $this -> input -> post ( 'oqrsemail' , true )),
'oqrs_text' => xss_clean ( $this -> input -> post ( 'oqrstext' , true )),
2023-03-16 18:58:48 +00:00
'webadifapikey' => xss_clean ( $this -> input -> post ( 'webadifapikey' , true )),
'webadifapiurl' => 'https://qo100dx.club/api' ,
'webadifrealtime' => xss_clean ( $this -> input -> post ( 'webadifrealtime' , true )),
2019-01-01 19:14:25 +00:00
);
2021-10-31 09:17:14 +00:00
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
2019-10-05 21:02:28 +00:00
$this -> db -> where ( 'station_id' , xss_clean ( $this -> input -> post ( 'station_id' , true )));
2023-03-16 18:58:48 +00:00
$this -> db -> update ( 'station_profile' , $data );
2019-01-01 19:14:25 +00:00
}
function delete ( $id ) {
2019-10-05 18:16:05 +00:00
// Clean ID
$clean_id = $this -> security -> xss_clean ( $id );
2021-12-04 16:14:57 +00:00
// do not delete active station
if ( $clean_id === $this -> find_active ()) {
return ;
}
2019-12-03 19:16:40 +00:00
// Delete QSOs
$this -> db -> where ( 'station_id' , $id );
$this -> db -> delete ( $this -> config -> item ( 'table_name' ));
// Delete Station Profile
2023-03-16 18:58:48 +00:00
$this -> db -> delete ( 'station_profile' , array ( 'station_id' => $clean_id ));
2019-01-01 19:14:25 +00:00
}
2020-02-07 13:54:49 +00:00
function deletelog ( $id ) {
// Delete QSOs
$this -> db -> where ( 'station_id' , $id );
$this -> db -> delete ( $this -> config -> item ( 'table_name' ));
}
2021-08-23 14:50:19 +00:00
function claim_user ( $id ) {
$data = array (
2021-08-23 16:34:00 +00:00
'user_id' => $this -> session -> userdata ( 'user_id' ),
2021-08-23 14:50:19 +00:00
);
2023-03-16 18:58:48 +00:00
2021-08-23 16:34:00 +00:00
$this -> db -> where ( 'station_id' , $id );
$this -> db -> update ( 'station_profile' , $data );
2022-10-09 13:55:46 +00:00
}
function ClaimAllStationLocations ( $id = NULL ) {
// if $id is empty then use session user_id
if ( empty ( $id )) {
// Get the first USER ID from user table in the database
$id = $this -> db -> get ( " users " ) -> row () -> user_id ;
}
2022-10-09 15:46:37 +00:00
2022-10-09 13:55:46 +00:00
$data = array (
'user_id' => $id ,
);
2023-03-16 18:58:48 +00:00
2022-10-09 13:55:46 +00:00
$this -> db -> update ( 'station_profile' , $data );
2021-08-23 14:50:19 +00:00
}
2022-10-09 15:46:37 +00:00
function CountAllStationLocations () {
2022-10-11 16:10:44 +00:00
$this -> db -> where ( 'user_id =' , NULL );
2022-10-11 15:54:32 +00:00
$query = $this -> db -> get ( 'station_profile' );
return $query -> num_rows ();
2022-10-09 15:46:37 +00:00
}
2019-09-23 16:29:22 +00:00
function set_active ( $current , $new ) {
2019-10-05 18:16:05 +00:00
// Clean inputs
$clean_current = $this -> security -> xss_clean ( $current );
$clean_new = $this -> security -> xss_clean ( $new );
2021-10-31 08:56:45 +00:00
// be sure that stations belong to user
2021-10-31 09:17:14 +00:00
if ( $clean_current != 0 ) {
if ( ! $this -> check_station_is_accessible ( $clean_current )) {
return ;
}
2021-10-31 08:56:45 +00:00
}
2021-10-31 09:17:14 +00:00
if ( ! $this -> check_station_is_accessible ( $clean_new )) {
2021-10-31 08:56:45 +00:00
return ;
}
// Deselect current default
2019-09-23 16:29:22 +00:00
$current_default = array (
2021-10-31 08:56:45 +00:00
'station_active' => null ,
2019-09-23 16:29:22 +00:00
);
2021-10-31 08:56:45 +00:00
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
2019-09-23 16:29:22 +00:00
$this -> db -> update ( 'station_profile' , $current_default );
2021-10-31 08:56:45 +00:00
2023-03-16 18:58:48 +00:00
// Deselect current default
2019-09-23 16:29:22 +00:00
$newdefault = array (
'station_active' => 1 ,
);
2021-10-31 08:56:45 +00:00
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
2019-10-05 18:16:05 +00:00
$this -> db -> where ( 'station_id' , $clean_new );
2019-09-23 16:29:22 +00:00
$this -> db -> update ( 'station_profile' , $newdefault );
2021-10-31 08:56:45 +00:00
}
public function find_active () {
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
$this -> db -> where ( 'station_active' , 1 );
$query = $this -> db -> get ( 'station_profile' );
2019-09-23 16:29:22 +00:00
2021-10-31 08:56:45 +00:00
if ( $query -> num_rows () >= 1 ) {
foreach ( $query -> result () as $row )
2019-09-23 16:29:22 +00:00
{
return $row -> station_id ;
}
2021-10-31 08:56:45 +00:00
} else {
2019-09-23 16:29:22 +00:00
return " 0 " ;
}
2020-02-18 09:49:27 +00:00
}
2023-03-16 18:58:48 +00:00
2020-02-18 09:49:27 +00:00
public function find_gridsquare () {
2021-10-31 08:56:45 +00:00
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
$this -> db -> where ( 'station_active' , 1 );
$query = $this -> db -> get ( 'station_profile' );
if ( $query -> num_rows () >= 1 ) {
foreach ( $query -> result () as $row )
2020-02-18 09:49:27 +00:00
{
return $row -> station_gridsquare ;
}
2021-10-31 08:56:45 +00:00
} else {
2020-02-18 09:49:27 +00:00
return " 0 " ;
}
2021-10-31 08:56:45 +00:00
}
2019-09-23 16:29:22 +00:00
2022-05-02 10:38:55 +00:00
public function find_name () {
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
$this -> db -> where ( 'station_active' , 1 );
$query = $this -> db -> get ( 'station_profile' );
if ( $query -> num_rows () >= 1 ) {
foreach ( $query -> result () as $row )
{
return $row -> station_profile_name ;
}
} else {
return " 0 " ;
}
}
2019-09-23 16:29:22 +00:00
public function reassign ( $id ) {
2019-10-05 18:16:05 +00:00
// Clean ID
$clean_id = $this -> security -> xss_clean ( $id );
2023-04-24 22:13:49 +00:00
$this -> db -> select ( 'station_profile.*, dxcc_entities.name as station_country' );
$this -> db -> where ( 'station_id' , $clean_id );
2023-04-28 13:14:59 +00:00
$this -> db -> join ( 'dxcc_entities' , 'station_profile.station_dxcc = dxcc_entities.adif' , 'left outer' );
2019-09-23 16:29:22 +00:00
$query = $this -> db -> get ( 'station_profile' );
$row = $query -> row ();
//print_r($row);
$data = array (
'station_id' => $id ,
);
$this -> db -> where ( 'COL_STATION_CALLSIGN' , $row -> station_callsign );
2023-03-16 18:58:48 +00:00
2019-09-23 16:29:22 +00:00
if ( $row -> station_iota != " " ) {
2019-09-23 17:35:56 +00:00
$this -> db -> where ( 'COL_MY_IOTA' , $row -> station_iota );
2019-09-23 16:29:22 +00:00
}
if ( $row -> station_sota != " " ) {
$this -> db -> where ( 'COL_MY_SOTA_REF' , $row -> station_sota );
}
2022-08-17 12:33:15 +00:00
if ( $row -> station_wwff != " " ) {
$this -> db -> where ( 'COL_MY_WWFF_REF' , $row -> station_wwff );
}
2022-10-05 15:05:53 +00:00
if ( $row -> station_pota != " " ) {
$this -> db -> where ( 'COL_MY_POTA_REF' , $row -> station_pota );
}
2020-11-08 20:46:57 +00:00
if ( $row -> station_sig != " " ) {
$this -> db -> where ( 'COL_MY_SIG' , $row -> station_sig );
}
if ( $row -> station_sig_info != " " ) {
$this -> db -> where ( 'COL_MY_SIG_INFO' , $row -> station_sig_info );
}
2019-09-23 16:29:22 +00:00
$this -> db -> where ( 'COL_MY_COUNTRY' , $row -> station_country );
if ( strpos ( $row -> station_gridsquare , ',' ) !== false ) {
$this -> db -> where ( 'COL_MY_VUCC_GRIDS' , $row -> station_gridsquare );
} else {
$this -> db -> where ( 'COL_MY_GRIDSQUARE' , $row -> station_gridsquare );
}
$this -> db -> update ( $this -> config -> item ( 'table_name' ), $data );
$str = $this -> db -> last_query ();
}
function profile_exists () {
$query = $this -> db -> get ( 'station_profile' );
if ( $query -> num_rows () >= 1 ) {
return 1 ;
} else {
return 0 ;
2023-03-16 18:58:48 +00:00
}
2019-09-23 16:29:22 +00:00
}
2023-07-07 11:33:15 +00:00
function stations_with_hrdlog_code () {
2023-12-16 06:48:19 +00:00
$sql = " SELECT station_profile.station_id, station_profile.station_profile_name, station_profile.station_callsign, modc.modcount, notc.notcount, totc.totcount
FROM station_profile
LEFT OUTER JOIN (
SELECT count ( * ) modcount , station_id
FROM " . $this->config ->item('table_name') .
" WHERE COL_HRDLOG_QSO_UPLOAD_STATUS = 'M'
2023-07-07 11:33:15 +00:00
group by station_id
) as modc on station_profile . station_id = modc . station_id
2023-12-16 06:48:19 +00:00
LEFT OUTER JOIN (
SELECT count ( * ) notcount , station_id
FROM " . $this->config ->item('table_name') .
" WHERE (coalesce(COL_HRDLOG_QSO_UPLOAD_STATUS, '') = ''
2023-07-07 11:33:15 +00:00
or COL_HRDLOG_QSO_UPLOAD_STATUS = 'N' )
group by station_id
) as notc on station_profile . station_id = notc . station_id
2023-12-16 06:48:19 +00:00
LEFT OUTER JOIN (
SELECT count ( * ) totcount , station_id
FROM " . $this->config ->item('table_name') .
" WHERE COL_HRDLOG_QSO_UPLOAD_STATUS = 'Y'
2023-07-07 11:33:15 +00:00
group by station_id
) as totc on station_profile . station_id = totc . station_id
2023-12-16 06:48:19 +00:00
WHERE coalesce ( station_profile . hrdlog_code , '' ) <> '' AND coalesce ( station_profile . hrdlog_username , '' ) <> ''
AND station_profile . user_id = " . $this->session ->userdata('user_id');
2023-07-07 11:33:15 +00:00
$query = $this -> db -> query ( $sql );
return $query ;
}
2019-09-23 16:29:22 +00:00
2020-05-20 17:43:13 +00:00
function stations_with_qrz_api_key () {
2023-12-16 06:48:19 +00:00
$sql = " SELECT station_profile.station_id, station_profile.station_profile_name, station_profile.station_callsign, modc.modcount, notc.notcount, totc.totcount
FROM station_profile
LEFT OUTER JOIN (
SELECT count ( * ) modcount , station_id
FROM " . $this->config ->item('table_name') .
" WHERE COL_QRZCOM_QSO_UPLOAD_STATUS = 'M'
2020-05-20 17:43:13 +00:00
group by station_id
) as modc on station_profile . station_id = modc . station_id
2023-12-16 06:48:19 +00:00
LEFT OUTER JOIN (
SELECT count ( * ) notcount , station_id
FROM " . $this->config ->item('table_name') .
" WHERE (coalesce(COL_QRZCOM_QSO_UPLOAD_STATUS, '') = ''
2020-05-20 17:43:13 +00:00
or COL_QRZCOM_QSO_UPLOAD_STATUS = 'N' )
group by station_id
) as notc on station_profile . station_id = notc . station_id
2023-12-16 06:48:19 +00:00
LEFT OUTER JOIN (
SELECT count ( * ) totcount , station_id
FROM " . $this->config ->item('table_name') .
" WHERE COL_QRZCOM_QSO_UPLOAD_STATUS = 'Y'
2020-05-20 17:43:13 +00:00
group by station_id
) as totc on station_profile . station_id = totc . station_id
2023-12-16 06:48:19 +00:00
WHERE coalesce ( station_profile . qrzapikey , '' ) <> ''
AND station_profile . user_id = " . $this->session ->userdata('user_id');
2020-05-20 17:43:13 +00:00
$query = $this -> db -> query ( $sql );
return $query ;
}
2023-03-17 17:54:35 +00:00
function stations_with_webadif_api_key () {
$sql = "
SELECT station_profile . station_id , station_profile . station_profile_name , station_profile . station_callsign , notc . c notcount , totc . c totcount
FROM station_profile
2023-06-29 20:05:04 +00:00
LEFT OUTER JOIN (
2023-03-17 17:54:35 +00:00
SELECT qsos . station_id , COUNT ( qsos . COL_PRIMARY_KEY ) c
FROM % s qsos
LEFT JOIN webadif ON qsos . COL_PRIMARY_KEY = webadif . qso_id
2023-03-27 14:03:11 +00:00
WHERE webadif . qso_id IS NULL AND qsos . COL_SAT_NAME = 'QO-100'
2023-03-17 17:54:35 +00:00
GROUP BY qsos . station_id
2023-03-19 10:49:58 +00:00
) notc ON station_profile . station_id = notc . station_id
2023-06-29 20:05:04 +00:00
LEFT JOIN (
2023-03-17 17:54:35 +00:00
SELECT qsos . station_id , COUNT ( qsos . COL_PRIMARY_KEY ) c
FROM % s qsos
2023-03-27 14:03:11 +00:00
WHERE qsos . COL_SAT_NAME = 'QO-100'
2023-03-17 17:54:35 +00:00
GROUP BY qsos . station_id
2023-03-19 10:49:58 +00:00
) totc ON station_profile . station_id = totc . station_id
2023-03-17 17:54:35 +00:00
WHERE COALESCE ( station_profile . webadifapikey , '' ) <> ''
AND COALESCE ( station_profile . webadifapiurl , '' ) <> ''
AND station_profile . user_id = % d
" ;
$sql = sprintf (
$sql ,
$this -> config -> item ( 'table_name' ),
$this -> config -> item ( 'table_name' ),
$this -> session -> userdata ( 'user_id' )
);
return $this -> db -> query ( $sql );
}
2020-09-15 21:49:05 +00:00
/*
* Function : are_eqsl_nicks_defined
* Description : Returns number of station profiles with eqslnicknames
*/
function are_eqsl_nicks_defined () {
$this -> db -> select ( 'eqslqthnickname' );
$this -> db -> where ( 'eqslqthnickname IS NOT NULL' );
$this -> db -> where ( 'eqslqthnickname !=' , '' );
$this -> db -> from ( 'station_profile' );
$query = $this -> db -> get ();
return $query -> num_rows ();
}
2021-10-31 09:17:14 +00:00
public function check_station_is_accessible ( $id ) {
// check if station belongs to user
2021-11-14 16:50:11 +00:00
$this -> db -> select ( 'station_id' );
2021-10-31 09:17:14 +00:00
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
$this -> db -> where ( 'station_id' , $id );
$query = $this -> db -> get ( 'station_profile' );
if ( $query -> num_rows () == 1 ) {
return true ;
}
return false ;
}
2023-04-27 21:02:57 +00:00
public function get_station_power ( $id ) {
$this -> db -> select ( 'station_power' );
$this -> db -> where ( 'user_id' , $this -> session -> userdata ( 'user_id' ));
$this -> db -> where ( 'station_id' , $id );
$query = $this -> db -> get ( 'station_profile' );
if ( $query -> num_rows () >= 1 ) {
foreach ( $query -> result () as $row )
{
return $row -> station_power ;
}
} else {
return null ;
}
}
2023-06-15 06:12:57 +00:00
public function check_station_against_user ( $stationid , $userid ) {
$this -> db -> select ( 'station_id' );
$this -> db -> where ( 'user_id' , $userid );
2023-06-15 07:26:17 +00:00
$this -> db -> where ( 'station_id' , $stationid );
2023-06-15 06:12:57 +00:00
$query = $this -> db -> get ( 'station_profile' );
if ( $query -> num_rows () == 1 ) {
return true ;
}
return false ;
}
2023-09-05 22:02:07 +00:00
public function check_station_against_callsign ( $stationid , $callsign ) {
$this -> db -> select ( 'station_id' );
$this -> db -> where ( 'station_callsign' , $callsign );
$this -> db -> where ( 'station_id' , $stationid );
$query = $this -> db -> get ( 'station_profile' );
if ( $query -> num_rows () == 1 ) {
return true ;
}
return false ;
}
2023-11-30 17:11:22 +00:00
2023-12-12 06:40:12 +00:00
// [MAP Custom] get array for json structure (for map) about info's station //
public function get_station_array_for_map () {
2023-11-30 17:11:22 +00:00
$_jsonresult = array ();
list ( $station_lat , $station_lng ) = array ( 0 , 0 );
$station_active = $this -> profile ( $this -> find_active ()) -> row ();
if ( ! empty ( $station_active )) { list ( $station_lat , $station_lng ) = $this -> qra -> qra2latlong ( $station_active -> station_gridsquare ); }
if (( $station_lat != 0 ) && ( $station_lng != 0 )) { $_jsonresult = array ( 'lat' => $station_lat , 'lng' => $station_lng , 'html' => $station_active -> station_gridsquare , 'label' => $station_active -> station_profile_name , 'icon' => 'stationIcon' ); }
2023-12-12 06:40:12 +00:00
return ( count ( $_jsonresult ) > 0 ) ? ( array ( 'station' => $_jsonresult )) : array ();
2023-11-30 17:11:22 +00:00
}
2019-01-01 19:14:25 +00:00
}
2022-05-02 10:38:55 +00:00
?>