feat: precios particulares automáticos al seleccionar exámenes

- Sin empresa: usa precio_base de exam_tipos (tarifa particular)
- Panel de precios se muestra con solo seleccionar exámenes (no requiere convenio)
- Total se aplica automáticamente al campo de cobro sin clic manual

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-16 20:27:18 -05:00
co-authored by Claude Sonnet 4.6
parent fa338e9e11
commit 35cba08004
2 changed files with 16 additions and 3 deletions
+9 -2
View File
@@ -75,10 +75,10 @@ if ($nitEmpresa !== '') {
}
}
// ── Obtener nombre/codigo de los exámenes ─────────────────────
// ── Obtener nombre/codigo/precio_base de los exámenes ────────
$ph = implode(',', array_fill(0, count($examIds), '?'));
$stmtX = $pdo->prepare(
"SELECT id AS exam_tipo_id, codigo, nombre FROM exam_tipos WHERE id IN ($ph)"
"SELECT id AS exam_tipo_id, codigo, nombre, precio_base FROM exam_tipos WHERE id IN ($ph)"
);
$stmtX->execute($examIds);
$examMap = [];
@@ -121,6 +121,13 @@ foreach ($examIds as $examId) {
}
}
// Sin tarifa de empresa: usar precio_base (particular)
if (!$tienePrecio && $examen['precio_base'] !== null && (float)$examen['precio_base'] > 0) {
$tienePrecio = true;
$valorBase = (float)$examen['precio_base'];
$valorFinal = $valorBase;
}
// Si no hay precio, dejar null (sin tarifa o sin mapeo)
$subtotal += $valorFinal ?? 0;