Beispiel #1
0
 /**
  * 
  * @return int|bool
  */
 public function saveInformation()
 {
     $dbAdapter = Zend_Db_Table_Abstract::getDefaultAdapter();
     $dbAdapter->beginTransaction();
     try {
         //if ( !$this->_validateClass() )
         //return false;
         $date = new Zend_Date();
         $this->_data['start_date'] = $date->set($this->_data['start_date'])->toString('yyyy-MM-dd');
         $this->_data['schedule_finish_date'] = $date->set($this->_data['schedule_finish_date'])->toString('yyyy-MM-dd');
         if (!empty($this->_data['real_finish_date'])) {
             $this->_data['real_finish_date'] = $date->set($this->_data['real_finish_date'])->toString('yyyy-MM-dd');
         }
         if (!empty($this->_data['student_payment'])) {
             $this->_data['student_payment'] = Zend_Locale_Format::getFloat($this->_data['student_payment'], array('locale' => 'en_US'));
         }
         if (!empty($this->_data['subsidy'])) {
             $this->_data['subsidy'] = Zend_Locale_Format::getFloat($this->_data['subsidy'], array('locale' => 'en_US'));
         }
         if (empty($this->_data['id_fefpstudentclass'])) {
             $history = 'REJISTRU  Klasse Formasaun - La Iha Proposta: %s';
             $this->_data['active'] = 1;
             $filters = array('fk_id_fefpeduinstitution' => $this->_data['fk_id_fefpeduinstitution'], 'fk_id_perscholarity' => $this->_data['fk_id_perscholarity'], 'fk_id_dec' => $this->_data['fk_id_dec'], 'start_date' => $this->_data['start_date'], 'schedule_finish_date' => $this->_data['schedule_finish_date'], 'active' => 1);
             $classIdentic = $this->_dbTable->fetchAll($filters, array('id_fefpstudentclass DESC'))->current();
             if (!empty($classIdentic)) {
                 $start = 1;
                 if (preg_match('/([0-9]+)$/i', $classIdentic->class_name, $match)) {
                     $start = (int) $match[1] + 1;
                 }
                 $this->_data['class_name'] .= ' - ' . $start;
             }
         } else {
             unset($this->_data['fk_id_fefpeduinstitution'], $this->_data['fk_id_dec']);
             if (empty($this->_data['fk_id_perscholarity'])) {
                 unset($this->_data['fk_id_perscholarity']);
             }
             $history = 'ATUALIZA  Klasse Formasaun - La Iha Proposta: %s';
         }
         $id = parent::_simpleSave();
         $history = sprintf($history, $id);
         $this->_sysAudit($history);
         $dbAdapter->commit();
         return $id;
     } catch (Exception $e) {
         $dbAdapter->rollBack();
         $this->_message->addMessage($this->_config->messages->error, App_Message::ERROR);
         return false;
     }
 }
Beispiel #2
0
 /**
  * Return a value for set, using some validations from the table data.
  *
  * @param string $type  Type of field.
  * @param mixed  $value Value to transform.
  *
  * @return mixed Sanitized value.
  */
 public static function set($type, $value)
 {
     switch ($type) {
         case 'int':
             $value = Cleaner::sanitize('integer', $value, 0);
             break;
         case 'float':
             $value = Cleaner::sanitize('float', $value, 0);
             if ($value !== false) {
                 $value = Zend_Locale_Format::getFloat($value, array('precision' => 2));
             } else {
                 $value = 0;
             }
             break;
         case 'date':
             $value = Cleaner::sanitize('date', $value);
             break;
         case 'time':
             $value = Cleaner::sanitize('time', $value);
             $value = date("H:i:s", Phprojekt_Converter_Time::userToUtc($value));
             break;
         case 'datetime':
         case 'timestamp':
             $value = Cleaner::sanitize('timestamp', $value);
             $value = date("Y-m-d H:i:s", Phprojekt_Converter_Time::userToUtc($value));
             break;
         case 'text':
             if (is_array($value)) {
                 // if given value for a text field is an array, it's from a MultiSelect field
                 $value = implode(',', $value);
             }
             // Run html sanitize only if the text contain some html code
             if (preg_match("/([\\<])([^\\>]{1,})*([\\>])/i", $value)) {
                 $value = Cleaner::sanitize('html', $value);
             } else {
                 $value = Cleaner::sanitize('string', $value);
             }
             break;
         default:
             $value = Cleaner::sanitize('string', $value);
             break;
     }
     return $value;
 }
