Forum


Table Manager Support

Table Manager Support
Forums
Public write access is disabled. Please login

La busqueda no regresa el resultado actual de la tabla que hacer? 08.03.2017 23:58

Hola, acabo de comprar e instalar su extensión y está excelente, me parece muy buena para lo que la necesito y es muy amigable, gracias por el esfuerzo de desarrollar esta extensión, sin embargo tengo un pequeño problema:

Deseo buscar existencias de productos dentro de una tabla en mi sitio desarrollado con joomla! donde en la busqueda se introduzca el número de producto y el resultado me arroje las existencias de dicho producto, es muy sencillo, ya lo hice a través de su extensión, sin embargo en algunos productos me regresa valores que no corresponden, por ejemplo: en mi tabla tengo la cve_producto (que es la clave de producto) 105 y en existencias (que es la exsitencia en almacen, un total de 10 unidades), si yo busco esa clave de producto usando el campo de busqueda de su extensión, me regresa el producto 10105 el cual si existe, pero no es el que busqué y además me regresa el valor de 0 en existencias, lo cual es correcto, pero yo no quiero esa clave de producto, quiero el 105 y no me sale.

Estuve probando mucho la extensión y parece que sucede con muchos producto similares, es como si la extensión usara una condición LIKE en el query, yo necesito que sea exacta, que si introduzco la clave de producto 105 en el search field, me regrese el resultado de dicho producto.

He configurado bien toda la extensión, la gran mayoría de mis productos se presentan sin ningún problema, solo los que parece que tienen numeros similares, por ejemplo me pasa con el 2023, el cual me arroja el valor 42023 que también existe como clave de producto, pero no es lo mismo.

Me pueden sugerir como sulucionar esto? me es muy importante poder realizar la busqueda exacta y que me arroje el valor exacto que busco.

Que puede ser? alguna idea?

Gracias de antemano por su fabulosa extensión,

Reciban un cordial saludo desde México

Moches

Re: La busqueda no regresa el resultado actual de la tabla que hacer? 09.03.2017 08:51

Hola,

La búsqueda utiliza like, pero si quieres una búsqueda exacta desde el search hay que hacer un pequeño cambio en el código. Ve al fichero JOOMLA/components/com_mstablemanager/models/dataraw.php y en la línea 348 comenta este código:

$value = '%'.MSHelper::__getEscapedWrapper($value,true).'%';
foreach ($cols as $col){
if($filtercols==null || ($filtercols!=null && in_array($col, $filtercols))){
$ret[]=$db->quoteName($col).' like '.$db->quote($value);
}
}

para que quede así:
/*$value = '%'.MSHelper::__getEscapedWrapper($value,true).'%';
foreach ($cols as $col){
if($filtercols==null || ($filtercols!=null && in_array($col, $filtercols))){
$ret[]=$db->quoteName($col).' like '.$db->quote($value);
}
}*/
y añade esto para que funcione con búsqueda exacta:
$value = MSHelper::__getEscapedWrapper($value,true);
foreach ($cols as $col){
if($filtercols==null || ($filtercols!=null && in_array($col, $filtercols))){
$ret[]=$db->quoteName($col).' = '.$db->quote($value);
}
}
Prueba y nos dices si funciona cómo quieres.

Saludos,
Moonsoft Team
www.moonsoft.es

Re: La busqueda no regresa el resultado actual de la tabla que hacer? 10.03.2017 15:55

Disculpa la molestia, he recibido tu comentario pero en ninguna parte del archivo que me indicas existe el código que me pides que comente.

De hecho he buscado en todos los archivos php que se encuentran en el componente, y en ninguno aparece las lineas que me dices, de hecho si sigo tus instrucciones, lo que encuentro en la línea 348 es otro código totalmente diferente y por mas que busco esas lineas de código no las encuentro, me puedes ayudar con esto?

Seguí tus instrucciones al pie de la letra, y en /components/com_mstablemanager/models/ tengo los siguientes archivos:

1. dataraw.php
2. dataraw.php.txt
3. index.html
4. tablemanager.php
5. tablemanager.php.txt

Me indicas por favor que tengo que hacer o donde es el código porque no lo encuentro en ningún fichero, utilice la función de buscar en todos los archivos php que se instalan en el componente tanto del lado administrativo como en el site (componentes) y no encuentro donde están esas lineas de código.

Esto es lo que sale en la linea 348 (empieza en la linea 347 y termina en la linea 355) del archivo dataraw.php:

private function _setSessionData($ses_rows){
$idtableSes=MSHelper::__requestGetVarWrapper('idtable');
$session=JFactory::getSession();
$session->clear('tm_data_'.$idtableSes);
$session->set('tm_data_'.$idtableSes,$ses_rows);
sleep(0.5);// wait until session store data
//sleep(2);// wait until session store data
return true;
}

Gracias por sus atenciones, espero me puedan ayudar.
Saludos desde Mexico

Moches

Re: La busqueda no regresa el resultado actual de la tabla que hacer? 11.03.2017 16:58

Hola,

Perdona la confusión, el fichero es este: JOOMLA/administrator/components/com_mstablemanager/models/wrapper.model.php. El resto de indicaciones son correctas.

Saludos,
Moonsoft Team
www.moonsoft.es
Are you satisfied with our products/services/support?
Please help us to keep improving, add a review at  joomla extensions site and  magento connect
FaLang translation system by Faboba

Our clients' feedback