- CodeIgniter 4 framework setup with SQL Server database config - Models: Control, Test, Dept, Result, Daily/ Monthly entry models - Controllers: Dashboard, Control, Test, Dept, Entry, Report, API endpoints - Views: CRUD pages with modal dialogs, dashboard, reports - Database: Migrations for control test and daily/monthly result tables - Legacy v1 PHP application preserved in /v1 directory - Documentation: AGENTS.md, VIEWS_RULES.md for development guidelines
74 lines
2.8 KiB
PHP
74 lines
2.8 KiB
PHP
<?php
|
|
function getData($control, $dates, $testid, $lastday) {
|
|
require('../config.php');
|
|
$cont = explode("|",$control);
|
|
$control = $cont[0];
|
|
$lot = $cont[1];
|
|
$sql = "select name, ct.mean, ct.sd from DICT_CONTROL dc left join CONTROL_TEST ct on dc.id=ct.controlid where dc.id='$control' and ct.testid='$testid'";
|
|
$stmt = sqlsrv_query( $conn1, $sql );
|
|
if( $stmt == false) { die( print_r( sqlsrv_errors(), true) ); }
|
|
$row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC );
|
|
$data['name'] = $row[0];
|
|
$data['mean'] = $row[1];
|
|
$data['sd'] = $row[2];
|
|
$sql = "select dr.resdate, dr.resvalue, dr.rescomment from DAILY_RESULT dr
|
|
left join CONTROL_TEST ct on ct.testid=dr.testid and ct.controlid=dr.controlid
|
|
where dr.testid='$testid' and dr.controlid='$control' and convert(varchar(7), dr.resdate, 126)='$dates'
|
|
order by resdate asc";
|
|
//echo "$sql";
|
|
//echo "$testid - $control <br/>";
|
|
$data['control'] = $control;
|
|
$data['lot'] = $lot;
|
|
$stmt = sqlsrv_query( $conn1, $sql );
|
|
if( $stmt == false) { die( print_r( sqlsrv_errors(), true) ); }
|
|
while ( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC ) ) {
|
|
$day = date_format($row[0],"j");
|
|
$data['result'] [$day] = $row[1];
|
|
if(is_numeric($row[1])) {
|
|
$data['resultx'] [$day] = ( $row[1] - $data['mean'] ) / $data['sd'];
|
|
} else { $data['resultx'] [$day] = 0; }
|
|
}
|
|
|
|
// mean and sd
|
|
$data['+2s'] = $data['mean'] + (2*$data['sd']);
|
|
$data['-2s'] = $data['mean'] - (2*$data['sd']);
|
|
$data['cv'] = number_format($data['sd'] / $data['mean'] * 100,3);
|
|
|
|
// sample mean and sd
|
|
$num_of_elements = count($data['result']);
|
|
$variance = 0.0;
|
|
$data['means'] = array_sum($data['result'])/$num_of_elements;
|
|
foreach($data['result'] as $i) {
|
|
if(is_numeric($i)) { $variance += pow(($i - $data['mean']), 2); }
|
|
}
|
|
$data['sds'] = (float)sqrt($variance/$num_of_elements);
|
|
|
|
$data['means'] = number_format($data['means'],3);
|
|
$data['sds'] = number_format($data['sds'],3);
|
|
|
|
if($data['means'] != 0) {
|
|
$data['cvs'] = number_format($data['sds'] / $data['means'] * 100,3);
|
|
}else { $data['cvs'] = 0; }
|
|
|
|
$data['bias'] = abs($data['mean']- $data['means']);
|
|
$data['bias'] = number_format($data['bias'] / $data['mean'] * 100,3);
|
|
|
|
$data['te'] = $data['bias'] + ( 2 * $data['cvs'] );
|
|
|
|
ksort($data['result']); ksort($data['resultx']);
|
|
return $data;
|
|
}
|
|
|
|
$control1 = $_POST['control1'];
|
|
if(isset($_POST['control2'])) { $control2 = $_POST['control2']; }
|
|
else { $control2 = 0; }
|
|
if(isset($_POST['control3'])) { $control3 = $_POST['control3']; }
|
|
else { $control3 = 0; }
|
|
$dates = $_POST['dates'];
|
|
$lastday = date("t", strtotime($dates));
|
|
$testid = $_POST['test'];
|
|
|
|
if( $control3 != 0) { require("report_3c.php"); }
|
|
else if( $control2 != 0) { require("report_2c.php"); }
|
|
else { require("report_1c.php"); }
|
|
|