Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Descuento por monto y no por % con multidivisa (aporte)

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
Avatar de Usuario
aitorxs
Almirante
Mensajes: 306
Registrado: Mar, 03/02/2015, 17:46

Descuento por monto y no por % con multidivisa (aporte)

Mensaje por aitorxs »

Buen día compañeros, estoy tratando de hacer un cambio en el código para poder ingresar el descuento por monto y no por % usando multidivisa, alguno de uds logro hacer algo parecido?
Por el momento estoy complicado en esta parte

Imagen

Este es el código donde multiplica el porcentaje ingresado por el precio de venta dando como resultado el descuento, ahi no hay problema los descuento salen bien.

Pero si cambio de esta manera para que no multiplique y en su lugar reste el monto.
Imagen

Me hace el descuento, pero lo aplica el monto tanto a la moneda por defecto como a la multidivisa de la misma manera.
Imagen

Estoy tratando de hacer la operacion de diferentes formas pero o bien me afecta a las dos divisas con el mismo descuento o sino me muestra las dos divisas con el mismo monto.

Alguna idea de lo que puede estar pasando?
Última edición por aitorxs el Lun, 25/02/2019, 22:01, editado 2 veces en total.
sistemas@machfree.com | http://www.machfree.com | Trujillo - Perú
*Si no respondo los mensajes....enviame un email ;)

Avatar de Usuario
aduart
Yoda
Mensajes: 1064
Registrado: Mié, 06/06/2012, 19:37

Mensaje por aduart »

Hola, no conozco esa parte en particular, pero a nivel de tabla, se manejan variables separadas
para la divisa base, y para la segunda divisa. Tal vez en ese formulario pase algo parecido, y
tengas que tocar solo las variables de la segunda divisa. Creo que las variavles de la segunda divisa
se calculan a partir de los contenidos de la primera, puede que en el paso de calculo de la segunda
divisa tengas que hacer el cambio. Es solo suposici{on en base a lo que vi de multidivisa.

Existos y saludos,
Eduardo.

Avatar de Usuario
aitorxs
Almirante
Mensajes: 306
Registrado: Mar, 03/02/2015, 17:46

Mensaje por aitorxs »

Parece que ya lo resolví; tienes razon a nivel de tabla la multidivisa se maneja en diferentes variables.

El código quedaria así.(core/lib/price.lib.php)

$remise_percent_ligne_multicurrency = $remise_percent_ligne; //(para restar a la multidivisa sin ningun cambio)
$remise_percent_ligne = ($remise_percent_ligne / (1 + ($txtva / 100)))/$multicurrency_tx; //(divide el monto ingresado con el tipo de cambio )
$tot_sans_remise = $pu * $qty * $progress / 100;
$tot_avec_remise_ligne = $tot_sans_remise - ($remise_percent_ligne* $qty );
$tot_avec_remise = $tot_avec_remise_ligne - ($remise_percent_global* $qty);

y en la linea 371 se cambio $remise_percent_ligne por $remise_percent_ligne_multicurrency

$newresult = calcul_price_total($qty, $pu_devise, $remise_percent_ligne_multicurrency, $txtva, $uselocaltax1_rate, $uselocaltax2_rate, $remise_percent_global, $price_base_type, $info_bits, $type, $seller, $localtaxes_array, $progress, 1, 0);

con eso ya queda el cambio para hacer el descuento por montos. Espero le sirva a alguien más, esto fue probado en factura y pedido cliente. saludos
sistemas@machfree.com | http://www.machfree.com | Trujillo - Perú
*Si no respondo los mensajes....enviame un email ;)