/** * Devuelve el ejercicio para la fecha indicada. * Si no existe, lo crea. */ public function get_by_fecha($fecha, $solo_abierto = TRUE, $crear = TRUE) { $sql = "SELECT * FROM " . $this->table_name . " WHERE fechainicio <= " . $this->var2str($fecha) . " AND fechafin >= " . $this->var2str($fecha) . ";"; $data = $this->db->select($sql); if ($data) { $eje = new ejercicio($data[0]); if ($eje->abierto() or !$solo_abierto) { return $eje; } else { return FALSE; } } else { if ($crear) { $eje = new ejercicio(); $eje->codejercicio = $eje->get_new_codigo(Date('Y', strtotime($fecha))); $eje->nombre = Date('Y', strtotime($fecha)); $eje->fechainicio = Date('1-1-Y', strtotime($fecha)); $eje->fechafin = Date('31-12-Y', strtotime($fecha)); if (strtotime($fecha) < 1) { $this->new_error_msg("Fecha no válida: " . $fecha); } else { if ($eje->save()) { return $eje; } else { return FALSE; } } } else { return FALSE; } } }