mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
218 lines
7.0 KiB
PHP
218 lines
7.0 KiB
PHP
<?php
|
|
|
|
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
|
|
/*
|
|
This controller contains features for REG1TEST EDI
|
|
*/
|
|
|
|
class Reg1test extends CI_Controller {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
|
|
// do authorization check
|
|
$this->load->model('user_model');
|
|
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
|
|
}
|
|
|
|
public function index() {
|
|
//define Page title
|
|
$data['page_title'] = __("Export REG1TEST EDI");
|
|
|
|
//Load models
|
|
$this->load->model('Contesting_model');
|
|
$this->load->model('stations');
|
|
|
|
//get station profile
|
|
$data['station_profile'] = $this->stations->all_of_user();
|
|
$active_station_id = $this->stations->find_active();
|
|
$station_profile = $this->stations->profile($active_station_id);
|
|
|
|
//set station profile to view data
|
|
$data['active_station_info'] = $station_profile->row();
|
|
|
|
//provide REG1TEST JS
|
|
$footerData = [];
|
|
$footerData['scripts'] = [
|
|
'assets/js/sections/reg1test.js'
|
|
];
|
|
|
|
//load view
|
|
$this->load->view('interface_assets/header', $data);
|
|
$this->load->view('reg1test/index');
|
|
$this->load->view('interface_assets/footer', $footerData);
|
|
}
|
|
|
|
public function getContests() {
|
|
|
|
//load models
|
|
$this->load->model('Contesting_model');
|
|
$this->load->model('stations');
|
|
|
|
//get cleaned station id and year
|
|
$station_id = $this->input->post('station_id', true);
|
|
$year = $this->input->post('year', true);
|
|
|
|
//deny acccess if station is not accessible
|
|
if (!$this->stations->check_station_is_accessible($station_id)) {
|
|
$this->session->set_flashdata('error', __("You're not allowed to do that!"));
|
|
redirect('dashboard');
|
|
return;
|
|
}
|
|
|
|
//get logged contests for station
|
|
$result = $this->Contesting_model->get_logged_contests($station_id, $year);
|
|
|
|
//return result as json
|
|
header('Content-Type: application/json');
|
|
echo json_encode($result);
|
|
}
|
|
|
|
public function getYears() {
|
|
|
|
//load model
|
|
$this->load->model('Contesting_model');
|
|
|
|
//get cleaned station id
|
|
$station_id = $this->input->post('station_id', true);
|
|
|
|
//get logged year for station id
|
|
$result = $this->Contesting_model->get_logged_years($station_id);
|
|
|
|
//return result as json
|
|
header('Content-Type: application/json');
|
|
echo json_encode($result);
|
|
}
|
|
|
|
public function getContestDates() {
|
|
//load models
|
|
$this->load->model('Contesting_model');
|
|
$this->load->model('stations');
|
|
|
|
//get cleaned station id
|
|
$station_id = $this->input->post('station_id', true);
|
|
|
|
//deny access if station is not accessible
|
|
if (!$this->stations->check_station_is_accessible($station_id)) {
|
|
$this->session->set_flashdata('error', __("You're not allowed to do that!"));
|
|
redirect('dashboard');
|
|
return;
|
|
}
|
|
|
|
//get cleaned year, contest id, from and to values
|
|
$year = $this->input->post('year', true);
|
|
$contestid = $this->input->post('contestid', true);
|
|
|
|
//get contestdates from database
|
|
$result = $this->Contesting_model->get_contest_dates($station_id, $year, $contestid);
|
|
|
|
//return result as json
|
|
header('Content-Type: application/json');
|
|
echo json_encode($result);
|
|
}
|
|
|
|
public function getContestBands() {
|
|
|
|
//load models
|
|
$this->load->model('Contesting_model');
|
|
$this->load->model('stations');
|
|
|
|
//get cleaned station id
|
|
$station_id = $this->input->post('station_id', true);
|
|
|
|
//deny access if station is not accessible
|
|
if (!$this->stations->check_station_is_accessible($station_id)) {
|
|
$this->session->set_flashdata('error', __("You're not allowed to do that!"));
|
|
redirect('dashboard');
|
|
return;
|
|
}
|
|
|
|
//get cleaned contest id, from and to values
|
|
$contestid = $this->input->post('contestid', true);
|
|
$from = $this->input->post('contestdatesfrom', true);
|
|
$to = $this->input->post('contestdatesto', true);
|
|
|
|
//get contestdates from database
|
|
$result = $this->Contesting_model->get_contest_bands($station_id, $contestid, $from, $to);
|
|
|
|
//return result as json
|
|
header('Content-Type: application/json');
|
|
echo json_encode($result);
|
|
|
|
}
|
|
|
|
public function export() {
|
|
// Set memory limit to unlimited to allow heavy usage
|
|
ini_set('memory_limit', '-1');
|
|
|
|
//load models
|
|
$this->load->model('Contesting_model');
|
|
$this->load->model('stations');
|
|
$this->load->model('user_model');
|
|
|
|
//Load distance calculator
|
|
$this->load->library('Qra');
|
|
|
|
//deny access if station is not accessible
|
|
$station_id = $this->input->post('station_id', true);
|
|
if (!$this->stations->check_station_is_accessible($station_id)) {
|
|
$this->session->set_flashdata('error', __("You're not allowed to do that!"));
|
|
redirect('dashboard');
|
|
return;
|
|
}
|
|
|
|
//get user input to define the export parameters
|
|
$contest_id = $this->input->post('contestid', true);
|
|
$from = $this->input->post('contestdatesfrom', true);
|
|
$to = $this->input->post('contestdatesto', true);
|
|
$band = $this->input->post('contestband', true);
|
|
|
|
//load station
|
|
$station = $this->stations->profile($station_id);
|
|
$station = $station->row();
|
|
|
|
//load userinfo
|
|
$userinfo = $this->user_model->get_by_id($this->session->userdata('user_id'));
|
|
$userinfo = $userinfo->row();
|
|
|
|
//get qsos and set qso data for export
|
|
$data['qsos'] = $this->Contesting_model->export_custom($from, $to, $contest_id, $station_id, $band);
|
|
|
|
//set contest header data for export
|
|
$data['band'] = $band;
|
|
$data['qso_count'] = count($data['qsos']->result());
|
|
$data['sentexchange'] = $this->input->post('sentexchange', true);
|
|
$data['contest_id'] = $contest_id;
|
|
$data['from'] = $from;
|
|
$data['to'] = $to;
|
|
$data['callsign'] = $station->station_callsign;
|
|
$data['gridlocator'] = $station->station_gridsquare;
|
|
$data['contestaddress1'] = $this->input->post('contestaddress1', true);
|
|
$data['contestaddress2'] = $this->input->post('contestaddress2', true);
|
|
$data['categoryoperator'] = $this->input->post('categoryoperator', true);
|
|
$data['club'] = $this->input->post('club', true);
|
|
$data['name'] = $userinfo->user_firstname . ' ' . $userinfo->user_lastname;
|
|
$data['responsible_operator'] = $this->input->post('responsible_operator', true);
|
|
$data['address1'] = $this->input->post('address1', true);
|
|
$data['address2'] = $this->input->post('address2', true);
|
|
$data['addresspostalcode'] = $this->input->post('addresspostalcode', true);
|
|
$data['addresscity'] = $this->input->post('addresscity', true);
|
|
$data['addresscountry'] = $this->input->post('addresscountry', true);
|
|
$data['operatorphone'] = $this->input->post('operatorphone', true);
|
|
$data['operators'] = $this->input->post('operators', true);
|
|
$data['txequipment'] = $this->input->post('txequipment', true);
|
|
$data['power'] = $this->input->post('power', true);
|
|
$data['rxequipment'] = $this->input->post('rxequipment', true);
|
|
$data['antenna'] = $this->input->post('antenna', true);
|
|
$data['antennaheight'] = $this->input->post('antennaheight', true);
|
|
$data['maxdistanceqso'] = $this->qra->getMaxDistanceQSO($station->station_gridsquare, $data['qsos'], "K");
|
|
|
|
$data['soapbox'] = $this->input->post('soapbox', true);
|
|
|
|
//load view for export
|
|
$this->load->view('reg1test/export', $data);
|
|
}
|
|
}
|