Cloudlog/application/models/contests.php

164 行
无行尾
4.9 KiB
PHP

<?php
class Contests extends CI_Model {
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function information($id) {
$this->db->select('*');
$this->db->from('contests');
//$this->db->where('id', $id);
$this->db->join('contest_template', 'contest_template.id = contests.template');
$query = $this->db->get();
return $query->row();
}
function create_template() {
$data = array(
'name' => $this->input->post('contest_name'),
'band_160' => $this->input->post('160m'),
'band_80' => $this->input->post('80m'),
'band_40' => $this->input->post('40m'),
'band_20' => $this->input->post('20m'),
'band_15' => $this->input->post('15m'),
'band_10' => $this->input->post('10m'),
'band_6m' => $this->input->post('6m'),
'band_4m' => $this->input->post('4m'),
'band_2m' => $this->input->post('2m'),
'band_70cm' => $this->input->post('70cm'),
'band_23cm' => $this->input->post('23cm'),
'mode_ssb' => $this->input->post('SSB'),
'mode_cw' => $this->input->post('CW'),
'serial' => $this->input->post('serial_num'),
'point_per_km' => $this->input->post('points_per_km'),
'qra' => $this->input->post('qra'),
'other_exch' => $this->input->post('other_exch'),
'scoring' => $this->input->post('scoring'),
);
$this->db->insert('contest_template', $data);
}
function create_contest() {
$start = $this->input->post('start_date')." ".$this->input->post('start_time');
$end = $this->input->post('end_date')." ".$this->input->post('end_time');
$data = array(
'name' => $this->input->post('contest_name'),
'start' => $start,
'end' => $end,
'template' => $this->input->post('template'),
);
$this->db->insert('contests', $data);
}
function list_templates() {
return $this->db->get('contest_template');
}
function list_contests() {
return $this->db->get('contests');
}
function contest_summary_bands($start_date, $end_date, $info) {
$query = $this->db->query('SELECT DISTINCT (COL_BAND) AS band, count( * ) AS count, COL_TIME_ON FROM '.$this->config->item('table_name').' WHERE COL_TIME_ON >= \''.$start_date.'\' AND COL_TIME_ON <= \''.$end_date.'\' GROUP BY band ORDER BY count DESC');
return $query;
}
function contest_log_view($start_date, $end_date, $info) {
$this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME,COL_STX_STRING,COL_SRX_STRING, COL_COUNTRY, COL_PRIMARY_KEY');
$this->db->where('COL_TIME_ON >=', $start_date);
$this->db->where('COL_TIME_ON <=', $end_date);
if($info->band_160 == "Y") {
$this->db->where('COL_BAND', '160m');
}
if($info->band_80 == "Y") {
$this->db->where('COL_BAND', '80m');
}
if($info->band_40 == "Y") {
$this->db->where('COL_BAND', '40m');
}
if($info->band_20 == "Y") {
$this->db->where('COL_BAND', '20m');
}
if($info->band_15 == "Y") {
$this->db->where('COL_BAND', '15m');
}
if($info->band_10 == "Y") {
$this->db->where('COL_BAND', '10m');
}
if($info->band_6m == "Y") {
$this->db->where('COL_BAND', '6m');
}
if($info->band_4m == "Y") {
$this->db->where('COL_BAND', '4m');
}
if($info->band_2m == "Y") {
$this->db->where('COL_BAND', '2m');
}
if($info->band_70cm == "Y") {
$this->db->where('COL_BAND', '70cm');
}
if($info->band_23cm == "Y") {
$this->db->where('COL_BAND', '23cm');
}
if($info->mode_ssb == "Y") {
$this->db->where('COL_MODE', 'SSB');
}
if($info->mode_cw == "Y") {
$this->db->where('COL_MODE', 'CW');
}
//$this->db->order_by("COL_PRIMARY_KEY", "asc");
$this->db->order_by("COL_TIME_ON", "desc");
$this->db->limit(10);
return $this->db->get($this->config->item('table_name'));
}
function add($contest_id) {
// Join date+time
$datetime = date('Y-m-d') ." ". $this->input->post('start_time');
// 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'),
'COL_MODE' => $this->input->post('mode'),
'COL_RST_RCVD' => $this->input->post('rst_recv'),
'COL_SRX_STRING' => $this->input->post('recv_serial'),
'COL_RST_SENT' => $this->input->post('rst_sent'),
'COL_STX_STRING' => $this->input->post('sent_serial'),
'COL_GRIDSQUARE' => $this->input->post('locator'),
'COL_COUNTRY' => $this->input->post('country'),
'COL_QSLSDATE' => date('Y-m-d'),
'COL_QSLRDATE' => date('Y-m-d'),
'COL_QSL_SENT' => 'N',
'COL_QSL_RCVD' => 'N',
'COL_OPERATOR' => $this->session->userdata('user_callsign'),
);
// Add QSO to database
$this->db->insert($this->config->item('table_name'), $data);
// Update contest file stored serial number.
$data = array(
'serial_num' => $this->input->post('sent_serial'),
);
$this->db->where('id', $contest_id);
$this->db->update('contests', $data);
}
}
?>