= 5.1.0 required by date functions if (file_exists(".config.php")) include(".config.php"); SEF('DEBUG_S'); SEF('ZAP_SQL'); SEF('ZAP_SQL_UPDATE'); SEF('USERS_COLUMN_INIT'); SEF('GETFORMITEM'); SEF('T_WORKPOINTS_USER_SELECT'); Lib::loadClass('App'); Lib::loadClass('ProcesHelper'); Lib::loadClass('Tree'); Lib::loadClass('TreeHelper'); Lib::loadClass('DB_Image'); Lib::loadClass('TreeSortChildren'); Lib::loadClass('UI'); // ========== Task functions ============== require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'legacy.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'proces.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'zasob.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'testy.php';// CRM_TESTY_WYNIKI require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'proces_log.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'user.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'ext_ids.php'; require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'search.php';// CRM_SEARCH // TODO: if (App::is_ajax_request()) require_once APP_PATH_ROOT . DS . 'procesy' . DS . 'ajax.php'; // ========== SESSION set default session values ============== S::init(); if (!isset($_SESSION['HIDE_ZASOBY'])) $_SESSION['HIDE_ZASOBY'] = true; if (!isset($_SESSION['HIDE_PROCESY'])) $_SESSION['HIDE_PROCESY'] = true; if (!isset($_SESSION['ZWIN_DRZEWO'])) $_SESSION['ZWIN_DRZEWO'] = false; if (!isset($_SESSION['TREE_OPEN_ARRAY'])) $_SESSION['TREE_OPEN_ARRAY'] = array(); if (!isset($_SESSION['TREE_SHOW_P_ID2'])) $_SESSION['TREE_SHOW_P_ID2'] = false; if (!isset($_SESSION['TREE_SHOW_P_ID3'])) $_SESSION['TREE_SHOW_P_ID3'] = false; if (!isset($_SESSION['ROZWIN'])) $_SESSION['ROZWIN'] = false; if (!isset($_SESSION['ROZWIN_OPIS'])) $_SESSION['ROZWIN_OPIS'] = false; if (!isset($_SESSION['ROZWIN_ZASOBY'])) $_SESSION['ROZWIN_ZASOBY'] = false; if (!isset($_SESSION['TREE-ZASOBY'])) $_SESSION['TREE-ZASOBY'] = array(); if (!isset($_SESSION['TREE-PROCESY'])) $_SESSION['TREE-PROCESY'] = array(); if (!isset($_SESSION['USER_PARAMS'])) $_SESSION['USER_PARAMS'] = array(); // ========== SESSION set values from request ============== if(isset($_GET['HIDE_ZASOBY']) && $_GET['HIDE_ZASOBY']) $_SESSION['HIDE_ZASOBY'] = true; if(isset($_GET['UNHIDE_ZASOBY']) && $_GET['UNHIDE_ZASOBY']) $_SESSION['HIDE_ZASOBY'] = false; if(isset($_GET['HIDE_PROCESY']) && $_GET['HIDE_PROCESY']) $_SESSION['HIDE_PROCESY'] = true; if(isset($_GET['UNHIDE_PROCESY']) && $_GET['UNHIDE_PROCESY']) $_SESSION['HIDE_PROCESY'] = false; if(isset($_GET['ZWIN_DRZEWO']) && $_GET['ZWIN_DRZEWO']) $_SESSION['ZWIN_DRZEWO'] = true; if(isset($_GET['ROZWIN_DRZEWO']) && $_GET['ROZWIN_DRZEWO']) $_SESSION['ZWIN_DRZEWO'] = false; if(isset($_GET['TREE_OPEN']) && $_GET['TREE_OPEN']) $_SESSION['TREE_OPEN_ARRAY'][$_GET['TREE_OPEN']] = true; if(isset($_GET['TREE_CLOSE']) && $_GET['TREE_CLOSE']) $_SESSION['TREE_OPEN_ARRAY'][$_GET['TREE_CLOSE']] = false; if(isset($_GET['TREE_SHOW_P_ID2']) && $_GET['TREE_SHOW_P_ID2']) $_SESSION['TREE_SHOW_P_ID2'] = true; if(isset($_GET['TREE_HIDE_P_ID2']) && $_GET['TREE_HIDE_P_ID2']) $_SESSION['TREE_SHOW_P_ID2'] = false; if(isset($_GET['TREE_SHOW_P_ID3']) && $_GET['TREE_SHOW_P_ID3']) $_SESSION['TREE_SHOW_P_ID3'] = true; if(isset($_GET['TREE_HIDE_P_ID3']) && $_GET['TREE_HIDE_P_ID3']) $_SESSION['TREE_SHOW_P_ID3'] = false; if(isset($_GET['TREE_ROZWIN']) && $_GET['TREE_ROZWIN']) $_SESSION['ROZWIN'] = true; if(isset($_GET['TREE_ZWIN']) && $_GET['TREE_ZWIN']) $_SESSION['ROZWIN'] = false; if(isset($_GET['TREE_OPISY_ROZWIN']) && $_GET['TREE_OPISY_ROZWIN']) $_SESSION['ROZWIN_OPIS'] = true; if(isset($_GET['TREE_OPISY_ZWIN']) && $_GET['TREE_OPISY_ZWIN']) $_SESSION['ROZWIN_OPIS'] = false; if(isset($_GET['TREE_ZASOBY_ROZWIN']) && $_GET['TREE_ZASOBY_ROZWIN']) $_SESSION['ROZWIN_ZASOBY'] = true; if(isset($_GET['TREE_ZASOBY_ZWIN']) && $_GET['TREE_ZASOBY_ZWIN']) $_SESSION['ROZWIN_ZASOBY'] = false; // ========== SESSION timeout ============== S::timeout_update(); // ========== App state ============== App::set_default_task('CRM_PROCES'); // ========== DB connection ============== //$conn = DB::connect();// TODO: needed? // ========== App auth ============== User::auth();// die if not logged in // ========== FUNCTION_INIT ============== // ?_ajax_request=FUNCTION // TODO: if (App::is_ajax_request()) App::exec_ajax_request(); // ?function_init=FUNCTION //echo'
';var_dump( headers_sent() );echo'
'; App::exec_function_init(); // column init Lib::loadClass('Column'); Column::init('CRM_PROCES'); Column::init('CRM_LISTA_ZASOBOW'); //Column::init('CRM_TESTY'); /** * Perm/access function. * * admin - kierownik, $_SESSION['ADM_ADMIN_LEVEL'] in (0,1) */ function User_is_admin() { return User::hasAccess('procesy_admin'); } function User_procesy5_check_access() { if (!User::hasAccess('procesy')) { ?>
Brak dostępu!

. 0) { $title = "Proces {{$id_proces}}"; } ob_start(); App::show_head_css(); App::show_head_js(); $app_css_js = ob_get_clean(); UI::gora([ 'title' => $title, 'childrens' => implode("\n", [ UI::h('style', [ 'type' => "text/css" ], " .popover-with-html .popover-heading {display:none;} .popover-with-html .popover-body {display:none;} "), '', $app_css_js, lay_procesy_css(), ]), ]); echo "\n"; } if ('YES' != V::get('HEADER_NOT_INIT', '', $_REQUEST)) { lay_procesy_gora(); } function ECHOO($VAR) { echo "$VAR"; } //INICJALIZACJA_KOLUMN if (!isset($_SESSION['CRM_LISTA_ZASOBOW_COLUMN'])) { $COLUMN="CRM_LISTA_ZASOBOW"; $res = DB::query("show fields from $COLUMN"); $KEY=0; while ($h = DB::fetch_row( $res )) { $_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"] = $h[0]; $_SESSION[$COLUMN."_COLUMN"]['TYPE'][$_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"]] = $h[1]; if(!isset($_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h[0]])) $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h[0]] = "RW" ; $_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY'][$h[0]] = $KEY; $_SESSION[$COLUMN."_COLUMN"]['ID']["$KEY"]=$KEY; if($_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]["$KEY"] == "HIDE") { $_SESSION[$COLUMN."_COLUMN"]['HIDE']["$KEY"]='HIDE'; } $KEY++; } // echo "
Zainicjalizowano kolumne $COLUMN
"; } //EOF INICJALIZACJA KOLUMN // ========== MENU ============== lay_procesy_user_panel(); // ========== TASK ============== App::exec_task(); // ========== function_init - funkcje ============== function SESSION_DEBUG() { if (isset($_GET['arg1_val'])) { $_SESSION['DEBUG'] = intval($_GET['arg1_val']); } } function SESSION_USER_PARAMS() { $allowed_user_params = array(); $allowed_user_params['SHOW_PANEL']= 'int'; $allowed_user_params['PROCESY_TREE_TYPE_HTML']= 'int'; $allowed_user_params['ZASOBY_TREE_TYPE_HTML']= 'int'; if (!isset($_GET['arg1']) || !isset($_GET['arg1_val'])) { return; } else if (array_key_exists($_GET['arg1'], $allowed_user_params)) { $_SESSION['USER_PARAMS'][ $_GET['arg1'] ] = intval($_GET['arg1_val']); } } function SORT_PRIO_ZASOB() { $id = V::get('arg1', '', $_GET, 'int'); $sort_prio_dir = V::get('arg1_val', '', $_GET); TreeSortChildren::sortPrio($id, 'CRM_LISTA_ZASOBOW', 'PARENT_ID', $sort_prio_dir); } function SORT_PRIO_WSKAZNIK() { $id = V::get('arg1', '', $_GET, 'int'); $sort_prio_dir = V::get('arg1_val', '', $_GET); TreeSortChildren::sortPrio($id, 'CRM_WSKAZNIK', 'ID_PROCES', $sort_prio_dir); } function SORT_PRIO_PROCES() { $id = V::get('arg1', '', $_GET, 'int'); //$_GET['arg1_val'] = ($_GET['arg1_val'] == 'up')? 'dw' : 'up';// procesy w odwrotnej kolejnosci, w SQL order by SORT_PRIO DESC $sort_prio_dir = V::get('arg1_val', '', $_GET); TreeSortChildren::sortPrio($id, 'CRM_PROCES', 'PARENT_ID', $sort_prio_dir); } // ========== TASK - funkcje ============== function task_CRM_ADD_CRM_WSKAZNIK() { User_procesy5_check_access(); // submit form - add wskaznik if (V::get('ADD_ID_CRM_PRZYPADEK', '', $_POST)) { $sql_obj = new stdClass(); $sql_obj->ID_PROCES = V::get('ADD_ID_PROCES', '', $_POST); $sql_obj->ID_ZASOB = V::get('ADD_ID_ZASOB', '', $_POST); $sql_obj->TYP = V::get('ADD_CRM_WSKAZNIK_TYP', '', $_POST); $sql_obj->ID_PRZYPADEK = V::get('ADD_ID_CRM_PRZYPADEK', '', $_POST); $sql_obj->OPIS_ZASOB = V::get('ADD_CRM_WSKAZNIK_OPIS_ZASOB', '', $_POST); $sql_obj->SORT_PRIO = 0; // nowy wskaznik na koniec listy pod procesem $sql = "select max(cw.`SORT_PRIO`) as MAX_SORT_PRIO from `CRM_WSKAZNIK` as cw where cw.`ID_PROCES`='".$sql_obj->ID_PROCES."' "; $res = DB::query( $sql ); while ($r = DB::fetch( $res )) { $sql_obj->SORT_PRIO = $r->MAX_SORT_PRIO + 1; } //TODO: POST_VERIFY $new_id = DB::ADD_NEW_OBJ('CRM_WSKAZNIK', $sql_obj); if (V::get('DEBUG', '', $_SESSION)) echo"PASSED(1) NEW RECORD ID($new_id)
"; if ($new_id > 0) { echo '

'."Dodano nowy rekord"; } else { echo '

'."Error przy dodawaniu rekordu"; } echo'
'."Wroc do ".App::link("procesow", "?task=CRM_PROCES"); echo'
'."lub ".App::link("dodaj kolejny zasob do procesu ".$sql_obj->ID_PROCES, "?task=ADD_PROCES_ID&id=".$sql_obj->ID_PROCES); echo'

