Skip to content

Instantly share code, notes, and snippets.

@djom202
Created February 20, 2015 20:51
Show Gist options
  • Save djom202/c5a2c79aad5d6bdc8a58 to your computer and use it in GitHub Desktop.
Save djom202/c5a2c79aad5d6bdc8a58 to your computer and use it in GitHub Desktop.
Advance Search
.filter('search_process', function() {
return function(list, search, state, date1, date2) {
console.log(search+ " " +state+ " " +date1+ " " +date2);
var result = [];
var find = false;
if(search == null && state == null && date1 == null && date2 == null){
return list;
}
if(list != null){
if (angular.isArray(list)) {
for (var i = 0; i <= list.length - 1; i++) {
if(search != null && state == null && date1 == null && date2 == null){
// console.log('search', search);
// Comparamos con algunos de los campos como
// en el nombre, motonave o agencia
if(angular.lowercase(list[i].nombre) == angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].motonave) == angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].agencia) == angular.lowercase(search)){ find = true; }
}else if(search == null && state != null && date1 == null && date2 == null){
// console.log('search2', state);
if(angular.lowercase(state) === angular.lowercase(list[i].estado)){ find = true; }
}else if(search == null && state == null && date1 != null && date2 == null){
// console.log('search3', date1);
// Si no esta vacio
if(list[i].inicio != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
var dt = new Date(list[i].inicio);
var date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var inicio = dt;
dt = new Date(date1);
date = dt;
if(date.getTime() <= inicio.getTime()){ find = true; }
}
}else if(search == null && state == null && date1 == null && date2 != null){
// console.log('search4', date2);
// Si no esta vacio
if(list[i].fin != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
var dt = new Date(list[i].fin);
var date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var fin = dt;
dt = new Date(date2);
date = dt;
if(date.getTime() >= fin.getTime()){ find = true; }
}
}else if(search != null && state != null && date1 == null && date2 == null){
// console.log('search5', search + " " +state);
// Comparamos con algunos de los campos como
// en el nombre, motonave o agencia
if(angular.lowercase(list[i].nombre) === angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].motonave) === angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].agencia) === angular.lowercase(search)){ find = true; }
if(find == true){
// Verificamos si el estado no esta vacio
if(state != null){
//Si esta lleno lo buscamos por estado
if(angular.lowercase(state) === angular.lowercase(list[i].estado)){ find = true; }
else{ find = false; }
}
}
}else if(search != null && state != null && date1 != null && date2 == null){
// console.log('search6', search + " " + state + " " + date1);
// Comparamos con algunos de los campos como
// en el nombre, motonave o agencia
if(angular.lowercase(list[i].nombre) === angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].motonave) === angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].agencia) === angular.lowercase(search)){ find = true; }
if(find == true){
// Buscamos por el estado
if(angular.lowercase(state) === angular.lowercase(list[i].estado)){ find = true; }
else{ find = false; }
if(find == true){
// Si no esta vacio
if(list[i].inicio != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
var dt = new Date(list[i].inicio);
var date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var inicio = dt;
dt = new Date(date1);
date = dt;
if(date.getTime() <= inicio.getTime()){ find = true; }
else{ find = false; }
}
}
}
}else if(search != null && state != null && date1 != null && date2 != null){
// console.log('search7', search + " " + state + " " + date1+ " " + date2);
// Comparamos con algunos de los campos como
// en el nombre, motonave o agencia
if(angular.lowercase(list[i].nombre) === angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].motonave) === angular.lowercase(search)){ find = true; }
else if(angular.lowercase(list[i].agencia) === angular.lowercase(search)){ find = true; }
if(find == true){
// Buscamos por el estado
if(angular.lowercase(state) === angular.lowercase(list[i].estado)){ find = true; }
else{ find = false; }
if(find == true){
// Si no esta vacio
if(list[i].inicio != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
var dt = new Date(list[i].inicio);
var date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var inicio = dt;
dt = new Date(date1);
date = dt;
if(date.getTime() <= inicio.getTime()){ find = true; }
else{ find = false; }
if(find == true){
// Si no esta vacio
if(list[i].fin != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
dt = new Date(list[i].fin);
date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var fin = dt;
dt = new Date(date2);
date = dt;
if(date.getTime() >= fin.getTime()){ find = true; }
else{ find = false; }
}
}
}
}
}
}else if(search != null && state == null && date1 != null && date2 == null){
// console.log('search8', search + " " + date1);
// Comparamos con algunos de los campos como
// en el nombre, motonave o agencia
if(angular.lowercase(list[i].nombre) === angular.lowercase(search)){ find = true; console.log('Por nombre', find); }
else if(angular.lowercase(list[i].motonave) === angular.lowercase(search)){ find = true; console.log('Por motonave', find); }
else if(angular.lowercase(list[i].agencia) === angular.lowercase(search)){ find = true; console.log('Por agencia', find); }
if(find == true){
// Si no esta vacio
if(list[i].inicio != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
var dt = new Date(list[i].inicio);
var date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var inicio = dt;
dt = new Date(date1);
date = dt;
if(date.getTime() <= inicio.getTime()){ find = true; }
else{ find = false; }
}
}
}else if(search != null && state == null && date1 == null && date2 != null){
// console.log('search9', search + " " + date2);
// Comparamos con algunos de los campos como
// en el nombre, motonave o agencia
if(angular.lowercase(list[i].nombre) === angular.lowercase(search)){ find = true; console.log('Por nombre', find); }
else if(angular.lowercase(list[i].motonave) === angular.lowercase(search)){ find = true; console.log('Por motonave', find); }
else if(angular.lowercase(list[i].agencia) === angular.lowercase(search)){ find = true; console.log('Por agencia', find); }
if(find == true){
// Si no esta vacio
if(list[i].fin != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
dt = new Date(list[i].fin);
date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var fin = dt;
dt = new Date(date2);
date = dt;
if(date.getTime() >= fin.getTime()){ find = true; }
else{ find = false; }
}
}
}else if(search == null && state != null && date1 != null && date2 == null){
// console.log('search10', state + " " + date1);
// Buscamos por el estado
if(angular.lowercase(state) === angular.lowercase(list[i].estado)){ find = true; }
else{ find = false; }
if(find == true){
// Si no esta vacio
if(list[i].inicio != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
var dt = new Date(list[i].inicio);
var date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var inicio = dt;
dt = new Date(date1);
date = dt;
if(date.getTime() <= inicio.getTime()){ find = true; }
else{ find = false; }
}
}
}else if(search == null && state != null && date1 == null && date2 != null){
// console.log('search11', state + " " + date2);
// Buscamos por el estado
if(angular.lowercase(state) === angular.lowercase(list[i].estado)){ find = true; }
else{ find = false; }
if(find == true){
// Si no esta vacio
if(list[i].fin != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
dt = new Date(list[i].fin);
date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var fin = dt;
dt = new Date(date2);
date = dt;
if(date.getTime() >= fin.getTime()){ find = true; }
else{ find = false; }
}
}
}else if(search == null && state == null && date1 != null && date2 != null){
// console.log('search12', date1 + " " + date2);
if(list[i].inicio != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
var dt = new Date(list[i].inicio);
var date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var inicio = dt;
dt = new Date(date1);
date = dt;
if(date.getTime() <= inicio.getTime()){
console.log('Encontrado1');
// Si no esta vacio
if(list[i].fin != null){
// Convertirmos la fecha al formato requerido
// Antes de compararlas.
dt = new Date(list[i].fin);
date = dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate();
dt = new Date(date);
var fin = dt;
dt = new Date(date2);
date = dt;
if(date.getTime() >= fin.getTime()){ find = true; console.log('Encontrado2', list[i].fin); }
else{ find = false; }
}
}
}
}
if(find === true){ result.push(list[i]); find = false; }
}
}
}
return result;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment