Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2010, 10:16
Avatar de germana
germana
 
Fecha de Ingreso: abril-2007
Mensajes: 61
Antigüedad: 17 años, 1 mes
Puntos: 0
Extraño problema con retorno de funcion

Saludos!!

Estoy teniendo un extraño problema, pues no logro ver que es lo que no esta funcionando, porque no me muestra los valores que retorno de una funcion.

Tengo una clase nomina__ y en esta algunas funciones, entre las cuales estean:

Código:
  private function calcularHoras($hour, $min) {
      if (($min-45) < 0) {
           $total= array(0 =>$hour, 1=>$min);
           return $total;
           //var_dump($total);
       }
       else {
           $min -= 60; 
           $hour += 1;
           $this->calcularHoras($hour, $min);
       }
   }


   public function horasExtra($array)
   {
      $horas = array(0 => 0, 1 => 0);

      for($i=0; $i < count($array); $i++)
      {
         $trabajo = explode(":",$array[$i]["horas_extra"]);
         $horas[0] = $horas[0] + $trabajo[0];
         $horas[1] = $horas[1] + $trabajo[1];
      }
      return $this->calcularHoras($horas[0], $horas[1]);
   }
luego llamo a la funcion:

Código:
$acceso  = $_acceso->obtenerParaNomina($valores);
$horas   = $_nomina->horasTrabajadas($acceso);
$horas_extra = $_nomina->horasExtra($acceso);
la variable $acceso es un array que es simplemente los resultado de una consulta a la base de datos.

Vale la pena una acotacion: la funcion horasTrabajadas que se llama antes de horasExtra son exactamente iguales.

Código:
 public function horasTrabajadas($array)
   {
      $horas = array(0 => 0, 1 => 0);

      for($i=0; $i < count($array); $i++)
      {
         $trabajo = explode(":",$array[$i]["horas_trabajadas"]);
         $horas[0] = $horas[0] + $trabajo[0];
         $horas[1] = $horas[1] + $trabajo[1];
      }
      return $this->calcularHoras($horas[0], $horas[1]);
   }
la funcion horasTrabajas si muestra los resultado en el HTML, pero no asi la de horasExtra.

Codigo HTML:
Código:
<td><input type="text" name="hrs_lab<?php echo $i?>" id="hrs_lab<?php echo $i?>" size="2" maxlength="3" value="<?php echo $horas[0] ?>" /></td>
             <td><input type="text" name="min_lab<?php echo $i?>" id="min_lab<?php echo $i?>" size="2" maxlength="3" value="<?php echo $horas[1] ?>" /></td>

             <td><input type="text" name="hrs_ext<?php echo $i?>" id="hrs_ext<?php echo $i?>" size="2" maxlength="3" value="<?php echo $horas_extra[0] ?>" /></td>
             <td><input type="text" name="min_ext<?php echo $i?>" id="min_ext<?php echo $i?>" size="2" maxlength="3" value="<?php echo $horas_extra[1] ?>" /></td>
Lo mas extraño es que al colocar un var_dump($total) en la funcion calcularHoras muestra todos los array incluso el que corresponde a horasExtra, pero no asi con el return.

Alguna Idea???