Beispiel #3
0
 /**
  * 
  * @return int|bool
  */
 public function saveInformation()
 {
     $dbAdapter = Zend_Db_Table_Abstract::getDefaultAdapter();
     $dbAdapter->beginTransaction();
     try {
         $date = new Zend_Date();
         if (!empty($this->_data['date_start'])) {
             $this->_data['date_start'] = $date->set($this->_data['date_start'])->toString('yyyy-MM-dd');
         }
         if (!empty($this->_data['date_finish'])) {
             $this->_data['date_finish'] = $date->set($this->_data['date_finish'])->toString('yyyy-MM-dd');
         }
         if (!empty($this->_data['salary'])) {
             $this->_data['salary'] = Zend_Locale_Format::getFloat($this->_data['salary'], array('locale' => 'en_US'));
         }
         if (empty($this->_data['id_jobtraining'])) {
             $history = 'REJISTRU JOB TRAINING: %s';
             $this->_data['active'] = 1;
         } else {
             unset($this->_data['fk_id_dec']);
             $history = 'ATUALIZA JOB TRAINING: %s';
             $where = array('fk_id_jobtraining = ?' => $this->_data['id_jobtraining'], 'status = ?' => 0);
             $dbTrainee = App_Model_DbTable_Factory::get('JOBTraining_Trainee');
             $trainees = $dbTrainee->fetchAll($where);
             foreach ($trainees as $trainee) {
                 $trainee->date_start = $this->_data['date_start'];
                 $trainee->date_finish = $this->_data['date_finish'];
                 $trainee->duration = $this->_data['duration'];
                 $trainee->save();
             }
         }
         $id = parent::_simpleSave();
         $history = sprintf($history, $id);
         $this->_sysAudit($history);
         $dbAdapter->commit();
         return $id;
     } catch (Exception $e) {
         $dbAdapter->rollBack();
         $this->_message->addMessage($this->_config->messages->error, App_Message::ERROR);
         return false;
     }
 }
