OdooWiki OCA HUB

Sale Order Line Final Price

sale_order_line_final_price folder_open OCA/sale-workflow open_in_new
Sales Management Licencia: AGPL-3

Este módulo añade un campo Final Price a las líneas de pedido de venta, que contiene el precio unitario una vez aplicado el descuento.

Establecerlo calcula el descuento que convierte el precio procedente de la tarifa en la cifra acordada, de modo que el precio de catálogo permanece visible en el presupuesto y la rebaja queda registrada como tal.

Además, el precio unitario y el descuento pasan a ser de solo lectura para cualquiera que no sea Administrador de Ventas: los comerciales indican lo que paga el cliente y el sistema calcula el descuento.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 18.0

Añade un campo Final Price a las líneas de pedido de venta: los comerciales escriben el precio acordado con el cliente y Odoo calcula el descuento, mientras que el precio unitario y el descuento permanecen bloqueados para quienes no son responsables de ventas.

En cada línea de pedido de venta aparece una nueva columna Final Price, que muestra el precio unitario después del descuento. En lugar de escribir un descuento, un comercial puede escribir el precio que el cliente pagará realmente; Odoo calcula entonces el porcentaje de descuento correspondiente, de modo que el precio de catálogo procedente de la lista de precios permanece visible en el presupuesto y la rebaja se registra como descuento.

  • Los campos de precio unitario y descuento pasan a ser de solo lectura para los usuarios que no sean Sales Administrators, por lo que solo los responsables pueden modificarlos directamente.
  • El campo Final Price se muestra en la lista de líneas del pedido y en el formulario de detalle de la línea de la pantalla del pedido de venta.
  • Solo es visible para los usuarios que tengan activada la configuración de descuento por línea.
  • Una vez que una línea ha sido facturada (cantidad facturada superior a cero), el Final Price ya no se puede editar.
  • Cambiar el precio unitario o el descuento actualiza automáticamente el Final Price, y cambiar el Final Price actualiza automáticamente el descuento.

El módulo solo afecta a las líneas de pedido de venta (sale.order.line) y a la vista de formulario del pedido de venta; no se añaden menús ni informes nuevos.

Depende de

sale
Modelos y campos (1)
  • sale.order.line · amplía un modelo existenteprice_final (Final Price), price_edit_allowed

Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.

Fuentes · Odoo 18.0

Confirmado el 2026-11-03 en la rama 18.0 de OCA/sale-workflow.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

El descuento es el único margen en el que el precio final tiene que moverse, así que la precisión decimal de Discount es lo que determina cuán exacto puede ser el precio final. Con los dos decimales que Odoo trae de serie, el residuo del redondeo es como máximo unit price * 0.005 / 100 por unidad, lo que se mantiene por debajo de un céntimo en una sola unidad pero se acumula con la cantidad: 10 unidades de una línea con un precio de 30.75 suman 549.99 en lugar de los 550.00 solicitados.

Elevar la precisión decimal de Discount (Settings > Technical > Decimal Accuracy) a 5 o 6 dígitos reduce ese residuo por debajo del céntimo para cualquier precio y cantidad razonables, y los importes de la línea entonces suman el precio final.

Ten en cuenta que esta precisión rige todos los descuentos de la base de datos, y que los descuentos con tantos decimales se imprimirán como tales a menos que se indique lo contrario en el informe.

En cualquier línea de pedido de venta, rellene Precio final con el precio unitario acordado con el cliente. El descuento se calcula de inmediato, manteniendo el precio unitario dado por la tarifa: un precio final de 750,00 sobre 1.000,00 da un descuento del 25%. Editar el precio unitario o el descuento actualiza el precio final en su lugar.

Una línea cuyo precio de tarifa es cero es la excepción. Ningún descuento puede elevar ese precio hasta la cifra acordada, y tampoco hay un precio de catálogo que merezca la pena conservar, así que el precio final se escribe directamente en el precio unitario y el descuento permanece en cero.

El descuento es la única cifra que se mueve, por lo que el precio final solo puede alcanzarse tan cerca como permita la precisión decimal de Discount. Cuando la cifra solicitada es inalcanzable, la línea se conforma con la más cercana, y el precio final mostrado es siempre lo que realmente vale la línea: pedir 333,33 sobre 1.000,00 da un descuento del 66,67%, que es 333,30.

Ese resto también puede quedar fuera de la vista en el precio final y seguir apareciendo en el importe de la línea: 30,75 con el -78,86% necesario para alcanzar 55,00 es 54,99945 por unidad, así que 10 unidades suman 549,99 en lugar de 550,00. Aumentar la precisión decimal de Discount reduce la diferencia.

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.