Beispiel #1
0
 public static function RenderProgressBar($params)
 {
     $entityTypeID = isset($params['ENTITY_TYPE_ID']) ? intval($params['ENTITY_TYPE_ID']) : 0;
     //$entityTypeName = CCrmOwnerType::ResolveName($entityTypeID);
     $infos = isset($params['INFOS']) ? $params['INFOS'] : null;
     if (!is_array($infos) || empty($infos)) {
         if ($entityTypeID === CCrmOwnerType::Lead) {
             if (!self::$LEAD_STATUSES) {
                 self::$LEAD_STATUSES = CCrmStatus::GetStatus('STATUS');
             }
             $infos = self::$LEAD_STATUSES;
         } elseif ($entityTypeID === CCrmOwnerType::Deal) {
             if (!self::$DEAL_STAGES) {
                 self::$DEAL_STAGES = CCrmStatus::GetStatus('DEAL_STAGE');
             }
             $infos = self::$DEAL_STAGES;
         } elseif ($entityTypeID === CCrmOwnerType::Invoice) {
             if (!self::$INVOICE_STATUSES) {
                 self::$INVOICE_STATUSES = CCrmStatus::GetStatus('INVOICE_STATUS');
             }
             $infos = self::$INVOICE_STATUSES;
         }
     }
     if (!is_array($infos) || empty($infos)) {
         return;
     }
     $currentInfo = null;
     $currentID = isset($params['CURRENT_ID']) ? $params['CURRENT_ID'] : '';
     if ($currentID !== '' && isset($infos[$currentID])) {
         $currentInfo = $infos[$currentID];
     }
     $currentSort = is_array($currentInfo) && isset($currentInfo['SORT']) ? intval($currentInfo['SORT']) : -1;
     $finalID = isset($params['FINAL_ID']) ? $params['FINAL_ID'] : '';
     if ($finalID === '') {
         if ($entityTypeID === CCrmOwnerType::Lead) {
             $finalID = 'CONVERTED';
         } elseif ($entityTypeID === CCrmOwnerType::Deal) {
             $finalID = 'WON';
         } elseif ($entityTypeID === CCrmOwnerType::Invoice) {
             $finalID = 'P';
         }
     }
     $finalInfo = null;
     if ($finalID !== '' && isset($infos[$finalID])) {
         $finalInfo = $infos[$finalID];
     }
     $finalSort = is_array($finalInfo) && isset($finalInfo['SORT']) ? intval($finalInfo['SORT']) : -1;
     $layout = isset($params['LAYOUT']) ? strtolower($params['LAYOUT']) : 'small';
     $wrapperClass = "crm-list-stage-bar-{$layout}";
     if ($currentSort === $finalSort) {
         $wrapperClass .= ' crm-list-stage-end-good';
     } elseif ($currentSort > $finalSort) {
         $wrapperClass .= ' crm-list-stage-end-bad';
     }
     //$prefix = isset($params['PREFIX']) ? $params['PREFIX'] : '';
     //$entityID = isset($params['ENTITY_ID']) ? intval($params['ENTITY_ID']) : 0;
     //$controlID = $entityTypeName !== '' && $entityID > 0
     //	? "{$prefix}{$entityTypeName}_{$entityID}" : uniqid($prefix);
     $wrapperID = isset($params['WRAPPER_ID']) ? $params['WRAPPER_ID'] : '';
     $tableClass = "crm-list-stage-bar-table-{$layout}";
     echo '<div class="', $wrapperClass, '" style="width:89%;"', $wrapperID !== '' ? ' id="' . htmlspecialcharsbx($wrapperID) . '"' : '', '><table class="', $tableClass, '"><tbody><tr>';
     foreach ($infos as &$info) {
         $ID = isset($info['STATUS_ID']) ? $info['STATUS_ID'] : '';
         $sort = isset($info['SORT']) ? intval($info['SORT']) : 0;
         if ($sort > $finalSort) {
             break;
         }
         echo '<td class="crm-list-stage-bar-part', $sort <= $currentSort ? ' crm-list-stage-passed' : '', '">', '<div class="crm-list-stage-bar-block" data-progress-step-id="' . htmlspecialcharsbx(strtolower($ID)) . '"><div class="crm-list-stage-bar-btn"></div></div>', '<input class="crm-list-stage-bar-block-sort" type="hidden" value="', $sort, '" />', '</td>';
     }
     unset($info);
     echo '</tr></tbody></table></div>';
 }