<?php

class Acciones {

    public static function todas($programaEstado=null){
        $sqlQuery = AccionesSQL::DATOS;
        $datos = array();
        if(!is_null($programaEstado)){
            $sqlQuery .= ' WHERE PlanesProgramas.estadoProgramaID = ? ' ;
            array_push($datos, $programaEstado);
        }
        $sqlQuery .=  " ORDER BY accionID DESC ";
        return SicamDB::selectVariasFilas($sqlQuery, $datos);
    }
    
    public static function guardar( $programa, $codigo, $titulo, $responsable , $descripcion, $justificacion) {
            $sqlQuery = "INSERT INTO PlanesAcciones "
                 ."( programaID, accionCODIGO, accionTITULO, accionRESPONSABLE, accionDESCRIPCION, accionJUSTIFICACION, accionUSRCREO ) "
                 ."VALUES (?, ?, ?, ?, ?, ?, ?)";
            return SicamDB::insertFila($sqlQuery,
                    array(  $programa, $codigo, $titulo, $responsable, $descripcion, $justificacion, Cliente::usuarioID() ));
    }  

        
    public static function actualizar($accionesID, $programa, $titulo, $responsable , $descripcion, $justificacion){
        $sqlQuery = "UPDATE PlanesAcciones SET programaID=?, accionTITULO=?, accionRESPONSABLE=? ,
        accionDESCRIPCION=?, accionJUSTIFICACION=?, accionFCHMODIFICADO=NOW(), accionUSRMODIFICO=?   where  accionID=?;";
        return SicamDB::actualizarFila($sqlQuery, array( $programa, $titulo, $responsable , $descripcion, $justificacion, Cliente::usuarioID() ,$accionesID));
    }
       

    public static function datos($accionID, $tipoPlanID = null){
        $sqlQuery = AccionesSQL::DATOS . " where PlanesAcciones.accionID=?";
        $Accion = SicamDB::selectUnaFila($sqlQuery, array($accionID));
        if (!is_null($tipoPlanID)) {
            /*$Accion->Actividades = PlanesActividades::delaAccion($accionID, $tipoPlanID);
            foreach($Accion->Actividades as $actividad):
                $actividad->Total = PlanesOperaciones::presupuestoTotalPorActividadyTipoPlan($actividad->actividadID, $tipoPlanID);
                $actividad->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorActividad($actividad->actividadID, $tipoPlanID);
                $actividad->FechaInicio = PlanesOperaciones::fechaTempranaPorActividad($actividad->actividadID, $tipoPlanID);
                $actividad->FechaFinal = PlanesOperaciones::fechaTardiaPorActividad($actividad->actividadID, $tipoPlanID);
            endforeach;*/
            $Accion->Total = PlanesOperaciones::presupuestoTotalPorAccion($accionID, $tipoPlanID);
            $Accion->TotalGastado = PlanesOperaciones::GastadoTotalPorAccion($accionID, $tipoPlanID);
            $Accion->FechaInicio = PlanesOperaciones::fechaTempranaPorAccion($accionID, $tipoPlanID);
            $Accion->FechaFinal = PlanesOperaciones::fechaTardiaPorAccion($accionID, $tipoPlanID);
        }else{
            /*$Accion->Actividades = PlanesActividades::delaAccion($accionID);
            foreach($Accion->Actividades as $actividad):
                $actividad->Total = PlanesOperaciones::presupuestoTotalPorActividad($actividad->actividadID);
                $actividad->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorActividad($actividad->actividadID);
                $actividad->FechaInicio = PlanesOperaciones::fechaTempranaPorActividad($actividad->actividadID);
                $actividad->FechaFinal = PlanesOperaciones::fechaTardiaPorActividad($actividad->actividadID);
            endforeach;*/
            $Accion->Total = PlanesOperaciones::presupuestoTotalPorAccion($accionID);
            $Accion->TotalGastado = PlanesOperaciones::GastadoTotalPorAccion($accionID);
            $Accion->FechaInicio = PlanesOperaciones::fechaTempranaPorAccion($accionID);
            $Accion->FechaFinal = PlanesOperaciones::fechaTardiaPorAccion($accionID);
        }
         $Accion->Metas = AccionesMetas::PorAccion($accionID);
        return $Accion;
    }

    public static function eliminar($idAcciones){
        $sqlQuery = "delete  from PlanesAcciones where  accionID=?";
        return SicamDB::actualizarFila($sqlQuery, array($idAcciones));
    }
    
    public static function metas($idAccion){
        return Metas::accion($idAccion);
    }
    
    public static function delPrograma($programaID, $tipoPlanID = null){
        if (!is_null($tipoPlanID)) {
            $sqlQuery = AccionesSQL::LISTADO_PORPROGRAMA_YTIPOPLAN . "  WHERE PlanesProgramas.programaID = ? AND PlanesOperaciones.tipoPlanID = ?  GROUP BY PlanesAcciones.accionCODIGO; ";
            return SicamDB::selectVariasFilas($sqlQuery, array($programaID, $tipoPlanID));
        }else{
            $sqlQuery = AccionesSQL::LISTADO_PORPROGRAMA . "  WHERE PlanesProgramas.programaID = ? GROUP BY PlanesAcciones.accionCODIGO; ";
            return SicamDB::selectVariasFilas($sqlQuery, array($programaID));
        }
    }
    
}

?>
