$com){
if($_REQUEST['fl_'.$name]==$com['attributes']['value']){
$_REQUEST['fl_'.$name] = "";
}
if(trim($_REQUEST["fl_".$name])&&$_REQUEST["fl_".$name]!='@'){
if($form['components'][$name]['valueType']=='date'){
$whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'";
} else {
if($form['components'][$name]['valueType']=='numeric'){
$whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'";
} else {
if($form['components'][$name]['type']=='hidden'){
$whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'";
} else {
if($com['type']=='check'){
if($_REQUEST["fl_".$name]==$form['components'][$name]['checkedValue'])
$whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'";
} else {
if($com['type']=='time'){
if($_REQUEST["fl_".$name]!='00:00'){
$whereCondition.=" and {$form['source']}.$name = '".$_REQUEST["fl_".$name]."'";
}
} else {
if($com['primary']||$com['type']=='combo'){
$whereCondition.=" and ".$form['source'].".$name = '".$_REQUEST["fl_".$name]."'";
} else {
$whereCondition.=" and ".$form['source'].".$name like '%".$_REQUEST["fl_".$name]."%'";
}
}
}
}
}
}
}
}
}
//Modificaciones para seleccion de la ordenacion del report, si esta acabado en _id, quiere decir foreignkey
//Cojeremos el texto sin el id, tendremos la tabla
ActiveRecord::sql_item_sanizite($_REQUEST['reportTypeField']);
if (substr($_REQUEST['reportTypeField'],strlen($_REQUEST['reportTypeField']) -3,strlen($_REQUEST['reportTypeField'])) == "_id"){
$OrderFields = substr($_REQUEST['reportTypeField'],0,strlen($_REQUEST['reportTypeField'])-3);
}else{
$OrderFields =$_REQUEST['reportTypeField'];
}
$maxCondition = $whereCondition;
$n = 0;
foreach($form['components'] as $name => $com){
if(!$com['notReport']){
$headerArray[$n] = str_replace("ó", "ó", $com['caption']);
$headerArray[$n] = str_replace("á", "á", $headerArray[$n]);
$headerArray[$n] = str_replace("é", "é", $headerArray[$n]);
$headerArray[$n] = str_replace("í", "í", $headerArray[$n]);
$headerArray[$n] = str_replace("ú", "ú", $headerArray[$n]);
$headerArray[$n] = str_replace("
", " ", $headerArray[$n]);
if($com['type']=='combo'&&$com['class']=='dynamic'){
if($com['extraTables']){
$tables.="{$com['extraTables']},";
}
if($com['whereConditionOnQuery']){
$whereCondition.=" and {$com['whereConditionOnQuery']}";
}
if(strpos(" ".$com['detailField'], "concat(")){
$selectedFields.=$com['detailField'].",";
} else {
$selectedFields.=$com['foreignTable'].".".$com['detailField'].",";
//Comparamos la Tabla foranea que tenemos, y cuando sea igual, suponiendo no hay
//mas de una clave foranea por tabla, sabremos a que tabla pertenece
if ($com['foreignTable'] == $OrderFields){
$OrderFields = $com['foreignTable'].".".$com['detailField'];
}
}
$tables.=$com['foreignTable'].",";
if($com['column_relation']){
$whereCondition.=" and ".$com['foreignTable'].".".$com['column_relation']." = ".$form['source'].".".$name;
} else {
$whereCondition.=" and ".$com['foreignTable'].".".$name." = ".$form['source'].".".$name;
}
$weightArray[$n] = strlen($headerArray[$n])+2;
$n++;
} else {
if($com['type']!='hidden'){
if($com['class']=='static'){
$weightArray[$n] = strlen($headerArray[$n])+2;
if($config->database->type=='postgresql'){
$selectedFields.="case ";
}
if($config->database->type=='mysql'){
for($i=0;$i<=count($com['items'])-2;$i++){
$selectedFields.="if(".$form['source'].".".$name."='".$com['items'][$i][0]."', '".$com['items'][$i][1]."', ";
if($weightArray[$n]database->type=='postgresql'){
for($i=0;$i<=count($com['items'])-1;$i++){
$selectedFields.=" when ".$form['source'].".".$name."='".$com['items'][$i][0]."' THEN '".$com['items'][$i][1]."' ";
if($weightArray[$n]database->type=='mysql'){
$selectedFields.="'".$com['items'][$i][1]."')";
for($j=0;$j<=$i-2;$j++) {
$selectedFields.=")";
}
}
if($config->database->type=='postgresql'){
$selectedFields.=" end ";
}
$selectedFields.=",";
} else {
$selectedFields.=$form['source'].".".$name.",";
//Aqui seguro que no es foranea, entonces tenemos que poner la tabla principal //
//antes para evitar repeticiones
if ($name == $OrderFields){
$OrderFields = $form['source'].".".$OrderFields;
}
$weightArray[$n] = strlen($headerArray[$n])+2;
$n++;
}
}
}
}
}
$tables.=$form['source'];
$selectedFields = substr($selectedFields, 0, strlen($selectedFields)-1);
if($form['dataRequisite']){
$whereCondition.=" and {$form['dataFilter']}";
}
//Modificacion del order
$OrderCondition = "Order By ".$OrderFields;
$query = "select $selectedFields from $tables where 1 = 1 ".$whereCondition. " " .$OrderCondition;
$q = $db->query($query);
if(!is_bool($q)){
if(!$db->num_rows($q)){
Flash::notice("No hay información para listar");
return;
}
} else {
Flash::error($db->error());
return;
}
$result = array();
$n = 0;
while($row = $db->fetch_array($q, db::DB_NUM)){
$result[$n++] = $row;
}
foreach($result as $row){
for($i=0;$i<=count($row)-1;$i++){
if($weightArray[$i]