call spQuery_Planilla('2', '', NULL, NULL);

DROP PROCEDURE IF EXISTS spQuery_Planilla;
CREATE PROCEDURE spQuery_Planilla(
  varCodigo int,
	varNombre varchar(80),
  varEstado char(1),
  varTipo   varchar(2),
  varField  varchar(60),
  varOrder  varchar(5)
  )
BEGIN
  DECLARE varCadCod, varCadNom, varCadEst, varCadTip text default '';
  DECLARE varCadOrd TEXT DEFAULT '';
  
  if varCodigo is not null or varCodigo <> '' then
    set varCadCod = CONCAT(" and P.id_planilla = ", varCodigo, " ");
  end if;
  if ifnull(varNombre,'') <> '' then
    set varCadNom = CONCAT(" and P.nombre LIKE '%", varNombre, "%' ");
  end if;
  if ifnull(varEstado,'') <> '' then
    set varCadEst = CONCAT(" and P.estado = '", varEstado, "' ");
  end if;
  if ifnull(varTipo,'') <> '' then
    set varCadTip = CONCAT(" and P.id_tipo_planilla = '", varTipo, "' ");
  end if;
  -- Para Ordenar
  IF varField is not null and varField <> '' THEN
    SET varField = CASE WHEN varField = 'FECHA_CREADO' THEN 'P._date_create'
                        WHEN varField = 'FECHA_MODIFI' THEN 'P._date_update'
                        ELSE varField
                   END;
    SET varCadOrd = CONCAT("ORDER BY ", varField, " ");
    IF varOrder is not null and varOrder <> '' THEN
      SET varCadOrd = CONCAT(varCadOrd, varOrder, " ");      
    END IF;
  END IF;
  
	set @sql = CONCAT("select P.id_planilla as CPLA, P.nombre as PLA