';// .box } // show form - add wskaznik if (V::get('ADD_ID_ZASOB', '', $_GET)) { $id_proces = V::get('ADD_ID_PROCES', 0, $_REQUEST, 'int'); $id_zasob = V::get('ADD_ID_ZASOB', 0, $_REQUEST, 'int'); if ($id_proces <= 0) { echo'

'."Wrong id!".'

'; return; } if ($id_zasob <= 0) { echo'

'."Wrong zasob id!".'

'; return; } $proces = DB::get_by_id( 'CRM_PROCES', $id_proces ); if (!$proces) { echo'
'; echo "Proces [".$id_proces."] not exists."; echo'
'; return; } $zasob = DB::get_by_id( 'CRM_LISTA_ZASOBOW', $id_zasob ); if (!$zasob) { echo'
'; echo "Proces [".$id_zasob."] not exists."; echo'
'; return; } {// pathway echo'

'; echo App::link("Procesy", array('task'=>"CRM_PROCES")); if ($id_proces > 0) { echo ' » '.App::link("Dodaj zasob do procesu [".$id_proces."]", array('task'=>'ADD_PROCES_ID', 'id'=>$id_proces)); if ($id_zasob > 0) { echo ' » '.App::link("Dodaj zasob [".$id_zasob."]", array('task'=>'CRM_ADD_CRM_WSKAZNIK', 'ADD_ID_PROCES'=>$id_proces, 'ADD_ID_ZASOB'=>$id_zasob)); } } echo'

'; }// pathway Lib::loadClass('ProcesHelper'); {// proces info $wsk = ProcesHelper::get_wskazniki( $proces->ID ); echo'
'; echo''; echo'
';// .tree-wrap }// proces info // echo '

Wybierz okolicznosci procesu '.V::get('ADD_ID_PROCES', '', $_GET).' do zasobu '.V::get('ADD_ID_ZASOB', '', $_GET).'

'; echo'

'."Wybierz okolicznosci powiazania zasobu ".''.$zasob->ID.''." do procesu ".''.$proces->ID.''.'

'; echo'
'; echo'

'; echo' ['.$zasob->ID.']'; echo' '.$zasob->TYPE.' '.$zasob->DESC.' '.$zasob->OPIS.''; echo'

'; echo'
'; $ZAP_SQL = "select * from CRM_PRZYPADEK "; $res = DB::query( $ZAP_SQL ); echo'
'; echo''; echo''; echo'Rodzaj :
Przypadki rzeczownika:'; echo''; //echo'
Komentarz: '; echo'
Komentarz:'; echo'
'; echo'
'; echo'
'; } } /** * @param $_GET['ID'] - ID rekordu do edycji */ function task_CRM_EDIT_CRM_WSKAZNIK() { global $error; User_procesy5_check_access(); $id = V::get('ID', '', $_GET, 'int'); if ($id <= 0) { echo'

'."Wrong ID".'

'; return; } $R = null; $sql = "select * from `CRM_WSKAZNIK` where `ID`='".$id."' limit 1; ";// TODO: use DB::get_by_id $res = DB::query($sql); if (!$res) die("sql query error $sql"); $R = DB::fetch($res); if (!$R) { echo'

'."Wrong ID - not exists".'

'; return; } //echo'
';print_r($R);echo'
'; // form submit if (V::get('EDIT_SUBMIT', '', $_POST)) { $sql_obj = new stdClass(); $sql_obj->ID = $R->ID; //$sql_obj->PARENT_ID = V::get('EDIT_PARENT_ID', '', $_POST); $sql_obj->TYP = V::get('EDIT_TYP', '', $_POST); $sql_obj->ID_PRZYPADEK = V::get('EDIT_ID_PRZYPADEK', '', $_POST); $sql_obj->OPIS_ZASOB = V::get('EDIT_OPIS_ZASOB', '', $_POST); $sql_obj->ID_PROCES = V::get('EDIT_ID_PROCES', '', $_POST, 'int'); $sql_obj->ID_ZASOB = V::get('EDIT_ID_ZASOB', '', $_POST, 'int'); $sql_obj->PARENT_ID = V::get('PARENT_ID', '', $_POST);//todo trzeba sprawdzic czy jest taki wskaznik uzyty w tym procesie $sql_obj->EXPORT_WSKAZNIK = V::get('EXPORT_WSKAZNIK', '', $_POST, 'int');//todo musi byc weryfikacja czy jest taki wskaznik w odwolujacej sie funkcji //TODO: POST_VERIFY $affected = DB::UPDATE_OBJ( 'CRM_WSKAZNIK', $sql_obj ); if (V::get('DEBUG', '', $_SESSION)) echo"PASSED($affected)
"; if ($affected == 2) { echo '

'."Zmienio rekord"; } else if ($affected == 1) { echo '

'."Zmieniono rekord (Error: nie zapisano hostorii)"; } else if ($affected < 0) { echo '

'."Blad podczas edytowania rekordu - nic nie zmieniono"; } echo'
'."Wroc do ".App::link("procesow", "?task=CRM_PROCES"); echo'

';// .box } // show form - edit wskaznik if (V::get('EDIT', '', $_GET)) { // overwrite data from POST if ($_POST) { if (isset($_POST['EDIT_ID_PROCES'])) $R->ID_PROCES = $_POST['EDIT_ID_PROCES']; if (isset($_POST['EDIT_ID_ZASOB'])) $R->ID_ZASOB = $_POST['EDIT_ID_ZASOB']; if (isset($_POST['EDIT_TYP'])) $R->TYP = $_POST['EDIT_TYP']; if (isset($_POST['EDIT_ID_PRZYPADEK'])) $R->ID_PRZYPADEK = $_POST['EDIT_ID_PRZYPADEK']; if (isset($_POST['EDIT_OPIS_ZASOB'])) $R->OPIS_ZASOB = $_POST['EDIT_OPIS_ZASOB']; if (isset($_POST['PARENT_ID'])) $R->PARENT_ID = $_POST['PARENT_ID']; if (isset($_POST['EXPORT_WSKAZNIK'])) $R->EXPORT_WSKAZNIK = $_POST['EXPORT_WSKAZNIK']; } echo '

Edytuj wskaznik procesu '.$R->ID_PROCES.' do zasobu '.$R->ID_ZASOB.'

'; $frm_edit_action = "?task=CRM_EDIT_CRM_WSKAZNIK&EDIT=".$R->ID."&ID=".$R->ID; echo "
Dane bieżącego rekordu: Stworzono: {$R->A_RECORD_CREATE_DATE}, Stworzył: {$R->A_RECORD_CREATE_AUTHOR} , Aktualizował: {$R->A_RECORD_UPDATE_DATE}, data:{$R->A_RECORD_UPDATE_DATE}
"; echo '
'; echo''; echo '
'."Proces ID: "; echo''; echo '
'."Zasob ID: "; echo''; // TODO: rodzaj array selected - typespecial echo'
'."Rodzaj: "; echo''; echo'
Przypadki rzeczownika:'; echo''; //echo'
Komentarz: '; echo'
Komentarz:'; echo'
'; echo'
'; echo'
'; echo'
'; } } function task_CRM_DEL_CRM_WSKAZNIK() { User_procesy5_check_access(); $sql_obj = new stdClass(); $sql_obj->ID = V::get('ID', '', $_GET, 'int'); $sql_obj->A_STATUS = 'DELETED'; //TODO: POST_VERIFY if ($sql_obj->ID <= 0) { echo'

'."Wrong ID".'

'; return; } $db = DB::getDB(); $affected = $db->UPDATE_OBJ('CRM_WSKAZNIK', $sql_obj); if ($affected == 2) { echo '

'."Usunieto wskaznik"; } else if ($affected == 1) { echo '

'."Usunieto wskaznik (Error: nie zapisano hostorii)"; } else if ($affected < 0) { if ($db->has_errors()) { try { $dsErrors = array(); $errorsSql = $db->get_errors(); foreach ($errorsSql as $vErr) { if ('SQL QUERY FAILED: ' == substr($vErr, 0, 18)) { $vErr = substr($vErr, 18); } $dsErrors[] = $vErr; } if (!empty($dsErrors)) { Lib::loadClass('StorageException'); throw new StorageException($dsErrors); } } catch (Exception $e) { ?>

Wystąpiły błędy: getMessage(); ?>
'."Blad podczas usuwaniu wskaznika - nic nie zmieniono"; } } echo'
'."Wroc do ".App::link("procesow", "?task=CRM_PROCES"); echo'

';// .box } /** * @param $tree_callback - tree item show function callback * @param $tree_params - array of tree params */ function action_VIEW_SUBTREE( $tbl, $proces_id, $tree_callback, $tree_params ) { $tree = new Tree( $tbl ); $tree->set_param('show_item_callback', $tree_callback); foreach ($tree_params as $key => $val) { $tree->set_param($key, $val); } $tree->showSubTree( $proces_id ); } function task_VIEW_PROCES_MAP() { User_procesy5_check_access(); $procesMap = new stdClass(); $procesMap->procesInitAll = array(); $procesMap->gotoAll = array(); $procesMap->treeFlat = array(); $db = DB::getDB(); $sql = "select p.`ID`, p.`PARENT_ID` -- , p.`OPIS` , p.`TYPE`, p.`IF_TRUE_GOTO`, p.`IF_TRUE_GOTO_FLAG` from `CRM_PROCES` as p where p.`A_STATUS` in('WAITING', 'NORMAL') -- and (p.`TYPE`='PROCES_INIT' or p.`IF_TRUE_GOTO`>0) "; $res = $db->query($sql); while ($r = $db->fetch($res)) { if ($r->IF_TRUE_GOTO > 0) { $procesMap->gotoAll[$r->ID] = $r; } if ($r->TYPE == 'PROCES_INIT') { $procesMap->procesInitAll[$r->ID] = $r; } $procesMap->treeFlat[$r->PARENT_ID][] = $r->ID; } // validate goto - goto only to PROCES_INIT $procesMap->gotoErrors = array(); foreach ($procesMap->gotoAll as $kId => $vStep) { if (!array_key_exists($vStep->IF_TRUE_GOTO, $procesMap->procesInitAll)) { $procesMap->gotoErrors[$kId] = $vStep; } } foreach ($procesMap->gotoErrors as $kId => $vStep) { unset($procesMap->gotoAll[$kId]); } foreach ($procesMap->procesInitAll as $kId => $vProces) { $vProces->gotoLinks = array(); $vProces->sub = array(); if (array_key_exists($kId, $procesMap->treeFlat)) { foreach ($procesMap->treeFlat[$kId] as $childId) { $vProces->sub[$childId] = true; } } //$procesMap->procesInitAll[$kId] = $vProces; } if(V::get('DBG', '', $_GET)){echo'
procesMap (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($procesMap);echo'
';} $loopLimit = 50;// max ilość zagłębień w procesie for ($i = 0; $i < $loopLimit; $i++) { $breakLoop = true; foreach ($procesMap->procesInitAll as $kId => $vProces) { if (!empty($vProces->sub)) { $breakLoop = false; $childrens = array_keys($vProces->sub); $vProces->sub = array(); foreach ($childrens as $childId) { if (array_key_exists($childId, $procesMap->treeFlat)) { foreach ($procesMap->treeFlat[$childId] as $vId) { $vProces->sub[$vId] = true; } } if (array_key_exists($childId, $procesMap->gotoAll)) { $gotoId = $procesMap->gotoAll[$childId]->IF_TRUE_GOTO; $vProces->gotoLinks[$gotoId] = $procesMap->procesInitAll[$gotoId]; $procesMap->gotoFrom[$gotoId][$vProces->ID] = $vProces->ID; } } } } if ($breakLoop) { if(V::get('DBG', '', $_GET)){echo'
breakLoop (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r("end by {$i} loops");echo'
';} break; } } // fetch DESC i OPIS laters $sqlIds = array_keys($procesMap->procesInitAll); if (!empty($sqlIds)) { $sqlIds = implode(",", $sqlIds); $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)) { $procesMap->procesInitAll[$r->ID]->DESC = $r->DESC; $procesMap->procesInitAll[$r->ID]->OPIS = $r->OPIS; } } if(V::get('DBG', '', $_GET)){echo'
procesMap (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($procesMap);echo'
';} ?>
gotoErrors) && !V::get('HIDE_PANEL', 0, $_GET, 'int')) : ?>
Uwaga błędy w GOTO! GOTO może wywołać jedynie PROCES_INIT. gotoErrors); ?> błędów.

