Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Ayuda para filtrar por Fechas

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
jorgejezuh
Novato
Mensajes: 1
Registrado: Dom, 19/07/2020, 16:52

Ayuda para filtrar por Fechas

Mensaje por jorgejezuh »

Buenas, soy primerizo en el tema de la programación en Php y estoy intentando desarrollar un módulo para Dolibarr en base a mis necesidades.
En general voy bastante bien pero estoy atascado con el tema de los campos en formatos DATE, DATETIME y por el estilo.
En mi módulo he creado un formulario para guardar todos los campos que necesito y hay varios que son fechas, se introducen y se guardan bien pero a la hora de listar los distintos registros que tengo guardados no me deja filtrar por fechas y es importante que me permitiera hacerlo pero no tengo ni idea después buscar información acerca de esto.

Aquí os dejo en bucle que se utiliza en el fichero list.php de mi modulo, en el último "elseif" se excluyen a los campos de tipo date, timestamp de que les aparezca un recuadro de tipo input para buscar, aunque cambie ese "elseif" les aparece el recuadro pero evidentemente no consigue obtener resultados porque supongo que al ser de tipo DATE se tendrá que buscar de otra manera pero no se como hacerlo.

Código: Seleccionar todo

// Fields title search
// --------------------------------------------------------------------


print '<tr class="liste_titre">';
foreach ($object->fields as $key => $val)
{
	$cssforfield = (empty($val['css']) ? '' : $val['css']);
	if ($key == 'status') $cssforfield .= ($cssforfield ? ' ' : '').'center';
	elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) $cssforfield .= ($cssforfield ? ' ' : '').'center';
	elseif (in_array($val['type'], array('timestamp'))) $cssforfield .= ($cssforfield ? ' ' : '').'nowrap';
	elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield .= ($cssforfield ? ' ' : '').'right';
	if (!empty($arrayfields['t.'.$key]['checked']))
	{
		print '<td class="liste_titre'.($cssforfield ? ' '.$cssforfield : '').'">';
		if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth75');
		elseif (strpos($val['type'], 'integer:') === 0) {
			print $object->showInputField($val, $key, $search[$key], '', '', 'search_', 'maxwidth150', 1);
		}
		elseif (! preg_match('/^(date|timestamp)/', $val['type'])){
			print '<input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'">';
		}
		
		print '</td>';
	}
}