-- 
-- 2021-10-27
-- Estas sentencias de creación de tablas, fueron obtenidas luego de 
-- ejecutar las migraciones en laravel.
--
CREATE TABLE `yoga_rendiciones` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `sedes_id` int(11) NOT NULL,
  `categoria_estudio` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `fecha_desde` date NOT NULL,
  `fecha_hasta` date NOT NULL,
  `central_recibio_dinero` tinyint(1) NOT NULL,
  `central_reviso_rendicion` tinyint(1) NOT NULL,
  `observaciones_de_la_sede` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `observaciones_de_central` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `yoga_rendiciones`
  ADD PRIMARY KEY (`id`),
  ADD KEY `i_id_categoria_estudio_categoria_monetizado` (`sedes_id`,`fecha_desde`,`categoria_estudio`),
  ADD KEY `yoga_rendiciones_sedes_id_index` (`sedes_id`),
  ADD KEY `yoga_rendiciones_categoria_estudio_index` (`categoria_estudio`);

ALTER TABLE `yoga_rendiciones`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `yoga_rendiciones`
  ADD CONSTRAINT `fk_rendiciones_TO_sedes` FOREIGN KEY (`sedes_id`) REFERENCES `sedes_centros` (`id_sede_centro`) ON UPDATE CASCADE;

CREATE TABLE `yoga_rendiciones_totales` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `rendicion_id` bigint(20) UNSIGNED NOT NULL,
  `categoria_monetizado` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `total_en_sistema` int(11) NOT NULL,
  `total_rectificado` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `yoga_rendiciones_totales`
  ADD PRIMARY KEY (`id`),
  ADD KEY `i_id_categoria_estudio_categoria_monetizado` (`rendicion_id`,`categoria_monetizado`),
  ADD KEY `yoga_rendiciones_totales_categoria_monetizado_index` (`categoria_monetizado`);

ALTER TABLE `yoga_rendiciones_totales`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `yoga_rendiciones_totales`
  ADD CONSTRAINT `fk_rendiciones_totales_TO_rendiciones` FOREIGN KEY (`rendicion_id`) REFERENCES `yoga_rendiciones` (`id`) ON UPDATE CASCADE;

-- -----------------------------------------------------------------------------
-- INSERT DE LOS DATOS A LA TABLA yoga_rendiciones
INSERT INTO yoga_rendiciones
( sedes_id, categoria_estudio, fecha_desde, fecha_hasta, 
central_recibio_dinero, central_reviso_rendicion, created_at )
	SELECT sedes_id, 'formacion', DATE(fecha_desde), DATE(fecha_hasta),
        central_recibio_rendicion, central_reviso_rendicion, fecha_hora_de_creacion
	FROM yoga_rendiciones_old
UNION ALL
	SELECT sedes_id, 'reiki', DATE(fecha_desde), DATE(fecha_hasta),
        central_recibio_rendicion, central_reviso_rendicion, fecha_hora_de_creacion
	FROM yoga_rendiciones_old
UNION ALL
	SELECT sedes_id, 'plataforma', DATE(fecha_desde), DATE(fecha_hasta),
        central_recibio_rendicion, central_reviso_rendicion, fecha_hora_de_creacion
	FROM yoga_rendiciones_old 
;

-- INSERT DE LOS DATOS A LA TABLA yoga_rendiciones_totales
INSERT INTO yoga_rendiciones_totales
( rendicion_id, categoria_monetizado, total_en_sistema )
	SELECT nueva.id, 'matricula', COALESCE(total_matriculas, 0)
	FROM yoga_rendiciones_old
	INNER JOIN yoga_rendiciones AS nueva
	ON nueva.sedes_id = yoga_rendiciones_old.sedes_id AND 
            nueva.categoria_estudio = 'formacion' AND
            nueva.fecha_desde = DATE(yoga_rendiciones_old.fecha_desde) AND
            nueva.fecha_hasta = DATE(yoga_rendiciones_old.fecha_hasta)
UNION ALL
	SELECT nueva.id, 'cuota', COALESCE(total_cuotas, 0)
	FROM yoga_rendiciones_old
	INNER JOIN yoga_rendiciones AS nueva
	ON nueva.sedes_id = yoga_rendiciones_old.sedes_id AND 
            nueva.categoria_estudio = 'formacion' AND
            nueva.fecha_desde = DATE(yoga_rendiciones_old.fecha_desde) AND
            nueva.fecha_hasta = DATE(yoga_rendiciones_old.fecha_hasta)
UNION ALL
	SELECT nueva.id, 'examen', COALESCE(total_examenes, 0)
	FROM yoga_rendiciones_old
	INNER JOIN yoga_rendiciones AS nueva
	ON nueva.sedes_id = yoga_rendiciones_old.sedes_id AND 
            nueva.categoria_estudio = 'formacion' AND
		nueva.fecha_desde = DATE(yoga_rendiciones_old.fecha_desde) AND
		nueva.fecha_hasta = DATE(yoga_rendiciones_old.fecha_hasta)
UNION ALL
	SELECT nueva.id, 'mes', COALESCE(total_plataformas, 0)
	FROM yoga_rendiciones_old
	INNER JOIN yoga_rendiciones AS nueva
	ON nueva.sedes_id = yoga_rendiciones_old.sedes_id AND 
            nueva.categoria_estudio = 'plataforma' AND
		nueva.fecha_desde = DATE(yoga_rendiciones_old.fecha_desde) AND
		nueva.fecha_hasta = DATE(yoga_rendiciones_old.fecha_hasta)
UNION ALL
	SELECT nueva.id, 'matricula', COALESCE(total_reiki_matriculas, 0)
	FROM yoga_rendiciones_old
	INNER JOIN yoga_rendiciones AS nueva
	ON nueva.sedes_id = yoga_rendiciones_old.sedes_id AND 
            nueva.categoria_estudio = 'reiki' AND
		nueva.fecha_desde = DATE(yoga_rendiciones_old.fecha_desde) AND
		nueva.fecha_hasta = DATE(yoga_rendiciones_old.fecha_hasta)
UNION ALL
	SELECT nueva.id, 'cuota', COALESCE(total_reiki_cuotas, 0)
	FROM yoga_rendiciones_old
	INNER JOIN yoga_rendiciones AS nueva
	ON nueva.sedes_id = yoga_rendiciones_old.sedes_id AND 
            nueva.categoria_estudio = 'reiki' AND
		nueva.fecha_desde = DATE(yoga_rendiciones_old.fecha_desde) AND
		nueva.fecha_hasta = DATE(yoga_rendiciones_old.fecha_hasta)
 
;


-- fin migración ---------------------------------------------------------------

-- 2023-07-02
-- Cambio la key 
UPDATE yoga_mails_textos_modelo 
SET motivo = 'MAIL_ESTUDIANTE_DEUDA' 
WHERE motivo = 'estudiante_deuda';


