| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class QSLPrint extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function __construct() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		parent::__construct(); | 
					
						
							|  |  |  | 		$this->load->helper(array('form', 'url')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2021-11-15 06:52:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// Check if users logged in
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if($this->user_model->validate_session() == 0) { | 
					
						
							|  |  |  | 			// user is not logged in
 | 
					
						
							|  |  |  | 			redirect('user/login'); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-03 19:15:02 +08:00
										 |  |  | 	public function index($station_id = 'All') | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		$this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 06:52:23 +08:00
										 |  |  | 		// Check if users logged in
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		if($this->user_model->validate_session() == 0) { | 
					
						
							|  |  |  | 			// user is not logged in
 | 
					
						
							|  |  |  | 			redirect('user/login'); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 		$this->load->model('stations'); | 
					
						
							| 
									
										
										
										
											2023-08-03 19:15:02 +08:00
										 |  |  | 		$data['station_id'] = $this->security->xss_clean($station_id); | 
					
						
							| 
									
										
										
										
											2021-11-18 05:30:20 +08:00
										 |  |  | 		$data['station_profile'] = $this->stations->all_of_user(); | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('qslprint_model'); | 
					
						
							| 
									
										
										
										
											2023-08-03 19:15:02 +08:00
										 |  |  | 		if ( ($station_id != 'All') && ($this->stations->check_station_is_accessible($station_id)) ) { | 
					
						
							|  |  |  | 			$data['qsos'] = $this->qslprint_model->get_qsos_for_print($station_id); | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			$data['qsos'] = $this->qslprint_model->get_qsos_for_print(); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-04 16:00:14 +08:00
										 |  |  | 		$footerData = []; | 
					
						
							|  |  |  | 		$footerData['scripts'] = [ | 
					
						
							|  |  |  | 			'assets/js/sections/qslprint.js', | 
					
						
							|  |  |  | 		]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-07 08:18:04 +08:00
										 |  |  | 		$data['page_title'] = $this->lang->line('menu_print_requested_qsls'); | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->view('interface_assets/header', $data); | 
					
						
							|  |  |  | 		$this->load->view('qslprint/index'); | 
					
						
							| 
									
										
										
										
											2023-08-04 16:00:14 +08:00
										 |  |  | 		$this->load->view('interface_assets/footer', $footerData); | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function exportadif() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// Set memory limit to unlimited to allow heavy usage
 | 
					
						
							|  |  |  | 		ini_set('memory_limit', '-1'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-25 02:10:07 +08:00
										 |  |  | 		if ($this->uri->segment(3) == 'all') { | 
					
						
							|  |  |  | 			$station_id = 'All'; | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 		} else { | 
					
						
							|  |  |  | 			$station_id = $this->security->xss_clean($this->uri->segment(3)); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 		$this->load->model('adif_data'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 		$data['qsos'] = $this->adif_data->export_printrequested($station_id); | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->view('adif/data/exportall', $data); | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 	public function exportcsv() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		// Set memory limit to unlimited to allow heavy usage
 | 
					
						
							|  |  |  | 		ini_set('memory_limit', '-1'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-25 02:10:07 +08:00
										 |  |  | 		if ($this->uri->segment(3) == 'all') { | 
					
						
							|  |  |  | 			$station_id = 'All'; | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 		} else { | 
					
						
							|  |  |  | 			$station_id = $this->security->xss_clean($this->uri->segment(3)); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 		$this->load->model('logbook_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 		$myData = $this->logbook_model->get_qsos_for_printing($station_id); | 
					
						
							| 
									
										
										
										
											2019-09-12 04:09:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		// file name
 | 
					
						
							| 
									
										
										
										
											2019-09-12 04:15:43 +08:00
										 |  |  | 		$filename = 'qsl_export.csv'; | 
					
						
							|  |  |  | 		header("Content-Description: File Transfer"); | 
					
						
							|  |  |  | 		header("Content-Disposition: attachment; filename=$filename"); | 
					
						
							|  |  |  | 		header("Content-Type: application/csv;charset=iso-8859-1"); | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-12 04:15:43 +08:00
										 |  |  | 		// file creation
 | 
					
						
							|  |  |  | 		$file = fopen('php://output', 'w'); | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-28 23:35:57 +08:00
										 |  |  | 		$header = array("STATION_CALLSIGN", | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 						"COL_CALL", | 
					
						
							|  |  |  | 						"COL_QSL_VIA", | 
					
						
							|  |  |  | 						"COL_TIME_ON", | 
					
						
							|  |  |  | 						"COL_MODE", | 
					
						
							|  |  |  | 						"COL_FREQ", | 
					
						
							|  |  |  | 						"COL_BAND", | 
					
						
							|  |  |  | 						"COL_RST_SENT", | 
					
						
							|  |  |  | 						"COL_SAT_NAME", | 
					
						
							|  |  |  | 						"COL_SAT_MODE", | 
					
						
							|  |  |  | 						"COL_QSL_RCVD", | 
					
						
							| 
									
										
										
										
											2019-10-07 01:52:18 +08:00
										 |  |  | 						"COL_COMMENT", | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 						"COL_ROUTING", | 
					
						
							|  |  |  | 						"ADIF", | 
					
						
							| 
									
										
										
										
											2019-09-12 04:09:51 +08:00
										 |  |  | 						"ENTITY"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-12 04:15:43 +08:00
										 |  |  | 		fputcsv($file, $header); | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-12 04:09:51 +08:00
										 |  |  | 		foreach ($myData->result() as $qso) { | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 			fputcsv($file, | 
					
						
							| 
									
										
										
										
											2019-09-28 23:35:57 +08:00
										 |  |  | 				array($qso->STATION_CALLSIGN, | 
					
						
							| 
									
										
										
										
											2023-08-30 22:51:06 +08:00
										 |  |  | 				$qso->COL_CALL, | 
					
						
							|  |  |  | 				$qso->COL_QSL_VIA!=""?"via ".$qso->COL_QSL_VIA:"", | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 				$qso->COL_TIME_ON, | 
					
						
							|  |  |  | 				$qso->COL_MODE, | 
					
						
							|  |  |  | 				$qso->COL_FREQ, | 
					
						
							|  |  |  | 				$qso->COL_BAND, | 
					
						
							|  |  |  | 				$qso->COL_RST_SENT, | 
					
						
							|  |  |  | 				$qso->COL_SAT_NAME, | 
					
						
							|  |  |  | 				$qso->COL_SAT_MODE, | 
					
						
							|  |  |  | 				$qso->COL_QSL_RCVD =='Y'?'TNX QSL':'PSE QSL', | 
					
						
							|  |  |  | 				$qso->COL_COMMENT, | 
					
						
							| 
									
										
										
										
											2019-09-12 04:09:51 +08:00
										 |  |  | 				$qso->COL_ROUTING, | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 				$qso->ADIF, | 
					
						
							| 
									
										
										
										
											2019-09-12 04:09:51 +08:00
										 |  |  | 				$qso->ENTITY)); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2019-09-12 04:15:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		fclose($file); | 
					
						
							|  |  |  | 		exit; | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 	function qsl_printed() { | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-04 15:42:46 +08:00
										 |  |  | 		if ($this->uri->segment(3) == 'all') { | 
					
						
							|  |  |  | 			$station_id = 'All'; | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 		} else { | 
					
						
							|  |  |  | 			$station_id = $this->security->xss_clean($this->uri->segment(3)); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 		$this->load->model('qslprint_model'); | 
					
						
							|  |  |  | 		$this->load->model('user_model'); | 
					
						
							|  |  |  | 		if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-04 02:52:42 +08:00
										 |  |  | 			// Update Logbook to Mark Paper Card Sent
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 			$this->qslprint_model->mark_qsos_printed($station_id); | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-04 02:52:42 +08:00
										 |  |  | 			$this->session->set_flashdata('notice', 'QSOs are marked as sent'); | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 			redirect('logbook'); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-05-22 14:45:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 	public function delete_from_qsl_queue() { | 
					
						
							|  |  |  | 		$id = $this->input->post('id'); | 
					
						
							| 
									
										
										
										
											2021-05-22 14:45:24 +08:00
										 |  |  | 		$this->load->model('qslprint_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->qslprint_model->delete_from_qsl_queue($this->security->xss_clean($id)); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-07-22 23:16:49 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	public function get_qsos_for_print_ajax() { | 
					
						
							|  |  |  | 		$station_id = $this->input->post('station_id'); | 
					
						
							|  |  |  | 		$this->load->model('qslprint_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['qsos'] = $this->qslprint_model->get_qsos_for_print_ajax($this->security->xss_clean($station_id)); | 
					
						
							|  |  |  | 		$data['station_id'] = $station_id; | 
					
						
							|  |  |  | 		$this->load->view('qslprint/qslprint', $data); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-07-28 17:10:15 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	public function open_qso_list() { | 
					
						
							|  |  |  | 		$callsign = $this->input->post('callsign'); | 
					
						
							|  |  |  | 		$this->load->model('qslprint_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['qsos'] = $this->qslprint_model->open_qso_list($this->security->xss_clean($callsign)); | 
					
						
							|  |  |  | 		$this->load->view('qslprint/qsolist', $data); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function add_qso_to_print_queue() { | 
					
						
							|  |  |  | 		$id = $this->input->post('id'); | 
					
						
							|  |  |  | 		$this->load->model('qslprint_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->qslprint_model->add_qso_to_print_queue($this->security->xss_clean($id)); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-16 01:29:33 +08:00
										 |  |  | 	public function show_oqrs() { | 
					
						
							|  |  |  | 		$id = $this->security->xss_clean($this->input->post('id')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('qslprint_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['result'] = $this->qslprint_model->show_oqrs($id); | 
					
						
							|  |  |  | 		$this->load->view('oqrs/showoqrs', $data); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-29 03:13:24 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-12 04:09:51 +08:00
										 |  |  | /* End of file Qslprint.php */ | 
					
						
							| 
									
										
										
										
											2021-05-08 16:29:47 +08:00
										 |  |  | /* Location: ./application/controllers/Qslprint.php */ |