Mapa procesów 'VIEW_PROCES_MAP', 'HIDE_PANEL'=>1), array('target'=>'_blank', 'ico_after_text'=>'print', 'style'=>'font-size:small;')); } ?>

procesInitAll as $kId => $vProces) : ?>

{ID; ?>} DESC; ?>

OPIS); ?>

gotoLinks) : ?>
Może wywołać:
    gotoLinks as $kGotoProcesId => $gotoProces) : ?>
  • {ID; ?>} DESC; ?>
gotoFrom[$vProces->ID])) : ?>
Może zostać wywołany przez:
    gotoFrom[$vProces->ID] as $kGotoProcesId) : $gotoProces = $procesMap->procesInitAll[$kGotoProcesId]; ?>
  • {ID; ?>} DESC; ?>
' . "Wrong ID" . ''; return; } $p = DB::get_by_id('CRM_PROCES', $id_proces); if (!$p) { echo '
' . "Proces {$id_proces} nie istnieje" . '
'; return; } $userAcl = User::getAcl(); if (!$userAcl->canViewProces($id_proces)) { echo '
' . "Brak uprawnień do procesu" . '
'; return; } if (!V::get('HIDE_PANEL', 0, $_GET, 'int')) { // pathway echo'

'.App::link("Menu", "?task=CRM_MENU"); echo' - '; echo "Przegladaj proces ".$id_proces.""; echo ' '; echo App::link("drukuj", array('task'=>'PROCES_VIEW_LIST', 'id_proces'=>$id_proces, 'HIDE_PANEL'=>1), array('target'=>'_blank', 'ico_after_text'=>'print', 'style'=>'font-size:small;')); echo'

'; } Lib::loadClass('TreeList'); $treeList = new TreeList('CRM_PROCES', $id_proces, 'PARENT_ID'); $treeList->fetchTreeFlat(); $listFlat = $treeList->generateListFlat(); $treeList->fetchData(); $ids = $treeList->getListIds(); $wskazniki = ProcesHelper::getWskaznikiByIds($ids, array('group_stanowiska' => 1)); if(V::get('DBG_TF', '', $_GET) > 1){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); 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 .= " {$gotoLink}"; //usunąłem Przejdz do Procesu, bo w instrukcji/umowie nie jest to potrzebne } 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'; ?>
getData($vItem->ID); ?>

TYPE=='PROCES_INIT') echo "{".$item->ID."}"; else if(in_array($item->TYPE,array('TEXT_BREAK'))) echo "   "; else if(strstr($item->TYPE,'PROCES_GROUP')) echo "§".$vItem->listNrNUM.""; else echo $vItem->listNrNUM."."; ?> DESC; ?> TYPE,array('TEXT_BREAK','PROCES_INIT'))) echo "{".$item->ID."}"; ?>

TYPE=='PROCES_INIT') if(!empty($item->A_RECORD_UPDATE_DATE)) echo "akt. {$item->A_RECORD_UPDATE_DATE} przez {$item->A_RECORD_UPDATE_AUTHOR}"; //TODO nalezy zabrac informacje o procesie z klasy else echo "utw. {$item->A_RECORD_CREATE_DATE} przez {$item->A_RECORD_CREATE_AUTHOR}"; //TODO nalezy zabrac informacje o procesie z klasy ?>

A_HAS_IMAGE > 0) : ?> A_HAS_IMAGE; $i++) : ?> OPIS; ?>

TYPE,'PROCES_GROUP')) echo "
"; ?>

ID, $wskazniki)) : ?>
ID]['stanowiska'])) : ?>
Stanowiska:
    ID]['stanowiska'] as $vWsk) : ?>
  • DESC; ?> [ID; ?>]
ID]['inne'])) : ?>
Użyte zasoby:
    ID]['inne'] as $vWsk) : ?>
  • A_HAS_IMAGE > 0) : ?> A_HAS_IMAGE; $i++) : ?> CW_A_HAS_IMAGE > 0) : ?> CW_A_HAS_IMAGE; $i++) : ?> DESC_PL))? $vWsk->DESC_PL : $vWsk->DESC; ?> OPIS))? " ({$vWsk->OPIS})." : ''; ?> OPIS_ZASOB))? "
    {$vWsk->OPIS_ZASOB}" : ''; ?> [ID; ?>]
gotoOut) : ?>
gotoOut; ?>
';// .container } function task_PROCES_VIEW() { User_procesy5_check_access(); $id_proces = V::get('id_proces', '', $_REQUEST, 'int'); if ($id_proces <= 0) { echo'

'."Wrong ID".'

'; return; } if (1 != V::get('HIDE_PANEL', 0, $_GET, 'int')) { // pathway echo'

'.App::link("Menu", "?task=CRM_MENU"); echo' - '; echo "Przegladaj proces ".$id_proces.""; echo ' '; echo App::link("drukuj", array('task'=>'PROCES_VIEW', 'id_proces'=>$id_proces, 'HIDE_PANEL'=>1), array('target'=>'_blank', 'ico_after_text'=>'print', 'style'=>'font-size:small;')); echo ' '; echo App::link("drukuj większe zdjęcia", array('task'=>'PROCES_VIEW', 'id_proces'=>$id_proces, 'HIDE_PANEL'=>1, 'show_big_img'=>1, 'group_stanowiska'=>1), array('target'=>'_blank', 'ico_after_text'=>'print', 'style'=>'font-size:small;')); echo ' '; echo App::link("widok listy", array('task'=>'PROCES_VIEW_LIST', 'id_proces'=>$id_proces), array('style'=>'font-size:small;')); echo ' '; echo "Widok mapy"; echo'

'; } $p = DB::get_by_id( 'CRM_PROCES', $id_proces ); if (!$p) { echo'

'."Process ".$id_proces." not exists".'

'; return; } $tbl = 'CRM_PROCES'; $clbk = 'tree_callback__show_item_from_'.$tbl; $tree_params = array(); $tree_params['rozwin'] = true; $tree_params['editable'] = false; $tree_params['rozwin_proces'] = true; $tree_params['filtr_img'] = true; $tree_params['rozwin_zasoby'] = true; $tree_params['rozwin_opis'] = true; $tree_params['style'] = 'NOWY'; action_VIEW_SUBTREE($tbl, $p->ID, $clbk, $tree_params); } function task_CRM_WYSWIETL_OBOWIAZKI() { User_procesy5_check_access(); $_GET['TYPE'] = V::get('TYPE', "%", $_REQUEST); $_GET['DESC'] = V::get('DESC', "%", $_REQUEST); $_GET['OPIS'] = V::get('OPIS', "%", $_REQUEST); $_GET['ADM_AREA'] = V::get('ADM_AREA', "BN%", $_REQUEST); $_GET['CLZ_ID'] = V::get('CLZ_ID', '', $_REQUEST); if (!$_GET['CLZ_ID']) { //echo'

'."Brak ID".'

'; task_CRM_MENU(); //TEST:// echo App::link_ajax_load_on_ready('user menu', 'task_CRM_MENU'); return; } $zasob = DB::get_by_id('CRM_LISTA_ZASOBOW', $_GET['CLZ_ID']); if (!$zasob) { echo'

'."Brak danych - zasob ".$_GET['CLZ_ID']." nie istnieje.".'

'; return; } echo'

'; echo "Procesy powiazane z zasobem: "; echo'['.$zasob->ID.']'; echo'
'; echo ' '.$zasob->TYPE.''; echo ' '.$zasob->DESC.''; echo '
'.$zasob->OPIS.''; echo '
ID.'&RESOURCES=1>Wyświetl mapę '; echo'

'; $db = DB::getDB(); $sql = "select w.`ID_PROCES` as w__ID_PROCES , w.`OPIS_ZASOB` as w__OPIS_ZASOB , p.`ID` as p__ID , p.`DESC` as p__DESC , p.`OPIS` as p__OPIS , p_root.`ID` as p_root__ID , p_root.`DESC` as p_root__DESC , p_root.`OPIS` as p_root__OPIS from `CRM_WSKAZNIK` as w left join `CRM_PROCES` as p on (p.`ID`=w.`ID_PROCES`) left join `CRM_PROCES` as p_root on (p_root.`ID`=p.`PARENT_ID`) where w.`ID_ZASOB`=".$_GET['CLZ_ID']." and w.`A_STATUS` in('WAITING','NORMAL') and p.`A_STATUS` in('WAITING','NORMAL') order by p.SORT_PRIO "; $res = $db->query($sql); while ($r = $db->fetch($res)) { $arr [$r->w__ID_PROCES][] = $r; } echo''; echo''; echo''; echo''; echo''; echo''; echo''; echo''; $t = 0; foreach ($arr as $k_id => $v_arr) { echo''; echo''; echo''; echo''; } echo''; echo'
'."PROCES ID".''."NAZWA / OPIS".'
'; echo App::link($k_id, array('task'=>"CRM_PROCES", 'filtr_id'=>$k_id)); echo''; foreach ($v_arr as $r) { echo'

'; echo' '.$r->p__DESC.''; echo'
'; echo''.$r->p__OPIS.''; if ($r->w__OPIS_ZASOB) echo''.$r->w__OPIS_ZASOB.''; echo'

'; } echo'
'; } function task_ADD_PROCES_ID() { User_procesy5_check_access(); $id_proces = (isset($_REQUEST['id']))? intval($_REQUEST['id']) : 0; //$id_zasob = 0;//(isset($_REQUEST['id']))? intval($_REQUEST['id']) : 0; if ($id_proces <= 0) { echo'

'."Wrong id!".'

'; return; } $proces = DB::get_by_id( 'CRM_PROCES', $id_proces ); if (!$proces) { echo'
'; echo "Proces [".$id_proces."] not exists."; echo'
'; return; } {// pathway echo'

'; echo App::link("Procesy", array('task'=>"CRM_PROCES")); if ($id_proces > 0) { echo ' » '.App::link("Dodaj zasob do procesu [".$id_proces."]", array('task'=>'ADD_PROCES_ID', 'id'=>$id_proces)); //if ($id_zasob > 0) { // echo ' » '.App::link("Dodaj zasob [".$id_zasob."]", array('task'=>'CRM_ADD_CRM_WSKAZNIK', 'ADD_ID_PROCES'=>$id_proces, 'ADD_ID_ZASOB'=>$id_zasob)); //} } echo'

'; }// pathway Lib::loadClass('ProcesHelper'); {// proces info $wsk = ProcesHelper::get_wskazniki( $proces->ID ); echo'
'; echo'
    '; echo'
  • '; echo'
    '; echo'
    '; if (!empty($wsk)) echo'
    '; echo''.$proces->ID.''; echo''.$proces->DESC.''; echo' '.$proces->OPIS.' '; echo''; if (!empty($wsk)) echo'
    '; echo'
    '; if (!empty($wsk)) { $zasoby_id = array(); echo'
    '; echo'
      '; $wsk_cnt = count( $wsk ); foreach ($wsk as $w) { $w_parents_out = ''; $w_title_parents_out = ''; echo''; echo'

      '; echo ' '.$w->CW_ID.''; echo'['.$w->ID.']'; echo' '.$w->CP_FORM_TREAT.''; echo''; echo ' '.$w->TYPE.''; 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''; } echo'
    '; } echo'
    '; echo'
  • '; echo'
'; echo'
';// .tree-wrap }// proces info echo'
'; echo''; echo''; echo'

'."Podaj numer zasobu: "; echo''; echo''; echo '
'." lub wyszukaj ponizej:"; echo'

'; echo'
'; echo'
';
		echo "DRZEWO ";
		if ($_SESSION['ZWIN_DRZEWO']) {
			echo App::link("ROZWIN", "?ROZWIN_DRZEWO=1&id={$id_proces}#tree");
		} else {
			echo App::link("ZWIN", "?ZWIN_DRZEWO=1&id={$id_proces}#tree");
		}
		echo " / ";

		$js = "window.location.href='#TREE'+this.form.id.value;return false;";
		echo '
