feat(cotizador): apartado editable con mínimo $20,000 + cuota de mantenimiento por desarrollo

- Input de apartado con validación (mínimo 20k), clamp en el motor y bloqueo de PDF si inválido
- El cliente puede apartar con más; solo se recorre del enganche, el total no cambia
- cuotaMantenimiento tipada (number|null) en config por desarrollo; null → PENDIENTE
- Knowledge IA actualizada: apartado mínimo 20k (FAQ + proceso de venta) reindexada
- Tests 61/61 verdes (8 nuevos)
This commit is contained in:
2026-08-24 23:23:57 +00:00
parent 122c4d6102
commit 29c3947313
10 changed files with 122 additions and 19 deletions

View File

@@ -12,7 +12,7 @@ const DIAGONAL: ParametrosDesarrollo = {
nombre: 'Diagonal',
precioUnico: false,
fuenteDeN: 'fechaEntrega',
cuotaMantenimiento: '1,500 Aprox.',
cuotaMantenimiento: 1500,
prefijoUnidadPdf: 'CASA',
propuestas: [
{
@@ -68,7 +68,7 @@ const ATELIER: ParametrosDesarrollo = {
precioUnico: true,
fuenteDeN: 'fijo', // inventario ya entregado: las mensualidades son 1 solo pago
nFijo: 1,
cuotaMantenimiento: 'PENDIENTE',
cuotaMantenimiento: null,
prefijoUnidadPdf: 'DEPTO',
propuestas: [
{
@@ -126,7 +126,7 @@ const ESTANZA: ParametrosDesarrollo = {
precioUnico: true,
fuenteDeN: 'fijo', // TERM. OBRA = 1 mes en todas las casas
nFijo: 1,
cuotaMantenimiento: 'PENDIENTE',
cuotaMantenimiento: null,
prefijoUnidadPdf: 'CASA',
propuestas: [
{
@@ -181,7 +181,7 @@ const SENDA: ParametrosDesarrollo = {
nombre: 'Senda',
precioUnico: true,
fuenteDeN: 'fechaEntrega', // unidades sin fecha en TERM => N null (mensualidades "—")
cuotaMantenimiento: 'PENDIENTE DE DEFINIR',
cuotaMantenimiento: null,
prefijoUnidadPdf: 'CASA',
propuestas: [
{
@@ -236,7 +236,7 @@ const SOLANA: ParametrosDesarrollo = {
nombre: 'Solana',
precioUnico: true,
fuenteDeN: 'porUnidad', // MESES PARA FIRMA APROX del inventario (1–4)
cuotaMantenimiento: 'PENDIENTE',
cuotaMantenimiento: null,
prefijoUnidadPdf: 'CASA',
propuestas: [
{