/**
  * Retrieve statuses available for state
  * Get all possible statuses, or for specified state, or specified states array
  * Add labels by default. Return plain array of statuses, if no labels.
  *
  * @param mixed $state
  * @param bool $addLabels
  * @return array
  */
 public function getStateStatuses($state, $addLabels = true)
 {
     if ((int) Mage::helper('extensions')->getMagentoVersion() < 150) {
         return parent::getStateStatuses($state, $addLabels);
     }
     if (is_array($state)) {
         $key = implode('', $state) . $addLabels;
     } else {
         $key = $state . $addLabels;
     }
     if (isset($this->_stateStatuses[$key])) {
         return $this->_stateStatuses[$key];
     }
     $statuses = array();
     if (empty($state) || !is_array($state)) {
         $state = array($state);
     }
     foreach ($state as $_state) {
         if ($stateNode = $this->_getState($_state)) {
             $collection = Mage::getResourceModel('sales/order_status_collection')->addStateFilter($_state)->orderByLabel();
             foreach ($collection as $status) {
                 $code = $status->getStatus();
                 if ($addLabels) {
                     $statuses[$code] = $status->getStoreLabel();
                 } else {
                     $statuses[] = $code;
                 }
             }
         }
     }
     $this->_stateStatuses[$key] = $statuses;
     return $statuses;
 }
Example #2
0
 /**
  * Retrieve statuses available for state
  * Get all possible statuses, or for specified state, or specified states array
  * Add labels by default. Return plain array of statuses, if no labels.
  *
  * @param mixed $state
  * @param bool $addLabels
  * @return array
  */
 public function getStateStatuses($state, $addLabels = true)
 {
     $version = Mage::getVersion();
     $version = substr($version, 0, 5);
     $version = str_replace('.', '', $version);
     while (strlen($version) < 3) {
         $version .= "0";
     }
     if ((int) $version < 150) {
         return parent::getStateStatuses($state, $addLabels);
     }
     if (is_array($state)) {
         $key = implode('', $state) . $addLabels;
     } else {
         $key = $state . $addLabels;
     }
     if (isset($this->_stateStatuses[$key])) {
         return $this->_stateStatuses[$key];
     }
     $statuses = array();
     if (empty($state) || !is_array($state)) {
         $state = array($state);
     }
     foreach ($state as $_state) {
         if ($stateNode = $this->_getState($_state)) {
             $collection = Mage::getResourceModel('sales/order_status_collection')->addStateFilter($_state)->orderByLabel();
             foreach ($collection as $status) {
                 $code = $status->getStatus();
                 if ($addLabels) {
                     $statuses[$code] = $status->getStoreLabel();
                 } else {
                     $statuses[] = $code;
                 }
             }
         }
     }
     $this->_stateStatuses[$key] = $statuses;
     return $statuses;
 }