'; echo "Zasob ID: "; echo''; echo''; echo'
'."\n"; tree_listuj_zasoby(0,0,0); echo'
'; } function fun_SHOW_EXTERNAL_IMAGE() { $remote_table = V::get('tbl', '', $_REQUEST); $remote_id = V::get('id', '', $_REQUEST, 'int'); $number = V::get('number', '', $_REQUEST, 'int'); $imageResize = V::get('resize', '', $_REQUEST); $DBG = (V::get('DBG', 0, $_REQUEST, 'int') > 0); if ($remote_id <= 0) { header('HTTP/1.1 400: Bad Request'); header('Warning: wrong ID L.' . __LINE__); exit; } if (!DB_Image::tableIsAllowed($remote_table)) { header('HTTP/1.1 400: Bad Request'); header('Warning: table not allowed L.' . __LINE__); exit; } $image_row = DB_Image::getImage($remote_table, $remote_id, $number); if (!$image_row) { header('HTTP/1.1 400: Bad Request'); header('Warning: image not found in db L.' . __LINE__); exit; } $etag = md5($image_row->ID . $image_row->A_CREATE_DATE_TS); if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $image_row->A_CREATE_DATE_TS || trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) { //header("HTTP/1.1 304 Not Modified"); //exit; } $expire_date = mktime(0, 0, 0, date('m') + 3, date('d'), date('Y')); $maxWidth = 0; $maxHeight = 0; if ($imageResize) { list($maxWidth, $maxHeight) = explode('x', $imageResize, 2); $maxWidth = intval($maxWidth); $maxHeight = intval($maxHeight); if ($maxWidth <= 0 || $maxHeight <= 0) { header('HTTP/1.1 400: Bad Request'); echo'ERROR wrong param resize (WxH)'; exit; } } if (!$DBG) { header("Content-type: {$image_row->TYPE}"); header("Cache-control: public"); header("Pragma: public");// default 'no-cache' header("Etag: {$etag}"); if (!$imageResize) { header("Content-length: {$image_row->SIZE}"); } header("Expires: " . gmdate("D, d M Y H:i:s", $expire_date) . " GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s", $image_row->A_CREATE_DATE_TS) . " GMT"); } if ($imageResize) { print DB_Image::resizeImageFromBlob($image_row->IMAGE, $image_row->TYPE, $maxWidth, $maxHeight); } else { print $image_row->IMAGE; } exit; } function fun_SHOW_IMAGE() { $image_id = V::get('image_id', 0, $_REQUEST, 'int'); if ($image_id <= 0) { header('HTTP/1.1 400: Bad Request'); header('Warning: wrong id ' . __LINE__); exit; } $image_row = DB_Image::getImageById($image_id); if (!$image_row) { header('HTTP/1.1 400: Bad Request'); header('Warning: image not found in db L.' . __LINE__); exit; } header("Content-type: ".$image_row->TYPE); header("Content-length: ".$image_row->SIZE); print $image_row->IMAGE; exit; } function fun_IMAGE_ADD() { $remote_table = V::get('tbl', '', $_REQUEST); $remote_id = V::get('id', 0, $_REQUEST, 'int'); $task = V::get('task', '', $_REQUEST); $thiss = new stdClass(); $thiss->DETECT_TABLE_NAME = $remote_table; $errors = array(); $msgs = array(); // check remote id if ($remote_id <= 0) { echo'

'; echo "Error wrong ID"; echo'
'; //echo App::link();// TODO: link do ??? echo'

'; return; } // check remote table if (!DB_Image::tableIsAllowed($remote_table)) { $errors[] = "Error table not allowed to add image"; } // task $task = V::get('task', '', $_REQUEST); if ($task == 'REMOVE') {// TODO: przerobic na funkcje, zwrocic msg, pokazac w body $req = array(); $req['ID'] = V::get('ID', '', $_REQUEST, 'int'); $req['REMOTE_ID'] = V::get('REMOTE_ID', '', $_REQUEST, 'int'); $req['REMOTE_TABLE'] = V::get('REMOTE_TABLE', '', $_REQUEST); // validate if ($req['ID'] <= 0) { $errors[] = 'error ID'; } if ($req['REMOTE_ID'] <= 0) { $errors[] = 'error REMOTE_ID'; } if ($req['REMOTE_TABLE'] != $remote_table) { $errors[] = 'error REMOTE_TABLE'; } if (empty($errors)) { $affected = DB_Image::deleteImage($req['ID'], $req['REMOTE_TABLE'], $req['REMOTE_ID']); if ($affected == 1) { $msgs[] = '

'."Usunieto zdjecie ID=".$req['ID'].'

'; } else { $erros[] = '

'."Wystapil blad podczas usuwania zdjecia ID=".$req['ID'].'

'; } } } // check if a file was submitted if (!isset($_FILES['userfile'])) { //echo '

Please select a file

'; } else { $errors = DB_Image::uploadImage($remote_table, $remote_id, $_FILES['userfile']); // give praise and thanks to the php gods if (empty($errors)) { $msgs[] = '

Thank you for submitting

'; } else { $msgs[] = '

' . "Sorry, could not upload file:" . '
' . implode('
', $errors) .'

'; } } $title = 'Dodaj plik do rekordu ID='.$remote_id.' z tabeli '.$remote_table; lay_procesy_gora(); echo'

'.$title.'

'; // show masgs if (!empty($msgs)) { echo'
'; echo implode('
', $msgs); echo'
'; } // show errors if (!empty($errors)) { echo'
'; echo implode('
', $errors); echo'
'; echo'

'.'
'."Zamknij to okno".''; return; } echo'
'; echo'
'; echo''; echo''; echo''; //echo''; echo"Rodzaj obrazka: "; echo''; $select_arr = array(); $select_arr = DB_Image::conf_get_options($thiss->DETECT_TABLE_NAME); if (!empty($select_arr)) { echo' '; $js = "if(this.selectedIndex>0){this.form.DEST.value=this.value}"; echo''; } echo'
'; echo''; echo'
'; echo''; echo'
'; echo'
';// .box-silver // TODO: show images, mv to function { $images = DB_Image::getImages($thiss->DETECT_TABLE_NAME, $remote_id); echo'
'; if (empty($images)) { echo'

'."Brak obrazkow".'

'; } else { echo'

'."Wgrane pliki:".'

'; foreach ($images as $r) { $link_src = '?function_init=fun_SHOW_IMAGE&image_id='.$r->ID.'&HEADER_NOT_INIT=YES'; $st = array(); if ($r->WIDTH > 100 || $r->HEIGHT > 100) { if ($r->WIDTH > $r->HEIGHT) { $st[] = 'width:100px'; } else { $st[] = 'height:100px'; } } $st = (empty($st))? '' : ' style="'.implode(';', $st).'"'; echo''; echo''; echo''; echo''; echo''; echo''; echo''; echo'
'; echo''.$r->NAME.'
'; echo''.$r->DEST.'
'; echo''.$r->A_CREATE_DATE.'
'; echo''.DB_Image::showSize($r->SIZE).' '.$r->WIDTH.'x'.$r->HEIGHT.'
'; echo''; echo'
'; echo'
'; echo''; echo''; echo''; echo''; $js = "if(!confirm('Czy na pewno chcesz usunac obrazek?')) return false;"; echo''; echo'
'; if (0) {// TODO: edytuj echo'
'; echo''; echo''; echo''; echo''; echo''; echo'
'; } echo'
'; } } echo'
';// .box-blue // } function show images echo'

'.''."Zamknij to okno".''; die("\n".''); } // http://se.dev.webone.pl/se-dev/procesy5.php?function_init=fun_SHOW_VIDEO&id=2314&task=CRM_PROCES function fun_SHOW_VIDEO() { $zasob_id = V::get('id', '', $_GET); $zasob = DB::get_by_id('CRM_LISTA_ZASOBOW', $zasob_id); if ($zasob->TYPE != 'PLIK') { die('Wrong type!'); } $movie_ext = array('avi', 'mov', 'm4v'); if (!in_array(end(explode('.', $zasob->DESC)), $movie_ext)) { die('Wrong file name!'); } $zasob_parent = DB::get_by_id('CRM_LISTA_ZASOBOW', $zasob->PARENT_ID); if (!$zasob_parent) { die('Parent not exists!'); } $zasob_parent2 = DB::get_by_id('CRM_LISTA_ZASOBOW', $zasob_parent->PARENT_ID); if (!$zasob_parent2) { die('Parent2 not exists!'); } echo'

'."[".$zasob->ID."] ".''.$zasob->TYPE.' '.$zasob->DESC.'

'; echo'

'."[".$zasob_parent->ID."] ".''.$zasob_parent->TYPE.' '.$zasob_parent->DESC.'

'; echo'

'."[".$zasob_parent2->ID."] ".''.$zasob_parent2->TYPE.' '.$zasob_parent2->DESC.'

