Propuesta IA: el documento lista TODAS las partidas de la cotizacion
Encontrado con datos reales de produccion. UJ2606UR001 tiene 58 partidas y el schema acota alcance a 40, asi que 18 servicios cotizados desaparecian del documento del cliente en silencio: aparecian en el PDF economico pero no en el consultivo, para el mismo envio. El arreglo no es subir el tope. El generador ahora recorre las partidas de la COTIZACION, no las que la IA alcanzo a describir, y usa la prosa de la IA cuando existe. Si falta, imprime el detalle del catalogo (entregables y tiempo de entrega) como respaldo. La completitud la manda la base de datos; la IA solo aporta la redaccion. Es el mismo principio que ya rige para el dinero. Verificado contra la propuesta real que genero produccion: 58 de 58 presentes, cero faltantes. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7682fcb86b
commit
d20007d252
@@ -144,6 +144,17 @@ async function main() {
|
||||
});
|
||||
check("una partida inventada no se dibuja", !textoDePdf(conFantasma).includes("MARCADORFANTASMA"));
|
||||
|
||||
// Completitud: la cotizacion manda, no lo que la IA alcanzo a describir.
|
||||
// Verificado con UJ2606UR001 en produccion: 58 partidas, la IA describio 40.
|
||||
const econGrande = { ...econ, partidas: [...econ.partidas,
|
||||
{ refPartida: "P03", servicioCotizadoId: "c3", nombre: "MARCADORNODESCRITA servicio extra", fase: 3, tipoPago: "unico" as const, precio: 5000, tiempoEntrega: "1 semana", modeloCobro: "fijo", horas: null, tarifaHora: null, entregables: ["Entregable A", "Entregable B"] },
|
||||
] };
|
||||
const conNoDescrita = await generarPropuestaPDF({ ...datos, economia: econGrande });
|
||||
const txtND = textoDePdf(conNoDescrita);
|
||||
check("una partida SIN descripcion de la IA igual aparece", txtND.includes("MARCADORNODESCRITA"));
|
||||
check("y aparece con su precio", txtND.includes("5,000"));
|
||||
check("y con su detalle del catalogo como respaldo", txtND.includes("Entregable A"));
|
||||
|
||||
// ── Anexo interno ──
|
||||
const anexo = await generarAnexoInternoPDF(datos);
|
||||
const txtA = textoDePdf(anexo);
|
||||
|
||||
Reference in New Issue
Block a user