Blog ·
El precio no es un número: es una decisión registrada
El campo se llama "precio" y guarda un decimal. Esa es la simplificación que hace imposible explicar un presupuesto tres meses después.

El campo se llama precio y guarda un decimal. Esa es la simplificación que hace imposible explicar un presupuesto tres meses después.
Lo que realmente determina el número: qué lista de precios, qué cliente y el acuerdo que tenga, la cantidad, la moneda y su cotización del día, el tratamiento impositivo de ese cliente y ese producto, y cualquier descuento que alguien aplicó a mano — con su motivo.
De ahí siguen dos cosas, y la segunda es la que todos saltean.
El precio del documento se congela
Cuando un presupuesto se emite, los números son los de ese día. Si el documento recalcula desde las listas actuales cada vez que se abre, un presupuesto enviado el mes pasado le muestra números distintos al cliente que a vos. Los documentos guardan sus propios valores de línea, siempre.
Y el porqué se congela con él
Guardar 4.200 te dice qué se cobró, no por qué. Qué lista, qué descuento, qué cotización — porque alguien va a preguntar, y la alternativa es reconstruir una decisión a partir de datos que ya cambiaron.
En nuestro sistema, un descuento manual lleva el motivo por el que se otorgó. Ese campo resolvió más discusiones que cualquier reporte.
Dos más que aparecen siempre
Los impuestos son por cliente y por producto a la vez, así que un flag único de “con o sin impuesto” se queda corto rápido.
La moneda extranjera necesita la cotización y su fecha guardadas en el documento, no consultadas después — si no, el mismo documento vale importes distintos según cuándo lo abras.
El patrón, en una línea: un valor calculado en un documento no es un cache — es el registro de una decisión.