Beispiel #4
0
 /**
  * 
  * @return int|bool
  */
 public function saveInformation()
 {
     $dbAdapter = Zend_Db_Table_Abstract::getDefaultAdapter();
     $dbAdapter->beginTransaction();
     try {
         if (!$this->_validateJobVacancy()) {
             return false;
         }
         $date = new Zend_Date();
         $this->_data['registration_date'] = $date->set($this->_data['registration_date'])->toString('yyyy-MM-dd');
         $this->_data['open_date'] = $date->set($this->_data['open_date'])->toString('yyyy-MM-dd');
         $this->_data['close_date'] = $date->set($this->_data['close_date'])->toString('yyyy-MM-dd');
         if (!empty($this->_data['start_job_date'])) {
             $this->_data['start_job_date'] = $date->set($this->_data['start_job_date'])->toString('yyyy-MM-dd');
         }
         if (!empty($this->_data['finish_job_date'])) {
             $this->_data['finish_job_date'] = $date->set($this->_data['finish_job_date'])->toString('yyyy-MM-dd');
         }
         $this->_data['start_salary'] = Zend_Locale_Format::getFloat(empty($this->_data['start_salary']) ? 0 : $this->_data['start_salary'], array('locale' => 'en_US'));
         $this->_data['finish_salary'] = Zend_Locale_Format::getFloat(empty($this->_data['finish_salary']) ? 0 : $this->_data['finish_salary'], array('locale' => 'en_US'));
         $this->_data['additional_salary'] = Zend_Locale_Format::getFloat(empty($this->_data['additional_salary']) ? 0 : $this->_data['additional_salary'], array('locale' => 'en_US'));
         $this->_data['post'] = '-';
         if (empty($this->_data['id_jobvacancy'])) {
             $history = 'REJISTRU VAGA EMPREGU NUMERU: %s - DADOS PRICIPAIS VAGA DE EMPREGO REGISTRADO';
             $this->_data['active'] = 1;
         } else {
             $history = 'ATUALIZADO VAGA EMPREGU NUMERU: %s - DADOS PRICIPAIS VAGA DE EMPREGO ATUALIZADO';
         }
         $id = parent::_simpleSave();
         $history = sprintf($history, $id);
         $this->_sysAudit($history);
         $dbAdapter->commit();
         return $id;
     } catch (Exception $e) {
         $dbAdapter->rollBack();
         $this->_message->addMessage($this->_config->messages->error, App_Message::ERROR);
         return false;
     }
 }
    /**
     * test getFloat
     * expected exception
     */
    public function testgetFloat()
    {
        try {
            $value = Zend_Locale_Format::getFloat('nocontent');
            $this->fail("exception expected");
        } catch (Zend_Locale_Exception $e) {
            // success
        }

        $this->assertEquals(       0,         Zend_Locale_Format::getFloat(       0        ));
        $this->assertEquals(-1234567,         Zend_Locale_Format::getFloat(-1234567        ));
        $this->assertEquals( 1234567,         Zend_Locale_Format::getFloat( 1234567        ));
        $this->assertEquals(       0.1234567, Zend_Locale_Format::getFloat(       0.1234567));
        $this->assertEquals(-1234567.12345,   Zend_Locale_Format::getFloat(-1234567.12345  ));
        $this->assertEquals( 1234567.12345,   Zend_Locale_Format::getFloat( 1234567.12345  ));

        $options = array('locale' => 'de');
        $this->assertEquals(       0,         Zend_Locale_Format::getFloat(         '0',         $options));
        $this->assertEquals(-1234567,         Zend_Locale_Format::getFloat(  '-1234567',         $options));
        $this->assertEquals( 1234567,         Zend_Locale_Format::getFloat(   '1234567',         $options));
        $this->assertEquals(       0.1234567, Zend_Locale_Format::getFloat(         '0,1234567', $options));
        $this->assertEquals(-1234567.12345,   Zend_Locale_Format::getFloat('-1.234.567,12345',   $options));
        $this->assertEquals( 1234567.12345,   Zend_Locale_Format::getFloat( '1.234.567,12345',   $options));

        $options = array('locale' => 'de_AT');
        $this->assertEquals(       0,         Zend_Locale_Format::getFloat(         '0',         $options));
        $this->assertEquals(-1234567,         Zend_Locale_Format::getFloat(  '-1234567',         $options));
        $this->assertEquals( 1234567,         Zend_Locale_Format::getFloat( '1.234.567',         $options));
        $this->assertEquals(       0.1234567, Zend_Locale_Format::getFloat(         '0,1234567', $options));
        $this->assertEquals(-1234567.12345,   Zend_Locale_Format::getFloat('-1.234.567,12345',   $options));
        $this->assertEquals( 1234567.12345,   Zend_Locale_Format::getFloat( '1.234.567,12345',   $options));

        $options = array('precision' => 2, 'locale' => 'de_AT');
        $this->assertEquals(       0,    Zend_Locale_Format::getFloat(         '0',         $options));
        $this->assertEquals(-1234567,    Zend_Locale_Format::getFloat(  '-1234567',         $options));
        $this->assertEquals( 1234567,    Zend_Locale_Format::getFloat( '1.234.567',         $options));
        $this->assertEquals(       0.12, Zend_Locale_Format::getFloat(         '0,1234567', $options));
        $this->assertEquals(-1234567.12, Zend_Locale_Format::getFloat('-1.234.567,12345',   $options));
        $this->assertEquals( 1234567.12, Zend_Locale_Format::getFloat( '1.234.567,12345',   $options));

        $options = array('precision' => 7, 'locale' => 'de_AT');
        $this->assertEquals('1234567.12345', Zend_Locale_Format::getFloat('1.234.567,12345', $options));
    }
