Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/11/2008, 19:57
reversible
 
Fecha de Ingreso: julio-2008
Mensajes: 35
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: (mysql) actualización multiple con procedimientos almacenados

Muchas gracias bacdavi..... mas bien el problema es que cuando genero los dias libres que le corresponde por cada año, esos dias tienen una fecha de caducidad y el mismo procedimiento debe de chekar diaria mente si los dias libres del empleado ya caducaron y si es asi eliminarlos, y mas que nada para eso quiero implementar el procedimiento almacenado......
aqui hize este metodo para calcular la diferencia entre dos fechas parametrizando si quiero incluir sabados o domingos, el problema es que no conozco mucho de procedimientos almacenados....

Código PHP:
public function calculateDays($start_date,$end_date,$noSaturday="true",$noSunday="true",$noHollydays="true")
    {
        
$start_date=strtotime($start_date);
        
$end_date=strtotime($end_date);
        
$year intval(date("Y"$start_date));
        
$hollyDays=$this->getHollyday($year);
        
        
$difference=$end_date-$start_date;
        
$difference=$difference;
        
$seconds_per_day=86400;
        
// +1 adds the actual date
        
$difference_days=round($difference/$seconds_per_day );
        
$noLaborDays=0;
        
$isLabor=true;

        for(
$dayLoop=$start_date;$dayLoop<=$end_date;$dayLoop+=$seconds_per_day)
        {
            
$numberOfDay=date("N",$dayLoop);
            if(
$noSaturday == true && $numberOfDay == 6)
            {
$noLaborDays++;$isLabor=false;}
            if(
$noSunday == true && $numberOfDay == 7)
            {
$noLaborDays++;$isLabor=false;}
            if(
$noHollydays==true && $isLabor==true)
            {
                
$current=date("Y",$dayLoop);
                if(
$current!=$year)
                {
                    unset(
$hollyDays);
                    
$hollyDays=$this->getHollyday(intval(date("Y"$dayLoop)));
                }
                if(
in_array($dayLoop,$hollyDays))
                
$noLaborDays++;
            }
            
$isLabor=true;
        }

    
$totalOfDays=$difference_days-$noLaborDays;
    return 
$totalOfDays;

    } 

Muchas gracias