up
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
-- ============================================================
|
||||
-- Migration: 20260410_lab_domicilio_pagos_parciales
|
||||
-- Soporta múltiples métodos de pago por domicilio.
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `lab_domicilio_pagos` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`domicilio_id` INT(11) NOT NULL COMMENT 'FK lab_domicilios.id',
|
||||
`modo` ENUM('efectivo','transferencia','otro') NOT NULL DEFAULT 'efectivo'
|
||||
COMMENT 'Método de pago',
|
||||
`monto` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT 'Monto recibido por este método',
|
||||
`notas` VARCHAR(255) DEFAULT NULL COMMENT 'Referencia / observación del pago',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_domicilio` (`domicilio_id`),
|
||||
CONSTRAINT `fk_ldp_domicilio`
|
||||
FOREIGN KEY (`domicilio_id`) REFERENCES `lab_domicilios` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Pagos parciales por método de pago para cada domicilio';
|
||||
|
||||
-- Migrar registros existentes que ya tienen pago_modo + pago_monto registrados
|
||||
INSERT INTO `lab_domicilio_pagos` (`domicilio_id`, `modo`, `monto`, `notas`, `created_at`)
|
||||
SELECT id,
|
||||
pago_modo,
|
||||
pago_monto,
|
||||
pago_notas,
|
||||
COALESCE(pago_fecha, created_at)
|
||||
FROM `lab_domicilios`
|
||||
WHERE pago_estado = 'pagado'
|
||||
AND pago_modo IS NOT NULL
|
||||
AND pago_monto > 0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `lab_domicilio_pagos` ldp WHERE ldp.domicilio_id = `lab_domicilios`.id
|
||||
);
|
||||
Reference in New Issue
Block a user