Esempio n. 1
0
 /**
  * Formata um dado de acordo com o tipo e a máscara definido
  * que será apresentado para o usuário
  *
  * @param string $value
  * @param string $format
  * @param string $locale
  * @return string
  */
 public function format($value, $format = null, $locale = null)
 {
     if ($format === null) {
         $format = $this->_mask;
     }
     if (!is_object($this->_mapper)) {
         if ($this->_mapper != '') {
             $this->_mapper = new $this->_mapper();
         }
     }
     if (is_object($this->_mapper)) {
         $columnName = substr($this->_index, strpos($this->_index, '.') + 1);
         return $this->_mapper->format($value, $columnName, $format, $locale);
     } else {
         $type = $this->getType();
         if ($type == 'Number' || $type == 'Numeric' || $type == 'Integer') {
             return ZendT_Type_Number::fromIso($value, $locale)->get($format);
         } else {
             if ($type == 'Date' || $type == 'DateTime') {
                 if ($format == '' || $format === null) {
                     if ($type == 'Date') {
                         $format = 'dd/MM/YYYY';
                     } else {
                         $format = 'dd/MM/YYYY HH:mm:s';
                     }
                 }
                 return ZendT_Type_Date::fromIso($value, $locale)->get($format);
             } else {
                 if ($this->_mask) {
                     return ZendT_Format::string($value, $this->_mask);
                 } else {
                     return $value;
                 }
             }
         }
     }
 }
Esempio n. 2
0
 /**
  * Formata os dados do array antes de retornar
  *
  * @param array|stdClass $row 
  */
 private function _formatRow(&$row)
 {
     foreach ($row as $key => $value) {
         $key = strtolower($key);
         $mapperName = '';
         if (isset($this->_columnMappers[$key]) && $this->_columnMappers[$key]['mapper']) {
             $mapperName = $this->_columnMappers[$key]['mapper'];
             $columnName = $this->_columnMappers[$key]['column'];
         } else {
             $mapperName = $this->_columnMappers['default']['mapper'];
             $columnName = $key;
         }
         if (!$mapperName) {
             try {
                 throw new ZendT_Exception('Chave com mapper errado ' . $key);
             } catch (ZendT_Exception $ex) {
                 echo nl2br($ex->getTraceAsString());
             }
         }
         $_type = $this->_getZendTType($mapperName, $columnName, $value);
         if ($_type instanceof ZendT_Type) {
             $_type->setValueFromDb($value);
         } else {
             $app = getenv('APPLICATION_ENV');
             if ($app == 'production' || $app == '' || 1 == 1) {
                 $_type = new ZendT_Type_Number($value);
             } else {
                 throw new ZendT_Exception('Não definido o mapeamento para a coluna "' . $key . '" ');
             }
         }
         /**
          * 
          */
         if ($this->_type) {
             $row[$key] = clone $_type;
         } else {
             $row[$key] = $_type->get();
         }
     }
 }
Esempio n. 3
0
 /**
  * Transforma o valor para o formato de armazenamento do Banco de Dados
  * 
  * @param string|int|ZendT_Type_Date|ZendT_Type_Number $value
  * @return \ZendT_Type_Number 
  */
 private function getValueToDb($value)
 {
     if ($value instanceof ZendT_Type) {
         return $value->getValueToDb();
     } else {
         return $value;
     }
 }