Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save guazontsubasa/a2654013372f40ebd98ef03fa8b83048 to your computer and use it in GitHub Desktop.
Save guazontsubasa/a2654013372f40ebd98ef03fa8b83048 to your computer and use it in GitHub Desktop.
Datatable order by server side
<?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