feat(recepcion): motor de precios + selector empresa/convenio
- Nueva sección empresa/convenio en recepcion.php: búsqueda live por nombre/NIT, selector de subgrupo, campo autorización (cuando req_autoriza), diagnóstico CIE-10 - Tabla de precios calculados en tiempo real: resolución por tarifa de la empresa o subgrupo, descuento empresa aplicado, botón "Aplicar al cobro" - Al agregar/quitar exámenes o cambiar empresa/subgrupo se recalcula automáticamente - Nuevo API get_precios_examenes.php: resuelve precios desde lab_tarifas con soporte de tarifas derivadas por porcentaje - create_solicitud.php guarda nit_empresa, subgrupo_id, autorizacion, diag_ppal, items_precio (snapshot JSON al momento de la recepción) - Migración 10: ALTER turnero_solicitudes añade los 5 campos nuevos Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
b9bb4fc628
commit
a7aac706ee
@@ -32,7 +32,13 @@ $obs = isset($datos['observaciones']) ? trim((string) $datos['observac
|
||||
$numOrden = isset($datos['numero_orden']) ? trim((string) $datos['numero_orden']) : null;
|
||||
$embarazada = !empty($datos['embarazada']) ? 1 : 0;
|
||||
$soloMuestras = !empty($datos['solo_muestras']) ? 1 : 0;
|
||||
$medicoId = !empty($datos['medico_id']) ? (int)$datos['medico_id'] : null;
|
||||
$medicoId = !empty($datos['medico_id']) ? (int)$datos['medico_id'] : null;
|
||||
$nitEmpresa = !empty($datos['nit_empresa']) ? trim((string)$datos['nit_empresa']) : null;
|
||||
$subgrupoId = !empty($datos['subgrupo_id']) ? (int)$datos['subgrupo_id'] : null;
|
||||
$autorizacion = !empty($datos['autorizacion']) ? trim((string)$datos['autorizacion']) : null;
|
||||
$diagPpal = !empty($datos['diag_ppal']) ? trim((string)$datos['diag_ppal']) : null;
|
||||
$itemsPrecio = isset($datos['items_precio']) && is_array($datos['items_precio'])
|
||||
? json_encode($datos['items_precio']) : null;
|
||||
$pagosDetalle = null;
|
||||
if ($metodoPago === 'combinado' && isset($datos['pagos_detalle']) && is_array($datos['pagos_detalle'])) {
|
||||
$pd = $datos['pagos_detalle'];
|
||||
@@ -117,12 +123,15 @@ try {
|
||||
|
||||
$stmt = $pdo->prepare(
|
||||
"INSERT INTO turnero_solicitudes
|
||||
(turno_id, paciente_id, lugar_id, numero_orden, total_cobrado, metodo_pago, pagos_detalle, observaciones, embarazada, solo_muestras, medico_id, creado_por)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
(turno_id, paciente_id, lugar_id, numero_orden, total_cobrado, metodo_pago, pagos_detalle,
|
||||
observaciones, embarazada, solo_muestras, medico_id,
|
||||
nit_empresa, subgrupo_id, autorizacion, diag_ppal, items_precio, creado_por)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
);
|
||||
$stmt->execute([
|
||||
$turnoId, $pacienteId, $lugarId, $numOrden,
|
||||
$total, $metodoPago ?: null, $pagosDetalle, $obs ?: null, $embarazada, $soloMuestras, $medicoId, adminId(),
|
||||
$total, $metodoPago ?: null, $pagosDetalle, $obs ?: null, $embarazada, $soloMuestras, $medicoId,
|
||||
$nitEmpresa, $subgrupoId, $autorizacion, $diagPpal, $itemsPrecio, adminId(),
|
||||
]);
|
||||
$solicitudId = (int) $pdo->lastInsertId();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user