= 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'
'."Zmieniono rekord (Error: nie zapisano hostorii)";
} else if ($affected < 0) {
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) {
?>
' . "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'
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''."PROCES ID".' ';
echo''."NAZWA / OPIS".' ';
echo' ';
echo' ';
echo'';
$t = 0;
foreach ($arr as $k_id => $v_arr) {
echo'';
echo'';
echo App::link($k_id, array('task'=>"CRM_PROCES", 'filtr_id'=>$k_id));
echo' ';
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' ';
echo' ';
}
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'';
}
echo' ';
echo' ';
echo' ';
echo'
';// .tree-wrap
}// proces info
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 ' '."\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'
';// .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''.$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'';
if (0) {// TODO: edytuj
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 'SE ';
echo ' / ';
echo App::link("ODSWIEZ", '');
echo' ';
echo'';// center
$menu = array();
/*
* ADM_ADMIN_LEVEL = 6;
* A_STATUS = 'WAITING';
* ADM_ACCOUNT = 'Kandydat';
* ADM_AREA = 'KANDYDAT';
* ADM_ADMIN_DESC = 'Kandydat';
*/
if (User::get('ADM_ADMIN_LEVEL') == 6) {
$menu ['CRM_TESTY'] = array("TESTY", "?task=CRM_TESTY", array('title'=>'Wyswietlenie testów'));
} else {
$menu ['CRM_PROCES'] = array("PROCESY", array('task'=>'CRM_PROCES'), array('title'=>'Wyswietlenie procesow'));
$menu ['CRM_LISTA_ZASOBOW'] = array("ZASOBY", "?task=CRM_LISTA_ZASOBOW", array('title'=>'Wyswietlenie zasobow'));
$menu ['CRM_WYSWIETL_OBOWIAZKI'] = array("OBOWIAZKI", "?task=CRM_WYSWIETL_OBOWIAZKI", array('title'=>'Wyswietlenie OBOWIAZKOW'));
$menu ['CRM_TESTY'] = array("TESTY", "?task=CRM_TESTY", array('title'=>'Wyswietlenie testów'));
if (User::hasAccess('testy_wyniki_read')) {
$menu ['CRM_TESTY_WYNIKI'] = array("WYNIKI", "?task=CRM_TESTY_WYNIKI", array('title'=>'Wyswietlenie wyników testów'));
}
$menu ['USERS'] = array("KONTAKTY", "?task=USERS", array('title'=>'Kontakty'));
}
foreach ($menu as $k_task => $v_menu) {
if ($k_task == App::get_task()) $v_menu[2] ['class'] = 'current';
echo App::link($v_menu[0], $v_menu[1], $v_menu[2]);
}
echo' '."\n";
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'
';
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__ ]),
]);
?>
= $popupTitle; ?>
= $popupContent; ?>
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 .= '
';
$out .= ' ' . " " . ' ';
foreach ($_users_list as $key => $val) {
$sel = ($user_value == $key)? ' selected="selected"' : '';
$out .= '' . $val . ' ';
}
$out .= ' ';
}
break;
case 'search': {
$out .= '
';
$out .= ' ' . " % " . ' ';
foreach ($_users_list as $key => $val) {
$sel = ($user_value == $key)? ' selected="selected"' : '';
$out .= '' . $val . ' ';
}
$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 .= '
';
$out .= ' ' . " " . ' ';
foreach ($_users_list as $key => $val) {
$sel = ($user_value == $key)? ' selected="selected"' : '';
$out .= '' . $val . ' ';
}
$out .= ' ';
}
break;
case 'search': {
$out .= '
';
$out .= ' ' . " % " . ' ';
foreach ($_users_list as $key => $val) {
$sel = ($user_value == $key)? ' selected="selected"' : '';
$out .= '' . $val . ' ';
}
$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