ID_PROCES_INIT = V::get('proces_id', '', $_GET, 'int'); $sql_obj->ID_STANOWISKO = V::get('stanowisko_id', '', $_GET, 'int'); $sql_obj->TEST_TYPE = V::get('test_type', '', $_GET); $sql_obj->ID_TESTER = User::getID(); // validate $has_errors = false; if ($sql_obj->ID_PROCES_INIT <= 0) { App::add_error("Bledny numer procesu!"); $has_errors = true; } if ($sql_obj->ID_STANOWISKO <= 0) { App::add_error("Bledny numer stanowiska!"); $has_errors = true; } if (!in_array($sql_obj->TEST_TYPE, array('TEORETYCZNY', 'PRAKTYCZNY'))) { App::add_error("Bledny typ testu!"); $has_errors = true; } if (!$has_errors) { $new_id = DB::ADD_NEW_OBJ( 'CRM_TESTY', $sql_obj ); if ($new_id > 0) { $redirect = "?task="."CRM_TEST"."&test_id=".$new_id;// TODO: hide_menu - hide user panel App::add_msg("Rozpocznij test"); } else { App::add_error("Error przy dodawaniu rekordu!"); } } App::redirect($redirect, $msg); } function fun_CRM_TESTY__ADD_FIX() { $redirect = "?task=".App::get_task(); $msg = ''; $sqlObj = new stdClass(); $hasErrors = false; $sqlObj->ID_TEST_TO_FIX = V::get('test_id', '', $_GET, 'int'); if (!$sqlObj->ID_TEST_TO_FIX) { App::add_error("Bledny numer testu!"); $hasErrors = true; } $db = DB::getDB(); if (!$db) { App::add_error("Błąd bazy danych!"); $hasErrors = true; } $oldTest = $db->get_by_id('CRM_TESTY', $sqlObj->ID_TEST_TO_FIX); if (!$oldTest) { App::add_error("Test do poprawy nie istnieje ({$sqlObj->ID_TEST_TO_FIX})."); $hasErrors = true; } $sqlObj->ID_TESTER = User::getID(); if ($sqlObj->ID_TESTER != $oldTest->ID_TESTER) { App::add_error("Nie można poprawiać cudzych testów ({$sqlObj->ID_TESTER},{$oldTest->ID_TESTER})."); $hasErrors = true; } $sqlObj->ID_PROCES_INIT = $oldTest->ID_PROCES_INIT; $sqlObj->ID_STANOWISKO = $oldTest->ID_STANOWISKO; $sqlObj->TEST_TYPE = $oldTest->TEST_TYPE; if (!$hasErrors) { $newId = $db->ADD_NEW_OBJ('CRM_TESTY', $sqlObj); if ($newId > 0) { $sql = "insert into `CRM_TESTY_ODPOWIEDZI` ( `ID_TEST` , `ID_PYTANIE` , `ODPOWIEDZ` , `ODP_0` , `ODP_1` , `ODP_2` , `ODP_3` , `ODP_4` , `OCENA` ) select {$newId} as `ID_TEST` , q.`ID_PYTANIE` , q.`ODPOWIEDZ` , q.`ODP_0` , q.`ODP_1` , q.`ODP_2` , q.`ODP_3` , q.`ODP_4` , 0 as `OCENA` from `CRM_TESTY_ODPOWIEDZI` as q where `ID_TEST`={$sqlObj->ID_TEST_TO_FIX} "; $db->query($sql); $redirect = "?task=CRM_TEST&test_id={$newId}";// TODO: hide_menu - hide user panel App::add_msg("Rozpocznij test"); } else { App::add_error("Error przy dodawaniu rekordu!"); } } App::redirect($redirect, $msg); } /** * @param $_GET['kandydat_id'] - kandydat id */ function fun_CRM_TESTY_RELOGIN_AS_KANDYDAT() { $redirect = "?task=" . "CRM_TESTY"; $msg = ''; $kandydat_id = V::get('kandydat_id', 0, $_POST, 'int'); if (!User::hasAccess('procesy_admin')) { $msg = "Brak uprawnień do logowania Kandydatów"; } else { session_destroy(); session_start(); $errors = array(); User::kandydatLogin($kandydat_id, $errors); if (User::logged()) { // ok } else { // not ok - log in } } App::redirect($redirect, $msg); } /** * Add kandydat to `ADMIN_USERS`. * @param $_POST['f_name'] * @param $_POST['f_tel'] * @param $_POST['f_email'] */ function fun_CRM_TESTY_ADD_KANDYDAT() { $redirect = "?task=".App::get_task(); $msg = ''; $sql_obj = new stdClass(); $sql_obj->ADM_NAME = V::get('f_name', '', $_POST); $sql_obj->ADM_PHONE = V::get('f_tel', '', $_POST); $sql_obj->EMAIL = V::get('f_email', '', $_POST); $sql_obj->ADM_PASSWD = md5('Kandydat'); $sql_obj->ADM_ADMIN_LEVEL = 6; $sql_obj->A_STATUS = 'WAITING'; $sql_obj->ADM_ACCOUNT = 'Kandydat'; $sql_obj->ADM_AREA = 'KANDYDAT'; $sql_obj->ADM_ADMIN_DESC = 'Kandydat'; $sql_obj->EMPLOYEE_TYPE = 'Kandydat'; $error = false; if (!$sql_obj->ADM_NAME) { App::add_error("Podaj imie i nazwisko"); $error = true; } if (!$sql_obj->ADM_PHONE) { App::add_error("Podaj numer telefonu"); $error = true; } if (!$sql_obj->EMAIL) { App::add_error("Podaj adres e-mail"); $error = true; } if ($error) { //App::redirect($redirect, $msg); return; } $db = DB::getDB(); $new_id = $db->ADD_NEW_OBJ( 'ADMIN_USERS', $sql_obj ); if ($new_id > 0) { App::add_msg("Dodano nowego kandydata"); // update login name `ADM_ACCOUNT` to uniq name $sql_obj = new stdClass(); $sql_obj->ID = $new_id; $sql_obj->ADM_ACCOUNT = 'Kandydat.'.$new_id; $affected = $db->UPDATE_OBJ( 'ADMIN_USERS', $sql_obj ); if ($affected == 2) { App::add_msg("ok"); } else if ($affected == 1) { // nie zapisano historii - ok } else { App::add_error("Error przy zmianie loginu kandydata!".$db->error()); } } else { App::add_error("Error przy dodawaniu kandydata!!"); } App::redirect($redirect, $msg); } /** * @param $_GET['test_id'] - ID rekordu. */ function fun_CRM_TEST_EDIT() { $test_id = V::get('test_id', 0, $_GET, 'int'); $redirect = "?task=".App::get_task()."&test_id=".$test_id; $msg = ''; $sql_obj = new stdClass(); $test_obj = DB::get_by_id( 'CRM_TESTY', $test_id ); $subtask = V::get('subtask', '', $_REQUEST); if ($subtask == 'INIT') { if ($test_obj->A_STATUS == 'WAITING') { $sql_obj->ID = $test_obj->ID; $sql_obj->A_STATUS = 'MONITOR'; $sql_obj->TEST_INIT = 'NOW()'; $affected = DB::UPDATE_OBJ( 'CRM_TESTY', $sql_obj ); if ($affected == 2) { App::add_msg("Test rozpoczety"); } else if ($affected == 1) { App::add_error("Zmienio rekord (Error: nie zapisano hostorii)"); } else if ($affected < 0) { App::add_error("Blad podczas edytowania rekordu - nic nie zmieniono"); } } else { // TODO: mozna sprawdzic aktualny status - msg App::add_error("Nie mozna rozpoczac testu"); } } else if ($subtask == 'START') { if ($test_obj->A_STATUS == 'MONITOR') { $sql_obj->ID = $test_obj->ID; $sql_obj->A_STATUS = 'MONITOR';// start test $sql_obj->TEST_START = 'NOW()'; $affected = DB::UPDATE_OBJ( 'CRM_TESTY', $sql_obj ); if ($affected == 2) { App::add_msg("Uruchomiono test"); } else if ($affected == 1) { App::add_error("Zmienio rekord (Error: nie zapisano hostorii)"); } else if ($affected < 0) { App::add_error("Blad podczas edytowania rekordu - nic nie zmieniono"); } } else { // TODO: mozna sprawdzic aktualny status - msg App::add_error("Nie mozna rozpoczac testu"); } } else if ($subtask == 'SAVE') {// zapisz podane odpowiedzi Lib::loadClass( 'ProcesTestyHelper' ); $odpowiedzi = ProcesTestyHelper::get_odpowiedzi( $test_obj->ID ); $pytania_id = array(); foreach ($odpowiedzi as $k_id_proces => $v_odp) { foreach ($v_odp as $k_id_pyt => $v_pyt) { $pytania_id[$k_id_pyt] = $v_pyt; } } $user_odpowiedzi = array(); if (!empty($_POST)) { foreach ($_POST as $k => $v) { if (substr($k, 0, 4) == 'ODP_') { $k_id_pyt = substr($k, 4); if (strpos($k_id_pyt, '_ODP_') !== false) { $k_id_pyt_arr = explode('_ODP_', $k_id_pyt); if (count($k_id_pyt_arr) == 2) { $user_odpowiedzi[ $k_id_pyt_arr[0] ][ $k_id_pyt_arr[1] ] = $v; } } else { $user_odpowiedzi[ $k_id_pyt ] = $v; } } } } foreach ($user_odpowiedzi as $k_id_pyt => $v_odp) { if (array_key_exists($k_id_pyt, $pytania_id)) { // update odp $sql_obj = new stdClass(); $sql_obj->ID = $pytania_id[$k_id_pyt]->ID; $sql_obj->ID_TEST = $test_obj->ID; $sql_obj->ID_PYTANIE = $k_id_pyt; $sql_obj->ODPOWIEDZ = ''; $sql_obj->ODP_0 = ''; $sql_obj->ODP_1 = ''; $sql_obj->ODP_2 = ''; $sql_obj->ODP_3 = ''; $sql_obj->ODP_4 = ''; $is_odp = false; if (is_array($v_odp)) { for ($i = 0; $i < 5; $i++) { if (isset($v_odp[$i])) { $is_odp = true; $field = "ODP_".$i; $sql_obj->$field = $v_odp[$i]; } } } else { $is_odp = true; $sql_obj->ODPOWIEDZ = $v_odp; } if ($is_odp) {// pomin puste $affected = DB::UPDATE_OBJ( 'CRM_TESTY_ODPOWIEDZI', $sql_obj ); if ($affected == 2) { App::add_msg("Zapisano odpowiedz do [".$k_id_pyt."]"); } else if ($affected == 1) { App::add_error("Zapisano odpowiedz do [".$k_id_pyt."] (Error: nie zapisano hostorii)"); } else if ($affected < 0) { App::add_error("Blad podczas zapisu odpowiedzi do [".$k_id_pyt."]"); } } } else { // add odp $sql_obj = new stdClass(); $sql_obj->ID_TEST = $test_obj->ID; $sql_obj->ID_PYTANIE = $k_id_pyt; $sql_obj->ODPOWIEDZ = ''; $sql_obj->ODP_0 = ''; $sql_obj->ODP_1 = ''; $sql_obj->ODP_2 = ''; $sql_obj->ODP_3 = ''; $sql_obj->ODP_4 = ''; $is_odp = false; if (is_array($v_odp)) { for ($i = 0; $i < 5; $i++) { if (!empty($v_odp[$i])) { $is_odp = true; $field = "ODP_".$i; $sql_obj->$field = $v_odp[$i]; } } } else { if (!empty($v_odp)) { $is_odp = true; $sql_obj->ODPOWIEDZ = $v_odp; } } if ($is_odp) { $new_id = DB::ADD_NEW_OBJ( 'CRM_TESTY_ODPOWIEDZI', $sql_obj ); if ($new_id > 0) { App::add_msg("Zapisano odpowiedz do [".$k_id_pyt."]"); } else { App::add_error("Blad podczas zapisu odpowiedzi do [".$k_id_pyt."]"); } } } } // zakoncz test if (!empty($_POST['save_and_end']) && $test_obj->A_STATUS == 'MONITOR') { $sql_obj = new stdClass(); $sql_obj->ID = $test_obj->ID; $sql_obj->A_STATUS = 'NORMAL';// start test $sql_obj->TEST_END = 'NOW()'; $affected = DB::UPDATE_OBJ( 'CRM_TESTY', $sql_obj ); if ($affected == 2) { App::add_msg("Zakonczono test"); } else if ($affected == 1) { App::add_error("Zmienio rekord (Error: nie zapisano hostorii)"); } else if ($affected < 0) { App::add_error("Blad podczas edytowania rekordu - nic nie zmieniono"); } } } else if ($subtask == 'OCEN') {// zapisz ocen $kandydat_id = V::get('kandydat_id', 0, $_GET, 'int'); $redirect .= "&kandydat_id=".$kandydat_id; if ($test_obj->A_STATUS == 'NORMAL' || $test_obj->A_STATUS == 'OFF_HARD') { $oceny = array();// zazanczone oceny ($_POST) $oceny_id = array();// [ID_PYT] = {ID,ID_PYTANIE,ID_PROCES,ODPOWIEDZ,ODP_0/1/2/3/4,OCENA} $oceny_empty = array();// zazanczone oceny ($_POST), ale brak rekordow w tabeli odpowiedzi - user not answer $pytania_empty = array();// j/w $avg_odpowiedzi_pyt = array();// wszystkie odpowiedzi [ID_PROCES][ID_PYT] = OCENA Lib::loadClass('ProcesTestyHelper'); $odpowiedzi = ProcesTestyHelper::get_odpowiedzi($test_obj->ID); $pytania_id = array(); foreach ($odpowiedzi as $k_id_proces => $v_odp) { foreach ($v_odp as $k_id_pyt => $v_pyt) { $oceny_id[$k_id_pyt] = $v_pyt; } } // zaznaczone oceny if (!empty($_POST)) { $req_prefix = 'ocena_'; foreach ($_POST as $k => $v) { if (substr($k, 0, strlen($req_prefix)) == $req_prefix) { $id_pyt = substr($k, strlen($req_prefix)); $oceny[$id_pyt] = $v; if (!array_key_exists($id_pyt, $oceny_id)) { $oceny_empty[$id_pyt] = true; } } } } // dla kazdego procesu obliczyc srednia na podstawie ocen odpowiedzi na pytania if (!empty($oceny_empty)) { $pytania_empty = ProcesTestyHelper::get_pytania_by_id(array_keys($oceny_empty)); } foreach ($oceny as $k_id_pyt => $v_odp) { if (array_key_exists($k_id_pyt, $oceny_id)) { // update odp $odp_row = $oceny_id[$k_id_pyt]; $sql_obj = new stdClass(); $sql_obj->ID = $odp_row->ID; $sql_obj->OCENA = $oceny[$k_id_pyt]; $avg_odpowiedzi_pyt[$odp_row->ID_PROCES][$odp_row->ID_PYTANIE] = $oceny[$k_id_pyt]; $affected = DB::UPDATE_OBJ( 'CRM_TESTY_ODPOWIEDZI', $sql_obj ); if ($affected == 2) { App::add_msg("Zapisano ocene do [".$k_id_pyt."]"); } else if ($affected == 1) { App::add_error("Zapisano ocene do [".$k_id_pyt."] (Error: nie zapisano hostorii)"); } else if ($affected < 0) { App::add_error("Blad podczas zapisu oceny do [".$k_id_pyt."]"); } } else if (array_key_exists($k_id_pyt, $pytania_empty)) { // error odpowiedz not exists, add OCENA = 0 - nic $pyt_row = $pytania_empty[$k_id_pyt]; $avg_odpowiedzi_pyt[$pyt_row->ID_PROCES][$pyt_row->ID] = $oceny[$k_id_pyt]; } else { // TODO: error unknown! } } $ocena_avg = 0; // oblicz srednia dla kazdego procesu if (!empty($avg_odpowiedzi_pyt)) { $avg_odpowiedzi = array();// wszystkie odpowiedzi [ID_PROCES] = OCENA (avg from $avg_odpowiedzi_pyt[ID_PROCES]) $avg_max = 0; $avg_sum = 0; //echo'
avg_odpowiedzi_pyt: ';print_r($avg_odpowiedzi_pyt);echo''; foreach ($avg_odpowiedzi_pyt as $k_id_proces => $v_odp) { if ('' != $v_odp) { $p_avg_sum = 0; foreach ($v_odp as $k_id_pyt => $v_ocena) { $p_avg_sum += $v_ocena; } $p_avg_max = count($v_odp);// max 3 za pytanie $p_avg = floatval($p_avg_sum) / $p_avg_max;// srednia procesu $k_id_proces $avg_odpowiedzi[$k_id_proces] = $p_avg; $avg_sum += $p_avg; } } if (!empty($avg_odpowiedzi)) { $avg_max = count($avg_odpowiedzi); $ocena_avg = round($avg_sum / $avg_max, 2); //echo'
avg_odpowiedzi: ';print_r($avg_odpowiedzi);echo''; //echo'{AVG: '.$avg_sum.'/'.$avg_max.' = '.($avg_sum / $avg_max).' ~ '.$ocena_avg.'}'; } } if (empty($avg_odpowiedzi_pyt) && $ocena_avg == 0) { $ocena_avg = -1;// Brak pytań } $sql_obj = new stdClass(); $sql_obj->ID = $test_obj->ID; $sql_obj->A_STATUS = 'OFF_HARD';// test oceniony $sql_obj->UWAGI = V::get('f_uwagi', '', $_POST); $sql_obj->OCENA = $ocena_avg; $affected = DB::UPDATE_OBJ( 'CRM_TESTY', $sql_obj ); if ($affected == 2) { App::add_msg("Oceniono test: $ocena_avg/3"); } else if ($affected == 1) { App::add_error("Oceniono test (Error: nie zapisano hostorii)"); } else if ($affected < 0) { App::add_error("Blad podczas oceniania testu - nic nie zmieniono"); } } } else if ($subtask == 'EDIT') {// zapisz dane if ($test_obj->A_STATUS == 'OFF_HARD') { $sql_obj->ID = $test_obj->ID; $sql_obj->UWAGI = V::get('UWAGI', '', $_POST); $sql_obj->COST = V::get('COST', 0, $_POST, 'double'); $sql_obj->DISCOUNT = V::get('DISCOUNT', 0, $_POST, 'double'); $sql_obj->ID_ORGANIZER = V::get('ID_ORGANIZER', 0, $_POST, 'int'); $sql_obj->TEST_PLACE = V::get('TEST_PLACE', '', $_POST); $sql_obj->SHOW_IN_CERT = V::get('SHOW_IN_CERT', '', $_POST); $affected = DB::UPDATE_OBJ( 'CRM_TESTY', $sql_obj ); if ($affected == 2) { App::add_msg("Zapisano zmiany"); } else if ($affected == 1) { App::add_error("Zmienio rekord (Error: nie zapisano hostorii)"); } else if ($affected < 0) { App::add_error("Blad podczas edytowania rekordu - nic nie zmieniono"); } } } else { App::add_error("Wrong task"); } App::redirect($redirect, $msg); } /** * @param $_GET['test_id'] - ID z tabeli CRM_TESTY */ function task_CRM_TEST() { $test_id = V::get('test_id', 0, $_GET, 'int'); Lib::loadClass('ProcesTestyHelper'); if ($test_id <= 0) { echo'
'."Wrong ID".'
'; return; } $test_obj = DB::get_by_id('CRM_TESTY', $test_id); if (!$test_obj) { echo''."Wrond ID.".'
'; return; } $stanowisko = DB::get_by_id('CRM_LISTA_ZASOBOW', $test_obj->ID_STANOWISKO); $proces = DB::get_by_id('CRM_PROCES', $test_obj->ID_PROCES_INIT); echo''."Test procesu ".''."[{$proces->ID}] {$proces->DESC}".'';
//echo'
'.''.$proces->OPIS.'';
echo'
'."dla stanowiska ".''."[{$stanowisko->ID}] {$stanowisko->DESC}".'';
//echo'
'.''.$stanowisko->OPIS.'';
echo'
test : ';print_r($test_obj);echo''; $lastTestDate = null; if ($test_obj->ID_TEST_TO_FIX > 0) { $testToFix = DB::get_by_id('CRM_TESTY', $test_obj->ID_TEST_TO_FIX); $lastTestDate = $testToFix->TEST_END; if ($lastTestDate == '0000-00-00 00:00:00') $lastTestDate = $testToFix->TEST_START; if ($lastTestDate == '0000-00-00 00:00:00') $lastTestDate = $testToFix->TEST_INIT; if ($lastTestDate == '0000-00-00 00:00:00') $lastTestDate = null; } /* * WAITING - nowy test - oczekiwanie na rozpoczecie testu * MONITOR - test rozpoczety z data TEST_INIT * NORMAL - test zakonczony - do ocenienia TEST_END * OFF_HARD - test oceniony */ if ($test_obj->A_STATUS == 'WAITING') {// nowy test - oczekiwanie na rozpoczecie testu echo App::link("Rozpocznij", array('task'=>App::get_task(), 'function_init'=>'fun_CRM_TEST_EDIT', 'subtask'=>'INIT', 'test_id'=>$test_obj->ID), array('class'=>'btn-p5')); } else if ($test_obj->A_STATUS == 'MONITOR' && $test_obj->TEST_START == '0000-00-00 00:00:00') {// czytanie - test rozpoczety z data TEST_INIT $id_proces = $test_obj->ID_PROCES_INIT; $p = DB::get_by_id('CRM_PROCES', $id_proces); if (!$p) { echo '
$wskazniki (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($wskazniki);echo'';}
$gotoLinks = array();
$gotoIds = array();
foreach ($listFlat as $vItem) {
$item = $treeList->getData($vItem->ID);
if ($item->IF_TRUE_GOTO > 0) {
$gotoIds[] = $item->IF_TRUE_GOTO;
}
}
if (!empty($gotoIds)) {
$db = DB::getDB();
$sqlIds = implode(",", $gotoIds);
$sql = "select p.`ID`, p.`DESC`, p.`OPIS`
from `CRM_PROCES` as p
where
p.`A_STATUS` in('WAITING', 'NORMAL')
and p.`ID` in({$sqlIds})
";
$res = $db->query($sql);
while ($r = $db->fetch($res)) {
$gotoLinks[$r->ID] = $r->DESC;
}
}
foreach ($listFlat as $vItem) {
$item = $treeList->getData($vItem->ID);
$itemDate = ($item->A_RECORD_UPDATE_DATE)? $item->A_RECORD_UPDATE_DATE : $item->A_RECORD_CREATE_DATE;
if ($itemDate > $lastTestDate) {
$vItem->changedAfterLastTest = true;
}
if(V::get('DBG_TF', '', $_GET) > 0){echo'wskazniki['.$item->ID.'] (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($wskazniki[$item->ID]);echo'';}
$vItem->gotoOut = '';
if ($item->IF_TRUE_GOTO > 0) {
$gotoLink = "{{$item->IF_TRUE_GOTO}}";
if (!V::get('HIDE_PANEL', 0, $_GET, 'int')) {
$gotoLink = App::link($gotoLink, array('task'=>'PROCES_VIEW_LIST', 'id_proces'=>$item->IF_TRUE_GOTO));
}
if ($item->IF_TRUE_GOTO_FLAG == 'GOTO') {
$vItem->gotoOut .= "Przejdź do procesu {$gotoLink}";
} else if ($item->IF_TRUE_GOTO_FLAG == 'GOTO_AND_RETURN') {
$vItem->gotoOut .= "Przejdź do procesu {$gotoLink} i wróć po jego zakończeniu";
} else if ($item->IF_TRUE_GOTO_FLAG == 'FORK') {
$vItem->gotoOut .= "Uruchom propces {$gotoLink}";
}
if (!empty($vItem->gotoOut) && !empty($gotoLinks[$item->IF_TRUE_GOTO])) {
$vItem->gotoOut .= ": {$gotoLinks[$item->IF_TRUE_GOTO]}";
}
$vItem->gotoOut .= ".";
}
}
$imgSize = (V::get('show_big_img', '', $_GET))? '600x600' : '200x200';
?>
A_HAS_IMAGE > 0) : ?>
A_HAS_IMAGE; $i++) : ?>
OPIS; ?>
gotoOut; ?>
App::get_task(), 'function_init'=>'fun_CRM_TEST_EDIT', 'subtask'=>'START', 'test_id'=>$test_obj->ID), array('class'=>'btn btn-primary')); ?>
Po rozpoczęciu testu nie ma możliwości powrotu do procesu.
Test wielokrotnego wyboru,
należy odpowiedzieć na wszystkie pytania zaznaczając TAK lub NIE
' . "Test uruchomiono: " . $test_obj->TEST_INIT . '
'; echo '' . "Test rozpoczeto: " . $test_obj->TEST_START . '
'; echo '' . "Test zakonczono: " . $test_obj->TEST_END . '
'; echo '' . "Rozpocznij nowy " . App::link("TEST", array('task'=>'CRM_TESTY__ADD_TEST')) . '
'; } else if ($test_obj->A_STATUS == 'OFF_HARD') {// test oceniony echo '' . "Test oceniony na " . $test_obj->OCENA . '
'; } // $item_id isset // TODO: check if exists in db // TODO: run test - show ajax clock - prevent logout } function task_CRM_TESTY__LIST() { if (!User::hasAccess('testy')) { User_procesy5_check_access(); } Lib::loadClass('ProcesTestyHelper'); echo '| ' . $v . ' | '; } echo '' . " " . ' | '; echo ''; $page_nav = new stdClass(); $page_nav->total = $lista_cnt; $page_nav->limit = $params['limit']; $page_nav->current = $params['offset']; $page_nav->offset_start = 0; $page_nav->offset_prev = $page_nav->current - $page_nav->limit; $page_nav->offset_next = $page_nav->current + $page_nav->limit; $page_nav->offset_end = floor($lista_cnt / $page_nav->limit) * $page_nav->limit; $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_start); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo App::link("<<", $link_params, array('class'=>'btn-p5')); $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_prev); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo ' ' . App::link("< -".$page_nav->limit, $link_params, array('class'=>'btn-p5')); echo ' ' . $page_nav->current.' ('.$page_nav->total.') '; $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_next); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo ' ' . App::link("+".$page_nav->limit." >", $link_params, array('class'=>'btn-p5')); $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_end); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo ' ' . App::link(">>", $link_params, array('class'=>'btn-p5')); echo ' | '; echo ''; $t = 0; echo ''; if (!empty($testy_arr)) { foreach ($testy_arr as $r) { echo '
|---|---|
| ' . $r->$k . ' | '; } echo ''; if ($r->A_STATUS == 'WAITING') { echo App::link("rozpocznij", array('task'=>'CRM_TEST', 'function_init'=>'fun_CRM_TEST_EDIT', 'subtask'=>'INIT', 'test_id'=>$r->ID), array('class'=>'btn-p5')); } else if ($r->A_STATUS == 'MONITOR') { if ($r->TEST_INIT == '0000-00-00 00:00:00') { echo App::link("rozpocznij", array('task'=>'CRM_TEST', 'function_init'=>'fun_CRM_TEST_EDIT', 'subtask'=>'INIT', 'test_id'=>$r->ID), array('class'=>'btn-p5')); } else { echo ' ' . App::link("test", array('task'=>'CRM_TEST', 'test_id'=>$r->ID), array('class'=>'btn-p5')); } } else if ($r->A_STATUS == 'NORMAL') { echo 'Test zakonczono'; } else if ($r->A_STATUS == 'OFF_HARD') { // test oceniony } else { //echo '{'.$r->A_STATUS.'}'; } echo ' | '; echo '
' . "Brak testów." . '
'; } } function task_CRM_TESTY__ADD_KANDYDAT() { Lib::loadClass('ProcesTestyHelper'); echo '' . "Brak uprawnień!" . '
'; return; } echo''.$proces->p__ID.': ';print_r($proces);echo''; echo'
'."Dane osoby testujacej:".'
'; echo''; echo''."F.rec(limit:$rec_limit, proces_id:".implode(',', $procesy_id).") ...".'
'; if ($rec_limit-- <= 0) return;// recursion limit foreach ($procesy_id as $id) { $pomin_id[] = $id; } $find_procesy_id = array(); $db = DB::getDB(); $sql = "select p.`ID`, p.`PARENT_ID`, p.`TYPE`, p.`DESC`, p.`OPIS`, p.`TEST_SORT_PRIO` from `CRM_PROCES` as p where p.`ID` in(".implode(',', $procesy_id).") "; $res = $db->query($sql); while ($r = $db->fetch($res)) { if ($r->TYPE == 'PROCES_INIT') { $procesy_init[$r->ID] = $r; } else if (!in_array($r->PARENT_ID, $pomin_id)) { $find_procesy_id[] = $r->PARENT_ID; } } if (!empty($find_procesy_id)) { this_CRM_TESTY_stanowisko_find_proces_init_rec($find_procesy_id, $procesy_init, $pomin_id, $rec_limit); } } this_CRM_TESTY_stanowisko_find_proces_init_rec(array_keys($procesy), $procesy_init); $proces_id = V::get('proces_id', '', $_GET, 'int'); if ($proces_id > 0) { if (!array_key_exists($proces_id, $procesy)) { echo'' . "Wybierz proces do przetestowania:" . '
'; if (empty($procesy_init)) { echo '| ' . "PROCES ID" . ' | '; echo '' . "NAZWA / OPIS" . ' | '; if (V::get('DBG_SORT', 0, $_GET)) echo 'SORT | '; echo '
|---|---|---|
| ';
echo App::link(' '; echo ' '; echo App::link(' | ';
echo '';
echo ' ';
echo ' ' . $v_proces->DESC . '';
echo ' | ';
if (V::get('DBG_SORT', 0, $_GET)) echo ''.$v_proces->TEST_SORT_PRIO.' | '; echo '
Brak przypisanego stanowiska
Wybierz stanowisko do przetestowania:
$r) { $tree_flat [$r->ID] = null; $tree_flat [$r->PARENT_ID] = null; } $tree_created = TreeHelper::build_tree_flat('CRM_LISTA_ZASOBOW', $tree_flat); //echo'{'.$tree_created.'} Tree flat: ';print_r($tree_flat);echo'';
$stanowiska_tree = TreeHelper::get_tree_from_flat($tree_flat);
//echo'stanowiska_tree: ';print_r($stanowiska_tree);echo''; this_tree_fetch_data_rec($stanowiska, $tree_flat); //echo'
stanowiska all: ';print_r($stanowiska);echo''; //DEBUG_S(1,'user_menu',$user_menu, __FILE__, __FUNCTION__, __LINE__); $tree = new Tree('CRM_LISTA_ZASOBOW'); $tree->show_css(); this_print_tree_rec($stanowiska_tree[0], $stanowiska); } /** * Router for task_CRM_TESTY__LIST, task_CRM_TESTY__ADD_KANDYDAT, task_CRM_TESTY__ADD_TEST * @param $_GET['stanowisko_id'] * @param $_GET['proces_id'] */ function task_CRM_TESTY() { if (!User::hasAccess('testy')) { User_procesy5_check_access(); } $tasks = array(); $tasks[] = App::link("Twoje testy", array('task'=>"CRM_TESTY__LIST"), array('class'=>'btn-p5')); if (User::hasAccess('procesy')) { $tasks[] = App::link("Dodaj Kandydata i zaloguj się do testów", array('task'=>"CRM_TESTY__ADD_KANDYDAT"), array('class'=>'btn-p5')); } $tasks[] = App::link("Uruchom nowy test", array('task'=>"CRM_TESTY__ADD_TEST"), array('class'=>'btn-p5')); echo '
'."Brak zaznaczonych testow".'
'; return; } $testy_id = explode(' ', trim($testy_id)); echo'';print_r($testy_id);echo''; } function task_CRM_TESTY_WYNIKI() { if (User::hasAccess('testy_wyniki_read')) { User_procesy5_check_access(); } $kandydat_id = V::get('kandydat_id', 0, $_GET, 'int'); $test_id = V::get('test_id', 0, $_GET, 'int'); // TODO: if kandydat_id - lista testow kandydata, btn ocen jesli NORMAL // TODO: if kandydat_id and test_id - ocen test jesli NORMAL //TODO: uprawnienia - tester nie moze oceniac! if (!User::hasAccess('testy_wyniki')) { echo'
'."Brak uprawnien!".'
'; return; } echo '';
Lib::loadClass('ProcesTestyHelper');
{
$params = array();
$params ['order by'] = "ADM_NAME";
$kandydaci = ProcesTestyHelper::get_kandydaci( $params );
echo''."Wybierz kandydata".''; echo''; } echo ' | ';
echo '';
Lib::loadClass('UsersHelper');
{
$params = array();
$pracownicy = UsersHelper::get_users_list($params, 0, 0, 'ADM_NAME', 'ASC');
echo''."lub pracownika".''; echo''; } echo ' | ';
echo '
' . '' . "Wybierz test " . '' . " - "; echo App::link("Ustal kolejność testów", array('task'=>'TEST_SORT')); echo '
'; echo'| '.$v.' | '; } echo''." ".' | '; echo''; $page_nav = new stdClass(); $page_nav->total = $lista_cnt; $page_nav->limit = $params['limit']; $page_nav->current = $params['offset']; $page_nav->offset_start = 0; $page_nav->offset_prev = $page_nav->current - $page_nav->limit; $page_nav->offset_next = $page_nav->current + $page_nav->limit; $page_nav->offset_end = floor($lista_cnt / $page_nav->limit) * $page_nav->limit; $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_start); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo App::link("<<", $link_params, array('class'=>'btn-p5')); $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_prev); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo ' '.App::link("< -".$page_nav->limit, $link_params, array('class'=>'btn-p5')); echo ' '.$page_nav->current.' ('.$page_nav->total.') '; $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_next); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo ' '.App::link("+".$page_nav->limit." >", $link_params, array('class'=>'btn-p5')); $link_params = array('task'=>App::get_task(), '_offset'=>$page_nav->offset_end); if ($kandydat_id > 0) $link_params['kandydat_id'] = $kandydat_id; echo ' '.App::link(">>", $link_params, array('class'=>'btn-p5')); echo' | '; echo''; echo''; if (!empty($testy_arr)) { foreach ($testy_arr as $r) { echo'
|---|---|---|
| ' . number_format($r->$k, 2, ',', '') . ' | '; } else { $cls = ''; if ($k == 'TEST_TYPE') { $cls = 'cell-' . strtolower($k) . '-' . strtolower($r->$k); } if ($cls) $cls = ' class="' . $cls . '"'; echo '' . $r->$k . ' | '; } } echo''; if (User::get('ADM_ADMIN_LEVEL') == 0 && $r->A_STATUS == 'OFF_HARD') {// tylko level 0 i ocenione testy // edit link echo App::link("edit", array('task'=>"CRM_TESTY_WYNIKI_EDIT", 'test_id'=>$r->ID), array('title'=>"Edytuj", 'ico'=>'edit')); } // ocena if ($r->A_STATUS == 'WAITING') { //echo'Test nie rozpoczety'; } else if ($r->A_STATUS == 'MONITOR') { //echo'Test rozpoczeto '.$r->TEST_INIT; } else if ($r->A_STATUS == 'NORMAL') { //echo'Test zakonczono '.$r->TEST_END; echo App::link("ocen odpowiedzi", array('task'=>'CRM_TESTY_WYNIKI', 'test_id'=>$r->ID, 'kandydat_id'=>$r->ID_TESTER), array('class'=>'btn-p5')); } else if ($r->A_STATUS == 'OFF_HARD') { echo App::link("odpowiedzi", array('task'=>'CRM_TESTY_WYNIKI', 'test_id'=>$r->ID, 'kandydat_id'=>$r->ID_TESTER), array('class'=>'btn-p5')); } else { //echo '{'.$r->A_STATUS.'}'; } // TODO: checked from $_COOKIE[''] //$js = "compareCheckbox(this,'".$r->ID."')"; //echo''; echo' | '; echo'
'; echo ' '.$w->CW_ID.''; echo App::link("P+", array('task'=>App::get_task(), 'id_proces'=>$proces->ID, 'id_wskaznik'=>$w->CW_ID, '_type'=>$_type, '#'=>'frm-pytanie-add'), array('title'=>"Dodaj pytanie do wskaznika ".$w->CW_ID, 'class'=>'btn-p5')); echo ' ['.$w->ID.']'; echo ' '.$w->CP_FORM_TREAT.''; echo ''; echo ' '.$w->TYPE.''; if ($w->DESC_PL) { echo ' '.$w->DESC.' '.$w->DESC_PL.' '; } else { echo '
'.$w->DESC.'
'; } //if ($tree->get_param('rozwin_opis')) echo ' '.$w->OPIS.'';// opis zasobu //if ($tree->get_param('rozwin_opis')) echo ' '.$w->OPIS_ZASOB.'';// komentarz wskaznika echo''; echo'' . '' . "Typ pytania: " . ''; //if (!$_type) { echo '
'."Dodano nowy rekord [$sql_ret]".'
'; // return true;// exception //} else { // echo ''."Blad podczas dodawania nowego rekordu".'
'; //} } else { $sql_affected = DB::UPDATE_OBJ( 'CRM_TESTY_PYTANIA', $sql_obj ); if ($sql_affected == 2) { echo ''."Zmienio rekord".'
'; } else if ($sql_affected == 1) { echo ''."Zmieniono rekord (Error: nie zapisano hostorii)".'
'; } else if ($sql_affected < 0) { echo ''."Blad podczas edytowania rekordu - nic nie zmieniono".'
'; } } } } if ($prefix == 'add_') { unset($r->ID); } else { //$r->ID = V::get( $prefix.'ID', '', $_POST ); } if ($prefix == 'add_') { $out .= '' . "Brak pytań typu: " . $types_allowed[$_type] . '
'; } foreach ($pytania_out as $out) { echo $out; } } function tree_callback__show_test_item_from_CRM_PROCES(&$r, &$tree) { $cls = array(); $cls = (!empty($cls))? implode(' ', $cls) : ''; $tree_test_type = $tree->get_param('TEST_TYPE'); $changedAfterLastTest = false; if ($tree->get_param('show_state') == 'items') { $lastTestDate = $tree->get_param('lastTestDate'); $itemDate = ($r->A_RECORD_UPDATE_DATE)? $r->A_RECORD_UPDATE_DATE : $r->A_RECORD_CREATE_DATE; $changedAfterLastTest = ($itemDate > $lastTestDate); } $outItemClass = ''; if ($r->TYPE == 'PROCES_INIT') $outItemClass .= ' btn-box-red'; if ($changedAfterLastTest) $outItemClass .= ' changed-after-last-test'; $treeItemDesc = ''; if ($tree->get_param('show_state') == 'items') { if ($r->TEST_PYTANIE) {// pytanie ponizej } else {// TODO: brak pyta?? $treeItemDesc = $r->DESC; } } else {// TODO: brak pyta?? $treeItemDesc = $r->DESC; } //if ($tree->get_param('rozwin_opis') && $r->OPIS) echo' '.$r->OPIS.''; $pytaniaOut = array(); if ($tree->get_param('show_state') == 'items') { Lib::loadClass('ProcesTestyHelper'); $pytaniaRaw = ProcesTestyHelper::get_pytania_by_proces_id($r->ID, $tree_test_type); if (!empty($pytaniaRaw)) { foreach ($pytaniaRaw as $p) { $p->otwarte = true; $odpowiedziOut = array(); for ($i = 0; $i < 5; $i++) { $odpOut = new stdClass(); $odpOut->questionFormFldName = "ODP_{$p->ID}"; $odpOut->questionFldName = "ODP_{$i}"; if (!empty($p->{$odpOut->questionFldName})) { $p->otwarte = false; $odpOut->answearFldName = "{$odpOut->questionFormFldName}_ODP_{$i}"; $odpOut->answearLabel = $p->{$odpOut->questionFldName}; $odpOut->answears = array('', 'TAK', 'NIE'); $odpOut->userAnswear = $tree->get_param($odpOut->answearFldName); $odpowiedziOut[] = $odpOut; } } if ($p->otwarte) { $p->questionFldName = "ODP_{$p->ID}"; $p->userAnswear = $tree->get_param($odpOut->questionFldName); } else { $p->odpowiedzi = $odpowiedziOut; } $pytaniaOut[] = $p; } } if('1'==V::get('DBG_ODP', '', $_GET) && !empty($pytaniaOut)) { echo'';print_r($tree);echo''; echo'
';print_r($pytaniaOut);echo''; } } ?>
'."Wrond user!".'
'; return; } Lib::loadClass('ProcesTestyHelper'); $params = array(); $params['limit'] = V::get('_limit', 100, $_GET, 'int'); $params['offset'] = V::get('_offset', 0, $_GET, 'int'); $params['order_by'] = V::get('_order_by', 'ID', $_GET); $params['order_dir'] = V::get('_order_dir', 'DESC', $_GET); $params['id_tester'] = $kandydat_id; $params['proces_name'] = true; $params['organizer_name'] = true; $params['SHOW_IN_CERT'] = 'TAK'; // validate params if ($params['offset'] < 0) $params['offset'] = 0; $lista_cnt = ProcesTestyHelper::get_testy_total( $params ); if ($lista_cnt <= 0) { echo "Brak testów"; return; } if ($params['offset'] > $lista_cnt) $params['offset'] = $lista_cnt - ($lista_cnt % $params['limit']); $testy_arr = ProcesTestyHelper::get_testy( $params ); $testy_zakonczone = array(); foreach ($testy_arr as $test) { if ($test->A_STATUS == 'OFF_HARD' && $test->TEST_END > '0000-00-00') {// $test->OCENA > 0 $testy_zakonczone[] = $test; } } $kand = reset($testy_zakonczone); $kandydat_name = $kand->Kandydat_Name; $kandydat_stanowiska = array(); foreach ($testy_zakonczone as $kand) { $kandydat_stanowiska [$kand->Stanowisko] = true; } $kandydat_stanowiska = implode(', ', array_keys($kandydat_stanowiska)); echo'' . "Załącznik nr 1 do umowy na sfinansowanie szkoleń pracownika" . '
'; //echo'' . "Gda??sk dnia " . date("Y-m-d") . '
'; //echo'';
// echo "Biall-Net Sp. z o.o." . '
';
// echo "Otomin, ul. S??oneczna 43" . '
';
// echo "80-174 Gda??sk" . '
';
//echo'
' . "Niniejszym zaświadcza się, że Pan/Pani " . $kandydat_name . " ukończył/a z wynikiem pozytywnym szkolenie w zakresie " . $kandydat_stanowiska . "." . '
'; echo'' . "Uczestnik uzyska?? nast??puj??ce wyniki:" . '
'; echo''; echo'| ' . "Tytuł Szkolenia" . ' | '; echo '' . "Data szkolenia" . ' | '; echo '' . "Organizator Szkolenia" . ' | '; echo '' . "Miejsce szkolenia" . ' | '; echo '' . "Data testu" . ' | ';// "Data szkolenia" - drugi raz? echo '' . "Czas szkolenia" . ' | '; echo '' . "Ocena" . ' | '; echo '' . "Całkowity koszt udziału jednego uczestnika w szkoleniu" . ' | '; echo '' . "Kwota udzielonego rabatu" . ' | '; echo '' . "Uwagi" . ' | '; echo '||
| ' . "Numer procesu" . ' | '; echo '' . "Nazwa procesu" . ' | '; echo '' . "Obszar działania" . ' | '; echo '|||||||||
| ' . $test->ID_PROCES_INIT . ' | '; echo'' . $test->Proces_Name . ' | '; echo'' . $test->Stanowisko . ' | '; echo'' . ' | ';
echo'' . $test->Organizer . ' | ';// ID_ORGANIZER "Organizator Szkolenia" - (uzupe??niane przy ocenianiu-select ) echo'' . $test->TEST_PLACE . ' | ';// TEST_PLACE "Miejsce szkolenia" - uzupe??niane przy ocenianiu - select z zasob??w+devices/telbox) echo'' . ' | ';
echo'' . '...' . ' | ';// TEST_TIME "Czas szkolenia" - (uzupe??nia?? przy przy ocenianiu ) echo'' . $test->OCENA . ' | '; echo'' . number_format($test->COST, 2, ',', ' ') . " zł" . ' | ';// COST "Ca??kowity koszt udzia??u jednego uczestnika w szkoleniu" - (uzupe??niane przy ocenianiu) echo'' . number_format($test->DISCOUNT, 2, ',', ' ') . " zł" . ' | '; echo'' . $test->UWAGI . ' | '; echo'
' . ".............................................................." . '
' . "(piecz???? firmowa i podpis prezesa)" . '
| '; echo "Data:"; echo ' | '; echo '';
echo ' '; echo ' ' . "Pracodawca" . ' '; echo ' | ';
echo '';
echo ' '; echo ' ' . "Pracownik" . ' '; echo ' | ';
echo '
' . "Error - brak uprawnień!" . '
'; echo App::link("wróć", array('task'=>'CRM_TESTY_WYNIKI')); return; } if ($test_id <= 0) { echo '' . "Error - błędny numer testu!" . '
'; echo App::link("wróć", array('task'=>'CRM_TESTY_WYNIKI')); return; } $test_obj = DB::get_by_id( 'CRM_TESTY', $test_id ); if (!$test_obj) { echo '' . "Error - test " . $test_id . " nie istnieje!" . '
'; echo App::link("wróć", array('task'=>'CRM_TESTY_WYNIKI')); return; } // fetch POST values - TODO: use $tbl_conf $test_obj->UWAGI = V::get('UWAGI', $test_obj->UWAGI, $_POST); $test_obj->COST = V::get('COST', $test_obj->COST, $_POST, 'double'); $test_obj->ID_ORGANIZER = V::get('ID_ORGANIZER', $test_obj->ID_ORGANIZER, $_POST); $test_obj->TEST_PLACE = V::get('TEST_PLACE', $test_obj->TEST_PLACE, $_POST); $test_obj->SHOW_IN_CERT = V::get('SHOW_IN_CERT', $test_obj->SHOW_IN_CERT, $_POST); Column::init('CRM_TESTY', true);// TODO: mv to procesy5.php:134 without force=true $tbl = 'CRM_TESTY'; $tbl_conf = Column::getInstance($tbl); if (!$tbl_conf) { echo''."Brak konfiguracji dla ".$tbl."!".'
'; return; } $visible_cols = $tbl_conf->getVisibleFieldList(); echo ''; } /** * @param $_GET['id'] */ function task_CRM_TESTY_WYNIKI_HIST() { $test_id = V::get('test_id', 0, $_GET, 'int'); echo '' . "Error - błędny numer testu!" . '
'; echo App::link("wróć", array('task'=>'CRM_TESTY_WYNIKI')); return; } $hist = array(); $sql = "select * from `CRM_TESTY_HIST` where `ID_USERS2`='" . $test_id . "' order by ID DESC "; $res = DB::query( $sql ); while ($r = DB::fetch( $res )) { $hist[] = $r; } if (empty($hist)) { echo '' . "Brak danych" . '
'; return; } $cols = array(); foreach (get_object_vars(reset($hist)) as $field_name => $v) { $cols[] = $field_name; } echo '| ' . str_replace('_' , ' ', $field_name) . ' | '; } echo '
|---|
| ' . $cell_out . ' | '; } echo '
' . "Przenoszenie procesu {$proces_id} w " . (($dir == 'up')? "górę" : "dół"); $ret = ProcesHelper::proces_init_move($proces_id, $dir); if ($ret > 0) { echo ' - ok'; echo ' - ' . App::link('powtórz', array('task'=>'TEST_SORT', '_proces_id'=>$proces_id, '_dir'=>$dir), array('class'=>'btn-clean', 'title'=>'powtórz zmianę kolejności')); } else { echo ' - error'; } echo '
'; } } $proces_list = ProcesHelper::get_procesy_init_list(); $goto_list = ProcesHelper::get_goto_list(array('return_by'=>'dest')); $cols = array(); $cols['ID'] = "ID"; $cols['DESC'] = "DESC"; //$cols['TEST_SORT_PRIO'] = "Kolejno????"; //echo ''; ?>| Nr | Opis | Kolejność 'TEST_SORT', 'function_init'=>'fun_TEST_SORT_SAVE'), array('ico'=>'save', 'title'=>"Zapisz kolejność", 'onclick'=>"return fun_TEST_SORT_SAVE();")); ?> | GOTO | |
|---|---|---|---|---|
| ' . $value . ' | '; } echo ''; echo App::link('^', array('task'=>'TEST_SORT', '_proces_id'=>$v_proces->ID, '_dir'=>'up'), array('class'=>'btn-clean', 'title'=>'w górę')); echo ' '; echo App::link('v', array('task'=>'TEST_SORT', '_proces_id'=>$v_proces->ID, '_dir'=>'dw'), array('class'=>'btn-clean', 'title'=>'w dół')); echo ' | '; echo '';// GOTO
echo ' ';
if (array_key_exists($v_proces->ID, $goto_list)) {
foreach ($goto_list[$v_proces->ID] as $k_id => $v_goto) {
$title = "Krok {$v_goto->ID} {$v_goto->IF_TRUE_GOTO_FLAG} {$v_goto->IF_TRUE_GOTO}";
echo '' . ProcesHelper::proces_flag($v_goto->ID, $v_goto->IF_TRUE_GOTO, $v_goto->IF_TRUE_GOTO_FLAG) . '';
}
}
echo ' ';
echo ' | ';
echo ''; $path_arr=explode('/', $v_proces->path); foreach($path_arr as $path) { $col_temp_r=dechex(rand(0,25)*10); $col_temp_g=dechex(rand(0,25)*10); $col_temp_b=dechex(rand(0,25)*10); if(empty($color[$path])) $color[$path]="color='#".(strlen($col_temp_r)==1 ? "0".$col_temp_r : $col_temp_r ).(strlen($col_temp_g)==1 ? "0".$col_temp_g : $col_temp_g ).(strlen($col_temp_b)==1 ? "0".$col_temp_b : $col_temp_b ); echo " ".$path."(".$v_proces->SORT_PRIO.")"; } if($path_arr[count($path_arr)-2]==$path_last['ID']) { //ostatni parent jest taki sam, wiec sa w jednym miejscu // if($v_proces->TEST_SORT_PRIO>$path_last['TEST_SORT_PRIO']) echo "wieksz. TSP niz ostatni"; // if($v_proces->TEST_SORT_PRIO<=$path_last['TEST_SORT_PRIO']) echo "mniejsz. TSP niz ostatni"; // if($v_proces->SORT_PRIO>$path_last['SORT_PRIO']) echo "OK ? wieksz. sort niz ostatni"; if($v_proces->SORT_PRIO<$path_last['SORT_PRIO']) echo " Błąd kolejności pod kątem ustalenia w drzewie procesów"; } $path_last['ID']=$path_arr[count($path_arr)-2]; $path_last['TEST_SORT_PRIO']=$v_proces->TEST_SORT_PRIO; $path_last['SORT_PRIO']=$v_proces->SORT_PRIO; // echo $path_last['ID']."==?".$path_arr[count($path_arr)-2]." / ".$path_last['TEST_SORT_PRIO']." ".$path_last['SORT_PRIO']; echo ' | '; echo '