Beispiel #6
0
 /**
  * Nadpisana metoda update'u wiersza tabeli z uwzględnieniem mailera
  * @param array $data
  * @return type
  */
 public function setFromArray(array $data)
 {
     $headerMappings = $this->getHeaderMappings();
     if (isset($data['send_mail'])) {
         $this->send_mail = $data['send_mail'];
         unset($data['send_mail']);
     }
     foreach ($data as $key => $value) {
         if (isset($headerMappings[$key]['format'])) {
             switch ($headerMappings[$key]['format']) {
                 case 'currency':
                     $data[$key] = Zend_Locale_Format::getFloat($value);
                     break;
             }
         }
         if ($value == null) {
             $data[$key] = null;
         }
     }
     parent::setFromArray($data);
     if (isset($data['id_state']) && $this->send_mail) {
         $mailer = new Logic_Mailer(Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view'), $translate);
         $userModel = new User();
         //receiver data
         if (get_called_class() === 'Row_DelegationSettlement') {
             if ($data['id_state'] == Logic_Settlements::STATE_APPROVED_2) {
                 $receiverRow = $userModel->findOne($this->settlement_by);
             } elseif (!is_null($this->created_by)) {
                 $receiverRow = $userModel->findOne($this->created_by);
             } else {
                 $receiverRow = $userModel->findOne($this->settlement_by);
             }
             $delegation = $this->findParentRow('Delegation');
         } else {
             if (get_called_class() === 'Row_Delegation') {
                 if ($data['id_state'] == Logic_Settlements::STATE_APPROVED) {
                     $receiverRow = $userModel->findOne($this->acceptance_by);
                 } else {
                     $receiverRow = $userModel->findOne($this->created_by);
                 }
                 $params['deleg_no'] = $this->deleg_no;
             } else {
                 return $this;
             }
         }
         $params['email'] = $receiverRow->email;
         //diee($params['email']);
         //sender data
         $senderRow = Zend_Auth::getInstance()->getIdentity();
         $params['user_full_name'] = $senderRow->first_name . ' ' . $senderRow->surname;
         $params['departament'] = $senderRow->department;
         $params['KOD_MPK'] = $senderRow->jednostka['symbol'];
         //email body data
         $params['id'] = $this->id;
         if (isset($data['deleg_no'])) {
             $params['deleg_no'] = $data['deleg_no'];
         } elseif (isset($this->deleg_no)) {
             $params['deleg_no'] = $this->deleg_no;
         } elseif (isset($delegation->deleg_no)) {
             $params['deleg_no'] = $delegation->deleg_no;
         }
         try {
             switch ($data['id_state']) {
                 case Logic_Settlements::STATE_ACCEPTED:
                     $mailer->acceptedByDelegation($params);
                     break;
                 case Logic_Settlements::STATE_APPROVED:
                     $mailer->acceptDelegation($params);
                     break;
                 case Logic_Settlements::STATE_APPROVED_2:
                     $mailer->settleDelegation($params);
                     break;
                 case Logic_Settlements::STATE_CORRECTION:
                     $mailer->correctDelegation($params);
                     break;
                 case Logic_Settlements::STATE_SETTLED:
                     $mailer->settledDelegation($params);
                     break;
                 case Logic_Settlements::STATE_APPROVED_ACCOUNTING:
                     $mailer->approvedDelegation($params);
                     break;
                     //                case Logic_Settlements::STATE_SETTLED
             }
         } catch (Exception $e) {
             $messenger = new Base_View_Helper_Messenger();
             $messenger->error($e->getMessage());
         }
     }
     return $this;
 }
Beispiel #7
0
 public function testShortNotation()
 {
     $this->assertEquals(0.12345, Zend_Locale_Format::getNumber(0.12345));
     $options = array('locale' => 'de');
     $this->assertEquals(0.12345, Zend_Locale_Format::getNumber(',12345', $options));
     $options = array('locale' => 'de_AT');
     $this->assertEquals(0.12345, Zend_Locale_Format::getNumber(',12345', $options));
     $this->assertEquals('0,75', Zend_Locale_Format::toNumber(0.75, array('locale' => 'de_DE', 'precision' => 2)));
     $this->assertTrue(Zend_Locale_Format::isNumber(',12345', array('locale' => 'de_AT')));
     $this->assertEquals(0.12345, Zend_Locale_Format::getFloat(0.12345));
     $options = array('locale' => 'de');
     $this->assertEquals(0.12345, Zend_Locale_Format::getFloat(',12345', $options));
     $options = array('locale' => 'de_AT');
     $this->assertEquals(0.12345, Zend_Locale_Format::getFloat(',12345', $options));
     $options = array('locale' => 'de_AT');
     $this->assertEquals('0,12345', Zend_Locale_Format::toFloat(0.12345, $options));
     $options = array('locale' => 'ar_QA');
     $this->assertEquals('0,12345', Zend_Locale_Format::toFloat(0.12345, $options));
     $this->assertTrue(Zend_Locale_Format::isFloat(',12345', array('locale' => 'de_AT')));
     $this->assertEquals(0, Zend_Locale_Format::getInteger(0.1234567));
     $options = array('locale' => 'de');
     $this->assertEquals(0, Zend_Locale_Format::getInteger(',12345', $options));
     $options = array('locale' => 'de_AT');
     $this->assertEquals(0, Zend_Locale_Format::getInteger(',12345', $options));
     $this->assertEquals('0', Zend_Locale_Format::toInteger(0.123, array('locale' => 'de')));
     $options = array('locale' => 'de_AT');
     $this->assertEquals('0', Zend_Locale_Format::toInteger(0.12345, $options));
     $this->assertFalse(Zend_Locale_Format::isInteger(',12345', array('locale' => 'de_AT')));
     $options = array('locale' => 'de_AT');
     $this->assertEquals('0,567', Zend_Locale_Format::toNumber(0.5669999999999999, $options));
 }
 /**
  * test positive float seperation language locale precision
  * expected integer
  */
 public function testRegionSeperatedPositiveFloatPrecAdd()
 {
     $value = Zend_Locale_Format::getFloat('1.234.567,12345', 7, 'de_AT');
     $this->assertEquals($value, '1234567.12345', "value 1234567.12345 expected");
 }
Beispiel #9
0
 /**
  * Reads a localized value, normalizes and returns it.
  * Returns an empty string if no value is passed.
  * @param mixed $value
  * @param string $type (boolean|date|time|integer|float|decimal|currency)
  * @return mixed
  */
 private function _normalize($value, $type, $num_of_decimals)
 {
     if (strlen($value) == 0) {
         return '';
     }
     switch ($type) {
         case 'boolean':
             $yes_no = Zend_Locale_Data::getContent($this->_locale_engine, 'questionstrings');
             $yes_regexp = '/^(' . str_replace(':', '|', $yes_no['yes']) . ')$/i';
             if (preg_match($yes_regexp, $value)) {
                 return 1;
             }
             return 0;
         case 'date':
             $date = Zend_Locale_Format::getDate($value, array('locale' => $this->_locale_engine, 'fix_date' => true));
             $date['month'] = str_pad($date['month'], 2, 0, STR_PAD_LEFT);
             $date['day'] = str_pad($date['day'], 2, 0, STR_PAD_LEFT);
             return "{$date['year']}-{$date['month']}-{$date['day']}";
         case 'time':
             $date_format = Zend_Locale_Format::getTimeFormat($this->_locale_engine);
             $date = Zend_Locale_Format::getDate($value, array('date_format' => $date_format, 'locale' => $this->_locale_engine));
             if (!isset($date['hour'])) {
                 $date['hour'] = '00';
             }
             if (!isset($date['minute'])) {
                 $date['minute'] = '00';
             }
             if (!isset($date['second'])) {
                 $date['second'] = '00';
             }
             return "{$date['hour']}:{$date['minute']}:{$date['second']}";
         case 'datetime':
             $date = Zend_Locale_Format::getDateTime($value, array('locale' => $this->_locale_engine, 'fix_date' => true));
             $date['month'] = str_pad($date['month'], 2, 0, STR_PAD_LEFT);
             $date['day'] = str_pad($date['day'], 2, 0, STR_PAD_LEFT);
             $date['hour'] = str_pad($date['hour'], 2, 0, STR_PAD_LEFT);
             $date['minute'] = str_pad($date['minute'], 2, 0, STR_PAD_LEFT);
             $date['second'] = str_pad($date['second'], 2, 0, STR_PAD_LEFT);
             return "{$date['year']}-{$date['month']}-{$date['day']} {$date['hour']}:{$date['minute']}:{$date['second']}";
             break;
         case 'integer':
             return Zend_Locale_Format::getInteger($value, array('locale' => $this->_locale_engine));
         case 'float':
             if ($num_of_decimals === null) {
                 $num_of_decimals = 3;
             }
             return Zend_Locale_Format::getFloat($value, array('precision' => $num_of_decimals, 'locale' => $this->_locale_engine));
         case 'decimal':
             if ($num_of_decimals === null) {
                 $num_of_decimals = 2;
             }
             return Zend_Locale_Format::getFloat($value, array('precision' => $num_of_decimals, 'locale' => $this->_locale_engine));
     }
     return $value;
 }
Beispiel #10
0
 /**
  * test getFloat
  * expected exception
  */
 public function testgetFloat()
 {
     try {
         $value = Zend_Locale_Format::getFloat('nocontent');
         $this->fail("exception expected");
     } catch (Zend_Locale_Exception $e) {
         // success
     }
     $this->assertEquals(Zend_Locale_Format::getFloat(0), 0, "value 0 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat(-1234567), -1234567, "value -1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat(1234567), 1234567, "value 1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat(0.1234567), 0.1234567, "value 0.1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat(-1234567.12345), -1234567.12345, "value -1234567.12345 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat(1234567.12345), 1234567.12345, "value 1234567.12345 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('0', 'de'), 0, "value 0 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('-1234567', 'de'), -1234567, "value -1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('1234567', 'de'), 1234567, "value 1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('0,1234567', 'de'), 0.1234567, "value 0.1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('-1.234.567,12345', 'de'), -1234567.12345, "value -1234567.12345 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('1.234.567,12345', 'de'), 1234567.12345, "value 1234567.12345 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('0', 'de_AT'), 0, "value 0 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('-1234567', 'de_AT'), -1234567, "value -1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('1.234.567', 'de_AT'), 1234567, "value 1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('0,1234567', 'de_AT'), 0.1234567, "value 0.1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('-1.234.567,12345', 'de_AT'), -1234567.12345, "value -1234567.12345 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('1.234.567,12345', 'de_AT'), 1234567.12345, "value 1234567.12345 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('0', 2, 'de_AT'), 0, "value 0 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('-1234567', 2, 'de_AT'), -1234567, "value -1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('1.234.567', 2, 'de_AT'), 1234567, "value 1234567 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('0,1234567', 2, 'de_AT'), 0.12, "value 0.12 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('-1.234.567,12345', 2, 'de_AT'), -1234567.12, "value -1234567.12 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('1.234.567,12345', 2, 'de_AT'), 1234567.12, "value 1234567.12 expected");
     $this->assertEquals(Zend_Locale_Format::getFloat('1.234.567,12345', 7, 'de_AT'), '1234567.12345', "value 1234567.12345 expected");
 }
Beispiel #11
0
 /**
  * Formats filesize with specified precision
  *
  * @param integer $fileSize Filesize in bytes
  * @param integer $precision Precision
  * @param string $norm Which norm use - 'traditional' (1 KB = 2^10 B), 'si' (1 KB = 10^3 B), 'iec' (1 KiB = 2^10 B)
  * @param string $type Defined export type
  */
 public function fileSize($fileSize, $precision = 0, $norm = 'traditional', $type = null)
 {
     try {
         require_once 'Zend/Registry.php';
         $locale = Zend_Registry::get('Zend_Locale');
         require_once 'Zend/Locale.php';
         if (!$locale instanceof Zend_Locale) {
             require_once 'Zend/Exception.php';
             throw new Zend_Exception('Locale is not set correctly.');
         }
         $isLocaleSet = true;
     } catch (Zend_Exception $e) {
         $isLocaleSet = false;
         $locale = null;
     }
     if ($isLocaleSet) {
         /**
          * @see Zend_Locale_Math
          */
         require_once 'Zend/Locale/Format.php';
         //get localised input value
         $fileSize = Zend_Locale_Format::getFloat($fileSize, array('locale' => $locale));
     } else {
         $fileSize = floatval($fileSize);
     }
     $m = new Zend_Measure_Binary($fileSize, null, $locale);
     $m->setType('BYTE');
     if (null === $norm) {
         $norm = 'traditional';
     }
     if (isset($type)) {
         $m->setType($type);
     } elseif ($norm === 'traditional') {
         if ($fileSize >= $this->_getUnitSize('TERABYTE')) {
             $m->setType(Zend_Measure_Binary::TERABYTE);
         } else {
             if ($fileSize >= $this->_getUnitSize('GIGABYTE')) {
                 $m->setType(Zend_Measure_Binary::GIGABYTE);
             } else {
                 if ($fileSize >= $this->_getUnitSize('MEGABYTE')) {
                     $m->setType(Zend_Measure_Binary::MEGABYTE);
                 } else {
                     if ($fileSize >= $this->_getUnitSize('KILOBYTE')) {
                         $m->setType(Zend_Measure_Binary::KILOBYTE);
                     }
                 }
             }
         }
     } elseif ($norm === 'si') {
         if ($fileSize >= $this->_getUnitSize('TERABYTE_SI')) {
             $m->setType(Zend_Measure_Binary::TERABYTE_SI);
         } else {
             if ($fileSize >= $this->_getUnitSize('GIGABYTE_SI')) {
                 $m->setType(Zend_Measure_Binary::GIGABYTE_SI);
             } else {
                 if ($fileSize >= $this->_getUnitSize('MEGABYTE_SI')) {
                     $m->setType(Zend_Measure_Binary::MEGABYTE_SI);
                 } else {
                     if ($fileSize >= $this->_getUnitSize('KILOBYTE_SI')) {
                         $m->setType(Zend_Measure_Binary::KILOBYTE_SI);
                     }
                 }
             }
         }
     } elseif ($norm === 'iec') {
         if ($fileSize >= $this->_getUnitSize('TEBIBYTE')) {
             $m->setType(Zend_Measure_Binary::TEBIBYTE);
         } else {
             if ($fileSize >= $this->_getUnitSize('GIBIBYTE')) {
                 $m->setType(Zend_Measure_Binary::GIBIBYTE);
             } else {
                 if ($fileSize >= $this->_getUnitSize('MEBIBYTE')) {
                     $m->setType(Zend_Measure_Binary::MEBIBYTE);
                 } else {
                     if ($fileSize >= $this->_getUnitSize('KIBIBYTE')) {
                         $m->setType(Zend_Measure_Binary::KIBIBYTE);
                     }
                 }
             }
         }
     }
     return $m->toString($precision);
 }
 /**
  * Defined by Zend_Filter_Interface
  *
  * Normalizes the given input
  *
  * @param  string $value Value to normalized
  * @return string|array The normalized value
  */
 public function filter($value)
 {
     if ($this->_options['date_format'] === null && strpos($value, ':') !== false) {
         // Special case, no date format specified, detect time input
         return Zend_Locale_Format::getTime($value, $this->_options);
     } else {
         if (Zend_Locale_Format::checkDateFormat($value, $this->_options)) {
             // Detect date or time input
             return Zend_Locale_Format::getDate($value, $this->_options);
         } else {
             if ($this->_options['precision'] === 0 && Zend_Locale_Format::isInteger($value, $this->_options)) {
                 // Detect integer
                 return Zend_Locale_Format::getInteger($value, $this->_options);
             } else {
                 if ($this->_options['precision'] === null && Zend_Locale_Format::isFloat($value, $this->_options)) {
                     // Detect float
                     return Zend_Locale_Format::getFloat($value, $this->_options);
                 } else {
                     if (Zend_Locale_Format::isNumber($value, $this->_options)) {
                         // Detect all other numbers
                         return Zend_Locale_Format::getNumber($value, $this->_options);
                     }
                 }
             }
         }
     }
     return $value;
 }
 public function calculajurosAction()
 {
     Zend_Layout::getMvcInstance()->disableLayout();
     $this->_helper->viewRenderer->setNoRender(true);
     $post = $this->getRequest()->getPost();
     $id = $post['id'];
     $data_devolucao = $post['data'];
     if (is_numeric($data = $this->facade->calculaJurosBusiness($id, $data_devolucao))) {
         $locale = new Zend_Locale('pt_BR');
         echo "{'valor':'" . Zend_Locale_Format::getFloat($data, array('locale' => $locale, 'precision' => 1)) . "'}";
     } else {
         echo "{'valor':''}";
     }
 }
Beispiel #14
0
 /**
  * Defined by Zend_Filter_Interface
  *
  * Returns (float) $value
  *
  * @param  string $value
  * @return float
  */
 public function filter($value)
 {
     return (float) Zend_Locale_Format::getFloat($value, $this->_options);
 }
 public function parseValue($ps_value, $pa_element_info, $pa_options = null)
 {
     $ps_value = trim($ps_value);
     $va_settings = $this->getSettingValuesFromElementArray($pa_element_info, array('minValue', 'maxValue', 'mustNotBeBlank'));
     if (strlen($ps_value) == 0) {
         if ((bool) $va_settings['mustNotBeBlank']) {
             $this->postError(1970, _t('%1 must not be empty', $pa_element_info['displayLabel']), 'CurrencyAttributeValue->parseValue()');
             return false;
         }
         return null;
     }
     // it's either "<something><decimal>" ($1000) or "<decimal><something>" (1000 EUR) or just "<decimal>" with an implicit <something>
     // either
     if (preg_match("!^([^\\d]+)([\\d\\.\\,]+)\$!", trim($ps_value), $va_matches)) {
         $vs_decimal_value = $va_matches[2];
         $vs_currency_specifier = trim($va_matches[1]);
         // or 1
     } else {
         if (preg_match("!^([\\d\\.\\,]+)([^\\d]+)\$!", trim($ps_value), $va_matches)) {
             $vs_decimal_value = $va_matches[1];
             $vs_currency_specifier = trim($va_matches[2]);
             // or 2
         } else {
             if (preg_match("!(^[\\d\\,\\.]+\$)!", trim($ps_value), $va_matches)) {
                 $vs_decimal_value = $va_matches[1];
                 $vs_currency_specifier = null;
                 // derp
             } else {
                 $this->postError(1970, _t('%1 is not a valid currency value; be sure to include a currency symbol', $pa_element_info['displayLabel']), 'CurrencyAttributeValue->parseValue()');
                 return false;
             }
         }
     }
     if (!$vs_currency_specifier) {
         // this respects the global UI locale which is set using Zend_Locale
         $o_currency = new Zend_Currency();
         $vs_currency_specifier = $o_currency->getShortName();
     }
     // get UI locale from registry and convert string to actual php float
     // based on rules for this locale (e.g. most non-US locations use 10.000,00 as notation)
     if (Zend_Registry::isRegistered("Zend_Locale")) {
         $o_locale = Zend_Registry::get('Zend_Locale');
     } else {
         $o_locale = new Zend_Locale('en_US');
     }
     try {
         $vn_value = Zend_Locale_Format::getFloat($vs_decimal_value, array('locale' => $o_locale, 'precision' => 2));
     } catch (Zend_Locale_Exception $e) {
         $this->postError(1970, _t('%1 does not use a valid decimal notation for your locale', $pa_element_info['displayLabel']), 'CurrencyAttributeValue->parseValue()');
         return false;
     }
     switch ($vs_currency_specifier) {
         case '$':
             $o_config = Configuration::load();
             $vs_currency_specifier = ($vs_dollars_are_this = $o_config->get('default_dollar_currency')) ? $vs_dollars_are_this : 'USD';
             break;
         case '¥':
             $vs_currency_specifier = 'JPY';
             break;
         case '£':
             $vs_currency_specifier = 'GBP';
             break;
         case '€':
             $vs_currency_specifier = 'EUR';
             break;
         default:
             $vs_currency_specifier = strtoupper($vs_currency_specifier);
             break;
     }
     if (strlen($vs_currency_specifier) != 3) {
         $this->postError(1970, _t('Currency specified for %1 does not appear to be valid', $pa_element_info['displayLabel']), 'CurrencyAttributeValue->parseValue()');
         return false;
     }
     if ($vn_value < 0) {
         $this->postError(1970, _t('%1 must not be negative', $pa_element_info['displayLabel']), 'CurrencyAttributeValue->parseValue()');
         return false;
     }
     if ($vn_value < floatval($va_settings['minValue'])) {
         // value is too low
         $this->postError(1970, _t('%1 must be at least %2', $pa_element_info['displayLabel'], $va_settings['minValue']), 'CurrencyAttributeValue->parseValue()');
         return false;
     }
     if (floatval($va_settings['maxValue']) > 0 && $vn_value > floatval($va_settings['maxValue'])) {
         // value is too high
         $this->postError(1970, _t('%1 must be less than %2', $pa_element_info['displayLabel'], $va_settings['maxValue']), 'CurrencyAttributeValue->parseValue()');
         return false;
     }
     return array('value_longtext1' => $vs_currency_specifier, 'value_decimal1' => $vn_value);
 }