Example #1
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (!$arParams['USER_ID']) {
    $arParams['USER_ID'] = CUser::GetID();
}
$arResult['USERS'] = BitrixHelper::getUsersArrByIds($arParams['USER_ID']);
if (!count($arResult['USERS'])) {
    ShowError('Пользователь не найден');
    return;
}
/* programmer */
$res = CIBlockElement::GetList(array(), array("IBLOCK_ID" => TASKS_IBLOCK_ID, 'ACTIVE' => 'Y', "PROPERTY_PROGRAMMER" => $arParams['USER_ID']), false, false, array('ID', 'NAME', 'IBLOCK_ID', 'PROPERTY_PROJECT', 'PROPERTY_CALC', 'PROPERTY_TRACKING', 'PROPERTY_STATUS_DATE', 'PROPERTY_STATUS', 'PROPERTY_CALC_COMMENTS'));
while ($task = $res->GetNext()) {
    if (!$task['PROPERTY_STATUS_ENUM_ID']) {
        $task['PROPERTY_STATUS_ENUM_ID'] = 0;
    }
    switch ($task['PROPERTY_STATUS_ENUM_ID']) {
        case STATUS_LIST_WORK:
            $task['DETAIL_PAGE_URL'] = TASKS_LIST_URL . $task["PROPERTY_PROJECT_VALUE"] . '/' . $task['ID'] . '/';
            $date = new DateTime($task["PROPERTY_STATUS_DATE_VALUE"]);
            $curdate = new DateTime();
            $diff = $date->diff($curdate);
            $task['TIME'] = $diff->format('%H:%I:%S');
            $arResult['CURRENT_TASK'] = $task;
        default:
            $arResult['COUNTERS'][$task['PROPERTY_STATUS_ENUM_ID']]['TRACKING'] += $task['PROPERTY_TRACKING_VALUE'];
            $arResult['COUNTERS'][$task['PROPERTY_STATUS_ENUM_ID']]['CALC_COMMENTS'] += $task['PROPERTY_CALC_COMMENTS_VALUE'];
            $arResult['COUNTERS'][$task['PROPERTY_STATUS_ENUM_ID']]['COUNT']++;
Example #2
0
        }
    }
    if ($arFields['DETAIL_PICTURE']) {
        $arFields['DETAIL_PICTURE'] = CFile::ResizeImageGet($arFields['DETAIL_PICTURE'], array('width' => 60, 'height' => 50), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true);
    }
    $arResult['PROJECTS'][$arFields['ID']] = $arFields;
}
if (!$arParams["PROJECT"]) {
    $projects = array_keys($arResult['PROJECTS']);
    if (!$projects) {
        ShowError('Вы не привязаны ни к одному проекту');
        return;
    }
}
$arResult['ALL_USERS'] = array_unique($arResult['ALL_USERS']);
$arResult['USERS'] = BitrixHelper::getUsersArrByIds($arResult['ALL_USERS']);
if ($arParams['PROJECT']) {
    $currentProjectUsers = array();
    $currentProjectUsers = array_merge($currentProjectUsers, $arResult['CUSTOMERS_IDS']);
    $currentProjectUsers = array_merge($currentProjectUsers, $arResult['PROGRAMERS_IDS']);
    $arResult['ALL_USERS'] = array_unique($currentProjectUsers);
}
/* tasks */
if ($sortOrder = $_REQUEST['order']) {
    if (in_array($sortOrder, array('asc', 'desc'))) {
        $_SESSION['LIST_SORT_ORDER'] = $sortOrder;
    }
}
if (!$_SESSION['LIST_SORT_ORDER']) {
    $_SESSION['LIST_SORT_ORDER'] = 'desc';
}
Example #3
0
    die;
}
$arParams['ID'] = intval($arParams['ID']);
if (!$arParams['ID']) {
    ShowError('Не передан обязательный параметр');
    return;
}
CModule::IncludeModule('iblock');
$arFilter = array("IBLOCK_ID" => PROJECTS_IBLOCK_ID, "ID" => $arParams['ID']);
$arFilter = array_merge($USER->GetViewProjectsFilter(), $arFilter);
$res = CIBlockElement::GetList(array(), $arFilter, false, false, array("ID", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL", "PROPERTY_PROGRAMMER", 'PROPERTY_CUSTOMER', 'DETAIL_PICTURE', 'PREVIEW_TEXT'));
$arUsersId = array();
if ($ob = $res->GetNextElement()) {
    $arFields = $ob->GetFields();
    $arProps = $ob->GetProperties();
    $arFields['PROPERTIES'] = $arProps;
    foreach (array('CUSTOMER', 'PROGRAMMER') as $code) {
        if (is_array($arProps[$code]['VALUE'])) {
            $arUsersId = array_merge($arUsersId, $arProps[$code]['VALUE']);
        }
    }
    if ($arFields['DETAIL_PICTURE']) {
        $arFields['DETAIL_PICTURE'] = CFile::ResizeImageGet($arFields['DETAIL_PICTURE'], array('width' => 200, 'height' => 60), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true);
    }
    $arResult['PROJECT'] = $arFields;
} else {
    $arResult['ERROR'] = 'Проект не найден или доступ к нему запрещён';
}
$arUsersId = array_unique($arUsersId);
$arResult['USERS'] = BitrixHelper::getUsersArrByIds($arUsersId);
$this->IncludeComponentTemplate();
Example #4
0
        ToolTip::Add('Задача "' . $name . '" добавлена');
        $logger = new CrmLog('task');
        $logger->add(array($programmer, $customer), $newTaskId, 'add', $description);
        LocalRedirect(TASKS_LIST_URL . $arParams["PROJECT"] . '/');
    } else {
        $arResult['ERROR'] = $el->LAST_ERROR;
    }
}
$arSelect = array("ID", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL", "PROPERTY_*");
$arFilter = array("IBLOCK_ID" => PROJECTS_IBLOCK_ID, 'ID' => $arParams["PROJECT"]);
$userFilter = $USER->GetViewProjectsFilter();
$arFilter = array_merge($userFilter, $arFilter);
$res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);
if ($ob = $res->GetNextElement()) {
    $arFields = $ob->GetFields();
    $arProps = $ob->GetProperties();
    if ($arProps['PROGRAMMER']['VALUE']) {
        $arResult['PROJECT_USERS'] = $arProps['PROGRAMMER']['VALUE'];
    } else {
        $arResult['PROJECT_USERS'] = array();
    }
    if ($arProps['CUSTOMER']['VALUE']) {
        $arResult['PROJECT_USERS'] = array_merge($arResult['PROJECT_USERS'], $arProps['CUSTOMER']['VALUE']);
    }
    $arResult['PROJECT_USERS'] = array_unique($arResult['PROJECT_USERS']);
    $arResult['USERS'] = BitrixHelper::getUsersArrByIds($arResult['PROJECT_USERS']);
    $arResult['PROJECT'] = $arFields;
    $this->IncludeComponentTemplate();
} else {
    ShowError('Такой проект не найден или доступ к нему запрещён');
}