Files
whatsapp/migrations/20260704_lis_11_recepciones_new.sql
Lizandro GuarnizoandClaude Sonnet 4.6 f695b04f5b feat(caja): generar lab_recepciones al confirmar solicitud en turnero
- create_solicitud.php crea lab_recepciones (es_historico=0) dentro de
  la transacción: num_factura auto-secuencial para registros nuevos,
  campos empresa/subgrupo/autorización/diagnóstico tomados de la solicitud
- Inserta lab_relaciones por cada examen con precio del snapshot JSON
- Inserta lab_pagos + lab_pagos_det si hay metodo_pago registrado
- Bloque try/catch: si migración 11 aún no corrió solo se loguea,
  no se revierte la solicitud principal
- recepcion.php muestra toast "Recepción #N generada" al guardar
- Migración 11: ALTER lab_recepciones.id → AUTO_INCREMENT,
  ADD solicitud_id, ALTER lab_pagos.numcaja_legacy → nullable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-04 22:12:48 -05:00

26 lines
1.2 KiB
SQL

-- =============================================================
-- LIS 11 — Habilita lab_recepciones para registros nuevos (no históricos)
--
-- El esquema original fue diseñado SOLO para histórico Firebird:
-- · id INT NOT NULL (no AUTO_INCREMENT) — el ID venía de Firebird
-- · lab_pagos.numcaja_legacy NOT NULL UNIQUE — también era de Firebird
--
-- Aquí los ajustamos para aceptar registros del nuevo sistema
-- sin tocar los datos históricos migrados.
-- =============================================================
-- 1. Hacer id AUTO_INCREMENT (MySQL usará MAX(id)+1 como siguiente valor,
-- así los registros nuevos nunca colisionan con los históricos de Firebird).
ALTER TABLE lab_recepciones
MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;
-- 2. Enlace de vuelta a la solicitud del turnero
ALTER TABLE lab_recepciones
ADD COLUMN IF NOT EXISTS solicitud_id INT UNSIGNED DEFAULT NULL
COMMENT 'FK turnero_solicitudes.id — NULL para registros históricos Firebird';
-- 3. numcaja_legacy era NOT NULL UNIQUE (campo obligatorio en Firebird).
-- Los registros nuevos no tienen NUMCAJA → lo hacemos nullable.
ALTER TABLE lab_pagos
MODIFY COLUMN numcaja_legacy INT DEFAULT NULL;