Created
April 4, 2022 02:41
-
-
Save guazontsubasa/a2654013372f40ebd98ef03fa8b83048 to your computer and use it in GitHub Desktop.
Datatable order by server side
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php //listar flota vehicular | |
if (isset($_POST['start'])){ | |
require_once 'app/flotas/automotores/domain/automotores.php'; | |
$columnas = [ 'RO', /*'ALERTA',*/ 'TIPO', 'DOMINIO', 'MARCA', 'MODELO', 'AÑO', 'ORGANISMO', 'ESTADO', 'ACCIONES' ]; | |
//LÍMITES | |
$entre = $_POST['start'] + 1; | |
$yentre = $_POST['start'] + $_POST['length']; | |
//BUSQUEDA Y FILTROS | |
// sobre ('DOMINIO', 'MARCA', 'MODELO', 'ANIO', 'ESTADO', 'TIPO_VEHICULO', 'ORGANISMO', 'RATIFICADO' (flag), 'TELEPEAJE' (flag),'TARJCOMBUSTIBLE' (flag), 'SEGURO' (flag), 'SERVTECNICO' (flag), 'VTV' (flag)) | |
// x ejemplo DOMINIO:AAE#ANIO:1998 | |
// llega por $_POST['criterio'] | |
// [criterio] => Array | |
// ( | |
// [telepeaje] => 0 | |
// [tarjCombustible] => 0 | |
// [seguro] => 0 | |
// [taller] => 0 | |
// [vtv] => 0 | |
// [ratificado] => | |
// [idOrganismo] => 42 | |
// ) | |
//[columns] => Array (10 columnas 0 a 9) | |
// [2] => Array | |
// [data] => 2 | |
// [search] => Array | |
// [value] => ciclomot | |
$busqueda = 'FOO:VAR';//a foo no lo usa y concateno todo con # | |
if (($session->get('perfil_automotor') == 'AUTOMOTORES_ADMIN') && ($_POST['criterio']['idOrganismo'] != 0)){ | |
$busqueda .= '#ORGANISMO:'.$_POST['criterio']['idOrganismo']; | |
} | |
// "" Todos los estados de ratificación | |
// 0 Sin ratificar -> is null | |
// 1 Ratificado | |
// 2 Ratificación rechazada | |
if ($_POST['criterio']['ratificado'] != ''){ | |
$busqueda .= '#RATIFICADO:'.$_POST['criterio']['ratificado']; | |
} | |
if ($_POST['criterio']['situacion'] != ''){ | |
$busqueda .= '#SITUACION:'.$_POST['criterio']['situacion']; | |
} | |
if ($_POST['criterio']['marca'] != ''){ | |
$busqueda .= '#MARCA:'.$_POST['criterio']['marca']; | |
} | |
if ($_POST['criterio']['tipo'] != ''){ | |
$busqueda .= '#TIPO_VEHICULO:'.$_POST['criterio']['tipo']; | |
} | |
$busqueda .= ($_POST['criterio']['telepeaje'] == 1)? '#TELEPEAJE:1' : ''; | |
$busqueda .= ($_POST['criterio']['tarjCombustible'] == 1)? '#TARJCOMBUSTIBLE:1' : ''; | |
$busqueda .= ($_POST['criterio']['seguro'] == 1)? '#SEGURO:1' : ''; | |
$busqueda .= ($_POST['criterio']['taller'] == 1)? '#SERVTECNICO:1' : ''; | |
$busqueda .= ($_POST['criterio']['vtv'] == 1)? '#VTV:1' : ''; | |
foreach ($_POST['columns'] as $co){ | |
if ($co['search']['value'] != ''){ | |
switch($co['data']){ | |
//por orden de las columnas de 0 a 9.. salvo las que no se usan para buscar | |
case '0': $busqueda .= '#RO:'.$co['search']['value']; break; | |
case '2': $busqueda .= '#DOMINIO:'.$co['search']['value']; break; | |
case '4': $busqueda .= '#MODELO:'.$co['search']['value']; break; | |
case '5': $busqueda .= '#ANIO:'.$co['search']['value']; break; | |
} | |
} | |
} | |
// ORDEN es igual a orden + 1 ? | |
// RODRI =>> $_POST['order'][0]['column'] en esta variable viene la columna por la que hay que ordenar.. | |
switch($_POST['order'][0]['column']){ | |
case '0': $orden = 8; break;// 0 -> R.O. -> 8 | |
case '1': $orden = 7; break;// 2 -> TIPO -> 7 | |
case '2': $orden = 1; break;// 3 -> DOMINIO -> 1 | |
case '3': $orden = 2; break;// 4 -> MARCA -> 2 | |
case '4': $orden = 3; break;// 5 -> MODELO -> 3 | |
case '5': $orden = 4; break;// 6 -> ANIO -> 4 | |
case '7': $orden = 6; break;// 8 -> ESTADO -> 6 | |
case ' ': $orden = 5; break;// no se usa, ORGANISMO -> 5 | |
} | |
// RODRI =>> $_POST['order'][0]['dir'] en esta variable viene si ascendente o descendente | |
if ($_POST['order'][0]['dir'] != 'asc') { | |
$orden = $orden * -1; | |
} | |
$datos = traerFlotaVehicular($session->get('id_persona'), $session->get('id_organismo'), $entre, $yentre, $busqueda, $orden); | |
//$debug->set('datos',$datos); | |
/* | |
[data] => Array | |
( | |
[total] => 15889 | |
[lista] => Array | |
( | |
[0] => Array | |
( | |
[ID_VEHICULO] => 9037 | |
[RATIFICADO] => 0 | |
[TELEPEAJE] => 0 | |
[TARJCOMBUSTIBLE] => 0 | |
[SEGURO] => 0 | |
[SERVTECNICO] => 0 | |
[VTV] => 0 | |
[RO] => 1234 | |
[DOMINIO] => 003IGU | |
[MARCA] => ZANELLA | |
[MODELO] => ZANELLA | |
[TIPO_VEHICULO] => CICLOMOTOR | |
[ANIO] => 2013 | |
[ORGANISMO] => POLICIA | |
[ESTADO] => DISPONIBLE | |
).. | |
*/ | |
$output = [ | |
"sEcho" => $_POST['draw'], | |
"iTotalRecords" => $datos['data']['total'], | |
"iTotalDisplayRecords" => $datos['data']['total'], | |
"aaData" => [] | |
]; | |
$garita = $variables['public_url'].'section/'.$variables['folder'].'/img/garita.png'; | |
$combustible = $variables['public_url'].'section/'.$variables['folder'].'/img/combustible.png'; | |
$seguro = $variables['public_url'].'section/'.$variables['folder'].'/img/seguro.png'; | |
$taller = $variables['public_url'].'section/'.$variables['folder'].'/img/taller.png'; | |
$vtv = $variables['public_url'].'section/'.$variables['folder'].'/img/vtv.png'; | |
foreach($datos['data']['lista'] as $aRow){ | |
$row = array(); | |
for ( $i=0 ; $i<count($columnas) ; $i++ ){ | |
switch($columnas[$i]){ | |
case 'RO': | |
$row[] = $aRow['REGISTRO_OFICIAL']; | |
break; | |
case 'ALERTA': | |
$flag_peaje = ($aRow['TELEPEAJE'] == 0)? '<img class="icono-tbl icono-des img-fluid " src="'.$garita.'">': '<img class="icono" src="'.$garita.'">'; | |
$flag_combustible = ($aRow['TARJCOMBUSTIBLE'] == 0)? '<img class="icono-tbl icono-des img-fluid " src="'.$combustible.'">': '<img class="icono" src="'.$combustible.'">'; | |
$flag_seguro = ($aRow['TARJCOMBUSTIBLE'] == 0)? '<img class="icono-tbl icono-des img-fluid " src="'.$seguro.'">': '<img class="icono" src="'.$seguro.'">'; | |
$flag_taller = ($aRow['SERVTECNICO'] == 0)? '<img class="icono-tbl icono-des img-fluid " src="'.$taller.'">': '<img class="icono" src="'.$taller.'">'; | |
$flag_vtv = ($aRow['VTV'] == 0)? '<img class="icono-tbl icono-des img-fluid " src="'.$vtv.'">': '<img class="icono" src="'.$vtv.'">'; | |
$row[] = '<div>'.$flag_peaje.$flag_combustible.$flag_seguro.$flag_taller.$flag_vtv.'</div>'; | |
break; | |
case 'TIPO': | |
$row[] = $aRow['TIPO_VEHICULO']; | |
break; | |
case 'DOMINIO': | |
$row[] = $aRow['DOMINIO']; | |
break; | |
case 'MARCA': | |
$row[] = $aRow['MARCA']; | |
break; | |
case 'MODELO': | |
$row[] = $aRow['MODELO']; | |
break; | |
case 'AÑO': | |
$row[] = $aRow['ANIO']; | |
break; | |
case 'ORGANISMO': | |
$row[] = $aRow['ORGANISMO']; | |
break; | |
case 'ESTADO': | |
$row[] = $aRow['ESTADO']; | |
break; | |
case 'ACCIONES': | |
switch ($aRow['RATIFICADO']) { | |
case '1': | |
$row[] = '<div class="btn-group "> | |
<button title="Ficha vehicular" type="button" class="btn btn-success" onclick="Automotores.verDetalles('.$aRow['ID_VEHICULO'].')"><i class="fa fa-wrench"></i></button> | |
</div>'; | |
case '0': | |
$row[] = '<div class="btn-group "> | |
<button title="Rechazado" type="button" class="btn btn-danger" onclick="Automotores.verDetalles('.$aRow['ID_VEHICULO'].')"><i class="fas fa-ban"></i></button> | |
</div>'; | |
default: | |
$row[] = '<div class="btn-group "> | |
<button title="Acción pendiente" type="button" class="btn btn-warning" onclick="Automotores.ratificarLink('.$aRow['ID_VEHICULO'].')"><i class="fas fa-question"></i></button> | |
</div>'; | |
} | |
break; | |
} | |
} | |
$output['aaData'][] = $row; | |
} | |
echo json_encode(($output)); | |
}else{ | |
header('HTTP/1.0 403 Forbidden'); | |
echo 'Acceso prohibido'; | |
return false; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment