db_onedev = $this->load->database("onedev", true); } public function search() { $prm = $this->sys_input; if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $start_date = $prm["startdate"]; $end_date = $prm["enddate"]; $search_code = $prm['code']; $search_name = $prm['name']; $number_limit = 100; $number_offset = ($prm['current_page'] - 1) * $number_limit ; $sql_where = ''; if($search_code != '' || $search_name != ''){ $sql_where .= ' AND ('; if($search_code != ''){ $sql_where .= " Nat_TestCode LIKE CONCAT('{$search_code}','%') "; } if($search_name != ''){ if($search_code != '') $sql_where .= ' AND '; $sql_where .= " Nat_TestName LIKE CONCAT('%','{$search_name}','%') "; } $sql_where .= ')'; } $sql_param = array($start_date,$end_date); $sql = " SELECT count(*) as total FROM nat_test LEFT JOIN nat_sampletype ON Nat_TestNat_SampleTypeID = Nat_SampleTypeID LEFT JOIN nat_group ON Nat_TestNat_GroupID = Nat_GroupID LEFT JOIN nat_subgroup ON Nat_TestNat_SubGroupID = Nat_SubGroupID LEFT JOIN nat_subsubgroup ON Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID LEFT JOIN nat_testtype ON Nat_TestNat_TestTypeID = Nat_TestTypeID LEFT JOIN nat_unit ON Nat_TestNat_UnitID = Nat_UnitID WHERE Nat_TestIsActive = 'Y' $sql_where "; //echo $sql; $query = $this->db_onedev->query($sql); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count/$number_limit); } else { $this->sys_error_db("t_samplestorage count", $this->db_onedev); exit; } $sql = "SELECT * FROM nat_test LEFT JOIN nat_sampletype ON Nat_TestNat_SampleTypeID = Nat_SampleTypeID LEFT JOIN nat_group ON Nat_TestNat_GroupID = Nat_GroupID LEFT JOIN nat_subgroup ON Nat_TestNat_SubGroupID = Nat_SubGroupID LEFT JOIN nat_subsubgroup ON Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID LEFT JOIN nat_testtype ON Nat_TestNat_TestTypeID = Nat_TestTypeID LEFT JOIN nat_unit ON Nat_TestNat_UnitID = Nat_UnitID WHERE Nat_TestIsActive = 'Y' $sql_where ORDER BY Nat_TestCode ASC limit $number_limit offset $number_offset"; $query = $this->db_onedev->query($sql); //secho $this->db_onedev->last_query(); $rows = $query->result_array(); if($rows){ } //$this->_add_address($rows); $result = array("total" => $tot_page, "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } function getinitdatas(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT Nat_GroupID as id, Nat_GroupName as name FROM nat_group WHERE Nat_GroupIsActive = 'Y' "; //echo $query; $rows['groups'] = $this->db_onedev->query($query)->result_array(); /*$query =" SELECT Nat_SubGroupID as id, CONCAT('[ ',Nat_SubGroupCode,' ] ', Nat_SubGroupName) as name FROM nat_subgroup WHERE Nat_SubGroupIsActive = 'Y' "; //echo $query; $rows['subgroups'] = $this->db_onedev->query($query)->result_array();*/ $query =" SELECT Nat_TestTypeID as id, Nat_TestTypeName as name FROM nat_testtype WHERE Nat_TestTypeIsActive = 'Y' "; //echo $query; $rows['types'] = $this->db_onedev->query($query)->result_array(); $rows['nonlabs'] = array(array("id"=>"","name"=>"LAB"),array("id"=>"XRAY","name"=>"XRAY"), array("id"=>"USG","name"=>"USG"),array("id"=>"ELECTROMEDIS","name"=>"ELECTROMEDIS")); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function get_subgroups(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $rows = []; $query =" SELECT Nat_SubGroupID as id, Nat_SubGroupName as name FROM nat_subgroup WHERE Nat_SubGroupIsActive = 'Y' AND Nat_SubGroupNat_GroupID = {$prm['id']} "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function get_subsubgroups(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $rows = []; $query =" SELECT Nat_SubSubGroupID as id, Nat_SubSubGroupName as name FROM nat_subsubgroup WHERE Nat_SubSubGroupIsActive = 'Y' AND Nat_SubSubGroupNat_GroupID = {$prm['id']} "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function getracks(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $rows = []; $query =" SELECT Summary_SampleStorageM_AlmariID as almarid, Summary_SampleStorageM_RackID as rackid , Summary_SampleStorageRowPosition as row, Summary_SampleStorageColPosition as col FROM summary_samplestorage WHERE Summary_SampleStorageStatus = 'FILLED' "; //echo $query; $filledrows = $this->db_onedev->query($query)->result_array(); $query =" SELECT {$prm['id']} as almariid, M_RackID as id, CONCAT(M_RackCode,' ( ',M_RackRows,' x ',M_RackColumns,' )') as name, M_RackCode as code, M_RackRows as row, M_RackColumns as col, '' as rackcontens FROM m_rack WHERE M_RackM_AlmariID = {$prm['id']} AND M_RackIsActive = 'Y' "; //echo $query; $datarows = $this->db_onedev->query($query)->result_array(); foreach($datarows as $k => $v){ $rows = $v['row']; $cols = $v['col']; $rackcontens = array(); for ($x = 1; $x <= $rows; $x++) { $children = array(); for ($i = 1; $i <= $cols; $i++) { $content = $x.' x '.$i; $xrow = $x; $xcol = $i; $status = $this->checkexistfilled($filledrows, $v['id'],$xrow,$xcol); array_push($children,array('content'=>$content,'row'=>$xrow,'col'=>$xcol,'status'=>$status,'selected'=>'N')); } array_push($rackcontens,$children); } $datarows[$k]['rackcontens'] = $rackcontens; } $result = array( "total" => count($datarows) , "records" => $datarows, ); $this->sys_ok($result); exit; } function checkexistfilled($datas,$rackid,$row,$col){ $rtn = 'N'; foreach($datas as $k => $v){ if($v['rackid'] == $rackid && $v['row'] == $row && $v['col'] == $col){ $rtn = 'Y'; } } return $rtn; } function searchunit(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM nat_unit WHERE Nat_UnitName like ? AND Nat_unitIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_city count",$this->db_onedev); exit; } $sql = " SELECT Nat_UnitId as id, Nat_UnitName as name FROM nat_unit WHERE Nat_UnitName like ? AND Nat_unitIsActive = 'Y' ORDER BY Nat_UnitName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_city rows",$this->db_onedev); exit; } } function searchsample(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM nat_sampletype WHERE Nat_SampleTypeName like ? AND Nat_SampleTypeIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_city count",$this->db_onedev); exit; } $sql = " SELECT Nat_SampleTypeID as id, Nat_SampleTypeName as name FROM nat_sampletype WHERE Nat_SampleTypeName like ? AND Nat_SampleTypeIsActive = 'Y' ORDER BY Nat_SampleTypeName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_city rows",$this->db_onedev); exit; } } function save(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $sampletype = 0; $unit = 0; $prm['isekspertisi'] = isset($prm['isekspertisi'])?$prm['isekspertisi']:'N'; if($prm['isekspertisi'] == '') $prm['isekspertisi'] = 'N'; if($prm['isresult'] == 'Y'){ $sampletype = $prm['sample']['id']; $unit = $prm['unit']['id']; } if($prm['fontsize'] == '') $prm['fontsize'] = 10; if($prm['isprice'] == 'N') $prm['printnote'] = 'N'; $query ="INSERT INTO nat_test ( Nat_TestCode, Nat_TestName, Nat_TestShortName, Nat_TestShortNameBarcode, Nat_TestNat_GroupID, Nat_TestNat_SubGroupID, Nat_TestNat_SubSubGroupID, Nat_TestNat_TestTypeID, Nat_TestNat_SampleTypeID, Nat_TestNat_UnitID, Nat_TestFontSize, Nat_TestFontColor, Nat_TestIsBold, Nat_TestIsItalic, Nat_TestFlagGluc, Nat_TestIsQuantitative, Nat_TestIsDeltaCheck, Nat_TestIsResult, Nat_TestIsPrice, Nat_TestIsPrintResult, Nat_TestIsPrintNota, Nat_TestIsTrendAnalysis, Nat_TestIsWorklist, Nat_TestIsLongResult, Nat_TestIsEkspertisi, Nat_TestIsNonLab, Nat_TestWorklistName, Nat_TestFlagLow, Nat_TestFlagHigh, Nat_TestUserID, Nat_TestCreated, Nat_TestPriceSumToNat_TestID, Nat_TestFlagMcu ) VALUES( '{$prm['code']}', '{$prm['name']}', '{$prm['shortname']}', '{$prm['codebarcode']}', '{$prm['xgroup']['id']}', '{$prm['subgroup']['id']}', '{$prm['subsubgroup']['id']}', '{$prm['type']['id']}', '{$sampletype}', '{$unit}', '{$prm['fontsize']}', '{$prm['fontcolor']}', '{$prm['flagbold']}', '{$prm['flagitalic']}', '{$prm['flaggluc']}', '{$prm['flagquantitative']}', '{$prm['deltacheck']}', '{$prm['isresult']}', '{$prm['isprice']}', '{$prm['printresult']}', '{$prm['printnote']}', '{$prm['trendanalysis']}', '{$prm['isworklist']}', '{$prm['islongresult']}', '{$prm['isekspertisi']}', '{$prm['nonlab']['id']}', '{$prm['worklistname']}', '{$prm['flaglow']}', '{$prm['flaghigh']}', '{$userid}', NOW(), '{$prm['selected_group_price']['id']}', '{$prm['Nat_TestFlagMcu']['id']}' ) ON DUPLICATE KEY UPDATE Nat_TestName = '{$prm['name']}', Nat_TestShortName = '{$prm['shortname']}', Nat_TestShortNameBarcode = '{$prm['codebarcode']}', Nat_TestNat_GroupID = '{$prm['xgroup']['id']}', Nat_TestNat_SubGroupID = '{$prm['subgroup']['id']}', Nat_TestNat_SubSubGroupID = '{$prm['subsubgroup']['id']}', Nat_TestNat_TestTypeID = '{$prm['type']['id']}', Nat_TestNat_SampleTypeID = '{$sampletype}', Nat_TestNat_UnitID = '{$unit}', Nat_TestFontSize = '{$prm['fontsize']}', Nat_TestFontColor = '{$prm['fontcolor']}', Nat_TestIsBold = '{$prm['flagbold']}', Nat_TestIsItalic = '{$prm['flagitalic']}', Nat_TestFlagGluc = '{$prm['flaggluc']}', Nat_TestIsQuantitative = '{$prm['flagquantitative']}', Nat_TestIsDeltaCheck = '{$prm['deltacheck']}', Nat_TestIsResult = '{$prm['isresult']}', Nat_TestIsPrice = '{$prm['isprice']}', Nat_TestIsPrintResult = '{$prm['printresult']}', Nat_TestIsPrintNota = '{$prm['printnote']}', Nat_TestIsTrendAnalysis = '{$prm['trendanalysis']}', Nat_TestIsWorklist = '{$prm['isworklist']}', Nat_TestIsLongResult = '{$prm['islongresult']}', Nat_TestIsEkspertisi = '{$prm['isekspertisi']}', Nat_TestIsNonLab = '{$prm['nonlab']['id']}', Nat_TestWorklistName = '{$prm['worklistname']}', Nat_TestFlagLow = '{$prm['flaglow']}', Nat_TestFlagHigh = '{$prm['flaghigh']}', Nat_TestUserID = '{$userid}', Nat_TestPriceSumToNat_TestID = '{$prm['selected_group_price']['id']}', Nat_TestFlagMcu = '{$prm['selected_flag_mcu']['id']}' "; //echo $query; $savex = $this->db_onedev->query($query); if($prm['act'] == 'new'){ $last_id = $this->db_onedev->insert_id(); } else { $sql = "SELECT * FROM nat_test WHERE Nat_TestCode = '{$prm['code']}' AND Nat_TestIsActive = 'Y'"; $last_id = $this->db_onedev->query($sql)->row()->Nat_TestID; } if($last_id ){ if($prm['act'] == 'new' && ($prm['type']['id'] != 2 || $prm['type']['id'] != '2')){ $query ="INSERT INTO t_test ( T_TestNat_TestID, T_TestCode, T_TestSasCode, T_TestName, T_TestShortName, T_TestShortNameBarcode, T_TestNat_GroupID, T_TestNat_SubGroupID, T_TestT_SampleTypeID, T_TestFontSize, T_TestFontColor, T_TestIsBold, T_TestIsItalic, T_TestFlagGluc, T_TestIsQuantitative, T_TestIsDeltaCheck, T_TestIsResult, T_TestIsPrice, T_TestIsPrintResult, T_TestIsPrintNota, T_TestIsTrendAnalysis, T_TestIsWorklist, T_TestIsNonLab, T_TestWorklistName, T_TestFlagLow, T_TestFlagHigh, T_TestUserID, T_TestCreated ) VALUES( '{$last_id}', '{$prm['code']}', '{$prm['code']}', '{$prm['name']}', '{$prm['shortname']}', '{$prm['codebarcode']}', '{$prm['xgroup']['id']}', '{$prm['subgroup']['id']}', '{$sampletype}', '{$prm['fontsize']}', '{$prm['fontcolor']}', '{$prm['flagbold']}', '{$prm['flagitalic']}', '{$prm['flaggluc']}', '{$prm['flagquantitative']}', '{$prm['deltacheck']}', '{$prm['isresult']}', '{$prm['isprice']}', '{$prm['printresult']}', '{$prm['printnote']}', '{$prm['trendanalysis']}', '{$prm['isworklist']}', '{$prm['nonlab']['id']}', '{$prm['worklistname']}', '{$prm['flaglow']}', '{$prm['flaghigh']}', '{$userid}', NOW() ) "; $this->db_onedev->query($query); //echo $query; }else{ $query = "UPDATE t_test SET T_TestName = '{$prm['name']}', T_TestShortName = '{$prm['shortname']}', T_TestShortNameBarcode = '{$prm['codebarcode']}', T_TestNat_GroupID = '{$prm['xgroup']['id']}', T_TestNat_SubGroupID = '{$prm['subgroup']['id']}', T_TestNat_SubSubGroupID = '{$prm['subsubgroup']['id']}', T_TestT_SampleTypeID = '{$sampletype}', T_TestFontSize = '{$prm['fontsize']}', T_TestFontColor = '{$prm['fontcolor']}', T_TestIsBold = '{$prm['flagbold']}', T_TestIsItalic = '{$prm['flagitalic']}', T_TestFlagGluc = '{$prm['flaggluc']}', T_TestIsQuantitative = '{$prm['flagquantitative']}', T_TestIsDeltaCheck = '{$prm['deltacheck']}', T_TestIsResult = '{$prm['isresult']}', T_TestIsPrintResult = '{$prm['printresult']}', T_TestIsTrendAnalysis = '{$prm['trendanalysis']}', T_TestIsWorklist = '{$prm['isworklist']}', T_TestIsNonLab = '{$prm['nonlab']['id']}', T_TestWorklistName = '{$prm['worklistname']}', T_TestFlagLow = '{$prm['flaglow']}', T_TestFlagHigh = '{$prm['flaghigh']}', T_TestUserID = '{$userid}' WHERE T_TestNat_TestID = {$last_id} AND T_TestIsActive = 'Y' "; $this->db_onedev->query($query); if(intval($prm['type']['id']) == 1){ $sql = "SELECT COUNT(*) as xcount FROM t_test WHERE T_TestCode = '{$prm['code']}' AND T_TestSasCode = '{$prm['code']}' AND T_TestIsActive = 'Y'"; //echo $sql; $x_exist = $this->db_onedev->query($sql)->row()->xcount; if($x_exist == 0){ $query ="INSERT INTO t_test ( T_TestNat_TestID, T_TestCode, T_TestSasCode, T_TestName, T_TestShortName, T_TestShortNameBarcode, T_TestNat_GroupID, T_TestNat_SubGroupID, T_TestT_SampleTypeID, T_TestFontSize, T_TestFontColor, T_TestIsBold, T_TestIsItalic, T_TestFlagGluc, T_TestIsQuantitative, T_TestIsDeltaCheck, T_TestIsResult, T_TestIsPrice, T_TestIsPrintResult, T_TestIsPrintNota, T_TestIsTrendAnalysis, T_TestIsWorklist, T_TestIsNonLab, T_TestWorklistName, T_TestFlagLow, T_TestFlagHigh, T_TestUserID, T_TestCreated ) VALUES( '{$last_id}', '{$prm['code']}', '{$prm['code']}', '{$prm['name']}', '{$prm['shortname']}', '{$prm['codebarcode']}', '{$prm['xgroup']['id']}', '{$prm['subgroup']['id']}', '{$sampletype}', '{$prm['fontsize']}', '{$prm['fontcolor']}', '{$prm['flagbold']}', '{$prm['flagitalic']}', '{$prm['flaggluc']}', '{$prm['flagquantitative']}', '{$prm['deltacheck']}', '{$prm['isresult']}', '{$prm['isprice']}', '{$prm['printresult']}', '{$prm['printnote']}', '{$prm['trendanalysis']}', '{$prm['isworklist']}', '{$prm['nonlab']['id']}', '{$prm['worklistname']}', '{$prm['flaglow']}', '{$prm['flaghigh']}', '{$userid}', NOW() ) "; $this->db_onedev->query($query); //echo $query; } } } //echo $query; } $sql = "SELECT * FROM nat_test WHERE Nat_TestID = {$last_id}"; //echo $sql; $xdata_log = $this->db_onedev->query($sql)->result(); $data_log = json_encode($xdata_log); $sql = "INSERT INTO one_log.log_samplestorage ( Log_SampleStorageCode, Log_SampleStorageDate, Log_SampleStorageJSON, Log_SampleStorageUserID ) VALUES( 'CREATED.SAVE', CURDATE(), '{$data_log}', {$userid} )"; //echo $sql; //$this->db_onedev->query($sql); $result = array( "total" => 1 , "records" => array('status'=>'OK'), "numbering" => $data_log_header, "id" => $last_id ); $this->sys_ok($result); exit; } function checkcodeexist(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $rtn = 'N'; $query =" SELECT COUNT(*) as countx FROM nat_test WHERE Nat_TestCode = '{$prm['code']}' AND Nat_TestIsActive = 'Y' "; //echo $query; $rst = $this->db_onedev->query($query)->row()->countx; if($rst > 0) $rtn = 'Y'; $result = array( "total" => 1 , "records" => $rtn, ); $this->sys_ok($result); exit; } function getdataselected(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['Nat_TestID']; $query =" SELECT Nat_TestID as id, Nat_TestCode as code, Nat_TestName as name, Nat_TestShortName as shortname, Nat_TestShortNameBarcode as codebarcode, '' as xgroup, Nat_GroupID as group_id, Nat_GroupName as group_name, '' as subgroup, Nat_SubGroupID as subgroup_id, Nat_SubGroupName as subgroup_name, '' as subsubgroup, Nat_SubSubGroupID as subsubgroup_id, Nat_SubSubGroupName as subsubgroup_name, '' as type, Nat_TestNat_TestTypeID as type_id, Nat_TestTypeName as type_name, '' as unit, Nat_TestNat_UnitID as unit_id, Nat_UnitName as unit_name, '' as sample, Nat_TestIsNonLab as nonlab, Nat_TestNat_SampleTypeID as sample_id, Nat_SampleTypeName as sample_name, Nat_TestFontSize as fontsize, Nat_TestFontColor as fontcolor, Nat_TestIsBold as flagbold, Nat_TestIsItalic as flagitalic, Nat_TestFlagGluc as flaggluc, Nat_TestIsQuantitative as flagquantitative, Nat_TestIsDeltaCheck as deltacheck, Nat_TestIsResult as isresult, Nat_TestIsPrice as isprice, Nat_TestIsPrintResult as printresult, Nat_TestIsPrintNota as printnote, Nat_TestIsTrendAnalysis as trendanalysis, Nat_TestIsWorklist as isworklist, Nat_TestIsLongResult as islongresult, Nat_TestIsEkspertisi as isekspertisi, Nat_TestWorklistName as worklistname, Nat_TestFlagLow as flaglow, Nat_TestFlagHigh as flaghigh, '' as groupsprice, Nat_TestPriceSumToNat_TestID as selected_group_price, Nat_TestFlagMcu as selected_flag_mcu FROM nat_test JOIN nat_group ON Nat_TestNat_GroupID = Nat_GroupID JOIN nat_subgroup ON Nat_TestNat_SubGroupID = Nat_SubGroupID LEFT JOIN nat_subsubgroup ON Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID JOIN nat_testtype ON Nat_TestNat_TestTypeID = Nat_TestTypeID LEFT JOIN nat_sampletype ON Nat_TestNat_SampleTypeID = Nat_SampleTypeID LEFT JOIN nat_unit ON Nat_TestNat_UnitID = Nat_UnitID WHERE Nat_TestID = '{$id}' "; //echo $query; $rows['xform'] = $this->db_onedev->query($query)->row_array(); if($rows['xform']){ if($rows['xform']['selected_flag_mcu'] == 'N') $rows['xform']['selected_flag_mcu'] = array('id'=>'N','name'=>'Tidak ada'); if($rows['xform']['selected_flag_mcu'] == 'G') $rows['xform']['selected_flag_mcu'] = array('id'=>'G','name'=>'Dengan perhitungan abnormal'); if($rows['xform']['selected_flag_mcu'] == 'A') $rows['xform']['selected_flag_mcu'] = array('id'=>'G','name'=>'Sesuai hasil'); if($rows['xform']['selected_flag_mcu'] == 'C') $rows['xform']['selected_flag_mcu'] = array('id'=>'C','name'=>'Berdasarkan SUBSUBGROUP'); if($rows['xform']['selected_flag_mcu'] == 'R') $rows['xform']['selected_flag_mcu'] = array('id'=>'R','name'=>'Reaktif Tidak normal'); if($rows['xform']['selected_flag_mcu'] == 'P') $rows['xform']['selected_flag_mcu'] = array('id'=>'P','name'=>'Positif Tidak normal'); $sevencode = substr($rows['xform']['code'],0,7); $sql = "SELECT 0 as id, '' as name UNION SELECT Nat_TestID as id, Nat_TestName as name FROM nat_test WHERE Nat_TestCode LIKE '{$sevencode}%'"; $rows['xform']['groupsprice'] = $this->db_onedev->query($sql)->result_array(); $selected_group_price = array(); if($rows['xform']['groupsprice']){ foreach($rows['xform']['groupsprice'] as $k =>$v){ //echo $rows['xform']['selected_group_price'];echo '-'; //echo $v['id'];echo '-';echo $rows['xform']['selected_group_price'];echo '&'; if(intval($v['id']) == intval($rows['xform']['selected_group_price'])){ //print_r($v); $selected_group_price = $v; } } } $rows['xform']['selected_group_price'] = $selected_group_price; $rows['xform']['unit'] = array(); if($rows['xform']['isresult'] == 'Y') $rows['xform']['unit'] = array('id'=>$rows['xform']['unit_id'],'name'=>$rows['xform']['unit_name']); $rows['xform']['sample'] = array(); if($rows['xform']['isresult'] == 'Y') $rows['xform']['sample'] = array('id'=>$rows['xform']['sample_id'],'name'=>$rows['xform']['sample_name']); $rows['xform']['xgroup'] = array('id'=>$rows['xform']['group_id'],'name'=>$rows['xform']['group_name']); $rows['xform']['subgroup'] = array('id'=>$rows['xform']['subgroup_id'],'name'=>$rows['xform']['subgroup_name']); $rows['xform']['subsubgroup'] = array('id'=>$rows['xform']['subsubgroup_id'],'name'=>$rows['xform']['subsubgroup_name']); $rows['xform']['type'] = array('id'=>$rows['xform']['type_id'],'name'=>$rows['xform']['type_name']); if($rows['xform']['nonlab'] == '') $rows['xform']['nonlab'] = array('id'=>'','name'=>'LAB'); else $rows['xform']['nonlab'] = array('id'=>$rows['xform']['nonlab'],'name'=>$rows['xform']['nonlab']); unset($rows['xform']['sample_id']); unset($rows['xform']['unit_id']); unset($rows['xform']['group_id']); unset($rows['xform']['subgroup_id']); unset($rows['xform']['subsubgroup_id']); unset($rows['xform']['sample_name']); unset($rows['xform']['unit_name']); unset($rows['xform']['group_name']); unset($rows['xform']['subgroup_name']); unset($rows['xform']['subsubgroup_name']); } $sql = "SELECT Nat_SubGroupID as id, Nat_SubGroupName as name FROM nat_subgroup WHERE Nat_SubGroupNat_GroupID = {$prm['Nat_GroupID']} AND Nat_SubGroupIsActive = 'Y'"; //echo $sql; $rows['subgroups'] = $this->db_onedev->query($sql)->result_array(); $sql = "SELECT Nat_SubSubGroupID as id, Nat_SubSubGroupName as name FROM nat_subsubgroup WHERE Nat_SubSubGroupSubGroupID = {$prm['Nat_SubGroupID']} AND Nat_SubSubGroupIsActive = 'Y'"; //echo $sql; $rows['subsubgroups'] = $this->db_onedev->query($sql)->result_array(); $result = array( "total" => 1 , "records" => $rows, ); $this->sys_ok($result); exit; } function doaddtest(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rtn = true; $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $codefrom = $prm['codefrom']; $codetoward = $prm['codetoward']; $leng = strlen($codetoward); $code_parent = substr($codetoward, 0,-2); $sql = "SELECT count(*) as existtest FROM t_test WHERE T_TestSasCode LIKE '{$code_parent}%' AND T_TestCode = '{$codefrom}' AND T_TestIsActive = 'Y'"; //echo $sql; $xcount = $this->db_onedev->query($sql)->row()->existtest; if($xcount == 0){ $sql = " select T_TestID ,T_TestSasCode, case when length(T_TestSasCode) = {$leng} then T_TestSasCode + 1 else concat( substr(T_TestSasCode,1,{$leng}) + 2 , substr(T_TestSasCode, {$leng} +1) ) end as NewCode, T_TestName from t_test where T_TestSasCode like '{$code_parent}%' AND length(T_TestSasCode) = {$leng} AND T_TestSasCode >= '{$codetoward}' UNION select T_TestID , T_TestSasCode, case when length(T_TestSasCode) = {$leng} then T_TestSasCode + 1 else concat( substr(T_TestSasCode,1,{$leng}) + 1 , substr(T_TestSasCode, {$leng} +1) ) end as NewCode, T_TestName from t_test where ( T_TestSasCode like '{$code_parent}%' AND T_TestSasCode > '{$codetoward}' ) OR T_TestSasCode = '{$codetoward}' "; //echo $sql; $toupdate = $this->db_onedev->query($sql)->result(); if($toupdate){ foreach($toupdate as $k => $v){ $sql = "UPDATE t_test SET T_TestSasCode = '{$v->NewCode}' WHERE T_TestID = {$v->T_TestID} "; $this->db_onedev->query($sql); } } $sql = "SELECT * FROM t_test WHERE T_TestSasCode = '{$code_parent}' AND T_TestIsActive = 'Y'"; $parentid = $this->db_onedev->query($sql)->row()->T_TestID; $query ="INSERT INTO t_test ( T_TestParentT_TestID, T_TestNat_TestID, T_TestCode, T_TestSasCode, T_TestName, T_TestShortName, T_TestShortNameBarcode, T_TestNat_GroupID, T_TestNat_SubGroupID, T_TestT_SampleTypeID, T_TestFontSize, T_TestFontColor, T_TestIsBold, T_TestIsItalic, T_TestFlagGluc, T_TestIsQuantitative, T_TestIsDeltaCheck, T_TestIsResult, T_TestIsPrice, T_TestIsPrintResult, T_TestIsPrintNota, T_TestIsTrendAnalysis, T_TestIsWorklist, T_TestIsNonLab, T_TestWorklistName, T_TestFlagLow, T_TestFlagHigh, T_TestUserID, T_TestCreated ) SELECT {$parentid}, Nat_TestID, Nat_TestCode, '{$codetoward}', Nat_TestName, Nat_TestShortName, Nat_TestShortNameBarcode, Nat_TestNat_GroupID, Nat_TestNat_SubGroupID, Nat_TestNat_SampleTypeID, Nat_TestFontSize, Nat_TestFontColor, Nat_TestIsBold, Nat_TestIsItalic, Nat_TestFlagGluc, Nat_TestIsQuantitative, Nat_TestIsDeltaCheck, Nat_TestIsResult, Nat_TestIsPrice, Nat_TestIsPrintResult, Nat_TestIsPrintNota, Nat_TestIsTrendAnalysis, Nat_TestIsWorklist, Nat_TestIsNonLab, Nat_TestWorklistName, Nat_TestFlagLow, Nat_TestFlagHigh, {$userid}, NOW() FROM nat_test WHERE Nat_TestCode = '{$codefrom}' AND Nat_TestIsActive = 'Y' "; //echo $query; $this->db_onedev->query($query); $sql = "SELECT T_TestID FROM t_test WHERE T_TestSasCode = '{$code_parent}' AND T_TestIsActive = 'Y' LIMIT 1"; $data_parent = $this->db_onedev->query($sql)->row(); if($data_parent){ $testidparent = $data_parent->T_TestID; $sql = "UPDATE t_test SET T_TestIsParent = 'Y' WHERE T_TestID = {$testidparent}"; $this->db_onedev->query($sql); } } $result = array( "total" => 1 , "records" => $xcount, "debug"=>$query ); $this->sys_ok($result); exit; } }