<?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']++;
} } 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'; }
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();
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('Такой проект не найден или доступ к нему запрещён'); }