'; exit; } // ======== TREE ========= DEBUG_S(5,'SES.USER_PARAMS', $_SESSION['USER_PARAMS'], __FILE__, __FUNCTION__, __LINE__); DEBUG_S(6,'SES', $_SESSION, __FILE__, __FUNCTION__, __LINE__); DEBUG_S(6,'SRV', $_SERVER, __FILE__, __FUNCTION__, __LINE__); echo'
.'; lay_procesy_dol(); function lay_procesy_dol() { if (1 == V::get('HIDE_PANEL', 0, $_REQUEST, 'int')) { return; } UI::dol(); } function lay_procesy_user_panel() { //echo 'ST-"'.ini_get('session.gc_maxlifetime').'", req_time="'.date('H:i:s').'", end_time="'.date('H:i:s', time() + ini_get('session.gc_maxlifetime')).'", ID="'.session_id().'"
'."\n"; if (!V::get('SHOW_PANEL', '', $_SESSION['USER_PARAMS'])) { // return; } if (1 == V::get('HIDE_PANEL', 0, $_REQUEST, 'int')) { return; } UI::menu(); return; echo "\n".'
'."\n"; echo''; echo''; echo ''; echo''."\n"; echo''; echo'
'."\n"; { $q = V::get('q', '', $_REQUEST); echo ''; echo' | '; } S::show_session_timer(); //echo'Ekran | '; if (V::get('DEBUG', '', $_SESSION)) { echo'DBG('.$_SESSION['DEBUG'].')'; $js = "if(jQuery(document.body).hasClass('show-DEBUG_S')){jQuery(document.body).removeClass('show-DEBUG_S');this.innerHTML='+';}else{jQuery(document.body).addClass('show-DEBUG_S');this.innerHTML='-'};return false;"; echo ' ' . "+" . ''; echo' | '; } echo App::link($_SESSION['AUTHORIZE_USER'], array('task'=>"USER"), array('title'=>$_SESSION['ADM_ACCOUNT'])); echo' | '.User::get('ADM_ADMIN_LEVEL').''; echo' | '; echo App::link("Wyloguj", "?LOGIN=LOGOUT"); echo'
'; echo "\n".'
'."\n";// #GORA } function lay_procesy_css() { return '' . "\n"; } function view_CRM_PROCES_Helper__get_class($procesType) { switch ($procesType) { case 'PROCES_INIT': return 'red'; case 'PROCES_GROUP_1': return 'group1'; case 'PROCES_GROUP_2': return 'group2'; default: return null; } } function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) { // $dbg=debug_backtrace(); // DEBUG_S(-3,'backtrace',$dbg); $db = DB::getDB(); $wsk = array(); Lib::loadClass('ProcesHelper'); $tree->log('show item - start'); if ($tree->get_param('rozwin_proces')) { $wsk = ProcesHelper::get_wskazniki($r->ID); $tree->log('show item -> get_wskazniki', array('get_wskazniki')); foreach ($wsk as $idx => $w) $wsk[$idx]->ACL_TYPE = in_array($w->TYPE, ['STANOWISKO', 'DZIAL', 'PODMIOT']) ? 'GROUP' : ''; // UI::table([ 'rows' => array_map(function ($w) { // unset($w->path); // unset($w->OPIS); // return (array)$w; // }, $wsk) ]); $fixedWskList = array(); foreach ($wsk as $w) { if ('GROUP' == $w->ACL_TYPE) $fixedWskList[] = $w; } if ('PROCES_INIT' == $r->TYPE) {// fetch INHERIT acl groups $idGroups = array_reduce($wsk, function ($carry, $w) { if ('GROUP' != $w->ACL_TYPE) return $carry; return (!empty($carry)) ? "{$carry},{$w->ID}" : $w->ID; }, ""); $sqlFilterIdGroups = (!empty($idGroups)) ? " and gp.ID_GROUP not in({$idGroups})" : ""; foreach (DB::getPDO()->fetchAll("select z.ID , z.PARENT_ID , z.`TYPE` , z.`DESC` , 'INHERIT' as ACL_TYPE from CRM_PROCES_idx_GROUP_to_PROCES gp join CRM_LISTA_ZASOBOW z on(z.ID = gp.ID_GROUP) where gp.ID_PROCES = {$r->ID} {$sqlFilterIdGroups} ") as $aclW) { $fixedWskList[] = (object)$aclW; } } foreach ($wsk as $w) { if ('GROUP' != $w->ACL_TYPE) $fixedWskList[] = $w; } $wsk = $fixedWskList; $tree->log('show item -> get_wskazniki inherit', array('get_wskazniki')); } $pytania = array(); $tblPytaniaId = $tree->get_param('PytaniaTblId'); if ($tree->get_param('editable') && $tree->get_param('HasAclPytaniaTbl')) { $userAcl = User::getAcl(); $tblAcl = $userAcl->getTableAcl($tblPytaniaId); $params = array(); $params['f_ID_PROCES'] = $r->ID; $pytania = $tblAcl->getDataSource()->getItems($params); $tree->log('show item -> fetch-pytania', array('fetch-pytania')); } $show_form = ($tree->get_param('show_form_at_item') == $r->ID); $show_form = ($tree->get_param('show_form_at_item') > 0);// TODO: RMME $cls = array(); if (($search_id = $tree->get_param('search_id')) > 0 && $search_id == $r->ID) { $cls[] = 'search_id'; } $cls = (!empty($cls))? ' class="'.implode(' ', $cls).'"' : ''; echo ''; echo '
'; if (!empty($wsk)) echo'
'; $out_id = ($r->ID < 10) ? " {$r->ID}" : $r->ID; $proces_type_css_class = view_CRM_PROCES_Helper__get_class($r->TYPE); echo App::link($out_id, [ 'task' => "CRM_PROCES", 'filtr_id' => $r->ID, '#' => "TREE{$r->ID}" ], [ 'class' => implode(' ', [ 'item_id', 'btn-box', ($proces_type_css_class) ? "btn-box-{$proces_type_css_class}" : '' ]) ]); //if($r->TYPE == 'PROCES_INIT') { $tree->log('show item -> fetch-IF_TRUE_GOTO start'); $gotoList = ProcesHelper::getGoToProces($r->ID); foreach ($gotoList as $gotoId => $gotoFlag) { $popupIcon = 'glyphicon glyphicon-chevron-left'; $popupLink = "procesy5.php?task=PROCES_VIEW&id_proces={$gotoId}"; $popupTitle = "GOTO"; $popupContent = "{$gotoId} {$gotoFlag} {$r->ID}"; $linkStyle = ''; if ('popover' == $linkStyle) { echo UI::h('a', [ 'href' => $popupLink ], [ UI::h('span', [ 'class' => "wsk-help popover-with-html p5-L" . __LINE__ ], [ UI::h('i', [ 'class' => $popupIcon ]), UI::h('span', [ 'class' => "popover-heading" ], $popupTitle), UI::h('span', [ 'class' => "popover-body" ], $popupContent), ]), $gotoId, ]); } else { echo ' '; echo App::link("<{$gotoId}", array('task'=>'PROCES_VIEW', 'id_proces'=>$gotoId), array('title'=>$popupContent)); echo ' '; } } $tree->log('show item -> fetch-IF_TRUE_GOTO', array('fetch-IF_TRUE_GOTO')); //} //echo App::link("⚑", array('task'=>"CRM_PROCES", 'filtr_id'=>$r->ID, '#'=>'TREE'.$r->ID), array('class'=>'')); //echo App::link("⚐", array('task'=>"CRM_PROCES", 'filtr_id'=>$r->ID, '#'=>'TREE'.$r->ID), array('class'=>'')); if ($tree->get_param('editable')) { //echo'('.$r->SORT_PRIO.')';//TODO: DBG echo App::link("^", array('task'=>'CRM_PROCES', 'function_init'=>'SORT_PRIO_PROCES', 'arg1'=>$r->ID, 'arg1_val'=>'upup','#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore o 5 pol")); echo App::link("^", array('task'=>'CRM_PROCES', 'function_init'=>'SORT_PRIO_PROCES', 'arg1'=>$r->ID, 'arg1_val'=>'up','#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore")); echo App::link("v", array('task'=>'CRM_PROCES', 'function_init'=>'SORT_PRIO_PROCES', 'arg1'=>$r->ID, 'arg1_val'=>'dw','#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w dol")); echo App::link("V", array('task'=>'CRM_PROCES', 'function_init'=>'SORT_PRIO_PROCES', 'arg1'=>$r->ID, 'arg1_val'=>'downdown','#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w dol o 5 pol")); echo' '; if ($tree->get_param('ProcesTblId') > 0) { // rem@2016-08 sqix link do nowy edytor: if($r->TYPE == 'PROCES_INIT') { echo App::link("E", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ProcesTblId')."#EDIT/".$r->ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); echo App::link("e", "index.php?_route=UrlAction_ProcesEditor&id=".$r->ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); } else { echo App::link("E", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ProcesTblId')."#EDIT/".$r->ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); } } else { echo App::link("E", array('task'=>"CRM_PROCES", 'EDIT'=>$r->ID), array('title'=>'Edytuj', 'class'=>'btn-p5')); } if ($tree->get_param('ProcesTblId') > 0) { echo App::link("F", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ProcesTblId')."#FILES/".$r->ID, array('title'=>'Pliki', 'class'=>'btn-p5')); } if (!in_array($r->TYPE, array('PROCES_GROUP_1', 'PROCES_GROUP_2'))) { if (!$r->TEST_PYTANIE) { echo App::link("P+", array('task'=>"CRM_TESTY_ADD_PYTANIA", 'id_proces'=>$r->ID), array('title'=>'Dodaj pytanie do testow', 'class'=>'btn-p5 btn-red')); } else { echo App::link("P+", array('task'=>"CRM_TESTY_ADD_PYTANIA", 'id_proces'=>$r->ID), array('title'=>'Dodaj pytanie do testow', 'class'=>'btn-p5')); if (!empty($pytania)) { foreach ($pytania as $pytanie) { if ($tree->get_param('rozwin_proces') && $pytanie->ID_WSKAZNIK != 0) { continue; } $odpowiedzi = array(); for ($i = 0; $i < 5; $i++) { $fldTxt = "ODP_{$i}"; $fldOdp = "ODP_{$i}_ODP"; if (!empty($pytanie->{$fldTxt})) { if ($pytanie->{$fldOdp} == 'TAK') { $odpowiedzi[] = '' . htmlspecialchars($pytanie->{$fldTxt}) . ''; } else { $odpowiedzi[] = '' . htmlspecialchars($pytanie->{$fldTxt}) . ''; } } } $popupIcon = ($pytanie->TEST_TYPE=='TEORETYCZNY')? 'glyphicon glyphicon-question-sign' : 'glyphicon glyphicon-exclamation-sign'; $popupLink = "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID={$tblPytaniaId}&task=CRM_PROCES#EDIT/{$pytanie->ID}";// TODO: add rand _hash? $popupTitle = "#{$pytanie->ID} " . htmlspecialchars($pytanie->PYTANIE); $popupContent = implode('
', $odpowiedzi); ?>
ID) || (!empty($_GET['EDIT']) && $_GET['EDIT'] == $r->ID) ) { $bold = true; } //if ($bold) echo "***"; if ($r->IF_TRUE_GOTO > 0) { $tree->log('show item -> fetch-proces_flag - start'); $link_out = ProcesHelper::proces_flag($r->ID, $r->IF_TRUE_GOTO, $r->IF_TRUE_GOTO_FLAG); $tree->log('show item -> fetch-proces_flag', array('fetch-proces_flag')); echo App::link($link_out, "#TREE".$r->IF_TRUE_GOTO, array('onclick'=>"return scrollToProces('".$r->IF_TRUE_GOTO."');", 'title'=>$r->IF_TRUE_GOTO_FLAG." ".$r->IF_TRUE_GOTO, 'class'=>'btn-p5')); echo "IF_TRUE_GOTO.">>>"; if (empty($r->DESC)) { $sql = "select `DESC`,`OPIS` from CRM_PROCES where ID='".$r->IF_TRUE_GOTO."' limit 1"; $rs = DB::query($sql); while ($h = DB::fetch($rs)) { echo "".$h->DESC.""; if ($tree->get_param('rozwin_opis') && $h->OPIS) echo ' '.$h->OPIS; echo ""; } } } if ($r->has_childrens) { if (!$tree->get_param('rozwin')) { $js = "return " . $tree->js_tree_open_rec_fun . "(this," . $r->ID . ");"; //echo''."L".''; echo App::link("L", '#', array('title'=>'Rozwin wszystko', 'class'=>'btn-p5 open-rec', 'onclick'=>$js)); } } echo''; echo UI::h('b', [ 'class' => ($proces_type_css_class) ? "desc-{$proces_type_css_class}" : "", ], $r->DESC); {// status ico if ($r->TYPE == 'PROCES_INIT') { echo implode(' ', [ " ", UI::h('img', [ 'src' => ($r->A_STATUS == 'NORMAL') ? "icon/status-ok.gif" : "icon/status-notok.gif", 'alt' => $r->A_STATUS, 'width' => "16", 'title' => "Status: {$r->A_STATUS} {$r->L_APPOITMENT_DATE}", 'style' => "vertical-align:middle;cursor:help", ]), UI::h('a', [ 'href' => "procesy5.php?task=PROCES_VIEW&id_proces={$r->ID}&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1", 'class' => "btn btn-xs btn-default", 'title' => "Przeglądaj proces {$r->ID} (drzewo)" ], "P"), UI::h('a', [ 'href' => "procesy5.php?task=PROCES_VIEW_LIST&id_proces={$r->ID}&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1", 'class' => "btn btn-xs btn-default", 'title' => "Przeglądaj proces {$r->ID} (lista)" ], "L"), UI::h('a', [ 'href' => "index.php?FUNCTION_INIT=GRAPH_VIEW_PROCES&id_proces={$r->ID}", 'class' => "btn btn-xs btn-default", 'title' => "Mapa procesu" ], "M"), ]); } else if ('PROCES_GROUP' === substr($r->TYPE, 0, strlen('PROCES_GROUP'))) { echo implode(' ', [ " ", // UI::h('a', [ 'href' => "procesy5.php?task=PROCES_VIEW_LIST&id_proces={$r->ID}&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1", // 'class' => "btn btn-xs btn-default", // 'title' => "Przeglądaj proces {$r->ID} (lista)" // ], "L"), // Brak upraenień - widok listy tylko dla PROCES_INIT UI::h('a', [ 'href' => "index.php?FUNCTION_INIT=GRAPH_VIEW_PROCES&id_proces={$r->ID}&PROCES_INIT_SCAN=1", 'class' => "btn btn-xs btn-default", 'target' => "_blank", ], "M"), ]); } } //if ($bold) echo "***"; if ($tree->get_param('editable')) { echo App::link("Z+", "index.php?MENU_INIT=PROCES_ADD_ZASOB&procesID=".$r->ID, array('title'=>'Dodaj', 'class'=>'btn-p5')); echo App::link("↵+", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ProcesTblId')."&ff_PARENT_ID=".$r->ID."#CREATE", array('class'=>'btn-p5', 'title'=>'Dodaj dziecko', 'onclick'=>null)); } $opis_before = ''; $opis_after = ''; $tbl = 'CRM_PROCES'; if ($tree->get_param('filtr_img')) { if ($r->A_HAS_IMAGE) { echo'
'; $imgSize = (V::get('show_big_img', '', $_GET))? '600x600' : '200x200'; for ($i = 0; $i < $r->A_HAS_IMAGE; $i++) { $opis_before .= 'ID."&number=".$i.'" target="_blank" class="lightbox">'; $opis_before .= 'ID."&number=".$i."&resize={$imgSize}".'" style="float:left" />'; $opis_before .= ''; } } if ($opis_before != '') $opis_after = '
'; } echo' '; echo $opis_before; if ($tree->get_param('rozwin_opis') && $r->OPIS) { echo ' '.$r->OPIS; } else if (!empty($r->OPIS)) { ?>
ID}] " . $r->DESC; ?>
OPIS; ?>
'; echo'
'; $tbl = 'CRM_PROCES'; if ($tree->get_param('filtr_img')) { if ($r->A_HAS_IMAGE || $tree->get_param('editable')) { echo' {'; for ($i = 0; $i < $r->A_HAS_IMAGE; $i++) { echo App::link("I", array('function_init'=>'fun_SHOW_EXTERNAL_IMAGE', 'tbl'=>$tbl,'id'=>$r->ID, 'number'=>$i), array('target'=>'_blank', 'title'=>"Zdjecie ".($i+1), 'iconBootstrap'=>'glyphicon glyphicon-camera', 'class'=>'lightbox')); //echo'ID."&number=".$i."&resize=200x200".'" />'; } if ($tree->get_param('editable')) echo App::link("+", "?function_init=fun_IMAGE_ADD&tbl=".$tbl."&id=".$r->ID, array('target'=>'_blank', 'title'=>"Dodaj zdjecia", 'iconBootstrap'=>'glyphicon glyphicon-plus')); echo'}'; } } if (!empty($wsk)) echo'
';// .has_wsk echo'
'."\n"; if (!empty($wsk)) { $zasoby_id = array(); echo'
'; echo'
    '; if (V::get('group_stanowiska', '', $_GET)) { $wsk_stanowiska = array(); $wsk_inne = array(); foreach ($wsk as $w) { if ($w->TYPE == 'STANOWISKO') { $wsk_stanowiska[] = $w; } else { $wsk_inne[] = $w; } } $wsk = array(); if (!empty($wsk_stanowiska)) { $wsk[] = $wsk_stanowiska; } if (!empty($wsk_inne)) { foreach ($wsk_inne as $w) { $wsk[] = $w; } } } $wsk_cnt = count( $wsk ); foreach ($wsk as $w) { if (is_array($w)) {// if $_GET['group_stanowiska'] $stanowiska = array(); foreach ($w as $vStanowisko) { $stanowiska[] = "[{$vStanowisko->ID}] {$vStanowisko->DESC}"; } echo ''; echo '

    '; echo ' '."STANOWISKA:".''; echo ' ' . implode(', ', $stanowiska) . ' '; echo '

    '; echo ''; continue; } $w_parents_out = ''; $w_title_parents_out = ''; if ($tree->get_param('rozwin_zasoby')) { $tree->log('show item -> fetch-get_all_parents - start'); $w->_parents = TreeHelper::get_all_parents( 'CRM_LISTA_ZASOBOW', $w->PARENT_ID ); $tree->log('show item -> fetch-get_all_parents', array('fetch-get_all_parents')); $w_parents_out = array(); foreach ($w->_parents as $w_p_id => $w_p) { $w_parents_out[] = '['.$w_p->ID.' '.$w_p->TYPE.' '.$w_p->DESC.']'; $w_title_parents_out[] = ''.$w_p->ID.' '.$w_p->TYPE.' '.$w_p->DESC.''; } $w_parents_out = ' '.implode(' / ', $w_parents_out).''; $w_title_parents_out = (!empty($w_title_parents_out))? implode(' / ', $w_title_parents_out) : ''; } echo''; if ('INHERIT' == $w->ACL_TYPE) { UI::startTag('p', ['style' => "color:#aaa", 'title' => "Stanowiska dziedziczone z procesu/ów wywołujących (GOTO)"]); UI::tag('span', ['title' => $w_title_parents_out], "[{$w->ID}]"); echo " {$w->TYPE} "; UI::tag('span', [], $w->DESC); UI::endTag('p'); continue; } else { } echo'

    '; // echo ' '.$w->CW_ID.''; ('GROUP' == $w->ACL_TYPE) ? UI::startTag('p', ['style' => "color:#daa520"]) : UI::startTag('p', []); ('GROUP' == $w->ACL_TYPE) ? UI::tag('span', ['style' => "color:#daa520", 'title' => $w_title_parents_out], "[{$w->ID}]") : UI::tag('span', ['class' => "green", 'title' => $w_title_parents_out], "[{$w->ID}]"); if ($tree->get_param('editable')) { echo App::link("^", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=>$w->CW_ID, 'arg1_val'=>'upup','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore o 5 pol")); echo App::link("^", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=>$w->CW_ID, 'arg1_val'=>'up','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore")); echo App::link("v", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=> $w->CW_ID, 'arg1_val'=>'dw','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w dol")); echo App::link("V", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=> $w->CW_ID, 'arg1_val'=>'downdown','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w dol o 5 pol")); echo' '; if ($tree->get_param('WskaznikTblId')) { echo App::link("E", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('WskaznikTblId')."#EDIT/".$w->CW_ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); } else { echo App::link("E", "?task=CRM_EDIT_CRM_WSKAZNIK&EDIT=".$w->CW_ID."&ID=".$w->CW_ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); } if ($tree->get_param('ZasobTblId') > 0) { echo App::link("F", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ZasobTblId')."#FILES/".$w->ID, array('title'=>'Pliki', 'class'=>'btn-p5')); } } if (!empty($pytania)) { foreach ($pytania as $pytanie) { if ($pytanie->ID_WSKAZNIK != $w->CW_ID) { continue; } $odpowiedzi = array(); for ($i = 0; $i < 5; $i++) { $fldTxt = "ODP_{$i}"; $fldOdp = "ODP_{$i}_ODP"; if (!empty($pytanie->{$fldTxt})) { if ($pytanie->{$fldOdp} == 'TAK') { $odpowiedzi[] = '' . htmlspecialchars($pytanie->{$fldTxt}) . ''; } else { $odpowiedzi[] = '' . htmlspecialchars($pytanie->{$fldTxt}) . ''; } } } $popupIcon = ($pytanie->TEST_TYPE=='TEORETYCZNY')? 'glyphicon glyphicon-question-sign' : 'glyphicon glyphicon-exclamation-sign'; $popupLink = "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID={$tblPytaniaId}&task=CRM_PROCES#EDIT/{$pytanie->ID}";// TODO: add rand _hash? $popupTitle = "#{$pytanie->ID} " . htmlspecialchars($pytanie->PYTANIE); $popupContent = implode('


    ', $odpowiedzi); echo UI::h('a', [ 'target' => "_blank", 'class' => "popover-with-html wsk-help", 'href' => $popupLink, ], [ UI::h('i', [ 'class' => "{$popupIcon} p5-L" . __LINE__ ]), ]); ?> CP_FORM_TREAT)) echo' '.str_replace(',', '', $w->CP_FORM_TREAT).''; echo ' '.$w->TYPE.''; echo ' '.$w->DESC.' '; if ($tree->get_param('editable')) { $js_onclick = "if(!confirm('Czy na pewno usunac wskaznik ".$w->CW_ID." do zasobu ".$w->ID." w procesie ".$r->ID."?')){return false;}"; echo App::link("Z-", "?task=CRM_DEL_CRM_WSKAZNIK&ID=".$w->CW_ID, array('title'=>'Usun', 'class'=>'btn-p5', 'onclick'=>$js_onclick)); } if ($tree->get_param('filtr_img')) { // wskaznik images $tbl = 'CRM_WSKAZNIK'; if ($w->CW_A_HAS_IMAGE > 0 || $tree->get_param('editable')) { for ($i = 0; $i < $w->CW_A_HAS_IMAGE; $i++) { echo App::link("I", array('function_init'=>'fun_SHOW_EXTERNAL_IMAGE', 'tbl'=>$tbl,'id'=>$w->CW_ID, 'number'=>$i), array('target'=>'_blank', 'title'=>"Zdjecie ".($i+1), 'iconBootstrap'=>'glyphicon glyphicon-camera', 'class'=>'lightbox')); } if ($tree->get_param('editable')) echo App::link("+", "?function_init=fun_IMAGE_ADD&tbl=".$tbl."&id=".$w->CW_ID, array('target'=>'_blank', 'title'=>"Dodaj zdjecia", 'iconBootstrap'=>'glyphicon glyphicon-plus')); } // zasob images $tbl = 'CRM_LISTA_ZASOBOW'; if ($w->A_HAS_IMAGE) { for ($i = 0; $i < $w->A_HAS_IMAGE; $i++) { echo App::link("I", array('function_init'=>'fun_SHOW_EXTERNAL_IMAGE', 'tbl'=>$tbl,'id'=>$w->ID, 'number'=>$i), array('target'=>'_blank', 'title'=>"Zdjecie ".($i+1), 'iconBootstrap'=>'glyphicon glyphicon-camera', 'class'=>'lightbox')); } } // show video link if file is movie type if ($w->TYPE == 'PLIK') { $movieExtAllowed = array('avi', 'mov', 'm4v'); $movieExt = explode('.', $w->DESC); $movieExt = end($movieExt); if (in_array($movie_ext, $movieExtAllowed)) { //echo App::link("V", array('function_init'=>'fun_SHOW_VIDEO','id'=>$w->ID), array('target'=>'_blank', 'title'=>"Film", 'ico'=>'video', 'class'=>''));//lightbox video } } } if ($tree->get_param('rozwin_opis')) { if ($w->TYPE == 'STANOWISKO') { if (!empty($w->OPIS)) { if (strlen($w->OPIS) > 300) { ?>
    CW_ID}] " . $w->OPIS; ?>
    OPIS_ZASOB; ?>
    '.$w->OPIS.'';// opis zasobu } } if ($tree->get_param('rozwin_opis')) { echo ' '.$w->OPIS_ZASOB.'';// komentarz wskaznika } else if (!empty($w->OPIS_ZASOB)) { echo UI::h('span', [ 'class' => "wsk-help popover-with-html p5-L" . __LINE__ ], [ UI::h('i', [ 'class' => "glyphicon glyphicon-info-sign" ]), UI::h('span', [ 'class' => "popover-heading" ], "[" . $w->CW_ID . "] " . $w->OPIS), UI::h('span', [ 'class' => "popover-body" ], "[{$w->ID}]" . $w->OPIS_ZASOB), ]); } if ($show_form) $zasoby_id[$w->TYPE][$w->ID] = $w->CW_ID; if ($tree->get_param('rozwin_zasoby')) { echo $w_parents_out; } echo'

    '; echo''; } echo'
