Ok, so I did this:
function _cm_pre_getData ($where, $where_array, $fieldarray=null)
{
// construct default SELECT and FROM clauses using parent relations
$this->sql_select = "participante.fotopart, participante.participante_id,participante.nompart,
CONCAT(participante.apellido1,' ', participante.apellido2) as apellido1,participante.fecnac,
participante.catsalut, categoria.categoria_id,temporada.temporada_id,
deporte.deporte_id,
entidad.entidad_id,
equipo.equipo_id,
0 as actividad_id,
0 as actividad_fe_lu_id,
0 as trobada_id,
'E' as tipo,
part_equipo_xref.impreso,
part_equipo_xref.exportado";
// $this->sql_groupby = null;
// $this->sql_having = null;
$this->sql_from = "participante
JOIN part_equipo_xref ON participante.participante_id=part_equipo_xref.participante_id
JOIN equipo ON part_equipo_xref.equipo_id = equipo.equipo_id
JOIN entidad ON equipo.entidad_id= entidad.entidad_id
JOIN deporte ON equipo.deporte_id = deporte.deporte_id
JOIN categoria ON equipo.categoria_id = categoria.categoria_id
JOIN temporada ON temporada.temporada_id = equipo.temporada_id
WHERE tippart='E'
UNION
SELECT participante.fotopart, participante.participante_id,participante.nompart,
CONCAT(participante.apellido1,' ', participante.apellido2) as apellido1,participante.fecnac,
participante.catsalut, categoria.categoria_id,temporada.temporada_id,
deporte.deporte_id,
entidad.entidad_id,
equipo.equipo_id,
0 as actividad_id,
0 as actividad_fe_lu_id,
0 as trobada_id,
'N',
equipo.impreso_ent,
equipo.exportado_ent
FROM participante
JOIN equipo ON participante.participante_id = equipo.entrenador_id
JOIN entidad ON equipo.entidad_id= entidad.entidad_id
JOIN deporte ON equipo.deporte_id = deporte.deporte_id
JOIN categoria ON equipo.categoria_id = categoria.categoria_id
JOIN temporada ON temporada.temporada_id = equipo.temporada_id
WHERE tippart='N'
UNION
SELECT participante.fotopart, participante.participante_id,participante.nompart,
CONCAT(participante.apellido1,' ', participante.apellido2) as apellido1,participante.fecnac,
participante.catsalut, categoria.categoria_id,temporada.temporada_id,
deporte.deporte_id,
entidad.entidad_id,
equipo.equipo_id,
0 as actividad_id,
0 as actividad_fe_lu_id,
0 as trobada_id,
'D',
equipo.impreso_del,
equipo.exportado_del
FROM participante
JOIN equipo ON participante.participante_id = equipo.delegado_id
JOIN entidad ON equipo.entidad_id= entidad.entidad_id
JOIN deporte ON equipo.deporte_id = deporte.deporte_id
JOIN categoria ON equipo.categoria_id = categoria.categoria_id
JOIN temporada ON temporada.temporada_id = equipo.temporada_id
WHERE tippart='D'
UNION
SELECT distinct participante.fotopart, participante.participante_id,participante.nompart,
CONCAT(participante.apellido1,' ', participante.apellido2) as apellido1,participante.fecnac,
participante.catsalut, 0,temporada.temporada_id,
0,
0,
0,
actividad.actividad_id,
part_actividad_fe_lu_xref.actividad_fe_lu_id,
0,
'A',
part_actividad_fe_lu_xref.impreso,
part_actividad_fe_lu_xref.exportado
FROM participante
inner JOIN part_actividad_fe_lu_xref ON participante.participante_id=part_actividad_fe_lu_xref.participante_id
inner JOIN actividad_fe_lu ON part_actividad_fe_lu_xref.actividad_fe_lu_id= part_actividad_fe_lu_xref.actividad_fe_lu_id
inner JOIN actividad ON actividad.actividad_id = actividad_fe_lu.actividad_id
inner JOIN temporada ON actividad.temporada_id = temporada.temporada_id
UNION
SELECT distinct participante.fotopart, participante.participante_id,participante.nompart,
CONCAT(participante.apellido1,' ', participante.apellido2) as apellido1,participante.fecnac,
participante.catsalut, 0,temporada.temporada_id,
0,
0,
0,
0,
0,
trobada.trobada_id,
'T',
part_trob_xref.impreso,
part_trob_xref.exportado
FROM participante
inner JOIN part_trob_xref ON participante.participante_id=part_trob_xref.participante_id
inner JOIN trobada ON trobada.trobada_id= part_trob_xref.trobada_id
inner JOIN temporada ON trobada.temporada_id = temporada.temporada_id";
return $where;
} // _cm_pre_getData
Then I did the following:
function _cm_changeConfig ($where, $fieldarray){
$this->primary_key = array('participante_id','categoria_id','temporada_id','deporte_id','entidad_id','equipo_id','actividad_fe_lu_id','trobada_id');
return $fieldarray;
}
I get to see the data in the list1 transaction, however, when I select several records for printing or exporting to csv, the where clause messes up and adds strange things.
With the debugger I found that in _cm_pre_getData
$where contains ( participante_id='' AND categoria_id='' AND temporada_id='' AND deporte_id='' AND entidad_id='' AND equipo_id='' AND actividad_fe_lu_id='' AND trobada_id='' )
Why aren't the fields populated with the data I selected?
What else should I modify in order to make this 'pseudo' class work?
|