Exemplo n.º 1
0
function trackStartedTask($stopStartedTask = true)
{
    CModule::IncludeModule('iblock');
    $res = CIBlockElement::GetList(array(), array("IBLOCK_ID" => TASKS_IBLOCK_ID, 'ACTIVE' => 'Y', "PROPERTY_PROGRAMMER" => CUser::GetID(), "PROPERTY_STATUS" => STATUS_LIST_WORK), false, false, array('ID', 'NAME', 'PROPERTY_PROJECT', 'PROPERTY_STATUS_DATE'));
    if ($taskArr = $res->Fetch()) {
        if ($stopStartedTask) {
            CIBlockElement::SetPropertyValuesEx($taskArr['ID'], TASKS_IBLOCK_ID, array('STATUS' => STATUS_LIST_PAUSE));
        }
        $link = TASKS_LIST_URL . $taskArr["PROPERTY_PROJECT_VALUE"] . '/' . $taskArr['ID'] . '/';
        $date = new DateTime($taskArr["PROPERTY_STATUS_DATE_VALUE"]);
        $curdate = new DateTime();
        $diff = $date->diff($curdate);
        $h = $diff->format('%h');
        $i = $diff->format('%i');
        if ($h || $i) {
            $timingText = '';
            if ($h) {
                $timingText = "{$h} ч, ";
            }
            if ($i) {
                $timingText = $timingText . "{$i} мин. ";
            }
            $decTime = $h + $i / 60;
            $decTime = round($decTime, 2);
            $el = new CIBlockElement();
            if ($el->Add(array("DATE_ACTIVE_FROM" => ConvertTimeStamp(time(), "SHORT"), "MODIFIED_BY" => CUser::GetID(), "IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => TRACKING_IBLOCK_ID, "NAME" => 'Без названия' . ' (' . $decTime . 'ч.)', "ACTIVE" => "Y", "PROPERTY_VALUES" => array("HOURS" => $decTime, "TASK" => $taskArr['ID'])))) {
                crmEntitiesHelper::recalcTaskTracking($taskArr['ID']);
                ToolTip::Add("+ {$timingText} в трекер задачи \"<a target=\"_blank\" href=\"{$link}\">{$taskArr['ID']} {$taskArr['NAME']}</a>\"");
            } else {
                ToolTip::AddError($el->LAST_ERROR);
            }
        }
    }
}
Exemplo n.º 2
0
Arquivo: crmlog.php Projeto: kudin/crm
 private function collectEventsToArr($res, $collectNotViewed = false)
 {
     while ($item = $res->Fetch()) {
         if ($collectNotViewed && !$item['VIEW']) {
             $this->newCnt++;
             self::$notViewedIds[] = $item['ITEM_ID'];
             if ($item['ACTION'] == 2) {
                 self::$commentsCnt[$item['ITEM_ID']]++;
             }
         }
         $date = new DateTime($item['DATE']);
         $item['DATE_FORMATED'] = $date->format('H:i d.m.Y');
         switch ($item['MODULE']) {
             case TASKS_IBLOCK_ID:
                 $item['LINK'] = crmEntitiesHelper::GetTaskUrl($item['ITEM_ID']);
                 break;
             case COMMENTS_IBLOCK_ID:
                 $item['LINK'] = '#';
                 break;
         }
         switch ($item['ACTION']) {
             case 1:
                 $item['TEXT_ACTION'] = 'Создана задача';
                 break;
             case 2:
                 $item['LINK'] .= '#bottom';
                 $item['TEXT_ACTION'] = 'Добавлен комментарий';
                 break;
             case 3:
                 $item['TEXT_ACTION'] = 'Изменён статус задачи';
                 break;
             case 4:
                 $item['TEXT_ACTION'] = 'Изменена задача';
                 break;
             case 5:
                 $item['TEXT_ACTION'] = 'Изменён комментарий';
                 break;
             case 6:
                 $item['TEXT_ACTION'] = 'Изменён статус комментария';
                 break;
             case 7:
                 $item['TEXT_ACTION'] = 'Комментарий удалён';
                 break;
         }
         $result[] = $item;
     }
     return $result;
 }
Exemplo n.º 3
0
Arquivo: index.php Projeto: kudin/crm
        if ($result = $res->GetNext()) {
            CIBlockElement::Delete($track);
            $summ = crmEntitiesHelper::recalcTaskTracking($result['PROPERTY_TASK_VALUE']);
            die(json_encode(array('summ' => $summ)));
        } else {
            die(json_encode(array('error' => 'Ошибка доступа к таймингу')));
        }
        break;
    case 'trackTime':
        $task = intval($_REQUEST['task']);
        if ($USER->iAmAProgrammerInTask($task)) {
            $desc = trim(TruncateText($_REQUEST['desc'], 250));
            $time = formatTime($_REQUEST['h'], MAX_TRACKING_TIME);
            if (!$time) {
                die(json_encode(array('error' => 'Введено неверное время')));
            }
            $el = new CIBlockElement();
            if ($newId = $el->Add(array("DATE_ACTIVE_FROM" => ConvertTimeStamp(time(), "SHORT"), "MODIFIED_BY" => $USER->GetID(), "IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => TRACKING_IBLOCK_ID, "NAME" => (strlen($desc) ? $desc : 'Без названия') . ' (' . $time . 'ч.)', "DETAIL_TEXT" => $desc, "ACTIVE" => "Y", "PROPERTY_VALUES" => array("HOURS" => $time, "TASK" => $task)))) {
                $summ = crmEntitiesHelper::recalcTaskTracking($task);
                die(json_encode(array('ok' => $newId, 'summ' => $summ)));
            } else {
                die(json_encode(array('error' => $el->LAST_ERROR)));
            }
        } else {
            die(json_encode(array('error' => 'Ошибка доступа к задаче')));
        }
        break;
    default:
        die(json_encode(array('error' => 'передан неверный параметр')));
        break;
}
Exemplo n.º 4
0
Arquivo: init.php Projeto: kudin/crm
 public static function getProjectsByThisUser()
 {
     if (self::$thisUserProjects === false) {
         self::$thisUserProjects = array();
         CModule::IncludeModule('iblock');
         global $USER;
         $arrFilter = array("IBLOCK_ID" => PROJECTS_IBLOCK_ID);
         $arrFilter = array_merge($USER->GetViewProjectsFilter(), $arrFilter);
         $res = CIBlockElement::GetList(array(), $arrFilter, false, false, array("ID"));
         while ($project = $res->GetNext()) {
             self::$thisUserProjects[] = $project["ID"];
         }
     }
     return self::$thisUserProjects;
 }
Exemplo n.º 5
0
            break;
        }
    }
    LocalRedirect($APPLICATION->GetCurDir() . '#comment' . intval($_REQUEST['id']));
}
/* delete comment */
if ($delete_comment = $_REQUEST['delete_comment']) {
    foreach ($arResult['COMMENTS'] as $comment) {
        if ($comment['ID'] == $delete_comment) {
            if ($comment['CREATED_BY'] == $arResult['USER_ID']) {
                $el = new CIBlockElement();
                $res = $el->Update($delete_comment, array("ACTIVE" => 'N'));
                crmEntitiesHelper::recalcCommentsCnt($arParams['ID']);
                $logger->add(array($arResult['TASK']['PROPS']['CUSTOMER']['VALUE'], $arResult['TASK']['PROPS']['PROGRAMMER']['VALUE']), $arParams['ID'], 'delete_comment', strip_tags($comment['~PREVIEW_TEXT']));
                ToolTip::Add('Комментарий удалён');
                crmEntitiesHelper::RecalcLastCommentDateTime($arParams['ID']);
            } else {
                ToolTip::AddError('Ошибка доступа к комментарию');
            }
            break;
        }
    }
    LocalRedirect($APPLICATION->GetCurDir());
}
/* tracking time */
$res = CIBlockElement::GetList(array("ID" => "ASC"), array("PROPERTY_TASK" => $arParams['ID'], "IBLOCK_ID" => TRACKING_IBLOCK_ID, "ACTIVE" => "Y"), false, false, array('DETAIL_TEXT', 'ID', 'DATE_CREATE', 'PROPERTY_HOURS'));
while ($ar_fields = $res->GetNext()) {
    $ar_fields['DATE_CREATE'] = CIBlockFormatProperties::DateFormat($arParams['DATE_FORMAT'], MakeTimeStamp($ar_fields['DATE_CREATE'], CSite::GetDateFormat()));
    $arResult['TRACKING'][] = $ar_fields;
}
$this->IncludeComponentTemplate();