'; if(0) {// TODO: grupuj zasoby echo'
'; $zasoby_id = array(); $wsk_cnt = count( $wsk ); echo'
wsk = ';print_r($wsk);echo'
'; // TEST parents $wsk_parents = array(); $max_deep = 0;// max parents deep foreach ($wsk as $k_wsk_id => $w) { $wsk_parents_cur = array_reverse(array_keys($w->_parents)); $wsk_parents_cur[] = $w->ID; if (count($wsk_parents_cur) > $max_deep) $max_deep = count($wsk_parents_cur); $wsk_parents_cur ['wsk_id'] = $k_wsk_id; $wsk_parents[] = $wsk_parents_cur; echo'parents ['.implode(',', $wsk_parents_cur).']
'; } $wsk_parents_cnt = count($wsk_parents); echo'
parents('.$wsk_parents_cnt.'); max_deep('.$max_deep.'); wsk_parents = ';print_r($wsk_parents);echo'
'; $zasoby_id = array(); foreach ($wsk as $k_wsk_id => $w) { $zasoby_id [$w->ID] =& $wsk[$k_wsk_id]; foreach ($w->_parents as $k_z_id => $z) { $zasoby_id [$k_z_id] =& $wsk[$k_wsk_id]->_parents[$k_z_id]; } } $wsk_parents_map = array();// table td: rowspan, colspan, wsk_id /* for ($x = 0, $last_x = 0, $last_y = 0; $x < $max_deep; $x++, $last_x = $x) { for ($y = 0; $y < $wsk_parents_cnt; $y++) { $z_id = 'x'; if (isset($wsk_parents[$y][$x])) { $z_id = $wsk_parents[$y][$x]; } $wsk_parents_map[$y][$x] = array('rowspan'=>1, 'colspan'=>1, 'z_id'=>$z_id);// default content is 'x' } } */ for ($y = 0, $last_y = 0, $last_x = 0; $y < $wsk_parents_cnt; $y++, $last_y = $y) { for ($x = 0; $x < $max_deep; $x++) { $z_id = 'x'; $wsk_parents_map[$y][$x] = array('rowspan'=>1, 'colspan'=>1, 'z_id'=>$z_id);// default content is 'x' if (isset($wsk_parents[$y][$x])) { $wsk_parents_map[$y][$x]['z_id'] = $wsk_parents[$y][$x]; } else if ($x > 0 && $wsk_parents_map[$y][$x - 1]['z_id'] != 'x') { //$wsk_parents_map[$y][$x - 1]['z_id'] = 'x'; $wsk_parents_map[$y][$x - 1]['wsk_id'] = $wsk_parents[$y]['wsk_id']; } } // dodaj wsk_id do ostatniego elementu $x = $max_deep - 1; if ($wsk_parents_map[$y][$x]['z_id'] != 'x') { $wsk_parents_map[$y][$x]['wsk_id'] = $wsk_parents[$y]['wsk_id']; } } echo'
1:wsk_parents_map = ';print_r($wsk_parents_map);echo'
'; // set rowspan for ($x = 0, $last_x = 0; $x < $max_deep; $x++, $last_x = $x) { for ($y = 1, $last_y = 0; $y < $wsk_parents_cnt; $y++) { $last_cell_map =& $wsk_parents_map[$last_y][$x]; $curr_cell_map =& $wsk_parents_map[$y][$x]; if ($last_cell_map['z_id'] != $curr_cell_map['z_id']) { $last_y = $y; } else if (isset($last_cell_map['wsk_id'])) { $last_y = $y; } else { $curr_cell_map['z_id'] = 'x'; $last_cell_map['rowspan'] += 1; } } } echo'
2:wsk_parents_map = ';print_r($wsk_parents_map);echo'
'; // set colspan for ($y = 0, $last_y = 0; $y < $wsk_parents_cnt; $y++, $last_y = $y) { for ($x = 1, $last_x = 0; $x < $max_deep; $x++) { $last_cell_map =& $wsk_parents_map[$y][$last_x]; $curr_cell_map =& $wsk_parents_map[$y][$x]; if ($curr_cell_map['z_id'] == 'x') { $curr_cell_map['z_id'] = 'x'; $last_cell_map['colspan'] += 1; } else { $last_x = $x; } } } echo'
wsk_parents_map = ';print_r($wsk_parents_map);echo'
'; /* foreach ($wsk_parents as $k_i => $v_map) { $last_p_id = 0; $last_map_ind = -1; foreach ($v_map as $wsk_i => $parent_id) { if ($last_map_ind == -1) { $last_map_ind = 0; $wsk_parents_map[$k_i][$last_map_ind] = array('p_id'=>$parent_id, 'rowspan'=>1); } else if ($last_p_id != $parent_id) { $last_map_ind++; $wsk_parents_map[$k_i][$last_map_ind] = array('p_id'=>$parent_id, 'rowspan'=>1); } else { $wsk_parents_map[$k_i][$last_map_ind]['rowspan'] += 1; } $last_p_id = $parent_id; } } echo'
wsk_parents_map = ';print_r($wsk_parents_map);echo'
'; */ /* parents [27,35,57,79 ] parents [27,35,57,79 ] parents [27,14,31,355,1070,2365] parents [27,35,57,79 ] wsk_parents_map = Array( [0] => Array( [0] => Array( [p_id] => 27 [rowspan] => 3
27 35 57 79
14 31 355
27 35 57
*/ echo'
zasoby_id: ';print_r($zasoby_id);echo'
'; echo''; echo''; foreach ($wsk_parents_map as $k_map_y => $v_map_line) { $out_row = ''; foreach ($v_map_line as $k_map_x => $v_map) { if ($v_map['z_id'] == 'x') { continue; } $cls = ''; $out_zasob = ''; $out_rowspan = ($v_map['rowspan'] > 1)? ' rowspan="'.$v_map['rowspan'].'"' : ''; $out_colspan = ($v_map['colspan'] > 1)? ' colspan="'.$v_map['colspan'].'"' : ''; {// get zasob info //[TYPE] => NARZEDZIE //[DESC] => SUPEREDIT-WWW //[OPIS] => http://se.dev.webone.pl/ $curr_z = V::get($v_map['z_id'], null, $zasoby_id); if (!$curr_z) { $out_zasob .= 'error brak zasobu {'.$v_map['z_id'].'}'; } else { $out_zasob_title = array(); $out_zasob_title[] = V::get('DESC', '', $curr_z); $out_zasob_title[] = V::get('OPIS', '', $curr_z); $out_zasob_title = ''.implode(' ', $out_zasob_title).''; $out_zasob .= ''.$v_map['z_id'].''; } } if (isset($v_map['wsk_id'])) { $curr_wsk = V::get($v_map['wsk_id'], null, $wsk); if (!$curr_wsk) { $out_zasob .= 'error brak wskaznika {'.$v_map['wsk_id'].'}'; } else { $out_zasob_opis = V::get('OPIS_ZASOB', '', $curr_wsk); $out_zasob .= ' '.$v_map['wsk_id'].''; // TODO: if edit, etc. $out_zasob .= ' '.$out_zasob_opis; } //$out_row .= ''.$out_zasob.''; $cls = ' class="wsk-cell"'; } $out_row .= ''.$out_zasob.''; } if ($out_row) { echo''; echo $out_row; echo''; } } echo''; echo'
'; }// grupuj zasoby if ($show_form) { //echo'
zasoby_id = ';print_r($zasoby_id);echo'
'; if (!empty($zasoby_id['KOMORKA'])) { $komorki = array(); foreach ($zasoby_id['KOMORKA'] as $z_id => $w_id) { $komorki[] = $wsk[ $w_id ]; } DEBUG_S(4,'komorki',$komorki, __FILE__, __FUNCTION__, __LINE__); // zasoby pobierz info o komorkach: tabela, baza danych; host,login,passwd z configa // BAZA_DANYCH -> TABELA -> KOMORKA $zasoby_tabele = array(); $zasoby_db_conf = array(); $sql = "select z.ID as KOMORKA_ID , z.DESC as KOMORKA_DESC , z.OPIS as KOMORKA_OPIS , z2.ID as TABELA_ID , z2.DESC as TABELA_DESC , z2.OPIS as TABELA_OPIS , z3.ID as DB_ID , z3.DESC as DB_DESC , z3.OPIS as DB_OPIS from `CRM_LISTA_ZASOBOW` as z left join `CRM_LISTA_ZASOBOW` as z2 on(z2.`ID`=z.`PARENT_ID`) left join `CRM_LISTA_ZASOBOW` as z3 on(z3.`ID`=z2.`PARENT_ID`) where z.`ID` in (".implode(',', array_keys($zasoby_id['KOMORKA'])).") and z2.`TYPE`='TABELA' -- and z3.`TYPE`='BAZA_DANYCH' -- lub DATABASE_MYSQL, DATABASE_MSSQL "; DEBUG_S(5,'sql', $sql, __FILE__, __FUNCTION__, __LINE__); $res = DB::query( $sql ); while ($z = DB::fetch( $res )) { $zasoby_db_conf [$z->DB_ID][] = array($z->KOMORKA_ID, $z->DB_ID, $z->DB_DESC, $z->DB_OPIS); $zasoby_tabele [$z->TABELA_ID][] = array($z->KOMORKA_ID, $z->TABELA_ID, $z->TABELA_DESC, $z->TABELA_OPIS); } DEBUG_S(4,'zasoby_db_conf ['.implode(',',array_keys($zasoby_db_conf)).']', $zasoby_db_conf, __FILE__, __FUNCTION__, __LINE__); DEBUG_S(4,'zasoby_tabele ['.implode(',',array_keys($zasoby_tabele)).']', $zasoby_tabele, __FILE__, __FUNCTION__, __LINE__); // pogrupuj komorki wg tabel // permy z $zasob->CW_TYP } } echo'
'; } echo''."\n"; $tree->log('show item -> end'); } function tree_callback__show_item_from_CRM_LISTA_ZASOBOW( &$r, &$tree ) { // TODO: btn-box zasob type from PARENT_ID $cls = array(); if (($search_id = $tree->get_param('search_id')) > 0 && $search_id == $r->ID) { $cls[] = 'search_id'; } if ($tree->_table == 'CRM_LISTA_ZASOBOW') { $cls[] = 'type-'.(($r->ALIAS_ID > 0)? 'ALIAS_ID' : $r->PARENT_TYPE);// TODO: Undefined property: stdClass::$PARENT_TYPE przy Filtr ID } $cls = (!empty($cls))? ' class="'.implode(' ', $cls).'"' : ''; echo''; echo'
'; $out_id = ($r->ID < 10)? ' '.$r->ID.'' : $r->ID; echo App::link($out_id, array('task'=>"CRM_LISTA_ZASOBOW", 'filtr_id'=>$r->ID, '#'=>'TREE'.$r->ID), array('class'=>'item_id btn-box')); if ($tree->get_param('editable')) { //echo'('.$r->SORT_PRIO.')';// TODO: DBG echo App::link("^", array('task'=>'CRM_LISTA_ZASOBOW', 'function_init'=>'SORT_PRIO_ZASOB', 'arg1'=>$r->ID, 'arg1_val'=>'upup'), array('class'=>"btn-clean", 'title'=>"w gore szybko")); echo App::link("^", array('task'=>'CRM_LISTA_ZASOBOW', 'function_init'=>'SORT_PRIO_ZASOB', 'arg1'=>$r->ID, 'arg1_val'=>'up'), array('class'=>"btn-clean", 'title'=>"w gore")); echo App::link("v", array('task'=>'CRM_LISTA_ZASOBOW', 'function_init'=>'SORT_PRIO_ZASOB', 'arg1'=>$r->ID, 'arg1_val'=>'dw'), array('class'=>"btn-clean", 'title'=>"w dol")); echo App::link("V", array('task'=>'CRM_LISTA_ZASOBOW', 'function_init'=>'SORT_PRIO_ZASOB', 'arg1'=>$r->ID, 'arg1_val'=>'downdown'), array('class'=>"btn-clean", 'title'=>"w dol szybko")); echo '('.$r->SORT_PRIO.')'; } if ($tree->get_param('editable')) { if($tree->get_param('hasFieldPerm__ID')) echo App::link("E", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('getZasobTableID')."#EDIT/".$r->ID, array('title'=>'Pliki', 'class'=>'btn-p5')); else echo App::link("E", "?task=CRM_LISTA_ZASOBOW&EDIT=".$r->ID."#".$r->ID, array('title'=>'Edytuj', 'class'=>'btn-p5')); } if ($tree->get_param('hasFieldPerm__ID')) echo App::link("F", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('getZasobTableID')."#FILES/".$r->ID, array('title'=>'Pliki', 'class'=>'btn-p5')); // TODO: dodaj obrazek w okienku/ajax //if ($tree->get_param('editable')) echo App::link_ajax("+IMG", 'ajax_add_image', array('tbl'=>"CRM_LISTA_ZASOBOW", 'id'=>$r->ID), array('js_result_type'=>'popup', 'class'=>'btn-p5', 'title'=>'Dodaj zdjecie')); if ($r->has_childrens) { if (!$tree->get_param('rozwin')) { $js = "return " . $tree->js_tree_open_rec_fun . "(this," . $r->ID . ");"; //echo''."L".''; echo App::link("L", '#', array('title'=>'Rozwin wszystko', 'class'=>'btn-p5 open-rec', 'onclick'=>$js)); } } if(($r->minOccurs!=1)or ($r->maxOccurs!=1)) echo '('.$r->minOccurs."/".$r->maxOccurs.")"; else echo "(1)"; echo''; { $outAliasStyle = 'color:#999'; $outAliasTitle = 'ALIAS INFO'; $outAliasLink .= ''; if ($r->ALIAS_ID > 0) { $outAliasLink .= "{$r->ALIAS_ID}"; // ''.$r->ALIAS_ID.'' // ''.$r->ALIAS_ID.'' if ('VIRTUAL' == $r->ALIAS_MODE) { $outAliasStyle = 'color:#CA06E2'; $outAliasTitle = "ALIAS WIRTUALNY DO {$r->ALIAS_ID}"; } else { $outAliasStyle = 'color:#FF6900'; $outAliasTitle = "ALIAS DO {$r->ALIAS_ID}"; } } echo ' ' . "{$outAliasLink}" . '' . ' ' . '' ; } echo ''.$r->TYPE.''; if($r->A_STATUS=='DELETED') echo " (D) "; $bold=false; if ((!empty($_GET['arg1']) && $_GET['arg1'] == $r->ID) || (!empty($_GET['EDIT']) && $_GET['EDIT']==$r->ID) ) { $bold = true; } if ($bold) echo ""; echo ' '.$r->DESC; if ($bold) echo ""; echo ' '.$r->DESC_PL.''; $opis_before = ''; $opis_after = ''; $tbl = 'CRM_LISTA_ZASOBOW'; if ($tree->get_param('filtr_img')) { if ($r->A_HAS_IMAGE) { echo'
'; for ($i = 0; $i < $r->A_HAS_IMAGE; $i++) { $opis_before .= 'ID."&number=".$i.'" target="_blank" class="lightbox">'; $opis_before .= 'ID."&number=".$i."&resize=200x200".'" style="float:left" />'; $opis_before .= ''; } } if ($opis_before != '') $opis_after = '
'; } echo' '; echo $opis_before; if ($tree->get_param('rozwin_opis') && $r->OPIS) echo ' '.$r->OPIS; echo $opis_after; echo ''; echo'
'; $tbl = 'CRM_LISTA_ZASOBOW'; if ($tree->get_param('filtr_img')) { if ($r->A_HAS_IMAGE || $tree->get_param('editable')) { echo' {'; //echo App::link("IMG", array('function_init'=>'ajax_show_images', 'tbl'=>'CRM_LISTA_ZASOBOW','id'=>$r->ID), array('target'=>'_blank', 'title'=>"Zdjecia (".$r->A_HAS_IMAGE.")")); //echo App::link_ajax("IMG", 'ajax_show_images', array('tbl'=>'CRM_LISTA_ZASOBOW','id'=>$r->ID), array('js_result_type'=>'override', 'js_result'=>'', 'title'=>"Zdjecia (".$r->A_HAS_IMAGE.")")); // TODO: A_HAS_IMAGE - count images, show img icons to show image in new window for ($i = 0; $i < $r->A_HAS_IMAGE; $i++) { echo App::link("I", array('function_init'=>'fun_SHOW_EXTERNAL_IMAGE', 'tbl'=>$tbl,'id'=>$r->ID, 'number'=>$i), array('target'=>'_blank', 'title'=>"Zdjecie ".($i+1), 'iconBootstrap'=>'glyphicon glyphicon-camera', 'class'=>'lightbox')); } if ($tree->get_param('editable')) echo App::link("+", "?function_init=fun_IMAGE_ADD&tbl=".$tbl."&id=".$r->ID, array('target'=>'_blank', 'title'=>"Dodaj zdjecia", 'iconBootstrap'=>'glyphicon glyphicon-plus')); echo'}'; } } if ($tree->get_param('editable')) { // TODO: check table $allowed_check_database = array(); $allowed_check_database[] = 'BAZA_DANYCH'; $allowed_check_database[] = 'DATABASE_MYSQL'; $allowed_check_database[] = 'DATABASE_MSSQL'; if ($r->TYPE == 'TABELA') { //echo'{'; //echo App::link_ajax("check", "ajax_zasob_check_table", array('zasob_id'=>$r->ID), array('js_result_type'=>'override', 'js_result'=>'')); //echo'}'; } else if (in_array($r->TYPE, $allowed_check_database)) { //echo'{'; //echo App::link_ajax("check", "ajax_zasob_check_db", array('zasob_id'=>$r->ID), array('js_result_type'=>'override', 'js_result'=>'')); //echo'}'; } } // obowiazki if ($tree->get_param('filtr_ob')) { echo' {'; echo App::link_ajax("OB", "ajax_zasob_get_obowiazki", array('zasob_id'=>$r->ID), array('js_result_type'=>'override', 'js_result'=>'', 'title'=>"Obowiazki")); echo'}'; } // get external ids if ($tree->get_param('filtr_ids')) { if (in_array($r->TYPE, array('STANOWISKO', 'DZIAL', 'PODMIOT'))) { echo '' . "{"; echo App::link_ajax("kontakty", "ajax_zasob_stanowisko_search_kontakty", array('zasob_id'=>$r->ID), array('js_result_type'=>'override', 'js_result'=>'')); echo "}" . ''; } else { $external_ids_allowed_type = array(); $external_ids_allowed_type[] = 'NARZEDZIE'; $external_ids_allowed_type[] = 'TELBOX'; $external_ids_allowed_type[] = 'URZADZENIE'; $external_ids_allowed_type[] = 'SERWER'; $external_ids_allowed_type[] = 'SEGREGATOR'; $external_ids_allowed_type[] = 'MAGAZYN'; $external_ids_allowed_type[] = 'POMIESZCZENIE'; $external_ids_allowed_type[] = 'ALARM-SATEL'; $external_ids_allowed_type[] = 'DOSTEP-ZAMEK'; $external_ids_allowed_type[] = 'DOSTEP-KLUCZ'; $external_ids_allowed_type[] = 'SZAFA'; $external_ids_allowed_type[] = 'PIECZATKA'; $external_ids_allowed_type[] = 'MATERIAL_REKLAMOWY'; $external_ids_allowed_type[] = 'INNE'; $external_ids_allowed_type[] = 'DANE'; $external_ids_allowed_type[] = 'SIP_ACCOUNT'; $external_ids_allowed_type[] = 'PODMIOT'; $external_ids_allowed_type[] = 'URZADZENIA_I_OZNACZENIA_BHP'; $external_ids_allowed_type[] = 'SOFTWARE'; $external_ids_allowed_type[] = 'WYPOSAZENIE_LOKALU'; $external_ids_allowed_type[] = 'KUWETA'; $external_ids_allowed_type[] = 'DOSTEP-UPRAWNIENIA'; $external_ids_allowed_type[] = 'APLIKACJA'; $external_ids_allowed_type[] = 'LOKALIZACJA'; $external_ids_allowed_type[] = 'KOMPUTER'; $external_ids_allowed_type[] = 'MATERIAL_EKSPLOATACYJNY'; $external_ids_allowed_type[] = 'SOFTWARE'; $external_ids_allowed_type[] = 'OBSZAR'; $external_ids_allowed_type[] = 'REWIR'; $external_ids_allowed_type[] = 'DOKUMENTY'; $external_ids_allowed_type[] = 'SEJF'; $external_ids_allowed_type[] = 'DOSTEP-UPRAWNIENIA'; $external_ids_allowed_type[] = 'PLYTA_CD'; $external_ids_allowed_type[] = 'PROJEKT'; $external_ids_allowed_type[] = 'SPRAWA'; $external_ids_allowed_type[] = 'DOSTEP-KARTA'; $external_ids_allowed_type[] = 'OZNACZENIE_LOKALIZACJI'; $external_ids_allowed_type[] = 'DOSTEP-ZAMEK-ELEKTRONICZNY'; $external_ids_allowed_type[] = 'POLKA'; $external_ids_allowed_type[] = 'LOKALIZACJA_USLUGI'; $external_ids_allowed_type[] = 'SERVICE_POINT'; $external_ids_allowed_type[] = 'OFFER_GROUP'; $external_ids_allowed_type[] = 'OFFER'; $external_ids_allowed_type[] = 'OFFER_COSTS_GROUP'; $external_ids_allowed_type[] = 'OFFER_COST'; if (in_array($r->TYPE, $external_ids_allowed_type)) { echo '' . "{"; echo App::link_ajax("get IDS", "ajax_zasob_search_external_ids", array('zasob_id'=>$r->ID), array('js_result_type'=>'override', 'js_result'=>'')); echo "}" . ''; } } } if($tree->get_param('editable')) echo App::link("↵+", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('getZasobTableID')."&ff_PARENT_ID=".$r->ID."#CREATE", array('class'=>'btn-p5', 'title'=>'Dodaj dziecko', 'onclick'=>null)); echo'
'; echo''."\n"; } // ========== typespecial functions // function typespecial_{$FUN}( $field_name, $cmd, $value, $attrs = array() ) { // switch ($cmd) { // case 'show': {// show field in form // $out = ''; // return $out; // } // break; // case 'update': {// return field value // return $value; // } // break; // default: // // } // } function typespecial_L_APPOITMENT_USER($field_name, $cmd, $user_value, $attrs = array()) { static $_users_list; if (!$_users_list) { $_users_list = array(); $sql = "select u.* from `ADMIN_USERS` as u where u.`A_STATUS`='NORMAL' and u.`ADM_TECH_WORKER`!='NO' -- and u.`ADM_COMPANY` like '" . $_SESSION['ADM_COMPANY'] . "' order by u.`ADM_NAME` "; $res = DB::query( $sql ); while ($r = DB::fetch( $res )) { $_users_list [$r->ADM_ACCOUNT] = "" . $r->ADM_NAME . " (" . $r->ADM_ACCOUNT . ")"; } } $out = ''; switch ($cmd) { case 'show': { $out .= ''; } break; case 'search': { $out .= ''; } break; case 'update': { echo 'TODO: ' . __FUNCTION__ . '(update, '.$field_name.')'; return $value; } break; default: } return $out; } function typespecial_CRM_TESTY__ID_ORGANIZER( $field_name, $cmd, $user_value, $attrs = array() ) { static $_users_list; if (!$_users_list) { $_users_list = array(); Lib::loadClass('UsersHelper'); $params = array(); $params['ADM_ADMIN_LEVEL'] = 0; $organizer_list = UsersHelper::get_users_list( $params, 100, 0, 'ADM_NAME', 'ASC' ); foreach ($organizer_list as $k => $v_organizer) { $_users_list [$v_organizer->ID] = "" . $v_organizer->ADM_NAME . " (" . $v_organizer->ID . ")"; } } $out = ''; switch ($cmd) { case 'show': { $out .= ''; } break; case 'search': { $out .= ''; } break; case 'update': { echo 'TODO: ' . __FUNCTION__ . '(update, '.$field_name.')'; return $value; } break; default: } return $out; } //2007-04-28 KOMENTARZ arek@tx.pl // // PROCES(X,Y) // KROK_1 <-(CRM_WSKAZNIK)-----ZASOB(1) // KROK_1 <-(CRM_WSKAZNIK)-----CZYNNOSC(1) // KROK_2 <-(CRM_WSKAZNIK)-----ZASOB(2) // KROK_2 <-(CRM_WSKAZNIK)--ZASOB(3) // KROK_2 <-(CRM_WSKAZNIK)--CZYNNOSC(2) // KROK_2 <-(CRM_WSKAZNIK)--ZASOB(4) // // // dodatkowo ZASOBY i CZYNNOSCI maja miec strukture drzewa ID/PARENT_ID // i przy rysowaniu procesu ma sie wyswietlac pelne drzewo // // // czyli jest SERWER/DANE/arkusz_zalegllosci, uzyty do procesu windykacji, z flaga UZYWANIE // a inny proces jest typu zasob=SERWER , ale uzyta jest flaga SERWIS // // czyli widac, ze jest serwer serwisowany, oraz kto go uzywa itp... // // trzeba bedzie dobrac odpowiednie flagi oraz odpowiednie elementy, // i na tej podstawie opisac wszystkie zdarzenia w firmie i do nich wyrysowac procesy // zobaczymy jak to sie ulozy organizacyjnie, bo w zasadzie moga wyjsc z tego niezle procedury // w tym i do prowadzenia inwestycji i wszystkiego. //Pozdro 600 , zrob do tego ladniejszy interfejs, zeby dalo sie ustalac strukture zasobow, czynnosci oraz procesow