.

viernes, 3 de mayo de 2019

Dolibarr 9.0.1 Warning: A non-numeric value encountered in \htdocs\comm\propal\card.php on line 1121




Posible mente al agregar un extrafield te muestre ese error (bug) al agregar un producto, no sucede nada si se muestra, pero es molesto estar viéndolo.
Es causado a que en una validación se está recibiendo un valor no numérico tal y como el mensaje lo muestra. El extrafield se supone que es numérico pero por alguna razón es guardado en string.

SOLUCIÓN

Debes dirigirte a la siguiente dirección: /htdocs/comm/propal/card.php

En la línea 1121, te encontrarás con el siguiente código:

if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) ) && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
setEventMessages($mesg, null, 'errors');
} else {

===============================================================
Lo que debes hacer es poner como double los valores recibidos en esa condición, con doubleval( ), como te muestro a continuación:
if (((!empty(doubleval($conf->global->MAIN_USE_ADVANCED_PERMS)) && empty(doubleval($user->rights->produit->ignore_price_min_advance))) || empty(doubleval($conf->global->MAIN_USE_ADVANCED_PERMS)) ) && (! empty(doubleval($price_min)) && (doubleval(price2num($pu_ht)) * (1 - doubleval(price2num($remise_percent)) / 100) < doubleval(price2num($price_min))))) {
$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
setEventMessages($mesg, null, 'errors');
} else {





Si el contenido le ha sido de utilidad, lo invitamos a hacer una donación en el siguiente botón.

La cantidad que sea de su voluntad entregar


En caso que no se visualice el contenido, hacer recargar (refresh) a la página que sea abierta.





Dolibarr 9.0.1 - Al agregar Extrafields no calcula bien el total_ttc, ni el total_tva (BUG, ERROR)



SOLUCIÓN

Debe dirigirse a la siguiente dirección: /htdocs/core/class/commonobject.class.php

Cerca de la línea 2850 se presenta el siguiente código:

$sqlfix="UPDATE ".MAIN_DB_PREFIX.$this->table_element_line." SET ".$fieldtva." = ".$tmpcal[1].", total_ttc = ".$tmpcal[2]." WHERE rowid = ".$obj->rowid;
dol_syslog('We found unconsistent data into detailed line (difference of '.$diff.') for line rowid = '.$obj->rowid." (total vat of line calculated=".$tmpcal[1].", database=".$obj->total_tva."). We fix the total_vat and total_ttc of line by running sqlfix = ".$sqlfix);
$resqlfix=$this->db->query($sqlfix);
if (! $resqlfix) dol_print_error($this->db, 'Failed to update line');
$obj->total_tva = $tmpcal[1];
$obj->total_ttc = $tmpcal[2];

=============================================================
Debes comentar las siguientes línes:
//$obj->total_tva = $tmpcal[1];
//$obj->total_ttc = $tmpcal[2];

No se la razón por la cual pusieron ese código, pero muestra un resultado erróneo.



Si el contenido le ha sido de utilidad, lo invitamos a hacer una donación en el siguiente botón.

La cantidad que sea de su voluntad entregar


En caso que no se visualice el contenido, hacer recargar (refresh) a la página que sea abierta.





Administrar Editor de Texto JOOMLA