Example #1
0
$opciones = array('0' => __('tareas'), '1' => __('eventos'));
$tipo_tarea = isset($filters['es_evento']) ? $filters['es_evento'] : null;
$value = select_tag('filters[es_evento]', options_for_select($opciones, $tipo_tarea, array('include_custom' => __('tareas y eventos'))));
echo $value ? $value : "&nbsp";
?>
    </div>
  </div>

  
  <div class="form-row">
    <?php 
echo label_for("filters[estado_tarea]", __('estado tarea') . ":");
?>
    <div class="content">
    <?php 
$opciones = TareaPeer::getAllEstadosTareas();
$html = "";
$html .= "<ul class=\"sf_admin_checklist\">\n";
foreach ($opciones as $estado) {
    $i = $estado->getPrimaryKey();
    $es_seleccionado = isset($filters['estado_' . $i]) ? true : false;
    $html .= "<li>";
    $html .= checkbox_tag('filters[estado_' . $i . ']', true, $es_seleccionado);
    $html .= label_for("filters[estado_" . $i . "]", $estado->__toString() ? __($estado->__toString()) : '-');
    $html .= "</li>\n";
}
$html .= "</ul>\n";
echo $html;
?>
    </div>
  </div>
 protected function addFiltersCriteria($c)
 {
     //fecha_inicio
     if (isset($this->filters['fecha_inicio'])) {
         if (isset($this->filters['fecha_inicio']['from']) && $this->filters['fecha_inicio']['from'] !== '') {
             $criterion = $c->getNewCriterion(TareaPeer::FECHA_INICIO, $this->filters['fecha_inicio']['from'], Criteria::GREATER_EQUAL);
         }
         if (isset($this->filters['fecha_inicio']['to']) && $this->filters['fecha_inicio']['to'] !== '') {
             if (isset($criterion)) {
                 $criterion->addAnd($c->getNewCriterion(TareaPeer::FECHA_INICIO, $this->filters['fecha_inicio']['to'], Criteria::LESS_EQUAL));
             } else {
                 $criterion = $c->getNewCriterion(TareaPeer::FECHA_INICIO, $this->filters['fecha_inicio']['to'], Criteria::LESS_EQUAL);
             }
         }
         if (isset($criterion)) {
             $c->add($criterion);
         }
     }
     //fecha_vencimiento
     if (isset($this->filters['fecha_vencimiento'])) {
         if (isset($this->filters['fecha_vencimiento']['from']) && $this->filters['fecha_vencimiento']['from'] !== '') {
             $criterion = $c->getNewCriterion(TareaPeer::FECHA_VENCIMIENTO, $this->filters['fecha_vencimiento']['from'], Criteria::GREATER_EQUAL);
         }
         if (isset($this->filters['fecha_vencimiento']['to']) && $this->filters['fecha_vencimiento']['to'] !== '') {
             if (isset($criterion)) {
                 $criterion->addAnd($c->getNewCriterion(TareaPeer::FECHA_VENCIMIENTO, $this->filters['fecha_vencimiento']['to'], Criteria::LESS_EQUAL));
             } else {
                 $criterion = $c->getNewCriterion(TareaPeer::FECHA_VENCIMIENTO, $this->filters['fecha_vencimiento']['to'], Criteria::LESS_EQUAL);
             }
         }
         if (isset($criterion)) {
             $c->add($criterion);
         }
     }
     $es_evento = null;
     if (isset($this->filters['es_evento']) && $this->filters['es_evento'] !== '') {
         $es_evento = $this->filters['es_evento'] ? true : false;
         if ($es_evento) {
             $c->add($c->getNewCriterion(TareaPeer::ES_EVENTO, true));
         } else {
             $criterion1 = $c->getNewCriterion(TareaPeer::ES_EVENTO, null, Criteria::ISNULL);
             $criterion2 = $c->getNewCriterion(TareaPeer::ES_EVENTO, false);
             $criterion1->addOr($criterion2);
             $c->add($criterion1);
         }
     }
     $criterion_tareas = $c->getNewCriterion(TareaPeer::ES_EVENTO, null, Criteria::ISNULL);
     $criterion_tareas_2 = $c->getNewCriterion(TareaPeer::ES_EVENTO, false);
     $criterion_tareas->addOr($criterion_tareas_2);
     $crt_aux = null;
     $estados = TareaPeer::getAllEstadosTareas();
     foreach ($estados as $estado) {
         $campo = "estado_" . $estado->getPrimaryKey();
         if (isset($this->filters[$campo]) && $this->filters[$campo] !== '') {
             if (!isset($crt_aux)) {
                 $crt_aux = $c->getNewCriterion(TareaPeer::ID_ESTADO_TAREA, $estado->getPrimaryKey());
             } else {
                 $crt_aux->addOr($c->getNewCriterion(TareaPeer::ID_ESTADO_TAREA, $estado->getPrimaryKey()));
             }
         }
     }
     if (isset($crt_aux)) {
         $criterion_tareas->addAnd($crt_aux);
     }
     $criterion_eventos = $c->getNewCriterion(TareaPeer::ES_EVENTO, true);
     $estados = TareaPeer::getAllEstadosEventos();
     $crt_aux = null;
     foreach ($estados as $estado) {
         $campo = "estado_" . $estado->getPrimaryKey();
         if (isset($this->filters[$campo]) && $this->filters[$campo] !== '') {
             if (!isset($crt_aux)) {
                 $crt_aux = $c->getNewCriterion(TareaPeer::ID_ESTADO_TAREA, $estado->getPrimaryKey());
             } else {
                 $crt_aux->addOr($c->getNewCriterion(TareaPeer::ID_ESTADO_TAREA, $estado->getPrimaryKey()));
             }
         }
     }
     if (isset($crt_aux)) {
         $criterion_eventos->addAnd($crt_aux);
     }
     if (isset($es_evento)) {
         //una de las dos: tarea o evento
         if ($es_evento) {
             $c->add($criterion_eventos);
         } else {
             $c->add($criterion_tareas);
         }
     } else {
         $c->addOr($criterion_tareas);
         $c->addOr($criterion_eventos);
     }
 }