2011-04-25 23:24:01 +08:00
< ? php
class Logbook_model extends CI_Model {
function __construct ()
{
// Call the Model constructor
parent :: __construct ();
}
2011-07-22 08:08:47 +08:00
/* Add QSO to Logbook */
function add () {
// Join date+time
$datetime = date ( 'Y-m-d' ) . " " . $this -> input -> post ( 'start_time' );
2011-09-13 00:39:06 +08:00
2012-03-30 01:48:26 +08:00
if ( $this -> input -> post ( 'prop_mode' ) != null ) {
$prop_mode = $this -> input -> post ( 'prop_mode' );
} else {
$prop_mode = " " ;
}
2011-09-13 00:39:06 +08:00
if ( $this -> input -> post ( 'sat_name' )) {
$prop_mode = " SAT " ;
}
2011-09-28 03:32:59 +08:00
if ( $this -> session -> userdata ( 'user_locator' )){
2012-09-07 00:27:27 +08:00
$locator = $this -> session -> userdata ( 'user_locator' );
2011-09-28 03:32:59 +08:00
} else {
2012-09-07 00:27:27 +08:00
$locator = $this -> config -> item ( 'locator' );
2011-09-28 03:32:59 +08:00
}
2012-09-07 00:27:27 +08:00
2011-07-22 08:08:47 +08:00
// Create array with QSO Data
2012-09-07 00:27:27 +08:00
2011-07-22 08:08:47 +08:00
$data = array (
2012-09-07 00:27:27 +08:00
'COL_TIME_ON' => $datetime ,
'COL_TIME_OFF' => $datetime ,
'COL_CALL' => strtoupper ( $this -> input -> post ( 'callsign' )),
'COL_BAND' => $this -> input -> post ( 'band' ),
'COL_FREQ' => $this -> input -> post ( 'freq_display' ),
'COL_MODE' => $this -> input -> post ( 'mode' ),
'COL_RST_RCVD' => $this -> input -> post ( 'rst_recv' ),
'COL_RST_SENT' => $this -> input -> post ( 'rst_sent' ),
'COL_NAME' => $this -> input -> post ( 'name' ),
'COL_COMMENT' => $this -> input -> post ( 'comment' ),
2012-09-21 00:44:32 +08:00
'COL_SAT_NAME' => strtoupper ( $this -> input -> post ( 'sat_name' )),
'COL_SAT_MODE' => strtoupper ( $this -> input -> post ( 'sat_mode' )),
'COL_GRIDSQUARE' => strtoupper ( trim ( $this -> input -> post ( 'locator' ))),
2012-09-07 00:27:27 +08:00
'COL_COUNTRY' => $this -> input -> post ( 'country' ),
'COL_MY_RIG' => $this -> input -> post ( 'equipment' ),
'COL_QSLSDATE' => date ( 'Y-m-d' ),
'COL_QSLRDATE' => date ( 'Y-m-d' ),
'COL_QSL_SENT' => $this -> input -> post ( 'qsl_sent' ),
'COL_QSL_RCVD' => $this -> input -> post ( 'qsl_recv' ),
'COL_QSL_SENT_VIA' => $this -> input -> post ( 'qsl_sent_method' ),
'COL_QSL_RCVD_VIA' => $this -> input -> post ( 'qsl_recv_method' ),
'COL_QSL_VIA' => $this -> input -> post ( 'qsl_via' ),
'COL_OPERATOR' => $this -> session -> userdata ( 'user_callsign' ),
'COL_QTH' => $this -> input -> post ( 'qth' ),
'COL_PROP_MODE' => $prop_mode ,
'COL_IOTA' => $this -> input -> post ( 'iota_ref' ),
2012-09-21 00:44:32 +08:00
'COL_MY_GRIDSQUARE' => strtoupper ( $locator ),
2012-09-07 00:27:27 +08:00
'COL_DISTANCE' => " 0 " ,
'COL_FREQ_RX' => 0 ,
'COL_BAND_RX' => null ,
'COL_ANT_AZ' => null ,
'COL_ANT_EL' => null ,
'COL_A_INDEX' => null ,
'COL_AGE' => null ,
'COL_TEN_TEN' => null ,
'COL_TX_PWR' => null ,
'COL_STX' => null ,
'COL_SRX' => null ,
'COL_NR_BURSTS' => null ,
'COL_NR_PINGS' => null ,
'COL_MAX_BURSTS' => null ,
'COL_K_INDEX' => null ,
'COL_SFI' => null ,
'COL_RX_PWR' => null ,
'COL_LAT' => null ,
'COL_LON' => null ,
2011-07-22 08:08:47 +08:00
);
2011-09-30 23:51:35 +08:00
$this -> add_qso ( $data );
}
2012-09-07 00:27:27 +08:00
/* Add QSO to Logbook */
function create_qso () {
// Join date+time
$datetime = date ( " Y-m-d " , strtotime ( $this -> input -> post ( 'start_date' ))) . " " . $this -> input -> post ( 'start_time' );
if ( $this -> input -> post ( 'prop_mode' ) != null ) {
$prop_mode = $this -> input -> post ( 'prop_mode' );
} else {
$prop_mode = " " ;
}
if ( $this -> input -> post ( 'sat_name' )) {
$prop_mode = " SAT " ;
}
if ( $this -> session -> userdata ( 'user_locator' )){
$locator = $this -> session -> userdata ( 'user_locator' );
} else {
$locator = $this -> config -> item ( 'locator' );
}
// Create array with QSO Data
$data = array (
'COL_TIME_ON' => $datetime ,
'COL_TIME_OFF' => $datetime ,
'COL_CALL' => strtoupper ( $this -> input -> post ( 'callsign' )),
'COL_BAND' => $this -> input -> post ( 'band' ),
'COL_FREQ' => $this -> input -> post ( 'freq_display' ),
'COL_MODE' => $this -> input -> post ( 'mode' ),
'COL_RST_RCVD' => $this -> input -> post ( 'rst_recv' ),
'COL_RST_SENT' => $this -> input -> post ( 'rst_sent' ),
'COL_NAME' => $this -> input -> post ( 'name' ),
'COL_COMMENT' => $this -> input -> post ( 'comment' ),
2012-09-21 00:44:32 +08:00
'COL_SAT_NAME' => strtoupper ( $this -> input -> post ( 'sat_name' )),
'COL_SAT_MODE' => strtoupper ( $this -> input -> post ( 'sat_mode' )),
'COL_GRIDSQUARE' => strtoupper ( trim ( $this -> input -> post ( 'locator' ))),
2012-09-07 00:27:27 +08:00
'COL_COUNTRY' => $this -> input -> post ( 'country' ),
'COL_MY_RIG' => $this -> input -> post ( 'equipment' ),
'COL_QSLSDATE' => date ( 'Y-m-d' ),
'COL_QSLRDATE' => date ( 'Y-m-d' ),
'COL_QSL_SENT' => $this -> input -> post ( 'qsl_sent' ),
'COL_QSL_RCVD' => $this -> input -> post ( 'qsl_recv' ),
'COL_QSL_SENT_VIA' => $this -> input -> post ( 'qsl_sent_method' ),
'COL_QSL_RCVD_VIA' => $this -> input -> post ( 'qsl_recv_method' ),
'COL_QSL_VIA' => $this -> input -> post ( 'qsl_via' ),
'COL_OPERATOR' => $this -> session -> userdata ( 'user_callsign' ),
'COL_QTH' => $this -> input -> post ( 'qth' ),
'COL_PROP_MODE' => $prop_mode ,
'COL_IOTA' => $this -> input -> post ( 'iota_ref' ),
'COL_MY_GRIDSQUARE' => $locator ,
'COL_DISTANCE' => " 0 " ,
'COL_FREQ_RX' => 0 ,
'COL_BAND_RX' => null ,
'COL_ANT_AZ' => null ,
'COL_ANT_EL' => null ,
'COL_A_INDEX' => null ,
'COL_AGE' => null ,
'COL_TEN_TEN' => null ,
'COL_TX_PWR' => null ,
'COL_STX' => null ,
'COL_SRX' => null ,
'COL_NR_BURSTS' => null ,
'COL_NR_PINGS' => null ,
'COL_MAX_BURSTS' => null ,
'COL_K_INDEX' => null ,
'COL_SFI' => null ,
'COL_RX_PWR' => null ,
'COL_LAT' => null ,
'COL_LON' => null ,
);
$this -> add_qso ( $data );
}
2011-09-30 23:51:35 +08:00
function add_qso ( $data ) {
2011-07-22 08:08:47 +08:00
// Add QSO to database
$this -> db -> insert ( $this -> config -> item ( 'table_name' ), $data );
}
2011-09-30 23:51:35 +08:00
2011-07-22 08:08:47 +08:00
/* Edit QSO */
function edit () {
$data = array (
'COL_TIME_ON' => $this -> input -> post ( 'time_on' ),
'COL_TIME_OFF' => $this -> input -> post ( 'time_off' ),
'COL_CALL' => strtoupper ( $this -> input -> post ( 'callsign' )),
'COL_BAND' => $this -> input -> post ( 'band' ),
'COL_FREQ' => $this -> input -> post ( 'freq' ),
'COL_MODE' => $this -> input -> post ( 'mode' ),
'COL_RST_RCVD' => $this -> input -> post ( 'rst_recv' ),
'COL_RST_SENT' => $this -> input -> post ( 'rst_sent' ),
2012-09-21 00:44:32 +08:00
'COL_GRIDSQUARE' => $this -> input -> post ( 'locator' ),
2011-07-22 08:08:47 +08:00
'COL_COMMENT' => $this -> input -> post ( 'comment' ),
'COL_NAME' => $this -> input -> post ( 'name' ),
'COL_SAT_NAME' => $this -> input -> post ( 'sat_name' ),
'COL_SAT_MODE' => $this -> input -> post ( 'sat_mode' ),
2012-09-21 00:44:32 +08:00
'COL_QSLSDATE' => date ( 'Y-m-d' ),
'COL_QSLRDATE' => date ( 'Y-m-d' ),
'COL_QSL_SENT' => $this -> input -> post ( 'qsl_sent' ),
'COL_QSL_RCVD' => $this -> input -> post ( 'qsl_recv' ),
'COL_QSL_SENT_VIA' => $this -> input -> post ( 'qsl_sent_method' ),
'COL_QSL_RCVD_VIA' => $this -> input -> post ( 'qsl_recv_method' ),
'COL_IOTA' => $this -> input -> post ( 'iota_ref' ),
'COL_QTH' => $this -> input -> post ( 'qth' ),
'COL_FREQ_RX' => '0' ,
'COL_COUNTRY' => $this -> input -> post ( 'country' ),
2011-07-22 08:08:47 +08:00
);
$this -> db -> where ( 'COL_PRIMARY_KEY' , $this -> input -> post ( 'id' ));
$this -> db -> update ( $this -> config -> item ( 'table_name' ), $data );
}
/* Return last 10 QSOs */
function last_ten () {
2011-08-23 23:34:05 +08:00
$this -> db -> select ( 'COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME' );
2011-08-17 23:12:41 +08:00
$this -> db -> order_by ( " COL_TIME_ON " , " desc " );
2011-07-22 08:08:47 +08:00
$this -> db -> limit ( 10 );
return $this -> db -> get ( $this -> config -> item ( 'table_name' ));
}
2012-04-23 22:03:34 +08:00
/* Show custom number of qsos */
2012-04-23 21:58:04 +08:00
function last_custom ( $num ) {
$this -> db -> select ( 'COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME' );
$this -> db -> order_by ( " COL_TIME_ON " , " desc " );
$this -> db -> limit ( $num );
return $this -> db -> get ( $this -> config -> item ( 'table_name' ));
}
2011-07-25 06:33:08 +08:00
/* Callsign QRA */
function call_qra ( $callsign ) {
$this -> db -> select ( 'COL_CALL, COL_GRIDSQUARE, COL_TIME_ON' );
$this -> db -> where ( 'COL_CALL' , $callsign );
$where = " COL_GRIDSQUARE != \" \" " ;
$this -> db -> where ( $where );
$this -> db -> order_by ( " COL_TIME_ON " , " desc " );
$this -> db -> limit ( 1 );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
$callsign = " " ;
if ( $query -> num_rows () > 0 )
{
$data = $query -> row ();
$callsign = strtoupper ( $data -> COL_GRIDSQUARE );
}
return $callsign ;
}
function call_name ( $callsign ) {
$this -> db -> select ( 'COL_CALL, COL_NAME, COL_TIME_ON' );
$this -> db -> where ( 'COL_CALL' , $callsign );
$where = " COL_NAME != \" \" " ;
$this -> db -> where ( $where );
$this -> db -> order_by ( " COL_TIME_ON " , " desc " );
$this -> db -> limit ( 1 );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
$name = " " ;
if ( $query -> num_rows () > 0 )
{
$data = $query -> row ();
$name = $data -> COL_NAME ;
} else {
//$json = file_get_contents("http://callbytxt.org/db/".$callsign.".json");
//$obj = json_decode($json);
//$uppercase_name = strtolower($obj->{'calls'}->{'first_name'});
// $name = ucwords($uppercase_name);
}
return $name ;
}
2011-07-22 08:08:47 +08:00
/* Return QSO Info */
function qso_info ( $id ) {
$this -> db -> where ( 'COL_PRIMARY_KEY' , $id );
return $this -> db -> get ( $this -> config -> item ( 'table_name' ));
}
2012-09-07 00:27:27 +08:00
function get_qsos ( $num , $offset ) {
$this -> db -> select ( 'COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE, COL_QSL_RCVD, COL_QSL_SENT' );
$this -> db -> order_by ( " COL_TIME_ON " , " desc " );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ), $num , $offset );
return $query ;
}
2011-06-17 20:52:00 +08:00
function get_last_qsos ( $num ) {
2011-08-23 23:34:05 +08:00
$this -> db -> select ( 'COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME' );
2011-06-17 20:52:00 +08:00
$this -> db -> order_by ( " COL_TIME_ON " , " desc " );
$this -> db -> limit ( $num );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
return $query ;
}
2011-09-30 21:45:04 +08:00
2011-09-30 23:50:12 +08:00
/* Get All QSOs with a Valid Grid */
function kml_get_all_qsos () {
$this -> db -> select ( 'COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE' );
$this -> db -> where ( 'COL_GRIDSQUARE != \'null\'' );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
return $query ;
}
2011-09-30 21:45:04 +08:00
function get_date_qsos ( $date ) {
$this -> db -> select ( 'COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME' );
$this -> db -> order_by ( " COL_TIME_ON " , " desc " );
$start = $date . " 00:00:00 " ;
$end = $date . " 23:59:59 " ;
$this -> db -> where ( " COL_TIME_ON BETWEEN ' " . $start . " ' AND ' " . $end . " ' " );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
return $query ;
}
2011-06-17 20:52:00 +08:00
function get_todays_qsos () {
$morning = date ( 'Y-m-d 00:00:00' );
$night = date ( 'Y-m-d 23:59:59' );
2011-06-19 06:38:09 +08:00
$query = $this -> db -> query ( 'SELECT * FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_TIME_ON between \'' . $morning . '\' AND \'' . $night . '\'' );
2011-06-17 20:52:00 +08:00
return $query ;
}
2011-09-30 21:45:04 +08:00
/* Return total number of qsos */
2011-06-17 20:52:00 +08:00
function total_qsos () {
2011-06-19 06:38:09 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . '' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return number of QSOs had today */
2011-06-17 20:52:00 +08:00
function todays_qsos () {
$morning = date ( 'Y-m-d 00:00:00' );
$night = date ( 'Y-m-d 23:59:59' );
2011-06-19 06:38:09 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_TIME_ON between \'' . $morning . '\' AND \'' . $night . '\'' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return QSOs over a period of days */
2011-09-22 05:17:24 +08:00
function map_week_qsos ( $start , $end ) {
$this -> db -> where ( " COL_TIME_ON BETWEEN ' " . $start . " ' AND ' " . $end . " ' " );
$this -> db -> order_by ( " COL_TIME_ON " , " ASC " );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
2011-08-24 00:12:47 +08:00
return $query ;
}
2011-09-30 21:45:04 +08:00
/* Returns QSOs for the date sent eg 2011-09-30 */
function map_day ( $date ) {
2011-08-24 00:12:47 +08:00
2011-09-30 21:45:04 +08:00
$start = $date . " 00:00:00 " ;
$end = $date . " 23:59:59 " ;
$this -> db -> where ( " COL_TIME_ON BETWEEN ' " . $start . " ' AND ' " . $end . " ' " );
$this -> db -> order_by ( " COL_TIME_ON " , " ASC " );
$query = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
return $query ;
}
2011-08-24 00:12:47 +08:00
2011-09-30 21:45:04 +08:00
// Return QSOs made during the current month
2011-06-17 20:52:00 +08:00
function month_qsos () {
$morning = date ( 'Y-m-01 00:00:00' );
$night = date ( 'Y-m-30 23:59:59' );
2011-06-19 06:38:09 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_TIME_ON between \'' . $morning . '\' AND \'' . $night . '\'' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return QSOs made during the current Year */
2011-06-17 20:52:00 +08:00
function year_qsos () {
$morning = date ( 'Y-01-01 00:00:00' );
$night = date ( 'Y-12-31 23:59:59' );
2011-06-19 06:38:09 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_TIME_ON between \'' . $morning . '\' AND \'' . $night . '\'' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return total amount of SSB QSOs logged */
2011-06-17 20:52:00 +08:00
function total_ssb () {
2011-09-13 00:39:06 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_MODE = \'SSB\' OR COL_MODE = \'LSB\' OR COL_MODE = \'USB\'' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return total number of satellite QSOs */
2011-07-25 06:33:08 +08:00
function total_sat () {
$query = $this -> db -> query ( 'SELECT COL_SAT_NAME, COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_SAT_NAME != \'null\' GROUP BY COL_SAT_NAME' );
return $query ;
}
2011-09-30 21:45:04 +08:00
/* Return total number of CW QSOs */
2011-06-17 20:52:00 +08:00
function total_cw () {
2011-07-25 06:33:08 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_MODE = \'CW\' ' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return total number of FM QSOs */
2011-06-17 20:52:00 +08:00
function total_fm () {
2011-07-22 07:10:09 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_MODE = \'FM\'' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return total number of Digital QSOs */
2011-06-17 20:52:00 +08:00
function total_digi () {
2012-04-24 00:35:19 +08:00
$query = $this -> db -> query ( 'SELECT COUNT( * ) as count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_MODE != \'SSB\' AND COL_MODE != \'LSB\' AND COL_MODE != \'USB\' AND COL_MODE != \'CW\' AND COL_MODE != \'FM\' AND COL_MODE != \'AM\'' );
2011-06-17 20:52:00 +08:00
if ( $query -> num_rows () > 0 )
{
foreach ( $query -> result () as $row )
{
return $row -> count ;
}
}
}
2011-09-30 21:45:04 +08:00
/* Return total number of QSOs per band */
2011-06-17 20:52:00 +08:00
function total_bands () {
2011-06-19 06:38:09 +08:00
$query = $this -> db -> query ( 'SELECT DISTINCT (COL_BAND) AS band, count( * ) AS count FROM ' . $this -> config -> item ( 'table_name' ) . ' GROUP BY band ORDER BY count DESC' );
2011-06-17 20:52:00 +08:00
return $query ;
}
2011-09-22 05:17:24 +08:00
2011-09-30 21:45:04 +08:00
/* Return total number of QSL Cards sent */
2011-09-22 05:17:24 +08:00
function total_qsl_sent () {
$query = $this -> db -> query ( 'SELECT DISTINCT (COL_QSL_SENT) AS band, count(COL_QSL_SENT) AS count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_QSL_SENT = "Y" GROUP BY band' );
$row = $query -> row ();
2011-09-23 03:58:58 +08:00
if ( $row == null ) {
return 0 ;
} else {
return $row -> count ;
}
}
2011-09-30 21:45:04 +08:00
/* Return total number of QSL Cards requested */
2011-09-23 03:58:58 +08:00
function total_qsl_requested () {
$query = $this -> db -> query ( 'SELECT DISTINCT (COL_QSL_SENT) AS band, count(COL_QSL_SENT) AS count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_QSL_SENT = "R" GROUP BY band' );
$row = $query -> row ();
2011-09-22 05:17:24 +08:00
if ( $row == null ) {
return 0 ;
} else {
return $row -> count ;
}
}
2011-09-30 21:45:04 +08:00
/* Return total number of QSL Cards received */
2011-09-22 05:17:24 +08:00
function total_qsl_recv () {
$query = $this -> db -> query ( 'SELECT DISTINCT (COL_QSL_RCVD) AS band, count(COL_QSL_RCVD) AS count FROM ' . $this -> config -> item ( 'table_name' ) . ' WHERE COL_QSL_RCVD = "Y" GROUP BY band' );
$row = $query -> row ();
if ( $row == null ) {
return 0 ;
} else {
return $row -> count ;
}
}
2011-09-30 21:45:04 +08:00
/* Return total number of countrys worked */
2011-09-22 05:17:24 +08:00
function total_countrys () {
$query = $this -> db -> query ( 'SELECT DISTINCT (COL_COUNTRY) FROM ' . $this -> config -> item ( 'table_name' ) . '' );
return $query -> num_rows ();
}
2011-06-17 20:52:00 +08:00
2011-08-18 01:15:09 +08:00
function api_search_query ( $query ) {
$time_start = microtime ( true );
2012-01-04 07:30:53 +08:00
$results = $this -> db -> query ( $query );
if ( ! $results ) {
return array ( 'query' => $query , 'error' => $this -> db -> _error_number (), 'time' => 0 );
}
2011-08-18 01:15:09 +08:00
$time_end = microtime ( true );
$time = round ( $time_end - $time_start , 4 );
return array ( 'query' => $query , 'results' => $results , 'time' => $time );
}
2011-09-30 23:51:35 +08:00
function api_insert_query ( $query ) {
$time_start = microtime ( true );
$results = $this -> db -> insert ( $this -> config -> item ( 'table_name' ), $query );
2012-01-04 07:30:53 +08:00
if ( ! $results ) {
return array ( 'query' => $query , 'error' => $this -> db -> _error_number (), 'time' => 0 );
}
2011-09-30 23:51:35 +08:00
$time_end = microtime ( true );
$time = round ( $time_end - $time_start , 4 );
return array ( 'query' => $this -> db -> queries [ 2 ], 'result_string' => $results , 'time' => $time );
}
2011-09-30 21:45:04 +08:00
/* Delete QSO based on the QSO ID */
2011-08-28 21:51:57 +08:00
function delete ( $id ) {
$this -> db -> where ( 'COL_PRIMARY_KEY' , $id );
$this -> db -> delete ( $this -> config -> item ( 'table_name' ));
}
2011-11-20 06:28:05 +08:00
function import ( $record ) {
// Join date+time
//$datetime = date('Y-m-d') ." ". $this->input->post('start_time');
//$myDate = date('Y-m-d', $record['qso_date']);
$time_on = date ( 'Y-m-d' , strtotime ( $record [ 'qso_date' ])) . " " . date ( 'H:i' , strtotime ( $record [ 'time_on' ]));
2011-11-20 23:12:40 +08:00
if ( isset ( $record [ 'time_off' ])) {
$time_off = date ( 'Y-m-d' , strtotime ( $record [ 'qso_date' ])) . " " . date ( 'H:i' , strtotime ( $record [ 'time_off' ]));
} else {
$time_off = date ( 'Y-m-d' , strtotime ( $record [ 'qso_date' ])) . " " . date ( 'H:i' , strtotime ( $record [ 'time_on' ]));
}
2011-11-20 06:28:05 +08:00
if ( isset ( $record [ 'freq' ])) {
2011-11-20 23:12:40 +08:00
$cleansedstring = preg_replace ( '#\W#' , '' , $record [ 'freq' ]);
$freq = $cleansedstring . " 000 " ;
2011-11-20 06:28:05 +08:00
} else {
$freq = " 0 " ;
}
if ( isset ( $record [ 'name' ])) {
$name = $record [ 'name' ];
} else {
$name = " " ;
}
2011-11-20 23:12:40 +08:00
if ( isset ( $record [ 'NOTES' ])) {
$comment = $record [ 'NOTES' ];
2011-11-20 06:28:05 +08:00
} else {
$comment = " " ;
}
if ( isset ( $record [ 'sat_name' ])) {
$sat_name = $record [ 'sat_name' ];
} else {
$sat_name = " " ;
}
if ( isset ( $record [ 'sat_mode' ])) {
$sat_mode = $record [ 'sat_mode' ];
} else {
$sat_mode = " " ;
}
if ( isset ( $record [ 'gridsquare' ])) {
$gridsquare = $record [ 'gridsquare' ];
} else {
$gridsquare = " " ;
}
if ( isset ( $record [ 'country' ])) {
$country = $record [ 'country' ];
} else {
2011-11-20 23:12:40 +08:00
$this -> load -> model ( 'dxcc' );
2011-11-20 06:28:05 +08:00
2011-11-20 23:12:40 +08:00
$dxccinfo = $this -> dxcc -> info ( $record [ 'call' ]);
2011-11-20 06:28:05 +08:00
2011-11-20 23:12:40 +08:00
if ( $dxccinfo -> num_rows () > 0 )
{
foreach ( $dxccinfo -> result () as $row1 )
{
$country = ucfirst ( strtolower ( $row1 -> name ));
}
} else {
$country = " " ;
}
2011-11-20 06:28:05 +08:00
}
if ( isset ( $record [ 'qth' ])) {
$qth = $record [ 'qth' ];
} else {
$qth = " " ;
}
if ( isset ( $record [ 'prop_mode' ])) {
$prop_mode = $record [ 'prop_mode' ];
} else {
$prop_mode = " " ;
}
2011-12-22 08:30:44 +08:00
if ( isset ( $record [ 'rst_rcvd' ])) {
$rst_rx = $record [ 'rst_rcvd' ];
} else {
$rst_rx = " 59 " ;
}
if ( isset ( $record [ 'rst_sent' ])) {
$rst_tx = $record [ 'rst_sent' ];
} else {
$rst_tx = " 59 " ;
}
2011-11-20 06:28:05 +08:00
$this -> db -> where ( 'COL_CALL' , $record [ 'call' ]);
$this -> db -> where ( 'COL_TIME_ON' , $time_on );
$check = $this -> db -> get ( $this -> config -> item ( 'table_name' ));
if ( $check -> num_rows () <= 0 )
{
// Create array with QSO Data
$data = array (
'COL_TIME_ON' => $time_on ,
'COL_TIME_OFF' => $time_off ,
'COL_CALL' => strtoupper ( $record [ 'call' ]),
'COL_BAND' => $record [ 'band' ],
'COL_FREQ' => $freq ,
'COL_MODE' => $record [ 'mode' ],
2011-12-22 08:30:44 +08:00
'COL_RST_RCVD' => $rst_rx ,
'COL_RST_SENT' => $rst_tx ,
2011-11-20 06:28:05 +08:00
'COL_NAME' => $name ,
'COL_COMMENT' => $comment ,
'COL_SAT_NAME' => $sat_name ,
'COL_SAT_MODE' => $sat_mode ,
'COL_GRIDSQUARE' => $gridsquare ,
'COL_COUNTRY' => $country ,
'COL_QTH' => $qth ,
'COL_PROP_MODE' => $prop_mode ,
'COL_DISTANCE' => 0 ,
'COL_FREQ_RX' => 0 ,
'COL_BAND_RX' => 0 ,
'COL_ANT_AZ' => 0 ,
'COL_ANT_EL' => 0 ,
);
$this -> add_qso ( $data );
}
}
2011-04-25 23:24:01 +08:00
}
2011-08-18 01:15:09 +08:00
?>