CREATE DEFINER=`root`@`%` PROCEDURE `ticket_closeByAllWarehouses`(vDateTo DATE) BEGIN /** * Inserta los tickets de todos los almacenes en la tabla temporal * para ser cerrados. * * @param vDate Fecha del cierre */ DECLARE vDateToEndDay DATETIME DEFAULT util.dayEnd(vDateTo); DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure; CREATE TEMPORARY TABLE tmp.ticketClosure ENGINE = MEMORY ( SELECT t.id AS ticketFk FROM expedition e JOIN ticket t ON t.id = e.ticketFk JOIN warehouse w ON w.id = t.warehouseFk AND hasComission JOIN ticketState ts ON ts.ticketFk = t.id JOIN alertLevel al ON al.alertLevel = ts.alertLevel WHERE al.code = 'PACKED' AND DATE(t.shipped) BETWEEN DATE_ADD(vDateTo, INTERVAL -2 DAY) AND vDateTo AND t.refFk IS NULL GROUP BY e.ticketFk); CALL ticket_close(); -- cau 15033 UPDATE ticket t JOIN ticketState ts ON t.id = ts.ticketFk JOIN alertLevel al ON al.alertLevel = ts.alertLevel JOIN agencyMode am ON am.id = t.agencyModeFk JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk JOIN zone z ON z.id = t.zoneFk SET t.routeFk = NULL WHERE shipped BETWEEN vDateTo AND vDateToEndDay AND al.code NOT IN('DELIVERED','PACKED') AND t.routeFk AND z.`name` LIKE '%MADRID%'; DROP TEMPORARY TABLE tmp.ticketClosure; END