@@ -32,8 +32,9 @@ |
||
| 32 | 32 | 'id_usuario' => $this->getIdUser(), |
| 33 | 33 | ); |
| 34 | 34 | |
| 35 | - if (isset($id_cliente)) |
|
| 36 | - $conditions['id'] = $id_cliente; |
|
| 35 | + if (isset($id_cliente)) { |
|
| 36 | + $conditions['id'] = $id_cliente; |
|
| 37 | + } |
|
| 37 | 38 | |
| 38 | 39 | |
| 39 | 40 | $cliente = $this->Cliente->find('all', |
@@ -70,8 +70,7 @@ |
||
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | return true; |
| 73 | - } |
|
| 74 | - catch (Exception $e) |
|
| 73 | + } catch (Exception $e) |
|
| 75 | 74 | { |
| 76 | 75 | throw new Exception("Error Processing Request", 1); |
| 77 | 76 | } |
@@ -60,8 +60,9 @@ discard block |
||
| 60 | 60 | if ($this->_currentCellIsDirty) { |
| 61 | 61 | $this->_currentObject->detach(); |
| 62 | 62 | |
| 63 | - if (!$this->_DBHandle->queryExec("INSERT OR REPLACE INTO kvp_".$this->_TableName." VALUES('".$this->_currentObjectID."','".sqlite_escape_string(serialize($this->_currentObject))."')")) |
|
| 64 | - throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 63 | + if (!$this->_DBHandle->queryExec("INSERT OR REPLACE INTO kvp_".$this->_TableName." VALUES('".$this->_currentObjectID."','".sqlite_escape_string(serialize($this->_currentObject))."')")) { |
|
| 64 | + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 65 | + } |
|
| 65 | 66 | $this->_currentCellIsDirty = false; |
| 66 | 67 | } |
| 67 | 68 | $this->_currentObjectID = $this->_currentObject = null; |
@@ -162,8 +163,9 @@ discard block |
||
| 162 | 163 | |
| 163 | 164 | // Check if the requested entry exists in the cache |
| 164 | 165 | $query = "DELETE FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; |
| 165 | - if (!$this->_DBHandle->queryExec($query)) |
|
| 166 | - throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 166 | + if (!$this->_DBHandle->queryExec($query)) { |
|
| 167 | + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 168 | + } |
|
| 167 | 169 | |
| 168 | 170 | $this->_currentCellIsDirty = false; |
| 169 | 171 | } // function deleteCacheData() |
@@ -177,8 +179,9 @@ discard block |
||
| 177 | 179 | public function getCellList() { |
| 178 | 180 | $query = "SELECT id FROM kvp_".$this->_TableName; |
| 179 | 181 | $cellIdsResult = $this->_DBHandle->unbufferedQuery($query,SQLITE_ASSOC); |
| 180 | - if ($cellIdsResult === false) |
|
| 181 | - throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 182 | + if ($cellIdsResult === false) { |
|
| 183 | + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 184 | + } |
|
| 182 | 185 | |
| 183 | 186 | $cellKeys = array(); |
| 184 | 187 | foreach($cellIdsResult as $row) { |
@@ -199,8 +202,9 @@ discard block |
||
| 199 | 202 | // Get a new id for the new table name |
| 200 | 203 | $tableName = str_replace('.','_',$this->_getUniqueID()); |
| 201 | 204 | if (!$this->_DBHandle->queryExec('CREATE TABLE kvp_'.$tableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB) |
| 202 | - AS SELECT * FROM kvp_'.$this->_TableName)) |
|
| 203 | - throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 205 | + AS SELECT * FROM kvp_'.$this->_TableName)) { |
|
| 206 | + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 207 | + } |
|
| 204 | 208 | |
| 205 | 209 | // Copy the existing cell cache file |
| 206 | 210 | $this->_TableName = $tableName; |
@@ -237,10 +241,12 @@ discard block |
||
| 237 | 241 | $_DBName = ':memory:'; |
| 238 | 242 | |
| 239 | 243 | $this->_DBHandle = new SQLiteDatabase($_DBName); |
| 240 | - if ($this->_DBHandle === false) |
|
| 241 | - throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 242 | - if (!$this->_DBHandle->queryExec('CREATE TABLE kvp_'.$this->_TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) |
|
| 243 | - throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 244 | + if ($this->_DBHandle === false) { |
|
| 245 | + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 246 | + } |
|
| 247 | + if (!$this->_DBHandle->queryExec('CREATE TABLE kvp_'.$this->_TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) { |
|
| 248 | + throw new Exception(sqlite_error_string($this->_DBHandle->lastError())); |
|
| 249 | + } |
|
| 244 | 250 | } |
| 245 | 251 | } // function __construct() |
| 246 | 252 | |
@@ -64,8 +64,9 @@ discard block |
||
| 64 | 64 | $query->bindValue('id',$this->_currentObjectID,SQLITE3_TEXT); |
| 65 | 65 | $query->bindValue('data',serialize($this->_currentObject),SQLITE3_BLOB); |
| 66 | 66 | $result = $query->execute(); |
| 67 | - if ($result === false) |
|
| 68 | - throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 67 | + if ($result === false) { |
|
| 68 | + throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 69 | + } |
|
| 69 | 70 | $this->_currentCellIsDirty = false; |
| 70 | 71 | } |
| 71 | 72 | $this->_currentObjectID = $this->_currentObject = null; |
@@ -166,8 +167,9 @@ discard block |
||
| 166 | 167 | // Check if the requested entry exists in the cache |
| 167 | 168 | $query = "DELETE FROM kvp_".$this->_TableName." WHERE id='".$pCoord."'"; |
| 168 | 169 | $result = $this->_DBHandle->exec($query); |
| 169 | - if ($result === false) |
|
| 170 | - throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 170 | + if ($result === false) { |
|
| 171 | + throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 172 | + } |
|
| 171 | 173 | |
| 172 | 174 | $this->_currentCellIsDirty = false; |
| 173 | 175 | } // function deleteCacheData() |
@@ -181,8 +183,9 @@ discard block |
||
| 181 | 183 | public function getCellList() { |
| 182 | 184 | $query = "SELECT id FROM kvp_".$this->_TableName; |
| 183 | 185 | $cellIdsResult = $this->_DBHandle->query($query); |
| 184 | - if ($cellIdsResult === false) |
|
| 185 | - throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 186 | + if ($cellIdsResult === false) { |
|
| 187 | + throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 188 | + } |
|
| 186 | 189 | |
| 187 | 190 | $cellKeys = array(); |
| 188 | 191 | while ($row = $cellIdsResult->fetchArray(SQLITE3_ASSOC)) { |
@@ -203,8 +206,9 @@ discard block |
||
| 203 | 206 | // Get a new id for the new table name |
| 204 | 207 | $tableName = str_replace('.','_',$this->_getUniqueID()); |
| 205 | 208 | if (!$this->_DBHandle->exec('CREATE TABLE kvp_'.$tableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB) |
| 206 | - AS SELECT * FROM kvp_'.$this->_TableName)) |
|
| 207 | - throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 209 | + AS SELECT * FROM kvp_'.$this->_TableName)) { |
|
| 210 | + throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 211 | + } |
|
| 208 | 212 | |
| 209 | 213 | // Copy the existing cell cache file |
| 210 | 214 | $this->_TableName = $tableName; |
@@ -241,10 +245,12 @@ discard block |
||
| 241 | 245 | $_DBName = ':memory:'; |
| 242 | 246 | |
| 243 | 247 | $this->_DBHandle = new SQLite3($_DBName); |
| 244 | - if ($this->_DBHandle === false) |
|
| 245 | - throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 246 | - if (!$this->_DBHandle->exec('CREATE TABLE kvp_'.$this->_TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) |
|
| 247 | - throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 248 | + if ($this->_DBHandle === false) { |
|
| 249 | + throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 250 | + } |
|
| 251 | + if (!$this->_DBHandle->exec('CREATE TABLE kvp_'.$this->_TableName.' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) { |
|
| 252 | + throw new Exception($this->_DBHandle->lastErrorMsg()); |
|
| 253 | + } |
|
| 248 | 254 | } |
| 249 | 255 | } // function __construct() |
| 250 | 256 | |
@@ -2208,9 +2208,13 @@ discard block |
||
| 2208 | 2208 | // Basic validation that this is indeed a formula |
| 2209 | 2209 | // We return an empty array if not |
| 2210 | 2210 | $formula = trim($formula); |
| 2211 | - if ((!isset($formula{0})) || ($formula{0} != '=')) return array(); |
|
| 2211 | + if ((!isset($formula{0})) || ($formula{0} != '=')) { |
|
| 2212 | + return array(); |
|
| 2213 | + } |
|
| 2212 | 2214 | $formula = ltrim(substr($formula,1)); |
| 2213 | - if (!isset($formula{0})) return array(); |
|
| 2215 | + if (!isset($formula{0})) { |
|
| 2216 | + return array(); |
|
| 2217 | + } |
|
| 2214 | 2218 | |
| 2215 | 2219 | // Parse the formula and return the token stack |
| 2216 | 2220 | return $this->_parseFormula($formula); |
@@ -2263,9 +2267,13 @@ discard block |
||
| 2263 | 2267 | // Basic validation that this is indeed a formula |
| 2264 | 2268 | // We simply return the "cell value" (formula) if not |
| 2265 | 2269 | $formula = trim($formula); |
| 2266 | - if ($formula{0} != '=') return self::_wrapResult($formula); |
|
| 2270 | + if ($formula{0} != '=') { |
|
| 2271 | + return self::_wrapResult($formula); |
|
| 2272 | + } |
|
| 2267 | 2273 | $formula = ltrim(substr($formula,1)); |
| 2268 | - if (!isset($formula{0})) return self::_wrapResult($formula); |
|
| 2274 | + if (!isset($formula{0})) { |
|
| 2275 | + return self::_wrapResult($formula); |
|
| 2276 | + } |
|
| 2269 | 2277 | |
| 2270 | 2278 | $wsTitle = "\x00Wrk"; |
| 2271 | 2279 | if ($pCell !== NULL) { |
@@ -2715,8 +2723,11 @@ discard block |
||
| 2715 | 2723 | // echo 'Element is a Closing bracket<br />'; |
| 2716 | 2724 | $expectingOperand = false; |
| 2717 | 2725 | while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( |
| 2718 | - if ($o2 === NULL) return $this->_raiseFormulaError('Formula Error: Unexpected closing brace ")"'); |
|
| 2719 | - else $output[] = $o2; |
|
| 2726 | + if ($o2 === NULL) { |
|
| 2727 | + return $this->_raiseFormulaError('Formula Error: Unexpected closing brace ")"'); |
|
| 2728 | + } else { |
|
| 2729 | + $output[] = $o2; |
|
| 2730 | + } |
|
| 2720 | 2731 | } |
| 2721 | 2732 | $d = $stack->last(2); |
| 2722 | 2733 | if (preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) { // Did this parenthesis just close a function? |
@@ -2794,8 +2805,12 @@ discard block |
||
| 2794 | 2805 | } elseif ($opCharacter == ',') { // Is this the separator for function arguments? |
| 2795 | 2806 | // echo 'Element is a Function argument separator<br />'; |
| 2796 | 2807 | while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( |
| 2797 | - if ($o2 === NULL) return $this->_raiseFormulaError("Formula Error: Unexpected ,"); |
|
| 2798 | - else $output[] = $o2; // pop the argument expression stuff and push onto the output |
|
| 2808 | + if ($o2 === NULL) { |
|
| 2809 | + return $this->_raiseFormulaError("Formula Error: Unexpected ,"); |
|
| 2810 | + } else { |
|
| 2811 | + $output[] = $o2; |
|
| 2812 | + } |
|
| 2813 | + // pop the argument expression stuff and push onto the output |
|
| 2799 | 2814 | } |
| 2800 | 2815 | // If we've a comma when we're expecting an operand, then what we actually have is a null operand; |
| 2801 | 2816 | // so push a null onto the stack |
@@ -2804,8 +2819,9 @@ discard block |
||
| 2804 | 2819 | } |
| 2805 | 2820 | // make sure there was a function |
| 2806 | 2821 | $d = $stack->last(2); |
| 2807 | - if (!preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) |
|
| 2808 | - return $this->_raiseFormulaError("Formula Error: Unexpected ,"); |
|
| 2822 | + if (!preg_match('/^'.self::CALCULATION_REGEXP_FUNCTION.'$/i', $d['value'], $matches)) { |
|
| 2823 | + return $this->_raiseFormulaError("Formula Error: Unexpected ,"); |
|
| 2824 | + } |
|
| 2809 | 2825 | $d = $stack->pop(); |
| 2810 | 2826 | $stack->push($d['type'],++$d['value'],$d['reference']); // increment the argument count |
| 2811 | 2827 | $stack->push('Brace', '('); // put the ( back on, we'll need to pop back to it again |
@@ -2876,12 +2892,16 @@ discard block |
||
| 2876 | 2892 | if (strpos('!',$startRowColRef) !== false) { |
| 2877 | 2893 | list($rangeWS1,$startRowColRef) = explode('!',$startRowColRef); |
| 2878 | 2894 | } |
| 2879 | - if ($rangeWS1 != '') $rangeWS1 .= '!'; |
|
| 2895 | + if ($rangeWS1 != '') { |
|
| 2896 | + $rangeWS1 .= '!'; |
|
| 2897 | + } |
|
| 2880 | 2898 | $rangeWS2 = $rangeWS1; |
| 2881 | 2899 | if (strpos('!',$val) !== false) { |
| 2882 | 2900 | list($rangeWS2,$val) = explode('!',$val); |
| 2883 | 2901 | } |
| 2884 | - if ($rangeWS2 != '') $rangeWS2 .= '!'; |
|
| 2902 | + if ($rangeWS2 != '') { |
|
| 2903 | + $rangeWS2 .= '!'; |
|
| 2904 | + } |
|
| 2885 | 2905 | if ((is_integer($startRowColRef)) && (ctype_digit($val)) && |
| 2886 | 2906 | ($startRowColRef <= 1048576) && ($val <= 1048576)) { |
| 2887 | 2907 | // Row range |
@@ -2977,8 +2997,10 @@ discard block |
||
| 2977 | 2997 | } |
| 2978 | 2998 | |
| 2979 | 2999 | while (($op = $stack->pop()) !== NULL) { // pop everything off the stack and push onto output |
| 2980 | - if ((is_array($opCharacter) && $opCharacter['value'] == '(') || ($opCharacter === '(')) |
|
| 2981 | - return $this->_raiseFormulaError("Formula Error: Expecting ')'"); // if there are any opening braces on the stack, then braces were unbalanced |
|
| 3000 | + if ((is_array($opCharacter) && $opCharacter['value'] == '(') || ($opCharacter === '(')) { |
|
| 3001 | + return $this->_raiseFormulaError("Formula Error: Expecting ')'"); |
|
| 3002 | + } |
|
| 3003 | + // if there are any opening braces on the stack, then braces were unbalanced |
|
| 2982 | 3004 | $output[] = $op; |
| 2983 | 3005 | } |
| 2984 | 3006 | return $output; |
@@ -3002,7 +3024,9 @@ discard block |
||
| 3002 | 3024 | |
| 3003 | 3025 | // evaluate postfix notation |
| 3004 | 3026 | private function _processTokenStack($tokens, $cellID = null, PHPExcel_Cell $pCell = null) { |
| 3005 | - if ($tokens == false) return false; |
|
| 3027 | + if ($tokens == false) { |
|
| 3028 | + return false; |
|
| 3029 | + } |
|
| 3006 | 3030 | |
| 3007 | 3031 | // If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent worksheet), |
| 3008 | 3032 | // so we store the parent worksheet so that we can re-attach it when necessary |
@@ -3019,8 +3043,12 @@ discard block |
||
| 3019 | 3043 | if (isset(self::$_binaryOperators[$token])) { |
| 3020 | 3044 | // echo 'Token is a binary operator<br />'; |
| 3021 | 3045 | // We must have two operands, error if we don't |
| 3022 | - if (($operand2Data = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); |
|
| 3023 | - if (($operand1Data = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); |
|
| 3046 | + if (($operand2Data = $stack->pop()) === NULL) { |
|
| 3047 | + return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); |
|
| 3048 | + } |
|
| 3049 | + if (($operand1Data = $stack->pop()) === NULL) { |
|
| 3050 | + return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); |
|
| 3051 | + } |
|
| 3024 | 3052 | |
| 3025 | 3053 | $operand1 = self::_dataTestReference($operand1Data); |
| 3026 | 3054 | $operand2 = self::_dataTestReference($operand2Data); |
@@ -3158,7 +3186,9 @@ discard block |
||
| 3158 | 3186 | // if the token is a unary operator, pop one value off the stack, do the operation, and push it back on |
| 3159 | 3187 | } elseif (($token === '~') || ($token === '%')) { |
| 3160 | 3188 | // echo 'Token is a unary operator<br />'; |
| 3161 | - if (($arg = $stack->pop()) === NULL) return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); |
|
| 3189 | + if (($arg = $stack->pop()) === NULL) { |
|
| 3190 | + return $this->_raiseFormulaError('Internal error - Operand value missing from stack'); |
|
| 3191 | + } |
|
| 3162 | 3192 | $arg = $arg['value']; |
| 3163 | 3193 | if ($token === '~') { |
| 3164 | 3194 | // echo 'Token is a negation operator<br />'; |
@@ -3388,7 +3418,9 @@ discard block |
||
| 3388 | 3418 | } |
| 3389 | 3419 | } |
| 3390 | 3420 | // when we're out of tokens, the stack should have a single element, the final result |
| 3391 | - if ($stack->count() != 1) return $this->_raiseFormulaError("internal error"); |
|
| 3421 | + if ($stack->count() != 1) { |
|
| 3422 | + return $this->_raiseFormulaError("internal error"); |
|
| 3423 | + } |
|
| 3392 | 3424 | $output = $stack->pop(); |
| 3393 | 3425 | $output = $output['value']; |
| 3394 | 3426 | |
@@ -3502,8 +3534,12 @@ discard block |
||
| 3502 | 3534 | |
| 3503 | 3535 | private function _executeNumericBinaryOperation($cellID,$operand1,$operand2,$operation,$matrixFunction,&$stack) { |
| 3504 | 3536 | // Validate the two operands |
| 3505 | - if (!$this->_validateBinaryOperand($cellID,$operand1,$stack)) return false; |
|
| 3506 | - if (!$this->_validateBinaryOperand($cellID,$operand2,$stack)) return false; |
|
| 3537 | + if (!$this->_validateBinaryOperand($cellID,$operand1,$stack)) { |
|
| 3538 | + return false; |
|
| 3539 | + } |
|
| 3540 | + if (!$this->_validateBinaryOperand($cellID,$operand2,$stack)) { |
|
| 3541 | + return false; |
|
| 3542 | + } |
|
| 3507 | 3543 | |
| 3508 | 3544 | $executeMatrixOperation = false; |
| 3509 | 3545 | // If either of the operands is a matrix, we need to treat them both as matrices |
@@ -3595,7 +3631,9 @@ discard block |
||
| 3595 | 3631 | protected function _raiseFormulaError($errorMessage) { |
| 3596 | 3632 | $this->formulaError = $errorMessage; |
| 3597 | 3633 | $this->debugLogStack = array(); |
| 3598 | - if (!$this->suppressFormulaErrors) throw new Exception($errorMessage); |
|
| 3634 | + if (!$this->suppressFormulaErrors) { |
|
| 3635 | + throw new Exception($errorMessage); |
|
| 3636 | + } |
|
| 3599 | 3637 | trigger_error($errorMessage, E_USER_ERROR); |
| 3600 | 3638 | } // function _raiseFormulaError() |
| 3601 | 3639 | |
@@ -515,8 +515,9 @@ discard block |
||
| 515 | 515 | if (($PHPDateArray !== False) && ($PHPDateArray['error_count'] == 0)) { |
| 516 | 516 | // Execute function |
| 517 | 517 | if ($PHPDateArray['year'] == '') { $PHPDateArray['year'] = strftime('%Y'); } |
| 518 | - if ($PHPDateArray['year'] < 1900) |
|
| 519 | - return PHPExcel_Calculation_Functions::VALUE(); |
|
| 518 | + if ($PHPDateArray['year'] < 1900) { |
|
| 519 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 520 | + } |
|
| 520 | 521 | if ($PHPDateArray['month'] == '') { $PHPDateArray['month'] = strftime('%m'); } |
| 521 | 522 | if ($PHPDateArray['day'] == '') { $PHPDateArray['day'] = strftime('%d'); } |
| 522 | 523 | $excelDateValue = floor(PHPExcel_Shared_Date::FormattedPHPToExcel($PHPDateArray['year'],$PHPDateArray['month'],$PHPDateArray['day'],$PHPDateArray['hour'],$PHPDateArray['minute'],$PHPDateArray['second'])); |
@@ -656,7 +657,9 @@ discard block |
||
| 656 | 657 | break; |
| 657 | 658 | case 'YM': |
| 658 | 659 | $retVal = intval($endMonths - $startMonths); |
| 659 | - if ($retVal < 0) $retVal = 12 + $retVal; |
|
| 660 | + if ($retVal < 0) { |
|
| 661 | + $retVal = 12 + $retVal; |
|
| 662 | + } |
|
| 660 | 663 | // We're only interested in full months |
| 661 | 664 | if ($endDays < $startDays) { |
| 662 | 665 | --$retVal; |
@@ -749,10 +749,18 @@ discard block |
||
| 749 | 749 | * @return string The "cleaned" complex number |
| 750 | 750 | */ |
| 751 | 751 | private static function _cleanComplex($complexNumber) { |
| 752 | - if ($complexNumber{0} == '+') $complexNumber = substr($complexNumber,1); |
|
| 753 | - if ($complexNumber{0} == '0') $complexNumber = substr($complexNumber,1); |
|
| 754 | - if ($complexNumber{0} == '.') $complexNumber = '0'.$complexNumber; |
|
| 755 | - if ($complexNumber{0} == '+') $complexNumber = substr($complexNumber,1); |
|
| 752 | + if ($complexNumber{0} == '+') { |
|
| 753 | + $complexNumber = substr($complexNumber,1); |
|
| 754 | + } |
|
| 755 | + if ($complexNumber{0} == '0') { |
|
| 756 | + $complexNumber = substr($complexNumber,1); |
|
| 757 | + } |
|
| 758 | + if ($complexNumber{0} == '.') { |
|
| 759 | + $complexNumber = '0'.$complexNumber; |
|
| 760 | + } |
|
| 761 | + if ($complexNumber{0} == '+') { |
|
| 762 | + $complexNumber = substr($complexNumber,1); |
|
| 763 | + } |
|
| 756 | 764 | return $complexNumber; |
| 757 | 765 | } |
| 758 | 766 | |
@@ -1658,7 +1666,9 @@ discard block |
||
| 1658 | 1666 | $realNumber = (float) $realNumber; |
| 1659 | 1667 | $imaginary = (float) $imaginary; |
| 1660 | 1668 | |
| 1661 | - if ($suffix == '') $suffix = 'i'; |
|
| 1669 | + if ($suffix == '') { |
|
| 1670 | + $suffix = 'i'; |
|
| 1671 | + } |
|
| 1662 | 1672 | if ($realNumber == 0.0) { |
| 1663 | 1673 | if ($imaginary == 0.0) { |
| 1664 | 1674 | return (string) '0'; |
@@ -1304,7 +1304,9 @@ discard block |
||
| 1304 | 1304 | |
| 1305 | 1305 | |
| 1306 | 1306 | public static function IRR($values, $guess = 0.1) { |
| 1307 | - if (!is_array($values)) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 1307 | + if (!is_array($values)) { |
|
| 1308 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 1309 | + } |
|
| 1308 | 1310 | $values = PHPExcel_Calculation_Functions::flattenArray($values); |
| 1309 | 1311 | $guess = PHPExcel_Calculation_Functions::flattenSingleValue($guess); |
| 1310 | 1312 | |
@@ -1314,14 +1316,18 @@ discard block |
||
| 1314 | 1316 | $f1 = self::NPV($x1, $values); |
| 1315 | 1317 | $f2 = self::NPV($x2, $values); |
| 1316 | 1318 | for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { |
| 1317 | - if (($f1 * $f2) < 0.0) break; |
|
| 1319 | + if (($f1 * $f2) < 0.0) { |
|
| 1320 | + break; |
|
| 1321 | + } |
|
| 1318 | 1322 | if (abs($f1) < abs($f2)) { |
| 1319 | 1323 | $f1 = self::NPV($x1 += 1.6 * ($x1 - $x2), $values); |
| 1320 | 1324 | } else { |
| 1321 | 1325 | $f2 = self::NPV($x2 += 1.6 * ($x2 - $x1), $values); |
| 1322 | 1326 | } |
| 1323 | 1327 | } |
| 1324 | - if (($f1 * $f2) > 0.0) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 1328 | + if (($f1 * $f2) > 0.0) { |
|
| 1329 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 1330 | + } |
|
| 1325 | 1331 | |
| 1326 | 1332 | $f = self::NPV($x1, $values); |
| 1327 | 1333 | if ($f < 0.0) { |
@@ -1336,8 +1342,12 @@ discard block |
||
| 1336 | 1342 | $dx *= 0.5; |
| 1337 | 1343 | $x_mid = $rtb + $dx; |
| 1338 | 1344 | $f_mid = self::NPV($x_mid, $values); |
| 1339 | - if ($f_mid <= 0.0) $rtb = $x_mid; |
|
| 1340 | - if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) return $x_mid; |
|
| 1345 | + if ($f_mid <= 0.0) { |
|
| 1346 | + $rtb = $x_mid; |
|
| 1347 | + } |
|
| 1348 | + if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) { |
|
| 1349 | + return $x_mid; |
|
| 1350 | + } |
|
| 1341 | 1351 | } |
| 1342 | 1352 | return PHPExcel_Calculation_Functions::VALUE(); |
| 1343 | 1353 | } // function IRR() |
@@ -1385,7 +1395,9 @@ discard block |
||
| 1385 | 1395 | |
| 1386 | 1396 | |
| 1387 | 1397 | public static function MIRR($values, $finance_rate, $reinvestment_rate) { |
| 1388 | - if (!is_array($values)) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 1398 | + if (!is_array($values)) { |
|
| 1399 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 1400 | + } |
|
| 1389 | 1401 | $values = PHPExcel_Calculation_Functions::flattenArray($values); |
| 1390 | 1402 | $finance_rate = PHPExcel_Calculation_Functions::flattenSingleValue($finance_rate); |
| 1391 | 1403 | $reinvestment_rate = PHPExcel_Calculation_Functions::flattenSingleValue($reinvestment_rate); |
@@ -1810,8 +1822,9 @@ discard block |
||
| 1810 | 1822 | $rate = ($y1 * $x0 - $y0 * $x1) / ($y1 - $y0); |
| 1811 | 1823 | $x0 = $x1; |
| 1812 | 1824 | $x1 = $rate; |
| 1813 | - if (($nper * abs($pmt)) > ($pv - $fv)) |
|
| 1814 | - $x1 = abs($x1); |
|
| 1825 | + if (($nper * abs($pmt)) > ($pv - $fv)) { |
|
| 1826 | + $x1 = abs($x1); |
|
| 1827 | + } |
|
| 1815 | 1828 | |
| 1816 | 1829 | if (abs($rate) < FINANCIAL_PRECISION) { |
| 1817 | 1830 | $y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv; |
@@ -2060,11 +2073,15 @@ discard block |
||
| 2060 | 2073 | |
| 2061 | 2074 | |
| 2062 | 2075 | public static function XIRR($values, $dates, $guess = 0.1) { |
| 2063 | - if ((!is_array($values)) && (!is_array($dates))) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2076 | + if ((!is_array($values)) && (!is_array($dates))) { |
|
| 2077 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2078 | + } |
|
| 2064 | 2079 | $values = PHPExcel_Calculation_Functions::flattenArray($values); |
| 2065 | 2080 | $dates = PHPExcel_Calculation_Functions::flattenArray($dates); |
| 2066 | 2081 | $guess = PHPExcel_Calculation_Functions::flattenSingleValue($guess); |
| 2067 | - if (count($values) != count($dates)) return PHPExcel_Calculation_Functions::NaN(); |
|
| 2082 | + if (count($values) != count($dates)) { |
|
| 2083 | + return PHPExcel_Calculation_Functions::NaN(); |
|
| 2084 | + } |
|
| 2068 | 2085 | |
| 2069 | 2086 | // create an initial range, with a root somewhere between 0 and guess |
| 2070 | 2087 | $x1 = 0.0; |
@@ -2072,14 +2089,18 @@ discard block |
||
| 2072 | 2089 | $f1 = self::XNPV($x1, $values, $dates); |
| 2073 | 2090 | $f2 = self::XNPV($x2, $values, $dates); |
| 2074 | 2091 | for ($i = 0; $i < FINANCIAL_MAX_ITERATIONS; ++$i) { |
| 2075 | - if (($f1 * $f2) < 0.0) break; |
|
| 2092 | + if (($f1 * $f2) < 0.0) { |
|
| 2093 | + break; |
|
| 2094 | + } |
|
| 2076 | 2095 | if (abs($f1) < abs($f2)) { |
| 2077 | 2096 | $f1 = self::XNPV($x1 += 1.6 * ($x1 - $x2), $values, $dates); |
| 2078 | 2097 | } else { |
| 2079 | 2098 | $f2 = self::XNPV($x2 += 1.6 * ($x2 - $x1), $values, $dates); |
| 2080 | 2099 | } |
| 2081 | 2100 | } |
| 2082 | - if (($f1 * $f2) > 0.0) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2101 | + if (($f1 * $f2) > 0.0) { |
|
| 2102 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2103 | + } |
|
| 2083 | 2104 | |
| 2084 | 2105 | $f = self::XNPV($x1, $values, $dates); |
| 2085 | 2106 | if ($f < 0.0) { |
@@ -2094,8 +2115,12 @@ discard block |
||
| 2094 | 2115 | $dx *= 0.5; |
| 2095 | 2116 | $x_mid = $rtb + $dx; |
| 2096 | 2117 | $f_mid = self::XNPV($x_mid, $values, $dates); |
| 2097 | - if ($f_mid <= 0.0) $rtb = $x_mid; |
|
| 2098 | - if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) return $x_mid; |
|
| 2118 | + if ($f_mid <= 0.0) { |
|
| 2119 | + $rtb = $x_mid; |
|
| 2120 | + } |
|
| 2121 | + if ((abs($f_mid) < FINANCIAL_PRECISION) || (abs($dx) < FINANCIAL_PRECISION)) { |
|
| 2122 | + return $x_mid; |
|
| 2123 | + } |
|
| 2099 | 2124 | } |
| 2100 | 2125 | return PHPExcel_Calculation_Functions::VALUE(); |
| 2101 | 2126 | } |
@@ -2117,17 +2142,27 @@ discard block |
||
| 2117 | 2142 | */ |
| 2118 | 2143 | public static function XNPV($rate, $values, $dates) { |
| 2119 | 2144 | $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate); |
| 2120 | - if (!is_numeric($rate)) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2121 | - if ((!is_array($values)) || (!is_array($dates))) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2145 | + if (!is_numeric($rate)) { |
|
| 2146 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2147 | + } |
|
| 2148 | + if ((!is_array($values)) || (!is_array($dates))) { |
|
| 2149 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2150 | + } |
|
| 2122 | 2151 | $values = PHPExcel_Calculation_Functions::flattenArray($values); |
| 2123 | 2152 | $dates = PHPExcel_Calculation_Functions::flattenArray($dates); |
| 2124 | 2153 | $valCount = count($values); |
| 2125 | - if ($valCount != count($dates)) return PHPExcel_Calculation_Functions::NaN(); |
|
| 2126 | - if ((min($values) > 0) || (max($values) < 0)) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2154 | + if ($valCount != count($dates)) { |
|
| 2155 | + return PHPExcel_Calculation_Functions::NaN(); |
|
| 2156 | + } |
|
| 2157 | + if ((min($values) > 0) || (max($values) < 0)) { |
|
| 2158 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2159 | + } |
|
| 2127 | 2160 | |
| 2128 | 2161 | $xnpv = 0.0; |
| 2129 | 2162 | for ($i = 0; $i < $valCount; ++$i) { |
| 2130 | - if (!is_numeric($values[$i])) return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2163 | + if (!is_numeric($values[$i])) { |
|
| 2164 | + return PHPExcel_Calculation_Functions::VALUE(); |
|
| 2165 | + } |
|
| 2131 | 2166 | $xnpv += $values[$i] / pow(1 + $rate, PHPExcel_Calculation_DateTime::DATEDIF($dates[0],$dates[$i],'d') / 365); |
| 2132 | 2167 | } |
| 2133 | 2168 | return (is_finite($xnpv)) ? $xnpv : PHPExcel_Calculation_Functions::VALUE(); |
@@ -159,7 +159,9 @@ |
||
| 159 | 159 | |
| 160 | 160 | // Check if the formula has a valid starting = |
| 161 | 161 | $formulaLength = strlen($this->_formula); |
| 162 | - if ($formulaLength < 2 || $this->_formula{0} != '=') return; |
|
| 162 | + if ($formulaLength < 2 || $this->_formula{0} != '=') { |
|
| 163 | + return; |
|
| 164 | + } |
|
| 163 | 165 | |
| 164 | 166 | // Helper variables |
| 165 | 167 | $tokens1 = $tokens2 = $stack = array(); |