<?php

class editEntidadesAsignadasAdicionalesAction extends sfAction{


  public function execute(){

    // Validación de Sesión
    $sv = new sessionValidate($this);
    if(!($sv->valSessionAtt('recursos', 'recursos_asignacion', 700) ||
         $sv->valSessionAtt('recursos', 'recursos_asignacion', 900) ||
         $sv->valSessionAtt('recursos', 'recursos_asignacion', 1000))){
      return $this->redirect('recursos_asignacion/editBuscarAsignacionAdicional');
    }
    else{
      $sv->setSessionAtt('recursos', 'recursos_asignacion', 800);
    }

    // parámetros principales
    $mes = $this->getRequestParameter('mes');
    $ano = $this->getRequestParameter('ano');
    $producto_origen_fondos_id = $this->getRequestParameter('producto_origen_fondos_id');

    //Constantes YML
    $constantes = sfYaml::load(sfConfig::get('sf_root_dir').'/config/const.yml');

    //Objeto Usuario
    $usuario = UsuarioPeer::retrieveByPk($this->getUser()->getAttribute('id'));

    $producto_origen_fondos = ProductoOrigenFondosPeer::retrieveByPk($producto_origen_fondos_id);
    
    // Lista de Entidades con recursos asignados y comprometidos
    $c = new Criteria();

    $c->add(RecursoPresupuestoPeer::PRODUCTO_ORIGEN_FONDOS_ID, $producto_origen_fondos_id);

    $c->add(RecursoPresupuestoPeer::MES, $mes);

    $c->add(RecursoPresupuestoPeer::ANO, $ano);

    $c->add(RecursoPresupuestoPeer::COMPROMETIDO, 0, Criteria::GREATER_THAN);

    $c->addAscendingOrderByColumn(RecursoPresupuestoPeer::ID);

    $recurso_presupuesto = RecursoPresupuestoPeer::doSelect($c);

    $c->clear();

    if ($recurso_presupuesto){

        // $totales = Vector con los totales de los montos

        // $asignados = Monto acumulativo de los montos asignados
        $asignados = 0;

        // $comprometidos = Monto acumulativo de los montos comprometidos
        $comprometidos = 0;

        // $adicionales = Monto acumulativo de los montos adicionales
        $adicionales = 0;

        foreach ($recurso_presupuesto as $recurso) {

          $asignado = $recurso->getAsignado() ? $recurso->getAsignado() : 0;

          $asignados += $asignado;

          $comprometido = $recurso->getComprometido() ? $recurso->getComprometido() : 0;

          $comprometidos += $comprometido;

          $adicional = $recurso->getAdicional() ? $recurso->getAdicional() : 0;

          $adicionales += $adicional;

        }

        // Se llena el array de totales
        $totales = array($asignados,$comprometidos,$adicionales);
        
        // Nombre del mes
        $nombre_mes = RecursoPresupuesto::mes($mes);

    }

    // referencias para el view
    $this->recurso_presupuesto = $recurso_presupuesto;
    $this->producto_origen_fondos = $producto_origen_fondos;
    $this->totales = $totales;
    $this->mes = $mes;
    $this->ano = $ano;
    $this->nombre_mes = $nombre_mes;

  }


}