Files
BE_IBL/application/controllers/xlsx/qc/Qc_single.php
2026-04-15 15:23:57 +07:00

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;
}
}