diff --git a/db/changes/10100-allSaints/00-zone.sql b/db/changes/10081-agency/00-zone.sql similarity index 83% rename from db/changes/10100-allSaints/00-zone.sql rename to db/changes/10081-agency/00-zone.sql index e2542505ae..74e482c4ca 100644 --- a/db/changes/10100-allSaints/00-zone.sql +++ b/db/changes/10081-agency/00-zone.sql @@ -26,6 +26,12 @@ CREATE TABLE `vn`.`zoneEvent` ( CONSTRAINT `zoneEvent_ibfk_1` FOREIGN KEY (`zoneFk`) REFERENCES `zone` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8; +ALTER TABLE `vn`.`zoneEvent` + ADD COLUMN `type` ENUM('day', 'indefinitely', 'range') NOT NULL AFTER `zoneFk`, + ADD COLUMN `dated` DATE NULL DEFAULT NULL AFTER `type`, + CHANGE COLUMN `from` `started` DATE NULL DEFAULT NULL , + CHANGE COLUMN `to` `ended` DATE NULL DEFAULT NULL ; + CREATE TABLE `vn`.`zoneExclusion` ( `id` int(11) NOT NULL AUTO_INCREMENT, `zoneFk` int(11) NOT NULL, @@ -45,3 +51,6 @@ ADD CONSTRAINT `fk_zone_1` REFERENCES `vn`.`warehouse` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE; + +ALTER TABLE `vn`.`zoneExclusion` + CHANGE COLUMN `day` `dated` DATE NOT NULL ; diff --git a/db/changes/10081-agency/00-zone_getEvents.sql b/db/changes/10081-agency/00-zone_getEvents.sql index 35d95f7bb8..6e47bad221 100644 --- a/db/changes/10081-agency/00-zone_getEvents.sql +++ b/db/changes/10081-agency/00-zone_getEvents.sql @@ -37,11 +37,11 @@ BEGIN WHERE z.agencyModeFk != vAgencyModeFk; END IF; - SELECT e.`from`, e.`to`, e.weekDays + SELECT e.`type`, e.dated, e.`started`, e.`ended`, e.weekDays FROM tmp.zone t JOIN zoneEvent e ON e.zoneFk = t.id; - SELECT DISTINCT e.`day` + SELECT DISTINCT e.dated FROM tmp.zone t JOIN zoneExclusion e ON e.zoneFk = t.id; diff --git a/db/changes/10081-agency/00-zone_getOptionsForDate.sql b/db/changes/10081-agency/00-zone_getOptionsForDate.sql deleted file mode 100644 index a71f85c1a8..0000000000 --- a/db/changes/10081-agency/00-zone_getOptionsForDate.sql +++ /dev/null @@ -1,79 +0,0 @@ - -DROP PROCEDURE IF EXISTS `vn`.`zone_getOptionsForLanding`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zone_getOptionsForLanding`(vLanded DATE) -BEGIN -/** - * Gets computed options for the passed zones and delivery date. - * - * @table tmp.zones(id) The zones ids - * @param vLanded The delivery date - * @return tmp.zoneOption The computed options - */ - DECLARE vHour TIME DEFAULT TIME(NOW()); - - DROP TEMPORARY TABLE IF EXISTS tTemp; - CREATE TEMPORARY TABLE tTemp - ENGINE = MEMORY - SELECT t.id zoneFk, - TIME(e.`hour`) `hour`, - e.travelingDays, - e.price, - e.bonus, - CASE - WHEN e.`from` IS NULL AND e.`to` IS NULL - THEN 3 - WHEN e.`to` IS NULL - THEN 2 - ELSE 1 - END specificity - FROM tmp.zone t - JOIN zoneEvent e ON e.zoneFk = t.id - WHERE (e.`from` = vLanded AND e.`to` IS NULL) - OR ( - (e.`from` IS NULL OR vLanded BETWEEN e.`from` AND e.`to`) - AND e.weekDays & (1 << WEEKDAY(vLanded)) - ); - - -- XXX: Compatibility with the deprecated #zoneCalendar table - - INSERT INTO tTemp - SELECT t.id zoneFk, - NULL, - NULL, - c.price, - c.bonus, - 4 - FROM tmp.zone t - JOIN zoneCalendar c ON c.zoneFk = t.id - WHERE c.delivered = vLanded; - - DELETE t FROM tTemp t - JOIN zoneExclusion e - ON e.zoneFk = t.zoneFk AND e.`day` = vLanded; - - UPDATE tTemp t - JOIN zone z ON z.id = t.zoneFk - SET t.`hour` = IFNULL(t.`hour`, TIME(z.`hour`)), - t.travelingDays = IFNULL(t.travelingDays, z.travelingDays), - t.price = IFNULL(t.price, z.price), - t.bonus = IFNULL(t.bonus, z.bonus); - - DELETE FROM tTemp - WHERE (@shipped := TIMESTAMPADD(DAY, -travelingDays, vLanded)) < CURDATE() - OR @shipped = CURDATE() AND vHour > `hour`; - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneOption; - CREATE TEMPORARY TABLE tmp.zoneOption - ENGINE = MEMORY - SELECT * - FROM ( - SELECT * FROM tTemp - ORDER BY zoneFk, specificity - ) t - GROUP BY zoneFk; - - DROP TEMPORARY TABLE tTemp; -END$$ -DELIMITER ; - diff --git a/db/changes/10100-allSaints/01-zone_getAgency.sql b/db/changes/10081-agency/01-zone_getAgency.sql similarity index 100% rename from db/changes/10100-allSaints/01-zone_getAgency.sql rename to db/changes/10081-agency/01-zone_getAgency.sql diff --git a/db/changes/10100-allSaints/01-zone_getFirstShipped.sql b/db/changes/10081-agency/01-zone_getFirstShipped.sql similarity index 100% rename from db/changes/10100-allSaints/01-zone_getFirstShipped.sql rename to db/changes/10081-agency/01-zone_getFirstShipped.sql diff --git a/db/changes/10100-allSaints/01-zone_getLanded.sql b/db/changes/10081-agency/01-zone_getLanded.sql similarity index 100% rename from db/changes/10100-allSaints/01-zone_getLanded.sql rename to db/changes/10081-agency/01-zone_getLanded.sql diff --git a/db/changes/10100-allSaints/01-zone_getShippedWarehouse.sql b/db/changes/10081-agency/01-zone_getShippedWarehouse.sql similarity index 100% rename from db/changes/10100-allSaints/01-zone_getShippedWarehouse.sql rename to db/changes/10081-agency/01-zone_getShippedWarehouse.sql diff --git a/db/changes/10100-allSaints/01-zone_getWarehouse.sql b/db/changes/10081-agency/01-zone_getWarehouse.sql similarity index 100% rename from db/changes/10100-allSaints/01-zone_getWarehouse.sql rename to db/changes/10081-agency/01-zone_getWarehouse.sql diff --git a/db/changes/10100-allSaints/02-zoneGetAgency.sql b/db/changes/10081-agency/02-zoneGetAgency.sql similarity index 100% rename from db/changes/10100-allSaints/02-zoneGetAgency.sql rename to db/changes/10081-agency/02-zoneGetAgency.sql diff --git a/db/changes/10100-allSaints/02-zoneGetFirstShipped__.sql b/db/changes/10081-agency/02-zoneGetFirstShipped__.sql similarity index 100% rename from db/changes/10100-allSaints/02-zoneGetFirstShipped__.sql rename to db/changes/10081-agency/02-zoneGetFirstShipped__.sql diff --git a/db/changes/10100-allSaints/02-zoneGetLanded.sql b/db/changes/10081-agency/02-zoneGetLanded.sql similarity index 100% rename from db/changes/10100-allSaints/02-zoneGetLanded.sql rename to db/changes/10081-agency/02-zoneGetLanded.sql diff --git a/db/changes/10100-allSaints/02-zoneGetShipped.sql b/db/changes/10081-agency/02-zoneGetShipped.sql similarity index 100% rename from db/changes/10100-allSaints/02-zoneGetShipped.sql rename to db/changes/10081-agency/02-zoneGetShipped.sql diff --git a/db/changes/10100-allSaints/02-zoneGetShippedWarehouse.sql b/db/changes/10081-agency/02-zoneGetShippedWarehouse.sql similarity index 100% rename from db/changes/10100-allSaints/02-zoneGetShippedWarehouse.sql rename to db/changes/10081-agency/02-zoneGetShippedWarehouse.sql diff --git a/db/changes/10081-agency/04-zone_getOptionsForLanding.sql b/db/changes/10081-agency/04-zone_getOptionsForLanding.sql new file mode 100644 index 0000000000..ae081f14bc --- /dev/null +++ b/db/changes/10081-agency/04-zone_getOptionsForLanding.sql @@ -0,0 +1,67 @@ +USE `vn`; +DROP procedure IF EXISTS `zone_getOptionsForLanding`; + +DELIMITER $$ +USE `vn`$$ +CREATE DEFINER=`root`@`%` PROCEDURE `zone_getOptionsForLanding`(vLanded DATE) +BEGIN +/** + * Gets computed options for the passed zones and delivery date. + * + * @table tmp.zones(id) The zones ids + * @param vLanded The delivery date + * @return tmp.zoneOption The computed options + */ + DECLARE vHour TIME DEFAULT TIME(NOW()); + + DROP TEMPORARY TABLE IF EXISTS tTemp; + CREATE TEMPORARY TABLE tTemp + ENGINE = MEMORY + SELECT t.id zoneFk, + IFNULL(TIME(e.`hour`), TIME(z.`hour`)) `hour`, + IFNULL(e.travelingDays, z.travelingDays) travelingDays, + IFNULL(e.price, z.price) price, + IFNULL(e.bonus, z.bonus) bonus, + CASE + WHEN e.`type` = 'day' + THEN 1 + WHEN e.`type` = 'range' + THEN 2 + ELSE 3 + END specificity + FROM tmp.zone t + JOIN zone z ON z.id = t.id + JOIN zoneEvent e ON e.zoneFk = t.id + WHERE ( + e.`type` = 'day' + AND e.dated = vLanded + ) OR ( + e.`type` != 'day' + AND e.weekDays & (1 << WEEKDAY(vLanded)) + AND (e.`started` IS NULL OR vLanded >= e.`started`) + AND (e.`ended` IS NULL OR vLanded <= e.`ended`) + ); + + DELETE t FROM tTemp t + JOIN zoneExclusion e + ON e.zoneFk = t.zoneFk AND e.`dated` = vLanded; + + DELETE FROM tTemp + WHERE (@shipped := TIMESTAMPADD(DAY, -travelingDays, vLanded)) < CURDATE() + OR @shipped = CURDATE() AND vHour > `hour`; + + DROP TEMPORARY TABLE IF EXISTS tmp.zoneOption; + CREATE TEMPORARY TABLE tmp.zoneOption + ENGINE = MEMORY + SELECT * + FROM ( + SELECT * FROM tTemp + ORDER BY zoneFk, specificity + ) t + GROUP BY zoneFk; + + DROP TEMPORARY TABLE tTemp; +END$$ + +DELIMITER ; + diff --git a/db/changes/10081-agency/04-zone_getOptionsForShipment.sql b/db/changes/10081-agency/04-zone_getOptionsForShipment.sql new file mode 100644 index 0000000000..3794296297 --- /dev/null +++ b/db/changes/10081-agency/04-zone_getOptionsForShipment.sql @@ -0,0 +1,76 @@ +USE `vn`; +DROP procedure IF EXISTS `zone_getOptionsForShipment`; + +DELIMITER $$ +USE `vn`$$ +CREATE DEFINER=`root`@`%` PROCEDURE `zone_getOptionsForShipment`(vShipped DATE) +BEGIN +/** + * Gets computed options for the passed zones and shipping date. + * + * @table tmp.zones(id) The zones ids + * @param vShipped The shipping date + * @return tmp.zoneOption(zoneFk, hour, travelingDays, price, bonus, specificity) The computed options + */ + DROP TEMPORARY TABLE IF EXISTS tLandings; + CREATE TEMPORARY TABLE tLandings + (INDEX (eventFk)) + ENGINE = MEMORY + SELECT e.id eventFk, + @travelingDays := IFNULL(e.travelingDays, z.travelingDays) travelingDays, + TIMESTAMPADD(DAY, @travelingDays, vShipped) landed + FROM tmp.zone t + JOIN zone z ON z.id = t.id + JOIN zoneEvent e ON e.zoneFk = t.id; + + DROP TEMPORARY TABLE IF EXISTS tTemp; + CREATE TEMPORARY TABLE tTemp + ENGINE = MEMORY + SELECT t.id zoneFk, + IFNULL(TIME(e.`hour`), TIME(z.`hour`)) `hour`, + IFNULL(e.price, z.price) price, + IFNULL(e.bonus, z.bonus) bonus, + CASE + WHEN e.`type` = 'day' + THEN 1 + WHEN e.`type` = 'range' + THEN 2 + ELSE 3 + END specificity, + l.travelingDays, + l.landed + FROM tmp.zone t + JOIN zone z ON z.id = t.id + JOIN zoneEvent e ON e.zoneFk = t.id + JOIN tLandings l ON l.eventFk = e.id + HAVING ( + e.`type` = 'day' + AND e.`dated` = l.landed + ) OR ( + e.`type` != 'day' + AND e.weekDays & (1 << WEEKDAY(l.landed)) + AND (e.`started` IS NULL OR l.landed >= e.`started`) + AND (e.`ended` IS NULL OR l.landed <= e.`ended`) + ); + + DELETE t FROM tTemp t + JOIN zoneExclusion e + ON e.zoneFk = t.zoneFk AND e.`dated` = t.landed; + + DROP TEMPORARY TABLE IF EXISTS tmp.zoneOption; + CREATE TEMPORARY TABLE tmp.zoneOption + ENGINE = MEMORY + SELECT * + FROM ( + SELECT * FROM tTemp + ORDER BY zoneFk, specificity + ) t + GROUP BY zoneFk; + + DROP TEMPORARY TABLE + tTemp, + tLandings; +END$$ + +DELIMITER ; + diff --git a/db/changes/10100-allSaints/04-zone_getOptionsForDated.sql b/db/changes/10100-allSaints/04-zone_getOptionsForDated.sql deleted file mode 100644 index fce54e012a..0000000000 --- a/db/changes/10100-allSaints/04-zone_getOptionsForDated.sql +++ /dev/null @@ -1,88 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `ticketCreateWithUser`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketCreateWithUser`( - vClientId INT - ,vShipped DATE - ,vWarehouseFk INT - ,vCompanyFk INT - ,vAddressFk INT - ,vAgencyModeFk INT - ,vRouteFk INT - ,vlanded DATE - ,vUserId INT - ,OUT vNewTicket INT) -BEGIN - - DECLARE vZoneFk INT; - - IF vClientId IS NULL THEN - CALL util.throw ('CLIENT_NOT_ESPECIFIED'); - END IF; - - IF NOT vAddressFk OR vAddressFk IS NULL THEN - SELECT id INTO vAddressFk - FROM address - WHERE clientFk = vClientId AND isDefaultAddress; - END IF; - - IF vAgencyModeFk IS NOT NULL THEN - - CALL vn.zone_getShippedWarehouse(vlanded, vAddressFk, vAgencyModeFk); - - SELECT zoneFk INTO vZoneFk FROM tmp.zoneGetShipped - WHERE shipped = vShipped AND warehouseFk = vWarehouseFk LIMIT 1; - - IF vZoneFk IS NULL OR vZoneFk = 0 THEN - CALL util.throw ('NOT_ZONE_WITH_THIS_PARAMETERS'); - END IF; - END IF; - INSERT INTO vn2008.Tickets ( - Id_Cliente, - Fecha, - Id_Consigna, - Id_Agencia, - Alias, - warehouse_id, - Id_Ruta, - empresa_id, - landing, - zoneFk - ) - SELECT - vClientId, - vShipped, - a.id, - vAgencyModeFk, - a.nickname, - vWarehouseFk, - IF(vRouteFk,vRouteFk,NULL), - vCompanyFk, - vlanded, - vZoneFk - FROM address a - JOIN agencyMode am ON am.id = a.agencyModeFk - WHERE a.id = vAddressFk; - - SET vNewTicket = LAST_INSERT_ID(); - - INSERT INTO ticketObservation(ticketFk, observationTypeFk, description) - SELECT vNewTicket, ao.observationTypeFk, ao.description - FROM addressObservation ao - JOIN address a ON a.id = ao.addressFk - WHERE a.id = vAddressFk; - - INSERT INTO vn.ticketLog - SET originFk = vNewTicket, userFk = vUserId, `action` = 'insert', description = CONCAT('Ha creado el ticket:', ' ', vNewTicket); - - IF (SELECT ct.isCreatedAsServed FROM vn.clientType ct JOIN vn.client c ON c.typeFk = ct.code WHERE c.id = vClientId ) <> FALSE THEN - INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador) - SELECT id, vNewTicket, getWorker() - FROM state - WHERE `code` = 'DELIVERED'; - END IF; -END$$ - -DELIMITER ; diff --git a/db/changes/10100-allSaints/04-zone_getOptionsForLanding.sql b/db/changes/10100-allSaints/04-zone_getOptionsForLanding.sql deleted file mode 100644 index 116703831d..0000000000 --- a/db/changes/10100-allSaints/04-zone_getOptionsForLanding.sql +++ /dev/null @@ -1,83 +0,0 @@ - -USE `vn`; -DROP procedure IF EXISTS `vn`.`zone_getOptionsForLanding`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_getOptionsForLanding`(vLanded DATE) -BEGIN -/** - * Gets computed options for the passed zones and delivery date. - * - * @table tmp.zones(id) The zones ids - * @param vLanded The delivery date - * @return tmp.zoneOption The computed options - */ - DECLARE vHour TIME DEFAULT TIME(NOW()); - - DROP TEMPORARY TABLE IF EXISTS tTemp; - CREATE TEMPORARY TABLE tTemp - ENGINE = MEMORY - SELECT t.id zoneFk, - TIME(e.`hour`) `hour`, - e.travelingDays, - e.price, - e.bonus, - CASE - WHEN e.`from` IS NULL AND e.`to` IS NULL - THEN 3 - WHEN e.`to` IS NULL - THEN 2 - ELSE 1 - END specificity - FROM tmp.zone t - JOIN zoneEvent e ON e.zoneFk = t.id - WHERE (e.`from` = vLanded AND e.`to` IS NULL) - OR ( - (e.`from` IS NULL OR vLanded BETWEEN e.`from` AND e.`to`) - AND e.weekDays & (1 << WEEKDAY(vLanded)) - ); - - -- XXX: Compatibility with the deprecated #zoneCalendar table - - INSERT INTO tTemp - SELECT t.id zoneFk, - NULL, - NULL, - c.price, - c.bonus, - 4 - FROM tmp.zone t - JOIN zoneCalendar c ON c.zoneFk = t.id - WHERE c.delivered = vLanded; - - DELETE t FROM tTemp t - JOIN zoneExclusion e - ON e.zoneFk = t.zoneFk AND e.`day` = vLanded; - - UPDATE tTemp t - JOIN zone z ON z.id = t.zoneFk - SET t.`hour` = IFNULL(t.`hour`, TIME(z.`hour`)), - t.travelingDays = IFNULL(t.travelingDays, z.travelingDays), - t.price = IFNULL(t.price, z.price), - t.bonus = IFNULL(t.bonus, z.bonus); - - DELETE FROM tTemp - WHERE (@shipped := TIMESTAMPADD(DAY, -travelingDays, vLanded)) < CURDATE() - OR @shipped = CURDATE() AND vHour > `hour`; - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneOption; - CREATE TEMPORARY TABLE tmp.zoneOption - ENGINE = MEMORY - SELECT * - FROM ( - SELECT * FROM tTemp - ORDER BY zoneFk, specificity - ) t - GROUP BY zoneFk; - - DROP TEMPORARY TABLE tTemp; -END$$ - -DELIMITER ; -; diff --git a/db/changes/10100-allSaints/04-zone_getOptionsForShipment.sql b/db/changes/10100-allSaints/04-zone_getOptionsForShipment.sql deleted file mode 100644 index 26a2101f79..0000000000 --- a/db/changes/10100-allSaints/04-zone_getOptionsForShipment.sql +++ /dev/null @@ -1,65 +0,0 @@ -USE `vn`; -DROP procedure IF EXISTS `zone_getOptionsForShipment`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zone_getOptionsForShipment`(vShipped DATE) -BEGIN -/** - * Gets computed options for the passed zones and shipping date. - * - * @table tmp.zones(id) The zones ids - * @param vShipped The shipping date - * @return tmp.zoneOption(zoneFk, hour, travelingDays, price, bonus, specificity) The computed options - */ - DECLARE vHour TIME DEFAULT TIME(NOW()); - - DROP TEMPORARY TABLE IF EXISTS tTemp; - CREATE TEMPORARY TABLE tTemp - ENGINE = MEMORY - SELECT t.id zoneFk, - TIME(e.`hour`) `hour`, - e.travelingDays, - e.price, - e.bonus, - CASE - WHEN e.`from` IS NULL AND e.`to` IS NULL - THEN 3 - WHEN e.`to` IS NULL - THEN 2 - ELSE 1 - END specificity - FROM tmp.zone t - JOIN zoneEvent e ON e.zoneFk = t.id - WHERE (e.`from` = TIMESTAMPADD(DAY, e.travelingDays, vShipped) AND e.`to` IS NULL) - OR ( - (e.`from` IS NULL OR TIMESTAMPADD(DAY, e.travelingDays, vShipped) BETWEEN e.`from` AND e.`to`) - AND e.weekDays & (1 << WEEKDAY(TIMESTAMPADD(DAY, e.travelingDays, vShipped))) - ); - - DELETE t FROM tTemp t - JOIN zoneExclusion e - ON e.zoneFk = t.zoneFk AND TIMESTAMPADD(DAY,-t.travelingDays, e.`day`) = vShipped; - - UPDATE tTemp t - JOIN zone z ON z.id = t.zoneFk - SET t.`hour` = IFNULL(t.`hour`, TIME(z.`hour`)), - t.travelingDays = IFNULL(t.travelingDays, z.travelingDays), - t.price = IFNULL(t.price, z.price), - t.bonus = IFNULL(t.bonus, z.bonus); - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneOption; - CREATE TEMPORARY TABLE tmp.zoneOption - ENGINE = MEMORY - SELECT * - FROM ( - SELECT * FROM tTemp - ORDER BY zoneFk, specificity - ) t - GROUP BY zoneFk; - - DROP TEMPORARY TABLE tTemp; -END$$ - -DELIMITER ; - diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index cee62f3179..ae26f9cd5c 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -1619,220 +1619,220 @@ INSERT INTO `vn`.`zoneIncluded` (`zoneFk`, `geoFk`, `isIncluded`) (8, 5, 0), (8, 1, 1); -INSERT INTO `vn`.`zoneEvent`(`zoneFk`, `from`) +INSERT INTO `vn`.`zoneEvent`(`zoneFk`, `type`, `dated`) VALUES - (1, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=2, 2, 9 ) - DAYOFWEEK(CURDATE())) DAY)), - (1, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=3, 3, 10) - DAYOFWEEK(CURDATE())) DAY)), - (1, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=4, 4, 11) - DAYOFWEEK(CURDATE())) DAY)), - (1, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=5, 5, 12) - DAYOFWEEK(CURDATE())) DAY)), - (1, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=6, 6, 13) - DAYOFWEEK(CURDATE())) DAY)), - (2, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=2, 2, 9 ) - DAYOFWEEK(CURDATE())) DAY)), - (2, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=3, 3, 10) - DAYOFWEEK(CURDATE())) DAY)), - (2, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=4, 4, 11) - DAYOFWEEK(CURDATE())) DAY)), - (2, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=5, 5, 12) - DAYOFWEEK(CURDATE())) DAY)), - (2, DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=6, 6, 13) - DAYOFWEEK(CURDATE())) DAY)), - (3, CURDATE()), - (3, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +2 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +3 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +4 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +5 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +6 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +7 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +8 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +9 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +10 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +11 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +12 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +13 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +14 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +15 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +16 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +17 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +18 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +19 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +20 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +21 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +22 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +23 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +24 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +25 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +26 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +27 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +28 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +29 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +30 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +31 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +32 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +33 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +34 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +35 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +36 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +37 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +38 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +39 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +40 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +41 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +42 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +43 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +44 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +45 DAY)), - (3, DATE_ADD(CURDATE(), INTERVAL +46 DAY)), - (4, CURDATE()), - (4, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +2 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +3 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +4 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +5 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +6 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +7 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +8 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +9 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +10 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +11 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +12 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +13 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +14 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +15 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +16 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +17 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +18 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +19 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +20 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +21 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +22 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +23 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +24 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +25 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +26 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +27 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +28 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +29 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +30 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +31 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +32 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +33 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +34 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +35 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +36 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +37 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +38 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +39 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +40 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +41 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +42 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +43 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +44 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +45 DAY)), - (4, DATE_ADD(CURDATE(), INTERVAL +46 DAY)), - (5, CURDATE()), - (5, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +2 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +3 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +4 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +5 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +6 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +7 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +8 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +9 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +10 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +11 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +12 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +13 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +14 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +15 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +16 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +17 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +18 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +19 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +20 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +21 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +22 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +23 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +24 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +25 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +26 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +27 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +28 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +29 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +30 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +31 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +32 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +33 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +34 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +35 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +36 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +37 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +38 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +39 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +40 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +41 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +42 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +43 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +44 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +45 DAY)), - (5, DATE_ADD(CURDATE(), INTERVAL +46 DAY)), - (6, CURDATE()), - (6, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +2 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +3 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +4 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +5 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +6 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +7 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +8 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +9 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +10 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +11 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +12 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +13 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +14 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +15 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +16 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +17 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +18 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +19 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +20 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +21 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +22 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +23 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +24 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +25 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +26 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +27 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +28 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +29 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +30 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +31 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +32 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +33 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +34 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +35 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +36 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +37 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +38 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +39 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +40 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +41 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +42 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +43 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +44 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +45 DAY)), - (6, DATE_ADD(CURDATE(), INTERVAL +46 DAY)), - (7, CURDATE()), - (7, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (7, DATE_ADD(CURDATE(), INTERVAL +2 DAY)), - (7, DATE_ADD(CURDATE(), INTERVAL +3 DAY)), - (7, DATE_ADD(CURDATE(), INTERVAL +4 DAY)), - (7, DATE_ADD(CURDATE(), INTERVAL +5 DAY)), - (7, DATE_ADD(CURDATE(), INTERVAL +6 DAY)), - (8, CURDATE()), - (8, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (8, DATE_ADD(CURDATE(), INTERVAL +2 DAY)), - (8, DATE_ADD(CURDATE(), INTERVAL +3 DAY)), - (8, DATE_ADD(CURDATE(), INTERVAL +4 DAY)), - (8, DATE_ADD(CURDATE(), INTERVAL +5 DAY)), - (8, DATE_ADD(CURDATE(), INTERVAL +6 DAY)); + (1, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=2, 2, 9 ) - DAYOFWEEK(CURDATE())) DAY)), + (1, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=3, 3, 10) - DAYOFWEEK(CURDATE())) DAY)), + (1, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=4, 4, 11) - DAYOFWEEK(CURDATE())) DAY)), + (1, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=5, 5, 12) - DAYOFWEEK(CURDATE())) DAY)), + (1, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=6, 6, 13) - DAYOFWEEK(CURDATE())) DAY)), + (2, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=2, 2, 9 ) - DAYOFWEEK(CURDATE())) DAY)), + (2, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=3, 3, 10) - DAYOFWEEK(CURDATE())) DAY)), + (2, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=4, 4, 11) - DAYOFWEEK(CURDATE())) DAY)), + (2, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=5, 5, 12) - DAYOFWEEK(CURDATE())) DAY)), + (2, 'day', DATE_ADD(CURDATE(), INTERVAL (IF(DAYOFWEEK(CURDATE())<=6, 6, 13) - DAYOFWEEK(CURDATE())) DAY)), + (3, 'day', CURDATE()), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +1 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +2 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +3 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +4 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +5 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +6 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +7 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +8 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +9 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +10 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +11 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +12 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +13 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +14 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +15 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +16 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +17 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +18 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +19 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +20 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +21 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +22 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +23 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +24 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +25 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +26 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +27 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +28 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +29 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +30 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +31 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +32 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +33 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +34 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +35 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +36 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +37 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +38 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +39 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +40 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +41 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +42 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +43 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +44 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +45 DAY)), + (3, 'day', DATE_ADD(CURDATE(), INTERVAL +46 DAY)), + (4, 'day', CURDATE()), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +1 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +2 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +3 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +4 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +5 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +6 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +7 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +8 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +9 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +10 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +11 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +12 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +13 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +14 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +15 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +16 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +17 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +18 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +19 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +20 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +21 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +22 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +23 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +24 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +25 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +26 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +27 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +28 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +29 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +30 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +31 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +32 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +33 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +34 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +35 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +36 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +37 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +38 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +39 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +40 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +41 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +42 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +43 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +44 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +45 DAY)), + (4, 'day', DATE_ADD(CURDATE(), INTERVAL +46 DAY)), + (5, 'day', CURDATE()), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +1 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +2 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +3 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +4 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +5 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +6 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +7 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +8 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +9 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +10 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +11 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +12 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +13 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +14 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +15 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +16 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +17 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +18 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +19 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +20 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +21 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +22 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +23 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +24 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +25 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +26 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +27 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +28 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +29 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +30 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +31 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +32 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +33 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +34 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +35 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +36 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +37 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +38 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +39 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +40 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +41 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +42 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +43 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +44 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +45 DAY)), + (5, 'day', DATE_ADD(CURDATE(), INTERVAL +46 DAY)), + (6, 'day', CURDATE()), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +1 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +2 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +3 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +4 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +5 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +6 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +7 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +8 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +9 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +10 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +11 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +12 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +13 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +14 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +15 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +16 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +17 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +18 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +19 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +20 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +21 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +22 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +23 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +24 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +25 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +26 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +27 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +28 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +29 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +30 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +31 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +32 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +33 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +34 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +35 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +36 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +37 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +38 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +39 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +40 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +41 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +42 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +43 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +44 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +45 DAY)), + (6, 'day', DATE_ADD(CURDATE(), INTERVAL +46 DAY)), + (7, 'day', CURDATE()), + (7, 'day', DATE_ADD(CURDATE(), INTERVAL +1 DAY)), + (7, 'day', DATE_ADD(CURDATE(), INTERVAL +2 DAY)), + (7, 'day', DATE_ADD(CURDATE(), INTERVAL +3 DAY)), + (7, 'day', DATE_ADD(CURDATE(), INTERVAL +4 DAY)), + (7, 'day', DATE_ADD(CURDATE(), INTERVAL +5 DAY)), + (7, 'day', DATE_ADD(CURDATE(), INTERVAL +6 DAY)), + (8, 'day', CURDATE()), + (8, 'day', DATE_ADD(CURDATE(), INTERVAL +1 DAY)), + (8, 'day', DATE_ADD(CURDATE(), INTERVAL +2 DAY)), + (8, 'day', DATE_ADD(CURDATE(), INTERVAL +3 DAY)), + (8, 'day', DATE_ADD(CURDATE(), INTERVAL +4 DAY)), + (8, 'day', DATE_ADD(CURDATE(), INTERVAL +5 DAY)), + (8, 'day', DATE_ADD(CURDATE(), INTERVAL +6 DAY)); INSERT INTO `vn`.`workerTimeControl`(`userFk`,`timed`,`manual`) VALUES diff --git a/front/core/components/wday-picker/index.html b/front/core/components/wday-picker/index.html index e8d74f1c2b..4262431e61 100644 --- a/front/core/components/wday-picker/index.html +++ b/front/core/components/wday-picker/index.html @@ -2,7 +2,7 @@ + ng-class="{marked: $ctrl.field[day.index]}" + ng-click="$ctrl.toggleDay(day.index)"> {{day.localeChar}} \ No newline at end of file diff --git a/front/core/components/wday-picker/index.js b/front/core/components/wday-picker/index.js index 3cbb288e05..94a6d424cc 100644 --- a/front/core/components/wday-picker/index.js +++ b/front/core/components/wday-picker/index.js @@ -8,6 +8,13 @@ export default class WdayPicker extends FormInput { this.days = vnWeekDays.locales; this.initTabIndex(); } + + toggleDay(index) { + let field = this.field; + if (!field) field = []; + field[index] = !field[index]; + this.change(field); + } } WdayPicker.$inject = ['$element', '$scope', 'vnWeekDays']; diff --git a/front/core/services/week-days.js b/front/core/services/week-days.js index f7d432c01b..698d6df2cf 100644 --- a/front/core/services/week-days.js +++ b/front/core/services/week-days.js @@ -1,5 +1,22 @@ import ngModule from '../module'; +/** + * @property {Array} days Weekdays data array with the same indexes as Date.getDay() + * @property {Object} map Weekdays data map using weekday codes as key + * @property {Array} localeCodes Locale weekday codes indexes depend on current locale + * @property {Array} locale Weekday data array with indexes depending on current locale + * + * Weekday properties: + * + * @property {Number} index The weekday index acording to Date.getDay() + * @property {String} code The weekday code + * @property {String} name The weekday name + * @property {String} char The first weekday letter + * @property {String} abr The abreviated 3 letters weekday name + * @property {String} locale The weekday name in current locale + * @property {String} localeChar The first weekday letter in current locale + * @property {String} localeAbr The abreviated 3 letters weekday name in current locale + */ class WeekDays { constructor($translate) { this.$translate = $translate; @@ -65,6 +82,34 @@ class WeekDays { for (let code of this.localeCodes) this.locales.push(this.map[code]); } + + fromSet(weekDays) { + let wdays = []; + + if (weekDays) { + let codes = weekDays.split(','); + for (let code of codes) { + let data = this.map[code]; + if (data) wdays[data.index] = true; + } + } + + return wdays; + } + + toSet(wdays) { + let weekDays = []; + + if (wdays) { + for (let i = 0; i < wdays.length; i++) { + if (!wdays[i]) continue; + let data = this.days[i]; + if (data) weekDays.push(data.code); + } + } + + return weekDays.join(','); + } } WeekDays.$inject = ['$translate']; diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 171e376d2d..70293a9655 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -113,5 +113,9 @@ "You can't create a claim for a removed ticket": "No puedes crear una reclamación para un ticket eliminado", "You cannot delete a ticket that part of it is being prepared": "No puedes eliminar un ticket en el que una parte que está siendo preparada", "You must delete all the buy requests first": "Debes eliminar todas las peticiones de compra primero", - "Has deleted the ticket id": "Ha eliminado el ticket id [#{{id}}]({{{url}}})" + "Has deleted the ticket id": "Ha eliminado el ticket id [#{{id}}]({{{url}}})", + "You should specify a date": "Debes especificar una fecha", + "You should specify at least a start or end date": "Debes especificar al menos una fecha de inicio o de fín", + "Start date should be lower than end date": "La fecha de inicio debe ser menor que la fecha de fín", + "You should mark at least one week day": "Debes marcar al menos un día de la semana" } \ No newline at end of file diff --git a/modules/agency/back/models/zone-event.js b/modules/agency/back/models/zone-event.js index 5b1c183fd2..6af031a239 100644 --- a/modules/agency/back/models/zone-event.js +++ b/modules/agency/back/models/zone-event.js @@ -1,9 +1,35 @@ module.exports = Self => { - function rangeValid(err) { - if (this.from && this.to && this.from >= this.to) + Self.validate('range', function(err) { + if (this.type == 'range' + && !this.started + && !this.ended) err(); - } - Self.validate('rangeValid', rangeValid, { + }, { + message: `You should specify at least a start or end date` + }); + + Self.validate('validRange', function(err) { + if (this.type == 'range' + && this.started + && this.ended + && this.started >= this.ended) + err(); + }, { message: `Start date should be lower than end date` }); + + Self.validate('dated', function(err) { + if (this.type == 'day' && !this.dated) + err(); + }, { + message: `You should specify a date` + }); + + Self.validate('weekDays', function(err) { + if (['range', 'indefinitely'].indexOf(this.type) !== -1 + && !this.weekDays) + err(); + }, { + message: `You should mark at least one week day` + }); }; diff --git a/modules/agency/back/models/zone-event.json b/modules/agency/back/models/zone-event.json index 822328dc63..0d46b1fe26 100644 --- a/modules/agency/back/models/zone-event.json +++ b/modules/agency/back/models/zone-event.json @@ -15,10 +15,16 @@ "id": true, "type": "Number" }, - "from": { + "type": { + "type": "String" + }, + "dated": { "type": "Date" }, - "to": { + "started": { + "type": "Date" + }, + "ended": { "type": "Date" }, "weekDays": { diff --git a/modules/agency/back/models/zone-exclusion.json b/modules/agency/back/models/zone-exclusion.json index 79e2f5aae6..f1c80debdb 100644 --- a/modules/agency/back/models/zone-exclusion.json +++ b/modules/agency/back/models/zone-exclusion.json @@ -11,7 +11,7 @@ "id": true, "type": "Number" }, - "day": { + "dated": { "type": "Date", "required": true } diff --git a/modules/agency/front/calendar/index.js b/modules/agency/front/calendar/index.js index f324bb122d..ec28fa1343 100644 --- a/modules/agency/front/calendar/index.js +++ b/modules/agency/front/calendar/index.js @@ -3,8 +3,9 @@ import Component from 'core/lib/component'; import './style.scss'; class Controller extends Component { - constructor($element, $) { + constructor($element, $, vnWeekDays) { super($element, $); + this.vnWeekDays = vnWeekDays; this.nMonths = 4; let date = new Date(); @@ -54,19 +55,29 @@ class Controller extends Component { this._data = value; value = value || {}; - this.events = value.events; - this.exclusions = value.exclusions; - if (this.events) { - let codes = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; - for (event of this.events) { - event.wdays = []; - if (!event.weekDays) continue; - let weekDays = event.weekDays.split(','); - for (let wday of weekDays) { - let index = codes.indexOf(wday); - if (index !== -1) event.wdays[index] = true; - } + this.events = value.events; + + function toStamp(date) { + return date && new Date(date).setHours(0, 0, 0, 0); + } + + this.exclusionsMap = {}; + let exclusions = value.exclusions; + + if (exclusions) { + for (let exclusion of exclusions) + this.exclusionsMap[toStamp(exclusion.dated)] = exclusion; + } + + let events = value.events; + + if (events) { + for (event of events) { + event.dated = toStamp(event.dated); + event.ended = toStamp(event.ended); + event.started = toStamp(event.started); + event.wdays = this.vnWeekDays.fromSet(event.weekDays); } } @@ -78,17 +89,9 @@ class Controller extends Component { } refreshEvents() { - function getDate(date) { - return date && new Date(date).setHours(0, 0, 0, 0); - } - - let exclusionsMap = {}; - if (this.exclusions) { - for (let exclusion of this.exclusions) - exclusionsMap[getDate(exclusion.day)] = exclusion; - } - this.days = {}; + if (!this.data) return; + let day = new Date(this.firstDay.getTime()); while (day <= this.lastDay) { @@ -99,23 +102,24 @@ class Controller extends Component { if (this.events) { for (let event of this.events) { let match; - let from = getDate(event.from); - let to = getDate(event.to); - if (event.from && event.to) { - match = stamp >= from && stamp <= to - && event.wdays[wday]; - } else if (event.from) - match = from == stamp; - else - match = event.wdays[wday]; + switch (event.type) { + case 'day': + match = event.dated == stamp; + break; + default: + match = event.wdays[wday] + && (!event.started || stamp >= event.started) + && (!event.ended || stamp <= event.ended); + break; + } if (match) dayEvents.push(event); } } - let exclusion = exclusionsMap[stamp]; + let exclusion = this.exclusionsMap[stamp]; if (dayEvents.length || exclusion) { let dayData = {}; @@ -152,6 +156,7 @@ class Controller extends Component { return dayData && dayData.exclusion ? 'excluded' : ''; } } +Controller.$inject = ['$element', '$scope', 'vnWeekDays']; ngModule.component('vnZoneCalendar', { template: require('./index.html'), diff --git a/modules/agency/front/events/index.html b/modules/agency/front/events/index.html index ec1bec4e8d..1b8c1e8716 100644 --- a/modules/agency/front/events/index.html +++ b/modules/agency/front/events/index.html @@ -42,17 +42,17 @@ class="vn-item">
- {{::row.from | date:'dd/MM/yy'}} + {{::row.dated | date:'dd/MM/yy'}}
- - {{::row.from | date:'dd/MM/yy'}} - {{::row.to | date:'dd/MM/yy'}} + + {{::row.started | date:'dd/MM/yy'}} - {{::row.ended | date:'dd/MM/yy'}} - + Indefinitely @@ -94,40 +94,40 @@ + ng-model="$ctrl.selected.dated"> + ng-if="$ctrl.selected.type == 'range'"> + ng-model="$ctrl.selected.started"> + ng-model="$ctrl.selected.ended"> diff --git a/modules/agency/front/events/index.js b/modules/agency/front/events/index.js index f7e689afed..b6352802aa 100644 --- a/modules/agency/front/events/index.js +++ b/modules/agency/front/events/index.js @@ -1,7 +1,7 @@ import ngModule from '../module'; -import Component from 'core/lib/component'; +import Section from 'salix/components/section'; -class Controller extends Component { +class Controller extends Section { constructor($element, $, vnWeekDays) { super($element, $); this.vnWeekDays = vnWeekDays; @@ -27,13 +27,13 @@ class Controller extends Component { formatWdays(weekDays) { if (!weekDays) return; - let abrWdays = []; - for (let wday of weekDays.split(',')) - abrWdays.push(this.vnWeekDays.map[wday].localeAbr); + let abrWdays = weekDays + .split(',') + .map(wday => this.vnWeekDays.map[wday].localeAbr); return abrWdays.length < 7 ? abrWdays.join(', ') - : this._('Everyday'); + : this.$t('Everyday'); } onSelection(days, type, weekday, data) { @@ -66,37 +66,28 @@ class Controller extends Component { edit(row) { this.isNew = false; - - if (row.from && !row.to) - this.eventType = 'day'; - else if (!row.from) - this.eventType = 'indefinitely'; - else - this.eventType = 'range'; - this.selected = angular.copy(row); - this.selected.wdays = {}; - - if (row.weekDays) { - let weekDays = row.weekDays.split(','); - for (let day of weekDays) - this.selected.wdays[day] = true; - } - + this.selected.wdays = this.vnWeekDays.fromSet(row.weekDays); this.$.dialog.show(); } create(days, type, weekday) { this.isNew = true; - this.eventType = type == 'day' ? 'day' : 'indefinitely'; if (type == 'weekday') { let wdays = []; - let code = this.vnWeekDays.days[weekday].code; - wdays[code] = true; - this.selected = {wdays}; - } else - this.selected = {from: days[0]}; + wdays[weekday] = true; + + this.selected = { + type: 'indefinitely', + wdays + }; + } else { + this.selected = { + type: 'day', + dated: days[0] + }; + } this.$.dialog.show(); } @@ -105,24 +96,18 @@ class Controller extends Component { switch (response) { case 'accept': { let selected = this.selected; + let type = selected.type; - if (this.eventType == 'indefinitely') { - selected.from = null; - selected.to = null; - } + selected.weekDays = this.vnWeekDays.toSet(selected.wdays); - if (this.eventType != 'day') { - let weekDays = []; - - for (let wday in selected.wdays) { - if (selected.wdays[wday]) - weekDays.push(wday); - } - - selected.weekDays = weekDays.join(','); - } else { - selected.to = null; + if (type == 'day') selected.weekDays = ''; + else + selected.dated = null; + + if (type != 'range') { + selected.started = null; + selected.ended = null; } let req; @@ -138,7 +123,7 @@ class Controller extends Component { this.refresh(); }); } - case 'DELETE': + case 'delete': return this.onDelete(this.selected.id) .then(response => response == 'accept'); } @@ -162,8 +147,8 @@ class Controller extends Component { } exclusionCreate(days) { - let exclusions = days.map(day => { - return {day}; + let exclusions = days.map(dated => { + return {dated}; }); this.$http.post(this.exclusionsPath, exclusions)