From 8f4e44aa3782a513db115804be086a42201621a1 Mon Sep 17 00:00:00 2001 From: Bernat Date: Wed, 27 Nov 2019 13:37:36 +0100 Subject: [PATCH] update procedures db --- db/changes/10120-december/00-vn2008Clean.sql | 123 +++++++++++++++++++ db/changes/10120-december/00-vnClean.sql | 33 ++++- 2 files changed, 151 insertions(+), 5 deletions(-) create mode 100644 db/changes/10120-december/00-vn2008Clean.sql diff --git a/db/changes/10120-december/00-vn2008Clean.sql b/db/changes/10120-december/00-vn2008Clean.sql new file mode 100644 index 000000000..b2fe13d4e --- /dev/null +++ b/db/changes/10120-december/00-vn2008Clean.sql @@ -0,0 +1,123 @@ + +DROP procedure IF EXISTS `vn2008`.`clean`; + +DELIMITER $$ +CREATE DEFINER=`root`@`%` PROCEDURE `vn2008`.`clean`(IN `v_full` TINYINT(1)) +proc: BEGIN + DECLARE v_date DATETIME; + DECLARE v_date18 DATETIME; + DECLARE v_date26 DATETIME; + DECLARE v_date8 DATE; + DECLARE v_date6 DATE; + DECLARE v_date3Month DATE; + DECLARE vDate2000 DATE; + DECLARE vRangeDeleteTicket INT; + DECLARE strtable varchar(15) DEFAULT NULL; + DECLARE done BIT DEFAULT 0; + + SET v_date = TIMESTAMPADD(MONTH, -2, CURDATE()); + SET v_date18 = TIMESTAMPADD(MONTH, -18,CURDATE()); + SET v_date26 = TIMESTAMPADD(MONTH, -26,CURDATE()); + SET v_date3Month = TIMESTAMPADD(MONTH, -3, CURDATE()); + SET v_date8 = TIMESTAMPADD(DAY, -8,CURDATE()); + SET v_date6 = TIMESTAMPADD(DAY, -6,CURDATE()); + SET vRangeDeleteTicket = 60; + + DELETE FROM cdr WHERE calldate < v_date; + DELETE FROM Monitoring WHERE ODBC_TIME < v_date; + DELETE FROM Conteo WHERE Fecha < v_date; + DELETE FROM XDiario WHERE FECHA < v_date3Month OR FECHA IS NULL; + DELETE FROM mail WHERE DATE_ODBC < v_date; + + -- DELETE FROM Cajas WHERE CajaFecha < v_date18; + + DELETE rr FROM Recibos_recorded rr JOIN Recibos r ON rr.Id_Recibos = r.Id WHERE r.Fechacobro < v_date; + + SELECT MAX(idTickets_dits) + INTO @id + FROM Tickets_dits + WHERE ODBC_DATE < v_date; + DELETE FROM Tickets_dits WHERE idTickets_dits <= @id; + + DELETE FROM expeditions_deleted WHERE odbc_date < v_date26; + DELETE FROM Entradas_dits WHERE ODBC_DATE < v_date18; + DELETE FROM log_articles WHERE ODBC_DATE < v_date; + DELETE FROM Splits WHERE Fecha < v_date18; + DELETE ts FROM Tickets_stack ts JOIN Tickets t ON ts.Id_Ticket = t.Id_Ticket WHERE t.Fecha < v_date; + DELETE tobs FROM movement_label tobs JOIN Movimientos m ON tobs.Id_Movimiento = m.Id_Movimiento + JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < v_date; + DELETE FROM chat WHERE odbc_date < v_date; + DELETE FROM Extractos WHERE Fecha < v_date; + DELETE FROM Remesas WHERE `Fecha Remesa` < v_date18; + DELETE FROM Stockcontrol WHERE Datestart < v_date18; + -- DELETE FROM reference_rate WHERE date < v_date18; + DELETE FROM hedera.`order` WHERE date_send < v_date18; + -- DELETE FROM Ordenes WHERE odbc_date < v_date18; JGF 2018-12-21 Si estan en un turno no hay que borrarlas. + + SELECT MAX(inter_id) + INTO @id + FROM vncontrol.inter + WHERE odbc_date < v_date18; + DELETE FROM vncontrol.inter WHERE inter_id <= @id; + + DELETE FROM Entradas_dits WHERE ODBC_DATE < v_date; + DELETE FROM cyc_declaration WHERE Fecha < v_date18; + DELETE FROM travel_reserve WHERE odbc_date < v_date; + -- DELETE FROM syslog.systemevents WHERE odbc_date < v_date8; + + DELETE FROM cache.departure_limit WHERE Fecha < TIMESTAMPADD(MONTH,-1,CURDATE()); + DELETE co + FROM Compres_ok co JOIN Compres c ON c.Id_Compra = co.Id_Compra + JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada + JOIN travel t ON t.id = e.travel_id + WHERE t.landing <= v_date; + + DELETE FROM vn2008.scan WHERE odbc_date < v_date6 AND id <> 1; + + SET vDate2000 = TIMESTAMPADD(YEAR, 2000 - YEAR(CURDATE()), CURDATE()); + + IF v_full + THEN + DELETE t FROM Tickets t + LEFT JOIN Tickets_turno tt ON tt.Id_Ticket = t.Id_Ticket + WHERE Fecha NOT IN ('2000-01-01','2000-01-02') + AND YEAR(Fecha) = 2000 + AND ABS(DATEDIFF(Fecha,vDate2000)) > vRangeDeleteTicket + AND tt.Id_Ticket IS NULL; + + DELETE e.* FROM Entradas e + LEFT JOIN recibida_entrada re ON e.Id_Entrada = re.Id_Entrada + WHERE travel_id IS NULL + AND re.Id_Entrada IS NULL; + END IF; + + -- Tickets Nulos PAK 11/10/2016 + + UPDATE vn2008.Tickets + SET empresa_id = 965 + WHERE Id_Cliente = 31 + AND empresa_id != 965; + + -- Equipos duplicados + + DELETE w.* + FROM vn2008.workerTeam w + JOIN (SELECT id, team, workerFk, COUNT(*) - 1 as duplicated + FROM vn.workerTeam + GROUP BY team,workerFk + HAVING duplicated + ) d ON d.team = w.team AND d.workerFk = w.user AND d.id != w.id; + + -- CAP 29/10/2018 Mantenimiento tabla Movimientos_componentes + + DELETE mc + FROM vn2008.Movimientos_componentes mc + JOIN vn2008.Movimientos mv + ON mv.Id_Movimiento=mc.Id_Movimiento + JOIN vn2008.Tickets t + ON t.Id_Ticket= mv.Id_Ticket + WHERE t.Fecha