187 lines
6.0 KiB
PHP
187 lines
6.0 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
class ProdInst extends BaseController {
|
|
|
|
private function getProductList() {
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, array(
|
|
//CURLOPT_URL => 'http://summitcrm.local/api/getProductList',
|
|
CURLOPT_URL => 'https://services-summit.my.id/api/getProductList',
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
|
CURLOPT_CUSTOMREQUEST => 'GET',
|
|
));
|
|
|
|
$response = curl_exec($curl);
|
|
curl_close($curl);
|
|
$data = json_decode($response, true);
|
|
|
|
return $data;
|
|
}
|
|
|
|
public function index() {
|
|
$db = \Config\Database::connect();
|
|
$sql = "SELECT * FROM prodinst";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['prodinsts'] = $results;
|
|
return view('prodinst_index.php', $data);
|
|
}
|
|
|
|
public function detail($prodinstid) {
|
|
$db = \Config\Database::connect();
|
|
$sql = "SELECT * FROM prodinst where prodinstid='$prodinstid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['prodinst'] = $results;
|
|
|
|
$sql = "SELECT COUNT(*) as testcount FROM patres WHERE prodinstid='$prodinstid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['testcount'] = $results[0]['testcount'];
|
|
|
|
$sql = "SELECT DATEDIFF(MAX(resultdate), MIN(resultdate)) as days, min(resultdate) as firstdate, max(resultdate) as lastdate FROM patres WHERE prodinstid='$prodinstid';";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['days'] = $results[0]['days'];
|
|
$data['firstdate'] = $results[0]['firstdate'];
|
|
$data['lastdate'] = $results[0]['lastdate'];
|
|
|
|
$sql = "SELECT MONTH(resultdate) AS month, COUNT(*) AS count
|
|
FROM patres
|
|
GROUP BY MONTH(resultdate) limit 8";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['counts'] = $results;
|
|
|
|
return view('prodinst_detail.php', $data);
|
|
}
|
|
|
|
public function edit($prodinstid) {
|
|
$data = array();
|
|
$db = \Config\Database::connect();
|
|
if ($prodinstid != 0) {
|
|
$sql = "SELECT * FROM prodinst where prodinstid='$prodinstid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['prodinsts'] = $results;
|
|
}
|
|
$sql = "SELECT * FROM dict_insts";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['insts'] = $results;
|
|
|
|
if ($this->request->getMethod() === 'post') {
|
|
$rules = [ 'prodinstcode' => 'required' ];
|
|
$productid = $this->request->getPost('productid');
|
|
$instid = $this->request->getPost('instid');
|
|
$prodinstname = $this->request->getPost('prodinstname');
|
|
$prodinstcode = $this->request->getPost('prodinstcode');
|
|
$prodinstkey= $this->request->getPost('prodinstkey');
|
|
if($this->validate($rules)){
|
|
if($prodinstid == 0 ) {
|
|
$sql = "insert into prodinst(productid, instid, prodinstname, prodinstcode, prodinstkey, createdate) values ('$productid', '$instid', '$prodinstname', '$prodinstcode', '$prodinstkey', NOW())";
|
|
$query = $db->query($sql);
|
|
return redirect()->to('/prodinst');
|
|
} else {
|
|
$sql = "update prodinst set productid='$productid', instid='$instid', prodinstname='$prodinstname', prodinstcode='$prodinstcode', prodinstkey='$prodinstkey' where prodinstid='$prodinstid'";
|
|
$query = $db->query($sql);
|
|
return redirect()->to('/prodinst');
|
|
}
|
|
} else {
|
|
$data['validation'] = $this->validator;
|
|
$data['products'] = $this->getProductList();
|
|
return view('prodinst_editor',$data);
|
|
}
|
|
} else {
|
|
$data['products'] = $this->getProductList();
|
|
return view('prodinst_editor', $data);
|
|
}
|
|
}
|
|
|
|
public function prodinsttest_edit($prodinstid) {
|
|
$data = array();
|
|
$data['prodinstid'] = $prodinstid;
|
|
|
|
$db = \Config\Database::connect();
|
|
$sql = "SELECT * FROM prodinst where prodinstid='$prodinstid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['prodinsts'] = $results;
|
|
|
|
$sql = "SELECT * FROM prodinst_test where prodinstid='$prodinstid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['prodinsttests'] = $results;
|
|
|
|
$sql = "SELECT * FROM dict_tests";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['tests'] = $results;
|
|
|
|
return view('prodinst_test_editor', $data);
|
|
}
|
|
|
|
public function prodinsttest_update() {
|
|
$db = \Config\Database::connect();
|
|
$prodinstid = $this->request->getPost('prodinstid');
|
|
$testids = $this->request->getPost('testid');
|
|
$prodinsttestcodes = $this->request->getPost('prodinsttestcode');
|
|
$deleteid = $this->request->getPost('deleteid');
|
|
|
|
// from form
|
|
$test = array();
|
|
foreach($testids as $key => $testid) {
|
|
if($testid != '') { $test[$testid] = $prodinsttestcodes[$key]; }
|
|
}
|
|
|
|
$sql = "SELECT * FROM prodinst_test where prodinstid='$prodinstid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data = $results;
|
|
$qtest = array();
|
|
foreach($data as $qdata) {
|
|
$qtest[$qdata['testid']] = $qdata['prodinsttestcode'];
|
|
}
|
|
|
|
echo "<pre>";
|
|
print_r($test);
|
|
print_r($qtest);
|
|
echo "</pre>";
|
|
|
|
$sqlinsert = "";
|
|
foreach($test as $qtestid => $qtestcode) {
|
|
if( !isset($qtest[$qtestid]) ) { //if none insert
|
|
$sqlinsert .= "('$prodinstid', '$qtestid', '$qtestcode'),";
|
|
} else if( $qtest[$qtestid]!= $qtestcode ) {
|
|
$sqlupdate = "update prodinst_test set prodinsttestcode='$qtestcode' where prodinstid='$prodinstid' and testid='$qtestid'";
|
|
echo "<br/> $sqlupdate";
|
|
$db->query($sqlupdate);
|
|
}
|
|
}
|
|
|
|
$sqlinsert = rtrim($sqlinsert,',');
|
|
if($sqlinsert != '') {
|
|
$sqlinsert = "INSERT INTO prodinst_test(prodinstid, testid, prodinsttestcode) values $sqlinsert ";
|
|
echo "<br/> $sqlinsert";
|
|
$db->query($sqlinsert);
|
|
}
|
|
|
|
$sqldelete = "";
|
|
foreach($qtest as $qtestid => $qtestcode) {
|
|
if( !isset($test[$qtestid]) ) { //if none delete
|
|
$sqldelete.= "'$qtestid',";
|
|
}
|
|
}
|
|
if($sqldelete != '') {
|
|
$sqldelete = rtrim($sqldelete,',');
|
|
$sqldelete = "delete from prodinst_test where prodinstid='$prodinstid' and testid in ($sqldelete)";
|
|
echo "<br/> $sqldelete";
|
|
$db->query($sqldelete);
|
|
}
|
|
}
|
|
}
|