169 lines
6.8 KiB
PHP
169 lines
6.8 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Qc_single extends MY_Controller {
|
|
var $db_onedev;
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
}
|
|
public function index()
|
|
{
|
|
$prm = $this->sys_input;
|
|
$startdate = $prm['startdate'];
|
|
$enddate = $prm['enddate'];
|
|
$instrumentid = $prm['instrumentid'];
|
|
$controlid = $prm['controlid'];
|
|
$testid = $prm['testid'];
|
|
$mean_group = $prm['mean_group'];
|
|
$this->load->library("excel");
|
|
// Read an Excel File
|
|
$tmpfname = APPPATH . "controllers/xlsx/qc/" . "qc_single_1.xls";
|
|
$excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname);
|
|
$objPHPExcel = $excelReader->load($tmpfname);
|
|
|
|
// Set document properties
|
|
$objPHPExcel->getProperties()->setCreator("Furkan Kahveci")
|
|
->setLastModifiedBy("Furkan Kahveci")
|
|
->setTitle("Office 2007 XLS Test Document")
|
|
->setSubject("Office 2007 XLS Test Document")
|
|
->setDescription("Description for Test Document")
|
|
->setKeywords("phpexcel office codeigniter php")
|
|
->setCategory("Test result file");
|
|
|
|
|
|
// Create a first sheet
|
|
$objPHPExcel->setActiveSheetIndex(0);
|
|
$objPHPExcel->getActiveSheet()->mergeCells('A1:G1');
|
|
$objPHPExcel->getActiveSheet()->setCellValue('A1', "QUALITY CONTROL CHART CHEMISTRY");
|
|
|
|
$headers = $this->get_header($startdate,$enddate,$instrumentid,$controlid,$testid);
|
|
$B3 = $headers[0][Nat_InstrumentName];
|
|
$B4 = $startdate.' s/d '.$enddate;
|
|
$B5 = '';
|
|
$B6 = $headers[0][Nat_TestName];
|
|
$B7 = $headers[0][Nat_QcControlName];
|
|
|
|
$B9 = $headers[0][Nat_QcControlLotNumber];
|
|
$B10 = $headers[0][Nat_QcLevelName];
|
|
$B11 = $headers[0][Nat_QcControlExpired];
|
|
$B12 = '';
|
|
$B13 = '';
|
|
$B14 = $headers[0][Nat_QcMean];
|
|
$B15 = $headers[0][M_QcStatMean];
|
|
$B16 = $headers[0][Nat_QcSd];
|
|
$B17 = $headers[0][M_QcStatSd];
|
|
|
|
$D12 = ($B17/$B15)*100;
|
|
$D13 = ($B15-$mean_group/$mean_group)*100;
|
|
$D14 = ABS($D13)+(2*$D12);
|
|
$D15 = $headers[0][Nat_QcTea];
|
|
$D16 = '';
|
|
$D17 = ($D15-ABS($D13))/$D12;
|
|
|
|
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B3', $B3);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B4', $B4);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B5', $B5);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B6', $B6);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B7', $B7);
|
|
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B9', $B9);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B10', $B10);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B11', $B11);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B12', $B12);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B13', $B13);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B14', $B14);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B15', $B15);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B16', $B16);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B17', $B17);
|
|
|
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D12', $D12);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D13', $D13);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D14', $D14);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D15', $D15);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D16', $D16);
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D17', $D17);
|
|
|
|
$details = $this->get_detail($startdate,$enddate,$instrumentid,$controlid,$testid);
|
|
$rowNumber = 20;
|
|
$col_a = 'A';
|
|
$col_b = 'B';
|
|
$col_c = 'C';
|
|
/* foreach ($details as $v) {
|
|
$objPHPExcel->getActiveSheet()->setCellValue($col_a.$rowNumber,$v['M_QcResultDate']);
|
|
$objPHPExcel->getActiveSheet()->setCellValue($col_b.$rowNumber,$v['M_QcResultValue']);
|
|
$objPHPExcel->getActiveSheet()->setCellValue($col_c.$rowNumber,round($v['M_QcResultValue']-$B14/$B16,1));
|
|
$rowNumber++;
|
|
}
|
|
*/
|
|
// Save Excel xls File
|
|
$filename="qcsingle.xls";
|
|
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
ob_end_clean();
|
|
header('Content-type: application/vnd.ms-excel');
|
|
header('Content-Disposition: attachment; filename='.$filename);
|
|
$objWriter->save('php://output');
|
|
}
|
|
function get_header($startdate,$enddate,$instrumentid,$controlid,$testid){
|
|
$sql = "SELECT Nat_QcControlName,
|
|
Nat_QcControlLotNumber,
|
|
Nat_QcControlExpired,
|
|
Nat_QcLevelName,
|
|
Nat_InstrumentName,
|
|
Nat_TestName,
|
|
M_QcResultDate,
|
|
M_QcResultValue,
|
|
ifnull(Nat_QcRuleCode,'') Marking,
|
|
Nat_QcMean,Nat_QcSd,Nat_QcTea,
|
|
M_QcIsStat, M_QcStatMean, M_QcStatSd
|
|
from m_qc_result
|
|
join m_qc on M_QcResultM_QcID = M_QcID
|
|
and M_QcResultIsActive = 'Y'
|
|
and M_QcResultDate >= ?
|
|
and M_QcResultDate <= ?
|
|
join nat_qc on M_QcNat_QcID = Nat_QcID
|
|
and Nat_QcNat_InstrumentID = ?
|
|
and Nat_QcNat_QcControlID = ?
|
|
and Nat_QcNat_TestID = ?
|
|
and Nat_QcIsActive = 'Y'
|
|
join nat_qc_control on Nat_QcNat_QcControlID = Nat_QcControlID
|
|
join nat_qc_level on Nat_QcControlNat_QcLevelID = Nat_QcLevelID
|
|
join nat_instrument on Nat_QcNat_InstrumentID = Nat_InstrumentID
|
|
join nat_test on Nat_QcNat_TestID = Nat_TestID
|
|
left join nat_qc_rule
|
|
on M_QcResultNat_QcRuleID = Nat_QcRuleID";
|
|
$query = $this->db_onedev->query($sql, array($startdate, $enddate, $instrumentid,$controlid,$testid));
|
|
$rows = $query->result_array();
|
|
return $rows;
|
|
}
|
|
function get_detail($startdate,$enddate,$instrumentid,$controlid,$testid){
|
|
|
|
$sql = "select M_QcResultID,
|
|
DATE_FORMAT(M_QcResultDate , '%d-%m-%Y') as M_QcResultDate
|
|
,M_QcResultValue
|
|
,Nat_QcRuleID,
|
|
Nat_QcRuleCode
|
|
from m_qc_result
|
|
join m_qc on M_QcResultM_QcID = M_QcID
|
|
and M_QcResultIsActive = 'Y' and M_QcIsActive='Y'
|
|
join nat_qc on M_QcNat_QcID = Nat_QcID
|
|
and Nat_QcIsActive ='Y'
|
|
and Nat_QcNat_InstrumentID = ?
|
|
and Nat_QcNat_QcControlID = ?
|
|
and Nat_QcNat_TestID = ?
|
|
join nat_qc_rule on M_QcResultNat_QcRuleID = Nat_QcRuleID
|
|
and Nat_QcRuleIsActive ='Y'
|
|
where M_QcResultDate >= ? and M_QcResultDate <= ? AND M_QcResultIsActive = 'Y'
|
|
ORDER BY M_QcResultDate ASC";
|
|
$query = $this->db_onedev->query($sql, array($instrumentid,$controlid,$testid,$startdate, $enddate));
|
|
$rows = $query->result_array();
|
|
return $rows;
|
|
|
|
}
|
|
}
|